0
|
1 # lib-link.m4 serial 4 (gettext-0.12)
|
|
2 dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
|
|
3 dnl This file is free software, distributed under the terms of the GNU
|
|
4 dnl General Public License. As a special exception to the GNU General
|
|
5 dnl Public License, this file may be distributed as part of a program
|
|
6 dnl that contains a configuration script generated by Autoconf, under
|
|
7 dnl the same distribution terms as the rest of that program.
|
|
8
|
|
9 dnl From Bruno Haible.
|
|
10
|
|
11 dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
|
|
12 dnl the libraries corresponding to explicit and implicit dependencies.
|
|
13 dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
|
|
14 dnl augments the CPPFLAGS variable.
|
|
15 AC_DEFUN([AC_LIB_LINKFLAGS],
|
|
16 [
|
|
17 AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
|
|
18 AC_REQUIRE([AC_LIB_RPATH])
|
|
19 define([Name],[translit([$1],[./-], [___])])
|
|
20 define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
|
|
21 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
|
|
22 AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
|
|
23 AC_LIB_LINKFLAGS_BODY([$1], [$2])
|
|
24 ac_cv_lib[]Name[]_libs="$LIB[]NAME"
|
|
25 ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
|
|
26 ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
|
|
27 ])
|
|
28 LIB[]NAME="$ac_cv_lib[]Name[]_libs"
|
|
29 LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
|
|
30 INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
|
|
31 AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
|
|
32 AC_SUBST([LIB]NAME)
|
|
33 AC_SUBST([LTLIB]NAME)
|
|
34 dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
|
|
35 dnl results of this search when this library appears as a dependency.
|
|
36 HAVE_LIB[]NAME=yes
|
|
37 undefine([Name])
|
|
38 undefine([NAME])
|
|
39 ])
|
|
40
|
|
41 dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
|
|
42 dnl searches for libname and the libraries corresponding to explicit and
|
|
43 dnl implicit dependencies, together with the specified include files and
|
|
44 dnl the ability to compile and link the specified testcode. If found, it
|
|
45 dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
|
|
46 dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
|
|
47 dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
|
|
48 dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
|
|
49 AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
|
|
50 [
|
|
51 AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
|
|
52 AC_REQUIRE([AC_LIB_RPATH])
|
|
53 define([Name],[translit([$1],[./-], [___])])
|
|
54 define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
|
|
55 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
|
|
56
|
|
57 dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
|
|
58 dnl accordingly.
|
|
59 AC_LIB_LINKFLAGS_BODY([$1], [$2])
|
|
60
|
|
61 dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
|
|
62 dnl because if the user has installed lib[]Name and not disabled its use
|
|
63 dnl via --without-lib[]Name-prefix, he wants to use it.
|
|
64 ac_save_CPPFLAGS="$CPPFLAGS"
|
|
65 AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
|
|
66
|
|
67 AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
|
|
68 ac_save_LIBS="$LIBS"
|
|
69 LIBS="$LIBS $LIB[]NAME"
|
|
70 AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
|
|
71 LIBS="$ac_save_LIBS"
|
|
72 ])
|
|
73 if test "$ac_cv_lib[]Name" = yes; then
|
|
74 HAVE_LIB[]NAME=yes
|
|
75 AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
|
|
76 AC_MSG_CHECKING([how to link with lib[]$1])
|
|
77 AC_MSG_RESULT([$LIB[]NAME])
|
|
78 else
|
|
79 HAVE_LIB[]NAME=no
|
|
80 dnl If $LIB[]NAME didn't lead to a usable library, we don't need
|
|
81 dnl $INC[]NAME either.
|
|
82 CPPFLAGS="$ac_save_CPPFLAGS"
|
|
83 LIB[]NAME=
|
|
84 LTLIB[]NAME=
|
|
85 fi
|
|
86 AC_SUBST([HAVE_LIB]NAME)
|
|
87 AC_SUBST([LIB]NAME)
|
|
88 AC_SUBST([LTLIB]NAME)
|
|
89 undefine([Name])
|
|
90 undefine([NAME])
|
|
91 ])
|
|
92
|
|
93 dnl Determine the platform dependent parameters needed to use rpath:
|
|
94 dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
|
|
95 dnl hardcode_direct, hardcode_minus_L.
|
|
96 AC_DEFUN([AC_LIB_RPATH],
|
|
97 [
|
|
98 AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
|
|
99 AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
|
|
100 AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
|
|
101 AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
|
|
102 AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
|
|
103 CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
|
|
104 ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
|
|
105 . ./conftest.sh
|
|
106 rm -f ./conftest.sh
|
|
107 acl_cv_rpath=done
|
|
108 ])
|
|
109 wl="$acl_cv_wl"
|
|
110 libext="$acl_cv_libext"
|
|
111 shlibext="$acl_cv_shlibext"
|
|
112 hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
|
|
113 hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
|
|
114 hardcode_direct="$acl_cv_hardcode_direct"
|
|
115 hardcode_minus_L="$acl_cv_hardcode_minus_L"
|
|
116 dnl Determine whether the user wants rpath handling at all.
|
|
117 AC_ARG_ENABLE(rpath,
|
|
118 [ --disable-rpath do not hardcode runtime library paths],
|
|
119 :, enable_rpath=yes)
|
|
120 ])
|
|
121
|
|
122 dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
|
|
123 dnl the libraries corresponding to explicit and implicit dependencies.
|
|
124 dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
|
|
125 AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
|
|
126 [
|
|
127 define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
|
|
128 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
|
|
129 dnl By default, look in $includedir and $libdir.
|
|
130 use_additional=yes
|
|
131 AC_LIB_WITH_FINAL_PREFIX([
|
|
132 eval additional_includedir=\"$includedir\"
|
|
133 eval additional_libdir=\"$libdir\"
|
|
134 ])
|
|
135 AC_LIB_ARG_WITH([lib$1-prefix],
|
|
136 [ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
|
|
137 --without-lib$1-prefix don't search for lib$1 in includedir and libdir],
|
|
138 [
|
|
139 if test "X$withval" = "Xno"; then
|
|
140 use_additional=no
|
|
141 else
|
|
142 if test "X$withval" = "X"; then
|
|
143 AC_LIB_WITH_FINAL_PREFIX([
|
|
144 eval additional_includedir=\"$includedir\"
|
|
145 eval additional_libdir=\"$libdir\"
|
|
146 ])
|
|
147 else
|
|
148 additional_includedir="$withval/include"
|
|
149 additional_libdir="$withval/lib"
|
|
150 fi
|
|
151 fi
|
|
152 ])
|
|
153 dnl Search the library and its dependencies in $additional_libdir and
|
|
154 dnl $LDFLAGS. Using breadth-first-seach.
|
|
155 LIB[]NAME=
|
|
156 LTLIB[]NAME=
|
|
157 INC[]NAME=
|
|
158 rpathdirs=
|
|
159 ltrpathdirs=
|
|
160 names_already_handled=
|
|
161 names_next_round='$1 $2'
|
|
162 while test -n "$names_next_round"; do
|
|
163 names_this_round="$names_next_round"
|
|
164 names_next_round=
|
|
165 for name in $names_this_round; do
|
|
166 already_handled=
|
|
167 for n in $names_already_handled; do
|
|
168 if test "$n" = "$name"; then
|
|
169 already_handled=yes
|
|
170 break
|
|
171 fi
|
|
172 done
|
|
173 if test -z "$already_handled"; then
|
|
174 names_already_handled="$names_already_handled $name"
|
|
175 dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
|
|
176 dnl or AC_LIB_HAVE_LINKFLAGS call.
|
|
177 uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
|
|
178 eval value=\"\$HAVE_LIB$uppername\"
|
|
179 if test -n "$value"; then
|
|
180 if test "$value" = yes; then
|
|
181 eval value=\"\$LIB$uppername\"
|
|
182 test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
|
|
183 eval value=\"\$LTLIB$uppername\"
|
|
184 test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
|
|
185 else
|
|
186 dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
|
|
187 dnl that this library doesn't exist. So just drop it.
|
|
188 :
|
|
189 fi
|
|
190 else
|
|
191 dnl Search the library lib$name in $additional_libdir and $LDFLAGS
|
|
192 dnl and the already constructed $LIBNAME/$LTLIBNAME.
|
|
193 found_dir=
|
|
194 found_la=
|
|
195 found_so=
|
|
196 found_a=
|
|
197 if test $use_additional = yes; then
|
|
198 if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
|
|
199 found_dir="$additional_libdir"
|
|
200 found_so="$additional_libdir/lib$name.$shlibext"
|
|
201 if test -f "$additional_libdir/lib$name.la"; then
|
|
202 found_la="$additional_libdir/lib$name.la"
|
|
203 fi
|
|
204 else
|
|
205 if test -f "$additional_libdir/lib$name.$libext"; then
|
|
206 found_dir="$additional_libdir"
|
|
207 found_a="$additional_libdir/lib$name.$libext"
|
|
208 if test -f "$additional_libdir/lib$name.la"; then
|
|
209 found_la="$additional_libdir/lib$name.la"
|
|
210 fi
|
|
211 fi
|
|
212 fi
|
|
213 fi
|
|
214 if test "X$found_dir" = "X"; then
|
|
215 for x in $LDFLAGS $LTLIB[]NAME; do
|
|
216 AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
|
217 case "$x" in
|
|
218 -L*)
|
|
219 dir=`echo "X$x" | sed -e 's/^X-L//'`
|
|
220 if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
|
|
221 found_dir="$dir"
|
|
222 found_so="$dir/lib$name.$shlibext"
|
|
223 if test -f "$dir/lib$name.la"; then
|
|
224 found_la="$dir/lib$name.la"
|
|
225 fi
|
|
226 else
|
|
227 if test -f "$dir/lib$name.$libext"; then
|
|
228 found_dir="$dir"
|
|
229 found_a="$dir/lib$name.$libext"
|
|
230 if test -f "$dir/lib$name.la"; then
|
|
231 found_la="$dir/lib$name.la"
|
|
232 fi
|
|
233 fi
|
|
234 fi
|
|
235 ;;
|
|
236 esac
|
|
237 if test "X$found_dir" != "X"; then
|
|
238 break
|
|
239 fi
|
|
240 done
|
|
241 fi
|
|
242 if test "X$found_dir" != "X"; then
|
|
243 dnl Found the library.
|
|
244 LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
|
|
245 if test "X$found_so" != "X"; then
|
|
246 dnl Linking with a shared library. We attempt to hardcode its
|
|
247 dnl directory into the executable's runpath, unless it's the
|
|
248 dnl standard /usr/lib.
|
|
249 if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
|
|
250 dnl No hardcoding is needed.
|
|
251 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
|
|
252 else
|
|
253 dnl Use an explicit option to hardcode DIR into the resulting
|
|
254 dnl binary.
|
|
255 dnl Potentially add DIR to ltrpathdirs.
|
|
256 dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
|
|
257 haveit=
|
|
258 for x in $ltrpathdirs; do
|
|
259 if test "X$x" = "X$found_dir"; then
|
|
260 haveit=yes
|
|
261 break
|
|
262 fi
|
|
263 done
|
|
264 if test -z "$haveit"; then
|
|
265 ltrpathdirs="$ltrpathdirs $found_dir"
|
|
266 fi
|
|
267 dnl The hardcoding into $LIBNAME is system dependent.
|
|
268 if test "$hardcode_direct" = yes; then
|
|
269 dnl Using DIR/libNAME.so during linking hardcodes DIR into the
|
|
270 dnl resulting binary.
|
|
271 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
|
|
272 else
|
|
273 if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
|
|
274 dnl Use an explicit option to hardcode DIR into the resulting
|
|
275 dnl binary.
|
|
276 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
|
|
277 dnl Potentially add DIR to rpathdirs.
|
|
278 dnl The rpathdirs will be appended to $LIBNAME at the end.
|
|
279 haveit=
|
|
280 for x in $rpathdirs; do
|
|
281 if test "X$x" = "X$found_dir"; then
|
|
282 haveit=yes
|
|
283 break
|
|
284 fi
|
|
285 done
|
|
286 if test -z "$haveit"; then
|
|
287 rpathdirs="$rpathdirs $found_dir"
|
|
288 fi
|
|
289 else
|
|
290 dnl Rely on "-L$found_dir".
|
|
291 dnl But don't add it if it's already contained in the LDFLAGS
|
|
292 dnl or the already constructed $LIBNAME
|
|
293 haveit=
|
|
294 for x in $LDFLAGS $LIB[]NAME; do
|
|
295 AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
|
296 if test "X$x" = "X-L$found_dir"; then
|
|
297 haveit=yes
|
|
298 break
|
|
299 fi
|
|
300 done
|
|
301 if test -z "$haveit"; then
|
|
302 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
|
|
303 fi
|
|
304 if test "$hardcode_minus_L" != no; then
|
|
305 dnl FIXME: Not sure whether we should use
|
|
306 dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
|
|
307 dnl here.
|
|
308 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
|
|
309 else
|
|
310 dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
|
|
311 dnl here, because this doesn't fit in flags passed to the
|
|
312 dnl compiler. So give up. No hardcoding. This affects only
|
|
313 dnl very old systems.
|
|
314 dnl FIXME: Not sure whether we should use
|
|
315 dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
|
|
316 dnl here.
|
|
317 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
|
|
318 fi
|
|
319 fi
|
|
320 fi
|
|
321 fi
|
|
322 else
|
|
323 if test "X$found_a" != "X"; then
|
|
324 dnl Linking with a static library.
|
|
325 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
|
|
326 else
|
|
327 dnl We shouldn't come here, but anyway it's good to have a
|
|
328 dnl fallback.
|
|
329 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
|
|
330 fi
|
|
331 fi
|
|
332 dnl Assume the include files are nearby.
|
|
333 additional_includedir=
|
|
334 case "$found_dir" in
|
|
335 */lib | */lib/)
|
|
336 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
|
|
337 additional_includedir="$basedir/include"
|
|
338 ;;
|
|
339 esac
|
|
340 if test "X$additional_includedir" != "X"; then
|
|
341 dnl Potentially add $additional_includedir to $INCNAME.
|
|
342 dnl But don't add it
|
|
343 dnl 1. if it's the standard /usr/include,
|
|
344 dnl 2. if it's /usr/local/include and we are using GCC on Linux,
|
|
345 dnl 3. if it's already present in $CPPFLAGS or the already
|
|
346 dnl constructed $INCNAME,
|
|
347 dnl 4. if it doesn't exist as a directory.
|
|
348 if test "X$additional_includedir" != "X/usr/include"; then
|
|
349 haveit=
|
|
350 if test "X$additional_includedir" = "X/usr/local/include"; then
|
|
351 if test -n "$GCC"; then
|
|
352 case $host_os in
|
|
353 linux*) haveit=yes;;
|
|
354 esac
|
|
355 fi
|
|
356 fi
|
|
357 if test -z "$haveit"; then
|
|
358 for x in $CPPFLAGS $INC[]NAME; do
|
|
359 AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
|
360 if test "X$x" = "X-I$additional_includedir"; then
|
|
361 haveit=yes
|
|
362 break
|
|
363 fi
|
|
364 done
|
|
365 if test -z "$haveit"; then
|
|
366 if test -d "$additional_includedir"; then
|
|
367 dnl Really add $additional_includedir to $INCNAME.
|
|
368 INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
|
|
369 fi
|
|
370 fi
|
|
371 fi
|
|
372 fi
|
|
373 fi
|
|
374 dnl Look for dependencies.
|
|
375 if test -n "$found_la"; then
|
|
376 dnl Read the .la file. It defines the variables
|
|
377 dnl dlname, library_names, old_library, dependency_libs, current,
|
|
378 dnl age, revision, installed, dlopen, dlpreopen, libdir.
|
|
379 save_libdir="$libdir"
|
|
380 case "$found_la" in
|
|
381 */* | *\\*) . "$found_la" ;;
|
|
382 *) . "./$found_la" ;;
|
|
383 esac
|
|
384 libdir="$save_libdir"
|
|
385 dnl We use only dependency_libs.
|
|
386 for dep in $dependency_libs; do
|
|
387 case "$dep" in
|
|
388 -L*)
|
|
389 additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
|
|
390 dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
|
|
391 dnl But don't add it
|
|
392 dnl 1. if it's the standard /usr/lib,
|
|
393 dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
|
|
394 dnl 3. if it's already present in $LDFLAGS or the already
|
|
395 dnl constructed $LIBNAME,
|
|
396 dnl 4. if it doesn't exist as a directory.
|
|
397 if test "X$additional_libdir" != "X/usr/lib"; then
|
|
398 haveit=
|
|
399 if test "X$additional_libdir" = "X/usr/local/lib"; then
|
|
400 if test -n "$GCC"; then
|
|
401 case $host_os in
|
|
402 linux*) haveit=yes;;
|
|
403 esac
|
|
404 fi
|
|
405 fi
|
|
406 if test -z "$haveit"; then
|
|
407 haveit=
|
|
408 for x in $LDFLAGS $LIB[]NAME; do
|
|
409 AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
|
410 if test "X$x" = "X-L$additional_libdir"; then
|
|
411 haveit=yes
|
|
412 break
|
|
413 fi
|
|
414 done
|
|
415 if test -z "$haveit"; then
|
|
416 if test -d "$additional_libdir"; then
|
|
417 dnl Really add $additional_libdir to $LIBNAME.
|
|
418 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
|
|
419 fi
|
|
420 fi
|
|
421 haveit=
|
|
422 for x in $LDFLAGS $LTLIB[]NAME; do
|
|
423 AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
|
424 if test "X$x" = "X-L$additional_libdir"; then
|
|
425 haveit=yes
|
|
426 break
|
|
427 fi
|
|
428 done
|
|
429 if test -z "$haveit"; then
|
|
430 if test -d "$additional_libdir"; then
|
|
431 dnl Really add $additional_libdir to $LTLIBNAME.
|
|
432 LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
|
|
433 fi
|
|
434 fi
|
|
435 fi
|
|
436 fi
|
|
437 ;;
|
|
438 -R*)
|
|
439 dir=`echo "X$dep" | sed -e 's/^X-R//'`
|
|
440 if test "$enable_rpath" != no; then
|
|
441 dnl Potentially add DIR to rpathdirs.
|
|
442 dnl The rpathdirs will be appended to $LIBNAME at the end.
|
|
443 haveit=
|
|
444 for x in $rpathdirs; do
|
|
445 if test "X$x" = "X$dir"; then
|
|
446 haveit=yes
|
|
447 break
|
|
448 fi
|
|
449 done
|
|
450 if test -z "$haveit"; then
|
|
451 rpathdirs="$rpathdirs $dir"
|
|
452 fi
|
|
453 dnl Potentially add DIR to ltrpathdirs.
|
|
454 dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
|
|
455 haveit=
|
|
456 for x in $ltrpathdirs; do
|
|
457 if test "X$x" = "X$dir"; then
|
|
458 haveit=yes
|
|
459 break
|
|
460 fi
|
|
461 done
|
|
462 if test -z "$haveit"; then
|
|
463 ltrpathdirs="$ltrpathdirs $dir"
|
|
464 fi
|
|
465 fi
|
|
466 ;;
|
|
467 -l*)
|
|
468 dnl Handle this in the next round.
|
|
469 names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
|
|
470 ;;
|
|
471 *.la)
|
|
472 dnl Handle this in the next round. Throw away the .la's
|
|
473 dnl directory; it is already contained in a preceding -L
|
|
474 dnl option.
|
|
475 names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
|
|
476 ;;
|
|
477 *)
|
|
478 dnl Most likely an immediate library name.
|
|
479 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
|
|
480 LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
|
|
481 ;;
|
|
482 esac
|
|
483 done
|
|
484 fi
|
|
485 else
|
|
486 dnl Didn't find the library; assume it is in the system directories
|
|
487 dnl known to the linker and runtime loader. (All the system
|
|
488 dnl directories known to the linker should also be known to the
|
|
489 dnl runtime loader, otherwise the system is severely misconfigured.)
|
|
490 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
|
|
491 LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
|
|
492 fi
|
|
493 fi
|
|
494 fi
|
|
495 done
|
|
496 done
|
|
497 if test "X$rpathdirs" != "X"; then
|
|
498 if test -n "$hardcode_libdir_separator"; then
|
|
499 dnl Weird platform: only the last -rpath option counts, the user must
|
|
500 dnl pass all path elements in one option. We can arrange that for a
|
|
501 dnl single library, but not when more than one $LIBNAMEs are used.
|
|
502 alldirs=
|
|
503 for found_dir in $rpathdirs; do
|
|
504 alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
|
|
505 done
|
|
506 dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
|
|
507 acl_save_libdir="$libdir"
|
|
508 libdir="$alldirs"
|
|
509 eval flag=\"$hardcode_libdir_flag_spec\"
|
|
510 libdir="$acl_save_libdir"
|
|
511 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
|
|
512 else
|
|
513 dnl The -rpath options are cumulative.
|
|
514 for found_dir in $rpathdirs; do
|
|
515 acl_save_libdir="$libdir"
|
|
516 libdir="$found_dir"
|
|
517 eval flag=\"$hardcode_libdir_flag_spec\"
|
|
518 libdir="$acl_save_libdir"
|
|
519 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
|
|
520 done
|
|
521 fi
|
|
522 fi
|
|
523 if test "X$ltrpathdirs" != "X"; then
|
|
524 dnl When using libtool, the option that works for both libraries and
|
|
525 dnl executables is -R. The -R options are cumulative.
|
|
526 for found_dir in $ltrpathdirs; do
|
|
527 LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
|
|
528 done
|
|
529 fi
|
|
530 ])
|
|
531
|
|
532 dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
|
|
533 dnl unless already present in VAR.
|
|
534 dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
|
|
535 dnl contains two or three consecutive elements that belong together.
|
|
536 AC_DEFUN([AC_LIB_APPENDTOVAR],
|
|
537 [
|
|
538 for element in [$2]; do
|
|
539 haveit=
|
|
540 for x in $[$1]; do
|
|
541 AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
|
542 if test "X$x" = "X$element"; then
|
|
543 haveit=yes
|
|
544 break
|
|
545 fi
|
|
546 done
|
|
547 if test -z "$haveit"; then
|
|
548 [$1]="${[$1]}${[$1]:+ }$element"
|
|
549 fi
|
|
550 done
|
|
551 ])
|