1 # $NetBSD: Makefile.inc,v 1.39 2005/12/11 12:24:37 christos Exp $
3 # Configuration variables (default values are below):
5 # S must be set to the top of the 'sys' tree.
6 # KERNDST may be set to the location of the directory where library
7 # objects are to be built. Defaults to ${.OBJDIR}/lib/kern.
8 # KERN_AS may be set to 'obj' to build a object from the library's
9 # object files. (Otherwise, a library will be built.)
10 # Defaults to 'library'.
12 # Miscellaneous cpp flags to be passed to the library's Makefile
15 # Miscellaneous flags to be passed to the library's Makefile when
16 # building. See library's Makefile for more details about
17 # supported flags and their default values.
20 KERNDST?= ${.OBJDIR}/lib/kern
24 KERNDIR= ${S:S@^.@${KERNDOTDIR}@:Q}/lib/libkern
25 .if (${KERN_AS} == "obj")
26 KERNLIB= ${KERNDST}/libkern.o
27 KERNLIB_PROF= ${KERNDST}/libkern.po
29 KERNLIB= ${KERNDST}/libkern.a
30 KERNLIB_PROF= ${KERNDST}/libkern_p.a
33 LIBKERNLNBN= llib-lkern.ln
34 KERNLIBLN= ${KERNDST}/${LIBKERNLNBN}
37 cd ${KERNDST} && ${MAKE} -f ${KERNDIR:Q}/Makefile \
38 KERNDIR=${KERNDIR:Q} \
39 CC=${CC:Q} CFLAGS=${CFLAGS:Q} \
40 AS=${AS:Q} AFLAGS=${AFLAGS:Q} \
43 LD=${LD:Q} STRIP=${STRIP:Q} \
44 AR=${AR:Q} NM=${NM:Q} \
45 RANLIB=${RANLIB:Q} SIZE=${SIZE:Q} \
46 MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH:Q} \
47 KERNCPPFLAGS=${CPPFLAGS:S@^-I.@-I${KERNDOTDIR}@g:Q} \
48 KERNMISCCPPFLAGS=${KERNMISCCPPFLAGS:Q} \
49 LINTFLAGS=${KERNLINTFLAGS:Q} \
52 ${KERNLIB}: .NOTMAIN .MAKE __always_make_kernlib
53 @echo making sure the kern library is up to date...
54 .if (${KERN_AS} == "library")
55 @${KERNMAKE} libkern.a
57 @${KERNMAKE} libkern.o
60 ${KERNLIB_PROF}: .NOTMAIN .MAKE __always_make_kernlib
61 @echo making sure the profiled kern library is up to date...
62 .if (${KERN_AS} == "library")
63 @${KERNMAKE} libkern_p.a
65 @${KERNMAKE} libkern.po
68 ${KERNLIBLN}: .NOTMAIN .MAKE __always_make_kernlib
69 @echo making sure the kern lint library is up to date...
70 @${KERNMAKE} ${LIBKERNLNBN}
72 clean: .NOTMAIN cleankernlib
73 cleankernlib: .NOTMAIN
74 @echo cleaning the kern library objects
75 @if [ -d "${KERNDST}" ]; then ${KERNMAKE} clean; fi
77 cleandir distclean: .NOTMAIN cleandirkernlib
78 cleandirkernlib: .NOTMAIN
79 @echo cleandiring the kern library objects
80 @if [ -d "${KERNDST}" ]; then ${KERNMAKE} cleandir; fi
82 dependall depend: .NOTMAIN dependkernlib
83 dependkernlib: .NOTMAIN .MAKE __always_make_kernlib
84 @echo depending the kern library objects
87 __always_make_kernlib: .NOTMAIN
88 @(mkdir -p ${KERNDST})
90 .PHONY: __always_make_kernlib
91 .PHONY: cleankernlib cleandirkernlib dependkernlib
93 .include "${.PARSEDIR}/../../../common/lib/libc/Makefile.inc"