shithub: riscv

ref: 7628681f83b663609eace87a50f8fbf68c31f40b
dir: /sys/src/ape/cmd/pax/Makefile/

View raw version
#
# PAX - read and write POSIX conformant tar and cpio archives 
#
# Written by Mark H. Colburn (mark@jhereg.mn.org)
#
# $Id: Makefile,v 1.2 89/02/12 10:08:59 mark Exp $
#

#
# CONFIGURATION SECTION
#
# The following defines may need to be changed for each system which PAX
# is installed on.  Please review these settings before installing on your
# system.

#
# You should define _POSIX_SOURCE if you are running on a POSIX system.  This
# include has to be in the command line because it has to appear before any
# include file is included in the source.  For most systems in use today,
# it should be left blank.
# 
# POSIX= -D_POSIX_SOURCE
POSIX= 

#
# Set CFLAGS to whatever makes your C compiler happy.  Be sure to include 
# the definition of $(POSIX) in the flag.
#
CFLAGS = -O $(POSIX)
CC = cc

#
# Set LIBS to any additional libraries that you need linked in with pax.
#
LIBS=

#
# Set LFLAGS to whatever makes your linker happy
#
#LDFLAGS = -s
LDFLAGS = 

#
# Set COPY to the name of the command to use to copy pax to cpio and
# tar.  Usually it is 'ln'.
#
COPY=ln

#
# Set LINTFLAGS to whatever makes your implementation of lint happy.  If
# you don't undef __STDC__ and you have an ANSI C compiler, lint will choke 
# on the function prototypes present in func.h.
#
LINTFLAGS = -U__STDC__ $(POSIX)

#
# BINDIR - points to the directory in which you want the final pax, tar and
# cpio binaries installed in.
#
BINDIR = /usr/local/bin

#
# MANDIR - specify the directory in which the man pages will be installed
#
MAN5 = /usr/man/man5
MAN1 = /usr/man/man1
MAN5EXT = 5
MAN1EXT = 1

#
# There are three different ways to get POSIX or BSD conformant directory 
# access routines: 1) they are installed in your system library, 2) you 
# are using Doug Gwyn's dirent library (/usr/lib/libdirent.a), or 3) you 
# need the source for the dirent package.  Based on that, pick one of the 
# following three options:
#
# 1. Pick the first dirent line and make sure that config.h is defined
#    correctly for your version of directory access routines.  THIS IS
#    THE LINE WHICH SHOULD BE USED FOR BSD SYSTEMS.
# 2. Chose the second dirent line which  used a library at link time.  You
#    may need to change the name of the library to match your system.
# 3. If you need #3, then you must copy everything in the subdirectory dirent 
#    to this directory and choose the DIROBJ lines.  Please note that this 
#    version of dirent has been modified to work as a stand-alone. 
#
DIRENT=
#DIRENT= -ldirent
#DIROBJ= paxdir.o

#
# END CONFIGURATION SECTION 
#
# Nothing beyond this point should need to be changed.
#

SHELL = /bin/sh
MISC  = Makefile pax.1 tar.5 cpio.5 README PATCHLEVEL
HEADERS= config.h func.h limits.h port.h pax.h 
SOURCE= pax.c append.c buffer.c cpio.c create.c extract.c fileio.c\
	link.c list.c mem.c namelist.c names.c pass.c pathname.c\
	port.c regexp.c replace.c tar.c ttyio.c warn.c wildmat.c
OBJECT= pax.o append.o buffer.o cpio.o create.o extract.o fileio.o\
	link.o list.o mem.o namelist.o names.o pass.o pathname.o\
	port.o regexp.o replace.o tar.o ttyio.o warn.o wildmat.o $(DIROBJ)
PROGS = pax tar cpio
PMAN1 = pax.1 tar.1
PMAN5 = pax.5 tar.5

all: $(PROGS)

install: $(PROGS)
	strip pax
	cp pax $(BINDIR)
	chmod 755 $(BINDIR)/pax
	ln $(BINDIR)/pax $(BINDIR)/tar
	ln $(BINDIR)/pax $(BINDIR)/cpio
	cp $(PMAN1) $(MAN1)
#	cp $(PMAN5) $(MAN5)

clean:
	rm -f $(OBJECT)
	rm -f $(PROGS) a.out *.BAK *.bak 

lint:
	lint $(LINTFLAGS) $(SOURCE)

pax : $(OBJECT)
	$(CC) $(CFLAGS) $(LDFLAGS) -o pax $(OBJECT) $(DIRENT) $(LIBS)

tar: pax
	rm -f tar
	$(COPY) pax tar

cpio: pax
	rm -f cpio
	$(COPY) pax cpio

$(OBJECT): $(HEADERS)