bug #2442: Fix bmake regression of kernel build
[dragonfly.git] / sys / conf / kern.fwd.mk
CommitLineData
a7f2f51f
SZ
1# Create forwarding headers for ${SYSDIR}/cpu/${MACHINE_ARCH}/*.h in
2# ${_MACHINE_FWD}/include/machine and share the directory among module build
3# directories.
4# Define _MACHINE_FWD before inclusion of this file.
5.if !defined(_MACHINE_FWD)
6.error you must define _MACHINE_FWD in which to generate forwarding headers.
7.endif
8
456acd3a
MD
9# _FWDHDRS fills in missing <machine/BLAH.h> headers from <cpu/BLAH.h>,
10# allowing us to omit forwarding-only header files in each platform
11# architecture's machine/ directory.
12#
a7f2f51f
SZ
13_cpu_hdrs!= echo ${SYSDIR}/cpu/${MACHINE_ARCH}/include/*.h
14_FWDHDRS=
15.for _h in ${_cpu_hdrs}
16_fwd:= ${_MACHINE_FWD}/include/machine/${_h:T}
17_FWDHDRS:= ${_FWDHDRS} ${_fwd}
18${_fwd}: ${_h}
19.endfor
8f4576aa 20
456acd3a
MD
21# _LHDRS mimics _LHDRS from /usr/src/include/Makefile, directly linking
22# sys/BLAH.h as <BLAH.h> for certain header files. These are used to
23# mimic a standard user include topology. Only the virtual kernel
24# build uses these. e.g. in order for #include <fcntl.h> to work.
25#
26_lhdrs= aio.h errno.h fcntl.h linker_set.h poll.h syslog.h \
27 termios.h ucontext.h
28_LHDRS=
29.for _h in ${_lhdrs}
30_fwd:= ${_MACHINE_FWD}/include/${_h}
31_LHDRS:= ${_LHDRS} ${_fwd}
32${_fwd}: ${SYSDIR}/sys/${_h}
33.endfor
34
d0aac0ec 35.ORDER: ${_MACHINE_FWD}/include/machine ${_FWDHDRS} ${_LHDRS}
8f4576aa 36
a7f2f51f
SZ
37${_MACHINE_FWD} ${_MACHINE_FWD}/include/machine:
38 @mkdir -p ${.TARGET}
39
703521da
SS
40FORWARD_HEADERS_COOKIE= ${_MACHINE_FWD}/.done
41${FORWARD_HEADERS_COOKIE}: ${_MACHINE_FWD}/include/machine ${_FWDHDRS} ${_LHDRS}
42 @touch ${.TARGET}
a7f2f51f
SZ
43
44${_FWDHDRS}:
9c9078b1
JM
45.if defined(.PARSEDIR)
46 @(echo "creating machine/ forwarding header ${.TARGET}" 1>&2; \
47 echo "/*" ; \
48 echo " * CONFIG-GENERATED FILE, DO NOT EDIT" ; \
49 echo " */" ; \
50 echo ; \
51 echo "#ifndef _MACHINE_${.TARGET:T:S/./_/g:tu}_" ; \
52 echo "#define _MACHINE_${.TARGET:T:S/./_/g:tu}_" ; \
53 echo "#include <cpu/${.TARGET:T}>" ; \
54 echo "#endif" ; \
55 echo) > ${.TARGET}
56.else
57 # LEGACY MAKE - REMOVE FOR DFLY 3.6
456acd3a 58 @(echo "creating machine/ forwarding header ${.TARGET}" 1>&2; \
a7f2f51f
SZ
59 echo "/*" ; \
60 echo " * CONFIG-GENERATED FILE, DO NOT EDIT" ; \
61 echo " */" ; \
62 echo ; \
968552b3
YT
63 echo "#ifndef _MACHINE_${.TARGET:T:S/./_/g:U}_" ; \
64 echo "#define _MACHINE_${.TARGET:T:S/./_/g:U}_" ; \
a7f2f51f
SZ
65 echo "#include <cpu/${.TARGET:T}>" ; \
66 echo "#endif" ; \
67 echo) > ${.TARGET}
9c9078b1 68.endif
456acd3a
MD
69
70${_LHDRS}:
9c9078b1
JM
71.if defined(.PARSEDIR)
72 @(echo "creating sys/ forwarding header ${.TARGET}" 1>&2; \
73 echo "/*" ; \
74 echo " * CONFIG-GENERATED FILE, DO NOT EDIT" ; \
75 echo " */" ; \
76 echo ; \
77 echo "#ifndef _${.TARGET:T:S/./_/g:tu}_" ; \
78 echo "#define _${.TARGET:T:S/./_/g:tu}_" ; \
79 echo "#include <sys/${.TARGET:T}>" ; \
80 echo "#endif" ; \
81 echo) > ${.TARGET}
82.else
83 # LEGACY MAKE - REMOVE FOR DFLY 3.6
456acd3a
MD
84 @(echo "creating sys/ forwarding header ${.TARGET}" 1>&2; \
85 echo "/*" ; \
86 echo " * CONFIG-GENERATED FILE, DO NOT EDIT" ; \
87 echo " */" ; \
88 echo ; \
89 echo "#ifndef _${.TARGET:T:S/./_/g:U}_" ; \
90 echo "#define _${.TARGET:T:S/./_/g:U}_" ; \
91 echo "#include <sys/${.TARGET:T}>" ; \
92 echo "#endif" ; \
93 echo) > ${.TARGET}
9c9078b1 94.endif
456acd3a 95