]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - share/mk/src.libnames.mk
Implement LIBADD
[FreeBSD/FreeBSD.git] / share / mk / src.libnames.mk
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 ROOTSRCDIR=     ${.MAKE.MAKEFILES:M*/src.libnames.mk:H:H:H}
13 ROOTOBJDIR=     ${.OBJDIR:S/${.CURDIR}//}${ROOTSRCDIR}
14 _PRIVATELIBS=   \
15                 atf_c \
16                 atf_cxx \
17                 bsdstat \
18                 ldns \
19                 sqlite3 \
20                 ssh \
21                 ucl \
22                 unbound
23 _INTERNALIBS=   \
24                 libmandoc \
25                 ohash \
26                 readline \
27                 sm
28
29 _LIBRARIES=     \
30                 archive \
31                 atf_c \
32                 atf_cxx \
33                 bsdxml \
34                 bsnmp \
35                 bz2 \
36                 cam \
37                 capsicum \
38                 casper \
39                 cft \
40                 crypt \
41                 crypto \
42                 cuse \
43                 cxxrt \
44                 devstat \
45                 dialog \
46                 dpv \
47                 dwarf \
48                 edit \
49                 elf \
50                 event \
51                 execinfo \
52                 fetch \
53                 figpar \
54                 geom \
55                 gssapi \
56                 ipsec \
57                 jail \
58                 kiconv \
59                 kvm \
60                 l \
61                 ldns \
62                 lzma \
63                 m \
64                 magic \
65                 mandoc \
66                 md \
67                 memstat \
68                 mp \
69                 nandfs \
70                 ncursesw \
71                 nv \
72                 opie \
73                 pam \
74                 pcap \
75                 pjdlog \
76                 proc \
77                 procstat \
78                 pthread \
79                 radius \
80                 readline \
81                 rpcsec_gss \
82                 rt \
83                 sbuf \
84                 sm \
85                 smb \
86                 ssh \
87                 ssl \
88                 stdthreads \
89                 supcplusplus \
90                 tacplus \
91                 termcapw \
92                 ucl \
93                 ufs \
94                 ulog \
95                 usb \
96                 util \
97                 wrap \
98                 y \
99                 z
100
101 _DP_archive=    z bz2 lzma bsdxml
102 .if ${MK_OPENSSL} != "no"
103 _DP_archive+=   crypto
104 .else
105 _DP_archive+=   md
106 .endif
107 _DP_ssl=        crypto
108 _DP_ssh=        crypto crypt
109 _DP_edit=       edit
110 .if ${MK_OPENSSL} != "no"
111 _DP_bsnmp=      crypto
112 .endif
113 _DP_grom=       bsdxml sbuf
114 _DP_cam=        sbuf
115 _DP_casper=     capsicum nv pjdlog
116 _DP_capsicum=   nv
117 _DP_pjdlog=     util
118 _DP_opie=       md
119 _DP_usb=        pthread
120 _DP_unbound=    pthread
121 _DP_rt= pthread
122 .if ${MK_OPENSSL} == "no"
123 _DP_radius=     md
124 .else
125 _DP_radius=     crypto
126 .endif
127 _DP_procstat=   kvm util elf
128 .if ${MK_CXX} == "yes"
129 .if ${MK_LIBCPLUSPLUS} != "no"
130 _DP_proc=       cxxrt
131 .else
132 _DP_proc=       supcplusplus
133 .endif
134 .endif
135 .if ${MK_CDDL} != "no"
136 _DP_proc+=      cft
137 .endif
138 _DP_mp= crypto
139 _DP_memstat=    kvm
140 _DP_magic=      z
141 _DP_ldns=       crypto
142 .if ${MK_OPENSSL} != "no"
143 _DP_fetch=      ssl crypto
144 .else
145 _DP_fetch=      md
146 .endif
147 _DP_execinfo=   elf
148 _DP_dwarf=      elf
149 _DP_dpv=        dialog figpar util
150 _DP_dialog=     ncursesw m
151 _DP_cuse=       pthread
152 _DP_atf_cxx=    atf_c
153 _DP_devstat=    kvm
154
155 # Define spacial cases
156 LDADD_supcplusplus=     -lsupc++
157
158 .for _l in ${_LIBRARIES}
159 .if ${_PRIVATELIBS:M${_l}}
160 LDADD+=         -L${LIB${_l:tu}DIR}
161 .endif
162 .if ${_INTERNALIBS:M${_l}}
163 LDADD+=         -L${LIB${_l:tu}DIR}
164 .endif
165 DPADD_${_l}?=   ${LIB${_l:tu}}
166 LDADD_${_l}?=   -l${_l}
167 .if defined(${_l}_depend) && defined(NO_SHARED)
168 .for _d in ${_DP_${_l}}
169 DPADD_${_l}+=   ${DPADD_${_d}}
170 LDADD_${_l}+=   ${LDADD_${_d}}
171 .endfor
172 .endif
173 .endfor
174
175 # ucl needs and exposes libm
176 DPADD_ucl+=     ${DPADD_m}
177 LDADD_ucl+=     ${LDADD_m}
178
179 .for _l in ${LIBADD}
180 .if ${_PRIVATELIBS:M${_l}}
181 USEPRIVATELIB+= ${_l}
182 .endif
183 DPADD+=         ${DPADD_${_l}}
184 LDADD+=         ${LDADD_${_l}}
185 .endfor
186
187 LIBATF_CDIR=    ${ROOTOBJDIR}/lib/atf/libatf-c
188 LDATF_C?=       ${LIBATF_CDIR}/libatf-c.so
189 LIBATF_C?=      ${LIBATF_CDIR}/libatf-c.a
190
191 LIBATF_CXXDIR=  ${ROOTOBJDIR}/lib/atf/libatf-c++
192 LDATF_CXX?=     ${LIBATF_CXXDIR}/libatf-c++.so
193 LIBATF_CXX?=    ${LIBATF_CXXDIR}/libatf-c++.a
194
195 LIBBSDSTATDIR=  ${ROOTOBJDIR}/lib/libbsdstat
196 LDBSDSTAT?=     ${LIBBSDSTATDIR}/libbsdstat.so
197 LIBBSDSTAT?=    ${LIBBSDSTATDIR}/libbsdstat.a
198
199 LIBEVENTDIR=    ${ROOTOBJDIR}/lib/libevent
200 LDEVENT?=       ${LIBEVENTDIR}/libevent.a
201 LIBEVENT?=      ${LIBEVENTDIR}/libevent.a
202
203 LIBHEIMIPCCDIR= ${ROOTOBJDIR}/kerberos5/lib/libheimipcc
204 LDHEIMIPCC?=    ${LIBHEIMIPCCDIR}/libheimipcc.so
205 LIBHEIMIPCC?=   ${LIBHEIMIPCCDIR}/libheimipcc.a
206
207 LIBHEIMIPCSDIR= ${ROOTOBJDIR}/kerberos5/lib/libheimipcs
208 LDHEIMIPCS?=    ${LIBHEIMIPCSDIR}/libheimipcs.so
209 LIBHEIMIPCS?=   ${LIBHEIMIPCSDIR}/libheimipcs.a
210
211 LIBLDNSDIR=     ${ROOTOBJDIR}/lib/libldns
212 LDLDNS?=        ${LIBLDNSDIR}/libldns.so
213 LIBLDNS?=       ${LIBLDNSDIR}/libldns.a
214
215 LIBSSHDIR=      ${ROOTOBJDIR}/secure/lib/libssh
216 LDSSH?=         ${LIBSSHDIR}/libssh.so
217 LIBSSH?=        ${LIBSSHDIR}/libssh.a
218
219 LIBUNBOUNDDIR=  ${ROOTOBJDIR}/lib/libunbound
220 LDUNBOUND?=     ${LIBUNBOUNDDIR}/libunbound.so
221 LIBUNBOUND?=    ${LIBUNBOUNDDIR}/libunbound.a
222
223 LIBUCLDIR=      ${ROOTOBJDIR}/lib/libucl
224 LDUCL?=         ${LIBUCLDIR}/libucl.so
225 LIBUCL?=        ${LIBUCLDIR}/libucl.a
226
227 LIBREADLINEDIR= ${ROOTOBJDIR}/gnu/lib/libreadline/readline
228 LDREADLINE?=    ${LIBREADLINEDIR}/libreadline.a
229 LIBREADLINE?=   ${LIBREADLINEDIR}/libreadline.a
230
231 LIBOHASHDIR=    ${ROOTOBJDIR}/lib/libohash
232 LDOHASH?=       ${LIBOHASHDIR}/libohash.a
233 LIBOHASH?=      ${LIBOHASHDIR}/libohash.a
234
235 LIBSQLITE3DIR=  ${ROOTOBJDIR}/lib/libsqlite3
236 LDSQLITE3?=     ${LIBSQLITE3DIR}/libsqlite3.so
237 LIBSQLITE3?=    ${LIBSQLITE3DIR}/libsqlite3.a
238
239 LIBMANDOCDIR=   ${ROOTOBJDIR}/lib/libmandoc
240 LDMANDOC?=      ${LIBMANDOCDIR}/libmandoc.a
241 LIBMANDOC?=     ${LIBMANDOCDIR}/libmandoc.a
242
243 LIBSMDIR=       ${ROOTOBJDIR}/lib/libsm
244 LDSM?=          ${LIBSMDIR}/libsm.a
245 LIBSM?=         ${LIBSMDIR}/libsm.a