Makefile 5.4 KB

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