xref: /freebsd/share/mk/src.libnames.mk (revision 3c89d6b0e37f4c8fd151aa06bc7af33d74fb54b6)
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		${LOCAL_LIBRARIES} \
54		80211 \
55		alias \
56		archive \
57		asn1 \
58		auditd \
59		avl \
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		panel \
127		panelw \
128		pcap \
129		pcsclite \
130		pjdlog \
131		pmc \
132		proc \
133		procstat \
134		pthread \
135		radius \
136		readline \
137		roken \
138		rpcsec_gss \
139		rpcsvc \
140		rt \
141		rtld_db \
142		sbuf \
143		sdp \
144		sm \
145		smb \
146		ssl \
147		ssp_nonshared \
148		stdthreads \
149		supcplusplus \
150		tacplus \
151		termcapw \
152		ufs \
153		ugidfw \
154		ulog \
155		usb \
156		usbhid \
157		util \
158		vmmapi \
159		wind \
160		wrap \
161		xo \
162		y \
163		ypclnt \
164		z
165
166_DP_80211=	sbuf bsdxml
167_DP_archive=	z bz2 lzma bsdxml
168.if ${MK_OPENSSL} != "no"
169_DP_archive+=	crypto
170.else
171_DP_archive+=	md
172.endif
173_DP_ssl=	crypto
174_DP_ssh=	crypto crypt
175.if ${MK_LDNS} != "no"
176_DP_ssh+=	ldns z
177.endif
178_DP_edit=	ncursesw
179.if ${MK_OPENSSL} != "no"
180_DP_bsnmp=	crypto
181.endif
182_DP_geom=	bsdxml sbuf
183_DP_cam=	sbuf
184_DP_casper=	capsicum nv pjdlog
185_DP_capsicum=	nv
186_DP_kvm=	elf
187_DP_pjdlog=	util
188_DP_opie=	md
189_DP_usb=	pthread
190_DP_unbound=	pthread
191_DP_rt=	pthread
192.if ${MK_OPENSSL} == "no"
193_DP_radius=	md
194.else
195_DP_radius=	crypto
196.endif
197_DP_procstat=	kvm util elf
198.if ${MK_CXX} == "yes"
199.if ${MK_LIBCPLUSPLUS} != "no"
200_DP_proc=	cxxrt
201.else
202_DP_proc=	supcplusplus
203.endif
204.endif
205.if ${MK_CDDL} != "no"
206_DP_proc+=	ctf
207.endif
208_DP_mp=	crypto
209_DP_memstat=	kvm
210_DP_magic=	z
211_DP_mt=		bsdxml
212_DP_ldns=	crypto
213.if ${MK_OPENSSL} != "no"
214_DP_fetch=	ssl crypto
215.else
216_DP_fetch=	md
217.endif
218_DP_execinfo=	elf
219_DP_dwarf=	elf
220_DP_dpv=	dialog figpar util
221_DP_dialog=	ncursesw m
222_DP_cuse=	pthread
223_DP_atf_cxx=	atf_c
224_DP_devstat=	kvm
225_DP_pam=	radius tacplus opie md util
226.if ${MK_KERBEROS} != "no"
227_DP_pam+=	krb5
228.endif
229.if ${MK_OPENSSH} != "no"
230_DP_pam+=	ssh
231.endif
232.if ${MK_NIS} != "no"
233_DP_pam+=	ypclnt
234.endif
235_DP_krb5+=	asn1 com_err crypt crypto hx509 roken wind heimbase heimipcc \
236		pthread
237_DP_gssapi_krb5+=	gssapi krb5 crypto roken asn1 com_err
238_DP_lzma=	pthread
239_DP_ucl=	m
240_DP_vmmapi=	util
241_DP_ctf=	z
242_DP_proc=	rtld_db util
243_DP_dtrace=	rtld_db pthread
244_DP_xo=		util
245
246# Define spacial cases
247LDADD_supcplusplus=	-lsupc++
248LIBATF_C=	${DESTDIR}${LIBDIR}/libprivateatf-c.a
249LIBATF_CXX=	${DESTDIR}${LIBDIR}/libprivateatf-c++.a
250LDADD_atf_c=	-lprivateatf-c
251LDADD_atf_cxx=	-lprivateatf-c++
252
253.for _l in ${_PRIVATELIBS}
254LIB${_l:tu}?=	${DESTDIR}${LIBDIR}/libprivate${_l}.a
255.endfor
256
257.for _l in ${_LIBRARIES}
258.if ${_INTERNALLIBS:M${_l}}
259LDADD_${_l}_L+=		-L${LIB${_l:tu}DIR}
260.endif
261DPADD_${_l}?=	${LIB${_l:tu}}
262.if ${_PRIVATELIBS:M${_l}}
263LDADD_${_l}?=	-lprivate${_l}
264.else
265LDADD_${_l}?=	${LDADD_${_l}_L} -l${_l}
266.endif
267.if defined(_DP_${_l}) && defined(NO_SHARED) && (${NO_SHARED} != "no" && ${NO_SHARED} != "NO")
268.for _d in ${_DP_${_l}}
269DPADD_${_l}+=	${DPADD_${_d}}
270LDADD_${_l}+=	${LDADD_${_d}}
271.endfor
272.endif
273.endfor
274
275DPADD_atf_cxx+=	${DPADD_atf_c}
276LDADD_atf_cxx+=	${LDADD_atf_c}
277
278DPADD_sqlite3+=	${DPADD_pthread}
279LDADD_sqlite3+=	${LDADD_pthread}
280
281DPADD_fifolog+=	${DPADD_z}
282LDADD_fifolog+=	${LDADD_z}
283
284DPADD_ipf+=	${DPADD_kvm}
285LDADD_ipf+=	${LDADD_kvm}
286
287DPADD_mt+=	${DPADD_sbuf}
288LDADD_mt+=	${LDADD_sbuf}
289
290DPADD_dtrace+=	${DPADD_ctf} ${DPADD_elf} ${DPADD_proc}
291LDADD_dtrace+=	${LDADD_ctf} ${LDADD_elf} ${LDADD_proc}
292
293# The following depends on libraries which are using pthread
294DPADD_hdb+=	${DPADD_pthread}
295LDADD_hdb+=	${LDADD_pthread}
296DPADD_kadm5srv+=	${DPADD_pthread}
297LDADD_kadm5srv+=	${LDADD_pthread}
298DPADD_krb5+=	${DPADD_pthread}
299LDADD_krb5+=	${LDADD_pthread}
300DPADD_gssapi_krb5+=	${DPADD_pthread}
301LDADD_gssapi_krb5+=	${LDADD_pthread}
302
303.for _l in ${LIBADD}
304DPADD+=		${DPADD_${_l}:Umissing-dpadd_${_l}}
305LDADD+=		${LDADD_${_l}}
306.endfor
307
308.if defined(DPADD) && ${DPADD:Mmissing-dpadd_*}
309.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}".
310.endif
311
312LIBELFTCDIR=	${OBJTOP}/lib/libelftc
313LIBELFTC?=	${LIBELFTCDIR}/libelftc.a
314
315LIBREADLINEDIR=	${OBJTOP}/gnu/lib/libreadline/readline
316LIBREADLINE?=	${LIBREADLINEDIR}/libreadline.a
317
318LIBOPENBSDDIR=	${OBJTOP}/lib/libopenbsd
319LIBOPENBSD?=	${LIBOPENBSDDIR}/libopenbsd.a
320
321LIBSMDIR=	${OBJTOP}/lib/libsm
322LIBSM?=		${LIBSMDIR}/libsm.a
323
324LIBSMDBDIR=	${OBJTOP}/lib/libsmdb
325LIBSMDB?=	${LIBSMDBDIR}/libsmdb.a
326
327LIBSMUTILDIR=	${OBJTOP}/lib/libsmutil
328LIBSMUTIL?=	${LIBSMDBDIR}/libsmutil.a
329
330LIBNETBSDDIR?=	${OBJTOP}/lib/libnetbsd
331LIBNETBSD?=	${LIBNETBSDDIR}/libnetbsd.a
332
333LIBVERSDIR?=	${OBJTOP}/kerberos5/lib/libvers
334LIBVERS?=	${LIBVERSDIR}/libvers.a
335
336LIBSLDIR=	${OBJTOP}/kerberos5/lib/libsl
337LIBSL?=		${LIBSLDIR}/libsl.a
338
339LIBIPFDIR=	${OBJTOP}/sbin/ipf/libipf
340LIBIPF?=	${LIBIPFDIR}/libipf.a
341
342LIBTELNETDIR=	${OBJTOP}/lib/libtelnet
343LIBTELNET?=	${LIBTELNETDIR}/libtelnet.a
344
345LIBCRONDIR=	${OBJTOP}/usr.sbin/cron/lib
346LIBCRON?=	${LIBCRONDIR}/libcron.a
347
348LIBNTPDIR=	${OBJTOP}/usr.sbin/ntp/libntp
349LIBNTP?=	${LIBNTPDIR}/libntp.a
350
351LIBNTPEVENTDIR=	${OBJTOP}/usr.sbin/ntp/libntpevent
352LIBNTPEVENT?=	${LIBNTPEVENTDIR}/libntpevent.a
353
354LIBOPTSDIR=	${OBJTOP}/usr.sbin/ntp/libopts
355LIBOTPS?=	${LIBOPTSDIR}/libopts.a
356
357LIBPARSEDIR=	${OBJTOP}/usr.sbin/ntp/libparse
358LIBPARSE?=	${LIBPARSEDIR}/libparse.a
359
360LIBLPRDIR=	${OBJTOP}/usr.sbin/lpr/common_source
361LIBLPR?=	${LIBOPTSDIR}/liblpr.a
362
363LIBFIFOLOGDIR=	${OBJTOP}/usr.sbin/fifolog/lib
364LIBFIFOLOG?=	${LIBOPTSDIR}/libfifolog.a
365
366LIBBSNMPTOOLSDIR=	${OBJTOP}/usr.sbin/bsnmpd/tools/libbsnmptools
367LIBBSNMPTOOLS?=	${LIBBSNMPTOOLSDIR}/libbsnmptools.a
368
369LIBAMUDIR=	${OBJTOP}/usr.sbin/amd/libamu
370LIBAMU?=	${LIBAMUDIR}/libamu/libamu.a
371
372# Define a directory for each library.  This is useful for adding -L in when
373# not using a --sysroot or for meta mode bootstrapping when there is no
374# Makefile.depend.  These are sorted by directory.
375LIBAVLDIR=	${OBJTOP}/cddl/lib/libavl
376LIBCTFDIR=	${OBJTOP}/cddl/lib/libctf
377LIBDTRACEDIR=	${OBJTOP}/cddl/lib/libdtrace
378LIBNVPAIRDIR=	${OBJTOP}/cddl/lib/libnvpair
379LIBUMEMDIR=	${OBJTOP}/cddl/lib/libumem
380LIBUUTILDIR=	${OBJTOP}/cddl/lib/libuutil
381LIBZFSDIR=	${OBJTOP}/cddl/lib/libzfs
382LIBZFS_COREDIR=	${OBJTOP}/cddl/lib/libzfs_core
383LIBZPOOLDIR=	${OBJTOP}/cddl/lib/libzpool
384LIBDIALOGDIR=	${OBJTOP}/gnu/lib/libdialog
385LIBGCOVDIR=	${OBJTOP}/gnu/lib/libgcov
386LIBGOMPDIR=	${OBJTOP}/gnu/lib/libgomp
387LIBGNUREGEXDIR=	${OBJTOP}/gnu/lib/libregex
388LIBSSPDIR=	${OBJTOP}/gnu/lib/libssp
389LIBSSP_NONSHAREDDIR=	${OBJTOP}/gnu/lib/libssp/libssp_nonshared
390LIBSUPCPLUSPLUSDIR=	${OBJTOP}/gnu/lib/libsupc++
391LIBASN1DIR=	${OBJTOP}/kerberos5/lib/libasn1
392LIBGSSAPI_KRB5DIR=	${OBJTOP}/kerberos5/lib/libgssapi_krb5
393LIBGSSAPI_NTLMDIR=	${OBJTOP}/kerberos5/lib/libgssapi_ntlm
394LIBGSSAPI_SPNEGODIR=	${OBJTOP}/kerberos5/lib/libgssapi_spnego
395LIBHDBDIR=	${OBJTOP}/kerberos5/lib/libhdb
396LIBHEIMBASEDIR=	${OBJTOP}/kerberos5/lib/libheimbase
397LIBHEIMIPCCDIR=	${OBJTOP}/kerberos5/lib/libheimipcc
398LIBHEIMIPCSDIR=	${OBJTOP}/kerberos5/lib/libheimipcs
399LIBHEIMNTLMDIR=	${OBJTOP}/kerberos5/lib/libheimntlm
400LIBHX509DIR=	${OBJTOP}/kerberos5/lib/libhx509
401LIBKADM5CLNTDIR=	${OBJTOP}/kerberos5/lib/libkadm5clnt
402LIBKADM5SRVDIR=	${OBJTOP}/kerberos5/lib/libkadm5srv
403LIBKAFS5DIR=	${OBJTOP}/kerberos5/lib/libkafs5
404LIBKDCDIR=	${OBJTOP}/kerberos5/lib/libkdc
405LIBKRB5DIR=	${OBJTOP}/kerberos5/lib/libkrb5
406LIBROKENDIR=	${OBJTOP}/kerberos5/lib/libroken
407LIBWINDDIR=	${OBJTOP}/kerberos5/lib/libwind
408LIBALIASDIR=	${OBJTOP}/lib/libalias/libalias
409LIBBLOCKSRUNTIMEDIR=	${OBJTOP}/lib/libblocksruntime
410LIBBSNMPDIR=	${OBJTOP}/lib/libbsnmp/libbsnmp
411LIBBSDXMLDIR=	${OBJTOP}/lib/libexpat
412LIBKVMDIR=	${OBJTOP}/lib/libkvm
413LIBPTHREADDIR=	${OBJTOP}/lib/libthr
414LIBMDIR=	${OBJTOP}/lib/msun
415LIBFORMDIR=	${OBJTOP}/lib/ncurses/form
416LIBFORMLIBWDIR=	${OBJTOP}/lib/ncurses/formw
417LIBMENUDIR=	${OBJTOP}/lib/ncurses/menu
418LIBMENULIBWDIR=	${OBJTOP}/lib/ncurses/menuw
419LIBTERMCAPDIR=	${OBJTOP}/lib/ncurses/ncurses
420LIBTERMCAPWDIR=	${OBJTOP}/lib/ncurses/ncursesw
421LIBPANELDIR=	${OBJTOP}/lib/ncurses/panel
422LIBPANELWDIR=	${OBJTOP}/lib/ncurses/panelw
423LIBCRYPTODIR=	${OBJTOP}/secure/lib/libcrypto
424LIBSSHDIR=	${OBJTOP}/secure/lib/libssh
425LIBSSLDIR=	${OBJTOP}/secure/lib/libssl
426LIBTEKENDIR=	${OBJTOP}/sys/teken/libteken
427LIBEGACYDIR=	${OBJTOP}/tools/build
428LIBLNDIR=	${OBJTOP}/usr.bin/lex/lib
429
430# Default other library directories to lib/libNAME.
431.for lib in ${_LIBRARIES}
432LIB${lib:tu}DIR?=	${OBJTOP}/lib/lib${lib}
433.endfor
434
435.endif	# !target(__<src.libnames.mk>__)
436