3 .if !targets(__<${_this:T}>__)
6 # Makefile for the compatibility libraries.
7 # - 32-bit compat libraries on PowerPC, and AMD64.
9 .if defined(_LIBCOMPATS)
11 .include <bsd.compat.mk>
13 .for libcompatidx _LIBCOMPAT libcompat in ${_LIBCOMPATS:range:@i@${i} ${_LIBCOMPATS:[$i]} ${libcompats:[$i]}@}
15 # Yes, the flags are redundant.
16 LIB${_LIBCOMPAT}WMAKEENV+= \
17 INSTALL="${INSTALL_CMD} -U" \
20 LIBDIR=/usr/lib${libcompat} \
21 SHLIBDIR=/usr/lib${libcompat} \
22 LIBDATADIR=/usr/lib${libcompat} \
23 DTRACE="${LIB$COMPATDTRACE:U${DTRACE}}"
24 .if ${MK_META_MODE} != "no"
25 # Don't rebuild build-tools targets during normal build.
26 LIB${_LIBCOMPAT}WMAKEENV+= BUILD_TOOLS_META=.NOMETA
28 LIB${_LIBCOMPAT}WMAKEFLAGS+= CC="${XCC} ${LIB${_LIBCOMPAT}CFLAGS}" \
29 CXX="${XCXX} ${LIB${_LIBCOMPAT}CXXFLAGS} ${LIB${_LIBCOMPAT}CFLAGS}" \
30 CPP="${XCPP} ${LIB${_LIBCOMPAT}CFLAGS}" \
36 LIB${_LIBCOMPAT}WMAKE+= ${TIME_ENV} ${LIB${_LIBCOMPAT}WMAKEENV} ${MAKE} \
37 ${LIB${_LIBCOMPAT}WMAKEFLAGS} \
38 OBJTOP=${LIB${_LIBCOMPAT}_OBJTOP} \
39 OBJROOT='$${OBJTOP}/' \
42 LIB${_LIBCOMPAT}IMAKE+= ${LIB${_LIBCOMPAT}WMAKE:NINSTALL=*:NDESTDIR=*} \
48 build${libcompat}: .PHONY
50 @echo "--------------------------------------------------------------"
51 @echo ">>> stage 4.3.${libcompatidx}: building lib${libcompat} shim libraries"
52 @echo "--------------------------------------------------------------"
53 ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.lib${libcompat}.dist \
54 -p ${WORLDTMP}/usr >/dev/null
55 .if ${MK_DEBUG_FILES} != "no"
56 ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.lib${libcompat}.dist \
57 -p ${WORLDTMP}/usr/lib/debug/usr >/dev/null
59 ${_+_}cd ${.CURDIR}; \
60 WORLDTMP=${WORLDTMP} \
61 MAKEFLAGS="-m ${.CURDIR}/tools/build/mk ${.MAKEFLAGS}" \
62 ${MAKE} -f Makefile.inc1 \
64 OBJTOP=${LIB${_LIBCOMPAT}_OBJTOP} \
65 OBJROOT='$${OBJTOP}/' \
76 ${_+_}cd ${.CURDIR}; \
77 ${LIB${_LIBCOMPAT}WMAKE} -f Makefile.inc1 -DNO_FSCHG libraries
79 distribute${libcompat} install${libcompat}: .PHONY
80 ${_+_}cd ${.CURDIR}; \
81 ${LIB${_LIBCOMPAT}IMAKE} -f Makefile.inc1 _lc_${.TARGET:S/${libcompat}$//}
83 .endfor # libcompatidx _LIBCOMPAT libcompat
85 .endif # defined(_LIBCOMPATS)
87 # These depend on MK_*, which could vary between the native and compat
88 # architectures. Thus targets using them are run within a compat sub-make
89 # rather than the native make environment.
92 _LC_LIBDIRS.yes+= gnu/lib
93 _LC_LIBDIRS.${MK_CDDL:tl}+= cddl/lib
94 _LC_LIBDIRS.${MK_CRYPT:tl}+= secure/lib
95 _LC_LIBDIRS.${MK_KERBEROS:tl}+= kerberos5/lib
97 .if ${MK_FILE} != "no"
98 _libmagic= lib/libmagic
100 .if ${MK_PMC} != "no"
101 _jevents= lib/libpmc/pmu-events
105 .for _dir in lib/ncurses/tinfo ${_libmagic} ${_jevents}
106 .for _t in ${_obj} build-tools
107 ${_+_}cd ${.CURDIR}/${_dir}; ${MAKE} DIRPRFX=${_dir}/ ${_t}
111 _lc_distribute _lc_install:
112 .for _dir in ${_LC_LIBDIRS.yes}
113 ${_+_}cd ${.CURDIR}/${_dir}; ${MAKE} ${.TARGET:S/^_lc_//}
116 .endif # !targets(__<${_this:T}>__)