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