xref: /freebsd/share/mk/src.libnames.mk (revision 3e11bd9e2a2b1cbd4283c87c93e3cc75e3f2dacb)
1# $FreeBSD$
2#
3# The include file <src.libnames.mk> define library names suitable
4# for INTERNALLIB and PRIVATELIB definition
5
6.if !target(__<bsd.init.mk>__)
7.error src.libnames.mk cannot be included directly.
8.endif
9
10.include <src.opts.mk>
11
12ROOTSRCDIR=	${.MAKE.MAKEFILES:M*/src.libnames.mk:H:H:H}
13ROOTOBJDIR=	${.OBJDIR:S/${.CURDIR}//}${ROOTSRCDIR}
14_PRIVATELIBS=	\
15		atf_c \
16		atf_cxx \
17		bsdstat \
18		heimipcc \
19		heimipcs \
20		ldns \
21		sqlite3 \
22		ssh \
23		ucl \
24		unbound
25
26_INTERNALIBS=	\
27		event \
28		ipf \
29		mandoc \
30		netbsd \
31		ohash \
32		readline \
33		sl \
34		sm \
35		smdb \
36		smutil \
37		telnet \
38		vers
39
40_LIBRARIES=	\
41		${_PRIVATELIBS} \
42		${_INTERNALIBS} \
43		alias \
44		archive \
45		asn1 \
46		begemot \
47		bluetooth \
48		bsdxml \
49		bsnmp \
50		bsm \
51		bz2 \
52		calendar \
53		cam \
54		capsicum \
55		casper \
56		com_err \
57		compiler_rt \
58		crypt \
59		crypto \
60		ctf \
61		cuse \
62		cxxrt \
63		devstat \
64		dialog \
65		dpv \
66		dwarf \
67		edit \
68		elf \
69		execinfo \
70		fetch \
71		figpar \
72		geom \
73		gnuregex \
74		gssapi \
75		hdb \
76		heimbase \
77		heimntlm \
78		heimsqlite \
79		hx509 \
80		ipsec \
81		jail \
82		kadm5clnt \
83		kadm5srv \
84		kafs5 \
85		kdc \
86		kiconv \
87		krb5 \
88		kvm \
89		krb5 \
90		l \
91		lzma \
92		m \
93		magic \
94		mandoc \
95		md \
96		memstat \
97		mp \
98		nandfs \
99		netgraph \
100		ngatm \
101		ncursesw \
102		nv \
103		opie \
104		pam \
105		pcap \
106		pjdlog \
107		proc \
108		procstat \
109		pthread \
110		radius \
111		readline \
112		roken \
113		rpcsec_gss \
114		rpcsvc \
115		rt \
116		sbuf \
117		sdp \
118		sm \
119		smb \
120		ssl \
121		stdthreads \
122		supcplusplus \
123		ssp_nonshared \
124		tacplus \
125		termcapw \
126		ufs \
127		ulog \
128		usb \
129		usbhid \
130		util \
131		wind \
132		wrap \
133		xo \
134		y \
135		ypclnt \
136		z
137
138_DP_archive=	z bz2 lzma bsdxml
139.if ${MK_OPENSSL} != "no"
140_DP_archive+=	crypto
141.else
142_DP_archive+=	md
143.endif
144_DP_ssl=	crypto
145_DP_ssh=	crypto crypt
146_DP_edit=	ncursesw
147.if ${MK_OPENSSL} != "no"
148_DP_bsnmp=	crypto
149.endif
150_DP_grom=	bsdxml sbuf
151_DP_cam=	sbuf
152_DP_casper=	capsicum nv pjdlog
153_DP_capsicum=	nv
154_DP_pjdlog=	util
155_DP_opie=	md
156_DP_usb=	pthread
157_DP_unbound=	pthread
158_DP_rt=	pthread
159.if ${MK_OPENSSL} == "no"
160_DP_radius=	md
161.else
162_DP_radius=	crypto
163.endif
164_DP_procstat=	kvm util elf
165.if ${MK_CXX} == "yes"
166.if ${MK_LIBCPLUSPLUS} != "no"
167_DP_proc=	cxxrt
168.else
169_DP_proc=	supcplusplus
170.endif
171.endif
172.if ${MK_CDDL} != "no"
173_DP_proc+=	ctf
174.endif
175_DP_mp=	crypto
176_DP_memstat=	kvm
177_DP_magic=	z
178_DP_ldns=	crypto
179.if ${MK_OPENSSL} != "no"
180_DP_fetch=	ssl crypto
181.else
182_DP_fetch=	md
183.endif
184_DP_execinfo=	elf
185_DP_dwarf=	elf
186_DP_dpv=	dialog figpar util
187_DP_dialog=	ncursesw m
188_DP_cuse=	pthread
189_DP_atf_cxx=	atf_c
190_DP_devstat=	kvm
191_DP_pam=	radius tacplus opie md util
192.if ${MK_KERBEROS} != "no"
193_DP_pam+=	krb5
194.endif
195.if ${MK_OPENSSH} != "no"
196_DP_pam+=	ssh
197.endif
198.if ${MK_NIS} != "no"
199_DP_pam+=	ypclnt
200.endif
201_DP_krb5+=	asn1 com_err crypt crypto hx509 roken wind heimbase heimipcc
202
203# Define spacial cases
204LDADD_supcplusplus=	-lsupc++
205LDADD_atf_c=	-L${LIBATF_CDIR} -latf-c
206LDADD_atf_cxx=	-L${LIBATF_CXXDIR} -latf-c++
207
208.for _l in ${_LIBRARIES}
209.if ${_PRIVATELIBS:M${_l}}
210LDADD_${_l}_L+=		-L${LIB${_l:tu}DIR}
211.endif
212.if ${_INTERNALIBS:M${_l}}
213LDADD_${_l}_L+=		-L${LIB${_l:tu}DIR}
214.endif
215DPADD_${_l}?=	${LIB${_l:tu}}
216LDADD_${_l}?=	${LDADD_${_l}_L} -l${_l}
217.if defined(_DP_${_l}) && defined(NO_SHARED)
218.for _d in ${_DP_${_l}}
219DPADD_${_l}+=	${DPADD_${_d}}
220LDADD_${_l}+=	${LDADD_${_d}}
221.endfor
222.endif
223.endfor
224
225# ucl needs and exposes libm
226DPADD_ucl+=	${DPADD_m}
227LDADD_ucl+=	${LDADD_m}
228
229DPADD_sqlite3+=	${DPADD_pthread}
230LDADD_sqlite3+=	${LDADD_pthread}
231
232DPADD_atf_cxx+=	${DPADD_atf_c}
233LDADD_atf_cxx+=	${LDADD_atf_c}
234
235DPADD_ipf+=	${DPADD_kvm}
236LDADD_ipf+=	${LDADD_kvm}
237
238# The following depends on libraries which are using pthread
239DPADD_hdb+=	${DPADD_pthread}
240LDADD_hdb+=	${LDADD_pthread}
241DPADD_kadm5srv+=	${DPADD_pthread}
242LDADD_kadm5srv+=	${LDADD_pthread}
243
244.for _l in ${LIBADD}
245.if ${_PRIVATELIBS:M${_l}}
246USEPRIVATELIB+=	${_l}
247.endif
248DPADD+=		${DPADD_${_l}}
249LDADD+=		${LDADD_${_l}}
250.endfor
251
252.if defined(USEPRIVATELIB)
253LDFLAGS+=	-rpath ${LIBPRIVATEDIR}
254.endif
255
256LIBATF_CDIR=	${ROOTOBJDIR}/lib/atf/libatf-c
257LDATF_C?=	${LIBATF_CDIR}/libatf-c.so
258LIBATF_C?=	${LIBATF_CDIR}/libatf-c.a
259
260LIBATF_CXXDIR=	${ROOTOBJDIR}/lib/atf/libatf-c++
261LDATF_CXX?=	${LIBATF_CXXDIR}/libatf-c++.so
262LIBATF_CXX?=	${LIBATF_CXXDIR}/libatf-c++.a
263
264LIBBSDSTATDIR=	${ROOTOBJDIR}/lib/libbsdstat
265LDBSDSTAT?=	${LIBBSDSTATDIR}/libbsdstat.so
266LIBBSDSTAT?=	${LIBBSDSTATDIR}/libbsdstat.a
267
268LIBEVENTDIR=	${ROOTOBJDIR}/lib/libevent
269LDEVENT?=	${LIBEVENTDIR}/libevent.a
270LIBEVENT?=	${LIBEVENTDIR}/libevent.a
271
272LIBHEIMIPCCDIR=	${ROOTOBJDIR}/kerberos5/lib/libheimipcc
273LDHEIMIPCC?=	${LIBHEIMIPCCDIR}/libheimipcc.so
274LIBHEIMIPCC?=	${LIBHEIMIPCCDIR}/libheimipcc.a
275
276LIBHEIMIPCSDIR=	${ROOTOBJDIR}/kerberos5/lib/libheimipcs
277LDHEIMIPCS?=	${LIBHEIMIPCSDIR}/libheimipcs.so
278LIBHEIMIPCS?=	${LIBHEIMIPCSDIR}/libheimipcs.a
279
280LIBLDNSDIR=	${ROOTOBJDIR}/lib/libldns
281LDLDNS?=	${LIBLDNSDIR}/libldns.so
282LIBLDNS?=	${LIBLDNSDIR}/libldns.a
283
284LIBSSHDIR=	${ROOTOBJDIR}/secure/lib/libssh
285LDSSH?=		${LIBSSHDIR}/libssh.so
286LIBSSH?=	${LIBSSHDIR}/libssh.a
287
288LIBUNBOUNDDIR=	${ROOTOBJDIR}/lib/libunbound
289LDUNBOUND?=	${LIBUNBOUNDDIR}/libunbound.so
290LIBUNBOUND?=	${LIBUNBOUNDDIR}/libunbound.a
291
292LIBUCLDIR=	${ROOTOBJDIR}/lib/libucl
293LDUCL?=		${LIBUCLDIR}/libucl.so
294LIBUCL?=	${LIBUCLDIR}/libucl.a
295
296LIBREADLINEDIR=	${ROOTOBJDIR}/gnu/lib/libreadline/readline
297LDREADLINE?=	${LIBREADLINEDIR}/libreadline.a
298LIBREADLINE?=	${LIBREADLINEDIR}/libreadline.a
299
300LIBOHASHDIR=	${ROOTOBJDIR}/lib/libohash
301LDOHASH?=	${LIBOHASHDIR}/libohash.a
302LIBOHASH?=	${LIBOHASHDIR}/libohash.a
303
304LIBSQLITE3DIR=	${ROOTOBJDIR}/lib/libsqlite3
305LDSQLITE3?=	${LIBSQLITE3DIR}/libsqlite3.so
306LIBSQLITE3?=	${LIBSQLITE3DIR}/libsqlite3.a
307
308LIBMANDOCDIR=	${ROOTOBJDIR}/lib/libmandoc
309LIBMANDOC?=	${LIBMANDOCDIR}/libmandoc.a
310
311LIBSMDIR=	${ROOTOBJDIR}/lib/libsm
312LDSM?=		${LIBSMDIR}/libsm.a
313LIBSM?=		${LIBSMDIR}/libsm.a
314
315LIBSMDBDIR=	${ROOTOBJDIR}/lib/libsmdb
316LIBSMDB?=	${LIBSMDBDIR}/libsmdb.a
317
318LIBSMUTILDIR=	${ROOTOBJDIR}/lib/libsmutil
319LIBSMUTIL?=	${LIBSMDBDIR}/libsmutil.a
320
321LIBNETBSDDIR?=	${ROOTOBJDIR}/lib/libnetbsd
322LIBNETBSD?=	${LIBNETBSDDIR}/libnetbsd.a
323
324LIBVERSDIR?=	${ROOTOBJDIR}/kerberos5/lib/libvers
325LIBVERS?=	${LIBVERSDIR}/libvers.a
326
327LIBSLDIR=	${ROOTOBJDIR}/kerberos5/lib/libsl
328LIBSL?=		${LIBSLDIR}/libsl.a
329
330LIBIPFDIR=	${ROOTOBJDIR}/sbin/ipf/libipf
331LIBIPF?=	${LIBIPFDIR}/libipf.a
332
333LIBTELNETDIR=	${ROOTOBJDIR}/lib/libtelnet
334LIBTELNET?=	${LIBIPFDIR}/libtelnet.a
335