summaryrefslogtreecommitdiffstats
path: root/lib/Makefile
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2014-08-19 23:33:51 +0000
committerian <ian@FreeBSD.org>2014-08-19 23:33:51 +0000
commitc4195049f50843730d019b09549639061baee9f3 (patch)
tree375a82f239f7aa39dc334cde99023f70cfa8558a /lib/Makefile
parent6dd00f0d038b910cb8c3db81357a3fc44742e55e (diff)
downloadFreeBSD-src-c4195049f50843730d019b09549639061baee9f3.zip
FreeBSD-src-c4195049f50843730d019b09549639061baee9f3.tar.gz
MFC r266473,267331,267511:
Use an intermediate target to associate with _SUBDIR which is marked .MAKE this allows make -n to do tree walks as expected without doing anything else (as intended). Use prefix _sub. to help avoid conflict with any real target. Put the test suite in its own tests.txz distribution file. Force all the contents of /usr/tests to go into a separate distribution file so that users of binary releases can easily choose to not install Create a mechanism for providing fine-grained build order dependencies during SUBDIR_PARALLEL builds. This augments the coarse .WAIT mechanism, which is still useful if you've got a situation such as "almost everything depends on A and B".
Diffstat (limited to 'lib/Makefile')
-rw-r--r--lib/Makefile107
1 files changed, 60 insertions, 47 deletions
diff --git a/lib/Makefile b/lib/Makefile
index ab6c579..0f8f9da 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -3,73 +3,40 @@
.include <bsd.own.mk>
-# To satisfy shared library or ELF linkage when only the libraries being
-# built are visible:
-#
-# csu must be built before all shared libaries for ELF.
-# libc must be built before all other shared libraries.
-# libbsm must be built before libauditd.
-# libcom_err must be built before libpam.
-# libcrypt must be built before libpam.
-# libkvm must be built before libdevstat.
-# libldns must be built before libunbound.
-# msun must be built before libg++ and libstdc++.
-# libmd must be built before libatm, libopie, libradius, and libtacplus.
-# ncurses must be built before libdialog, libedit and libreadline.
-# libnetgraph must be built before libbsnmp/modules/snmp_netgraph.
-# libopie must be built before libpam.
-# libradius must be built before libpam.
-# librpcsvc must be built before libpam.
-# libsbuf must be built before libcam.
-# libtacplus must be built before libpam.
-# libutil must be built before libpam.
-# libypclnt must be built before libpam.
-# libgssapi must be built before librpcsec_gss
-#
-# Otherwise, the SUBDIR list should be in alphabetical order.
-#
-# Except it appears bind needs to be compiled last
+# The SUBDIR_ORDERED list is a small set of libraries which are used by many
+# of the other libraries. These are built first with a .WAIT between them
+# and the main list to avoid needing a SUBDIR_DEPEND line on every library
+# naming just these few items.
SUBDIR_ORDERED= ${_csu} \
+ .WAIT \
libc \
libc_nonshared \
- libbsm \
- libauditd \
libcompiler_rt \
- libcrypt \
- libelf \
- ${_libiconv_modules} \
- libkvm \
- ${_libldns} \
- msun \
- libmd \
- ncurses \
- ${_libnetgraph} \
- libradius \
- librpcsvc \
- libsbuf \
- libtacplus \
- libutil \
- ${_libypclnt} \
+ ${_libcplusplus} \
${_libcxxrt} \
- ${_libcplusplus}
+ libelf \
+ msun
-.if ${MK_KERBEROS_SUPPORT} != "no"
-SUBDIR_ORDERED+= libcom_err
-.endif
+# The main list; please keep these sorted alphabetically.
SUBDIR= ${SUBDIR_ORDERED} \
+ .WAIT \
libalias \
libarchive \
${_libatm} \
+ libauditd \
libbegemot \
libblocksruntime \
${_libbluetooth} \
${_libbsnmp} \
+ libbsm \
libbz2 \
libcalendar \
libcam \
+ ${_libcom_err} \
libcompat \
+ libcrypt \
libdevinfo \
libdevstat \
libdwarf \
@@ -82,18 +49,23 @@ SUBDIR= ${SUBDIR_ORDERED} \
${_libgpib} \
${_libgssapi} \
${_librpcsec_gss} \
+ ${_libiconv_modules} \
libipsec \
${_libipx} \
libjail \
libkiconv \
+ libkvm \
+ ${_libldns} \
liblzma \
libmagic \
libmandoc \
libmemstat \
+ libmd \
${_libmilter} \
${_libmp} \
${_libnandfs} \
libnetbsd \
+ ${_libnetgraph} \
${_libngatm} \
libopie \
libpam \
@@ -101,8 +73,11 @@ SUBDIR= ${SUBDIR_ORDERED} \
${_libpmc} \
${_libproc} \
libprocstat \
+ libradius \
+ librpcsvc \
librt \
${_librtld_db} \
+ libsbuf \
${_libsdp} \
${_libsm} \
${_libsmb} \
@@ -111,6 +86,7 @@ SUBDIR= ${SUBDIR_ORDERED} \
libstand \
libstdbuf \
libstdthreads \
+ libtacplus \
${_libtelnet} \
${_libthr} \
libthread_db \
@@ -121,16 +97,49 @@ SUBDIR= ${SUBDIR_ORDERED} \
${_libunbound} \
${_libusbhid} \
${_libusb} \
+ libutil \
${_libvgl} \
${_libvmmapi} \
libwrap \
liby \
+ ${_libypclnt} \
libyaml \
libz \
+ ncurses \
${_atf} \
${_clang} \
${_tests}
+# Inter-library dependencies. When the makefile for a library contains LDADD
+# libraries, those libraries should be listed as build order dependencies here.
+
+SUBDIR_DEPEND_libarchive= libz libbz2 libexpat liblzma libmd
+SUBDIR_DEPEND_libatm= libmd
+SUBDIR_DEPEND_libauditdm= libbsm
+SUBDIR_DEPEND_libbsnmp= ${_libnetgraph}
+SUBDIR_DEPEND_libc++= libcxxrt
+SUBDIR_DEPEND_libc= libcompiler_rt
+SUBDIR_DEPEND_libcam= libsbuf
+SUBDIR_DEPEND_libdevstat= libkvm
+SUBDIR_DEPEND_libdiaglog= ncurses
+SUBDIR_DEPEND_libedit= ncurses
+SUBDIR_DEPEND_libg++= msun
+SUBDIR_DEPEND_libgeom= libexpat libsbuf
+SUBDIR_DEPEND_liblibrpcsec_gss= libgssapi
+SUBDIR_DEPEND_libmagic= libz
+SUBDIR_DEPEND_libmemstat= libkvm
+SUBDIR_DEPEND_libopie= libmd
+SUBDIR_DEPEND_libpam= libcrypt libopie libradius librpcsvc libtacplus libutil ${_libypclnt} ${_libcom_err}
+SUBDIR_DEPEND_libpjdlog= libutil
+SUBDIR_DEPEND_libprocstat= libkvm libutil
+SUBDIR_DEPEND_libradius= libmd
+SUBDIR_DEPEND_libreadline= ncurses
+SUBDIR_DEPEND_libsmb= libkiconv
+SUBDIR_DEPEND_libstdc++= msun
+SUBDIR_DEPEND_libtacplus= libmd
+SUBDIR_DEPEND_libulog= libmd
+SUBDIR_DEPEND_libunbound= ${_libldns}
+
.if exists(${.CURDIR}/csu/${MACHINE_ARCH}-elf)
_csu=csu/${MACHINE_ARCH}-elf
.elif exists(${.CURDIR}/csu/${MACHINE_ARCH})
@@ -173,6 +182,10 @@ _librpcsec_gss= librpcsec_gss
_libiconv_modules= libiconv_modules
.endif
+.if ${MK_KERBEROS_SUPPORT} != "no"
+_libcom_err= libcom_err
+.endif
+
.if ${MK_IPX} != "no"
_libipx= libipx
.endif
OpenPOWER on IntegriCloud