kern.pre.mk revision 111684
185909Simp# kern.pre.mk 285909Simp# 3101877Sjmallett# Unified Makefile for building kernels. This includes all the definitions 485909Simp# that need to be included before %BEFORE_DEPEND 585909Simp# 685909Simp# $FreeBSD: head/sys/conf/kern.pre.mk 111684 2003-02-28 21:59:14Z ru $ 785909Simp# 885909Simp 985909Simp# Can be overridden by makeoptions or /etc/make.conf 1085909SimpKERNEL_KO?= kernel 1185909SimpKERNEL?= kernel 1285909SimpKODIR?= /boot/${KERNEL} 1385909Simp 1485909SimpM= ${MACHINE_ARCH} 1585909Simp 1691512SobrienAWK?= awk 1785909SimpNM?= nm 1885909SimpOBJCOPY?= objcopy 1985909SimpSIZE?= size 2085909Simp 2185909SimpCOPTFLAGS?=-O -pipe 2285909Simp.if !defined(NO_CPU_COPTFLAGS) 2385909SimpCOPTFLAGS+= ${_CPUCFLAGS} 2485909Simp.endif 2585909SimpINCLUDES= -nostdinc -I- ${INCLMAGIC} -I. -I$S -I$S/dev 2685909Simp 2785909Simp# This hack lets us use the Intel ACPICA code without spamming a new 2885909Simp# include path into 100+ source files. 2985909SimpINCLUDES+= -I$S/contrib/dev/acpica 3085909Simp 3185909Simp# ... and the same for ipfilter 3285909SimpINCLUDES+= -I$S/contrib/ipfilter 3385909Simp 3499932SbdeCOPTS= ${INCLUDES} -D_KERNEL -include opt_global.h 3589180SmsmithCFLAGS= ${COPTFLAGS} ${CWARNFLAGS} ${DEBUG} ${COPTS} -fno-common 3685909Simp 3785909Simp# XXX LOCORE means "don't declare C stuff" not "for locore.s". 3885909SimpASM_CFLAGS= -x assembler-with-cpp -DLOCORE ${CFLAGS} 3985909Simp 4099923Sbde.if defined(PROFLEVEL) && ${PROFLEVEL} >= 1 4199932SbdeCFLAGS+= -DGPROF -falign-functions=16 4299932Sbde.if ${PROFLEVEL} >= 2 4399932SbdeCFLAGS+= -DGPROF4 -DGUPROF 4499932Sbde# XXX -Wno-inline is to break some warnings. 4599932SbdePROF= -finstrument-functions -Wno-inline 4699932Sbde.else 4799923SbdePROF= -pg 4899923Sbde.endif 4999932Sbde.endif 5085909SimpDEFINED_PROF= ${PROF} 5191255SpeterWERROR?= -Werror 5291002Speter 5385909Simp# Put configuration-specific C flags last (except for ${PROF}) so that they 5485909Simp# can override the others. 5585909SimpCFLAGS+= ${CONF_CFLAGS} 5685909Simp 5791002SpeterNORMAL_C= ${CC} -c ${CFLAGS} ${WERROR} ${PROF} ${.IMPSRC} 5891002SpeterNORMAL_S= ${CC} -c ${ASM_CFLAGS} ${WERROR} ${.IMPSRC} 5991002SpeterPROFILE_C= ${CC} -c ${CFLAGS} ${WERROR} ${.IMPSRC} 60105489SmuxNORMAL_C_NOWERROR= ${CC} -c ${CFLAGS} ${PROF} ${.IMPSRC} 6185909Simp 62105462SmuxNORMAL_M= ${AWK} -f $S/tools/makeobjops.awk ${.IMPSRC} -c ; \ 63105462Smux ${CC} -c ${CFLAGS} ${WERROR} ${PROF} ${.PREFIX}.c 6485909Simp 6585909SimpGEN_CFILES= $S/$M/$M/genassym.c 66111684SruSYSTEM_CFILES= config.c env.c hints.c majors.c vnode_if.c 6785909SimpSYSTEM_DEP= Makefile ${SYSTEM_OBJS} 68111684SruSYSTEM_OBJS= locore.o ${MDOBJS} ${OBJS} 69111684SruSYSTEM_OBJS+= ${SYSTEM_CFILES:.c=.o} 70111684SruSYSTEM_OBJS+= hack.So 7185909SimpSYSTEM_LD= @${LD} ${FMT} -Bdynamic -T $S/conf/ldscript.$M \ 7289180Smsmith -warn-common -export-dynamic -dynamic-linker /red/herring \ 7385909Simp -o ${.TARGET} -X ${SYSTEM_OBJS} vers.o 7485909SimpSYSTEM_LD_TAIL= @${OBJCOPY} --strip-symbol gcc2_compiled. ${.TARGET} ; \ 7585909Simp ${SIZE} ${FMT} ${.TARGET} ; chmod 755 ${.TARGET} 7685909SimpSYSTEM_DEP+= $S/conf/ldscript.$M 7785909Simp 7888893Simp# MKMODULESENV is set here so that port makefiles can augment 7988893Simp# them. 8088893Simp 8188893SimpMKMODULESENV= MAKEOBJDIRPREFIX=${.OBJDIR}/modules KMODDIR=${KODIR} 8290789Sphk.if (${KERN_IDENT} == LINT) 8390789SphkMKMODULESENV+= ALL_MODULES=LINT 8490789Sphk.endif 8588893Simp.if defined(MODULES_OVERRIDE) 8688893SimpMKMODULESENV+= MODULES_OVERRIDE="${MODULES_OVERRIDE}" 8788893Simp.endif 8888893Simp.if defined(DEBUG) 8988893SimpMKMODULESENV+= DEBUG="${DEBUG}" DEBUG_FLAGS="${DEBUG}" 9088893Simp.endif 91