Makefile.fbsd_end   [plain text]


# For the FreeBSD auto patching mechanism and compatibility environment
# setup, original FreeBSD sources a put into a FreeBSD subdirectory.
# If a file with the same name, but suffix ".patch" is in that directory,
# that patch will be applied before use.
#
# The FBSDMDSRCS, FBSDMISRCS, FBSDORIGHDRS and FBSDSRCS variables must be set,
# and bracketed by .include of Makefile.fbsd_begin and Makefile.fbsd_end
#
# Set up dependencies between the FreeBSD source (in a FreeBSD subdirectory)
# and a file with a -fbsd.x suffix (where x is 'c' or 's').  The suffix
# rules will then compile the file with the simulate FreeBSD environment.

FBSDSECTIONS= 1 2 3 4 5 6 7 8 9

# This .for statement forces evaluation of ${_cwd}
.for _cwd in ${CWD}

.for _src in ${FBSDSRCS}
.ifmake autopatch
${_cwd}/${_src:R}-fbsd.${_src:E}: ${_cwd}/FreeBSD/${_src} _AUTOPATCH
AUTOPATCHSRCS+= ${_cwd}/${_src:R}-fbsd.${_src:E}
.else # !autopatch
SRCS+= ${_src}
.endif # autopatch
.endfor

.for _src in ${FBSDMDSRCS}
.ifmake autopatch
${_cwd}/${_src:R}-fbsd.${_src:E}: ${_cwd}/FreeBSD/${_src} _AUTOPATCH
AUTOPATCHSRCS+= ${_cwd}/${_src:R}-fbsd.${_src:E}
.else # !autopatch
MDSRCS+= ${_src}
.endif # autopatch
.endfor

.for _src in ${FBSDMISRCS}
.ifmake autopatch
${_cwd}/${_src:R}-fbsd.${_src:E}: ${_cwd}/FreeBSD/${_src} _AUTOPATCH
AUTOPATCHSRCS+= ${_cwd}/${_src:R}-fbsd.${_src:E}
.else # !autopatch
MISRCS+= ${_src}
.endif # autopatch
.endfor

# FBSDPATCHSRCS are for source that need patching, but don't build
# in base variant (only in other variants)
.ifmake autopatch
.for _src in ${FBSDPATCHSRCS}
${_cwd}/${_src:R}-fbsd.${_src:E}: ${_cwd}/FreeBSD/${_src} _AUTOPATCH
AUTOPATCHSRCS+= ${_cwd}/${_src:R}-fbsd.${_src:E}
.endfor
.endif # autopatch

.ifmake autopatch
.for _src in ${FBSDHDRS}
${_cwd}/${_src}: ${_cwd}/FreeBSD/${_src} _AUTOPATCH
AUTOPATCHHDRS+= ${_cwd}/${_src}
.endfor
.endif # autopatch

.for _sect in ${FBSDSECTIONS}
.for _src in ${FBSDMAN${_sect}}
.ifmake autopatch
${_cwd}/${_src}: ${_cwd}/FreeBSD/${_src} _AUTOPATCH
AUTOPATCHMAN+= ${_cwd}/${_src}
.else # !autopatch
MAN${_sect}+= ${_src}
.endif # autopatch
.endfor
.endfor

.endfor # _cwd