kern.pre.mk revision 105462
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 105462 2002-10-19 16:47:13Z mux $ 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} 6085909Simp 61105462SmuxNORMAL_M= ${AWK} -f $S/tools/makeobjops.awk ${.IMPSRC} -c ; \ 62105462Smux ${CC} -c ${CFLAGS} ${WERROR} ${PROF} ${.PREFIX}.c 6385909Simp 6485909SimpGEN_CFILES= $S/$M/$M/genassym.c 6585909SimpSYSTEM_CFILES= vnode_if.c hints.c env.c config.c 6685909SimpSYSTEM_SFILES= $S/$M/$M/locore.s 6785909SimpSYSTEM_DEP= Makefile ${SYSTEM_OBJS} 6885909SimpSYSTEM_OBJS= locore.o vnode_if.o ${OBJS} hints.o env.o config.o hack.So 6985909SimpSYSTEM_LD= @${LD} ${FMT} -Bdynamic -T $S/conf/ldscript.$M \ 7089180Smsmith -warn-common -export-dynamic -dynamic-linker /red/herring \ 7185909Simp -o ${.TARGET} -X ${SYSTEM_OBJS} vers.o 7285909SimpSYSTEM_LD_TAIL= @${OBJCOPY} --strip-symbol gcc2_compiled. ${.TARGET} ; \ 7385909Simp ${SIZE} ${FMT} ${.TARGET} ; chmod 755 ${.TARGET} 7485909SimpSYSTEM_DEP+= $S/conf/ldscript.$M 7585909Simp 7688893Simp# MKMODULESENV is set here so that port makefiles can augment 7788893Simp# them. 7888893Simp 7988893SimpMKMODULESENV= MAKEOBJDIRPREFIX=${.OBJDIR}/modules KMODDIR=${KODIR} 8090789Sphk.if (${KERN_IDENT} == LINT) 8190789SphkMKMODULESENV+= ALL_MODULES=LINT 8290789Sphk.endif 8388893Simp.if defined(MODULES_OVERRIDE) 8488893SimpMKMODULESENV+= MODULES_OVERRIDE="${MODULES_OVERRIDE}" 8588893Simp.endif 8688893Simp.if defined(DEBUG) 8788893SimpMKMODULESENV+= DEBUG="${DEBUG}" DEBUG_FLAGS="${DEBUG}" 8888893Simp.endif 8988893Simp 9086253Simpall: ${KERNEL_KO} 91