kern.pre.mk revision 122116
1254721Semaste# $FreeBSD: head/sys/conf/kern.pre.mk 122116 2003-11-05 12:20:16Z bde $ 2254721Semaste 3254721Semaste# Part of a unified Makefile for building kernels. This part contains all 4254721Semaste# of the definitions that need to be before %BEFORE_DEPEND. 5254721Semaste 6254721Semaste# Can be overridden by makeoptions or /etc/make.conf 7254721SemasteKERNEL_KO?= kernel 8254721SemasteKERNEL?= kernel 9254721SemasteKODIR?= /boot/${KERNEL} 10254721Semaste 11254721SemasteM= ${MACHINE_ARCH} 12254721Semaste 13254721SemasteAWK?= awk 14254721SemasteLINT?= lint 15254721SemasteNM?= nm 16254721SemasteOBJCOPY?= objcopy 17254721SemasteSIZE?= size 18254721Semaste 19254721SemasteCOPTFLAGS?=-O -pipe 20254721Semaste.if !defined(NO_CPU_COPTFLAGS) 21254721SemasteCOPTFLAGS+= ${_CPUCFLAGS} 22254721Semaste.endif 23254721SemasteINCLUDES= -nostdinc -I- ${INCLMAGIC} -I. -I$S 24254721Semaste 25263363Semaste# This hack lets us use the Intel ACPICA code without spamming a new 26254721Semaste# include path into 100+ source files. 27254721SemasteINCLUDES+= -I$S/contrib/dev/acpica 28254721Semaste 29254721Semaste# ... and the same for ipfilter 30254721SemasteINCLUDES+= -I$S/contrib/ipfilter 31254721Semaste 32254721Semaste# ... and the same for Atheros HAL 33254721SemasteINCLUDES+= -I$S/contrib/dev/ath -I$S/contrib/dev/ath/freebsd 34254721Semaste 35254721Semaste# ... and the same for the NgATM stuff 36254721SemasteINCLUDES+= -I$S/contrib/ngatm 37254721Semaste 38254721SemasteCOPTS= ${INCLUDES} -D_KERNEL -include opt_global.h 39254721SemasteCFLAGS= ${COPTFLAGS} ${CWARNFLAGS} ${DEBUG} ${COPTS} 40254721SemasteCFLAGS+= -fno-common -finline-limit=${INLINE_LIMIT} -fno-strict-aliasing 41254721SemasteWERROR?= -Werror 42254721Semaste 43254721Semaste# XXX LOCORE means "don't declare C stuff" not "for locore.s". 44254721SemasteASM_CFLAGS= -x assembler-with-cpp -DLOCORE ${CFLAGS} 45254721Semaste 46254721Semaste.if defined(PROFLEVEL) && ${PROFLEVEL} >= 1 47254721SemasteCFLAGS+= -DGPROF -falign-functions=16 48254721Semaste.if ${PROFLEVEL} >= 2 49254721SemasteCFLAGS+= -DGPROF4 -DGUPROF 50254721Semaste# XXX -Wno-inline is to break some warnings. 51254721SemastePROF= -finstrument-functions -Wno-inline 52254721Semaste.else 53254721SemastePROF= -pg 54254721Semaste.endif 55254721Semaste.endif 56254721SemasteDEFINED_PROF= ${PROF} 57254721Semaste 58254721Semaste# Put configuration-specific C flags last (except for ${PROF}) so that they 59254721Semaste# can override the others. 60254721SemasteCFLAGS+= ${CONF_CFLAGS} 61254721Semaste 62254721Semaste# Optional linting. This can be overridden in /etc/make.conf. 63254721SemasteLINTFLAGS= ${LINTOBJKERNFLAGS} 64254721Semaste 65254721SemasteNORMAL_C= ${CC} -c ${CFLAGS} ${WERROR} ${PROF} ${.IMPSRC} 66254721SemasteNORMAL_S= ${CC} -c ${ASM_CFLAGS} ${WERROR} ${.IMPSRC} 67254721SemastePROFILE_C= ${CC} -c ${CFLAGS} ${WERROR} ${.IMPSRC} 68254721SemasteNORMAL_C_NOWERROR= ${CC} -c ${CFLAGS} ${PROF} ${.IMPSRC} 69254721Semaste 70254721SemasteNORMAL_M= ${AWK} -f $S/tools/makeobjops.awk ${.IMPSRC} -c ; \ 71254721Semaste ${CC} -c ${CFLAGS} ${WERROR} ${PROF} ${.PREFIX}.c 72254721Semaste 73254721SemasteNORMAL_LINT= ${LINT} ${LINTFLAGS} ${CFLAGS:M-[DIU]*} ${.IMPSRC} 74254721Semaste 75254721SemasteGEN_CFILES= $S/$M/$M/genassym.c 76254721SemasteSYSTEM_CFILES= config.c env.c hints.c majors.c vnode_if.c 77254721SemasteSYSTEM_DEP= Makefile ${SYSTEM_OBJS} 78254721SemasteSYSTEM_OBJS= locore.o ${MDOBJS} ${OBJS} 79254721SemasteSYSTEM_OBJS+= ${SYSTEM_CFILES:.c=.o} 80254721SemasteSYSTEM_OBJS+= hack.So 81254721SemasteSYSTEM_LD= @${LD} ${FMT} -Bdynamic -T $S/conf/ldscript.$M \ 82254721Semaste -warn-common -export-dynamic -dynamic-linker /red/herring \ 83254721Semaste -o ${.TARGET} -X ${SYSTEM_OBJS} vers.o 84269024SemasteSYSTEM_LD_TAIL= @${OBJCOPY} --strip-symbol gcc2_compiled. ${.TARGET} ; \ 85269024Semaste ${SIZE} ${FMT} ${.TARGET} ; chmod 755 ${.TARGET} 86269024SemasteSYSTEM_DEP+= $S/conf/ldscript.$M 87254721Semaste 88254721Semaste# MKMODULESENV is set here so that port makefiles can augment 89254721Semaste# them. 90254721Semaste 91254721SemasteMKMODULESENV= MAKEOBJDIRPREFIX=${.OBJDIR}/modules KMODDIR=${KODIR} 92254721Semaste.if (${KERN_IDENT} == LINT) 93254721SemasteMKMODULESENV+= ALL_MODULES=LINT 94254721Semaste.endif 95254721Semaste.if defined(MODULES_OVERRIDE) 96254721SemasteMKMODULESENV+= MODULES_OVERRIDE="${MODULES_OVERRIDE}" 97254721Semaste.endif 98254721Semaste.if defined(DEBUG) 99254721SemasteMKMODULESENV+= DEBUG="${DEBUG}" DEBUG_FLAGS="${DEBUG}" 100254721Semaste.endif 101254721Semaste