diff --git a/Makefile.libcompat b/Makefile.libcompat --- a/Makefile.libcompat +++ b/Makefile.libcompat @@ -39,20 +39,6 @@ MK_INCLUDES=no \ -DLIBRARIES_ONLY -_LC_LIBDIRS.yes= lib -_LC_LIBDIRS.yes+= gnu/lib -_LC_LIBDIRS.${MK_CDDL:tl}+= cddl/lib -_LC_LIBDIRS.${MK_CRYPT:tl}+= secure/lib -_LC_LIBDIRS.${MK_KERBEROS:tl}+= kerberos5/lib - -.if ${MK_FILE} != "no" -_libmagic= lib/libmagic -.endif -.if ${MK_PMC} != "no" -_jevents= lib/libpmc/pmu-events -.endif - - # Shared logic build${libcompat}: .PHONY @echo @@ -65,16 +51,14 @@ ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.lib${libcompat}.dist \ -p ${WORLDTMP}/usr/lib/debug/usr >/dev/null .endif -.for _dir in lib/ncurses/tinfo ${_libmagic} ${_jevents} -.for _t in ${_obj} build-tools - ${_+_}cd ${.CURDIR}/${_dir}; \ + ${_+_}cd ${.CURDIR}; \ WORLDTMP=${WORLDTMP} \ MAKEFLAGS="-m ${.CURDIR}/tools/build/mk ${.MAKEFLAGS}" \ - ${MAKE} DESTDIR= \ + ${MAKE} -f Makefile.inc1 \ + DESTDIR= \ OBJTOP=${LIBCOMPAT_OBJTOP} \ OBJROOT='$${OBJTOP}/' \ MAKEOBJDIRPREFIX= \ - DIRPRFX=${_dir}/ \ -DNO_LINT \ -DNO_CPU_CFLAGS \ MK_ASAN=no \ @@ -83,15 +67,41 @@ MK_SSP=no \ MK_UBSAN=no \ MK_WERROR=no \ - ${_t} -.endfor -.endfor + _lc_build-tools ${_+_}cd ${.CURDIR}; \ ${LIBCOMPATWMAKE} -f Makefile.inc1 -DNO_FSCHG libraries distribute${libcompat} install${libcompat}: .PHONY + ${_+_}cd ${.CURDIR}; \ + ${LIBCOMPATIMAKE} -f Makefile.inc1 _lc_${.TARGET:S/${libcompat}$//} + +# These depend on MK_*, which could vary between the native and compat +# architectures. Thus targets using them are run within a compat sub-make +# rather than the native make environment. + +_LC_LIBDIRS.yes= lib +_LC_LIBDIRS.yes+= gnu/lib +_LC_LIBDIRS.${MK_CDDL:tl}+= cddl/lib +_LC_LIBDIRS.${MK_CRYPT:tl}+= secure/lib +_LC_LIBDIRS.${MK_KERBEROS:tl}+= kerberos5/lib + +.if ${MK_FILE} != "no" +_libmagic= lib/libmagic +.endif +.if ${MK_PMC} != "no" +_jevents= lib/libpmc/pmu-events +.endif + +_lc_build-tools: +.for _dir in lib/ncurses/tinfo ${_libmagic} ${_jevents} +.for _t in ${_obj} build-tools + ${_+_}cd ${.CURDIR}/${_dir}; ${MAKE} DIRPRFX=${_dir}/ ${_t} +.endfor +.endfor + +_lc_distribute _lc_install: .for _dir in ${_LC_LIBDIRS.yes} - ${_+_}cd ${.CURDIR}/${_dir}; ${LIBCOMPATIMAKE} ${.TARGET:S/${libcompat}$//} + ${_+_}cd ${.CURDIR}/${_dir}; ${MAKE} ${.TARGET:S/^_lc_//} .endfor .endif # !targets(__<${_this:T}>__)