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 libgeom \ 57 libifconfig \ 58 libipsec \ 59 libjail \ 60 libkiconv \ 61 libkvm \ 62 liblua \ 63 liblzma \ 64 libmemstat \ 65 libmd \ 66 libmt \ 67 lib80211 \ 68 libnetbsd \ 69 libnetmap \ 70 libnv \ 71 libopenbsd \ 72 libopie \ 73 libpam \ 74 libpathconv \ 75 libpcap \ 76 libpjdlog \ 77 ${_libproc} \ 78 libprocstat \ 79 libregex \ 80 librpcsvc \ 81 librss \ 82 librt \ 83 ${_librtld_db} \ 84 libsbuf \ 85 libsmb \ 86 libsqlite3 \ 87 libstdbuf \ 88 libstdthreads \ 89 libsysdecode \ 90 libtacplus \ 91 libthread_db \ 92 libucl \ 93 libufs \ 94 libugidfw \ 95 libulog \ 96 libutil \ 97 ${_libvgl} \ 98 libwrap \ 99 libxo \ 100 liby \ 101 libz \ 102 libzstd \ 103 ncurses 104 105# Inter-library dependencies. When the makefile for a library contains LDADD 106# libraries, those libraries should be listed as build order dependencies here. 107 108SUBDIR_DEPEND_geom= libufs 109SUBDIR_DEPEND_libarchive= libz libbz2 libexpat liblzma libmd 110SUBDIR_DEPEND_libauditdm= libbsm 111SUBDIR_DEPEND_libbsnmp= ${_libnetgraph} 112SUBDIR_DEPEND_libc++:= libcxxrt 113# libssp_nonshared doesn't need to be linked into libc on every arch, but it is 114# small enough to build that this bit of serialization is likely insignificant. 115SUBDIR_DEPEND_libc= libcompiler_rt libssp_nonshared 116SUBDIR_DEPEND_libcam= libsbuf 117SUBDIR_DEPEND_libcasper= libnv 118SUBDIR_DEPEND_libdevstat= libkvm 119SUBDIR_DEPEND_libdpv= libfigpar ncurses libutil 120SUBDIR_DEPEND_libedit= ncurses 121SUBDIR_DEPEND_libgeom= libexpat libsbuf 122SUBDIR_DEPEND_librpcsec_gss= libgssapi 123SUBDIR_DEPEND_libmagic= libz 124SUBDIR_DEPEND_libmemstat= libkvm 125SUBDIR_DEPEND_libopie= libmd 126SUBDIR_DEPEND_libpam= libcrypt libopie ${_libradius} librpcsvc libtacplus libutil ${_libypclnt} ${_libcom_err} 127SUBDIR_DEPEND_libpjdlog= libutil 128SUBDIR_DEPEND_libprocstat= libkvm libutil 129SUBDIR_DEPEND_libradius= libmd 130SUBDIR_DEPEND_libsmb= libkiconv 131SUBDIR_DEPEND_libtacplus= libmd 132SUBDIR_DEPEND_libulog= libmd 133SUBDIR_DEPEND_libunbound= ${_libldns} 134SUBDIR_DEPEND_liblzma= ${_libthr} 135.if ${MK_OFED} != "no" 136SUBDIR_DEPEND_libpcap= ofed 137.endif 138 139# NB: keep these sorted by MK_* knobs 140 141SUBDIR.${MK_ATM}+= libngatm 142SUBDIR.${MK_BEARSSL}+= libbearssl libsecureboot 143SUBDIR.${MK_BLACKLIST}+=libblacklist 144SUBDIR.${MK_BLUETOOTH}+=libbluetooth libsdp 145SUBDIR.${MK_BSNMP}+= libbsnmp 146 147.if !defined(COMPAT_32BIT) && !defined(COMPAT_SOFTFP) 148SUBDIR.${MK_CLANG}+= clang 149.endif 150 151SUBDIR.${MK_CUSE}+= libcuse 152SUBDIR.${MK_CXX}+= libdevdctl 153SUBDIR.${MK_TOOLCHAIN}+=libpe 154SUBDIR.${MK_DIALOG}+= libdpv 155SUBDIR.${MK_FILE}+= libmagic 156SUBDIR.${MK_GPIO}+= libgpio 157SUBDIR.${MK_GSSAPI}+= libgssapi librpcsec_gss 158SUBDIR.${MK_ICONV}+= libiconv_modules 159SUBDIR.${MK_KERBEROS_SUPPORT}+= libcom_err 160SUBDIR.${MK_LDNS}+= libldns 161 162# The libraries under libclang_rt can only be built by clang, and only make 163# sense to build when clang is enabled at all. Furthermore, they can only be 164# built for certain architectures. 165.if ${MK_CLANG} != "no" && ${COMPILER_TYPE} == "clang" && \ 166 (${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \ 167 ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "i386" || \ 168 ${MACHINE_CPUARCH} == "powerpc") 169_libclang_rt= libclang_rt 170.endif 171 172.if ${MK_LIBCPLUSPLUS} != "no" 173_libcxxrt= libcxxrt 174_libcplusplus= libc++ 175_libcplusplus+= libc++experimental 176.endif 177 178SUBDIR.${MK_EFI}+= libefivar 179SUBDIR.${MK_GOOGLETEST}+= googletest 180SUBDIR.${MK_LIBTHR}+= libthr 181SUBDIR.${MK_LLVM_LIBUNWIND}+= libgcc_eh 182SUBDIR.${MK_LLVM_LIBUNWIND}+= libgcc_s 183SUBDIR.${MK_NAND}+= libnandfs 184SUBDIR.${MK_NETGRAPH}+= libnetgraph 185SUBDIR.${MK_NIS}+= libypclnt 186 187.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" 188_libvgl= libvgl 189.endif 190 191.if ${MACHINE_CPUARCH} == "aarch64" 192SUBDIR.${MK_PMC}+= libopencsd 193.endif 194 195.if ${MACHINE_CPUARCH} == "amd64" 196SUBDIR.${MK_PMC}+= libipt 197SUBDIR.${MK_BHYVE}+= libvmmapi 198.endif 199 200.if ${MACHINE_CPUARCH} != "sparc64" 201_libproc= libproc 202_librtld_db= librtld_db 203.endif 204 205.if defined(LINKER_FEATURES) && ${LINKER_FEATURES:Mfilter} 206_libdl= libdl 207.endif 208 209.if ${MACHINE_ARCH} != "powerpc" 210SUBDIR.${MK_OPENMP}+= libomp 211.endif 212SUBDIR.${MK_OPENSSL}+= libmp 213SUBDIR.${MK_PF}+= libpfctl 214SUBDIR.${MK_PMC}+= libpmc libpmcstat 215SUBDIR.${MK_RADIUS_SUPPORT}+= libradius 216SUBDIR.${MK_SENDMAIL}+= libmilter libsm libsmdb libsmutil 217SUBDIR.${MK_TELNET}+= libtelnet 218SUBDIR.${MK_TESTS_SUPPORT}+= atf 219SUBDIR.${MK_TESTS}+= tests 220SUBDIR.${MK_UNBOUND}+= libunbound 221SUBDIR.${MK_USB}+= libusbhid libusb 222SUBDIR.${MK_OFED}+= ofed 223SUBDIR.${MK_VERIEXEC}+= libveriexec 224SUBDIR.${MK_ZFS}+= libbe 225 226.if !make(install) 227SUBDIR_PARALLEL= 228.endif 229 230.include <bsd.subdir.mk> 231