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