Home | History | Annotate | Line # | Download | only in mk
bsd.kernobj.mk revision 1.7
      1 #	$NetBSD: bsd.kernobj.mk,v 1.7 2001/11/27 05:39:03 jmc Exp $
      2 
      3 # KERNSRCDIR	Is the location of the top of the kernel src.
      4 # 		It defaults to ${BSDSRCDIR}/sys, but the top-level
      5 # 		Makefile.inc sets it to ${ABSTOP}/sys (ABSTOP is the
      6 # 		absolute path to the directory where the top-level
      7 # 		Makefile.inc was found.
      8 # 
      9 # KERNARCHDIR	Is the location of the machine dependent kernel
     10 # 		sources.  It defaults to arch/${MACHINE}
     11 # 		
     12 # KERNCONFDIR	Is where the configuration files for kernels are
     13 # 		found; default is ${KERNSRCDIR}/${KERNARCHDIR}/conf.
     14 # 
     15 # KERNOBJDIR	Is the kernel build directory.  The kernel GENERIC for
     16 # 		instance will be compiled in ${KERNOBJDIR}/GENERIC.
     17 # 		The default value is
     18 # 		${KERNSRCDIR}/${KERNARCHDIR}/compile
     19 #
     20 #		If MAKEOBJDIRPREFIX or _SRC_TOP_OBJ is set than the value will
     21 #		be either 
     22 #
     23 #		${MAKEOBJDIRPREFIX}${KERNSRCDIR}/${KERNARCHDIR}/compile
     24 #
     25 #		or
     26 #
     27 #		${_SRC_TOP_OBJ_}/sys/${KERNARCHDIR}/compile
     28 #
     29 #		with MAKEOBJDIRPREFIX taking priority over _SRC_TOP_OBJ_ 
     30 # 
     31 
     32 .include <bsd.own.mk>
     33 
     34 KERNSRCDIR?=	${BSDSRCDIR}/sys
     35 # just incase ${MACHINE} is not always correct
     36 KERNARCHDIR?=	arch/${MACHINE}
     37 
     38 #
     39 # XXX It's ugly but it does what we need here. If making objects use the above
     40 # rules for trying to figure out a KERNOBJDIR.
     41 #
     42 # When coming back through here in rules (such as building kernels for
     43 # a release), check which vars we're using and which directory base has been
     44 # made in the previous obj stage to figure out which one to expose.
     45 #
     46 # All cases will fall through to the ${KERNSRCDIR}/${KERNARCHDIR}/compile case
     47 # if nothing ends up setting this.
     48 .if make(obj) || \
     49     (defined(MAKEOBJDIRPREFIX) && exists(${MAKEOBJDIRPREFIX}${KERNSRCDIR}/${KERNARCHDIR}/compile)) || \
     50     (defined(_SRC_TOP_OBJ_) && exists(${_SRC_TOP_OBJ_}/sys/${KERNARCHDIR}/compile))
     51 .if defined (MAKEOBJDIRPREFIX)
     52 KERNOBJDIR?=    ${MAKEOBJDIRPREFIX}${KERNSRCDIR}/${KERNARCHDIR}/compile
     53 .else
     54 .if defined(_SRC_TOP_OBJ_) && ${_SRC_TOP_OBJ_} != ""
     55 KERNOBJDIR?=	${_SRC_TOP_OBJ_}/sys/${KERNARCHDIR}/compile
     56 .endif
     57 .endif
     58 .endif
     59 
     60 KERNOBJDIR?=	${KERNSRCDIR}/${KERNARCHDIR}/compile
     61 
     62 KERNCONFDIR?=	${KERNSRCDIR}/${KERNARCHDIR}/conf
     63