16# after which config should be rerun for all machines. 17# 18 19# Which version of config(8) is required. 20%VERSREQ= 500008 21 22# Temporary stuff while we're still embryonic 23NO_MODULES?= yes 24 25# Can be overridden by makeoptions or /etc/make.conf 26KERNEL_KO?= kernel 27KERNEL?= kernel 28KODIR?= /boot/${KERNEL} 29STD8X16FONT?= iso 30 31.if !defined(S) 32.if exists(./@/.) 33S= ./@ 34.else 35S= ../../.. 36.endif 37.endif 38M= ${MACHINE_ARCH} 39 40NM?= nm 41OBJCOPY?= objcopy 42SIZE?= size 43 44COPTFLAGS?=-O -pipe 45.if !defined(NO_CPU_COPTFLAGS) 46COPTFLAGS+= ${_CPUCFLAGS} 47.endif 48INCLUDES= -nostdinc -I- ${INCLMAGIC} -I. -I$S -I$S/dev 49 50# This hack lets us use the Intel ACPICA code without spamming a new 51# include path into 100+ source files. 52INCLUDES+= -I$S/contrib/dev/acpica 53 54# ... and the same for ipfilter 55INCLUDES+= -I$S/contrib/ipfilter 56 57# This hack is to allow kernel compiles to succeed on machines w/out srcdist 58.if exists($S/../include) 59INCLUDES+= -I$S/../include 60.else 61INCLUDES+= -I/usr/include 62.endif 63 64COPTS= ${INCLUDES} ${IDENT} -D_KERNEL -include opt_global.h 65_OS!=uname 66.if ${_OS} != "FreeBSD" 67CWARNFLAGS=-Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes \ 68 -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual 69COPTS+= -D__ELF__ -D__FreeBSD__ -msoft-float 70.endif 71CFLAGS= ${COPTFLAGS} ${CWARNFLAGS} ${DEBUG} ${COPTS} 72 73# XXX LOCORE means "don't declare C stuff" not "for locore.s". 74ASM_CFLAGS= -x assembler-with-cpp -DLOCORE ${CFLAGS} 75 76# Select the correct set of tools. Can't set OBJFORMAT here because it 77# doesn't get exported into the environment, and if it were exported 78# then it might break building of utilities. 79FMT= 80CFLAGS+= ${FMT} 81 82DEFINED_PROF= ${PROF} 83.if defined(PROF) 84CFLAGS+= -malign-functions=4 85.if ${PROFLEVEL} >= 2 86IDENT+= -DGPROF4 -DGUPROF 87PROF+= -mprofiler-epilogue 88.endif 89.endif 90 91# Put configuration-specific C flags last (except for ${PROF}) so that they 92# can override the others. 93CFLAGS+= ${CONF_CFLAGS} 94 95NORMAL_C= ${CC} -c ${CFLAGS} ${PROF} ${.IMPSRC} 96NORMAL_C_C= ${CC} -c ${CFLAGS} ${PROF} ${.IMPSRC} 97NORMAL_S= ${CC} -c ${ASM_CFLAGS} ${.IMPSRC} 98PROFILE_C= ${CC} -c ${CFLAGS} ${.IMPSRC} 99 100NORMAL_M= perl5 $S/kern/makeobjops.pl -c $<; \ 101 ${CC} -c ${CFLAGS} ${PROF} ${.PREFIX}.c 102 103GEN_CFILES= $S/$M/$M/genassym.c 104SYSTEM_CFILES= vnode_if.c hints.c env.c config.c 105SYSTEM_SFILES= $S/$M/$M/locore.s 106SYSTEM_DEP= Makefile ${SYSTEM_OBJS} 107SYSTEM_OBJS= locore.o vnode_if.o ${OBJS} hints.o env.o config.o hack.So 108SYSTEM_LD= @${LD} ${FMT} -Bdynamic -T $S/conf/ldscript.$M \ 109 -export-dynamic -dynamic-linker /red/herring \ 110 -o ${.TARGET} -X ${SYSTEM_OBJS} vers.o 111SYSTEM_LD_TAIL= @${OBJCOPY} --strip-symbol gcc2_compiled. ${.TARGET} ; \ 112 ${SIZE} ${FMT} ${.TARGET} ; chmod 755 ${.TARGET} 113SYSTEM_DEP+= $S/conf/ldscript.$M 114 115%BEFORE_DEPEND 116 117%OBJS 118 119%FILES.c 120 121%FILES.s 122 123%FILES.m 124 125%CLEAN 126 127.PHONY: all modules 128 129all: ${KERNEL_KO} 130 131depend: kernel-depend 132clean: kernel-clean 133cleandepend: kernel-cleandepend 134clobber: kernel-clobber 135tags: kernel-tags 136install: kernel-install 137install.debug: kernel-install.debug 138reinstall: kernel-reinstall 139reinstall.debug: kernel-reinstall.debug 140 141.if !defined(DEBUG) 142FULLKERNEL= ${KERNEL_KO} 143.else 144FULLKERNEL= ${KERNEL_KO}.debug 145${KERNEL_KO}: ${FULLKERNEL} 146 ${OBJCOPY} --strip-debug ${FULLKERNEL} ${KERNEL_KO} 147.endif 148 149${FULLKERNEL}: ${SYSTEM_DEP} vers.o 150 @rm -f ${.TARGET} 151 @echo linking ${.TARGET} 152 ${SYSTEM_LD} 153 ${SYSTEM_LD_TAIL} 154 155.if !exists(.depend) 156${SYSTEM_OBJS}: vnode_if.h ${BEFORE_DEPEND:M*.h} ${MFILES:T:S/.m$/.h/} 157.endif 158 159.for mfile in ${MFILES} 160${mfile:T:S/.m$/.h/}: ${mfile} 161 perl5 $S/kern/makeobjops.pl -h ${mfile} 162.endfor 163 164kernel-clean: 165 rm -f *.o *.so *.So *.ko *.s eddep errs \ 166 ${FULLKERNEL} ${KERNEL_KO} linterrs makelinks \ 167 setdef[01].c setdefs.h tags \ 168 vers.c vnode_if.c vnode_if.h \ 169 ${MFILES:T:S/.m$/.c/} ${MFILES:T:S/.m$/.h/} \ 170 ${CLEAN} 171 172kernel-clobber: 173 find . -type f ! -name version -delete 174 175locore.o: $S/$M/$M/locore.s assym.s 176 ${NORMAL_S} 177 178# This is a hack. BFD "optimizes" away dynamic mode if there are no 179# dynamic references. We could probably do a '-Bforcedynamic' mode like 180# in the a.out ld. For now, this works. 181hack.So: Makefile 182 touch hack.c 183 ${CC} ${FMT} -shared -nostdlib hack.c -o hack.So 184 rm -f hack.c 185 186# this rule stops ./assym.s in .depend from causing problems 187./assym.s: assym.s 188 189assym.s: $S/kern/genassym.sh genassym.o 190 NM=${NM} OBJFORMAT=elf sh $S/kern/genassym.sh genassym.o > ${.TARGET} 191 192genassym.o: $S/$M/$M/genassym.c 193 ${CC} -c ${CFLAGS} $S/$M/$M/genassym.c 194 195${SYSTEM_OBJS} genassym.o vers.o: opt_global.h 196 197kernel-depend: 198 rm -f .olddep 199 if [ -f .depend ]; then mv .depend .olddep; fi 200 ${MAKE} _kernel-depend 201 202_kernel-depend: assym.s vnode_if.h ${BEFORE_DEPEND} \ 203 ${CFILES} ${SYSTEM_CFILES} ${GEN_CFILES} ${SFILES} \ 204 ${SYSTEM_SFILES} ${MFILES:T:S/.m$/.h/} 205 if [ -f .olddep ]; then mv .olddep .depend; fi 206 rm -f .newdep 207 mkdep -a -f .newdep ${CFLAGS} ${CFILES} ${SYSTEM_CFILES} ${GEN_CFILES} 208 env MKDEP_CPP="${CC} -E" \ 209 mkdep -a -f .newdep ${ASM_CFLAGS} ${SFILES} ${SYSTEM_SFILES} 210 rm -f .depend 211 mv .newdep .depend 212 213kernel-cleandepend: 214 rm -f .depend 215 216links: 217 egrep '#if' ${CFILES} | sed -f $S/conf/defines | \ 218 sed -e 's/:.*//' -e 's/\.c/.o/' | sort -u > dontlink 219 echo ${CFILES} | tr -s ' ' '\12' | sed 's/\.c/.o/' | \ 220 sort -u | comm -23 - dontlink | \ 221 sed 's,../.*/\(.*.o\),rm -f \1;ln -s ../GENERIC/\1 \1,' > makelinks 222 sh makelinks; rm -f dontlink 223 224kernel-tags: 225 @[ -f .depend ] || { echo "you must make depend first"; exit 1; } 226 sh $S/conf/systags.sh 227 rm -f tags1 228 sed -e 's, ../, ,' tags > tags1 229 230kernel-install kernel-install.debug: 231.if exists(${DESTDIR}/boot) 232 @if [ ! -f ${DESTDIR}/boot/device.hints ] ; then \ 233 echo "You must set up a ${DESTDIR}/boot/device.hints file first." ; \ 234 exit 1 ; \ 235 fi 236 @if [ x"`grep device.hints ${DESTDIR}/boot/defaults/loader.conf ${DESTDIR}/boot/loader.conf`" = "x" ]; then \ 237 echo "You must activate /boot/device.hints in loader.conf." ; \ 238 exit 1 ; \ 239 fi 240.endif 241 @if [ ! -f ${KERNEL_KO}${.TARGET:S/kernel-install//} ] ; then \ 242 echo "You must build a kernel first." ; \ 243 exit 1 ; \ 244 fi 245.if exists(${DESTDIR}${KODIR}) 246.if exists(${DESTDIR}${KODIR}.old) 247 @-chflags -R noschg ${DESTDIR}${KODIR}.old 248 -rm -rf ${DESTDIR}${KODIR}.old 249.endif 250 mv ${DESTDIR}${KODIR} ${DESTDIR}${KODIR}.old 251 [ "`sysctl -n kern.bootfile`" != "${DESTDIR}${KODIR}/kernel" ] || \ 252 sysctl kern.bootfile=${DESTDIR}${KODIR}.old/kernel 253.endif 254 mkdir -p ${DESTDIR}${KODIR} 255 install -c -m 555 -o root -g wheel \ 256 ${KERNEL_KO}${.TARGET:S/kernel-install//} ${DESTDIR}${KODIR} 257 258kernel-reinstall kernel-reinstall.debug: 259 @-chflags -R noschg ${DESTDIR}${KODIR} 260 install -c -m 555 -o root -g wheel \ 261 ${KERNEL_KO}${.TARGET:S/kernel-reinstall//} ${DESTDIR}${KODIR} 262 263.if !defined(MODULES_WITH_WORLD) && !defined(NO_MODULES) && exists($S/modules) 264all: modules 265depend: modules-depend 266clean: modules-clean 267cleandepend: modules-cleandepend 268cleandir: modules-cleandir 269clobber: modules-clobber 270tags: modules-tags 271install: modules-install 272install.debug: modules-install.debug 273reinstall: modules-reinstall 274reinstall.debug: modules-reinstall.debug 275.endif 276 277MKMODULESENV= MAKEOBJDIRPREFIX=${.OBJDIR}/modules KMODDIR=${KODIR} 278.if defined(MODULES_OVERRIDE) 279MKMODULESENV+= MODULES_OVERRIDE="${MODULES_OVERRIDE}" 280.endif 281.if defined(DEBUG) 282MKMODULESENV+= DEBUG="${DEBUG}" DEBUG_FLAGS="${DEBUG}" 283.endif 284 285modules: 286 @mkdir -p ${.OBJDIR}/modules 287 cd $S/modules ; env ${MKMODULESENV} ${MAKE} obj ; \ 288 env ${MKMODULESENV} ${MAKE} all 289 290modules-depend: 291 @mkdir -p ${.OBJDIR}/modules 292 cd $S/modules ; env ${MKMODULESENV} ${MAKE} obj ; \ 293 env ${MKMODULESENV} ${MAKE} depend 294 295modules-clean: 296 cd $S/modules ; env ${MKMODULESENV} ${MAKE} clean 297 298modules-cleandepend: 299 cd $S/modules ; env ${MKMODULESENV} ${MAKE} cleandepend 300 301modules-clobber: modules-clean 302 rm -rf ${MKMODULESENV} 303 304modules-cleandir: 305 cd $S/modules ; env ${MKMODULESENV} ${MAKE} cleandir 306 307modules-tags: 308 cd $S/modules ; env ${MKMODULESENV} ${MAKE} tags 309 310modules-install modules-install.debug: 311 cd $S/modules ; env ${MKMODULESENV} ${MAKE} install 312 313modules-reinstall modules-reinstall.debug: 314 cd $S/modules ; env ${MKMODULESENV} ${MAKE} install 315 316config.o: 317 ${NORMAL_C} 318 319vers.c: $S/conf/newvers.sh $S/sys/param.h ${SYSTEM_DEP} 320 sh $S/conf/newvers.sh ${KERN_IDENT} ${IDENT} 321 322# XXX strictly, everything depends on Makefile because changes to ${PROF} 323# only appear there, but we don't handle that. 324vers.o: 325 ${NORMAL_C} 326 327hints.o: hints.c 328 ${NORMAL_C} 329 330env.o: env.c 331 ${NORMAL_C} 332 333vnode_if.c: $S/kern/vnode_if.pl $S/kern/vnode_if.src 334 perl5 $S/kern/vnode_if.pl -c $S/kern/vnode_if.src 335 336vnode_if.h: $S/kern/vnode_if.pl $S/kern/vnode_if.src 337 perl5 $S/kern/vnode_if.pl -h $S/kern/vnode_if.src 338 339vnode_if.o: 340 ${NORMAL_C} 341 342# Commented out for now pending a better solution. 343# How do we pick up compiler version specific flags?? 344#.if exists($S/../share/mk) 345#.include "$S/../share/mk/bsd.kern.mk" 346#.else 347.include <bsd.kern.mk> 348#.endif 349 350%RULES
| 16# after which config should be rerun for all machines. 17# 18 19# Which version of config(8) is required. 20%VERSREQ= 500008 21 22# Temporary stuff while we're still embryonic 23NO_MODULES?= yes 24 25# Can be overridden by makeoptions or /etc/make.conf 26KERNEL_KO?= kernel 27KERNEL?= kernel 28KODIR?= /boot/${KERNEL} 29STD8X16FONT?= iso 30 31.if !defined(S) 32.if exists(./@/.) 33S= ./@ 34.else 35S= ../../.. 36.endif 37.endif 38M= ${MACHINE_ARCH} 39 40NM?= nm 41OBJCOPY?= objcopy 42SIZE?= size 43 44COPTFLAGS?=-O -pipe 45.if !defined(NO_CPU_COPTFLAGS) 46COPTFLAGS+= ${_CPUCFLAGS} 47.endif 48INCLUDES= -nostdinc -I- ${INCLMAGIC} -I. -I$S -I$S/dev 49 50# This hack lets us use the Intel ACPICA code without spamming a new 51# include path into 100+ source files. 52INCLUDES+= -I$S/contrib/dev/acpica 53 54# ... and the same for ipfilter 55INCLUDES+= -I$S/contrib/ipfilter 56 57# This hack is to allow kernel compiles to succeed on machines w/out srcdist 58.if exists($S/../include) 59INCLUDES+= -I$S/../include 60.else 61INCLUDES+= -I/usr/include 62.endif 63 64COPTS= ${INCLUDES} ${IDENT} -D_KERNEL -include opt_global.h 65_OS!=uname 66.if ${_OS} != "FreeBSD" 67CWARNFLAGS=-Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes \ 68 -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual 69COPTS+= -D__ELF__ -D__FreeBSD__ -msoft-float 70.endif 71CFLAGS= ${COPTFLAGS} ${CWARNFLAGS} ${DEBUG} ${COPTS} 72 73# XXX LOCORE means "don't declare C stuff" not "for locore.s". 74ASM_CFLAGS= -x assembler-with-cpp -DLOCORE ${CFLAGS} 75 76# Select the correct set of tools. Can't set OBJFORMAT here because it 77# doesn't get exported into the environment, and if it were exported 78# then it might break building of utilities. 79FMT= 80CFLAGS+= ${FMT} 81 82DEFINED_PROF= ${PROF} 83.if defined(PROF) 84CFLAGS+= -malign-functions=4 85.if ${PROFLEVEL} >= 2 86IDENT+= -DGPROF4 -DGUPROF 87PROF+= -mprofiler-epilogue 88.endif 89.endif 90 91# Put configuration-specific C flags last (except for ${PROF}) so that they 92# can override the others. 93CFLAGS+= ${CONF_CFLAGS} 94 95NORMAL_C= ${CC} -c ${CFLAGS} ${PROF} ${.IMPSRC} 96NORMAL_C_C= ${CC} -c ${CFLAGS} ${PROF} ${.IMPSRC} 97NORMAL_S= ${CC} -c ${ASM_CFLAGS} ${.IMPSRC} 98PROFILE_C= ${CC} -c ${CFLAGS} ${.IMPSRC} 99 100NORMAL_M= perl5 $S/kern/makeobjops.pl -c $<; \ 101 ${CC} -c ${CFLAGS} ${PROF} ${.PREFIX}.c 102 103GEN_CFILES= $S/$M/$M/genassym.c 104SYSTEM_CFILES= vnode_if.c hints.c env.c config.c 105SYSTEM_SFILES= $S/$M/$M/locore.s 106SYSTEM_DEP= Makefile ${SYSTEM_OBJS} 107SYSTEM_OBJS= locore.o vnode_if.o ${OBJS} hints.o env.o config.o hack.So 108SYSTEM_LD= @${LD} ${FMT} -Bdynamic -T $S/conf/ldscript.$M \ 109 -export-dynamic -dynamic-linker /red/herring \ 110 -o ${.TARGET} -X ${SYSTEM_OBJS} vers.o 111SYSTEM_LD_TAIL= @${OBJCOPY} --strip-symbol gcc2_compiled. ${.TARGET} ; \ 112 ${SIZE} ${FMT} ${.TARGET} ; chmod 755 ${.TARGET} 113SYSTEM_DEP+= $S/conf/ldscript.$M 114 115%BEFORE_DEPEND 116 117%OBJS 118 119%FILES.c 120 121%FILES.s 122 123%FILES.m 124 125%CLEAN 126 127.PHONY: all modules 128 129all: ${KERNEL_KO} 130 131depend: kernel-depend 132clean: kernel-clean 133cleandepend: kernel-cleandepend 134clobber: kernel-clobber 135tags: kernel-tags 136install: kernel-install 137install.debug: kernel-install.debug 138reinstall: kernel-reinstall 139reinstall.debug: kernel-reinstall.debug 140 141.if !defined(DEBUG) 142FULLKERNEL= ${KERNEL_KO} 143.else 144FULLKERNEL= ${KERNEL_KO}.debug 145${KERNEL_KO}: ${FULLKERNEL} 146 ${OBJCOPY} --strip-debug ${FULLKERNEL} ${KERNEL_KO} 147.endif 148 149${FULLKERNEL}: ${SYSTEM_DEP} vers.o 150 @rm -f ${.TARGET} 151 @echo linking ${.TARGET} 152 ${SYSTEM_LD} 153 ${SYSTEM_LD_TAIL} 154 155.if !exists(.depend) 156${SYSTEM_OBJS}: vnode_if.h ${BEFORE_DEPEND:M*.h} ${MFILES:T:S/.m$/.h/} 157.endif 158 159.for mfile in ${MFILES} 160${mfile:T:S/.m$/.h/}: ${mfile} 161 perl5 $S/kern/makeobjops.pl -h ${mfile} 162.endfor 163 164kernel-clean: 165 rm -f *.o *.so *.So *.ko *.s eddep errs \ 166 ${FULLKERNEL} ${KERNEL_KO} linterrs makelinks \ 167 setdef[01].c setdefs.h tags \ 168 vers.c vnode_if.c vnode_if.h \ 169 ${MFILES:T:S/.m$/.c/} ${MFILES:T:S/.m$/.h/} \ 170 ${CLEAN} 171 172kernel-clobber: 173 find . -type f ! -name version -delete 174 175locore.o: $S/$M/$M/locore.s assym.s 176 ${NORMAL_S} 177 178# This is a hack. BFD "optimizes" away dynamic mode if there are no 179# dynamic references. We could probably do a '-Bforcedynamic' mode like 180# in the a.out ld. For now, this works. 181hack.So: Makefile 182 touch hack.c 183 ${CC} ${FMT} -shared -nostdlib hack.c -o hack.So 184 rm -f hack.c 185 186# this rule stops ./assym.s in .depend from causing problems 187./assym.s: assym.s 188 189assym.s: $S/kern/genassym.sh genassym.o 190 NM=${NM} OBJFORMAT=elf sh $S/kern/genassym.sh genassym.o > ${.TARGET} 191 192genassym.o: $S/$M/$M/genassym.c 193 ${CC} -c ${CFLAGS} $S/$M/$M/genassym.c 194 195${SYSTEM_OBJS} genassym.o vers.o: opt_global.h 196 197kernel-depend: 198 rm -f .olddep 199 if [ -f .depend ]; then mv .depend .olddep; fi 200 ${MAKE} _kernel-depend 201 202_kernel-depend: assym.s vnode_if.h ${BEFORE_DEPEND} \ 203 ${CFILES} ${SYSTEM_CFILES} ${GEN_CFILES} ${SFILES} \ 204 ${SYSTEM_SFILES} ${MFILES:T:S/.m$/.h/} 205 if [ -f .olddep ]; then mv .olddep .depend; fi 206 rm -f .newdep 207 mkdep -a -f .newdep ${CFLAGS} ${CFILES} ${SYSTEM_CFILES} ${GEN_CFILES} 208 env MKDEP_CPP="${CC} -E" \ 209 mkdep -a -f .newdep ${ASM_CFLAGS} ${SFILES} ${SYSTEM_SFILES} 210 rm -f .depend 211 mv .newdep .depend 212 213kernel-cleandepend: 214 rm -f .depend 215 216links: 217 egrep '#if' ${CFILES} | sed -f $S/conf/defines | \ 218 sed -e 's/:.*//' -e 's/\.c/.o/' | sort -u > dontlink 219 echo ${CFILES} | tr -s ' ' '\12' | sed 's/\.c/.o/' | \ 220 sort -u | comm -23 - dontlink | \ 221 sed 's,../.*/\(.*.o\),rm -f \1;ln -s ../GENERIC/\1 \1,' > makelinks 222 sh makelinks; rm -f dontlink 223 224kernel-tags: 225 @[ -f .depend ] || { echo "you must make depend first"; exit 1; } 226 sh $S/conf/systags.sh 227 rm -f tags1 228 sed -e 's, ../, ,' tags > tags1 229 230kernel-install kernel-install.debug: 231.if exists(${DESTDIR}/boot) 232 @if [ ! -f ${DESTDIR}/boot/device.hints ] ; then \ 233 echo "You must set up a ${DESTDIR}/boot/device.hints file first." ; \ 234 exit 1 ; \ 235 fi 236 @if [ x"`grep device.hints ${DESTDIR}/boot/defaults/loader.conf ${DESTDIR}/boot/loader.conf`" = "x" ]; then \ 237 echo "You must activate /boot/device.hints in loader.conf." ; \ 238 exit 1 ; \ 239 fi 240.endif 241 @if [ ! -f ${KERNEL_KO}${.TARGET:S/kernel-install//} ] ; then \ 242 echo "You must build a kernel first." ; \ 243 exit 1 ; \ 244 fi 245.if exists(${DESTDIR}${KODIR}) 246.if exists(${DESTDIR}${KODIR}.old) 247 @-chflags -R noschg ${DESTDIR}${KODIR}.old 248 -rm -rf ${DESTDIR}${KODIR}.old 249.endif 250 mv ${DESTDIR}${KODIR} ${DESTDIR}${KODIR}.old 251 [ "`sysctl -n kern.bootfile`" != "${DESTDIR}${KODIR}/kernel" ] || \ 252 sysctl kern.bootfile=${DESTDIR}${KODIR}.old/kernel 253.endif 254 mkdir -p ${DESTDIR}${KODIR} 255 install -c -m 555 -o root -g wheel \ 256 ${KERNEL_KO}${.TARGET:S/kernel-install//} ${DESTDIR}${KODIR} 257 258kernel-reinstall kernel-reinstall.debug: 259 @-chflags -R noschg ${DESTDIR}${KODIR} 260 install -c -m 555 -o root -g wheel \ 261 ${KERNEL_KO}${.TARGET:S/kernel-reinstall//} ${DESTDIR}${KODIR} 262 263.if !defined(MODULES_WITH_WORLD) && !defined(NO_MODULES) && exists($S/modules) 264all: modules 265depend: modules-depend 266clean: modules-clean 267cleandepend: modules-cleandepend 268cleandir: modules-cleandir 269clobber: modules-clobber 270tags: modules-tags 271install: modules-install 272install.debug: modules-install.debug 273reinstall: modules-reinstall 274reinstall.debug: modules-reinstall.debug 275.endif 276 277MKMODULESENV= MAKEOBJDIRPREFIX=${.OBJDIR}/modules KMODDIR=${KODIR} 278.if defined(MODULES_OVERRIDE) 279MKMODULESENV+= MODULES_OVERRIDE="${MODULES_OVERRIDE}" 280.endif 281.if defined(DEBUG) 282MKMODULESENV+= DEBUG="${DEBUG}" DEBUG_FLAGS="${DEBUG}" 283.endif 284 285modules: 286 @mkdir -p ${.OBJDIR}/modules 287 cd $S/modules ; env ${MKMODULESENV} ${MAKE} obj ; \ 288 env ${MKMODULESENV} ${MAKE} all 289 290modules-depend: 291 @mkdir -p ${.OBJDIR}/modules 292 cd $S/modules ; env ${MKMODULESENV} ${MAKE} obj ; \ 293 env ${MKMODULESENV} ${MAKE} depend 294 295modules-clean: 296 cd $S/modules ; env ${MKMODULESENV} ${MAKE} clean 297 298modules-cleandepend: 299 cd $S/modules ; env ${MKMODULESENV} ${MAKE} cleandepend 300 301modules-clobber: modules-clean 302 rm -rf ${MKMODULESENV} 303 304modules-cleandir: 305 cd $S/modules ; env ${MKMODULESENV} ${MAKE} cleandir 306 307modules-tags: 308 cd $S/modules ; env ${MKMODULESENV} ${MAKE} tags 309 310modules-install modules-install.debug: 311 cd $S/modules ; env ${MKMODULESENV} ${MAKE} install 312 313modules-reinstall modules-reinstall.debug: 314 cd $S/modules ; env ${MKMODULESENV} ${MAKE} install 315 316config.o: 317 ${NORMAL_C} 318 319vers.c: $S/conf/newvers.sh $S/sys/param.h ${SYSTEM_DEP} 320 sh $S/conf/newvers.sh ${KERN_IDENT} ${IDENT} 321 322# XXX strictly, everything depends on Makefile because changes to ${PROF} 323# only appear there, but we don't handle that. 324vers.o: 325 ${NORMAL_C} 326 327hints.o: hints.c 328 ${NORMAL_C} 329 330env.o: env.c 331 ${NORMAL_C} 332 333vnode_if.c: $S/kern/vnode_if.pl $S/kern/vnode_if.src 334 perl5 $S/kern/vnode_if.pl -c $S/kern/vnode_if.src 335 336vnode_if.h: $S/kern/vnode_if.pl $S/kern/vnode_if.src 337 perl5 $S/kern/vnode_if.pl -h $S/kern/vnode_if.src 338 339vnode_if.o: 340 ${NORMAL_C} 341 342# Commented out for now pending a better solution. 343# How do we pick up compiler version specific flags?? 344#.if exists($S/../share/mk) 345#.include "$S/../share/mk/bsd.kern.mk" 346#.else 347.include <bsd.kern.mk> 348#.endif 349 350%RULES
|