1 # Un*x Makefile for GNU tar program.
2 # Copyright (C) 1991, 1992 Free Software Foundation, Inc.
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 2, or (at your option)
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 #### Start of system configuration section. ####
25 # If you use gcc, you should either run the fixincludes script that
26 # comes with it or else use gcc with the -traditional option. Otherwise
27 # ioctl calls will be compiled incorrectly on some systems.
31 INSTALL_PROGRAM = @INSTALL_PROGRAM@
32 INSTALL_DATA = @INSTALL_DATA@
34 # Things you might add to DEFS:
35 # -DSTDC_HEADERS If you have ANSI C headers and libraries.
36 # -DHAVE_UNISTD_H If you have unistd.h.
37 # -DHAVE_LIMITS_H If you have limits.h.
38 # -DBSD42 If you have sys/dir.h (unless you use -DPOSIX),
39 # sys/file.h, and st_blocks in `struct stat'.
40 # -DUSG If you have System V/ANSI C string
41 # and memory functions and headers,
42 # fcntl.h, getcwd, no valloc,
43 # and ndir.h (unless you use -DDIRENT).
44 # -DDIRENT If USG and you have dirent.h instead of ndir.h.
45 # -DMAJOR_IN_MKDEV If major, minor, makedev defined in sys/mkdev.h.
46 # -DMAJOR_IN_SYSMACROS If major, minor, makedev defined in sys/sysmacros.h.
47 # -DRETSIGTYPE=int If your signal handlers return int, not void.
48 # -DHAVE_SYS_MTIO_H If you have sys/mtio.h (magtape ioctls).
49 # -DHAVE_SYS_GENTAPE_H If you have sys/gentape.h (ISC magtape ioctls).
50 # -DHAVE_NETDB_H To use rexec for remote tape operations
51 # instead of forking rsh or remsh.
52 # -DNO_REMOTE If you have neither a remote shell nor rexec.
53 # -DHAVE_VPRINTF If you have vprintf function.
54 # -DHAVE_DOPRNT If you have _doprnt function (but lack vprintf).
55 # -DHAVE_FTIME If you have ftime system call.
56 # -DHAVE_STRSTR If you have strstr function.
57 # -DHAVE_VALLOC If you have valloc function.
58 # -DHAVE_MKDIR If you have mkdir and rmdir system calls.
59 # -DHAVE_MKNOD If you have mknod system call.
60 # -DHAVE_RENAME If you have rename system call.
61 # -DHAVE_FTRUNCATE If you have ftruncate system call.
62 # -DV7 On Version 7 Unix (not tested in a long time).
63 # -DEMUL_OPEN3 If you lack a 3-argument version of open, and want
64 # to emulate it with system calls you do have.
65 # -DNO_OPEN3 If you lack the 3-argument open and want to
66 # disable the tar -k option instead of emulating open.
67 # -DXENIX If you have sys/inode.h and need it to be included.
69 DEF_AR_FILE = @DEF_AR_FILE@
71 DEFS = @DEFS@ -DDEF_AR_FILE=\"$(DEF_AR_FILE)\" -DDEFBLOCKING=$(DEFBLOCKING)
73 # Set this to rtapelib.o unless you defined NO_REMOTE, in which case
82 exec_prefix = $(prefix)
84 # Prefix for each installed program, normally empty or `g'.
87 # The directory to install tar in.
88 bindir = $(exec_prefix)/bin
90 # The directory to install the info files in.
91 infodir = $(prefix)/info
93 #### End of system configuration section. ####
95 SRC1 = tar.c create.c extract.c buffer.c getoldopt.c update.c gnu.c mangle.c
96 SRC2 = version.c list.c names.c diffarch.c port.c wildmat.c getopt.c malloc.c
97 SRC3 = getopt1.c regex.c getdate.y
98 SRCS = $(SRC1) $(SRC2) $(SRC3)
99 OBJ1 = tar.o create.o extract.o buffer.o getoldopt.o update.o gnu.o mangle.o
100 OBJ2 = version.o list.o names.o diffarch.o port.o wildmat.o getopt.o @MALLOC@
101 OBJ3 = getopt1.o regex.o getdate.o $(RTAPELIB)
102 OBJS = $(OBJ1) $(OBJ2) $(OBJ3)
103 AUX = README INSTALL COPYING ChangeLog Makefile.in makefile.pc \
104 configure configure.in \
105 tar.h pathmax.h port.h open3.h getopt.h regex.h \
106 rmt.h rmt.c rtapelib.c alloca.c \
107 msd_dir.h msd_dir.c tcexparg.c \
108 level-0 level-1 backup-specs testpad.c getpagesize.h
109 # tar.texinfo tar.info* texinfo.tex \
111 all: @PROGS@ # tar.info
114 $(CC) -c $(CFLAGS) $(CPPFLAGS) $(DEFS) -I$(srcdir) -I. $<
117 $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
120 $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(srcdir)/rmt.c
122 tar.info: tar.texinfo
123 makeinfo $(srcdir)/tar.texinfo
126 $(INSTALL_PROGRAM) tar $(bindir)/$(binprefix)tar
127 -test ! -f rmt || $(INSTALL_PROGRAM) rmt /etc/rmt
128 $(INSTALL_DATA) $(srcdir)/tar.info* $(infodir)
130 $(OBJS): tar.h pathmax.h port.h testpad.h
131 regex.o buffer.o tar.o: regex.h
133 # getdate.y has 8 shift/reduce conflicts.
139 $(CC) -o $@ testpad.o
145 rm -f *.o tar rmt testpad testpad.h core
150 rm -f Makefile config.status
156 shar $(SRCS) $(AUX) | compress > tar-`sed -e '/version_string/!d' -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q version.c`.shar.Z
159 echo tar-`sed -e '/version_string/!d' -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q version.c` > .fname
162 ln $(SRCS) $(AUX) `cat .fname`
163 tar chZf `cat .fname`.tar.Z `cat .fname`
164 -rm -rf `cat .fname` .fname
166 tar.zoo: $(SRCS) $(AUX)
170 for X in $(SRCS) $(AUX) ; do echo $$X ; sed 's/$$/
/' $$X > tmp.dir/$$X ; done
171 cd tmp.dir ; zoo aM ../tar.zoo *
174 # Prevent GNU make v3 from overflowing arg limit on SysV.