# Un*x Makefile for GNU tar program.
-# Copyright (C) 1991, 1992 Free Software Foundation, Inc.
+# Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-SHELL = /bin/sh
-
#### Start of system configuration section. ####
srcdir = @srcdir@
# Things you might add to DEFS:
# -DSTDC_HEADERS If you have ANSI C headers and libraries.
# -DHAVE_UNISTD_H If you have unistd.h.
+# -DHAVE_STRING_H If you don't have ANSI C headers but have string.h.
+# -DHAVE_LIMITS_H If you have limits.h.
# -DBSD42 If you have sys/dir.h (unless you use -DPOSIX),
# sys/file.h, and st_blocks in `struct stat'.
-# -DUSG If you have System V/ANSI C string
-# and memory functions and headers,
-# fcntl.h, getcwd, no valloc,
-# and ndir.h (unless you use -DDIRENT).
-# -DDIRENT If USG and you have dirent.h instead of ndir.h.
+# -DDIRENT If you have dirent.h.
+# -DSYSNDIR Old Xenix systems (sys/ndir.h).
+# -DSYSDIR Old BSD systems (sys/dir.h).
+# -DNDIR Old System V systems (ndir.h).
# -DMAJOR_IN_MKDEV If major, minor, makedev defined in sys/mkdev.h.
# -DMAJOR_IN_SYSMACROS If major, minor, makedev defined in sys/sysmacros.h.
# -DRETSIGTYPE=int If your signal handlers return int, not void.
-# -DNO_MTIO If you lack sys/mtio.h (magtape ioctls).
-# -DNO_REMOTE If you do not have a remote shell or rexec.
-# -DUSE_REXEC To use rexec for remote tape operations
+# -DHAVE_SYS_MTIO_H If you have sys/mtio.h (magtape ioctls).
+# -DHAVE_SYS_GENTAPE_H If you have sys/gentape.h (ISC magtape ioctls).
+# -DHAVE_NETDB_H To use rexec for remote tape operations
# instead of forking rsh or remsh.
-# -DVPRINTF_MISSING If you lack vprintf function (but have _doprnt).
-# -DDOPRNT_MISSING If you lack _doprnt function. Also need to define
-# -DVPRINTF_MISSING.
-# -DFTIME_MISSING If you lack ftime system call.
-# -DSTRSTR_MISSING If you lack strstr function.
-# -DVALLOC_MISSING If you lack valloc function.
-# -DMKDIR_MISSING If you lack mkdir and rmdir system calls.
-# -DRENAME_MISSING If you lack rename system call.
-# -DFTRUNCATE_MISSING If you lack frtruncate system call.
+# -DNO_REMOTE If you have neither a remote shell nor rexec.
+# -DHAVE_VPRINTF If you have vprintf function.
+# -DHAVE_DOPRNT If you have _doprnt function (but lack vprintf).
+# -DHAVE_FTIME If you have ftime system call.
+# -DHAVE_STRSTR If you have strstr function.
+# -DHAVE_VALLOC If you have valloc function.
+# -DHAVE_MKDIR If you have mkdir and rmdir system calls.
+# -DHAVE_MKNOD If you have mknod system call.
+# -DHAVE_RENAME If you have rename system call.
+# -DHAVE_GETCWD If not POSIX.1 but have getcwd function.
+# -DHAVE_FTRUNCATE If you have ftruncate system call.
# -DV7 On Version 7 Unix (not tested in a long time).
# -DEMUL_OPEN3 If you lack a 3-argument version of open, and want
# to emulate it with system calls you do have.
# The directory to install tar in.
bindir = $(exec_prefix)/bin
+# Where to put the rmt executable.
+libdir = $(exec_prefix)/lib
+
# The directory to install the info files in.
infodir = $(prefix)/info
#### End of system configuration section. ####
+SHELL = /bin/sh
+
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
-SRC3 = getopt1.c regex.c getdate.y
+SRC2 = version.c list.c names.c diffarch.c port.c fnmatch.c getopt.c malloc.c
+SRC3 = getopt1.c regex.c getdate.y getdate.c alloca.c
SRCS = $(SRC1) $(SRC2) $(SRC3)
OBJ1 = tar.o create.o extract.o buffer.o getoldopt.o update.o gnu.o mangle.o
-OBJ2 = version.o list.o names.o diffarch.o port.o wildmat.o getopt.o
-OBJ3 = getopt1.o regex.o getdate.o $(RTAPELIB)
+OBJ2 = version.o list.o names.o diffarch.o port.o fnmatch.o getopt.o @MALLOC@
+OBJ3 = getopt1.o regex.o getdate.o $(RTAPELIB) @ALLOCA@
OBJS = $(OBJ1) $(OBJ2) $(OBJ3)
-AUX = README INSTALL COPYING ChangeLog Makefile.in makefile.pc \
- configure configure.in \
- tar.texinfo tar.info* texinfo.tex \
- tar.h port.h open3.h getopt.h regex.h \
- rmt.h rmt.c rtapelib.c alloca.c \
+AUX = README INSTALL NEWS COPYING ChangeLog Makefile.in makefile.pc \
+ configure configure.in mkinstalldirs \
+ tar.h fnmatch.h pathmax.h port.h open3.h getopt.h regex.h \
+ rmt.h rmt.c rtapelib.c \
msd_dir.h msd_dir.c tcexparg.c \
- level-0 level-1 backup-specs testpad.c
+ level-0 level-1 backup-specs dump-remind testpad.c getpagesize.h
+# tar.texinfo tar.info* texinfo.tex
-all: @PROGS@ tar.info
+all: @PROGS@
+# tar.info
.c.o:
- $(CC) -c $(CFLAGS) $(CPPFLAGS) $(DEFS) -I$(srcdir) -I. $<
+ $(CC) -c $(CPPFLAGS) $(DEFS) -I. -I$(srcdir) $(CFLAGS) $<
tar: $(OBJS)
$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
rmt: rmt.c
- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $rmt.c<
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(srcdir)/rmt.c $(LIBS)
tar.info: tar.texinfo
- makeinfo $tar.texinfo<
+ makeinfo $(srcdir)/tar.texinfo
-install: all
+install: all installdirs
$(INSTALL_PROGRAM) tar $(bindir)/$(binprefix)tar
- -test ! -f rmt || $(INSTALL_PROGRAM) rmt /etc/rmt
- $(INSTALL_DATA) $(srcdir)/tar.info* $(infodir)
-
-$(OBJS): tar.h port.h testpad.h
+ -test ! -f rmt || $(INSTALL_PROGRAM) rmt $(libdir)/rmt
+# for file in $(srcdir)/tar.info*; \
+# do $(INSTALL_DATA) $$file $(infodir)/$$file; \
+# done
+
+uninstall:
+ rm -f $(bindir)/$(binprefix)tar $(infodir)/tar.info*
+ -rm -f $(libdir)/rmt
+
+installdirs:
+ $(SHELL) ${srcdir}/mkinstalldirs $(bindir) $(libdir) $(infodir)
+
+Makefile: Makefile.in config.status
+ $(SHELL) config.status
+config.status: configure
+ $(SHELL) config.status --recheck
+configure: configure.in
+ cd $(srcdir); autoconf
+
+$(OBJS): tar.h pathmax.h port.h testpad.h
regex.o buffer.o tar.o: regex.h
+tar.o fnmatch.o: fnmatch.h
+getdate.c: getdate.y
+ $(YACC) $(srcdir)/getdate.y
+ mv y.tab.c getdate.c
# getdate.y has 8 shift/reduce conflicts.
testpad.h: testpad
rm -f Makefile config.status
realclean: distclean
- rm -f TAGS *.info*
+ rm -f TAGS *.info* getdate.c y.tab.c
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
+ shar $(SRCS) $(AUX) | gzip > tar-`sed -e '/version_string/!d' -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q version.c`.shar.z
dist: $(SRCS) $(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 $(SRCS) $(AUX) `cat .fname`
- tar chZf `cat .fname`.tar.Z `cat .fname`
+ for file in $(SRCS) $(AUX); do \
+ ln $$file `cat .fname` || cp $$file `cat .fname`; done
+ tar chzf `cat .fname`.tar.z `cat .fname`
-rm -rf `cat .fname` .fname
tar.zoo: $(SRCS) $(AUX)