BSD 4_3 development
[unix-history] / usr / src / usr.bin / Makefile
CommitLineData
9e78675a
C
1# Makefile 4.39 85/10/11
2#
3DESTDIR=
4CFLAGS= -O
5
6# Programs that live in subdirectories, and have makefiles of their own.
7#
8SUBDIR= at calendar dc diction diff3 efl eqn f77 find graph learn lex lint \
9 m4 neqn nroff plot prof ratfor refer spell struct tbl tip troff uucp \
10 xsend yacc
11
12# Shell scripts that need only be installed and are never removed.
13#
14SCRIPT= install lorder nohup
15
16# C programs that live in the current directory and do not need
17# explicit make lines.
18#
19STD= ar11 basename cal cb checkeq col comm crypt deroff \
20 fgrep file join look mesg ptx ranlib \
21 rev sleep sort spline split sum tabs tc tk touch tr tsort tty \
22 uniq units
23
24# C programs that live in the current directory and need explicit make lines.
25# (make depend has special rules for these files)
26#
27NSTD= bc egrep
28
29# Programs that must run set-group-id kmem.
30#
31KMEM= iostat
32
33all: ${SUBDIR} ${STD} ${NSTD} ${KMEM}
34
35${SUBDIR}: FRC
36 cd $@; make ${MFLAGS}
37
38FRC:
39
40bc egrep:
41 ${YACC} ${YFLAGS} $@.y
42 ${CC} -c ${CFLAGS} y.tab.c
43 mv y.tab.o $@.o
44 ${CC} -o $@ $@.o
45 rm -f $@.o
46
47${STD} ${KMEM}:
48 ${CC} ${CFLAGS} -o $@ $@.c
49
50install:
51 -for i in ${SUBDIR}; do \
52 (cd $$i; make ${MFLAGS} DESTDIR=${DESTDIR} install); done
53 -for i in ${SCRIPT}; do \
54 (install -c -m 555 $$i.sh ${DESTDIR}/usr/bin/$$i); done
55 -for i in ${STD} ${NSTD}; do \
56 (install -s $$i ${DESTDIR}/usr/bin/$$i); done
57 -for i in ${KMEM}; do \
58 (install -s -g kmem -m 2755 $$i ${DESTDIR}/usr/bin/$$i); done
59 install -c units.lib ${DESTDIR}/usr/lib/units
60
61clean:
62 rm -f a.out core *.s *.o y.tab.c
63 for i in ${SUBDIR}; do (cd $$i; make ${MFLAGS} clean); done
64 rm -f ${STD} ${NSTD} ${KMEM}
65
66# beware of the non-standard stuff for bc and egrep
67depend:
68 for i in ${STD} ${KMEM}; do \
69 cc -M ${INCPATH} $$i.c | sed 's/\.o//' | \
70 awk ' { if ($$1 != prev) \
71 { if (rec != "") print rec; rec = $$0; prev = $$1; } \
72 else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \
73 else rec = rec " " $$2 } } \
74 END { print rec } ' >> makedep; done
75 for i in bc egrep; do \
76 cc -M ${INCPATH} $$i.y | sed 's/\.o//' | \
77 awk ' { if ($$1 != prev) \
78 { if (rec != "") print rec; rec = $$0; prev = $$1; } \
79 else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \
80 else rec = rec " " $$2 } } \
81 END { print rec } ' >> makedep; done
82 echo '/^# DO NOT DELETE THIS LINE/+2,$$d' >eddep
83 echo '$$r makedep' >>eddep
84 echo 'w' >>eddep
85 cp Makefile Makefile.bak
86 ed - Makefile < eddep
87 rm eddep makedep
88 echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile
89 echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile
90 echo '# see make depend above' >> Makefile
91
92# Files listed in ${NSTD} have explicit make lines given below.
93
94# DO NOT DELETE THIS LINE -- make depend uses it
95
96ar11: ar11.c /usr/include/signal.h /usr/include/stdio.h
97ar11: /usr/include/sys/types.h /usr/include/sys/stat.h
98basename: basename.c /usr/include/stdio.h
99cal: cal.c
100cb: cb.c /usr/include/stdio.h
101checkeq: checkeq.c /usr/include/stdio.h
102col: col.c /usr/include/stdio.h
103comm: comm.c /usr/include/stdio.h
104crypt: crypt.c /usr/include/stdio.h
105deroff: deroff.c /usr/include/stdio.h
106fgrep: fgrep.c /usr/include/stdio.h /usr/include/ctype.h
107fgrep: /usr/include/sys/param.h /usr/include/machine/machparam.h
108fgrep: /usr/include/signal.h /usr/include/sys/types.h /usr/include/sys/stat.h
109file: file.c /usr/include/sys/param.h /usr/include/machine/machparam.h
110file: /usr/include/signal.h /usr/include/sys/types.h /usr/include/sys/stat.h
111file: /usr/include/stdio.h /usr/include/ctype.h /usr/include/a.out.h
112file: /usr/include/sys/exec.h
113join: join.c /usr/include/stdio.h
114look: look.c /usr/include/stdio.h /usr/include/ctype.h
115mesg: mesg.c /usr/include/stdio.h /usr/include/sys/types.h
116mesg: /usr/include/sys/stat.h
117ptx: ptx.c /usr/include/stdio.h /usr/include/ctype.h /usr/include/signal.h
118ranlib: ranlib.c /usr/include/sys/types.h /usr/include/ar.h
119ranlib: /usr/include/ranlib.h /usr/include/a.out.h /usr/include/sys/exec.h
120ranlib: /usr/include/stdio.h
121rev: rev.c /usr/include/stdio.h
122sleep: sleep.c
123sort: sort.c /usr/include/stdio.h /usr/include/ctype.h /usr/include/signal.h
124sort: /usr/include/sys/types.h /usr/include/sys/stat.h
125spline: spline.c /usr/include/stdio.h /usr/include/math.h
126split: split.c /usr/include/stdio.h
127sum: sum.c /usr/include/stdio.h
128tabs: tabs.c /usr/include/stdio.h /usr/include/sgtty.h /usr/include/sys/ioctl.h
129tabs: /usr/include/sys/ttychars.h /usr/include/sys/ttydev.h
130tc: tc.c /usr/include/signal.h /usr/include/stdio.h
131tk: tk.c /usr/include/stdio.h /usr/include/signal.h
132touch: touch.c /usr/include/stdio.h /usr/include/sys/types.h
133touch: /usr/include/sys/stat.h
134tr: tr.c /usr/include/stdio.h
135tsort: tsort.c /usr/include/stdio.h
136tty: tty.c
137uniq: uniq.c /usr/include/stdio.h /usr/include/ctype.h
138units: units.c /usr/include/stdio.h
139iostat: iostat.c /usr/include/stdio.h /usr/include/ctype.h /usr/include/nlist.h
140iostat: /usr/include/signal.h /usr/include/sys/types.h /usr/include/sys/file.h
141iostat: /usr/include/sys/buf.h /usr/include/sys/dk.h
142iostat: /usr/include/vaxuba/ubavar.h /usr/include/vaxmba/mbavar.h
143bc: bc.y /usr/include/stdio.h
144egrep: egrep.y /usr/include/stdio.h /usr/include/sys/types.h
145egrep: /usr/include/sys/stat.h
146# DEPENDENCIES MUST END AT END OF FILE
147# IF YOU PUT STUFF HERE IT WILL GO AWAY
148# see make depend above