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