1# 2# This make file incorporates the generic 386BSD kernel program makefile, 3# kernel.mk. Copyright (C) 1990-1994 W. Jolitz, All Rights Reserved. 4# $Id:$ 5# 6 7.SUFFIXES: .symbols .9 .8 .7 .6 .5 .4 .3 .2 .1 .0 8 9TOUCH?= touch -f -c 10LD?= /usr/bin/ld 11CC?= cc 12CPP?= cpp 13 14# XXX overkill, revise include scheme 15INCLUDES= -I$S/include 16 17COPTS+= ${INCLUDES} ${IDENT} -DKERNEL -Di386 -DNPX 18DEPEND= depend_mk 19 20ASFLAGS= ${DEBUG} 21CFLAGS= -O ${COPTS} 22 23.if defined(KERNBASE) 24CFLAGS+= -DKERNBASE=0x${KERNBASE} 25BASE= -DKERNBASE=0x${KERNBASE} 26.else 27KERNBASE=FE000000 28.endif 29 30.if !exists(machine) 31FOO!=ln -s $S/include/$(MACHINE) machine 32.endif 33 34.MAIN: all 35 36ALLMAN= ${MAN1} ${MAN2} ${MAN3} ${MAN4} ${MAN5} ${MAN6} ${MAN7} ${MAN8} ${MAN9} 37 38KOBJS = ${FIRSTOBJ} ${OBJS} 39 40_KERNS= ${KERNEL} 41.if defined(DDB) 42_KERNS+= ${KERNEL}.ddb 43.endif 44.if defined(PROFILE) 45_KERNS+= ${KERNEL}.prof 46.endif 47.if defined(KGDB) 48_KERNS+= ${KERNEL}.kgdb 49.endif 50 51all: ${_KERNS} ${ALLMAN} 52 53assym.s: $S/include/sys/param.h $S/include/buf.h $S/include/vmmeter.h \ 54 $S/include/proc.h $S/include/msgbuf.h machine/vmparam.h \ 55 $S/config/genassym.c 56 ${CC} ${INCLUDES} -DKERNEL ${IDENT} ${PARAM} ${BASE} \ 57 $S/config/genassym.c -o genassym 58 ./genassym >assym.s 59 60.include "$S/config/kernel.kern.mk" 61.include "$S/config/kernel.dev.mk" 62.include "$S/config/kernel.fs.mk" 63.include "$S/config/kernel.domain.mk" 64 65SRCS= ${KERN_SRCS} ${MACH_SRCS} ${DEV_SRCS} ${FS_SRCS} ${DOMAIN_SRCS} 66 67${KERNEL}: Makefile symbols.sort ${FIRSTOBJ} ${OBJS} 68 @echo loading $@ 69 @rm -f $@ 70 @$S/config/newvers.sh 71 @${CC} -c ${CFLAGS} ${PROF} ${DEBUG} vers.c 72.if defined(DEBUGSYM) 73 @${LD} -z -T ${KERNBASE} -o $@ -X ${FIRSTOBJ} ${OBJS} vers.o 74.else 75 @${LD} -z -T ${KERNBASE} -o $@ -x ${FIRSTOBJ} ${OBJS} vers.o 76.endif 77 @echo rearranging symbols 78 @symorder ${SYMORDER} symbols.sort $@ 79.if defined(DBSYM) 80 @${DBSYM} $@ 81.endif 82 @size $@ 83 @chmod 755 $@ 84 85.9.0 .8.0 .7.0 .6.0 .5.0 .4.0 .3.0 .2.0 .1.0: 86 nroff -mandoc ${.IMPSRC} > ${.TARGET} 87 88clean: 89 rm -f eddep 386bsd* tags ${OBJS} errs linterrs makelinks 90 91depend: ${DEPEND} 92 cat ${DEPEND} >> .depend 93 94depend_mk: assym.s 95 mkdep ${COPTS} ${.ALLSRC} 96 mkdep -a -p ${INCLUDES} ${IDENT} ${PARAM} $S/config/genassym.c 97 mv .depend depend_mk 98 99symbols.sort: ${SYMBOLS} 100 grep -hv '^#' ${.ALLSRC} | sed 's/^ //' | sort -u > symbols.sort 101 102.if !target(install) 103.if !target(beforeinstall) 104beforeinstall: 105.endif 106 107realinstall: beforeinstall 108 109install: afterinstall 110afterinstall: realinstall maninstall 111.endif 112 113.if !target(tags) 114tags: ${SRCS} 115 -cd ${.CURDIR}; ctags -f /dev/stdout ${.ALLSRC:M*.c} | \ 116 sed "s;\${.CURDIR}/;;" > tags 117.endif 118 119.include <bsd.man.mk> 120