xref: /freebsd/lib/Makefile (revision d01498defbe804f66435b44f22da9278acddf082)
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	msun
22
23# The main list; please keep these sorted alphabetically.
24
25SUBDIR=	${SUBDIR_BOOTSTRAP} \
26	.WAIT \
27	libalias \
28	libarchive \
29	${_libatm} \
30	libauditd \
31	libbegemot \
32	${_libblacklist} \
33	libblocksruntime \
34	${_libbluetooth} \
35	${_libbsnmp} \
36	libbsdstat \
37	libbsm \
38	libbz2 \
39	libcalendar \
40	libcam \
41	libcapsicum \
42	${_libcasper} \
43	${_libcom_err} \
44	libcompat \
45	libcrypt \
46	libdevctl \
47	${_libdevdctl} \
48	libdevinfo \
49	libdevstat \
50	libdwarf \
51	libedit \
52	${_libefivar} \
53	${_libelftc} \
54	libevent \
55	libexecinfo \
56	libexpat \
57	libfetch \
58	libfigpar \
59	libgeom \
60	${_libgpio} \
61	${_libgssapi} \
62	${_librpcsec_gss} \
63	${_libiconv_modules} \
64	libifconfig \
65	libipsec \
66	libjail \
67	libkiconv \
68	libkvm \
69	${_libldns} \
70	liblzma \
71	${_libmagic} \
72	libmemstat \
73	libmd \
74	${_libmilter} \
75	${_libmp} \
76	libmt \
77	${_libnandfs} \
78	lib80211 \
79	libnetbsd \
80	${_libnetgraph} \
81	${_libngatm} \
82	libnv \
83	libopenbsd \
84	libopie \
85	libpam \
86	libpcap \
87	${_libpe} \
88	libpjdlog \
89	${_libpmc} \
90	${_libproc} \
91	libprocstat \
92	${_libradius} \
93	librpcsvc \
94	librss \
95	librt \
96	${_librtld_db} \
97	libsbuf \
98	${_libsdp} \
99	${_libsm} \
100	libsmb \
101	${_libsmdb} \
102	${_libsmutil} \
103	libsqlite3 \
104	libstand \
105	libstdbuf \
106	libstdthreads \
107	libsysdecode \
108	libtacplus \
109	${_libtelnet} \
110	${_libthr} \
111	libthread_db \
112	libucl \
113	libufs \
114	libugidfw \
115	libulog \
116	${_libunbound} \
117	${_libusbhid} \
118	${_libusb} \
119	libutil \
120	${_libvgl} \
121	${_libvmmapi} \
122	libwrap \
123	libxo \
124	liby \
125	${_libypclnt} \
126	libz \
127	ncurses \
128	${_atf} \
129	${_clang} \
130	${_cuse} \
131	${_tests}
132
133# Inter-library dependencies.  When the makefile for a library contains LDADD
134# libraries, those libraries should be listed as build order dependencies here.
135
136SUBDIR_DEPEND_libarchive= libz libbz2 libexpat liblzma libmd
137SUBDIR_DEPEND_libatm= libmd
138SUBDIR_DEPEND_libauditdm= libbsm
139SUBDIR_DEPEND_libbsnmp= ${_libnetgraph}
140SUBDIR_DEPEND_libc++:= libcxxrt
141SUBDIR_DEPEND_libc= libcompiler_rt
142SUBDIR_DEPEND_libcam= libsbuf
143SUBDIR_DEPEND_libcasper= libnv
144SUBDIR_DEPEND_libdevstat= libkvm
145SUBDIR_DEPEND_libdpv= libfigpar ncurses libutil
146SUBDIR_DEPEND_libedit= ncurses
147SUBDIR_DEPEND_libgeom= libexpat libsbuf
148SUBDIR_DEPEND_liblibrpcsec_gss= libgssapi
149SUBDIR_DEPEND_libmagic= libz
150SUBDIR_DEPEND_libmemstat= libkvm
151SUBDIR_DEPEND_libopie= libmd
152SUBDIR_DEPEND_libpam= libcrypt libopie ${_libradius} librpcsvc libtacplus libutil ${_libypclnt} ${_libcom_err}
153SUBDIR_DEPEND_libpjdlog= libutil
154SUBDIR_DEPEND_libprocstat= libkvm libutil
155SUBDIR_DEPEND_libradius= libmd
156SUBDIR_DEPEND_libsmb= libkiconv
157SUBDIR_DEPEND_libtacplus= libmd
158SUBDIR_DEPEND_libulog= libmd
159SUBDIR_DEPEND_libunbound= ${_libldns}
160SUBDIR_DEPEND_liblzma= ${_libthr}
161
162# NB: keep these sorted by MK_* knobs
163
164.if ${MK_ATM} != "no"
165_libngatm=	libngatm
166.endif
167
168.if ${MK_BLACKLIST} != "no"
169_libblacklist=	libblacklist
170.endif
171
172.if ${MK_BLUETOOTH} != "no"
173_libbluetooth=	libbluetooth
174_libsdp=	libsdp
175.endif
176
177.if ${MK_BSNMP} != "no"
178_libbsnmp=	libbsnmp
179.endif
180
181.if ${MK_CASPER} != "no"
182_libcasper=	libcasper
183.endif
184
185.if ${MK_CLANG} != "no" && !defined(COMPAT_32BIT) && !defined(COMPAT_SOFTFP)
186_clang=		clang
187.endif
188
189.if ${MK_CUSE} != "no"
190_cuse=		libcuse
191.endif
192
193.if ${MK_CXX} != "no"
194_libdevdctl=	libdevdctl
195.endif
196
197.if ${MK_TOOLCHAIN} != "no"
198_libelftc=	libelftc
199_libpe=		libpe
200.endif
201
202SUBDIR.${MK_DIALOG}+=	libdpv
203
204.if ${MK_FILE} != "no"
205_libmagic=	libmagic
206.endif
207
208.if ${MK_GPIO} != "no"
209_libgpio=	libgpio
210.endif
211
212.if ${MK_GSSAPI} != "no"
213_libgssapi=	libgssapi
214_librpcsec_gss=	librpcsec_gss
215.endif
216
217.if ${MK_ICONV} != "no"
218_libiconv_modules=	libiconv_modules
219.endif
220
221.if ${MK_KERBEROS_SUPPORT} != "no"
222_libcom_err= libcom_err
223.endif
224
225.if ${MK_LDNS} != "no"
226_libldns=	libldns
227.endif
228
229# The libraries under libclang_rt can only be built by clang, and only make
230# sense to build when clang is enabled at all.  Furthermore, they can only be
231# built for certain architectures.
232.if ${MK_CLANG} != "no" && ${COMPILER_TYPE} == "clang" && \
233    (${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
234    (${MACHINE_CPUARCH} == "arm" && ${MACHINE_ARCH} != "armeb") || \
235    (${MACHINE_CPUARCH} == "i386"))
236_libclang_rt=	libclang_rt
237.endif
238
239.if ${MK_LIBCPLUSPLUS} != "no"
240_libcxxrt=	libcxxrt
241_libcplusplus=	libc++
242.endif
243
244.if ${MK_EFI} != "no"
245_libefivar=	libefivar
246.endif
247
248.if ${MK_LIBTHR} != "no"
249_libthr=	libthr
250.endif
251
252.if ${MK_NAND} != "no"
253_libnandfs=	libnandfs
254.endif
255
256.if ${MK_NETGRAPH} != "no"
257_libnetgraph=	libnetgraph
258.endif
259
260.if ${MK_NIS} != "no"
261_libypclnt=	libypclnt
262.endif
263
264.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
265_libvgl=	libvgl
266_libproc=	libproc
267_librtld_db=	librtld_db
268.endif
269
270.if ${MACHINE_CPUARCH} == "amd64"
271.if ${MK_BHYVE} != "no"
272_libvmmapi=	libvmmapi
273.endif
274.endif
275
276.if ${MACHINE_CPUARCH} == "mips"
277_libproc=	libproc
278_librtld_db=	librtld_db
279.endif
280
281.if ${MACHINE_CPUARCH} == "powerpc"
282_libproc=	libproc
283_librtld_db=	librtld_db
284.endif
285
286.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "arm" || \
287    ${MACHINE_CPUARCH} == "riscv"
288_libproc=	libproc
289_librtld_db=	librtld_db
290.endif
291
292.if ${MK_OPENSSL} != "no"
293_libmp=		libmp
294.endif
295
296.if ${MK_PMC} != "no"
297_libpmc=	libpmc
298.endif
299
300.if ${MK_RADIUS_SUPPORT} != "no"
301_libradius=	libradius
302.endif
303
304.if ${MK_SENDMAIL} != "no"
305_libmilter=	libmilter
306_libsm=		libsm
307_libsmdb=	libsmdb
308_libsmutil=	libsmutil
309.endif
310
311.if ${MK_TELNET} != "no"
312_libtelnet=	libtelnet
313.endif
314
315.if ${MK_TESTS_SUPPORT} != "no"
316_atf=		atf
317.endif
318.if ${MK_TESTS} != "no"
319_tests=		tests
320.endif
321
322.if ${MK_UNBOUND} != "no"
323_libunbound=	libunbound
324.endif
325
326.if ${MK_USB} != "no"
327_libusbhid=	libusbhid
328_libusb=	libusb
329.endif
330
331.if !make(install)
332SUBDIR_PARALLEL=
333.endif
334
335.include <bsd.subdir.mk>
336