Makefile.libcompat 3.6 KB

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