added depend label
[unix-history] / usr / src / bin / Makefile
CommitLineData
1f312495
DF
1#
2# Copyright (c) 1980 Regents of the University of California.
3# All rights reserved. The Berkeley software License Agreement
4# specifies the terms and conditions for redistribution.
5#
5d3e745d 6# @(#)Makefile 5.21 (Berkeley) %G%
ed4eaf26 7#
79854fee 8DESTDIR=
ed4eaf26 9CFLAGS= -O
ed4eaf26 10
79854fee
KM
11# Programs that live in subdirectories, and have makefiles of their own.
12#
7ddb6d53 13SUBDIR= adb as awk csh diff make sed sh tp
ed4eaf26 14
79854fee
KM
15# Shell scripts that need only be installed and are never removed.
16#
17SCRIPT= false true
ed4eaf26 18
79854fee
KM
19# C programs that live in the current directory and do not need
20# explicit make lines.
21#
69c1d69e 22STD= ar cat cc chgrp chmod cmp date dd du echo ed grep hostid \
12bc7f43 23 hostname kill ld ln ls machine mkdir mt nice nm od pagesize pr \
69c1d69e 24 pwd rm rmail rmdir size stty sync tar tee test time who
ed4eaf26 25
e4cc2084
RC
26# C programs that live in the current directory and need explicit make lines.
27#
43ccba50 28NSTD= expr
e4cc2084 29
79854fee
KM
30# Programs that must run setuid to root
31#
69c1d69e 32SETUID= login mail passwd rcp su
258238d5
MK
33
34# Programs that run set-group-id operator
35#
36OPERATOR= df
ed4eaf26 37
e4cc2084 38# Programs that must run set-group-id kmem.
79854fee 39#
e4cc2084 40KMEM= ps
79854fee 41
9382c11c 42# Programs that must run set-group-id tty.
c89291e2 43#
d02c72d6 44TTY= wall write
c89291e2 45
d02c72d6 46BINS= ${STD} ${NSTD} ${SETUID} ${OPERATOR} ${KMEM} ${TTY} cp mv strip
c89291e2
KM
47
48all: ${SUBDIR} ${BINS}
79854fee 49
7e2bf8ce 50${SUBDIR}: FRC
79854fee
KM
51 cd $@; make ${MFLAGS}
52
7e2bf8ce
KM
53FRC:
54
55
d02c72d6 56${STD} ${SETUID} ${OPERATOR} ${TTY} mv cp strip:
ff17818f 57 ${CC} ${CFLAGS} -o $@ $@.c
79854fee 58
84b87180 59# take care with cp, strip, and mv, install uses them
79854fee 60install:
5ef6ff74
SL
61 install -s cp ${DESTDIR}/bin/newcp; \
62 mv ${DESTDIR}/bin/newcp ${DESTDIR}/bin/cp;
84b87180
KM
63 install -s strip ${DESTDIR}/bin/newstrip; \
64 mv ${DESTDIR}/bin/newstrip ${DESTDIR}/bin/strip;
56f5b7b8 65 rm -f ${DESTDIR}/bin/mv; cp mv ${DESTDIR}/bin/mv; rm -f mv; \
2134ed1c 66 strip ${DESTDIR}/bin/mv; chmod 755 ${DESTDIR}/bin/mv
bcefba14 67 -for i in ${SUBDIR}; do \
79854fee 68 (cd $$i; make ${MFLAGS} DESTDIR=${DESTDIR} install); done
bcefba14
RE
69 -for i in ${SCRIPT}; do (install -c $$i.sh ${DESTDIR}/bin/$$i); done
70 -for i in ${STD} ${NSTD}; do (install -s $$i ${DESTDIR}/bin/$$i); done
1697d9cb
KM
71 -for i in ${SETUID}; do \
72 (install -o root -m 4755 -s $$i ${DESTDIR}/bin/$$i); done
258238d5
MK
73 -for i in ${OPERATOR}; do \
74 (install -g operator -m 2755 -s $$i ${DESTDIR}/bin/$$i); done
1697d9cb
KM
75 -for i in ${KMEM}; do \
76 (install -g kmem -m 2755 -s $$i ${DESTDIR}/bin/$$i); done
9382c11c
MK
77 -for i in ${TTY}; do \
78 (install -g tty -m 2755 -s $$i ${DESTDIR}/bin/$$i); done
79854fee
KM
79 rm -f ${DESTDIR}/bin/[; ln ${DESTDIR}/bin/test ${DESTDIR}/bin/[
80 rm -f ${DESTDIR}/bin/e; ln ${DESTDIR}/bin/ed ${DESTDIR}/bin/e
8cf6e5dd
RC
81 rm -f ${DESTDIR}/bin/chfn; ln ${DESTDIR}/bin/passwd ${DESTDIR}/bin/chfn
82 rm -f ${DESTDIR}/bin/chsh; ln ${DESTDIR}/bin/passwd ${DESTDIR}/bin/chsh
79854fee
KM
83
84clean:
c89291e2 85 rm -f ${BINS} expr.c a.out core *.s *.o errs
79854fee 86 for i in ${SUBDIR}; do (cd $$i; make ${MFLAGS} clean); done
79854fee 87
671f8624 88depend: expr.c
5d3e745d 89 for i in ${SUBDIR}; do (cd $$i; make ${MFLAGS} depend); done
c89291e2 90 for i in ${BINS}; do \
feca6c87
KM
91 cc -M ${INCPATH} $$i.c | sed 's/\.o//' | \
92 awk ' { if ($$1 != prev) \
93 { if (rec != "") print rec; rec = $$0; prev = $$1; } \
0e0b3772
KM
94 else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \
95 else rec = rec " " $$2 } } \
96 END { print rec } ' >> makedep; done
79854fee
KM
97 echo '/^# DO NOT DELETE THIS LINE/+2,$$d' >eddep
98 echo '$$r makedep' >>eddep
99 echo 'w' >>eddep
100 cp Makefile Makefile.bak
101 ed - Makefile < eddep
0e0b3772 102 rm eddep makedep
79854fee
KM
103 echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile
104 echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile
105 echo '# see make depend above' >> Makefile
106
107# Files listed in ${NSTD} have explicit make lines given below.
108
43ccba50
JB
109expr: expr.o
110 cc ${CFLAGS} -o expr expr.o
111
79854fee
KM
112ps:
113 cc ${CFLAGS} -o ps ps.c -lm
114
115# DO NOT DELETE THIS LINE -- make depend uses it
116
12bc7f43
KM
117ar: ar.c /usr/include/sys/param.h /usr/include/sys/types.h
118ar: /usr/include/signal.h /usr/include/machine/machparam.h
119ar: /usr/include/sys/stat.h /usr/include/sys/time.h /usr/include/time.h
120ar: /usr/include/stdio.h /usr/include/ar.h
feca6c87
KM
121cat: cat.c /usr/include/stdio.h /usr/include/sys/types.h
122cat: /usr/include/sys/stat.h
12bc7f43
KM
123cc: cc.c /usr/include/sys/param.h /usr/include/sys/types.h
124cc: /usr/include/signal.h /usr/include/machine/machparam.h /usr/include/stdio.h
feca6c87 125cc: /usr/include/ctype.h /usr/include/signal.h /usr/include/sys/dir.h
69c1d69e
KM
126chgrp: chgrp.c /usr/include/stdio.h /usr/include/ctype.h
127chgrp: /usr/include/sys/types.h /usr/include/sys/stat.h /usr/include/grp.h
128chgrp: /usr/include/pwd.h /usr/include/sys/dir.h
feca6c87
KM
129chmod: chmod.c /usr/include/stdio.h /usr/include/sys/types.h
130chmod: /usr/include/sys/stat.h /usr/include/sys/dir.h
12bc7f43
KM
131cmp: cmp.c /usr/include/sys/param.h /usr/include/sys/types.h
132cmp: /usr/include/signal.h /usr/include/machine/machparam.h
133cmp: /usr/include/sys/file.h /usr/include/sys/stat.h /usr/include/stdio.h
134cmp: /usr/include/ctype.h
135date: date.c /usr/include/sys/param.h /usr/include/sys/types.h
136date: /usr/include/signal.h /usr/include/machine/machparam.h
5d3e745d
KB
137date: /usr/include/sys/time.h /usr/include/time.h /usr/include/sys/file.h
138date: /usr/include/errno.h /usr/include/syslog.h /usr/include/utmp.h
139date: /usr/include/tzfile.h /usr/include/stdio.h /usr/include/ctype.h
140date: /usr/include/strings.h /usr/include/sys/socket.h
141date: /usr/include/netinet/in.h /usr/include/netdb.h
142date: /usr/include/protocols/timed.h
143dd: dd.c /usr/include/sys/file.h /usr/include/stdio.h /usr/include/signal.h
12bc7f43
KM
144du: du.c /usr/include/stdio.h /usr/include/sys/param.h /usr/include/sys/types.h
145du: /usr/include/signal.h /usr/include/machine/machparam.h
146du: /usr/include/sys/stat.h /usr/include/sys/dir.h
feca6c87
KM
147echo: echo.c /usr/include/stdio.h
148ed: ed.c /usr/include/signal.h /usr/include/sgtty.h /usr/include/sys/ioctl.h
149ed: /usr/include/sys/ttychars.h /usr/include/sys/ttydev.h /usr/include/setjmp.h
150grep: grep.c /usr/include/stdio.h /usr/include/ctype.h
c89291e2
KM
151hostid: hostid.c /usr/include/sys/types.h /usr/include/stdio.h
152hostid: /usr/include/ctype.h /usr/include/netdb.h
feca6c87
KM
153hostname: hostname.c /usr/include/stdio.h
154kill: kill.c /usr/include/signal.h /usr/include/ctype.h
12bc7f43
KM
155ld: ld.c /usr/include/sys/param.h /usr/include/sys/types.h
156ld: /usr/include/signal.h /usr/include/machine/machparam.h
157ld: /usr/include/signal.h /usr/include/stdio.h /usr/include/ctype.h
158ld: /usr/include/ar.h /usr/include/a.out.h /usr/include/sys/exec.h
159ld: /usr/include/ranlib.h /usr/include/sys/stat.h /usr/include/sys/file.h
feca6c87
KM
160ln: ln.c /usr/include/stdio.h /usr/include/sys/types.h /usr/include/sys/stat.h
161ln: /usr/include/errno.h
12bc7f43
KM
162ls: ls.c /usr/include/sys/param.h /usr/include/sys/types.h
163ls: /usr/include/signal.h /usr/include/machine/machparam.h
164ls: /usr/include/sys/stat.h /usr/include/sys/dir.h /usr/include/stdio.h
165ls: /usr/include/sgtty.h /usr/include/sys/ioctl.h /usr/include/sys/ttychars.h
feca6c87
KM
166ls: /usr/include/sys/ttydev.h /usr/include/pwd.h /usr/include/grp.h
167ls: /usr/include/utmp.h
5d3e745d
KB
168machine: machine.c /usr/include/sys/param.h /usr/include/sys/types.h
169machine: /usr/include/signal.h /usr/include/machine/machparam.h
feca6c87
KM
170mkdir: mkdir.c /usr/include/stdio.h
171mt: mt.c /usr/include/stdio.h /usr/include/ctype.h /usr/include/sys/types.h
172mt: /usr/include/sys/mtio.h /usr/include/sys/ioctl.h
173mt: /usr/include/sys/ttychars.h /usr/include/sys/ttydev.h
12bc7f43 174mt: /usr/include/tahoevba/cyreg.h
feca6c87
KM
175nice: nice.c /usr/include/stdio.h /usr/include/sys/time.h /usr/include/time.h
176nice: /usr/include/sys/resource.h
5d3e745d
KB
177nm: nm.c /usr/include/sys/types.h /usr/include/sys/file.h /usr/include/ar.h
178nm: /usr/include/stdio.h /usr/include/ctype.h /usr/include/a.out.h
179nm: /usr/include/sys/exec.h /usr/include/stab.h /usr/include/ranlib.h
feca6c87
KM
180od: od.c /usr/include/stdio.h /usr/include/sys/types.h /usr/include/sys/stat.h
181pagesize: pagesize.c
182pr: pr.c /usr/include/stdio.h /usr/include/signal.h /usr/include/sys/types.h
183pr: /usr/include/sys/stat.h
184pwd: pwd.c /usr/include/stdio.h /usr/include/sys/param.h
12bc7f43
KM
185pwd: /usr/include/sys/types.h /usr/include/signal.h
186pwd: /usr/include/machine/machparam.h
187rm: rm.c /usr/include/stdio.h /usr/include/sys/param.h /usr/include/sys/types.h
188rm: /usr/include/signal.h /usr/include/machine/machparam.h
189rm: /usr/include/sys/stat.h /usr/include/sys/dir.h /usr/include/sys/file.h
feca6c87
KM
190rmail: rmail.c /usr/include/stdio.h /usr/include/sysexits.h
191rmdir: rmdir.c /usr/include/stdio.h
192size: size.c /usr/include/stdio.h /usr/include/a.out.h /usr/include/sys/exec.h
feca6c87
KM
193stty: stty.c /usr/include/stdio.h /usr/include/sys/ioctl.h
194stty: /usr/include/sys/ttychars.h /usr/include/sys/ttydev.h
195sync: sync.c
196tar: tar.c /usr/include/stdio.h /usr/include/sys/param.h
12bc7f43
KM
197tar: /usr/include/sys/types.h /usr/include/signal.h
198tar: /usr/include/machine/machparam.h /usr/include/sys/stat.h
199tar: /usr/include/sys/dir.h /usr/include/sys/ioctl.h
200tar: /usr/include/sys/ttychars.h /usr/include/sys/ttydev.h
201tar: /usr/include/sys/mtio.h /usr/include/sys/time.h /usr/include/time.h
202tar: /usr/include/signal.h /usr/include/errno.h /usr/include/fcntl.h
feca6c87
KM
203tee: tee.c /usr/include/signal.h /usr/include/sys/types.h
204tee: /usr/include/sys/stat.h /usr/include/errno.h
205test: test.c /usr/include/stdio.h /usr/include/sys/types.h
206test: /usr/include/sys/stat.h
207time: time.c /usr/include/stdio.h /usr/include/signal.h
208time: /usr/include/sys/types.h /usr/include/sys/time.h /usr/include/time.h
209time: /usr/include/sys/resource.h
5d3e745d 210who: who.c /usr/include/stdio.h /usr/include/utmp.h /usr/include/pwd.h
feca6c87 211who: /usr/include/ctype.h
feca6c87 212expr: expr.c /usr/include/stdio.h
12bc7f43
KM
213login: login.c /usr/include/sys/param.h /usr/include/sys/types.h
214login: /usr/include/signal.h /usr/include/machine/machparam.h
215login: /usr/include/sys/quota.h /usr/include/sys/stat.h /usr/include/sys/time.h
216login: /usr/include/time.h /usr/include/sys/resource.h /usr/include/sys/file.h
217login: /usr/include/sgtty.h /usr/include/sys/ioctl.h
218login: /usr/include/sys/ttychars.h /usr/include/sys/ttydev.h
219login: /usr/include/utmp.h /usr/include/signal.h /usr/include/pwd.h
220login: /usr/include/stdio.h /usr/include/lastlog.h /usr/include/errno.h
221login: /usr/include/ttyent.h /usr/include/syslog.h /usr/include/grp.h
222mail: mail.c /usr/include/sys/param.h /usr/include/sys/types.h
223mail: /usr/include/signal.h /usr/include/machine/machparam.h
224mail: /usr/include/sys/stat.h /usr/include/sys/file.h /usr/include/ctype.h
225mail: /usr/include/stdio.h /usr/include/pwd.h /usr/include/utmp.h
226mail: /usr/include/signal.h /usr/include/setjmp.h /usr/include/sysexits.h
227mail: /usr/include/sys/socket.h /usr/include/netinet/in.h /usr/include/netdb.h
feca6c87
KM
228passwd: passwd.c /usr/include/sys/types.h /usr/include/sys/file.h
229passwd: /usr/include/sys/time.h /usr/include/time.h /usr/include/sys/resource.h
230passwd: /usr/include/stdio.h /usr/include/signal.h /usr/include/pwd.h
231passwd: /usr/include/ndbm.h /usr/include/errno.h /usr/include/strings.h
232passwd: /usr/include/ctype.h
12bc7f43
KM
233rcp: rcp.c /usr/include/sys/param.h /usr/include/sys/types.h
234rcp: /usr/include/signal.h /usr/include/machine/machparam.h
235rcp: /usr/include/sys/stat.h /usr/include/sys/time.h /usr/include/time.h
236rcp: /usr/include/sys/ioctl.h /usr/include/sys/ttychars.h
237rcp: /usr/include/sys/ttydev.h /usr/include/netinet/in.h /usr/include/stdio.h
238rcp: /usr/include/signal.h /usr/include/pwd.h /usr/include/ctype.h
239rcp: /usr/include/netdb.h /usr/include/errno.h /usr/include/sys/dir.h
feca6c87
KM
240su: su.c /usr/include/stdio.h /usr/include/pwd.h /usr/include/grp.h
241su: /usr/include/syslog.h /usr/include/sys/types.h /usr/include/sys/time.h
242su: /usr/include/time.h /usr/include/sys/resource.h
12bc7f43
KM
243df: df.c /usr/include/sys/param.h /usr/include/sys/types.h
244df: /usr/include/signal.h /usr/include/machine/machparam.h
245df: /usr/include/sys/fs.h /usr/include/sys/stat.h /usr/include/errno.h
246df: /usr/include/stdio.h /usr/include/fstab.h /usr/include/mtab.h
c89291e2
KM
247ps: ps.c /usr/include/stdio.h /usr/include/ctype.h /usr/include/a.out.h
248ps: /usr/include/sys/exec.h /usr/include/pwd.h /usr/include/sys/param.h
12bc7f43
KM
249ps: /usr/include/sys/types.h /usr/include/signal.h
250ps: /usr/include/machine/machparam.h /usr/include/sys/ioctl.h
c89291e2
KM
251ps: /usr/include/sys/ttychars.h /usr/include/sys/ttydev.h
252ps: /usr/include/sys/tty.h /usr/include/sys/ttychars.h
253ps: /usr/include/sys/ttydev.h /usr/include/sys/dir.h /usr/include/sys/user.h
254ps: /usr/include/machine/pcb.h /usr/include/sys/dmap.h /usr/include/sys/time.h
255ps: /usr/include/time.h /usr/include/sys/resource.h /usr/include/sys/namei.h
256ps: /usr/include/sys/uio.h /usr/include/errno.h /usr/include/sys/proc.h
257ps: /usr/include/machine/pte.h /usr/include/sys/vm.h /usr/include/sys/vmparam.h
258ps: /usr/include/machine/vmparam.h /usr/include/sys/vmmac.h
259ps: /usr/include/sys/vmmeter.h /usr/include/sys/vmsystm.h
260ps: /usr/include/sys/text.h /usr/include/sys/stat.h /usr/include/sys/mbuf.h
261ps: /usr/include/math.h /usr/include/errno.h /usr/include/utmp.h
69c1d69e
KM
262wall: wall.c /usr/include/stdio.h /usr/include/utmp.h /usr/include/errno.h
263wall: /usr/include/signal.h /usr/include/sys/time.h /usr/include/time.h
264wall: /usr/include/fcntl.h /usr/include/sys/types.h /usr/include/sys/stat.h
c89291e2
KM
265write: write.c /usr/include/stdio.h /usr/include/ctype.h
266write: /usr/include/sys/types.h /usr/include/sys/stat.h /usr/include/signal.h
267write: /usr/include/utmp.h /usr/include/sys/time.h /usr/include/time.h
12bc7f43
KM
268cp: cp.c /usr/include/stdio.h /usr/include/sys/param.h /usr/include/sys/types.h
269cp: /usr/include/signal.h /usr/include/machine/machparam.h
270cp: /usr/include/sys/stat.h /usr/include/sys/dir.h /usr/include/sys/time.h
271cp: /usr/include/time.h
272mv: mv.c /usr/include/sys/param.h /usr/include/sys/types.h
273mv: /usr/include/signal.h /usr/include/machine/machparam.h
274mv: /usr/include/sys/stat.h /usr/include/sys/time.h /usr/include/time.h
275mv: /usr/include/stdio.h /usr/include/sys/dir.h /usr/include/errno.h
276mv: /usr/include/signal.h
84b87180
KM
277strip: strip.c /usr/include/a.out.h /usr/include/sys/exec.h
278strip: /usr/include/signal.h /usr/include/stdio.h /usr/include/sys/file.h
dda7c879
SL
279# DEPENDENCIES MUST END AT END OF FILE
280# IF YOU PUT STUFF HERE IT WILL GO AWAY
281# see make depend above