xref: /freebsd/share/mk/src.libnames.mk (revision b1f92fa22938fe29ab7e53692ffe0ed7a0ecc4d0)
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.if !target(__<src.libnames.mk>__)
11__<src.libnames.mk>__:
12
13.include <src.opts.mk>
14
15_PRIVATELIBS=	\
16		atf_c \
17		atf_cxx \
18		bsdstat \
19		event \
20		heimipcc \
21		heimipcs \
22		ldns \
23		sqlite3 \
24		ssh \
25		ucl \
26		unbound
27
28_INTERNALLIBS=	\
29		amu \
30		bsnmptools \
31		cron \
32		elftc \
33		fifolog \
34		ipf \
35		lpr \
36		netbsd \
37		ntp \
38		ntpevent \
39		openbsd \
40		opts \
41		parse \
42		readline \
43		sl \
44		sm \
45		smdb \
46		smutil \
47		telnet \
48		vers
49
50_LIBRARIES=	\
51		${_PRIVATELIBS} \
52		${_INTERNALLIBS} \
53		80211 \
54		alias \
55		archive \
56		asn1 \
57		auditd \
58		avl \
59		begemot \
60		bluetooth \
61		bsdxml \
62		bsm \
63		bsnmp \
64		bz2 \
65		c \
66		c_pic \
67		calendar \
68		cam \
69		capsicum \
70		casper \
71		com_err \
72		compiler_rt \
73		crypt \
74		crypto \
75		ctf \
76		cuse \
77		cxxrt \
78		devctl \
79		devinfo \
80		devstat \
81		dialog \
82		dpv \
83		dtrace \
84		dwarf \
85		edit \
86		elf \
87		execinfo \
88		fetch \
89		figpar \
90		geom \
91		gnuregex \
92		gpio \
93		gssapi \
94		gssapi_krb5 \
95		hdb \
96		heimbase \
97		heimntlm \
98		heimsqlite \
99		hx509 \
100		ipsec \
101		jail \
102		kadm5clnt \
103		kadm5srv \
104		kafs5 \
105		kdc \
106		kiconv \
107		krb5 \
108		kvm \
109		l \
110		lzma \
111		m \
112		magic \
113		md \
114		memstat \
115		mp \
116		mt \
117		nandfs \
118		ncurses \
119		ncursesw \
120		netgraph \
121		ngatm \
122		nv \
123		opie \
124		pam \
125		panel \
126		panelw \
127		pcap \
128		pcsclite \
129		pjdlog \
130		pmc \
131		proc \
132		procstat \
133		pthread \
134		radius \
135		readline \
136		roken \
137		rpcsec_gss \
138		rpcsvc \
139		rt \
140		rtld_db \
141		sbuf \
142		sdp \
143		sm \
144		smb \
145		ssl \
146		ssp_nonshared \
147		stdthreads \
148		supcplusplus \
149		tacplus \
150		termcapw \
151		ufs \
152		ugidfw \
153		ulog \
154		usb \
155		usbhid \
156		util \
157		vmmapi \
158		wind \
159		wrap \
160		xo \
161		y \
162		ypclnt \
163		z
164
165_DP_archive=	z bz2 lzma bsdxml
166.if ${MK_OPENSSL} != "no"
167_DP_archive+=	crypto
168.else
169_DP_archive+=	md
170.endif
171_DP_ssl=	crypto
172_DP_ssh=	crypto crypt
173.if ${MK_LDNS} != "no"
174_DP_ssh+=	ldns z
175.endif
176_DP_edit=	ncursesw
177.if ${MK_OPENSSL} != "no"
178_DP_bsnmp=	crypto
179.endif
180_DP_geom=	bsdxml sbuf
181_DP_cam=	sbuf
182_DP_casper=	capsicum nv pjdlog
183_DP_capsicum=	nv
184_DP_kvm=	elf
185_DP_pjdlog=	util
186_DP_opie=	md
187_DP_usb=	pthread
188_DP_unbound=	pthread
189_DP_rt=	pthread
190.if ${MK_OPENSSL} == "no"
191_DP_radius=	md
192.else
193_DP_radius=	crypto
194.endif
195_DP_procstat=	kvm util elf
196.if ${MK_CXX} == "yes"
197.if ${MK_LIBCPLUSPLUS} != "no"
198_DP_proc=	cxxrt
199.else
200_DP_proc=	supcplusplus
201.endif
202.endif
203.if ${MK_CDDL} != "no"
204_DP_proc+=	ctf
205.endif
206_DP_mp=	crypto
207_DP_memstat=	kvm
208_DP_magic=	z
209_DP_mt=		bsdxml
210_DP_ldns=	crypto
211.if ${MK_OPENSSL} != "no"
212_DP_fetch=	ssl crypto
213.else
214_DP_fetch=	md
215.endif
216_DP_execinfo=	elf
217_DP_dwarf=	elf
218_DP_dpv=	dialog figpar util
219_DP_dialog=	ncursesw m
220_DP_cuse=	pthread
221_DP_atf_cxx=	atf_c
222_DP_devstat=	kvm
223_DP_pam=	radius tacplus opie md util
224.if ${MK_KERBEROS} != "no"
225_DP_pam+=	krb5
226.endif
227.if ${MK_OPENSSH} != "no"
228_DP_pam+=	ssh
229.endif
230.if ${MK_NIS} != "no"
231_DP_pam+=	ypclnt
232.endif
233_DP_krb5+=	asn1 com_err crypt crypto hx509 roken wind heimbase heimipcc \
234		pthread
235_DP_gssapi_krb5+=	gssapi krb5 crypto roken asn1 com_err
236_DP_lzma=	pthread
237_DP_ucl=	m
238_DP_vmmapi=	util
239_DP_ctf=	z
240_DP_proc=	rtld_db util
241_DP_dtrace=	rtld_db pthread
242_DP_xo=		util
243
244# Define spacial cases
245LDADD_supcplusplus=	-lsupc++
246LIBATF_C=	${DESTDIR}${LIBDIR}/libprivateatf-c.a
247LIBATF_CXX=	${DESTDIR}${LIBDIR}/libprivateatf-c++.a
248LDADD_atf_c=	-lprivateatf-c
249LDADD_atf_cxx=	-lprivateatf-c++
250
251.for _l in ${_PRIVATELIBS}
252LIB${_l:tu}?=	${DESTDIR}${LIBDIR}/libprivate${_l}.a
253.endfor
254
255.for _l in ${_LIBRARIES}
256.if ${_INTERNALLIBS:M${_l}}
257LDADD_${_l}_L+=		-L${LIB${_l:tu}DIR}
258.endif
259DPADD_${_l}?=	${LIB${_l:tu}}
260.if ${_PRIVATELIBS:M${_l}}
261LDADD_${_l}?=	-lprivate${_l}
262.else
263LDADD_${_l}?=	${LDADD_${_l}_L} -l${_l}
264.endif
265.if defined(_DP_${_l}) && defined(NO_SHARED) && (${NO_SHARED} != "no" && ${NO_SHARED} != "NO")
266.for _d in ${_DP_${_l}}
267DPADD_${_l}+=	${DPADD_${_d}}
268LDADD_${_l}+=	${LDADD_${_d}}
269.endfor
270.endif
271.endfor
272
273DPADD_atf_cxx+=	${DPADD_atf_c}
274LDADD_atf_cxx+=	${LDADD_atf_c}
275
276DPADD_sqlite3+=	${DPADD_pthread}
277LDADD_sqlite3+=	${LDADD_pthread}
278
279DPADD_fifolog+=	${DPADD_z}
280LDADD_fifolog+=	${LDADD_z}
281
282DPADD_ipf+=	${DPADD_kvm}
283LDADD_ipf+=	${LDADD_kvm}
284
285DPADD_mt+=	${DPADD_sbuf}
286LDADD_mt+=	${LDADD_sbuf}
287
288DPADD_dtrace+=	${DPADD_ctf} ${DPADD_elf} ${DPADD_proc}
289LDADD_dtrace+=	${LDADD_ctf} ${LDADD_elf} ${LDADD_proc}
290
291# The following depends on libraries which are using pthread
292DPADD_hdb+=	${DPADD_pthread}
293LDADD_hdb+=	${LDADD_pthread}
294DPADD_kadm5srv+=	${DPADD_pthread}
295LDADD_kadm5srv+=	${LDADD_pthread}
296DPADD_krb5+=	${DPADD_pthread}
297LDADD_krb5+=	${LDADD_pthread}
298DPADD_gssapi_krb5+=	${DPADD_pthread}
299LDADD_gssapi_krb5+=	${LDADD_pthread}
300
301.for _l in ${LIBADD}
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=	${OBJTOP}/lib/libelftc
311LIBELFTC?=	${LIBELFTCDIR}/libelftc.a
312
313LIBREADLINEDIR=	${OBJTOP}/gnu/lib/libreadline/readline
314LIBREADLINE?=	${LIBREADLINEDIR}/libreadline.a
315
316LIBOPENBSDDIR=	${OBJTOP}/lib/libopenbsd
317LIBOPENBSD?=	${LIBOPENBSDDIR}/libopenbsd.a
318
319LIBSMDIR=	${OBJTOP}/lib/libsm
320LIBSM?=		${LIBSMDIR}/libsm.a
321
322LIBSMDBDIR=	${OBJTOP}/lib/libsmdb
323LIBSMDB?=	${LIBSMDBDIR}/libsmdb.a
324
325LIBSMUTILDIR=	${OBJTOP}/lib/libsmutil
326LIBSMUTIL?=	${LIBSMDBDIR}/libsmutil.a
327
328LIBNETBSDDIR?=	${OBJTOP}/lib/libnetbsd
329LIBNETBSD?=	${LIBNETBSDDIR}/libnetbsd.a
330
331LIBVERSDIR?=	${OBJTOP}/kerberos5/lib/libvers
332LIBVERS?=	${LIBVERSDIR}/libvers.a
333
334LIBSLDIR=	${OBJTOP}/kerberos5/lib/libsl
335LIBSL?=		${LIBSLDIR}/libsl.a
336
337LIBIPFDIR=	${OBJTOP}/sbin/ipf/libipf
338LIBIPF?=	${LIBIPFDIR}/libipf.a
339
340LIBTELNETDIR=	${OBJTOP}/lib/libtelnet
341LIBTELNET?=	${LIBTELNETDIR}/libtelnet.a
342
343LIBCRONDIR=	${OBJTOP}/usr.sbin/cron/lib
344LIBCRON?=	${LIBCRONDIR}/libcron.a
345
346LIBNTPDIR=	${OBJTOP}/usr.sbin/ntp/libntp
347LIBNTP?=	${LIBNTPDIR}/libntp.a
348
349LIBNTPEVENTDIR=	${OBJTOP}/usr.sbin/ntp/libntpevent
350LIBNTPEVENT?=	${LIBNTPEVENTDIR}/libntpevent.a
351
352LIBOPTSDIR=	${OBJTOP}/usr.sbin/ntp/libopts
353LIBOTPS?=	${LIBOPTSDIR}/libopts.a
354
355LIBPARSEDIR=	${OBJTOP}/usr.sbin/ntp/libparse
356LIBPARSE?=	${LIBPARSEDIR}/libparse.a
357
358LIBLPRDIR=	${OBJTOP}/usr.sbin/lpr/common_source
359LIBLPR?=	${LIBOPTSDIR}/liblpr.a
360
361LIBFIFOLOGDIR=	${OBJTOP}/usr.sbin/fifolog/lib
362LIBFIFOLOG?=	${LIBOPTSDIR}/libfifolog.a
363
364LIBBSNMPTOOLSDIR=	${OBJTOP}/usr.sbin/bsnmpd/tools/libbsnmptools
365LIBBSNMPTOOLS?=	${LIBBSNMPTOOLSDIR}/libbsnmptools.a
366
367LIBAMUDIR=	${OBJTOP}/usr.sbin/amd/libamu
368LIBAMU?=	${LIBAMUDIR}/libamu/libamu.a
369
370# Define a directory for each library.  This is useful for adding -L in when
371# not using a --sysroot or for meta mode bootstrapping when there is no
372# Makefile.depend.  These are sorted by directory.
373LIBAVLDIR=	${OBJTOP}/cddl/lib/libavl
374LIBCTFDIR=	${OBJTOP}/cddl/lib/libctf
375LIBDTRACEDIR=	${OBJTOP}/cddl/lib/libdtrace
376LIBNVPAIRDIR=	${OBJTOP}/cddl/lib/libnvpair
377LIBUMEMDIR=	${OBJTOP}/cddl/lib/libumem
378LIBUUTILDIR=	${OBJTOP}/cddl/lib/libuutil
379LIBZFSDIR=	${OBJTOP}/cddl/lib/libzfs
380LIBZFS_COREDIR=	${OBJTOP}/cddl/lib/libzfs_core
381LIBZPOOLDIR=	${OBJTOP}/cddl/lib/libzpool
382LIBDIALOGDIR=	${OBJTOP}/gnu/lib/libdialog
383LIBGCOVDIR=	${OBJTOP}/gnu/lib/libgcov
384LIBGOMPDIR=	${OBJTOP}/gnu/lib/libgomp
385LIBGNUREGEXDIR=	${OBJTOP}/gnu/lib/libregex
386LIBSSPDIR=	${OBJTOP}/gnu/lib/libssp
387LIBSSP_NONSHAREDDIR=	${OBJTOP}/gnu/lib/libssp/libssp_nonshared
388LIBSUPCPLUSPLUSDIR=	${OBJTOP}/gnu/lib/libsupc++
389LIBASN1DIR=	${OBJTOP}/kerberos5/lib/libasn1
390LIBGSSAPI_KRB5DIR=	${OBJTOP}/kerberos5/lib/libgssapi_krb5
391LIBGSSAPI_NTLMDIR=	${OBJTOP}/kerberos5/lib/libgssapi_ntlm
392LIBGSSAPI_SPNEGODIR=	${OBJTOP}/kerberos5/lib/libgssapi_spnego
393LIBHDBDIR=	${OBJTOP}/kerberos5/lib/libhdb
394LIBHEIMBASEDIR=	${OBJTOP}/kerberos5/lib/libheimbase
395LIBHEIMIPCCDIR=	${OBJTOP}/kerberos5/lib/libheimipcc
396LIBHEIMIPCSDIR=	${OBJTOP}/kerberos5/lib/libheimipcs
397LIBHEIMNTLMDIR=	${OBJTOP}/kerberos5/lib/libheimntlm
398LIBHX509DIR=	${OBJTOP}/kerberos5/lib/libhx509
399LIBKADM5CLNTDIR=	${OBJTOP}/kerberos5/lib/libkadm5clnt
400LIBKADM5SRVDIR=	${OBJTOP}/kerberos5/lib/libkadm5srv
401LIBKAFS5DIR=	${OBJTOP}/kerberos5/lib/libkafs5
402LIBKDCDIR=	${OBJTOP}/kerberos5/lib/libkdc
403LIBKRB5DIR=	${OBJTOP}/kerberos5/lib/libkrb5
404LIBROKENDIR=	${OBJTOP}/kerberos5/lib/libroken
405LIBWINDDIR=	${OBJTOP}/kerberos5/lib/libwind
406LIBALIASDIR=	${OBJTOP}/lib/libalias/libalias
407LIBBLOCKSRUNTIMEDIR=	${OBJTOP}/lib/libblocksruntime
408LIBBSNMPDIR=	${OBJTOP}/lib/libbsnmp/libbsnmp
409LIBBSDXMLDIR=	${OBJTOP}/lib/libexpat
410LIBKVMDIR=	${OBJTOP}/lib/libkvm
411LIBPTHREADDIR=	${OBJTOP}/lib/libthr
412LIBMDIR=	${OBJTOP}/lib/msun
413LIBFORMDIR=	${OBJTOP}/lib/ncurses/form
414LIBFORMLIBWDIR=	${OBJTOP}/lib/ncurses/formw
415LIBMENUDIR=	${OBJTOP}/lib/ncurses/menu
416LIBMENULIBWDIR=	${OBJTOP}/lib/ncurses/menuw
417LIBTERMCAPDIR=	${OBJTOP}/lib/ncurses/ncurses
418LIBTERMCAPWDIR=	${OBJTOP}/lib/ncurses/ncursesw
419LIBPANELDIR=	${OBJTOP}/lib/ncurses/panel
420LIBPANELWDIR=	${OBJTOP}/lib/ncurses/panelw
421LIBCRYPTODIR=	${OBJTOP}/secure/lib/libcrypto
422LIBSSHDIR=	${OBJTOP}/secure/lib/libssh
423LIBSSLDIR=	${OBJTOP}/secure/lib/libssl
424LIBTEKENDIR=	${OBJTOP}/sys/teken/libteken
425LIBEGACYDIR=	${OBJTOP}/tools/build
426LIBLNDIR=	${OBJTOP}/usr.bin/lex/lib
427
428# Default other library directories to lib/libNAME.
429.for lib in ${_LIBRARIES}
430LIB${lib:tu}DIR?=	${OBJTOP}/lib/lib${lib}
431.endfor
432
433.endif	# !target(__<src.libnames.mk>__)
434