1# $FreeBSD: head/sys/conf/kern.pre.mk 145016 2005-04-13 14:49:57Z imp $
|
1# $FreeBSD: head/sys/conf/kern.pre.mk 149968 2005-09-11 00:52:05Z obrien $ |
2 3# Part of a unified Makefile for building kernels. This part contains all 4# of the definitions that need to be before %BEFORE_DEPEND. 5 6# Can be overridden by makeoptions or /etc/make.conf 7KERNEL_KO?= kernel 8KERNEL?= kernel 9KODIR?= /boot/${KERNEL} 10 11M= ${MACHINE_ARCH} 12 13AWK?= awk 14LINT?= lint 15NM?= nm 16OBJCOPY?= objcopy 17SIZE?= size 18 19.if ${CC} == "icc" 20COPTFLAGS?= -O 21.else 22. if defined(DEBUG) 23_MINUS_O= -O 24. else 25_MINUS_O= -O2 26. endif 27. if ${MACHINE_ARCH} == "amd64" 28COPTFLAGS?=-O2 -frename-registers -pipe 29. else 30COPTFLAGS?=${_MINUS_O} -pipe 31. endif 32. if !empty(COPTFLAGS:M-O[23s]) && empty(COPTFLAGS:M-fno-strict-aliasing) 33COPTFLAGS+= -fno-strict-aliasing 34. endif 35.endif 36.if !defined(NO_CPU_COPTFLAGS) 37. if ${CC} == "icc" 38COPTFLAGS+= ${_ICC_CPUCFLAGS:C/(-x[^M^K^W]+)[MKW]+|-x[MKW]+/\1/} 39. else 40COPTFLAGS+= ${_CPUCFLAGS} 41. endif 42.endif 43.if ${CC} == "icc" 44NOSTDINC= -X 45.else 46NOSTDINC= -nostdinc 47.endif 48 49INCLUDES= ${NOSTDINC} -I- ${INCLMAGIC} -I. -I$S 50 51# This hack lets us use the Intel ACPICA code without spamming a new 52# include path into 100+ source files. 53INCLUDES+= -I$S/contrib/dev/acpica 54 55# ... and the same for altq 56INCLUDES+= -I$S/contrib/altq 57 58# ... and the same for ipfilter 59INCLUDES+= -I$S/contrib/ipfilter 60 61# ... and the same for pf 62INCLUDES+= -I$S/contrib/pf 63 64# ... and the same for Atheros HAL 65INCLUDES+= -I$S/contrib/dev/ath -I$S/contrib/dev/ath/freebsd 66 67# ... and the same for the NgATM stuff 68INCLUDES+= -I$S/contrib/ngatm 69
|
70# .. and the same for twa
71INCLUDES+= -I$S/dev/twa
72
|
70CFLAGS= ${COPTFLAGS} ${CWARNFLAGS} ${DEBUG} 71CFLAGS+= ${INCLUDES} -D_KERNEL -include opt_global.h 72.if ${CC} != "icc" 73CFLAGS+= -fno-common -finline-limit=${INLINE_LIMIT} 74CFLAGS+= --param inline-unit-growth=100 75CFLAGS+= --param large-function-growth=1000 76WERROR?= -Werror 77.endif 78 79# XXX LOCORE means "don't declare C stuff" not "for locore.s". 80ASM_CFLAGS= -x assembler-with-cpp -DLOCORE ${CFLAGS} 81 82.if defined(PROFLEVEL) && ${PROFLEVEL} >= 1 83.if ${CC} == "icc" 84.error Profiling doesn't work with ICC yet. 85.else 86CFLAGS+= -DGPROF -falign-functions=16 87.endif 88.if ${PROFLEVEL} >= 2 89CFLAGS+= -DGPROF4 -DGUPROF 90. if ${CC} == "icc" 91# XXX doesn't work yet 92#PROF= -prof_gen 93. else 94PROF= -finstrument-functions -Wno-inline 95. endif 96.else 97. if ${CC} == "icc" 98PROF= -p 99. else 100PROF= -pg 101. endif 102.endif 103.endif 104DEFINED_PROF= ${PROF} 105 106# Put configuration-specific C flags last (except for ${PROF}) so that they 107# can override the others. 108CFLAGS+= ${CONF_CFLAGS} 109 110# Optional linting. This can be overridden in /etc/make.conf. 111LINTFLAGS= ${LINTOBJKERNFLAGS} 112 113NORMAL_C= ${CC} -c ${CFLAGS} ${WERROR} ${PROF} ${.IMPSRC} 114NORMAL_S= ${CC} -c ${ASM_CFLAGS} ${WERROR} ${.IMPSRC} 115PROFILE_C= ${CC} -c ${CFLAGS} ${WERROR} ${.IMPSRC} 116NORMAL_C_NOWERROR= ${CC} -c ${CFLAGS} ${PROF} ${.IMPSRC} 117 118NORMAL_M= ${AWK} -f $S/tools/makeobjops.awk ${.IMPSRC} -c ; \ 119 ${CC} -c ${CFLAGS} ${WERROR} ${PROF} ${.PREFIX}.c 120 121NORMAL_LINT= ${LINT} ${LINTFLAGS} ${CFLAGS:M-[DIU]*} ${.IMPSRC} 122 123GEN_CFILES= $S/$M/$M/genassym.c ${MFILES:T:S/.m$/.c/} 124SYSTEM_CFILES= config.c env.c hints.c vnode_if.c 125SYSTEM_DEP= Makefile ${SYSTEM_OBJS} 126SYSTEM_OBJS= locore.o ${MDOBJS} ${OBJS} 127SYSTEM_OBJS+= ${SYSTEM_CFILES:.c=.o} 128SYSTEM_OBJS+= hack.So 129SYSTEM_LD= @${LD} -Bdynamic -T $S/conf/ldscript.$M \ 130 -warn-common -export-dynamic -dynamic-linker /red/herring \ 131 -o ${.TARGET} -X ${SYSTEM_OBJS} vers.o 132SYSTEM_LD_TAIL= @${OBJCOPY} --strip-symbol gcc2_compiled. ${.TARGET} ; \ 133 ${SIZE} ${.TARGET} ; chmod 755 ${.TARGET} 134SYSTEM_DEP+= $S/conf/ldscript.$M 135 136# MKMODULESENV is set here so that port makefiles can augment 137# them. 138 139MKMODULESENV= MAKEOBJDIRPREFIX=${.OBJDIR}/modules KMODDIR=${KODIR} 140.if (${KERN_IDENT} == LINT) 141MKMODULESENV+= ALL_MODULES=LINT 142.endif 143.if defined(MODULES_OVERRIDE) 144MKMODULESENV+= MODULES_OVERRIDE="${MODULES_OVERRIDE}" 145.endif 146.if defined(DEBUG) 147MKMODULESENV+= DEBUG_FLAGS="${DEBUG}" 148.endif
|