3 .if !targets(__<${_this:T}>__)
6 # Makefile for the compatibility libraries.
7 # - 32-bit compat libraries on MIPS, PowerPC, and AMD64.
9 .include <bsd.compat.mk>
11 # Yes, the flags are redundant.
13 INSTALL="sh ${.CURDIR}/tools/install.sh" \
15 SYSROOT=${LIBCOMPATTMP} \
16 LIBDIR=/usr/lib${libcompat} \
17 SHLIBDIR=/usr/lib${libcompat} \
18 DTRACE="${LIB$COMPATDTRACE:U${DTRACE}}"
19 .if ${MK_META_MODE} != "no"
20 # Don't rebuild build-tools targets during normal build.
21 LIBCOMPATWMAKEENV+= BUILD_TOOLS_META=.NOMETA
23 LIBCOMPATWMAKEFLAGS+= CC="${XCC} ${LIBCOMPATCFLAGS}" \
24 CXX="${XCXX} ${LIBCOMPATCXXFLAGS} ${LIBCOMPATCFLAGS}" \
25 CPP="${XCPP} ${LIBCOMPATCFLAGS}" \
26 DESTDIR=${LIBCOMPATTMP} \
31 LIBCOMPATWMAKE+= ${LIBCOMPATWMAKEENV} ${MAKE} ${LIBCOMPATWMAKEFLAGS} \
32 OBJTOP=${LIBCOMPAT_OBJTOP} \
33 OBJROOT='$${OBJTOP}/' \
36 LIBCOMPATIMAKE+= ${LIBCOMPATWMAKE:NINSTALL=*:NDESTDIR=*} \
41 _LC_LIBDIRS.yes+= gnu/lib
42 _LC_LIBDIRS.yes+= usr.bin/lex/lib
43 _LC_LIBDIRS.${MK_CDDL:tl}+= cddl/lib
44 _LC_LIBDIRS.${MK_CRYPT:tl}+= secure/lib
45 _LC_LIBDIRS.${MK_KERBEROS:tl}+= kerberos5/lib
49 lib/ncurses/ncursesw \
52 .if ${MK_FILE} != "no"
53 _libmagic= lib/libmagic
55 .if ${MK_PMC} != "no" && ${TARGET_ARCH} == "amd64"
56 _jevents= lib/libpmc/pmu-events
61 build${libcompat}: .PHONY
63 @echo "--------------------------------------------------------------"
64 @echo ">>> stage 4.3: building lib${libcompat} shim libraries"
65 @echo "--------------------------------------------------------------"
66 .if !defined(NO_CLEAN)
67 rm -rf ${LIBCOMPATTMP}
69 ${_+_}@if [ -e "${LIBCOMPATTMP}" ]; then \
70 echo ">>> Deleting stale files in build${libcompat} tree..."; \
71 cd ${.CURDIR}; ${WMAKE} -DBATCH_DELETE_OLD_FILES \
72 DESTDIR=${LIBCOMPATTMP} \
73 delete-old delete-old-libs >/dev/null; \
75 .endif # !defined(NO_CLEAN)
77 mkdir -p ${LIBCOMPATTMP}/usr/include
78 ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.usr.dist \
79 -p ${LIBCOMPATTMP}/usr >/dev/null
80 ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.include.dist \
81 -p ${LIBCOMPATTMP}/usr/include >/dev/null
82 ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.lib${libcompat}.dist \
83 -p ${LIBCOMPATTMP}/usr >/dev/null
84 .if ${MK_DEBUG_FILES} != "no"
85 ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.debug.dist \
86 -p ${LIBCOMPATTMP}/usr/lib >/dev/null
87 ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.lib${libcompat}.dist \
88 -p ${LIBCOMPATTMP}/usr/lib/debug/usr >/dev/null
91 ln -sf ${.CURDIR}/sys ${WORLDTMP}
92 .for _t in ${_obj} includes
93 .for _dir in ${_LC_INCDIRS}
94 ${_+_}cd ${.CURDIR}/${_dir}; ${LIBCOMPATWMAKE} MK_INCLUDES=yes \
95 DIRPRFX=${_dir}/ ${_t}
98 .for _dir in lib/ncurses/ncurses lib/ncurses/ncursesw ${_libmagic} ${_jevents}
99 .for _t in ${_obj} build-tools
100 ${_+_}cd ${.CURDIR}/${_dir}; \
101 WORLDTMP=${WORLDTMP} \
102 MAKEFLAGS="-m ${.CURDIR}/tools/build/mk ${.MAKEFLAGS}" \
103 ${MAKE} SSP_CFLAGS= DESTDIR= \
104 OBJTOP=${LIBCOMPAT_OBJTOP} \
105 OBJROOT='$${OBJTOP}/' \
107 DIRPRFX=${_dir}/ -DNO_LINT -DNO_CPU_CFLAGS \
108 MK_CTF=no MK_RETPOLINE=no MK_WARNS=no \
112 ${_+_}cd ${.CURDIR}; \
113 ${LIBCOMPATWMAKE} -f Makefile.inc1 -DNO_FSCHG libraries
114 .if ${libcompat} == "32"
115 .for _t in ${_obj} all
116 .if !defined(NO_RTLD)
117 ${_+_}cd ${.CURDIR}/libexec/rtld-elf; PROG=ld-elf32.so.1 ${LIBCOMPATWMAKE} \
118 -DNO_FSCHG DIRPRFX=libexec/rtld-elf/ ${_t}
120 ${_+_}cd ${.CURDIR}/usr.bin/ldd; PROG=ldd32 ${LIBCOMPATWMAKE} \
121 DIRPRFX=usr.bin/ldd ${_t}
125 distribute${libcompat} install${libcompat}: .PHONY
126 .for _dir in ${_LC_LIBDIRS.yes}
127 ${_+_}cd ${.CURDIR}/${_dir}; ${LIBCOMPATIMAKE} ${.TARGET:S/${libcompat}$//}
129 .if ${libcompat} == "32"
130 .if !defined(NO_RTLD)
131 ${_+_}cd ${.CURDIR}/libexec/rtld-elf; \
132 PROG=ld-elf32.so.1 ${LIBCOMPATIMAKE} ${.TARGET:S/32$//}
134 ${_+_}cd ${.CURDIR}/usr.bin/ldd; PROG=ldd32 ${LIBCOMPATIMAKE} \