xref: /netbsd-src/sys/arch/vax/conf/Makefile.vax (revision 6929ad87a5c37179228b21785018bbb66fe06b56)
1#	$NetBSD: Makefile.vax,v 1.6 1995/02/23 17:50:57 ragge 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} -O -c ${CFLAGS} ${PROF} $<
51NORMAL_C_C= ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $<
52NORMAL_S= ${CC} -x assembler-with-cpp -E -I. -DLOCORE ${COPTS} $< | \
53	${AS} ${ASFLAGS} -o $*.o
54DRIVER_C= ${CC} -c ${CFLAGS} ${PROF} $<
55DRIVER_C_C= ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $<
56SYSTEM_ASMS=intvec.o subr.o
57SYSTEM_OBJS=${SYSTEM_ASMS} lim.o vnode_if.o ${OBJS} param.o ioconf.o ${LIBKERN}
58#SYSTEM_DEP=${SYSTEM_ASMS} lovm.o pmap.o
59SYSTEM_DEP=${SYSTEM_ASMS} ${SYSTEM_OBJS}
60SYSTEM_LD_HEAD=         @echo loading $@; rm -f $@
61SYSTEM_LD= ${LD} -d -e _start -T ${LOAD_ADDRESS} -o $@ ${SYSTEM_OBJS} vers.o
62#SYSTEM_LD_TAIL= @echo rearranging symbols; symorder symbols.sort $@; ${DBSYM} -f
63SYSTEM_LD_TAIL=@echo Nu {r k{rnan klar!!!!
64
65
66%OBJS
67
68%CFILES
69
70%LOAD
71
72clean:
73	rm -f eddep *vmunix tags *.o subr.i [a-tv-z]*.s \
74		Errs errs linterrs makelinks vnode_if.*
75
76lint: /tmp param.c
77	@lint -hbxn -DGENERIC ${COPTS} ${PARAM} \
78	  ${VAX}/vax/Locore.c ${CFILES} ioconf.c param.c | \
79	    grep -v 'struct/union .* never defined' | \
80	    grep -v 'possible pointer alignment problem'
81
82symbols.sort: ${VAX}/vax/symbols.raw
83	grep -v '^#' ${VAX}/vax/symbols.raw \
84	    | sed 's/^	//' | sort -u > symbols.sort
85
86${INLINECMD}:
87	cd ${VAX}/inline; make
88
89intvec.o: ${VAX}/vax/intvec.s
90	${CC} -x assembler-with-cpp -E ${AOPTS} ${VAX}/vax/intvec.s| as -o intvec.o
91
92subr.o: ${VAX}/vax/subr.s
93	${CC} -x assembler-with-cpp -E ${AOPTS} ${VAX}/vax/subr.s| as -o subr.o
94
95#
96# Den h{r filen borde st{das upp och fixas till, det blir nog n{r
97# glue-filerna g|r vad dom ska :)
98
99#emulate.o: ${VAX}/vax/emulate.s
100#	cpp -I. ${COPTS} ${VAX}/vax/emulate.s | ${AS} -o emulate.o
101
102# the following is necessary because autoconf.o depends on #if GENERIC
103#autoconf.o tu.o: Makefile
104
105# the following are necessary because the files depend on the types of
106# vax cpu's included in the system configuration
107#clock.o machdep.o autoconf.o conf.o cons.o cpudata.o : Makefile
108#crl.o flp.o mba.o uba.o vaxcpu.o : Makefile
109
110# depend on network configuration
111#af.o uipc_proto.o uipc_domain.o subr.o: Makefile
112lim.o: Makefile
113
114# depends on kdb being configured
115#trap.o:	Makefile
116
117# depend on maxusers
118assym.s: Makefile
119
120assym.s: genassym
121	./genassym >assym.s
122
123genassym:
124	${CC} ${INCLUDES} ${IDENT} ${PARAM} -o genassym ${VAX}/vax/genassym.c
125
126depend: assym.s ${CFILES}
127	mkdep ${COPTS} ${.ALLSRC:M*.c} ioconf.c
128	mkdep -a -p ${INCLUDES} ${IDENT} ${PARAM} ${VAX}/vax/genassym.c
129
130links:
131	egrep '#if' ${CFILES} | sed -f $S/conf/defines | \
132	  sed -e 's/:.*//' -e 's/\.c/.o/' | sort -u > dontlink
133	echo ${CFILES} | tr -s ' ' '\12' | sed 's/\.c/.o/' | \
134	  sort -u | comm -23 - dontlink | \
135	  sed 's,../.*/\(.*.o\),rm -f \1;ln -s ../GENERIC/\1 \1,' > makelinks
136	echo 'rm -f udiv.o;ln -s ../GENERIC/udiv.o udiv.o' >> makelinks
137	echo 'rm -f urem.o;ln -s ../GENERIC/urem.o urem.o' >> makelinks
138	sh makelinks && rm -f dontlink
139
140tags:
141	@echo "see $S/kern/Makefile for tags"
142
143ioconf.o:
144	${CC} -c ${CFLAGS} ${PARAM} ioconf.c
145
146#	${CC} -c -S ${COPTS} ioconf.c
147#	cat ioconf.s | ${INLINE} | ${AS} -o ioconf.o
148#	rm -f ioconf.s
149
150lim.o:	Makefile
151	../../conf/mkoldconf.awk < ioconf.c > lim.c
152	${CC} -O -c ${CFLAGS} ${PARAM} lim.c
153
154param.c: $S/conf/param.c
155	rm -f param.c
156	cp $S/conf/param.c .
157
158param.o: param.c Makefile
159	${CC} -O -c ${CFLAGS} ${PARAM} param.c
160
161conf.o: ${VAX}/vax/conf.c
162	${CC} -O -c ${CFLAGS} ${PARAM} ${VAX}/vax/conf.c
163
164newvers:
165	sh $S/conf/newvers.sh
166	${CC} ${CFLAGS} -c vers.c
167
168vnode_if.c vnode_if.h : $S/kern/vnode_if.sh $S/kern/vnode_if.src
169	AWK="${AWK}" sh $S/kern/vnode_if.sh $S/kern/vnode_if.src
170
171
172%RULES
173