Makefile.vax revision 1.4
1#	$NetBSD: Makefile.vax,v 1.4 1994/10/26 08:01:42 cgd Exp $
2
3#	@(#)Makefile.vax	7.18 (Berkeley) 12/16/90
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/vax/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 VISIBLE 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# -DUUDMA	compile in unibus tu58 pseudo-dma code
21#
22C2=	/usr/libexec/cc1
23CC=	cc
24CPP=	cpp
25LD=	/usr/bin/ld
26AWK=	awk
27
28S=	../../../..
29VAX=	../..
30
31INCLUDES= -I. -I$S/arch -I$S -I$S/sys
32COPTS=	${INCLUDES} ${IDENT} -DKERNEL
33AOPTS=  ${COPTS} -DASSEMBLER
34CFLAGS=	${COPTS}
35LOAD_ADDRESS=80000000
36
37INLINECMD=	${VAX}/inline/obj/inline
38INLINE= ${INLINECMD} ${INLINEOPTS}
39
40#AHEADS=	${VAX}/vax/pcb.m
41
42### find out what to use for libkern
43.include "$S/lib/libkern/Makefile.inc"
44.ifndef PROF
45LIBKERN=../../../../lib/libkern/libkern.a   #        ${KERNLIB}
46.else
47LIBKERN=        ${KERNLIB_PROF}
48.endif
49
50NORMAL_C= ${CC} -c ${CFLAGS} ${PROF} $<
51NORMAL_C_C= ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $<
52NORMAL_S= ${CPP} -I. -DLOCORE ${COPTS} $< | ${AS} ${ASFLAGS} -o $*.o
53DRIVER_C= ${CC} -c ${CFLAGS} ${PROF} $<
54DRIVER_C_C= ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $<
55SYSTEM_ASMS=intvec.o subr.o
56SYSTEM_OBJS=${SYSTEM_ASMS} vnode_if.o ${OBJS} glue.o param.o ioconf.o ${LIBKERN}
57#SYSTEM_DEP=${SYSTEM_ASMS} lovm.o pmap.o
58SYSTEM_DEP=${SYSTEM_ASMS} ${SYSTEM_OBJS}
59SYSTEM_LD_HEAD=         @echo loading $@; rm -f $@
60SYSTEM_LD= ${LD} -d -e _start -T ${LOAD_ADDRESS} -o $@ ${SYSTEM_OBJS} vers.o
61#SYSTEM_LD_TAIL= @echo rearranging symbols; symorder symbols.sort $@; ${DBSYM} -f
62SYSTEM_LD_TAIL=@echo Nu {r k{rnan klar!!!!
63
64
65%OBJS
66
67%CFILES
68
69%LOAD
70
71clean:
72	rm -f eddep *vmunix tags *.o subr.i [a-tv-z]*.s \
73		Errs errs linterrs makelinks vnode_if.*
74
75lint: /tmp param.c
76	@lint -hbxn -DGENERIC ${COPTS} ${PARAM} \
77	  ${VAX}/vax/Locore.c ${CFILES} ioconf.c param.c | \
78	    grep -v 'struct/union .* never defined' | \
79	    grep -v 'possible pointer alignment problem'
80
81symbols.sort: ${VAX}/vax/symbols.raw
82	grep -v '^#' ${VAX}/vax/symbols.raw \
83	    | sed 's/^	//' | sort -u > symbols.sort
84
85${INLINECMD}:
86	cd ${VAX}/inline; make
87
88intvec.o: ${VAX}/vax/intvec.s
89	${CC} -x assembler-with-cpp -E ${AOPTS} ${VAX}/vax/intvec.s| as -o intvec.o
90
91subr.o: ${VAX}/vax/subr.s
92	${CC} -x assembler-with-cpp -E ${AOPTS} ${VAX}/vax/subr.s| as -o subr.o
93
94#
95# Den h{r filen borde st{das upp och fixas till, det blir nog n{r 
96# glue-filerna g|r vad dom ska :)
97
98#emulate.o: ${VAX}/vax/emulate.s
99#	cpp -I. ${COPTS} ${VAX}/vax/emulate.s | ${AS} -o emulate.o
100
101# the following is necessary because autoconf.o depends on #if GENERIC
102autoconf.o tu.o: Makefile
103
104# the following are necessary because the files depend on the types of
105# vax cpu's included in the system configuration
106clock.o machdep.o autoconf.o conf.o cons.o cpudata.o : Makefile
107crl.o flp.o mba.o uba.o vaxcpu.o : Makefile
108
109# depend on network configuration
110#af.o uipc_proto.o uipc_domain.o subr.o: Makefile
111
112# depends on kdb being configured
113trap.o:	Makefile
114
115# depend on maxusers
116assym.s: Makefile
117
118assym.s: genassym
119	./genassym >assym.s
120
121genassym:
122	${CC} ${INCLUDES} ${IDENT} ${PARAM} -o genassym ${VAX}/vax/genassym.c
123
124depend: assym.s ${CFILES}
125	mkdep ${COPTS} ${.ALLSRC:M*.c} ioconf.c
126	mkdep -a -p ${INCLUDES} ${IDENT} ${PARAM} ${VAX}/vax/genassym.c
127
128links:
129	egrep '#if' ${CFILES} | sed -f $S/conf/defines | \
130	  sed -e 's/:.*//' -e 's/\.c/.o/' | sort -u > dontlink
131	echo ${CFILES} | tr -s ' ' '\12' | sed 's/\.c/.o/' | \
132	  sort -u | comm -23 - dontlink | \
133	  sed 's,../.*/\(.*.o\),rm -f \1;ln -s ../GENERIC/\1 \1,' > makelinks
134	echo 'rm -f udiv.o;ln -s ../GENERIC/udiv.o udiv.o' >> makelinks
135	echo 'rm -f urem.o;ln -s ../GENERIC/urem.o urem.o' >> makelinks
136	sh makelinks && rm -f dontlink
137
138tags:
139	@echo "see $S/kern/Makefile for tags"
140
141ioconf.o:
142	${CC} -c ${CFLAGS} ${PARAM} ioconf.c
143
144#	${CC} -c -S ${COPTS} ioconf.c
145#	cat ioconf.s | ${INLINE} | ${AS} -o ioconf.o
146#	rm -f ioconf.s
147
148param.c: $S/conf/param.c
149	rm -f param.c
150	cp $S/conf/param.c .
151
152param.o: param.c Makefile
153	${CC} -c ${CFLAGS} ${PARAM} param.c
154
155glue.o: ${VAX}/vax/glue.c
156	${CC} -c ${CFLAGS} ${PARAM} ${VAX}/vax/glue.c
157
158conf.o: ${VAX}/vax/conf.c
159	${CC} -c -traditional ${CFLAGS} ${PARAM} ${VAX}/vax/conf.c
160
161newvers:
162	sh $S/conf/newvers.sh
163	${CC} ${CFLAGS} -c vers.c
164
165vnode_if.c vnode_if.h : $S/kern/vnode_if.sh $S/kern/vnode_if.src
166	AWK="${AWK}" sh $S/kern/vnode_if.sh $S/kern/vnode_if.src
167
168
169%RULES
170