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