317 lines
8.6 KiB
Makefile
317 lines
8.6 KiB
Makefile
|
# Makefile for GNU tar program.
|
||
|
|
||
|
SHELL = /bin/sh
|
||
|
|
||
|
# In order to disable remote-tape support, add -DNO_REMOTE to the
|
||
|
# appropriate DEFS line, and remove rtape_lib.* from LOCAL_{SRC,OBJ}
|
||
|
# For Ultrix 3.1, you will have to compile rtape_lib.c with -DUSG.
|
||
|
# Add -DUSE_REXEC to use rexec for remote tape operations
|
||
|
# instead of forking rsh or remsh.
|
||
|
#
|
||
|
# If tar fails to properly print error msgs, or core-dumps doing same,
|
||
|
# you may need to change which version of msg...() you are using.
|
||
|
# To do so, add one of the following to your DEFS= line
|
||
|
# -DSTDC_MSG If you are using an ANSI compiler, and have vfprintf().
|
||
|
# -DVARARGS_MSG If you have varargs.h and vfprintf()
|
||
|
# -DDOPRNT_MSG If you have _doprnt(), and no useful varargs support
|
||
|
# -DLOSING_MSG If nothing else works.
|
||
|
#
|
||
|
# Some non-BSD systems may have to add -DNEED_TZSET in order to have getdate.y
|
||
|
# compile correctly.
|
||
|
#
|
||
|
# If you have a system V system which defines size_t, add -DHAVE_SIZE_T.
|
||
|
# If you have a system which defines strstr, add -DHAVE_STRSTR.
|
||
|
#
|
||
|
# If you can't use remote tar with the rmt library, you can still get
|
||
|
# some stuff to work right by adding -DUSE_REXEC.
|
||
|
#
|
||
|
# Some people's systems define a prototype for signal handlers which
|
||
|
# require them to be declared as void. If you get such problems in
|
||
|
# rtape_lib, function command, then define -DSIGNAL_VOID.
|
||
|
#
|
||
|
# getdate.y has 8 shift/reduce conflicts.
|
||
|
#
|
||
|
# In addition to setting DEFS appropriately for your system, you might
|
||
|
# have to hand edit the #defines and #undefs in port.c.
|
||
|
#
|
||
|
|
||
|
## GNU version
|
||
|
#DEFS = -DBSD42
|
||
|
#LOCAL_SRC =
|
||
|
#LOCAL_OBJ =
|
||
|
#LDFLAGS =
|
||
|
#LIBS = -lutils
|
||
|
#LINT = lint
|
||
|
#LINTFLAGS = -abchx
|
||
|
#DEF_AR_FILE = \"-\"
|
||
|
#DEFBLOCKING = 20
|
||
|
#O = o
|
||
|
|
||
|
## Berserkeley version
|
||
|
CC=gcc
|
||
|
DEFS = -DBSD42 -DSTDC_MSG -DNEED_TZSET -DUSE_REXEC
|
||
|
LOCAL_SRC = getdate.y
|
||
|
LOCAL_OBJ = getdate.$O
|
||
|
LDFLAGS =
|
||
|
LIBS =
|
||
|
LINT = lint
|
||
|
LINTFLAGS = -abchx
|
||
|
DEF_AR_FILE = \"/dev/rmt8\"
|
||
|
DEFBLOCKING = 20
|
||
|
O = o
|
||
|
|
||
|
## Ultrix
|
||
|
#CC=gcc
|
||
|
#DEFS = -DBSD42 -DSIGNAL_VOID
|
||
|
#LOCAL_SRC = getdate.y rtape_lib.c
|
||
|
#LOCAL_OBJ = getdate.$O rtape_lib.$O
|
||
|
#LDFLAGS =
|
||
|
#LIBS =
|
||
|
#LINT = lint
|
||
|
#LINTFLAGS = -abchx
|
||
|
#DEF_AR_FILE = \"/dev/rmt8\"
|
||
|
#DEFBLOCKING = 20
|
||
|
#O = o
|
||
|
|
||
|
# HPUX 7.0 version
|
||
|
#DEFS = -DBSD42 -Dhpux -DVARARGS_MSG
|
||
|
#LOCAL_SRC = getdate.y rtape_lib.c
|
||
|
#LOCAL_OBJ = getdate.$O rtape_lib.$O alloca.$O
|
||
|
#LDFLAGS =
|
||
|
#LIBS = -lBSD
|
||
|
#LINT = lint
|
||
|
#LINTFLAGS = -abchx
|
||
|
#DEF_AR_FILE = \"/dev/rct/c3d0s2\"
|
||
|
#DEFBLOCKING = 20
|
||
|
#O = o
|
||
|
|
||
|
# IBM AIX version -- this saves "hidden" directories, but doesn't restore
|
||
|
# them as hidden. Add -Di386 for a PS/2. If you don't have GCC, turn it off.
|
||
|
# Some people think you need -lbsd, some don't. Dunno.
|
||
|
#CC=gcc
|
||
|
#DEFS= -DUSG -Daix -DSTDC_MSG -DHAVE_MTIO -DHAVE_SIZE_T -DSIGNAL_VOID
|
||
|
#LOCAL_SRC = getdate.y rtape_lib.c
|
||
|
#LOCAL_OBJ = getdate.$O rtape_lib.$O
|
||
|
#LDFLAGS =
|
||
|
#LIBS = -lbsd
|
||
|
#LINT = lint
|
||
|
#LINTFLAGS = -p
|
||
|
#DEF_AR_FILE = \"/dev/rmt0\"
|
||
|
#DEFBLOCKING = 20
|
||
|
#O = o
|
||
|
|
||
|
# USG version
|
||
|
# Add -DNDIR to DEFS if your system uses ndir.h instead of dirent.h
|
||
|
# Add -DDIRECT to DEFS if your system uses 'struct direct' instead of
|
||
|
# 'struct dirent' (this is the case at least with one add-on ndir
|
||
|
# library)
|
||
|
# Add -DHAVE_MTIO to DEFS if your system has sys/mtio.h and defines MTIOCTOP
|
||
|
# Add -DDAYLIGHT_MISSING to DEFS if your system doesn't define the
|
||
|
# external variable `daylight'.
|
||
|
# Add -lndir to LIBS if your ndir routines aren't in libc.a
|
||
|
# Add -lPW to LIBS if you don't compile with gcc (to get alloca)
|
||
|
#DEFS = -DUSG -DSIGNAL_VOID #-DNDIR -DDIRECT -DHAVE_MTIO
|
||
|
#LOCAL_SRC = getdate.y rtape_lib.c
|
||
|
#LOCAL_OBJ = getdate.$O rtape_lib.$O
|
||
|
#LDFLAGS =
|
||
|
#LIBS = #-lndir -lPW
|
||
|
#LINT = lint
|
||
|
#LINTFLAGS = -p
|
||
|
#DEF_AR_FILE = \"/dev/rmt8\"
|
||
|
#DEFBLOCKING = 20
|
||
|
#O = o
|
||
|
|
||
|
# UniSoft's Uniplus SVR2 with NFS
|
||
|
#DEFS = -DUSG -DUNIPLUS -DNFS -DSVR2 -DSIGNAL_VOID
|
||
|
#LOCAL_SRC = getdate.y rtape_lib.c
|
||
|
#LOCAL_OBJ = getdate.$O rtape_lib.$O
|
||
|
#LDFLAGS =
|
||
|
#LIBS = -lndir
|
||
|
#LINT = lint
|
||
|
#LINTFLAGS = -bx
|
||
|
#DEF_AR_FILE = \"/dev/rmt8\"
|
||
|
#DEFBLOCKING = 20
|
||
|
#O = o
|
||
|
|
||
|
# MASSCOMP version
|
||
|
#CC = ucb cc
|
||
|
#DEFS = -DBSD42
|
||
|
#LOCAL_SRC = getdate.y rtape_lib.c
|
||
|
#LOCAL_OBJ = getdate.$O rtape_lib.$O
|
||
|
#LDFLAGS =
|
||
|
#LIBS =
|
||
|
#LINT = lint
|
||
|
#LINTFLAGS = -bx
|
||
|
#DEF_AR_FILE = \"/dev/rmt0\"
|
||
|
#DEFBLOCKING = 20
|
||
|
#O = o
|
||
|
|
||
|
# (yuk) MS-DOS (Microsoft C 4.0) version
|
||
|
#MODEL = S
|
||
|
#DEFS = -DNONAMES -A$(MODEL) -DNO_REMOTE
|
||
|
#LOCAL_SRC = getdate.y rtape_lib.c
|
||
|
#LOCAL_OBJ = getdate.$O rtape_lib.$O
|
||
|
#LDFLAGS =
|
||
|
#LIBS = $(MODEL)dir.lib
|
||
|
#LINT = $(CC)
|
||
|
#LINTFLAGS = -W3
|
||
|
#DEF_AR_FILE = \"tar.out\"
|
||
|
#DEFBLOCKING = 20
|
||
|
#O = obj
|
||
|
|
||
|
# V7 version
|
||
|
# Pick open3 emulation or nonexistence. See open3.h, port.c.
|
||
|
##DEFS = -DV7 -DEMUL_OPEN3 -Dvoid=int
|
||
|
##DEFS = -DV7 -DNO_OPEN3 -Dvoid=int
|
||
|
#LOCAL_SRC = getdate.y rtape_lib.c
|
||
|
#LOCAL_OBJ = getdate.$O rtape_lib.$O
|
||
|
#LDFLAGS =
|
||
|
#LIBS = -lndir
|
||
|
#LINT = lint
|
||
|
#LINTFLAGS = -abchx
|
||
|
#DEF_AR_FILE = \"/dev/rmt8\"
|
||
|
#DEFBLOCKING = 20
|
||
|
#O = o
|
||
|
|
||
|
# Minix version
|
||
|
# No lint, so no lintflags. Default file is stdin/out. (Minix "tar"
|
||
|
# doesn't even take an "f" flag, it assumes argv[2] is the archive name!)
|
||
|
# Minix "make" doesn't expand macros right, so Minix users will have
|
||
|
# to expand CFLAGS, SRCS, O, etc by hand, or fix your make. Not my problem!
|
||
|
# You'll also need to come up with ctime(), the directory
|
||
|
# library, and a fixed doprintf() that handles %*s. Put this stuff in
|
||
|
# the "SUBSRC/SUBOBJ" macro below if you didn't put it in your C library.
|
||
|
# Note that Minix "cc" produces ".s" files, not .o's, so O = s has been set.
|
||
|
#
|
||
|
# Pick open3 emulation or nonexistence. See open3.h, port.c.
|
||
|
##DEFS = -DV7 -DMINIX -DEMUL_OPEN3
|
||
|
##DEFS = -DV7 -DMINIX -DNO_OPEN3
|
||
|
#LOCAL_SRC = getdate.y rtape_lib.c
|
||
|
#LOCAL_OBJ = getdate.$O rtape_lib.$O
|
||
|
#LDFLAGS =
|
||
|
#LIBS =
|
||
|
#DEF_AR_FILE = \"-\"
|
||
|
#DEFBLOCKING = 8 # No good reason for this, change at will
|
||
|
#O = s
|
||
|
|
||
|
# Xenix version
|
||
|
#DEFS = -DUSG -DXENIX -DSIGNAL_VOID
|
||
|
#LOCAL_SRC = getdate.y rtape_lib.c
|
||
|
#LOCAL_OBJ = getdate.$O rtape_lib.$O
|
||
|
#LDFLAGS =
|
||
|
#LIBS = -lx
|
||
|
#LINT = lint
|
||
|
#LINTFLAGS = -p
|
||
|
#DEF_AR_FILE = \"/dev/rmt8\"
|
||
|
#DEFBLOCKING = 20
|
||
|
#O = o
|
||
|
|
||
|
# SGI 4D version
|
||
|
# You will need to define NEED_TZSET in getdate.y
|
||
|
#DEFS = -DUSG -I/usr/include/bsd
|
||
|
#LOCAL_SRC = getdate.y rtape_lib.c
|
||
|
#LOCAL_OBJ = getdate.$O rtape_lib.$O
|
||
|
#LDFLAGS =
|
||
|
#LIBS = -lxmalloc
|
||
|
#LINT = lint
|
||
|
#LINTFLAGS = -p
|
||
|
#DEF_AR_FILE = \"/dev/tape\"
|
||
|
#DEFBLOCKING = 20
|
||
|
#O = o
|
||
|
|
||
|
#CC = gcc
|
||
|
#TARGET_ARCH =
|
||
|
|
||
|
CFLAGS = $(COPTS) $(ALLDEFS)
|
||
|
ALLDEFS = $(DEFS) \
|
||
|
-DDEF_AR_FILE=$(DEF_AR_FILE) \
|
||
|
-DDEFBLOCKING=$(DEFBLOCKING)
|
||
|
# next line for Debugging
|
||
|
#COPTS = -g
|
||
|
# next line for Production
|
||
|
#COPTS = -O
|
||
|
|
||
|
# Add things here like readdir that aren't in your standard libraries.
|
||
|
# (E.g. MSDOS needs msd_dir.c, msd_dir.obj)
|
||
|
SUBSRC=
|
||
|
SUBOBJ=
|
||
|
|
||
|
# Destination directory and installation program for make install
|
||
|
bindir = /usr/local/gnubin
|
||
|
INSTALL = cp
|
||
|
RM = rm -f
|
||
|
|
||
|
SRC1 = tar.c create.c extract.c buffer.c getoldopt.c update.c gnu.c mangle.c
|
||
|
SRC2 = version.c list.c names.c diffarch.c port.c wildmat.c getopt.c getopt1.c regex.c
|
||
|
SRC3 = $(LOCAL_SRC) $(SUBSRC)
|
||
|
SRCS = $(SRC1) $(SRC2) $(SRC3)
|
||
|
OBJ1 = tar.$O create.$O extract.$O buffer.$O getoldopt.$O list.$O update.$O
|
||
|
OBJ2 = version.$O names.$O diffarch.$O port.$O wildmat.$O getopt.$O getopt1.$O regex.$O
|
||
|
OBJ3 = gnu.$O mangle.$O $(LOCAL_OBJ) $(SUBOBJ)
|
||
|
OBJS = $(OBJ1) $(OBJ2) $(OBJ3)
|
||
|
# AUX = README PORTING Makefile TODO tar.h port.h open3.h \
|
||
|
# msd_dir.h msd_dir.c
|
||
|
AUX = README COPYING ChangeLog Makefile tar.texinfo tar.h port.h open3.h \
|
||
|
rmt.h msd_dir.h msd_dir.c rtape_server.c rtape_lib.c getdate.y \
|
||
|
getopt.h regex.h level-0 level-1 backup-specs testpad.c
|
||
|
|
||
|
all: tar rmt
|
||
|
|
||
|
tar: $(OBJS)
|
||
|
$(CC) $(LDFLAGS) -o tar $(COPTS) $(OBJS) $(LIBS)
|
||
|
|
||
|
rmt: rtape_server.c
|
||
|
$(CC) $(CFLAGS) $(LDFLAGS) -o rmt rtape_server.c
|
||
|
|
||
|
testpad.h: testpad
|
||
|
testpad > testpad.h
|
||
|
|
||
|
testpad: testpad.o
|
||
|
$(CC) -o testpad testpad.o
|
||
|
|
||
|
# command is too long for Messy-Dos (128 char line length limit) so
|
||
|
# this kludge is used...
|
||
|
# @echo $(OBJ1) + > command
|
||
|
# @echo $(OBJ2) >> command
|
||
|
# link @command, $@,,$(LIBS) /NOI;
|
||
|
# @$(RM) command
|
||
|
|
||
|
install: all
|
||
|
$(RM) $(bindir)/tar
|
||
|
$(INSTALL) tar $(bindir)/tar
|
||
|
$(INSTALL) rmt /etc/rmt
|
||
|
|
||
|
lint: $(SRCS)
|
||
|
$(LINT) $(LINTFLAGS) $(ALLDEFS) $(SRCS)
|
||
|
|
||
|
TAGS: $(SRCS)
|
||
|
etags $(SRCS)
|
||
|
|
||
|
clean:
|
||
|
$(RM) errs $(OBJS) tar rmt testpad.o testpad testpad.h
|
||
|
|
||
|
distclean: clean
|
||
|
|
||
|
realclean: clean
|
||
|
|
||
|
shar: $(SRCS) $(AUX)
|
||
|
shar $(SRCS) $(AUX) | compress > tar-`sed -e '/version_string/!d' -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q version.c`.shar.Z
|
||
|
|
||
|
dist: $(SRC1) $(SRC2) $(AUX)
|
||
|
echo tar-`sed -e '/version_string/!d' -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q < version.c` > .fname
|
||
|
-rm -rf `cat .fname`
|
||
|
mkdir `cat .fname`
|
||
|
ln $(SRC1) $(SRC2) $(AUX) `cat .fname`
|
||
|
tar chZf `cat .fname`.tar.Z `cat .fname`
|
||
|
-rm -rf `cat .fname` .fname
|
||
|
|
||
|
tar.zoo: $(SRCS) $(AUX)
|
||
|
-mkdir tmp.dir
|
||
|
-rm tar.zoo
|
||
|
for X in $(SRCS) $(AUX) ; do echo $$X ; sed 's/$$/
/' $$X > tmp.dir/$$X ; done
|
||
|
cd tmp.dir ; zoo aM ../tar.zoo *
|
||
|
-rmdir tmp.dir
|
||
|
|
||
|
$(OBJS): tar.h port.h testpad.h
|
||
|
regex.$O tar.$O: regex.h
|