]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - lib/Makefile
Merge branch 'releng/13.1' into releng-CDN/13.1
[FreeBSD/FreeBSD.git] / lib / Makefile
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
11 SUBDIR_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
29 SUBDIR= ${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
114 SUBDIR_DEPEND_geom=     libufs
115 SUBDIR_DEPEND_googletest= libregex
116 SUBDIR_DEPEND_libarchive= libz libbz2 libexpat liblzma libmd libzstd
117 SUBDIR_DEPEND_libauditdm= libbsm
118 SUBDIR_DEPEND_libbsnmp= ${_libnetgraph}
119 SUBDIR_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.
122 SUBDIR_DEPEND_libc= libcompiler_rt libssp_nonshared
123 SUBDIR_DEPEND_libcam= libsbuf
124 SUBDIR_DEPEND_libcasper= libnv
125 SUBDIR_DEPEND_libdevstat= libkvm
126 SUBDIR_DEPEND_libdpv= libfigpar ncurses libutil
127 SUBDIR_DEPEND_libedit= ncurses
128 SUBDIR_DEPEND_libgeom= libexpat libsbuf
129 SUBDIR_DEPEND_librpcsec_gss= libgssapi
130 SUBDIR_DEPEND_libmagic= libz
131 SUBDIR_DEPEND_libmemstat= libkvm
132 SUBDIR_DEPEND_libopie= libmd
133 SUBDIR_DEPEND_libpam= libcrypt libopie ${_libradius} librpcsvc libtacplus libutil ${_libypclnt} ${_libcom_err} 
134 SUBDIR_DEPEND_libpjdlog= libutil
135 SUBDIR_DEPEND_libprocstat= libkvm libutil
136 SUBDIR_DEPEND_libradius= libmd
137 SUBDIR_DEPEND_libsmb= libkiconv
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
146 .if !defined(COMPAT_32BIT)
147 SUBDIR+=        flua
148 SUBDIR_DEPEND_flua=     libjail
149 .endif
150
151 # NB: keep these sorted by MK_* knobs
152
153 SUBDIR.${MK_ATM}+=      libngatm
154 SUBDIR.${MK_BEARSSL}+=  libbearssl libsecureboot
155 SUBDIR.${MK_BLACKLIST}+=libblacklist
156 SUBDIR.${MK_BLUETOOTH}+=libbluetooth libsdp
157 SUBDIR.${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"
162 SUBDIR+=        clang
163 .endif
164 .endif
165
166 SUBDIR.${MK_CUSE}+=     libcuse
167 SUBDIR.${MK_CXX}+=      libdevdctl
168 SUBDIR.${MK_TOOLCHAIN}+=libpe
169 SUBDIR.${MK_DIALOG}+=   libdpv
170 SUBDIR.${MK_FILE}+=     libmagic
171 SUBDIR.${MK_GPIO}+=     libgpio
172 SUBDIR.${MK_GSSAPI}+=   libgssapi librpcsec_gss
173 SUBDIR.${MK_ICONV}+=    libiconv_modules
174 SUBDIR.${MK_KERBEROS_SUPPORT}+= libcom_err
175 SUBDIR.${MK_LDNS}+=     libldns
176 SUBDIR.${MK_STATS}+=    libstats
177
178 # The libraries under libclang_rt can only be built by clang and when we enable
179 # C++ support.  Furthermore, they can only be built for certain architectures.
180 .if ${COMPILER_TYPE} == "clang" && ${MK_CXX} != "no" && \
181     (${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
182     ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "i386" || \
183     ${MACHINE_CPUARCH} == "powerpc" || ${MACHINE_CPUARCH} == "riscv")
184 _libclang_rt=   libclang_rt
185 .endif
186
187 .if ${MK_LIBCPLUSPLUS} != "no"
188 _libcxxrt=      libcxxrt
189 _libcplusplus=  libc++
190 _libcplusplus+= libc++experimental
191 .endif
192
193 SUBDIR.${MK_EFI}+=      libefivar
194 SUBDIR.${MK_GOOGLETEST}+=       googletest
195 SUBDIR.${MK_NETGRAPH}+= libnetgraph
196 SUBDIR.${MK_NIS}+=      libypclnt
197
198 .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
199 _libvgl=        libvgl
200 .endif
201
202 .if ${MACHINE_CPUARCH} == "aarch64"
203 SUBDIR.${MK_PMC}+=      libopencsd
204 .endif
205
206 .if ${MACHINE_CPUARCH} == "amd64"
207 SUBDIR.${MK_PMC}+=      libipt
208 SUBDIR.${MK_BHYVE}+=    libvmmapi
209 .endif
210
211 .if ${MACHINE_ARCH} != "powerpc"
212 SUBDIR.${MK_OPENMP}+=   libomp
213 .endif
214 .if !defined(COMPAT_32BIT) && ${MK_USB} != "no"
215 SUBDIR.${MK_OPENSSH}+=  libcbor libfido2
216 .endif
217 SUBDIR.${MK_OPENSSL}+=  libmp
218 SUBDIR.${MK_PF}+=       libpfctl
219 SUBDIR.${MK_PMC}+=      libpmc libpmcstat
220 SUBDIR.${MK_RADIUS_SUPPORT}+=   libradius
221 SUBDIR.${MK_SENDMAIL}+= libmilter libsm libsmdb libsmutil
222 SUBDIR.${MK_TELNET}+=   libtelnet
223 SUBDIR.${MK_TESTS_SUPPORT}+=    atf
224 SUBDIR.${MK_TESTS_SUPPORT}.${MK_CXX}+=  liblutok
225 SUBDIR.${MK_TESTS}+=    tests
226 SUBDIR.${MK_UNBOUND}+=  libunbound
227 SUBDIR.${MK_USB}+=      libusbhid libusb
228 SUBDIR.${MK_OFED}+=     ofed
229 SUBDIR.${MK_VERIEXEC}+= libveriexec
230 SUBDIR.${MK_ZFS}+=      libbe
231
232 .if !make(install)
233 SUBDIR_PARALLEL=
234 .endif
235
236 .include <bsd.subdir.mk>