1
2# The include file <bsd.libnames.mk> define library names.
3# Other include files (e.g. bsd.prog.mk, bsd.lib.mk) include this
4# file where necessary.
5
6.if !target(__<bsd.init.mk>__)
7.error bsd.libnames.mk cannot be included directly.
8.endif
9
10LIBDESTDIR?=	${SYSROOT:U${DESTDIR}}
11
12.sinclude <src.libnames.mk>
13
14# Src directory locations are also defined in src.libnames.mk.
15
16LIBCRT0?=	${LIBDESTDIR}${LIBDIR_BASE}/crt0.o
17
18LIB80211?=	${LIBDESTDIR}${LIBDIR_BASE}/lib80211.a
19LIB9P?=		${LIBDESTDIR}${LIBDIR_BASE}/lib9p.a
20LIBALIAS?=	${LIBDESTDIR}${LIBDIR_BASE}/libalias.a
21LIBARCHIVE?=	${LIBDESTDIR}${LIBDIR_BASE}/libarchive.a
22LIBASN1?=	${LIBDESTDIR}${LIBDIR_BASE}/libasn1.a
23LIBATM?=	${LIBDESTDIR}${LIBDIR_BASE}/libatm.a
24LIBAUDITD?=	${LIBDESTDIR}${LIBDIR_BASE}/libauditd.a
25LIBAVL?=	${LIBDESTDIR}${LIBDIR_BASE}/libavl.a
26LIBBE?=		${LIBDESTDIR}${LIBDIR_BASE}/libbe.a
27LIBBEGEMOT?=	${LIBDESTDIR}${LIBDIR_BASE}/libbegemot.a
28LIBBLACKLIST?=	${LIBDESTDIR}${LIBDIR_BASE}/libblacklist.a
29LIBBLOCKSRUNTIME?= ${LIBDESTDIR}${LIBDIR_BASE}/libBlocksRuntime.a
30LIBBLUETOOTH?=	${LIBDESTDIR}${LIBDIR_BASE}/libbluetooth.a
31LIBBSDXML?=	${LIBDESTDIR}${LIBDIR_BASE}/libbsdxml.a
32LIBBSM?=	${LIBDESTDIR}${LIBDIR_BASE}/libbsm.a
33LIBBSNMP?=	${LIBDESTDIR}${LIBDIR_BASE}/libbsnmp.a
34LIBBZ2?=	${LIBDESTDIR}${LIBDIR_BASE}/libbz2.a
35LIBC?=		${LIBDESTDIR}${LIBDIR_BASE}/libc.a
36LIBCALENDAR?=	${LIBDESTDIR}${LIBDIR_BASE}/libcalendar.a
37LIBCAM?=	${LIBDESTDIR}${LIBDIR_BASE}/libcam.a
38LIBCOMPAT?=	${LIBDESTDIR}${LIBDIR_BASE}/libcompat.a
39LIBCOMPILER_RT?=${LIBDESTDIR}${LIBDIR_BASE}/libcompiler_rt.a
40LIBCOM_ERR?=	${LIBDESTDIR}${LIBDIR_BASE}/libcom_err.a
41LIBCPLUSPLUS?=	${LIBDESTDIR}${LIBDIR_BASE}/libc++.a
42LIBCRYPT?=	${LIBDESTDIR}${LIBDIR_BASE}/libcrypt.a
43LIBCRYPTO?=	${LIBDESTDIR}${LIBDIR_BASE}/libcrypto.a
44LIBCTF?=	${LIBDESTDIR}${LIBDIR_BASE}/libctf.a
45LIBCURSES?=	${LIBDESTDIR}${LIBDIR_BASE}/libcurses.a
46LIBCUSE?=	${LIBDESTDIR}${LIBDIR_BASE}/libcuse.a
47LIBCXGB4?=	${LIBDESTDIR}${LIBDIR_BASE}/libcxgb4.a
48LIBCXXRT?=	${LIBDESTDIR}${LIBDIR_BASE}/libcxxrt.a
49LIBC_PIC?=	${LIBDESTDIR}${LIBDIR_BASE}/libc_pic.a
50LIBDEVCTL?=	${LIBDESTDIR}${LIBDIR_BASE}/libdevctl.a
51LIBDEVDCTL?=	${LIBDESTDIR}${LIBDIR_BASE}/libdevdctl.a
52LIBDEVINFO?=	${LIBDESTDIR}${LIBDIR_BASE}/libdevinfo.a
53LIBDEVSTAT?=	${LIBDESTDIR}${LIBDIR_BASE}/libdevstat.a
54LIBDIALOG?=	${LIBDESTDIR}${LIBDIR_BASE}/libdialog.a
55LIBDL?=		${LIBDESTDIR}${LIBDIR_BASE}/libdl.a
56LIBDNS?=	${LIBDESTDIR}${LIBDIR_BASE}/libdns.a
57LIBDPV?=	${LIBDESTDIR}${LIBDIR_BASE}/libdpv.a
58LIBDTRACE?=	${LIBDESTDIR}${LIBDIR_BASE}/libdtrace.a
59LIBDWARF?=	${LIBDESTDIR}${LIBDIR_BASE}/libdwarf.a
60LIBEDIT?=	${LIBDESTDIR}${LIBDIR_BASE}/libedit.a
61LIBEFIVAR?=	${LIBDESTDIR}${LIBDIR_BASE}/libefivar.a
62LIBELF?=	${LIBDESTDIR}${LIBDIR_BASE}/libelf.a
63LIBEXECINFO?=	${LIBDESTDIR}${LIBDIR_BASE}/libexecinfo.a
64LIBFETCH?=	${LIBDESTDIR}${LIBDIR_BASE}/libfetch.a
65LIBFIGPAR?=	${LIBDESTDIR}${LIBDIR_BASE}/libfigpar.a
66LIBFL?=		"don't use LIBFL, use LIBL"
67LIBFORMW?=	${LIBDESTDIR}${LIBDIR_BASE}/libformw.a
68LIBG2C?=	${LIBDESTDIR}${LIBDIR_BASE}/libg2c.a
69LIBGEOM?=	${LIBDESTDIR}${LIBDIR_BASE}/libgeom.a
70LIBGPIO?=	${LIBDESTDIR}${LIBDIR_BASE}/libgpio.a
71LIBGSSAPI?=	${LIBDESTDIR}${LIBDIR_BASE}/libgssapi.a
72LIBGSSAPI_KRB5?= ${LIBDESTDIR}${LIBDIR_BASE}/libgssapi_krb5.a
73LIBHDB?=	${LIBDESTDIR}${LIBDIR_BASE}/libhdb.a
74LIBHEIMBASE?=	${LIBDESTDIR}${LIBDIR_BASE}/libheimbase.a
75LIBHEIMNTLM?=	${LIBDESTDIR}${LIBDIR_BASE}/libheimntlm.a
76LIBHEIMSQLITE?=	${LIBDESTDIR}${LIBDIR_BASE}/libheimsqlite.a
77LIBHX509?=	${LIBDESTDIR}${LIBDIR_BASE}/libhx509.a
78LIBIBCM?=	${LIBDESTDIR}${LIBDIR_BASE}/libibcm.a
79LIBIBMAD?=	${LIBDESTDIR}${LIBDIR_BASE}/libibmad.a
80LIBIBNETDISC?=	${LIBDESTDIR}${LIBDIR_BASE}/libibnetdisc.a
81LIBIBUMAD?=	${LIBDESTDIR}${LIBDIR_BASE}/libibumad.a
82LIBIBVERBS?=	${LIBDESTDIR}${LIBDIR_BASE}/libibverbs.a
83LIBICP?=	${LIBDESTDIR}${LIBDIR_BASE}/libicp.a
84LIBIPSEC?=	${LIBDESTDIR}${LIBDIR_BASE}/libipsec.a
85LIBIPT?=	${LIBDESTDIR}${LIBDIR_BASE}/libipt.a
86LIBIRDMA?=	${LIBDESTDIR}${LIBDIR_BASE}/libirdma.a
87LIBISCSIUTIL?=	${LIBDESTDIR}${LIBDIR_BASE}/libiscsiutil.a
88LIBJAIL?=	${LIBDESTDIR}${LIBDIR_BASE}/libjail.a
89LIBKADM5CLNT?=	${LIBDESTDIR}${LIBDIR_BASE}/libkadm5clnt.a
90LIBKADM5SRV?=	${LIBDESTDIR}${LIBDIR_BASE}/libkadm5srv.a
91LIBKAFS5?=	${LIBDESTDIR}${LIBDIR_BASE}/libkafs5.a
92LIBKDC?=	${LIBDESTDIR}${LIBDIR_BASE}/libkdc.a
93LIBKEYCAP?=	${LIBDESTDIR}${LIBDIR_BASE}/libkeycap.a
94LIBKICONV?=	${LIBDESTDIR}${LIBDIR_BASE}/libkiconv.a
95LIBKRB5?=	${LIBDESTDIR}${LIBDIR_BASE}/libkrb5.a
96LIBKVM?=	${LIBDESTDIR}${LIBDIR_BASE}/libkvm.a
97LIBL?=		${LIBDESTDIR}${LIBDIR_BASE}/libl.a
98LIBLN?=		"don't use LIBLN, use LIBL"
99LIBLZMA?=	${LIBDESTDIR}${LIBDIR_BASE}/liblzma.a
100LIBM?=		${LIBDESTDIR}${LIBDIR_BASE}/libm.a
101LIBMAGIC?=	${LIBDESTDIR}${LIBDIR_BASE}/libmagic.a
102LIBMD?=		${LIBDESTDIR}${LIBDIR_BASE}/libmd.a
103LIBMEMSTAT?=	${LIBDESTDIR}${LIBDIR_BASE}/libmemstat.a
104LIBMENU?=	${LIBDESTDIR}${LIBDIR_BASE}/libmenu.a
105LIBMILTER?=	${LIBDESTDIR}${LIBDIR_BASE}/libmilter.a
106LIBMLX4?=	${LIBDESTDIR}${LIBDIR_BASE}/libmlx4.a
107LIBMLX5?=	${LIBDESTDIR}${LIBDIR_BASE}/libmlx5.a
108LIBMP?=		${LIBDESTDIR}${LIBDIR_BASE}/libmp.a
109LIBMT?=		${LIBDESTDIR}${LIBDIR_BASE}/libmt.a
110LIBNCURSES?=	${LIBDESTDIR}${LIBDIR_BASE}/libncurses.a
111LIBNCURSESW?=	${LIBDESTDIR}${LIBDIR_BASE}/libncursesw.a
112LIBNETGRAPH?=	${LIBDESTDIR}${LIBDIR_BASE}/libnetgraph.a
113LIBNETMAP?=	${LIBDESTDIR}${LIBDIR_BASE}/libnetmap.a
114LIBNGATM?=	${LIBDESTDIR}${LIBDIR_BASE}/libngatm.a
115LIBNV?=		${LIBDESTDIR}${LIBDIR_BASE}/libnv.a
116LIBNVPAIR?=	${LIBDESTDIR}${LIBDIR_BASE}/libnvpair.a
117LIBOPENCSD?=	${LIBDESTDIR}${LIBDIR_BASE}/libopencsd.a
118LIBOPENSM?=	${LIBDESTDIR}${LIBDIR_BASE}/libopensm.a
119LIBOSMCOMP?=	${LIBDESTDIR}${LIBDIR_BASE}/libosmcomp.a
120LIBOSMVENDOR?=	${LIBDESTDIR}${LIBDIR_BASE}/libosmvendor.a
121LIBPAM?=	${LIBDESTDIR}${LIBDIR_BASE}/libpam.a
122LIBPANEL?=	${LIBDESTDIR}${LIBDIR_BASE}/libpanel.a
123LIBPANELW?=	${LIBDESTDIR}${LIBDIR_BASE}/libpanelw.a
124LIBPCAP?=	${LIBDESTDIR}${LIBDIR_BASE}/libpcap.a
125LIBPJDLOG?=	${LIBDESTDIR}${LIBDIR_BASE}/libpjdlog.a
126LIBPMC?=	${LIBDESTDIR}${LIBDIR_BASE}/libpmc.a
127LIBPROC?=	${LIBDESTDIR}${LIBDIR_BASE}/libproc.a
128LIBPROCSTAT?=	${LIBDESTDIR}${LIBDIR_BASE}/libprocstat.a
129LIBPTHREAD?=	${LIBDESTDIR}${LIBDIR_BASE}/libpthread.a
130LIBRADIUS?=	${LIBDESTDIR}${LIBDIR_BASE}/libradius.a
131LIBRDMACM?=	${LIBDESTDIR}${LIBDIR_BASE}/librdmacm.a
132LIBREGEX?=	${LIBDESTDIR}${LIBDIR_BASE}/libregex.a
133LIBROKEN?=	${LIBDESTDIR}${LIBDIR_BASE}/libroken.a
134LIBRPCSEC_GSS?=	${LIBDESTDIR}${LIBDIR_BASE}/librpcsec_gss.a
135LIBRPCSVC?=	${LIBDESTDIR}${LIBDIR_BASE}/librpcsvc.a
136LIBRT?=		${LIBDESTDIR}${LIBDIR_BASE}/librt.a
137LIBRTLD_DB?=	${LIBDESTDIR}${LIBDIR_BASE}/librtld_db.a
138LIBSBUF?=	${LIBDESTDIR}${LIBDIR_BASE}/libsbuf.a
139LIBSDP?=	${LIBDESTDIR}${LIBDIR_BASE}/libsdp.a
140LIBSMB?=	${LIBDESTDIR}${LIBDIR_BASE}/libsmb.a
141LIBSPL?=	${LIBDESTDIR}${LIBDIR_BASE}/libspl.a
142LIBSSL?=	${LIBDESTDIR}${LIBDIR_BASE}/libssl.a
143LIBSSP_NONSHARED?=	${LIBDESTDIR}${LIBDIR_BASE}/libssp_nonshared.a
144LIBSTATS?=	${LIBDESTDIR}${LIBDIR_BASE}/libstats.a
145LIBSTDTHREADS?=	${LIBDESTDIR}${LIBDIR_BASE}/libstdthreads.a
146LIBSYSDECODE?=	${LIBDESTDIR}${LIBDIR_BASE}/libsysdecode.a
147LIBTACPLUS?=	${LIBDESTDIR}${LIBDIR_BASE}/libtacplus.a
148LIBTERMCAP?=	${LIBDESTDIR}${LIBDIR_BASE}/libtermcap.a
149LIBTERMCAPW?=	${LIBDESTDIR}${LIBDIR_BASE}/libtermcapw.a
150LIBTERMLIB?=	"don't use LIBTERMLIB, use LIBTERMCAP"
151LIBTINFOW=	${LIBDESTDIR}${LIBDIR_BASE}/libtinfow.a
152LIBTPOOL?=	${LIBDESTDIR}${LIBDIR_BASE}/libtpool.a
153LIBUFS?=	${LIBDESTDIR}${LIBDIR_BASE}/libufs.a
154LIBUGIDFW?=	${LIBDESTDIR}${LIBDIR_BASE}/libugidfw.a
155LIBULOG?=	${LIBDESTDIR}${LIBDIR_BASE}/libulog.a
156LIBUMEM?=	${LIBDESTDIR}${LIBDIR_BASE}/libumem.a
157LIBUSB?=	${LIBDESTDIR}${LIBDIR_BASE}/libusb.a
158LIBUSBHID?=	${LIBDESTDIR}${LIBDIR_BASE}/libusbhid.a
159LIBUTIL?=	${LIBDESTDIR}${LIBDIR_BASE}/libutil.a
160LIBUUTIL?=	${LIBDESTDIR}${LIBDIR_BASE}/libuutil.a
161LIBVGL?=	${LIBDESTDIR}${LIBDIR_BASE}/libvgl.a
162LIBVMMAPI?=	${LIBDESTDIR}${LIBDIR_BASE}/libvmmapi.a
163LIBWIND?=	${LIBDESTDIR}${LIBDIR_BASE}/libwind.a
164LIBWRAP?=	${LIBDESTDIR}${LIBDIR_BASE}/libwrap.a
165LIBXO?=		${LIBDESTDIR}${LIBDIR_BASE}/libxo.a
166LIBXPG4?=	${LIBDESTDIR}${LIBDIR_BASE}/libxpg4.a
167LIBY?=		${LIBDESTDIR}${LIBDIR_BASE}/liby.a
168LIBYPCLNT?=	${LIBDESTDIR}${LIBDIR_BASE}/libypclnt.a
169LIBZ?=		${LIBDESTDIR}${LIBDIR_BASE}/libz.a
170LIBZDB?=	${LIBDESTDIR}${LIBDIR_BASE}/libzdb.a
171LIBZFS?=	${LIBDESTDIR}${LIBDIR_BASE}/libzfs.a
172LIBZFS_CORE?=	${LIBDESTDIR}${LIBDIR_BASE}/libzfs_core.a
173LIBZFSBOOTENV?=	${LIBDESTDIR}${LIBDIR_BASE}/libzfsbootenv.a
174LIBZPOOL?=	${LIBDESTDIR}${LIBDIR_BASE}/libzpool.a
175LIBZUTIL?=	${LIBDESTDIR}${LIBDIR_BASE}/libzutil.a
176
177# enforce -lpthread, -lc, and -lsys to always be the last in that exact order
178.if defined(LDADD)
179.if ${LDADD:M-lpthread}
180LDADD:=	${LDADD:N-lpthread} -lpthread
181.endif
182.if ${LDADD:M-lc}
183LDADD:=	${LDADD:N-lc} -lc
184.endif
185.if ${LDADD:M-lsys}
186LDADD:=	${LDADD:N-lsys} -lsys
187.endif
188.endif
189
190# Only do this for src builds.
191.if defined(SRCTOP)
192.if defined(_LIBRARIES) && defined(LIB) && \
193    ${_LIBRARIES:M${LIB}} != ""
194.if !defined(LIB${LIB:tu})
195.error ${.CURDIR}: Missing value for LIB${LIB:tu} in ${_this:T}.  Likely should be: LIB${LIB:tu}?= $${LIBDESTDIR}$${LIBDIR_BASE}/lib${LIB}.a
196.endif
197.endif
198
199# Derive LIB*SRCDIR from LIB*DIR
200.for lib in ${_LIBRARIES}
201LIB${lib:tu}SRCDIR?=	${SRCTOP}/${LIB${lib:tu}DIR:S,^${OBJTOP}/,,}
202.endfor
203.else
204
205# Out of tree builds
206
207# There are LIBADD defined in an out-of-tree build.  Are they *all*
208# in-tree libraries?  If so convert them to LDADD to support
209# partial checkouts.
210.if !empty(LIBADD)
211_convert_libadd=	1
212.for l in ${LIBADD}
213.if empty(LIB${l:tu})
214_convert_libadd=	0
215.endif
216.endfor
217.if ${_convert_libadd} == 1
218.warning Converting out-of-tree build LIBADDs into LDADD.  This is not fully supported.
219.for l in ${LIBADD}
220LDADD+=	-l${l}
221.endfor
222.endif
223.endif
224
225.endif	# defined(SRCTOP)
226