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