]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - Makefile.libcompat
Heimdal: CVE-2018-16860 Heimdal KDC: Reject PA-S4U2Self with unkeyed checksum
[FreeBSD/FreeBSD.git] / Makefile.libcompat
1
2 .if !targets(__<${_this:T}>__)
3 __<${_this:T}>__:
4
5 # Makefile for the compatibility libraries.
6 # - 32-bit compat libraries on MIPS, PowerPC, and AMD64.
7
8 .include <bsd.compat.mk>
9
10 # Yes, the flags are redundant.
11 LIBCOMPATWMAKEENV+= \
12                 INSTALL="${INSTALL_CMD} -U" \
13                 PATH=${TMPPATH} \
14                 SYSROOT=${LIBCOMPATTMP} \
15                 LIBDIR=/usr/lib${libcompat} \
16                 SHLIBDIR=/usr/lib${libcompat} \
17                 DTRACE="${LIB$COMPATDTRACE:U${DTRACE}}"
18 .if ${MK_META_MODE} != "no"
19 # Don't rebuild build-tools targets during normal build.
20 LIBCOMPATWMAKEENV+=     BUILD_TOOLS_META=.NOMETA
21 .endif
22 LIBCOMPATWMAKEFLAGS+= CC="${XCC} ${LIBCOMPATCFLAGS}" \
23                 CXX="${XCXX} ${LIBCOMPATCXXFLAGS} ${LIBCOMPATCFLAGS}" \
24                 CPP="${XCPP} ${LIBCOMPATCFLAGS}" \
25                 DESTDIR=${LIBCOMPATTMP} \
26                 -DNO_CPU_CFLAGS \
27                 MK_CTF=no \
28                 -DNO_LINT \
29                 MK_TESTS=no
30 LIBCOMPATWMAKE+=        ${LIBCOMPATWMAKEENV} ${MAKE} ${LIBCOMPATWMAKEFLAGS} \
31                         OBJTOP=${LIBCOMPAT_OBJTOP} \
32                         OBJROOT='$${OBJTOP}/' \
33                         MAKEOBJDIRPREFIX= \
34                         MK_MAN=no MK_HTML=no
35 LIBCOMPATIMAKE+=        ${LIBCOMPATWMAKE:NINSTALL=*:NDESTDIR=*} \
36                         ${IMAKE_INSTALL} \
37                         -DLIBRARIES_ONLY
38
39 _LC_LIBDIRS.yes=                lib
40 _LC_LIBDIRS.yes+=               gnu/lib
41 _LC_LIBDIRS.${MK_CDDL:tl}+=     cddl/lib
42 _LC_LIBDIRS.${MK_CRYPT:tl}+=    secure/lib
43 _LC_LIBDIRS.${MK_KERBEROS:tl}+= kerberos5/lib
44
45 _LC_INCDIRS=    \
46                 include \
47                 lib/ncurses/ncurses \
48                 ${_LC_LIBDIRS.yes}
49
50 .if ${MK_FILE} != "no"
51 _libmagic=      lib/libmagic
52 .endif
53 .if ${MK_PMC} != "no"
54 _jevents=       lib/libpmc/pmu-events
55 .endif
56
57
58 # Shared logic
59 build${libcompat}: .PHONY
60         @echo
61         @echo "--------------------------------------------------------------"
62         @echo ">>> stage 4.3: building lib${libcompat} shim libraries"
63         @echo "--------------------------------------------------------------"
64 .if ${MK_CLEAN} == "yes"
65         rm -rf ${LIBCOMPATTMP}
66 .else
67         ${_+_}@if [ -e "${LIBCOMPATTMP}" ]; then \
68                 echo ">>> Deleting stale files in build${libcompat} tree..."; \
69                 cd ${.CURDIR}; ${WMAKE} -DBATCH_DELETE_OLD_FILES \
70                     DESTDIR=${LIBCOMPATTMP} \
71                     delete-old delete-old-libs >/dev/null; \
72         fi
73 .endif  # MK_CLEAN == "yes"
74
75         mkdir -p ${LIBCOMPATTMP}/usr/include
76         ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.usr.dist \
77             -p ${LIBCOMPATTMP}/usr >/dev/null
78         ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.include.dist \
79             -p ${LIBCOMPATTMP}/usr/include >/dev/null
80         ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.lib${libcompat}.dist \
81             -p ${LIBCOMPATTMP}/usr >/dev/null
82 .if ${MK_DEBUG_FILES} != "no"
83         ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.debug.dist \
84             -p ${LIBCOMPATTMP}/usr/lib >/dev/null
85         ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.lib${libcompat}.dist \
86             -p ${LIBCOMPATTMP}/usr/lib/debug/usr >/dev/null
87 .endif
88         mkdir -p ${WORLDTMP}
89         ln -sf ${.CURDIR}/sys ${WORLDTMP}
90 .for _t in ${_obj} includes
91 .for _dir in ${_LC_INCDIRS}
92         ${_+_}cd ${.CURDIR}/${_dir}; ${LIBCOMPATWMAKE} MK_INCLUDES=yes \
93             DIRPRFX=${_dir}/ ${_t}
94 .endfor
95 .endfor
96 .for _dir in lib/ncurses/ncurses ${_libmagic} ${_jevents}
97 .for _t in ${_obj} build-tools
98         ${_+_}cd ${.CURDIR}/${_dir}; \
99             WORLDTMP=${WORLDTMP} \
100             MAKEFLAGS="-m ${.CURDIR}/tools/build/mk ${.MAKEFLAGS}" \
101             ${MAKE} DESTDIR= \
102             OBJTOP=${LIBCOMPAT_OBJTOP} \
103             OBJROOT='$${OBJTOP}/' \
104             MAKEOBJDIRPREFIX= \
105             DIRPRFX=${_dir}/ \
106             -DNO_LINT \
107             -DNO_CPU_CFLAGS \
108             MK_CTF=no \
109             MK_RETPOLINE=no \
110             MK_SSP=no \
111             MK_WERROR=no \
112             ${_t}
113 .endfor
114 .endfor
115         ${_+_}cd ${.CURDIR}; \
116             ${LIBCOMPATWMAKE} -f Makefile.inc1 -DNO_FSCHG libraries
117
118 distribute${libcompat} install${libcompat}: .PHONY
119 .for _dir in ${_LC_LIBDIRS.yes}
120         ${_+_}cd ${.CURDIR}/${_dir}; ${LIBCOMPATIMAKE} ${.TARGET:S/${libcompat}$//}
121 .endfor
122
123 .endif # !targets(__<${_this:T}>__)