aboutsummaryrefslogtreecommitdiff
path: root/Makefile.libcompat
diff options
context:
space:
mode:
authorJessica Clarke <jrtc27@FreeBSD.org>2023-06-27 23:10:30 +0000
committerJessica Clarke <jrtc27@FreeBSD.org>2023-06-27 23:10:30 +0000
commit10afc5eada472f7903238c7021a00f722f49a789 (patch)
tree044ab287978b64df188cf5b701ef6f937f4d3bee /Makefile.libcompat
parent5ed851515129c9c3bfe255baac1c29cb3b041862 (diff)
Diffstat (limited to 'Makefile.libcompat')
-rw-r--r--Makefile.libcompat56
1 files changed, 33 insertions, 23 deletions
diff --git a/Makefile.libcompat b/Makefile.libcompat
index 05e77a980b6a..11668bf54eda 100644
--- a/Makefile.libcompat
+++ b/Makefile.libcompat
@@ -39,20 +39,6 @@ LIBCOMPATIMAKE+= ${LIBCOMPATWMAKE:NINSTALL=*:NDESTDIR=*} \
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 @@ build${libcompat}: .PHONY
${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 @@ build${libcompat}: .PHONY
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}>__)