# 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