xref: /freebsd/share/mk/src.libnames.mk (revision d0bd1251350a0564fb20f0044f061f1c6b6079c2)
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		amu \
28		bsnmptools \
29		cron \
30		elftc \
31		event \
32		fifolog \
33		ipf \
34		lpr \
35		mandoc \
36		netbsd \
37		ntp \
38		ohash \
39		opts \
40		parse \
41		readline \
42		sl \
43		sm \
44		smdb \
45		smutil \
46		telnet \
47		vers
48
49_LIBRARIES=	\
50		${_PRIVATELIBS} \
51		${_INTERNALIBS} \
52		alias \
53		archive \
54		asn1 \
55		auditd \
56		begemot \
57		bluetooth \
58		bsdxml \
59		bsm \
60		bsnmp \
61		bz2 \
62		c \
63		c_pic \
64		calendar \
65		cam \
66		capsicum \
67		casper \
68		com_err \
69		compiler_rt \
70		crypt \
71		crypto \
72		ctf \
73		cuse \
74		cxxrt \
75		devinfo \
76		devstat \
77		dialog \
78		dpv \
79		dwarf \
80		edit \
81		elf \
82		execinfo \
83		fetch \
84		figpar \
85		geom \
86		gnuregex \
87		gpio \
88		gssapi \
89		gssapi_krb5 \
90		hdb \
91		heimbase \
92		heimntlm \
93		heimsqlite \
94		hx509 \
95		ipsec \
96		jail \
97		kadm5clnt \
98		kadm5srv \
99		kafs5 \
100		kdc \
101		kiconv \
102		krb5 \
103		kvm \
104		l \
105		lzma \
106		m \
107		magic \
108		mandoc \
109		md \
110		memstat \
111		mp \
112		nandfs \
113		ncursesw \
114		netgraph \
115		ngatm \
116		nv \
117		opie \
118		pam \
119		pcap \
120		pcsclite \
121		pjdlog \
122		pmc \
123		proc \
124		procstat \
125		pthread \
126		radius \
127		readline \
128		roken \
129		rpcsec_gss \
130		rpcsvc \
131		rt \
132		sbuf \
133		sdp \
134		sm \
135		smb \
136		ssl \
137		ssp_nonshared \
138		stdthreads \
139		supcplusplus \
140		tacplus \
141		termcapw \
142		ufs \
143		ugidfw \
144		ulog \
145		usb \
146		usbhid \
147		util \
148		vmmapi \
149		wind \
150		wrap \
151		xo \
152		y \
153		ypclnt \
154		z
155
156_DP_archive=	z bz2 lzma bsdxml
157.if ${MK_OPENSSL} != "no"
158_DP_archive+=	crypto
159.else
160_DP_archive+=	md
161.endif
162_DP_ssl=	crypto
163_DP_ssh=	crypto crypt
164.if ${MK_LDNS} != "no"
165_DP_ssh+=	ldns z
166.endif
167_DP_edit=	ncursesw
168.if ${MK_OPENSSL} != "no"
169_DP_bsnmp=	crypto
170.endif
171_DP_grom=	bsdxml sbuf
172_DP_cam=	sbuf
173_DP_casper=	capsicum nv pjdlog
174_DP_capsicum=	nv
175_DP_pjdlog=	util
176_DP_opie=	md
177_DP_usb=	pthread
178_DP_unbound=	pthread
179_DP_rt=	pthread
180.if ${MK_OPENSSL} == "no"
181_DP_radius=	md
182.else
183_DP_radius=	crypto
184.endif
185_DP_procstat=	kvm util elf
186.if ${MK_CXX} == "yes"
187.if ${MK_LIBCPLUSPLUS} != "no"
188_DP_proc=	cxxrt
189.else
190_DP_proc=	supcplusplus
191.endif
192.endif
193.if ${MK_CDDL} != "no"
194_DP_proc+=	ctf
195.endif
196_DP_mp=	crypto
197_DP_memstat=	kvm
198_DP_magic=	z
199_DP_ldns=	crypto
200.if ${MK_OPENSSL} != "no"
201_DP_fetch=	ssl crypto
202.else
203_DP_fetch=	md
204.endif
205_DP_execinfo=	elf
206_DP_dwarf=	elf
207_DP_dpv=	dialog figpar util
208_DP_dialog=	ncursesw m
209_DP_cuse=	pthread
210_DP_atf_cxx=	atf_c
211_DP_devstat=	kvm
212_DP_pam=	radius tacplus opie md util
213.if ${MK_KERBEROS} != "no"
214_DP_pam+=	krb5
215.endif
216.if ${MK_OPENSSH} != "no"
217_DP_pam+=	ssh
218.endif
219.if ${MK_NIS} != "no"
220_DP_pam+=	ypclnt
221.endif
222_DP_krb5+=	asn1 com_err crypt crypto hx509 roken wind heimbase heimipcc \
223		pthread
224_DP_gssapi_krb5+=	gssapi krb5 crypto roken asn1 com_err
225_DP_ucl=	m
226
227# Define spacial cases
228LDADD_supcplusplus=	-lsupc++
229LDADD_atf_c=	-L${LIBATF_CDIR} -latf-c
230LDADD_atf_cxx=	-L${LIBATF_CXXDIR} -latf-c++
231
232.for _l in ${_LIBRARIES}
233.if ${_PRIVATELIBS:M${_l}}
234LDADD_${_l}_L+=		-L${LIB${_l:tu}DIR}
235.endif
236.if ${_INTERNALIBS:M${_l}}
237LDADD_${_l}_L+=		-L${LIB${_l:tu}DIR}
238.endif
239DPADD_${_l}?=	${LIB${_l:tu}}
240LDADD_${_l}?=	${LDADD_${_l}_L} -l${_l}
241.if defined(_DP_${_l}) && defined(NO_SHARED)
242.for _d in ${_DP_${_l}}
243DPADD_${_l}+=	${DPADD_${_d}}
244LDADD_${_l}+=	${LDADD_${_d}}
245.endfor
246.endif
247.endfor
248
249DPADD_sqlite3+=	${DPADD_pthread}
250LDADD_sqlite3+=	${LDADD_pthread}
251
252DPADD_atf_cxx+=	${DPADD_atf_c}
253LDADD_atf_cxx+=	${LDADD_atf_c}
254
255DPADD_ipf+=	${DPADD_kvm}
256LDADD_ipf+=	${LDADD_kvm}
257
258# The following depends on libraries which are using pthread
259DPADD_hdb+=	${DPADD_pthread}
260LDADD_hdb+=	${LDADD_pthread}
261DPADD_kadm5srv+=	${DPADD_pthread}
262LDADD_kadm5srv+=	${LDADD_pthread}
263DPADD_krb5+=	${DPADD_pthread}
264LDADD_krb5+=	${LDADD_pthread}
265DPADD_gssapi_krb5+=	${DPADD_pthread}
266LDADD_gssapi_krb5+=	${LDADD_pthread}
267
268.for _l in ${LIBADD}
269.if ${_PRIVATELIBS:M${_l}}
270USEPRIVATELIB+=	${_l}
271.endif
272DPADD+=		${DPADD_${_l}}
273LDADD+=		${LDADD_${_l}}
274.endfor
275
276.if defined(USEPRIVATELIB)
277LDFLAGS+=	-rpath ${LIBPRIVATEDIR}
278.endif
279
280LIBATF_CDIR=	${ROOTOBJDIR}/lib/atf/libatf-c
281LDATF_C?=	${LIBATF_CDIR}/libatf-c.so
282LIBATF_C?=	${LIBATF_CDIR}/libatf-c.a
283
284LIBATF_CXXDIR=	${ROOTOBJDIR}/lib/atf/libatf-c++
285LDATF_CXX?=	${LIBATF_CXXDIR}/libatf-c++.so
286LIBATF_CXX?=	${LIBATF_CXXDIR}/libatf-c++.a
287
288LIBBSDSTATDIR=	${ROOTOBJDIR}/lib/libbsdstat
289LIBBSDSTAT?=	${LIBBSDSTATDIR}/libbsdstat.a
290
291LIBELFTCDIR=	${ROOTOBJDIR}/lib/libelftc
292LDELFTC?=	${LIBELFTCDIR}/libelftc.a
293LIBELFTC?=	${LIBELFTCDIR}/libelftc.a
294
295LIBEVENTDIR=	${ROOTOBJDIR}/lib/libevent
296LIBEVENT?=	${LIBEVENTDIR}/libevent.a
297
298LIBHEIMIPCCDIR=	${ROOTOBJDIR}/kerberos5/lib/libheimipcc
299LIBHEIMIPCC?=	${LIBHEIMIPCCDIR}/libheimipcc.a
300
301LIBHEIMIPCSDIR=	${ROOTOBJDIR}/kerberos5/lib/libheimipcs
302LIBHEIMIPCS?=	${LIBHEIMIPCSDIR}/libheimipcs.a
303
304LIBLDNSDIR=	${ROOTOBJDIR}/lib/libldns
305LIBLDNS?=	${LIBLDNSDIR}/libldns.a
306
307LIBSSHDIR=	${ROOTOBJDIR}/secure/lib/libssh
308LIBSSH?=	${LIBSSHDIR}/libssh.a
309
310LIBUNBOUNDDIR=	${ROOTOBJDIR}/lib/libunbound
311LIBUNBOUND?=	${LIBUNBOUNDDIR}/libunbound.a
312
313LIBUCLDIR=	${ROOTOBJDIR}/lib/libucl
314LIBUCL?=	${LIBUCLDIR}/libucl.a
315
316LIBREADLINEDIR=	${ROOTOBJDIR}/gnu/lib/libreadline/readline
317LIBREADLINE?=	${LIBREADLINEDIR}/libreadline.a
318
319LIBOHASHDIR=	${ROOTOBJDIR}/lib/libohash
320LIBOHASH?=	${LIBOHASHDIR}/libohash.a
321
322LIBSQLITE3DIR=	${ROOTOBJDIR}/lib/libsqlite3
323LIBSQLITE3?=	${LIBSQLITE3DIR}/libsqlite3.a
324
325LIBMANDOCDIR=	${ROOTOBJDIR}/lib/libmandoc
326LIBMANDOC?=	${LIBMANDOCDIR}/libmandoc.a
327
328LIBSMDIR=	${ROOTOBJDIR}/lib/libsm
329LIBSM?=		${LIBSMDIR}/libsm.a
330
331LIBSMDBDIR=	${ROOTOBJDIR}/lib/libsmdb
332LIBSMDB?=	${LIBSMDBDIR}/libsmdb.a
333
334LIBSMUTILDIR=	${ROOTOBJDIR}/lib/libsmutil
335LIBSMUTIL?=	${LIBSMDBDIR}/libsmutil.a
336
337LIBNETBSDDIR?=	${ROOTOBJDIR}/lib/libnetbsd
338LIBNETBSD?=	${LIBNETBSDDIR}/libnetbsd.a
339
340LIBVERSDIR?=	${ROOTOBJDIR}/kerberos5/lib/libvers
341LIBVERS?=	${LIBVERSDIR}/libvers.a
342
343LIBSLDIR=	${ROOTOBJDIR}/kerberos5/lib/libsl
344LIBSL?=		${LIBSLDIR}/libsl.a
345
346LIBIPFDIR=	${ROOTOBJDIR}/sbin/ipf/libipf
347LIBIPF?=	${LIBIPFDIR}/libipf.a
348
349LIBTELNETDIR=	${ROOTOBJDIR}/lib/libtelnet
350LIBTELNET?=	${LIBIPFDIR}/libtelnet.a
351
352LIBCRONDIR=	${ROOTOBJDIR}/usr.sbin/cron/lib
353LIBCRON?=	${LIBCRONDIR}/libcron.a
354
355LIBNTPDIR=	${ROOTOBJDIR}/usr.sbin/ntp/libntp
356LIBNTP?=	${LIBNTPDIR}/libntp.a
357
358LIBOPTSDIR=	${ROOTOBJDIR}/usr.sbin/ntp/libopts
359LIBOTPS?=	${LIBOPTSDIR}/libopts.a
360
361LIBPARSEDIR=	${ROOTOBJDIR}/usr.sbin/ntp/libparse
362LIBPARSE?=	${LIBOPTSDIR}/libparse.a
363
364LIBLPRDIR=	${ROOTOBJDIR}/usr.sbin/lpr/common_source
365LIBLPR?=	${LIBOPTSDIR}/liblpr.a
366
367LIBFIFOLOGDIR=	${ROOTOBJDIR}/usr.sbin/fifolog/lib
368LIBFIFOLOG?=	${LIBOPTSDIR}/libfifolog.a
369
370LIBBSNMPTOOLSDIR=	${ROOTOBJDIR}/usr.sbin/bsnmpd/tools/libbsnmptools
371LIBBSNMPTOOLS?=	${LIBBSNMPTOOLSDIR}/libbsnmptools.a
372
373LIBAMUDIR=	${ROOTOBJDIR}/usr.sbin/amd/libamu
374LIBAMU?=	${LIBAMUDIR}/libamu/libamu.a
375
376