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 # -DBSD42 If you have sys/dir.h (unless you use -DPOSIX),
38 # sys/file.h, and st_blocks in `struct stat'.
39 # -DUSG If you have System V/ANSI C string
40 # and memory functions and headers,
41 # fcntl.h, getcwd, no valloc,
42 # and ndir.h (unless you use -DDIRENT).
43 # -DDIRENT If USG and you have dirent.h instead of ndir.h.
44 # -DMAJOR_IN_MKDEV If major, minor, makedev defined in sys/mkdev.h.
45 # -DMAJOR_IN_SYSMACROS If major, minor, makedev defined in sys/sysmacros.h.
46 # -DRETSIGTYPE=int If your signal handlers return int, not void.
47 # -DNO_MTIO If you lack sys/mtio.h (magtape ioctls).
48 # -DNO_REMOTE If you do not have a remote shell or rexec.
49 # -DUSE_REXEC To use rexec for remote tape operations
50 # instead of forking rsh or remsh.
51 # -DVPRINTF_MISSING If you lack vprintf function (but have _doprnt).
52 # -DDOPRNT_MISSING If you lack _doprnt function. Also need to define
54 # -DFTIME_MISSING If you lack ftime system call.
55 # -DSTRSTR_MISSING If you lack strstr function.
56 # -DVALLOC_MISSING If you lack valloc function.
57 # -DMKDIR_MISSING If you lack mkdir and rmdir system calls.
58 # -DRENAME_MISSING If you lack rename system call.
59 # -DFTRUNCATE_MISSING If you lack frtruncate system call.
60 # -DV7 On Version 7 Unix (not tested in a long time).
61 # -DEMUL_OPEN3 If you lack a 3-argument version of open, and want
62 # to emulate it with system calls you do have.
63 # -DNO_OPEN3 If you lack the 3-argument open and want to
64 # disable the tar -k option instead of emulating open.
65 # -DXENIX If you have sys/inode.h and need it to be included.
68 # Set this to rtapelib.o unless you defined NO_REMOTE, in which case
72 DEF_AR_FILE = @DEF_AR_FILE@
76 CFLAGS = $(CDEBUG) -I. -I$(srcdir) $(DEFS) \
77 -DDEF_AR_FILE=\"$(DEF_AR_FILE)\" \
78 -DDEFBLOCKING=$(DEFBLOCKING)
82 # Prefix for each installed program, normally empty or `g'.
85 # The directory to install tar in.
86 bindir = $(prefix)/bin
88 # The directory to install the info files in.
89 infodir = $(prefix)/info
91 #### End of system configuration section. ####
93 SRC1 = tar.c create.c extract.c buffer.c getoldopt.c update.c gnu.c mangle.c
94 SRC2 = version.c list.c names.c diffarch.c port.c wildmat.c getopt.c
95 SRC3 = getopt1.c regex.c getdate.y
96 SRCS = $(SRC1) $(SRC2) $(SRC3)
97 OBJ1 = tar.o create.o extract.o buffer.o getoldopt.o update.o gnu.o mangle.o
98 OBJ2 = version.o list.o names.o diffarch.o port.o wildmat.o getopt.o
99 OBJ3 = getopt1.o regex.o getdate.o $(RTAPELIB)
100 OBJS = $(OBJ1) $(OBJ2) $(OBJ3)
101 AUX = README INSTALL COPYING ChangeLog Makefile.in makefile.pc \
102 configure configure.in \
103 tar.texinfo tar.info* texinfo.tex \
104 tar.h port.h open3.h getopt.h regex.h \
105 rmt.h rmt.c rtapelib.c alloca.c \
106 msd_dir.h msd_dir.c tcexparg.c \
107 level-0 level-1 backup-specs testpad.c
109 all: @PROGS@ tar.info
112 $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
115 $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $rmt.c<
117 tar.info: tar.texinfo
118 makeinfo $tar.texinfo<
121 $(INSTALL_PROGRAM) tar $(bindir)/$(binprefix)tar
122 -test ! -f rmt || $(INSTALL_PROGRAM) rmt /etc/rmt
123 $(INSTALL_DATA) $(srcdir)/tar.info* $(infodir)
125 $(OBJS): tar.h port.h testpad.h
126 regex.o buffer.o tar.o: regex.h
128 # getdate.y has 8 shift/reduce conflicts.
134 $(CC) -o $@ testpad.o
140 rm -f *.o tar rmt testpad testpad.h core
145 rm -f Makefile config.status
151 shar $(SRCS) $(AUX) | compress > tar-`sed -e '/version_string/!d' -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q version.c`.shar.Z
154 echo tar-`sed -e '/version_string/!d' -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q version.c` > .fname
157 ln $(SRCS) $(AUX) `cat .fname`
158 tar chZf `cat .fname`.tar.Z `cat .fname`
159 -rm -rf `cat .fname` .fname
161 tar.zoo: $(SRCS) $(AUX)
165 for X in $(SRCS) $(AUX) ; do echo $$X ; sed 's/$$/
/' $$X > tmp.dir/$$X ; done
166 cd tmp.dir ; zoo aM ../tar.zoo *