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