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