1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
|
# Generated automatically from Makefile.in by configure.
# Un*x Makefile for GNU tar program.
# 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
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#### Start of system configuration section. ####
srcdir = .
VPATH = .
# If you use gcc, you should either run the fixincludes script that
# comes with it or else use gcc with the -traditional option. Otherwise
# ioctl calls will be compiled incorrectly on some systems.
CC = gcc
YACC = bison -y
INSTALL = /usr/local/bin/install -c
INSTALL_PROGRAM = $(INSTALL)
INSTALL_DATA = $(INSTALL) -m 644
# 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'.
# -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.
# -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.
# -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.
# -DNO_OPEN3 If you lack the 3-argument open and want to
# disable the tar -k option instead of emulating open.
# -DXENIX If you have sys/inode.h and need it to be included.
DEF_AR_FILE = /dev/rst0
DEFBLOCKING = 20
DEFS = -DRETSIGTYPE=void -DDIRENT=1 -DHAVE_SYS_MTIO_H=1 -DHAVE_UNISTD_H=1 -DHAVE_GETGRGID=1 -DHAVE_GETPWUID=1 -DHAVE_STRING_H=1 -DHAVE_LIMITS_H=1 -DHAVE_STRSTR=1 -DHAVE_VALLOC=1 -DHAVE_MKDIR=1 -DHAVE_MKNOD=1 -DHAVE_RENAME=1 -DHAVE_FTRUNCATE=1 -DHAVE_GETCWD=1 -DHAVE_VPRINTF=1 -DDEF_AR_FILE=\"$(DEF_AR_FILE)\" -DDEFBLOCKING=$(DEFBLOCKING)
# Set this to rtapelib.o unless you defined NO_REMOTE, in which case
# make it empty.
RTAPELIB = rtapelib.o
LIBS =
CFLAGS = -g
LDFLAGS = -g
prefix = /usr/bin
exec_prefix = $(prefix)
# Prefix for each installed program, normally empty or `g'.
binprefix =
# The directory to install tar in.
bindir = $(exec_prefix)/bin
# Where to put the rmt executable.
libdir = /sbin
# 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 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 fnmatch.o getopt.o
OBJ3 = getopt1.o regex.o getdate.o $(RTAPELIB)
OBJS = $(OBJ1) $(OBJ2) $(OBJ3)
AUX = README INSTALL NEWS COPYING ChangeLog Makefile.in makefile.pc \
configure configure.in \
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 dump-remind getpagesize.h
# tar.texinfo tar.info* texinfo.tex \
all: tar rmt
# tar.info
.c.o:
$(CC) -c $(CFLAGS) $(CPPFLAGS) $(DEFS) -I$(srcdir) -I. $<
tar: $(OBJS)
$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
rmt: rmt.c
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(srcdir)/rmt.c $(LIBS)
tar.info: tar.texinfo
makeinfo $(srcdir)/tar.texinfo
install: all
$(INSTALL_PROGRAM) tar $(bindir)/$(binprefix)tar
-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
$(OBJS): tar.h pathmax.h port.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.
TAGS: $(SRCS)
etags $(SRCS)
clean:
rm -f *.o tar rmt core
mostlyclean: clean
distclean: clean
rm -f Makefile config.status
realclean: distclean
rm -f TAGS *.info* getdate.c y.tab.c
shar: $(SRCS) $(AUX)
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`
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)
-rm -rf tmp.dir
-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 *
-rm -rf tmp.dir
# Prevent GNU make v3 from overflowing arg limit on SysV.
.NOEXPORT:
|