1# @(#)Makefile 8.1 (Berkeley) 6/4/93 2# $FreeBSD$ 3 4.include <src.opts.mk> 5 6# The SUBDIR_BOOTSTRAP list is a small set of libraries which are used by many 7# of the other libraries. These are built first with a .WAIT between them 8# and the main list to avoid needing a SUBDIR_DEPEND line on every library 9# naming just these few items. 10 11SUBDIR_BOOTSTRAP= \ 12 csu \ 13 .WAIT \ 14 libc \ 15 libc_nonshared \ 16 libcompiler_rt \ 17 ${_libclang_rt} \ 18 ${_libcplusplus} \ 19 ${_libcxxrt} \ 20 libelf \ 21 libssp \ 22 libssp_nonshared \ 23 msun 24 25# The main list; please keep these sorted alphabetically. 26 27SUBDIR= ${SUBDIR_BOOTSTRAP} \ 28 .WAIT \ 29 geom \ 30 libalias \ 31 libarchive \ 32 libauditd \ 33 libbegemot \ 34 libblocksruntime \ 35 libbsdstat \ 36 libbsm \ 37 libbz2 \ 38 libcalendar \ 39 libcam \ 40 libcapsicum \ 41 libcasper \ 42 libcompat \ 43 libcrypt \ 44 libdevctl \ 45 libdevinfo \ 46 libdevstat \ 47 libdl \ 48 libdwarf \ 49 libedit \ 50 libelftc \ 51 libevent \ 52 libexecinfo \ 53 libexpat \ 54 libfetch \ 55 libfigpar \ 56 libgcc_eh \ 57 libgcc_s \ 58 libgeom \ 59 libifconfig \ 60 libipsec \ 61 libjail \ 62 libkiconv \ 63 libkvm \ 64 liblua \ 65 liblzma \ 66 libmemstat \ 67 libmd \ 68 libmt \ 69 lib80211 \ 70 libnetbsd \ 71 libnv \ 72 libopenbsd \ 73 libopie \ 74 libpam \ 75 libpathconv \ 76 libpcap \ 77 libpjdlog \ 78 libproc \ 79 libprocstat \ 80 libregex \ 81 librpcsvc \ 82 librss \ 83 librt \ 84 librtld_db \ 85 libsbuf \ 86 libsmb \ 87 libsqlite3 \ 88 libstdbuf \ 89 libstdthreads \ 90 libsysdecode \ 91 libtacplus \ 92 libthread_db \ 93 libucl \ 94 libufs \ 95 libugidfw \ 96 libulog \ 97 libutil \ 98 ${_libvgl} \ 99 libwrap \ 100 libxo \ 101 liby \ 102 libz \ 103 libzstd \ 104 ncurses 105 106# Inter-library dependencies. When the makefile for a library contains LDADD 107# libraries, those libraries should be listed as build order dependencies here. 108 109SUBDIR_DEPEND_geom= libufs 110SUBDIR_DEPEND_libarchive= libz libbz2 libexpat liblzma libmd libzstd 111SUBDIR_DEPEND_libauditdm= libbsm 112SUBDIR_DEPEND_libbsnmp= ${_libnetgraph} 113SUBDIR_DEPEND_libc++:= libcxxrt 114# libssp_nonshared doesn't need to be linked into libc on every arch, but it is 115# small enough to build that this bit of serialization is likely insignificant. 116SUBDIR_DEPEND_libc= libcompiler_rt libssp_nonshared 117SUBDIR_DEPEND_libcam= libsbuf 118SUBDIR_DEPEND_libcasper= libnv 119SUBDIR_DEPEND_libdevstat= libkvm 120SUBDIR_DEPEND_libdpv= libfigpar ncurses libutil 121SUBDIR_DEPEND_libedit= ncurses 122SUBDIR_DEPEND_libgeom= libexpat libsbuf 123SUBDIR_DEPEND_librpcsec_gss= libgssapi 124SUBDIR_DEPEND_libmagic= libz 125SUBDIR_DEPEND_libmemstat= libkvm 126SUBDIR_DEPEND_libopie= libmd 127SUBDIR_DEPEND_libpam= libcrypt libopie ${_libradius} librpcsvc libtacplus libutil ${_libypclnt} ${_libcom_err} 128SUBDIR_DEPEND_libpjdlog= libutil 129SUBDIR_DEPEND_libprocstat= libkvm libutil 130SUBDIR_DEPEND_libradius= libmd 131SUBDIR_DEPEND_libsmb= libkiconv 132SUBDIR_DEPEND_libtacplus= libmd 133SUBDIR_DEPEND_libulog= libmd 134SUBDIR_DEPEND_libunbound= ${_libldns} 135SUBDIR_DEPEND_liblzma= ${_libthr} 136.if ${MK_OFED} != "no" 137SUBDIR_DEPEND_libpcap= ofed 138.endif 139 140# NB: keep these sorted by MK_* knobs 141 142SUBDIR.${MK_ATM}+= libngatm 143SUBDIR.${MK_BEARSSL}+= libbearssl libsecureboot 144SUBDIR.${MK_BLACKLIST}+=libblacklist 145SUBDIR.${MK_BLUETOOTH}+=libbluetooth libsdp 146SUBDIR.${MK_BSNMP}+= libbsnmp 147 148.if !defined(COMPAT_32BIT) && !defined(COMPAT_SOFTFP) 149SUBDIR.${MK_CLANG}+= clang 150.endif 151 152SUBDIR.${MK_CUSE}+= libcuse 153SUBDIR.${MK_CXX}+= libdevdctl 154SUBDIR.${MK_TOOLCHAIN}+=libpe 155SUBDIR.${MK_DIALOG}+= libdpv 156SUBDIR.${MK_FILE}+= libmagic 157SUBDIR.${MK_GPIO}+= libgpio 158SUBDIR.${MK_GSSAPI}+= libgssapi librpcsec_gss 159SUBDIR.${MK_ICONV}+= libiconv_modules 160SUBDIR.${MK_KERBEROS_SUPPORT}+= libcom_err 161SUBDIR.${MK_LDNS}+= libldns 162SUBDIR.${MK_STATS}+= libstats 163 164# The libraries under libclang_rt can only be built by clang, and only make 165# sense to build when clang is enabled at all. Furthermore, they can only be 166# built for certain architectures. 167.if ${MK_CLANG} != "no" && ${COMPILER_TYPE} == "clang" && \ 168 (${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \ 169 ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "i386" || \ 170 ${MACHINE_CPUARCH} == "powerpc") 171_libclang_rt= libclang_rt 172.endif 173 174.if ${MK_LIBCPLUSPLUS} != "no" 175_libcxxrt= libcxxrt 176_libcplusplus= libc++ 177_libcplusplus+= libc++experimental 178.endif 179 180SUBDIR.${MK_EFI}+= libefivar 181SUBDIR.${MK_GOOGLETEST}+= googletest 182SUBDIR.${MK_LIBTHR}+= libthr 183SUBDIR.${MK_NETGRAPH}+= libnetgraph 184SUBDIR.${MK_NIS}+= libypclnt 185 186.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" 187_libvgl= libvgl 188.endif 189 190.if ${MACHINE_CPUARCH} == "aarch64" 191SUBDIR.${MK_PMC}+= libopencsd 192.endif 193 194.if ${MACHINE_CPUARCH} == "amd64" 195SUBDIR.${MK_PMC}+= libipt 196SUBDIR.${MK_BHYVE}+= libvmmapi 197.endif 198 199.if ${MACHINE_ARCH} != "powerpc" 200SUBDIR.${MK_OPENMP}+= libomp 201.endif 202SUBDIR.${MK_OPENSSL}+= libmp 203SUBDIR.${MK_PMC}+= libpmc libpmcstat 204SUBDIR.${MK_RADIUS_SUPPORT}+= libradius 205SUBDIR.${MK_SENDMAIL}+= libmilter libsm libsmdb libsmutil 206SUBDIR.${MK_TELNET}+= libtelnet 207SUBDIR.${MK_TESTS_SUPPORT}+= atf 208SUBDIR.${MK_TESTS_SUPPORT}.${MK_CXX}+= kyua 209SUBDIR.${MK_TESTS_SUPPORT}.${MK_CXX}+= liblutok 210SUBDIR.${MK_TESTS}+= tests 211SUBDIR.${MK_UNBOUND}+= libunbound 212SUBDIR.${MK_USB}+= libusbhid libusb 213SUBDIR.${MK_OFED}+= ofed 214SUBDIR.${MK_VERIEXEC}+= libveriexec 215SUBDIR.${MK_ZFS}+= libbe 216 217.if !make(install) 218SUBDIR_PARALLEL= 219.endif 220 221.include <bsd.subdir.mk> 222