1 # Create forwarding headers for ${SYSDIR}/cpu/${MACHINE_ARCH}/*.h in
2 # ${_MACHINE_FWD}/include/machine and share the directory among module build
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.
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.
13 _cpu_hdrs
!= echo
${SYSDIR}/cpu
/${MACHINE_ARCH}/include/*.h
15 .for _h in
${_cpu_hdrs}
16 _fwd
:= ${_MACHINE_FWD}/include/machine
/${_h
:T
}
17 _FWDHDRS
:= ${_FWDHDRS} ${_fwd}
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.
26 _lhdrs
= aio.h errno.h fcntl.h linker_set.h poll.h syslog.h \
30 _fwd
:= ${_MACHINE_FWD}/include/${_h}
31 _LHDRS
:= ${_LHDRS} ${_fwd}
32 ${_fwd}: ${SYSDIR}/sys
/${_h}
35 .ORDER
: ${_MACHINE_FWD}/include/machine
${_FWDHDRS} ${_LHDRS}
37 ${_MACHINE_FWD} ${_MACHINE_FWD}/include/machine
:
40 FORWARD_HEADERS_COOKIE
= ${_MACHINE_FWD}/.done
41 ${FORWARD_HEADERS_COOKIE}: ${_MACHINE_FWD}/include/machine
${_FWDHDRS} ${_LHDRS}
45 @
(echo
"creating machine/ forwarding header ${.TARGET}" 1>&2; \
47 echo
" * CONFIG-GENERATED FILE, DO NOT EDIT" ; \
50 echo
"#ifndef _MACHINE_${.TARGET:T:S/./_/g:tu}_" ; \
51 echo
"#define _MACHINE_${.TARGET:T:S/./_/g:tu}_" ; \
52 echo
"#include <cpu/${.TARGET:T}>" ; \
54 echo
) > ${.TARGET
}.
${.MAKE.PID
}
55 @mv
-f
${.TARGET
}.
${.MAKE.PID
} ${.TARGET
}
58 @
(echo
"creating sys/ forwarding header ${.TARGET}" 1>&2; \
60 echo
" * CONFIG-GENERATED FILE, DO NOT EDIT" ; \
63 echo
"#ifndef _${.TARGET:T:S/./_/g:tu}_" ; \
64 echo
"#define _${.TARGET:T:S/./_/g:tu}_" ; \
65 echo
"#include <sys/${.TARGET:T}>" ; \
67 echo
) > ${.TARGET
}.
${.MAKE.PID
}
68 @mv
-f
${.TARGET
}.
${.MAKE.PID
} ${.TARGET
}