Makefile.vax revision 1.15
1#	$NetBSD: Makefile.vax,v 1.15 1996/02/02 19:08:36 mycroft 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#
22CC=	cc
23CPP=	cpp
24LD=	/usr/bin/ld
25AWK=	awk
26
27S=	../../../..
28VAX=	../..
29
30INCLUDES= -I. -I$S/arch -I$S -I$S/sys
31COPTS=	${INCLUDES} ${IDENT} -D_KERNEL -D_VAX_INLINE_
32AOPTS=  ${COPTS} -D_LOCORE
33CFLAGS=	-Werror -fno-builtin ${COPTS}
34LOAD_ADDRESS=80000000
35
36### find out what to use for libkern
37.include "$S/lib/libkern/Makefile.inc"
38.ifndef PROF
39LIBKERN=	${KERNLIB}
40.else
41LIBKERN=        ${KERNLIB_PROF}
42.endif
43
44### find out what to use for libcompat
45.include "$S/compat/common/Makefile.inc"
46.ifndef PROF
47LIBCOMPAT=      ${COMPATLIB}
48.else
49LIBCOMPAT=      ${COMPATLIB_PROF}
50.endif
51
52NORMAL_C= ${CC} -O -c ${CFLAGS} ${PROF} $<
53NORMAL_C_C= ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $<
54NORMAL_S= ${CC} -x assembler-with-cpp -E -I. -D_LOCORE ${COPTS} $< | \
55	${AS} ${ASFLAGS} -o $*.o
56DRIVER_C= ${CC} -c ${CFLAGS} ${PROF} $<
57DRIVER_C_C= ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $<
58SYSTEM_ASMS=intvec.o subr.o
59SYSTEM_OBJS=${SYSTEM_ASMS} lim.o vnode_if.o ${OBJS} param.o ioconf.o \
60	    ${LIBKERN} ${LIBCOMPAT}
61#SYSTEM_DEP=${SYSTEM_ASMS} lovm.o pmap.o
62SYSTEM_DEP=${SYSTEM_ASMS} ${SYSTEM_OBJS}
63SYSTEM_LD_HEAD=         @echo loading $@; rm -f $@
64SYSTEM_LD= ${LD} -Z -e _start -T ${LOAD_ADDRESS} -o $@ ${SYSTEM_OBJS} vers.o
65#SYSTEM_LD_TAIL= @echo rearranging symbols; symorder symbols.sort $@; ${DBSYM} -f
66SYSTEM_LD_TAIL=@echo Nu {r k{rnan klar!!!!
67
68
69%OBJS
70
71%CFILES
72
73%LOAD
74
75clean::
76	rm -f eddep *vmunix tags *.o subr.i [a-tv-z]*.s \
77	Errs errs linterrs makelinks vnode_if.* genassym
78
79lint: /tmp param.c
80	@lint -hbxn -DGENERIC ${COPTS} ${PARAM} \
81	  ${VAX}/vax/Locore.c ${CFILES} ioconf.c param.c | \
82	    grep -v 'struct/union .* never defined' | \
83	    grep -v 'possible pointer alignment problem'
84
85symbols.sort: ${VAX}/vax/symbols.raw
86	grep -v '^#' ${VAX}/vax/symbols.raw \
87	    | sed 's/^	//' | sort -u > symbols.sort
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
96depend: ${CFILES}
97	mkdep ${COPTS} ${.ALLSRC:M*.c} ioconf.c
98	mkdep -a -p ${INCLUDES} ${IDENT} ${PARAM}
99
100ioconf.o:
101	${CC} -c ${CFLAGS} ${PARAM} ioconf.c
102
103lim.o:	Makefile
104	../../conf/mkoldconf.awk < ioconf.c > lim.c
105	${CC} -O -c ${CFLAGS} ${PARAM} lim.c
106
107param.c: $S/conf/param.c
108	rm -f param.c
109	cp $S/conf/param.c .
110
111param.o: param.c Makefile
112	${CC} -O -c ${CFLAGS} ${PARAM} param.c
113
114newvers:
115	sh $S/conf/newvers.sh
116	${CC} ${CFLAGS} -c vers.c
117
118vnode_if.c vnode_if.h : $S/kern/vnode_if.sh $S/kern/vnode_if.src
119	AWK="${AWK}" sh $S/kern/vnode_if.sh $S/kern/vnode_if.src
120
121
122%RULES
123