xref: /freebsd/share/mk/src.libnames.mk (revision 05427f4639bcf2703329a9be9d25ec09bb782742)
1d029c3aaSBaptiste Daroussin#
2d029c3aaSBaptiste Daroussin# The include file <src.libnames.mk> define library names suitable
3d029c3aaSBaptiste Daroussin# for INTERNALLIB and PRIVATELIB definition
4d029c3aaSBaptiste Daroussin
5d029c3aaSBaptiste Daroussin.if !target(__<bsd.init.mk>__)
6d029c3aaSBaptiste Daroussin.error src.libnames.mk cannot be included directly.
7d029c3aaSBaptiste Daroussin.endif
8d029c3aaSBaptiste Daroussin
94aa63711SBryan Drewery.if !target(__<src.libnames.mk>__)
104aa63711SBryan Drewery__<src.libnames.mk>__:
114aa63711SBryan Drewery
1285e4c389SBaptiste Daroussin.include <src.opts.mk>
1385e4c389SBaptiste Daroussin
1485e4c389SBaptiste Daroussin_PRIVATELIBS=	\
1585e4c389SBaptiste Daroussin		atf_c \
1685e4c389SBaptiste Daroussin		atf_cxx \
1772a600a7SAlan Somers		auditd \
1837d0601fSBaptiste Daroussin		bsddialog \
1985e4c389SBaptiste Daroussin		bsdstat \
202e85df65SEd Maste		cbor \
217a0c41d5SAlan Somers		devdctl \
22c5ea81f7SEd Maste		event1 \
237b1e19adSEd Maste		fido2 \
24f3c5273dSEnji Cooper		gmock \
25f3c5273dSEnji Cooper		gtest \
26f3c5273dSEnji Cooper		gmock_main \
27f3c5273dSEnji Cooper		gtest_main \
2891bac0a9SBaptiste Daroussin		heimipcc \
29882e68f6SBaptiste Daroussin		heimipcs \
30968bcca2SKa Ho Ng		kldelf \
3185e4c389SBaptiste Daroussin		ldns \
3285e4c389SBaptiste Daroussin		sqlite3 \
3385e4c389SBaptiste Daroussin		ssh \
3485e4c389SBaptiste Daroussin		ucl \
35e2290905SBaptiste Daroussin		unbound \
36e2290905SBaptiste Daroussin		zstd
37873ad7fbSBaptiste Daroussin
38d7f944a0SEric van Gyzen# Let projects based on FreeBSD append to _PRIVATELIBS
39d7f944a0SEric van Gyzen# by maintaining their own LOCAL_PRIVATELIBS list.
40d7f944a0SEric van Gyzen_PRIVATELIBS+=	${LOCAL_PRIVATELIBS}
41d7f944a0SEric van Gyzen
425abe80cfSBryan Drewery_INTERNALLIBS=	\
4329a8bda7SBaptiste Daroussin		amu \
4429a8bda7SBaptiste Daroussin		bsnmptools \
45db08bfceSKonstantin Belousov		c_nossp_pic \
4629a8bda7SBaptiste Daroussin		cron \
47f59bb61eSKyle Evans		der \
48d9a9f23dSDag-Erling Smørgrav		diff \
4931942939SEd Maste		elftc \
50f29af861SMark Johnston		fdt \
5129a8bda7SBaptiste Daroussin		fifolog \
52e1157dceSEd Maste		ifconfig \
53cc0d90a7SBaptiste Daroussin		ipf \
5463783933SJohn Baldwin		iscsiutil \
5529a8bda7SBaptiste Daroussin		lpr \
56564b9ff2SBrooks Davis		lua \
57c697fb7fSBrooks Davis		lutok \
582df4d962SBaptiste Daroussin		netbsd \
5929a8bda7SBaptiste Daroussin		ntp \
602b15cb3dSCy Schubert		ntpevent \
612da066efSJohn Baldwin		nvmf \
62a36eca08SCraig Rodrigues		openbsd \
6329a8bda7SBaptiste Daroussin		opts \
6429a8bda7SBaptiste Daroussin		parse \
65c1da2974SEd Maste		pe \
660d71f9f3SKristof Provost		pfctl \
67*05427f46SKyle Evans		pkgecc \
68d27927f7SRuslan Bukin		pmcstat \
6985abe784SBaptiste Daroussin		sl \
7085abe784SBaptiste Daroussin		sm \
7130fca3b0SBaptiste Daroussin		smdb \
7230fca3b0SBaptiste Daroussin		smutil \
7330fca3b0SBaptiste Daroussin		telnet \
7425ecdc7dSCy Schubert		vers \
7525ecdc7dSCy Schubert		wpaap \
7625ecdc7dSCy Schubert		wpacommon \
7725ecdc7dSCy Schubert		wpacrypto \
7825ecdc7dSCy Schubert		wpadrivers \
7925ecdc7dSCy Schubert		wpaeap_common \
8025ecdc7dSCy Schubert		wpaeap_peer \
8125ecdc7dSCy Schubert		wpaeap_server \
8225ecdc7dSCy Schubert		wpaeapol_auth \
8325ecdc7dSCy Schubert		wpaeapol_supp \
8425ecdc7dSCy Schubert		wpal2_packet \
85a90b9d01SCy Schubert		wpapasn \
8625ecdc7dSCy Schubert		wparadius \
8725ecdc7dSCy Schubert		wparsn_supp \
8825ecdc7dSCy Schubert		wpatls \
8925ecdc7dSCy Schubert		wpautils \
9025ecdc7dSCy Schubert		wpawps
9185e4c389SBaptiste Daroussin
92d7f944a0SEric van Gyzen# Let projects based on FreeBSD append to _INTERNALLIBS
93d7f944a0SEric van Gyzen# by maintaining their own LOCAL_INTERNALLIBS list.
94d7f944a0SEric van Gyzen_INTERNALLIBS+=	${LOCAL_INTERNALLIBS}
95d7f944a0SEric van Gyzen
9685e4c389SBaptiste Daroussin_LIBRARIES=	\
97873ad7fbSBaptiste Daroussin		${_PRIVATELIBS} \
985abe80cfSBryan Drewery		${_INTERNALLIBS} \
99f3dd2bc7SBryan Drewery		${LOCAL_LIBRARIES} \
1005c15e5d0SAdrian Chadd		80211 \
101100353cfSJakub Wojciech Klama		9p \
102882e68f6SBaptiste Daroussin		alias \
10385e4c389SBaptiste Daroussin		archive \
10491bac0a9SBaptiste Daroussin		asn1 \
1057be46fbdSBaptiste Daroussin		avl \
106c65e42dbSXin LI		BlocksRuntime \
10728f16a0fSKyle Evans		be \
10830fca3b0SBaptiste Daroussin		begemot \
10930fca3b0SBaptiste Daroussin		bluetooth \
11085e4c389SBaptiste Daroussin		bsdxml \
11130fca3b0SBaptiste Daroussin		bsm \
11292fc4f55SBaptiste Daroussin		bsnmp \
11385e4c389SBaptiste Daroussin		bz2 \
1148794b8a7SBaptiste Daroussin		c \
1158794b8a7SBaptiste Daroussin		c_pic \
11630fca3b0SBaptiste Daroussin		calendar \
11785e4c389SBaptiste Daroussin		cam \
11885e4c389SBaptiste Daroussin		casper \
119c501d73cSMariusz Zaborski		cap_dns \
120cdd6ea94SMariusz Zaborski		cap_fileargs \
121c501d73cSMariusz Zaborski		cap_grp \
122832dc76bSMariusz Zaborski		cap_net \
12394dc5715SRyan Moeller		cap_netdb \
124c501d73cSMariusz Zaborski		cap_pwd \
125c501d73cSMariusz Zaborski		cap_sysctl \
1267b4fce76SMariusz Zaborski		cap_syslog \
12791bac0a9SBaptiste Daroussin		com_err \
128d98c8ac0SBaptiste Daroussin		compiler_rt \
12985e4c389SBaptiste Daroussin		crypt \
13085e4c389SBaptiste Daroussin		crypto \
131d98c8ac0SBaptiste Daroussin		ctf \
13285e4c389SBaptiste Daroussin		cuse \
13385e4c389SBaptiste Daroussin		cxxrt \
13464de8019SJohn Baldwin		devctl \
1357a0c41d5SAlan Somers		devdctl \
13629a8bda7SBaptiste Daroussin		devinfo \
13785e4c389SBaptiste Daroussin		devstat \
13885e4c389SBaptiste Daroussin		dialog \
13999ac8154SKonstantin Belousov		dl \
14085e4c389SBaptiste Daroussin		dpv \
141d612f139SBaptiste Daroussin		dtrace \
14285e4c389SBaptiste Daroussin		dwarf \
14385e4c389SBaptiste Daroussin		edit \
144d49a5dddSWarner Losh		efivar \
14585e4c389SBaptiste Daroussin		elf \
14685e4c389SBaptiste Daroussin		execinfo \
14785e4c389SBaptiste Daroussin		fetch \
14885e4c389SBaptiste Daroussin		figpar \
149a46722b5SBaptiste Daroussin		formw \
15085e4c389SBaptiste Daroussin		geom \
1512a113662SRui Paulo		gpio \
15285e4c389SBaptiste Daroussin		gssapi \
1538794b8a7SBaptiste Daroussin		gssapi_krb5 \
154882e68f6SBaptiste Daroussin		hdb \
15591bac0a9SBaptiste Daroussin		heimbase \
156882e68f6SBaptiste Daroussin		heimntlm \
157882e68f6SBaptiste Daroussin		heimsqlite \
15891bac0a9SBaptiste Daroussin		hx509 \
1599e5787d2SMatt Macy		icp \
16085e4c389SBaptiste Daroussin		ipsec \
16130b3274fSRuslan Bukin		ipt \
16285e4c389SBaptiste Daroussin		jail \
163882e68f6SBaptiste Daroussin		kadm5clnt \
164882e68f6SBaptiste Daroussin		kadm5srv \
165882e68f6SBaptiste Daroussin		kafs5 \
166882e68f6SBaptiste Daroussin		kdc \
16785e4c389SBaptiste Daroussin		kiconv \
16891bac0a9SBaptiste Daroussin		krb5 \
16992fc4f55SBaptiste Daroussin		kvm \
17085e4c389SBaptiste Daroussin		l \
17185e4c389SBaptiste Daroussin		lzma \
17285e4c389SBaptiste Daroussin		m \
17385e4c389SBaptiste Daroussin		magic \
17485e4c389SBaptiste Daroussin		md \
17585e4c389SBaptiste Daroussin		memstat \
17685e4c389SBaptiste Daroussin		mp \
17732e5044dSBaptiste Daroussin		mt \
17892fc4f55SBaptiste Daroussin		ncursesw \
17930fca3b0SBaptiste Daroussin		netgraph \
1805c4f8d80SVincenzo Maffione		netmap \
18130fca3b0SBaptiste Daroussin		ngatm \
18285e4c389SBaptiste Daroussin		nv \
18335309222SBryan Drewery		nvpair \
184cde6fa28SRuslan Bukin		opencsd \
18585e4c389SBaptiste Daroussin		pam \
186c0b57599SBaptiste Daroussin		panel \
187c0b57599SBaptiste Daroussin		panelw \
18885e4c389SBaptiste Daroussin		pcap \
18929a8bda7SBaptiste Daroussin		pcsclite \
19085e4c389SBaptiste Daroussin		pjdlog \
19129a8bda7SBaptiste Daroussin		pmc \
19285e4c389SBaptiste Daroussin		proc \
19385e4c389SBaptiste Daroussin		procstat \
19485e4c389SBaptiste Daroussin		pthread \
19585e4c389SBaptiste Daroussin		radius \
196b37f6c98SKyle Evans		regex \
19791bac0a9SBaptiste Daroussin		roken \
19885e4c389SBaptiste Daroussin		rpcsec_gss \
19930fca3b0SBaptiste Daroussin		rpcsvc \
20085e4c389SBaptiste Daroussin		rt \
201d612f139SBaptiste Daroussin		rtld_db \
20285e4c389SBaptiste Daroussin		sbuf \
20330fca3b0SBaptiste Daroussin		sdp \
20485e4c389SBaptiste Daroussin		sm \
20585e4c389SBaptiste Daroussin		smb \
2069e5787d2SMatt Macy		spl \
20785e4c389SBaptiste Daroussin		ssl \
20892fc4f55SBaptiste Daroussin		ssp_nonshared \
2091a13f2e6SEdward Tomasz Napierala		stats \
21085e4c389SBaptiste Daroussin		stdthreads \
21185e4c389SBaptiste Daroussin		supcplusplus \
212e9d96105SBrooks Davis		sys \
213d6fb4894SJohn Baldwin		sysdecode \
21485e4c389SBaptiste Daroussin		tacplus \
21585e4c389SBaptiste Daroussin		termcapw \
216396851c2SBaptiste Daroussin		tinfow \
2179e5787d2SMatt Macy		tpool \
21885e4c389SBaptiste Daroussin		ufs \
21992fc4f55SBaptiste Daroussin		ugidfw \
22085e4c389SBaptiste Daroussin		ulog \
22135309222SBryan Drewery		umem \
22285e4c389SBaptiste Daroussin		usb \
22330fca3b0SBaptiste Daroussin		usbhid \
22485e4c389SBaptiste Daroussin		util \
22535309222SBryan Drewery		uutil \
22629a8bda7SBaptiste Daroussin		vmmapi \
22791bac0a9SBaptiste Daroussin		wind \
22885e4c389SBaptiste Daroussin		wrap \
229ca88232bSBaptiste Daroussin		xo \
23085e4c389SBaptiste Daroussin		y \
231d98c8ac0SBaptiste Daroussin		ypclnt \
23235309222SBryan Drewery		z \
233a4e5e010SMartin Matuska		zdb \
23435309222SBryan Drewery		zfs_core \
23535309222SBryan Drewery		zfs \
236e307eb94SToomas Soome		zfsbootenv \
23735309222SBryan Drewery		zpool \
2389e5787d2SMatt Macy		zutil
23935309222SBryan Drewery
24095856e14SKurt Lidl.if ${MK_BLACKLIST} != "no"
24195856e14SKurt Lidl_LIBRARIES+= \
24295856e14SKurt Lidl		blacklist \
24395856e14SKurt Lidl
24495856e14SKurt Lidl.endif
24595856e14SKurt Lidl
246de1f9ee2SBryan Drewery.if ${MK_OFED} != "no"
247de1f9ee2SBryan Drewery_LIBRARIES+= \
248de1f9ee2SBryan Drewery		cxgb4 \
249de1f9ee2SBryan Drewery		ibcm \
250de1f9ee2SBryan Drewery		ibmad \
251e110d077SHans Petter Selasky		ibnetdisc \
252de1f9ee2SBryan Drewery		ibumad \
253de1f9ee2SBryan Drewery		ibverbs \
254cdcd52d4SBartosz Sobczak		irdma \
255de1f9ee2SBryan Drewery		mlx4 \
256e110d077SHans Petter Selasky		mlx5 \
257de1f9ee2SBryan Drewery		rdmacm \
258e110d077SHans Petter Selasky		osmcomp \
259e110d077SHans Petter Selasky		opensm \
260e110d077SHans Petter Selasky		osmvendor
261de1f9ee2SBryan Drewery.endif
26285e4c389SBaptiste Daroussin
263a92958dfSSimon J. Gerraty.if ${MK_BEARSSL} == "yes"
2645ea556d9SSimon J. Gerraty_LIBRARIES+= \
265a92958dfSSimon J. Gerraty		bearssl \
266a92958dfSSimon J. Gerraty		secureboot \
267a92958dfSSimon J. Gerraty
2685ea556d9SSimon J. GerratyLIBBEARSSL?=	${LIBBEARSSLDIR}/libbearssl.a
2695ea556d9SSimon J. GerratyLIBSECUREBOOT?=	${LIBSECUREBOOTDIR}/libsecureboot.a
270a92958dfSSimon J. Gerraty.endif
271a92958dfSSimon J. Gerraty
272a92958dfSSimon J. Gerraty.if ${MK_VERIEXEC} == "yes"
2735ea556d9SSimon J. Gerraty_LIBRARIES+= veriexec
274a92958dfSSimon J. Gerraty
2755ea556d9SSimon J. GerratyLIBVERIEXEC?=	${LIBVERIEXECDIR}/libveriexec.a
276a92958dfSSimon J. Gerraty.endif
277a92958dfSSimon J. Gerraty
2785afa1972SBryan Drewery# Each library's LIBADD needs to be duplicated here for static linkage of
2795afa1972SBryan Drewery# 2nd+ order consumers.  Auto-generating this would be better.
2803a42764aSBryan Drewery_DP_80211=	sbuf bsdxml
281100353cfSJakub Wojciech Klama_DP_9p=		sbuf
282cff48238SVitaliy Gusev.if ${MK_CASPER} != "no"
283cff48238SVitaliy Gusev_DP_9p+=	casper cap_pwd cap_grp
284cff48238SVitaliy Gusev.endif
285cff48238SVitaliy Gusev
286ed405075SJessica Clarke# XXX: Not bootstrapped so uses host version on non-FreeBSD, so don't use a
287ed405075SJessica Clarke# FreeBSD-specific dependency list
288ed405075SJessica Clarke.if ${.MAKE.OS} == "FreeBSD" || !defined(BOOTSTRAPPING)
28985686f34SBaptiste Daroussin_DP_archive=	z bz2 lzma bsdxml zstd
290ed405075SJessica Clarke.endif
2919e9c651cSGreg V_DP_avl=	spl
292d287d328SAlfonso S. Siciliano_DP_bsddialog=	ncursesw tinfow
2931fc317e3SBaptiste Daroussin_DP_zstd=	pthread
29495856e14SKurt Lidl.if ${MK_BLACKLIST} != "no"
29595856e14SKurt Lidl_DP_blacklist+=	pthread
29695856e14SKurt Lidl.endif
297acd3ae12SJung-uk Kim_DP_crypto=	pthread
29870f1e134SJessica Clarke# See comment by _DP_archive above
29970f1e134SJessica Clarke.if ${.MAKE.OS} == "FreeBSD" || !defined(BOOTSTRAPPING)
30085e4c389SBaptiste Daroussin.if ${MK_OPENSSL} != "no"
30185e4c389SBaptiste Daroussin_DP_archive+=	crypto
30285e4c389SBaptiste Daroussin.else
30385e4c389SBaptiste Daroussin_DP_archive+=	md
30485e4c389SBaptiste Daroussin.endif
30570f1e134SJessica Clarke.endif
3067bce8739SBryan Drewery_DP_sqlite3=	pthread
30785e4c389SBaptiste Daroussin_DP_ssl=	crypto
30870b19675SBryan Drewery_DP_ssh=	crypto crypt z
309eafea10bSBaptiste Daroussin.if ${MK_LDNS} != "no"
31070b19675SBryan Drewery_DP_ssh+=	ldns
311eafea10bSBaptiste Daroussin.endif
312cbc83e37SBaptiste Daroussin_DP_edit=	tinfow
31385e4c389SBaptiste Daroussin.if ${MK_OPENSSL} != "no"
31485e4c389SBaptiste Daroussin_DP_bsnmp=	crypto
31585e4c389SBaptiste Daroussin.endif
3168e16f692SEnji Cooper_DP_geom=	bsdxml sbuf
31785e4c389SBaptiste Daroussin_DP_cam=	sbuf
318968bcca2SKa Ho Ng_DP_kldelf=	elf
3197f911abeSJohn Baldwin_DP_kvm=	elf
320c501d73cSMariusz Zaborski_DP_casper=	nv
321c501d73cSMariusz Zaborski_DP_cap_dns=	nv
322cdd6ea94SMariusz Zaborski_DP_cap_fileargs=	nv
323c501d73cSMariusz Zaborski_DP_cap_grp=	nv
324c501d73cSMariusz Zaborski_DP_cap_pwd=	nv
325c501d73cSMariusz Zaborski_DP_cap_sysctl=	nv
3267b4fce76SMariusz Zaborski_DP_cap_syslog=	nv
327cb5e41b1SRobert Clausecker_DP_crypt=	md
328b00ab754SHans Petter Selasky.if ${MK_OFED} != "no"
329b00ab754SHans Petter Selasky_DP_pcap=	ibverbs mlx5
330b00ab754SHans Petter Selasky.endif
33185e4c389SBaptiste Daroussin_DP_pjdlog=	util
33285e4c389SBaptiste Daroussin_DP_usb=	pthread
3335afa1972SBryan Drewery_DP_unbound=	ssl crypto pthread
33485e4c389SBaptiste Daroussin_DP_rt=	pthread
33585e4c389SBaptiste Daroussin.if ${MK_OPENSSL} == "no"
33685e4c389SBaptiste Daroussin_DP_radius=	md
33785e4c389SBaptiste Daroussin.else
33885e4c389SBaptiste Daroussin_DP_radius=	crypto
33985e4c389SBaptiste Daroussin.endif
340a7e13d50SMark Johnston_DP_rtld_db=	elf procstat
34185e4c389SBaptiste Daroussin_DP_procstat=	kvm util elf
34285e4c389SBaptiste Daroussin_DP_proc=	cxxrt
34385e4c389SBaptiste Daroussin.if ${MK_CDDL} != "no"
3445716a77aSBaptiste Daroussin_DP_proc+=	ctf
34585e4c389SBaptiste Daroussin.endif
3460bbf2702SXin LI_DP_proc+=	elf procstat rtld_db util z
34785e4c389SBaptiste Daroussin_DP_mp=	crypto
34885e4c389SBaptiste Daroussin_DP_memstat=	kvm
34985e4c389SBaptiste Daroussin_DP_magic=	z
350ed8addefSBryan Drewery_DP_mt=		sbuf bsdxml
351365b89e8SJohn Baldwin_DP_nvmf=	nv
3520ffba319SDag-Erling Smørgrav_DP_ldns=	ssl crypto
353564b9ff2SBrooks Davis_DP_lua=	m
354c697fb7fSBrooks Davis_DP_lutok=	lua
35585e4c389SBaptiste Daroussin.if ${MK_OPENSSL} != "no"
35685e4c389SBaptiste Daroussin_DP_fetch=	ssl crypto
35785e4c389SBaptiste Daroussin.else
35885e4c389SBaptiste Daroussin_DP_fetch=	md
35985e4c389SBaptiste Daroussin.endif
36085e4c389SBaptiste Daroussin_DP_execinfo=	elf
361dbf05458SMark Johnston_DP_dwarf=	elf z
362cbc83e37SBaptiste Daroussin_DP_dpv=	dialog figpar util tinfow ncursesw
363cbc83e37SBaptiste Daroussin_DP_dialog=	tinfow ncursesw m
36485e4c389SBaptiste Daroussin_DP_cuse=	pthread
36585e4c389SBaptiste Daroussin_DP_atf_cxx=	atf_c
366b4af4f93SKyle Evans_DP_gtest=	pthread regex
367f3c5273dSEnji Cooper_DP_gmock=	gtest
368f3c5273dSEnji Cooper_DP_gmock_main=	gmock
369f3c5273dSEnji Cooper_DP_gtest_main=	gtest
37085e4c389SBaptiste Daroussin_DP_devstat=	kvm
3710aa27001SDag-Erling Smørgrav_DP_pam=	radius tacplus md util
37230fca3b0SBaptiste Daroussin.if ${MK_KERBEROS} != "no"
37330fca3b0SBaptiste Daroussin_DP_pam+=	krb5
37430fca3b0SBaptiste Daroussin.endif
37530fca3b0SBaptiste Daroussin.if ${MK_OPENSSH} != "no"
3767b1e19adSEd Maste_DP_fido2+=	crypto z
37730fca3b0SBaptiste Daroussin_DP_pam+=	ssh
37830fca3b0SBaptiste Daroussin.endif
37930fca3b0SBaptiste Daroussin.if ${MK_NIS} != "no"
38030fca3b0SBaptiste Daroussin_DP_pam+=	ypclnt
38130fca3b0SBaptiste Daroussin.endif
3823091cdb1SCy Schubert_DP_roken=	crypt
3835afa1972SBryan Drewery_DP_kadm5clnt=	com_err krb5 roken
3845afa1972SBryan Drewery_DP_kadm5srv=	com_err hdb krb5 roken
3855afa1972SBryan Drewery_DP_heimntlm=	crypto com_err krb5 roken
3865afa1972SBryan Drewery_DP_hx509=	asn1 com_err crypto roken wind
3875afa1972SBryan Drewery_DP_hdb=	asn1 com_err krb5 roken sqlite3
3885afa1972SBryan Drewery_DP_asn1=	com_err roken
3895afa1972SBryan Drewery_DP_kdc=	roken hdb hx509 krb5 heimntlm asn1 crypto
3905afa1972SBryan Drewery_DP_wind=	com_err roken
3915afa1972SBryan Drewery_DP_heimbase=	pthread
3925afa1972SBryan Drewery_DP_heimipcc=	heimbase roken pthread
3935afa1972SBryan Drewery_DP_heimipcs=	heimbase roken pthread
3945afa1972SBryan Drewery_DP_kafs5=	asn1 krb5 roken
395e343ebbfSCy Schubert_DP_krb5=	asn1 com_err crypt crypto hx509 roken wind heimbase heimipcc
396e343ebbfSCy Schubert_DP_gssapi_krb5=	gssapi krb5 crypto roken asn1 com_err
39765422c96SXin LI_DP_lzma=	md pthread
3984bf54857SBaptiste Daroussin_DP_ucl=	m
399ea4a4d8aSBaptiste Daroussin_DP_vmmapi=	util
400cde6fa28SRuslan Bukin_DP_opencsd=	cxxrt
4019e5787d2SMatt Macy_DP_ctf=	spl z
40293f27766SDomagoj Stolfa_DP_dtrace=	ctf elf proc pthread rtld_db xo
403550d2b80SEnji Cooper_DP_xo=		util
4049e5787d2SMatt Macy_DP_ztest=	geom m nvpair umem zpool pthread avl zfs_core spl zutil zfs uutil icp
4055afa1972SBryan Drewery# The libc dependencies are not strictly needed but are defined to make the
4065afa1972SBryan Drewery# assert happy.
40799ea6757SBrooks Davis_DP_c=		compiler_rt sys
4089aa786cbSEd Maste# Use libssp_nonshared only on i386 and power*.  Other archs emit direct calls
4099aa786cbSEd Maste# to __stack_chk_fail, not __stack_chk_fail_local provided by libssp_nonshared.
4100f611708SEd Maste.if ${MK_SSP} != "no" && \
4110f611708SEd Maste    (${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH:Mpower*} != "")
4125afa1972SBryan Drewery_DP_c+=		ssp_nonshared
4135afa1972SBryan Drewery.endif
4141a13f2e6SEdward Tomasz Napierala_DP_stats=	sbuf pthread
4155afa1972SBryan Drewery_DP_stdthreads=	pthread
416e9d96105SBrooks Davis_DP_sys=	compiler_rt
417e9d96105SBrooks Davis# Use libssp_nonshared only on i386 and power*.  Other archs emit direct calls
418e9d96105SBrooks Davis# to __stack_chk_fail, not __stack_chk_fail_local provided by libssp_nonshared.
419e9d96105SBrooks Davis.if ${MK_SSP} != "no" && \
420e9d96105SBrooks Davis    (${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH:Mpower*} != "")
421e9d96105SBrooks Davis_DP_sys+=	ssp_nonshared
422e9d96105SBrooks Davis.endif
42399ea6757SBrooks Davis.if !defined(BOOTSTRAPPING)
42499ea6757SBrooks Davis_DP_thr=	c sys
42599ea6757SBrooks Davis_DP_pthread=	${_DP_thr}
42699ea6757SBrooks Davis.endif
42721850106SDag-Erling Smørgrav_DP_tacplus=	md pam
428396851c2SBaptiste Daroussin_DP_ncursesw=	tinfow
429a46722b5SBaptiste Daroussin_DP_formw=	ncursesw
4309e9c651cSGreg V_DP_nvpair=	spl
4315afa1972SBryan Drewery_DP_panelw=	ncursesw
4325afa1972SBryan Drewery_DP_rpcsec_gss=	gssapi
4335afa1972SBryan Drewery_DP_smb=	kiconv
4345afa1972SBryan Drewery_DP_ulog=	md
4357aab86d5SBryan Drewery_DP_fifolog=	z
4367aab86d5SBryan Drewery_DP_ipf=	kvm
4379e5787d2SMatt Macy_DP_tpool=	spl
4389e5787d2SMatt Macy_DP_uutil=	avl spl
439315ee00fSMartin Matuska_DP_zfs=	md pthread rt umem util uutil m avl bsdxml crypto geom nvpair \
4409e5787d2SMatt Macy	z zfs_core zutil
441e307eb94SToomas Soome_DP_zfsbootenv= zfs nvpair
4429e9c651cSGreg V_DP_zfs_core=	nvpair spl zutil
4439e5787d2SMatt Macy_DP_zpool=	md pthread z icp spl nvpair avl umem
4449e9c651cSGreg V_DP_zutil=	avl geom m tpool
445e307eb94SToomas Soome_DP_be=		zfs spl nvpair zfsbootenv
4465c4f8d80SVincenzo Maffione_DP_netmap=
4474d135bbdSJohn Baldwin_DP_ifconfig=	m
4480d71f9f3SKristof Provost_DP_pfctl=	nv
449e110d077SHans Petter Selasky
450e110d077SHans Petter Selasky# OFED support
451400b94bbSBryan Drewery.if ${MK_OFED} != "no"
452400b94bbSBryan Drewery_DP_cxgb4=	ibverbs pthread
453400b94bbSBryan Drewery_DP_ibcm=	ibverbs
454e110d077SHans Petter Selasky_DP_ibmad=	ibumad
455e110d077SHans Petter Selasky_DP_ibnetdisc=	osmcomp ibmad ibumad
456e110d077SHans Petter Selasky_DP_ibumad=
457e110d077SHans Petter Selasky_DP_ibverbs=
458cdcd52d4SBartosz Sobczak_DP_irdma=	ibverbs pthread
459400b94bbSBryan Drewery_DP_mlx4=	ibverbs pthread
460e110d077SHans Petter Selasky_DP_mlx5=	ibverbs pthread
461400b94bbSBryan Drewery_DP_rdmacm=	ibverbs
462e110d077SHans Petter Selasky_DP_osmcomp=	pthread
463e110d077SHans Petter Selasky_DP_opensm=	pthread
464e110d077SHans Petter Selasky_DP_osmvendor=	ibumad pthread
465400b94bbSBryan Drewery.endif
46685e4c389SBaptiste Daroussin
4671c4ced8fSEnji Cooper# Define special cases
46885e4c389SBaptiste DaroussinLDADD_supcplusplus=	-lsupc++
469c99b67a7SBryan DreweryLIBATF_C=	${LIBDESTDIR}${LIBDIR_BASE}/libprivateatf-c.a
470c99b67a7SBryan DreweryLIBATF_CXX=	${LIBDESTDIR}${LIBDIR_BASE}/libprivateatf-c++.a
4715551c573SBaptiste DaroussinLDADD_atf_c=	-lprivateatf-c
4725551c573SBaptiste DaroussinLDADD_atf_cxx=	-lprivateatf-c++
4735551c573SBaptiste Daroussin
474f3c5273dSEnji CooperLIBGMOCK=	${LIBDESTDIR}${LIBDIR_BASE}/libprivategmock.a
4754309e4b5SEnji CooperLIBGMOCK_MAIN=	${LIBDESTDIR}${LIBDIR_BASE}/libprivategmock_main.a
476f3c5273dSEnji CooperLIBGTEST=	${LIBDESTDIR}${LIBDIR_BASE}/libprivategtest.a
4774309e4b5SEnji CooperLIBGTEST_MAIN=	${LIBDESTDIR}${LIBDIR_BASE}/libprivategtest_main.a
478f3c5273dSEnji CooperLDADD_gmock=	-lprivategmock
479f3c5273dSEnji CooperLDADD_gtest=	-lprivategtest
480f3c5273dSEnji CooperLDADD_gmock_main= -lprivategmock_main
481f3c5273dSEnji CooperLDADD_gtest_main= -lprivategtest_main
482f3c5273dSEnji Cooper
4835551c573SBaptiste Daroussin.for _l in ${_PRIVATELIBS}
484c99b67a7SBryan DreweryLIB${_l:tu}?=	${LIBDESTDIR}${LIBDIR_BASE}/libprivate${_l}.a
4855551c573SBaptiste Daroussin.endfor
48685e4c389SBaptiste Daroussin
487bcf99d2dSEd Maste.if ${MK_PIE} != "no"
488bcf99d2dSEd MastePIE_SUFFIX=	_pie
489bcf99d2dSEd Maste.endif
490bcf99d2dSEd Maste
49185e4c389SBaptiste Daroussin.for _l in ${_LIBRARIES}
4928f224624SBryan Drewery.if ${_INTERNALLIBS:M${_l}} || !defined(SYSROOT)
493768987b5SBaptiste DaroussinLDADD_${_l}_L+=		-L${LIB${_l:tu}DIR}
49485e4c389SBaptiste Daroussin.endif
49585e4c389SBaptiste DaroussinDPADD_${_l}?=	${LIB${_l:tu}}
4965551c573SBaptiste Daroussin.if ${_PRIVATELIBS:M${_l}}
4975551c573SBaptiste DaroussinLDADD_${_l}?=	-lprivate${_l}
498bcf99d2dSEd Maste.elif ${_INTERNALLIBS:M${_l}}
499bcf99d2dSEd MasteLDADD_${_l}?=	${LDADD_${_l}_L} -l${_l:S/${PIE_SUFFIX}//}${PIE_SUFFIX}
5005551c573SBaptiste Daroussin.else
501768987b5SBaptiste DaroussinLDADD_${_l}?=	${LDADD_${_l}_L} -l${_l}
5025551c573SBaptiste Daroussin.endif
5037aab86d5SBryan Drewery# Add in all dependencies for static linkage.
504f0a6ab51SJessica Clarke# Bootstrapping from non-FreeBSD needs special handling, since it overrides
505f0a6ab51SJessica Clarke# NO_SHARED back to yes despite only building static versions of bootstrap
506f0a6ab51SJessica Clarke# libraries (see tools/build/mk/Makefile.boot.pre).
5077aab86d5SBryan Drewery.if defined(_DP_${_l}) && (${_INTERNALLIBS:M${_l}} || \
508f0a6ab51SJessica Clarke    (defined(NO_SHARED) && ${NO_SHARED:tl} != "no") || \
509f0a6ab51SJessica Clarke    (defined(BOOTSTRAPPING) && ${.MAKE.OS} != "FreeBSD"))
51085e4c389SBaptiste Daroussin.for _d in ${_DP_${_l}}
51185e4c389SBaptiste DaroussinDPADD_${_l}+=	${DPADD_${_d}}
51285e4c389SBaptiste DaroussinLDADD_${_l}+=	${LDADD_${_d}}
51385e4c389SBaptiste Daroussin.endfor
51485e4c389SBaptiste Daroussin.endif
51585e4c389SBaptiste Daroussin.endfor
51685e4c389SBaptiste Daroussin
5175afa1972SBryan Drewery# These are special cases where the library is broken and anything that uses
5187aab86d5SBryan Drewery# it needs to add more dependencies.  Broken usually means that it has a
5197aab86d5SBryan Drewery# cyclic dependency and cannot link its own dependencies.  This is bad, please
5207aab86d5SBryan Drewery# fix the library instead.
5217aab86d5SBryan Drewery# Unless the library itself is broken then the proper place to define
5227aab86d5SBryan Drewery# dependencies is _DP_* above.
5235afa1972SBryan Drewery
5245afa1972SBryan Drewery# libatf-c++ exposes libatf-c abi hence we need to explicit link to atf_c for
5255afa1972SBryan Drewery# atf_cxx
52652a78c67SBaptiste DaroussinDPADD_atf_cxx+=	${DPADD_atf_c}
52752a78c67SBaptiste DaroussinLDADD_atf_cxx+=	${LDADD_atf_c}
52852a78c67SBaptiste Daroussin
529f3c5273dSEnji CooperDPADD_gmock+=	${DPADD_gtest}
530f3c5273dSEnji CooperLDADD_gmock+=	${LDADD_gtest}
531f3c5273dSEnji Cooper
532f3c5273dSEnji CooperDPADD_gmock_main+=	${DPADD_gmock}
533f3c5273dSEnji CooperLDADD_gmock_main+=	${LDADD_gmock}
534f3c5273dSEnji Cooper
535f3c5273dSEnji CooperDPADD_gtest_main+=	${DPADD_gtest}
536f3c5273dSEnji CooperLDADD_gtest_main+=	${LDADD_gtest}
537f3c5273dSEnji Cooper
5387b861220SBryan Drewery# Detect LDADD/DPADD that should be LIBADD, before modifying LDADD here.
539aaa345b8SBryan Drewery_BADLDADD=
5407b861220SBryan Drewery.for _l in ${LDADD:M-l*:N-l*/*:C,^-l,,}
541aaa345b8SBryan Drewery.if ${_LIBRARIES:M${_l}} && !${_PRIVATELIBS:M${_l}}
5427b861220SBryan Drewery_BADLDADD+=	${_l}
5437b861220SBryan Drewery.endif
5447b861220SBryan Drewery.endfor
5457b861220SBryan Drewery.if !empty(_BADLDADD)
5467b861220SBryan Drewery.error ${.CURDIR}: These libraries should be LIBADD+=foo rather than DPADD/LDADD+=-lfoo: ${_BADLDADD}
5477b861220SBryan Drewery.endif
5487b861220SBryan Drewery
54985e4c389SBaptiste Daroussin.for _l in ${LIBADD}
5502fd6394dSBryan DreweryDPADD+=		${DPADD_${_l}}
55185e4c389SBaptiste DaroussinLDADD+=		${LDADD_${_l}}
55285e4c389SBaptiste Daroussin.endfor
553d029c3aaSBaptiste Daroussin
554bc4b1a17SBrooks Davis_LIB_OBJTOP?=	${OBJTOP}
5555afa1972SBryan Drewery# INTERNALLIB definitions.
556d9a9f23dSDag-Erling SmørgravLIBDIFFDIR=	${_LIB_OBJTOP}/lib/libdiff
557d9a9f23dSDag-Erling SmørgravLIBDIFF?=	${LIBDIFFDIR}/libdiff${PIE_SUFFIX}.a
558d9a9f23dSDag-Erling Smørgrav
559bc4b1a17SBrooks DavisLIBELFTCDIR=	${_LIB_OBJTOP}/lib/libelftc
560bcf99d2dSEd MasteLIBELFTC?=	${LIBELFTCDIR}/libelftc${PIE_SUFFIX}.a
56131942939SEd Maste
562f29af861SMark JohnstonLIBFDTDIR=	${_LIB_OBJTOP}/lib/libfdt
563f29af861SMark JohnstonLIBFDT?=	${LIBFDTDIR}/libfdt${PIE_SUFFIX}.a
564f29af861SMark Johnston
565564b9ff2SBrooks DavisLIBLUADIR=	${_LIB_OBJTOP}/lib/liblua
566564b9ff2SBrooks DavisLIBLUA?=	${LIBLUADIR}/liblua${PIE_SUFFIX}.a
567564b9ff2SBrooks Davis
568c697fb7fSBrooks DavisLIBLUTOKDIR=	${_LIB_OBJTOP}/lib/liblutok
569c697fb7fSBrooks DavisLIBLUTOK?=	${LIBLUTOKDIR}/liblutok${PIE_SUFFIX}.a
570c697fb7fSBrooks Davis
571bc4b1a17SBrooks DavisLIBPEDIR=	${_LIB_OBJTOP}/lib/libpe
572bcf99d2dSEd MasteLIBPE?=		${LIBPEDIR}/libpe${PIE_SUFFIX}.a
573c1da2974SEd Maste
574bc4b1a17SBrooks DavisLIBOPENBSDDIR=	${_LIB_OBJTOP}/lib/libopenbsd
575bcf99d2dSEd MasteLIBOPENBSD?=	${LIBOPENBSDDIR}/libopenbsd${PIE_SUFFIX}.a
576beb7fbfcSBaptiste Daroussin
577bc4b1a17SBrooks DavisLIBSMDIR=	${_LIB_OBJTOP}/lib/libsm
578bcf99d2dSEd MasteLIBSM?=		${LIBSMDIR}/libsm${PIE_SUFFIX}.a
5792df4d962SBaptiste Daroussin
580bc4b1a17SBrooks DavisLIBSMDBDIR=	${_LIB_OBJTOP}/lib/libsmdb
581bcf99d2dSEd MasteLIBSMDB?=	${LIBSMDBDIR}/libsmdb${PIE_SUFFIX}.a
58230fca3b0SBaptiste Daroussin
583bc4b1a17SBrooks DavisLIBSMUTILDIR=	${_LIB_OBJTOP}/lib/libsmutil
584bcf99d2dSEd MasteLIBSMUTIL?=	${LIBSMUTILDIR}/libsmutil${PIE_SUFFIX}.a
58530fca3b0SBaptiste Daroussin
586e9d96105SBrooks DavisLIBSYSDIR=	${_LIB_OBJTOP}/lib/libsys
587e9d96105SBrooks DavisLIBSYS?=	${LIBSYSDIR}/libsys${PIE_SUFFIX}.a
588e9d96105SBrooks Davis
589bc4b1a17SBrooks DavisLIBNETBSDDIR?=	${_LIB_OBJTOP}/lib/libnetbsd
590bcf99d2dSEd MasteLIBNETBSD?=	${LIBNETBSDDIR}/libnetbsd${PIE_SUFFIX}.a
59185abe784SBaptiste Daroussin
592bc4b1a17SBrooks DavisLIBVERSDIR?=	${_LIB_OBJTOP}/kerberos5/lib/libvers
593bcf99d2dSEd MasteLIBVERS?=	${LIBVERSDIR}/libvers${PIE_SUFFIX}.a
59485abe784SBaptiste Daroussin
595bc4b1a17SBrooks DavisLIBSLDIR=	${_LIB_OBJTOP}/kerberos5/lib/libsl
596bcf99d2dSEd MasteLIBSL?=		${LIBSLDIR}/libsl${PIE_SUFFIX}.a
597cc0d90a7SBaptiste Daroussin
598bc4b1a17SBrooks DavisLIBIFCONFIGDIR=	${_LIB_OBJTOP}/lib/libifconfig
599e1157dceSEd MasteLIBIFCONFIG?=	${LIBIFCONFIGDIR}/libifconfig${PIE_SUFFIX}.a
600e1157dceSEd Maste
601bc4b1a17SBrooks DavisLIBIPFDIR=	${_LIB_OBJTOP}/sbin/ipf/libipf
602bcf99d2dSEd MasteLIBIPF?=	${LIBIPFDIR}/libipf${PIE_SUFFIX}.a
60330fca3b0SBaptiste Daroussin
6044f79bd4aSKonstantin BelousovLIBNVDIR=	${_LIB_OBJTOP}/lib/libnv
6054f79bd4aSKonstantin BelousovLIBNV?=		${LIBNVDIR}/libnv${PIE_SUFFIX}.a
6064f79bd4aSKonstantin Belousov
60763783933SJohn BaldwinLIBISCSIUTILDIR=	${_LIB_OBJTOP}/lib/libiscsiutil
60863783933SJohn BaldwinLIBISCSIUTIL?=	${LIBISCSIUTILDIR}/libiscsiutil${PIE_SUFFIX}.a
60963783933SJohn Baldwin
6102da066efSJohn BaldwinLIBNVMFDIR=	${_LIB_OBJTOP}/lib/libnvmf
6112da066efSJohn BaldwinLIBNVMF?=	${LIBNVMFDIR}/libnvmf${PIE_SUFFIX}.a
6122da066efSJohn Baldwin
613bc4b1a17SBrooks DavisLIBTELNETDIR=	${_LIB_OBJTOP}/lib/libtelnet
614bcf99d2dSEd MasteLIBTELNET?=	${LIBTELNETDIR}/libtelnet${PIE_SUFFIX}.a
61529a8bda7SBaptiste Daroussin
616bc4b1a17SBrooks DavisLIBCRONDIR=	${_LIB_OBJTOP}/usr.sbin/cron/lib
617bcf99d2dSEd MasteLIBCRON?=	${LIBCRONDIR}/libcron${PIE_SUFFIX}.a
61829a8bda7SBaptiste Daroussin
619f59bb61eSKyle EvansLIBDERDIR=	${_LIB_OBJTOP}/lib/libder
620f59bb61eSKyle EvansLIBDER?=	${LIBDERDIR}/libder${PIE_SUFFIX}.a
621f59bb61eSKyle Evans
622bc4b1a17SBrooks DavisLIBNTPDIR=	${_LIB_OBJTOP}/usr.sbin/ntp/libntp
623bcf99d2dSEd MasteLIBNTP?=	${LIBNTPDIR}/libntp${PIE_SUFFIX}.a
62429a8bda7SBaptiste Daroussin
625bc4b1a17SBrooks DavisLIBNTPEVENTDIR=	${_LIB_OBJTOP}/usr.sbin/ntp/libntpevent
626bcf99d2dSEd MasteLIBNTPEVENT?=	${LIBNTPEVENTDIR}/libntpevent${PIE_SUFFIX}.a
6272b15cb3dSCy Schubert
628bc4b1a17SBrooks DavisLIBOPTSDIR=	${_LIB_OBJTOP}/usr.sbin/ntp/libopts
629bcf99d2dSEd MasteLIBOPTS?=	${LIBOPTSDIR}/libopts${PIE_SUFFIX}.a
63029a8bda7SBaptiste Daroussin
631bc4b1a17SBrooks DavisLIBPARSEDIR=	${_LIB_OBJTOP}/usr.sbin/ntp/libparse
632bcf99d2dSEd MasteLIBPARSE?=	${LIBPARSEDIR}/libparse${PIE_SUFFIX}.a
63329a8bda7SBaptiste Daroussin
6343075939dSLexi WinterLIBPFCTLDIR=	${_LIB_OBJTOP}/lib/libpfctl
6350d71f9f3SKristof ProvostLIBPFCTL?=	${LIBPFCTLDIR}/libpfctl${PIE_SUFFIX}.a
6360d71f9f3SKristof Provost
637bc4b1a17SBrooks DavisLIBLPRDIR=	${_LIB_OBJTOP}/usr.sbin/lpr/common_source
638bcf99d2dSEd MasteLIBLPR?=	${LIBLPRDIR}/liblpr${PIE_SUFFIX}.a
63929a8bda7SBaptiste Daroussin
640bc4b1a17SBrooks DavisLIBFIFOLOGDIR=	${_LIB_OBJTOP}/usr.sbin/fifolog/lib
641bcf99d2dSEd MasteLIBFIFOLOG?=	${LIBFIFOLOGDIR}/libfifolog${PIE_SUFFIX}.a
64229a8bda7SBaptiste Daroussin
643bc4b1a17SBrooks DavisLIBBSNMPTOOLSDIR=	${_LIB_OBJTOP}/usr.sbin/bsnmpd/tools/libbsnmptools
644bcf99d2dSEd MasteLIBBSNMPTOOLS?=	${LIBBSNMPTOOLSDIR}/libbsnmptools${PIE_SUFFIX}.a
64529a8bda7SBaptiste Daroussin
646bcf99d2dSEd MasteLIBBE?=		${LIBBEDIR}/libbe${PIE_SUFFIX}.a
64728f16a0fSKyle Evans
648*05427f46SKyle EvansLIBPKGECCDIR=	${_LIB_OBJTOP}/secure/lib/libpkgecc
649*05427f46SKyle EvansLIBPKGECC?=	${LIBPKGECCDIR}/libpkgecc${PIE_SUFFIX}.a
650*05427f46SKyle Evans
651bc4b1a17SBrooks DavisLIBPMCSTATDIR=	${_LIB_OBJTOP}/lib/libpmcstat
652bcf99d2dSEd MasteLIBPMCSTAT?=	${LIBPMCSTATDIR}/libpmcstat${PIE_SUFFIX}.a
653d27927f7SRuslan Bukin
65425ecdc7dSCy SchubertLIBWPAAPDIR=	${_LIB_OBJTOP}/usr.sbin/wpa/src/ap
65525ecdc7dSCy SchubertLIBWPAAP?=	${LIBWPAAPDIR}/libwpaap${PIE_SUFFIX}.a
65625ecdc7dSCy Schubert
65725ecdc7dSCy SchubertLIBWPACOMMONDIR=	${_LIB_OBJTOP}/usr.sbin/wpa/src/common
65825ecdc7dSCy SchubertLIBWPACOMMON?=	${LIBWPACOMMONDIR}/libwpacommon${PIE_SUFFIX}.a
65925ecdc7dSCy Schubert
66025ecdc7dSCy SchubertLIBWPACRYPTODIR=	${_LIB_OBJTOP}/usr.sbin/wpa/src/crypto
66125ecdc7dSCy SchubertLIBWPACRYPTO?=	${LIBWPACRYPTODIR}/libwpacrypto${PIE_SUFFIX}.a
66225ecdc7dSCy Schubert
66325ecdc7dSCy SchubertLIBWPADRIVERSDIR=	${_LIB_OBJTOP}/usr.sbin/wpa/src/drivers
66425ecdc7dSCy SchubertLIBWPADRIVERS?=	${LIBWPADRIVERSDIR}/libwpadrivers${PIE_SUFFIX}.a
66525ecdc7dSCy Schubert
66625ecdc7dSCy SchubertLIBWPAEAP_COMMONDIR=	${_LIB_OBJTOP}/usr.sbin/wpa/src/eap_common
66725ecdc7dSCy SchubertLIBWPAEAP_COMMON?=	${LIBWPAEAP_COMMONDIR}/libwpaeap_common${PIE_SUFFIX}.a
66825ecdc7dSCy Schubert
66925ecdc7dSCy SchubertLIBWPAEAP_PEERDIR=	${_LIB_OBJTOP}/usr.sbin/wpa/src/eap_peer
67025ecdc7dSCy SchubertLIBWPAEAP_PEER?=	${LIBWPAEAP_PEERDIR}/libwpaeap_peer${PIE_SUFFIX}.a
67125ecdc7dSCy Schubert
67225ecdc7dSCy SchubertLIBWPAEAP_SERVERDIR=	${_LIB_OBJTOP}/usr.sbin/wpa/src/eap_server
67325ecdc7dSCy SchubertLIBWPAEAP_SERVER?=	${LIBWPAEAP_SERVERDIR}/libwpaeap_server${PIE_SUFFIX}.a
67425ecdc7dSCy Schubert
67525ecdc7dSCy SchubertLIBWPAEAPOL_AUTHDIR=	${_LIB_OBJTOP}/usr.sbin/wpa/src/eapol_auth
67625ecdc7dSCy SchubertLIBWPAEAPOL_AUTH?=	${LIBWPAEAPOL_AUTHDIR}/libwpaeapol_auth${PIE_SUFFIX}.a
67725ecdc7dSCy Schubert
67825ecdc7dSCy SchubertLIBWPAEAPOL_SUPPDIR=	${_LIB_OBJTOP}/usr.sbin/wpa/src/eapol_supp
67925ecdc7dSCy SchubertLIBWPAEAPOL_SUPP?=	${LIBWPAEAPOL_SUPPDIR}/libwpaeapol_supp${PIE_SUFFIX}.a
68025ecdc7dSCy Schubert
68125ecdc7dSCy SchubertLIBWPAL2_PACKETDIR=	${_LIB_OBJTOP}/usr.sbin/wpa/src/l2_packet
68225ecdc7dSCy SchubertLIBWPAL2_PACKET?=	${LIBWPAL2_PACKETDIR}/libwpal2_packet${PIE_SUFFIX}.a
68325ecdc7dSCy Schubert
684a90b9d01SCy SchubertLIBWPAPASNDIR=		${_LIB_OBJTOP}/usr.sbin/wpa/src/pasn
685a90b9d01SCy SchubertLIBWPAPASN?=		${LIBWPAPASNDIR}/libwpapasn${PIE_SUFFIX}.a
686a90b9d01SCy Schubert
68725ecdc7dSCy SchubertLIBWPARADIUSDIR=	${_LIB_OBJTOP}/usr.sbin/wpa/src/radius
68825ecdc7dSCy SchubertLIBWPARADIUS?=	${LIBWPARADIUSDIR}/libwparadius${PIE_SUFFIX}.a
68925ecdc7dSCy Schubert
69025ecdc7dSCy SchubertLIBWPARSN_SUPPDIR=	${_LIB_OBJTOP}/usr.sbin/wpa/src/rsn_supp
69125ecdc7dSCy SchubertLIBWPARSN_SUPP?=	${LIBWPARSN_SUPPDIR}/libwparsn_supp${PIE_SUFFIX}.a
69225ecdc7dSCy Schubert
69325ecdc7dSCy SchubertLIBWPATLSDIR=	${_LIB_OBJTOP}/usr.sbin/wpa/src/tls
69425ecdc7dSCy SchubertLIBWPATLS?=	${LIBWPATLSDIR}/libwpatls${PIE_SUFFIX}.a
69525ecdc7dSCy Schubert
69625ecdc7dSCy SchubertLIBWPAUTILSDIR=	${_LIB_OBJTOP}/usr.sbin/wpa/src/utils
69725ecdc7dSCy SchubertLIBWPAUTILS?=	${LIBWPAUTILSDIR}/libwpautils${PIE_SUFFIX}.a
69825ecdc7dSCy Schubert
69925ecdc7dSCy SchubertLIBWPAWPSDIR=	${_LIB_OBJTOP}/usr.sbin/wpa/src/wps
70025ecdc7dSCy SchubertLIBWPAWPS?=	${LIBWPAWPSDIR}/libwpawps${PIE_SUFFIX}.a
70125ecdc7dSCy Schubert
702bc4b1a17SBrooks DavisLIBC_NOSSP_PICDIR=	${_LIB_OBJTOP}/lib/libc
703db08bfceSKonstantin BelousovLIBC_NOSSP_PIC?=	${LIBC_NOSSP_PICDIR}/libc_nossp_pic.a
704db08bfceSKonstantin Belousov
705ebf076dfSBryan Drewery# Define a directory for each library.  This is useful for adding -L in when
706ebf076dfSBryan Drewery# not using a --sysroot or for meta mode bootstrapping when there is no
707ebf076dfSBryan Drewery# Makefile.depend.  These are sorted by directory.
7080c8ff61eSBrooks DavisLIBAVLDIR=	${_LIB_OBJTOP}/cddl/lib/libavl
7090c8ff61eSBrooks DavisLIBCTFDIR=	${_LIB_OBJTOP}/cddl/lib/libctf
7100c8ff61eSBrooks DavisLIBDTRACEDIR=	${_LIB_OBJTOP}/cddl/lib/libdtrace
7110c8ff61eSBrooks DavisLIBICPDIR=	${_LIB_OBJTOP}/cddl/lib/libicp
7124f79bd4aSKonstantin BelousovLIBICP?=	${LIBICPDIR}/libicp${PIE_SUFFIX}.a
7130c8ff61eSBrooks DavisLIBICP_RESCUEDIR=	${_LIB_OBJTOP}/cddl/lib/libicp_rescue
7144f79bd4aSKonstantin BelousovLIBICP_RESCUE?=	${LIBICP_RESCUEDIR}/libicp_rescue${PIE_SUFFIX}.a
7150c8ff61eSBrooks DavisLIBNVPAIRDIR=	${_LIB_OBJTOP}/cddl/lib/libnvpair
7164f79bd4aSKonstantin BelousovLIBNVPAIR?=	${LIBNVPAIRDIR}/libnvpair${PIE_SUFFIX}.a
7170c8ff61eSBrooks DavisLIBUMEMDIR=	${_LIB_OBJTOP}/cddl/lib/libumem
7180c8ff61eSBrooks DavisLIBUUTILDIR=	${_LIB_OBJTOP}/cddl/lib/libuutil
719a4e5e010SMartin MatuskaLIBZDBDIR=	${_LIB_OBJTOP}/cddl/lib/libzdb
720a4e5e010SMartin MatuskaLIBZDB?=	${LIBZDBDIR}/libzdb${PIE_SUFFIX}.a
7210c8ff61eSBrooks DavisLIBZFSDIR=	${_LIB_OBJTOP}/cddl/lib/libzfs
7224f79bd4aSKonstantin BelousovLIBZFS?=	${LIBZFSDIR}/libzfs${PIE_SUFFIX}.a
7230c8ff61eSBrooks DavisLIBZFS_COREDIR=	${_LIB_OBJTOP}/cddl/lib/libzfs_core
7244f79bd4aSKonstantin BelousovLIBZFS_CORE?=	${LIBZFS_COREDIR}/libzfs_core${PIE_SUFFIX}.a
7250c8ff61eSBrooks DavisLIBZFSBOOTENVDIR=	${_LIB_OBJTOP}/cddl/lib/libzfsbootenv
7264f79bd4aSKonstantin BelousovLIBZFSBOOTENV?=	${LIBZFSBOOTENVDIR}/libzfsbootenv${PIE_SUFFIX}.a
7270c8ff61eSBrooks DavisLIBZPOOLDIR=	${_LIB_OBJTOP}/cddl/lib/libzpool
7284f79bd4aSKonstantin BelousovLIBZPOOL?=	${LIBZPOOLDIR}/libzpool${PIE_SUFFIX}.a
7290c8ff61eSBrooks DavisLIBZUTILDIR=	${_LIB_OBJTOP}/cddl/lib/libzutil
7304f79bd4aSKonstantin BelousovLIBZUTIL?=	${LIBZUTILDIR}/libzutil${PIE_SUFFIX}.a
7310c8ff61eSBrooks DavisLIBTPOOLDIR=	${_LIB_OBJTOP}/cddl/lib/libtpool
732e110d077SHans Petter Selasky
733e110d077SHans Petter Selasky# OFED support
7340c8ff61eSBrooks DavisLIBCXGB4DIR=	${_LIB_OBJTOP}/lib/ofed/libcxgb4
7350c8ff61eSBrooks DavisLIBIBCMDIR=	${_LIB_OBJTOP}/lib/ofed/libibcm
7360c8ff61eSBrooks DavisLIBIBMADDIR=	${_LIB_OBJTOP}/lib/ofed/libibmad
7370c8ff61eSBrooks DavisLIBIBNETDISCDIR=${_LIB_OBJTOP}/lib/ofed/libibnetdisc
7380c8ff61eSBrooks DavisLIBIBUMADDIR=	${_LIB_OBJTOP}/lib/ofed/libibumad
7390c8ff61eSBrooks DavisLIBIBVERBSDIR=	${_LIB_OBJTOP}/lib/ofed/libibverbs
7400c8ff61eSBrooks DavisLIBIRDMADIR=	${_LIB_OBJTOP}/lib/ofed/libirdma
7410c8ff61eSBrooks DavisLIBMLX4DIR=	${_LIB_OBJTOP}/lib/ofed/libmlx4
7420c8ff61eSBrooks DavisLIBMLX5DIR=	${_LIB_OBJTOP}/lib/ofed/libmlx5
7430c8ff61eSBrooks DavisLIBRDMACMDIR=	${_LIB_OBJTOP}/lib/ofed/librdmacm
7440c8ff61eSBrooks DavisLIBOSMCOMPDIR=	${_LIB_OBJTOP}/lib/ofed/complib
7450c8ff61eSBrooks DavisLIBOPENSMDIR=	${_LIB_OBJTOP}/lib/ofed/libopensm
7460c8ff61eSBrooks DavisLIBOSMVENDORDIR=${_LIB_OBJTOP}/lib/ofed/libvendor
747e110d077SHans Petter Selasky
7480c8ff61eSBrooks DavisLIBDIALOGDIR=	${_LIB_OBJTOP}/gnu/lib/libdialog
7490c8ff61eSBrooks DavisLIBSSPDIR=	${_LIB_OBJTOP}/lib/libssp
7500c8ff61eSBrooks DavisLIBSSP_NONSHAREDDIR=	${_LIB_OBJTOP}/lib/libssp_nonshared
7510c8ff61eSBrooks DavisLIBASN1DIR=	${_LIB_OBJTOP}/kerberos5/lib/libasn1
7520c8ff61eSBrooks DavisLIBGSSAPI_KRB5DIR=	${_LIB_OBJTOP}/kerberos5/lib/libgssapi_krb5
7530c8ff61eSBrooks DavisLIBGSSAPI_NTLMDIR=	${_LIB_OBJTOP}/kerberos5/lib/libgssapi_ntlm
7540c8ff61eSBrooks DavisLIBGSSAPI_SPNEGODIR=	${_LIB_OBJTOP}/kerberos5/lib/libgssapi_spnego
7550c8ff61eSBrooks DavisLIBHDBDIR=	${_LIB_OBJTOP}/kerberos5/lib/libhdb
7560c8ff61eSBrooks DavisLIBHEIMBASEDIR=	${_LIB_OBJTOP}/kerberos5/lib/libheimbase
7570c8ff61eSBrooks DavisLIBHEIMIPCCDIR=	${_LIB_OBJTOP}/kerberos5/lib/libheimipcc
7580c8ff61eSBrooks DavisLIBHEIMIPCSDIR=	${_LIB_OBJTOP}/kerberos5/lib/libheimipcs
7590c8ff61eSBrooks DavisLIBHEIMNTLMDIR=	${_LIB_OBJTOP}/kerberos5/lib/libheimntlm
7600c8ff61eSBrooks DavisLIBHX509DIR=	${_LIB_OBJTOP}/kerberos5/lib/libhx509
7610c8ff61eSBrooks DavisLIBKADM5CLNTDIR=	${_LIB_OBJTOP}/kerberos5/lib/libkadm5clnt
7620c8ff61eSBrooks DavisLIBKADM5SRVDIR=	${_LIB_OBJTOP}/kerberos5/lib/libkadm5srv
7630c8ff61eSBrooks DavisLIBKAFS5DIR=	${_LIB_OBJTOP}/kerberos5/lib/libkafs5
7640c8ff61eSBrooks DavisLIBKDCDIR=	${_LIB_OBJTOP}/kerberos5/lib/libkdc
7650c8ff61eSBrooks DavisLIBKRB5DIR=	${_LIB_OBJTOP}/kerberos5/lib/libkrb5
7660c8ff61eSBrooks DavisLIBROKENDIR=	${_LIB_OBJTOP}/kerberos5/lib/libroken
7670c8ff61eSBrooks DavisLIBWINDDIR=	${_LIB_OBJTOP}/kerberos5/lib/libwind
7680c8ff61eSBrooks DavisLIBATF_CDIR=	${_LIB_OBJTOP}/lib/atf/libatf-c
7690c8ff61eSBrooks DavisLIBATF_CXXDIR=	${_LIB_OBJTOP}/lib/atf/libatf-c++
7700c8ff61eSBrooks DavisLIBGMOCKDIR=	${_LIB_OBJTOP}/lib/googletest/gmock
7710c8ff61eSBrooks DavisLIBGMOCK_MAINDIR=	${_LIB_OBJTOP}/lib/googletest/gmock_main
7720c8ff61eSBrooks DavisLIBGTESTDIR=	${_LIB_OBJTOP}/lib/googletest/gtest
7730c8ff61eSBrooks DavisLIBGTEST_MAINDIR=	${_LIB_OBJTOP}/lib/googletest/gtest_main
7740c8ff61eSBrooks DavisLIBALIASDIR=	${_LIB_OBJTOP}/lib/libalias/libalias
7750c8ff61eSBrooks DavisLIBBLACKLISTDIR=	${_LIB_OBJTOP}/lib/libblacklist
7760c8ff61eSBrooks DavisLIBBLOCKSRUNTIMEDIR=	${_LIB_OBJTOP}/lib/libblocksruntime
7770c8ff61eSBrooks DavisLIBBSNMPDIR=	${_LIB_OBJTOP}/lib/libbsnmp/libbsnmp
7780c8ff61eSBrooks DavisLIBCASPERDIR=	${_LIB_OBJTOP}/lib/libcasper/libcasper
7790c8ff61eSBrooks DavisLIBCAP_DNSDIR=	${_LIB_OBJTOP}/lib/libcasper/services/cap_dns
7800c8ff61eSBrooks DavisLIBCAP_GRPDIR=	${_LIB_OBJTOP}/lib/libcasper/services/cap_grp
7810c8ff61eSBrooks DavisLIBCAP_NETDIR=	${_LIB_OBJTOP}/lib/libcasper/services/cap_net
7820c8ff61eSBrooks DavisLIBCAP_PWDDIR=	${_LIB_OBJTOP}/lib/libcasper/services/cap_pwd
7830c8ff61eSBrooks DavisLIBCAP_SYSCTLDIR=	${_LIB_OBJTOP}/lib/libcasper/services/cap_sysctl
7840c8ff61eSBrooks DavisLIBCAP_SYSLOGDIR=	${_LIB_OBJTOP}/lib/libcasper/services/cap_syslog
7850c8ff61eSBrooks DavisLIBCBORDIR=	${_LIB_OBJTOP}/lib/libcbor
7860c8ff61eSBrooks DavisLIBBSDXMLDIR=	${_LIB_OBJTOP}/lib/libexpat
7870c8ff61eSBrooks DavisLIBFIDO2DIR=	${_LIB_OBJTOP}/lib/libfido2
7880c8ff61eSBrooks DavisLIBKVMDIR=	${_LIB_OBJTOP}/lib/libkvm
7890c8ff61eSBrooks DavisLIBPTHREADDIR=	${_LIB_OBJTOP}/lib/libthr
7900c8ff61eSBrooks DavisLIBMDIR=	${_LIB_OBJTOP}/lib/msun
7910c8ff61eSBrooks DavisLIBFORMWDIR=	${_LIB_OBJTOP}/lib/ncurses/form
7920c8ff61eSBrooks DavisLIBMENUWDIR=	${_LIB_OBJTOP}/lib/ncurses/menu
7930c8ff61eSBrooks DavisLIBNCURSESWDIR=	${_LIB_OBJTOP}/lib/ncurses/ncurses
7940c8ff61eSBrooks DavisLIBTINFOWDIR=	${_LIB_OBJTOP}/lib/ncurses/tinfo
7950c8ff61eSBrooks DavisLIBPANELWDIR=	${_LIB_OBJTOP}/lib/ncurses/panel
7960c8ff61eSBrooks DavisLIBCRYPTODIR=	${_LIB_OBJTOP}/secure/lib/libcrypto
7970c8ff61eSBrooks DavisLIBSPLDIR=	${_LIB_OBJTOP}/cddl/lib/libspl
7980c8ff61eSBrooks DavisLIBSSHDIR=	${_LIB_OBJTOP}/secure/lib/libssh
7990c8ff61eSBrooks DavisLIBSSLDIR=	${_LIB_OBJTOP}/secure/lib/libssl
8000c8ff61eSBrooks DavisLIBTEKENDIR=	${_LIB_OBJTOP}/sys/teken/libteken
8010c8ff61eSBrooks DavisLIBEGACYDIR=	${_LIB_OBJTOP}/tools/build
8020c8ff61eSBrooks DavisLIBLNDIR=	${_LIB_OBJTOP}/usr.bin/lex/lib
803ebf076dfSBryan Drewery
804396851c2SBaptiste DaroussinLIBTERMCAPWDIR=	${LIBTINFOWDIR}
8055e99f843SBryan Drewery
806073ccb9dSSimon J. Gerraty.-include <site.src.libnames.mk>
807073ccb9dSSimon J. Gerraty
808ebf076dfSBryan Drewery# Default other library directories to lib/libNAME.
809ebf076dfSBryan Drewery.for lib in ${_LIBRARIES}
81011ffa20fSBryan DreweryLIB${lib:tu}DIR?=	${OBJTOP}/lib/lib${lib}
811ebf076dfSBryan Drewery.endfor
812ebf076dfSBryan Drewery
8132fd6394dSBryan Drewery# Validate that listed LIBADD are valid.
8142fd6394dSBryan Drewery.for _l in ${LIBADD}
8152fd6394dSBryan Drewery.if empty(_LIBRARIES:M${_l})
8162fd6394dSBryan Drewery_BADLIBADD+= ${_l}
8172fd6394dSBryan Drewery.endif
8182fd6394dSBryan Drewery.endfor
8192fd6394dSBryan Drewery.if !empty(_BADLIBADD)
8202fd6394dSBryan Drewery.error ${.CURDIR}: Invalid LIBADD used which may need to be added to ${_this:T}: ${_BADLIBADD}
8212fd6394dSBryan Drewery.endif
8222fd6394dSBryan Drewery
8235afa1972SBryan Drewery# Sanity check that libraries are defined here properly when building them.
8245afa1972SBryan Drewery.if defined(LIB) && ${_LIBRARIES:M${LIB}} != ""
8255afa1972SBryan Drewery.if !empty(LIBADD) && \
8265afa1972SBryan Drewery    (!defined(_DP_${LIB}) || ${LIBADD:O:u} != ${_DP_${LIB}:O:u})
8275afa1972SBryan Drewery.error ${.CURDIR}: Missing or incorrect _DP_${LIB} entry in ${_this:T}.  Should match LIBADD for ${LIB} ('${LIBADD}' vs '${_DP_${LIB}}')
8285afa1972SBryan Drewery.endif
829382cab60SBryan Drewery# Note that OBJTOP is not yet defined here but for the purpose of the check
830382cab60SBryan Drewery# it is fine as it resolves to the SRC directory.
8315afa1972SBryan Drewery.if !defined(LIB${LIB:tu}DIR) || !exists(${SRCTOP}/${LIB${LIB:tu}DIR:S,^${OBJTOP}/,,})
8325afa1972SBryan Drewery.error ${.CURDIR}: Missing or incorrect value for LIB${LIB:tu}DIR in ${_this:T}: ${LIB${LIB:tu}DIR:S,^${OBJTOP}/,,}
8335afa1972SBryan Drewery.endif
8345afa1972SBryan Drewery.if ${_INTERNALLIBS:M${LIB}} != "" && !defined(LIB${LIB:tu})
8355afa1972SBryan Drewery.error ${.CURDIR}: Missing value for LIB${LIB:tu} in ${_this:T}.  Likely should be: LIB${LIB:tu}?= $${LIB${LIB:tu}DIR}/lib${LIB}.a
8365afa1972SBryan Drewery.endif
8375afa1972SBryan Drewery.endif
8385afa1972SBryan Drewery
8394aa63711SBryan Drewery.endif	# !target(__<src.libnames.mk>__)
840