|
|
1.1 root 1: # %W% (Berkeley) %G%
2: #
3: # Makefile for 4.4 BSD
4: #
5: # This makefile is constructed from a machine description:
6: # config machineid
7: # Most changes should be made in the machine description
8: # /sys/tahoe/conf/``machineid''
9: # after which you should do
10: # config machineid
11: # Machine generic makefile changes should be made in
12: # /sys/conf/Makefile.``machinetype''
13: # after which config should be rerun for all machines of that type.
14: #
15: # N.B.: NO DEPENDENCIES ON FOLLOWING FLAGS ARE INVISIBLE TO MAKEFILE
16: # IF YOU CHANGE THE DEFINITION OF ANY OF THESE RECOMPILE EVERYTHING
17: #
18: # -DTRACE compile in kernel tracing hooks
19: # -DQUOTA compile in file system quotas
20: #
21: C2= /usr/old/libexec/c2
22: LD= /usr/bin/ld
23:
24: S= ../..
25: TAHOE= ../../tahoe
26:
27: INCLUDES= -I. -I$S -I$S/sys
28: COPTS= ${INCLUDES} ${IDENT} -DKERNEL
29: CFLAGS= -O ${COPTS}
30:
31: INLINECMD= ${TAHOE}/inline/obj/inline
32: INLINE= ${INLINECMD} ${INLINEOPTS}
33:
34: %OBJS
35:
36: %CFILES
37:
38: %LOAD
39:
40: clean:
41: rm -f eddep *vmunix tags *.o locore.i [a-uw-z]*.s \
42: Errs errs linterrs makelinks
43:
44: lint: /tmp param.c
45: @lint -hbxn -I. -DGENERIC ${COPTS} ${PARAM} \
46: ${TAHOE}/tahoe/Locore.c ${CFILES} ioconf.c param.c | \
47: grep -v 'struct/union .* never defined' | \
48: grep -v 'possible pointer alignment problem'
49:
50: symbols.sort: ${TAHOE}/tahoe/symbols.raw
51: grep -v '^#' ${TAHOE}/tahoe/symbols.raw \
52: | sed 's/^ //' | sort -u > symbols.sort
53:
54: ${INLINECMD}:
55: cd ${TAHOE}/inline; make
56:
57: locore.o: assym.s ${TAHOE}/tahoe/scb.s vbvec.s ${TAHOE}/tahoe/locore.s
58: locore.o: vbglue.s ${TAHOE}/include/mtpr.h ${TAHOE}/include/trap.h
59: locore.o: ${TAHOE}/include/psl.h ${TAHOE}/include/pte.h ${TAHOE}/tahoe/cp.h
60: locore.o: ${TAHOE}/tahoe/mem.h
61: locore.o:
62: cat assym.s ${TAHOE}/tahoe/scb.s vbvec.s ${TAHOE}/tahoe/locore.s \
63: vbglue.s > locore.c
64: ${CC} -E -DLOCORE ${COPTS} locore.c > locore.i
65: @echo 'as -o locore.o locore.i'
66: @${AS} -o locore.o locore.i
67: @rm locore.i
68:
69: # the following is necessary because autoconf.o depends on #if GENERIC
70: autoconf.o: Makefile
71:
72: # depend on network configuration
73: af.o uipc_proto.o locore.o: Makefile
74:
75: # depend on maxusers
76: assym.s machdep.o: Makefile
77:
78: # depends on KDB (cons.o also depends on GENERIC)
79: trap.o cons.o: Makefile
80:
81: assym.s: genassym
82: ./genassym >assym.s
83:
84: genassym:
85: ${CC} ${INCLUDES} ${IDENT} ${PARAM} -o genassym \
86: ${TAHOE}/tahoe/genassym.c
87:
88: depend: assym.s
89: mkdep ${COPTS} ${CFILES} ioconf.c
90: mkdep -a -p ${INCLUDES} ${IDENT} ${PARAM} ${TAHOE}/tahoe/genassym.c
91:
92: links:
93: egrep '#if' ${CFILES} | sed -f $S/conf/defines | \
94: sed -e 's/:.*//' -e 's/\.c/.o/' | sort -u > dontlink
95: echo ${CFILES} | tr -s ' ' '\12' | sed 's/\.c/.o/' | \
96: sort -u | comm -23 - dontlink | \
97: sed 's,../.*/\(.*.o\),rm -f \1;ln -s ../GENERIC/\1 \1,' > makelinks
98: echo 'rm -f udiv.o;ln -s ../GENERIC/udiv.o udiv.o' >> makelinks
99: echo 'rm -f urem.o;ln -s ../GENERIC/urem.o urem.o' >> makelinks
100: sh makelinks && rm -f dontlink
101:
102: tags:
103: @echo "see $S/kern/Makefile for tags"
104:
105: param.c: $S/conf/param.c
106: rm -f param.c
107: cp $S/conf/param.c .
108:
109: param.o: param.c Makefile
110: ${CC} -c ${CFLAGS} ${PARAM} param.c
111:
112: %RULES
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.