1 # lib-link.m4 serial 16 (gettext-0.18)
2 dnl Copyright (C) 2001-2008 Free Software Foundation, Inc.
3 dnl This file is free software; the Free Software Foundation
4 dnl gives unlimited permission to copy and/or distribute it,
5 dnl with or without modifications, as long as this notice is preserved.
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 dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
16 dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
17 AC_DEFUN([AC_LIB_LINKFLAGS],
19 AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
20 AC_REQUIRE([AC_LIB_RPATH])
21 pushdef([Name],[translit([$1],[./-], [___])])
22 pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
23 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
24 AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
25 AC_LIB_LINKFLAGS_BODY([$1], [$2])
26 ac_cv_lib[]Name[]_libs="$LIB[]NAME"
27 ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
28 ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
29 ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX"
31 LIB[]NAME="$ac_cv_lib[]Name[]_libs"
32 LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
33 INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
34 LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix"
35 AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
38 AC_SUBST([LIB]NAME[_PREFIX])
39 dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
40 dnl results of this search when this library appears as a dependency.
46 dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
47 dnl searches for libname and the libraries corresponding to explicit and
48 dnl implicit dependencies, together with the specified include files and
49 dnl the ability to compile and link the specified testcode. If found, it
50 dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
51 dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
52 dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
53 dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
54 dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
55 dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
56 AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
58 AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
59 AC_REQUIRE([AC_LIB_RPATH])
60 pushdef([Name],[translit([$1],[./-], [___])])
61 pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
62 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
64 dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
66 AC_LIB_LINKFLAGS_BODY([$1], [$2])
68 dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
69 dnl because if the user has installed lib[]Name and not disabled its use
70 dnl via --without-lib[]Name-prefix, he wants to use it.
71 ac_save_CPPFLAGS="$CPPFLAGS"
72 AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
74 AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
76 LIBS="$LIBS $LIB[]NAME"
77 AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
80 if test "$ac_cv_lib[]Name" = yes; then
82 AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
83 AC_MSG_CHECKING([how to link with lib[]$1])
84 AC_MSG_RESULT([$LIB[]NAME])
87 dnl If $LIB[]NAME didn't lead to a usable library, we don't need
88 dnl $INC[]NAME either.
89 CPPFLAGS="$ac_save_CPPFLAGS"
94 AC_SUBST([HAVE_LIB]NAME)
97 AC_SUBST([LIB]NAME[_PREFIX])
102 dnl Determine the platform dependent parameters needed to use rpath:
105 dnl acl_hardcode_libdir_flag_spec,
106 dnl acl_hardcode_libdir_separator,
107 dnl acl_hardcode_direct,
108 dnl acl_hardcode_minus_L.
109 AC_DEFUN([AC_LIB_RPATH],
111 dnl Tell automake >= 1.10 to complain if config.rpath is missing.
112 m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
113 AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
114 AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
115 AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
116 AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
117 AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
118 CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
119 ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
125 acl_libext="$acl_cv_libext"
126 acl_shlibext="$acl_cv_shlibext"
127 acl_libname_spec="$acl_cv_libname_spec"
128 acl_library_names_spec="$acl_cv_library_names_spec"
129 acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
130 acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
131 acl_hardcode_direct="$acl_cv_hardcode_direct"
132 acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
133 dnl Determine whether the user wants rpath handling at all.
135 [ --disable-rpath do not hardcode runtime library paths],
139 dnl AC_LIB_FROMPACKAGE(name, package)
140 dnl declares that libname comes from the given package. The configure file
141 dnl will then not have a --with-libname-prefix option but a
142 dnl --with-package-prefix option. Several libraries can come from the same
143 dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar
144 dnl macro call that searches for libname.
145 AC_DEFUN([AC_LIB_FROMPACKAGE],
147 pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
148 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
149 define([acl_frompackage_]NAME, [$2])
152 pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-],
153 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
154 define([acl_libsinpackage_]PACKUP,
155 m4_ifdef([acl_libsinpackage_]PACKUP, [acl_libsinpackage_]PACKUP[[, ]],)[lib$1])
160 dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
161 dnl the libraries corresponding to explicit and implicit dependencies.
162 dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
163 dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found
164 dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
165 AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
167 AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
168 pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
169 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
170 pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])])
171 pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-],
172 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
173 pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])])
174 dnl Autoconf >= 2.61 supports dots in --with options.
175 pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit(PACK,[.],[_])],PACK)])
176 dnl By default, look in $includedir and $libdir.
178 AC_LIB_WITH_FINAL_PREFIX([
179 eval additional_includedir=\"$includedir\"
180 eval additional_libdir=\"$libdir\"
182 AC_ARG_WITH(P_A_C_K[-prefix],
183 [[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib
184 --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]],
186 if test "X$withval" = "Xno"; then
189 if test "X$withval" = "X"; then
190 AC_LIB_WITH_FINAL_PREFIX([
191 eval additional_includedir=\"$includedir\"
192 eval additional_libdir=\"$libdir\"
195 additional_includedir="$withval/include"
196 additional_libdir="$withval/$acl_libdirstem"
197 if test "$acl_libdirstem2" != "$acl_libdirstem" \
198 && ! test -d "$withval/$acl_libdirstem"; then
199 additional_libdir="$withval/$acl_libdirstem2"
204 dnl Search the library and its dependencies in $additional_libdir and
205 dnl $LDFLAGS. Using breadth-first-seach.
212 names_already_handled=
213 names_next_round='$1 $2'
214 while test -n "$names_next_round"; do
215 names_this_round="$names_next_round"
217 for name in $names_this_round; do
219 for n in $names_already_handled; do
220 if test "$n" = "$name"; then
225 if test -z "$already_handled"; then
226 names_already_handled="$names_already_handled $name"
227 dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
228 dnl or AC_LIB_HAVE_LINKFLAGS call.
229 uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
230 eval value=\"\$HAVE_LIB$uppername\"
231 if test -n "$value"; then
232 if test "$value" = yes; then
233 eval value=\"\$LIB$uppername\"
234 test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
235 eval value=\"\$LTLIB$uppername\"
236 test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
238 dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
239 dnl that this library doesn't exist. So just drop it.
243 dnl Search the library lib$name in $additional_libdir and $LDFLAGS
244 dnl and the already constructed $LIBNAME/$LTLIBNAME.
249 eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
250 if test -n "$acl_shlibext"; then
251 shrext=".$acl_shlibext" # typically: shrext=.so
255 if test $use_additional = yes; then
256 dir="$additional_libdir"
257 dnl The same code as in the loop below:
258 dnl First look for a shared library.
259 if test -n "$acl_shlibext"; then
260 if test -f "$dir/$libname$shrext"; then
262 found_so="$dir/$libname$shrext"
264 if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
266 for f in "$libname$shrext".*; do echo "$f"; done \
267 | sed -e "s,^$libname$shrext\\\\.,," \
268 | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
269 | sed 1q ) 2>/dev/null`
270 if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
272 found_so="$dir/$libname$shrext.$ver"
275 eval library_names=\"$acl_library_names_spec\"
276 for f in $library_names; do
277 if test -f "$dir/$f"; then
286 dnl Then look for a static library.
287 if test "X$found_dir" = "X"; then
288 if test -f "$dir/$libname.$acl_libext"; then
290 found_a="$dir/$libname.$acl_libext"
293 if test "X$found_dir" != "X"; then
294 if test -f "$dir/$libname.la"; then
295 found_la="$dir/$libname.la"
299 if test "X$found_dir" = "X"; then
300 for x in $LDFLAGS $LTLIB[]NAME; do
301 AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
304 dir=`echo "X$x" | sed -e 's/^X-L//'`
305 dnl First look for a shared library.
306 if test -n "$acl_shlibext"; then
307 if test -f "$dir/$libname$shrext"; then
309 found_so="$dir/$libname$shrext"
311 if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
313 for f in "$libname$shrext".*; do echo "$f"; done \
314 | sed -e "s,^$libname$shrext\\\\.,," \
315 | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
316 | sed 1q ) 2>/dev/null`
317 if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
319 found_so="$dir/$libname$shrext.$ver"
322 eval library_names=\"$acl_library_names_spec\"
323 for f in $library_names; do
324 if test -f "$dir/$f"; then
333 dnl Then look for a static library.
334 if test "X$found_dir" = "X"; then
335 if test -f "$dir/$libname.$acl_libext"; then
337 found_a="$dir/$libname.$acl_libext"
340 if test "X$found_dir" != "X"; then
341 if test -f "$dir/$libname.la"; then
342 found_la="$dir/$libname.la"
347 if test "X$found_dir" != "X"; then
352 if test "X$found_dir" != "X"; then
353 dnl Found the library.
354 LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
355 if test "X$found_so" != "X"; then
356 dnl Linking with a shared library. We attempt to hardcode its
357 dnl directory into the executable's runpath, unless it's the
358 dnl standard /usr/lib.
359 if test "$enable_rpath" = no \
360 || test "X$found_dir" = "X/usr/$acl_libdirstem" \
361 || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
362 dnl No hardcoding is needed.
363 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
365 dnl Use an explicit option to hardcode DIR into the resulting
367 dnl Potentially add DIR to ltrpathdirs.
368 dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
370 for x in $ltrpathdirs; do
371 if test "X$x" = "X$found_dir"; then
376 if test -z "$haveit"; then
377 ltrpathdirs="$ltrpathdirs $found_dir"
379 dnl The hardcoding into $LIBNAME is system dependent.
380 if test "$acl_hardcode_direct" = yes; then
381 dnl Using DIR/libNAME.so during linking hardcodes DIR into the
382 dnl resulting binary.
383 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
385 if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
386 dnl Use an explicit option to hardcode DIR into the resulting
388 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
389 dnl Potentially add DIR to rpathdirs.
390 dnl The rpathdirs will be appended to $LIBNAME at the end.
392 for x in $rpathdirs; do
393 if test "X$x" = "X$found_dir"; then
398 if test -z "$haveit"; then
399 rpathdirs="$rpathdirs $found_dir"
402 dnl Rely on "-L$found_dir".
403 dnl But don't add it if it's already contained in the LDFLAGS
404 dnl or the already constructed $LIBNAME
406 for x in $LDFLAGS $LIB[]NAME; do
407 AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
408 if test "X$x" = "X-L$found_dir"; then
413 if test -z "$haveit"; then
414 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
416 if test "$acl_hardcode_minus_L" != no; then
417 dnl FIXME: Not sure whether we should use
418 dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
420 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
422 dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH
423 dnl here, because this doesn't fit in flags passed to the
424 dnl compiler. So give up. No hardcoding. This affects only
425 dnl very old systems.
426 dnl FIXME: Not sure whether we should use
427 dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
429 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
435 if test "X$found_a" != "X"; then
436 dnl Linking with a static library.
437 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
439 dnl We shouldn't come here, but anyway it's good to have a
441 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
444 dnl Assume the include files are nearby.
445 additional_includedir=
447 */$acl_libdirstem | */$acl_libdirstem/)
448 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
449 LIB[]NAME[]_PREFIX="$basedir"
450 additional_includedir="$basedir/include"
452 */$acl_libdirstem2 | */$acl_libdirstem2/)
453 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
454 LIB[]NAME[]_PREFIX="$basedir"
455 additional_includedir="$basedir/include"
458 if test "X$additional_includedir" != "X"; then
459 dnl Potentially add $additional_includedir to $INCNAME.
461 dnl 1. if it's the standard /usr/include,
462 dnl 2. if it's /usr/local/include and we are using GCC on Linux,
463 dnl 3. if it's already present in $CPPFLAGS or the already
464 dnl constructed $INCNAME,
465 dnl 4. if it doesn't exist as a directory.
466 if test "X$additional_includedir" != "X/usr/include"; then
468 if test "X$additional_includedir" = "X/usr/local/include"; then
469 if test -n "$GCC"; then
471 linux* | gnu* | k*bsd*-gnu) haveit=yes;;
475 if test -z "$haveit"; then
476 for x in $CPPFLAGS $INC[]NAME; do
477 AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
478 if test "X$x" = "X-I$additional_includedir"; then
483 if test -z "$haveit"; then
484 if test -d "$additional_includedir"; then
485 dnl Really add $additional_includedir to $INCNAME.
486 INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
492 dnl Look for dependencies.
493 if test -n "$found_la"; then
494 dnl Read the .la file. It defines the variables
495 dnl dlname, library_names, old_library, dependency_libs, current,
496 dnl age, revision, installed, dlopen, dlpreopen, libdir.
497 save_libdir="$libdir"
499 */* | *\\*) . "$found_la" ;;
500 *) . "./$found_la" ;;
502 libdir="$save_libdir"
503 dnl We use only dependency_libs.
504 for dep in $dependency_libs; do
507 additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
508 dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
510 dnl 1. if it's the standard /usr/lib,
511 dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
512 dnl 3. if it's already present in $LDFLAGS or the already
513 dnl constructed $LIBNAME,
514 dnl 4. if it doesn't exist as a directory.
515 if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
516 && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
518 if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
519 || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
520 if test -n "$GCC"; then
522 linux* | gnu* | k*bsd*-gnu) haveit=yes;;
526 if test -z "$haveit"; then
528 for x in $LDFLAGS $LIB[]NAME; do
529 AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
530 if test "X$x" = "X-L$additional_libdir"; then
535 if test -z "$haveit"; then
536 if test -d "$additional_libdir"; then
537 dnl Really add $additional_libdir to $LIBNAME.
538 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
542 for x in $LDFLAGS $LTLIB[]NAME; do
543 AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
544 if test "X$x" = "X-L$additional_libdir"; then
549 if test -z "$haveit"; then
550 if test -d "$additional_libdir"; then
551 dnl Really add $additional_libdir to $LTLIBNAME.
552 LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
559 dir=`echo "X$dep" | sed -e 's/^X-R//'`
560 if test "$enable_rpath" != no; then
561 dnl Potentially add DIR to rpathdirs.
562 dnl The rpathdirs will be appended to $LIBNAME at the end.
564 for x in $rpathdirs; do
565 if test "X$x" = "X$dir"; then
570 if test -z "$haveit"; then
571 rpathdirs="$rpathdirs $dir"
573 dnl Potentially add DIR to ltrpathdirs.
574 dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
576 for x in $ltrpathdirs; do
577 if test "X$x" = "X$dir"; then
582 if test -z "$haveit"; then
583 ltrpathdirs="$ltrpathdirs $dir"
588 dnl Handle this in the next round.
589 names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
592 dnl Handle this in the next round. Throw away the .la's
593 dnl directory; it is already contained in a preceding -L
595 names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
598 dnl Most likely an immediate library name.
599 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
600 LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
606 dnl Didn't find the library; assume it is in the system directories
607 dnl known to the linker and runtime loader. (All the system
608 dnl directories known to the linker should also be known to the
609 dnl runtime loader, otherwise the system is severely misconfigured.)
610 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
611 LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
617 if test "X$rpathdirs" != "X"; then
618 if test -n "$acl_hardcode_libdir_separator"; then
619 dnl Weird platform: only the last -rpath option counts, the user must
620 dnl pass all path elements in one option. We can arrange that for a
621 dnl single library, but not when more than one $LIBNAMEs are used.
623 for found_dir in $rpathdirs; do
624 alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
626 dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl.
627 acl_save_libdir="$libdir"
629 eval flag=\"$acl_hardcode_libdir_flag_spec\"
630 libdir="$acl_save_libdir"
631 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
633 dnl The -rpath options are cumulative.
634 for found_dir in $rpathdirs; do
635 acl_save_libdir="$libdir"
637 eval flag=\"$acl_hardcode_libdir_flag_spec\"
638 libdir="$acl_save_libdir"
639 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
643 if test "X$ltrpathdirs" != "X"; then
644 dnl When using libtool, the option that works for both libraries and
645 dnl executables is -R. The -R options are cumulative.
646 for found_dir in $ltrpathdirs; do
647 LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
657 dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
658 dnl unless already present in VAR.
659 dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
660 dnl contains two or three consecutive elements that belong together.
661 AC_DEFUN([AC_LIB_APPENDTOVAR],
663 for element in [$2]; do
666 AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
667 if test "X$x" = "X$element"; then
672 if test -z "$haveit"; then
673 [$1]="${[$1]}${[$1]:+ }$element"
678 dnl For those cases where a variable contains several -L and -l options
679 dnl referring to unknown libraries and directories, this macro determines the
680 dnl necessary additional linker options for the runtime path.
681 dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL])
682 dnl sets LDADDVAR to linker options needed together with LIBSVALUE.
683 dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed,
684 dnl otherwise linking without libtool is assumed.
685 AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
687 AC_REQUIRE([AC_LIB_RPATH])
688 AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
690 if test "$enable_rpath" != no; then
691 if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
692 dnl Use an explicit option to hardcode directories into the resulting
697 if test -n "$next"; then
699 dnl No need to hardcode the standard /usr/lib.
700 if test "X$dir" != "X/usr/$acl_libdirstem" \
701 && test "X$dir" != "X/usr/$acl_libdirstem2"; then
702 rpathdirs="$rpathdirs $dir"
708 -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
709 dnl No need to hardcode the standard /usr/lib.
710 if test "X$dir" != "X/usr/$acl_libdirstem" \
711 && test "X$dir" != "X/usr/$acl_libdirstem2"; then
712 rpathdirs="$rpathdirs $dir"
719 if test "X$rpathdirs" != "X"; then
720 if test -n ""$3""; then
721 dnl libtool is used for linking. Use -R options.
722 for dir in $rpathdirs; do
723 $1="${$1}${$1:+ }-R$dir"
726 dnl The linker is used for linking directly.
727 if test -n "$acl_hardcode_libdir_separator"; then
728 dnl Weird platform: only the last -rpath option counts, the user
729 dnl must pass all path elements in one option.
731 for dir in $rpathdirs; do
732 alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir"
734 acl_save_libdir="$libdir"
736 eval flag=\"$acl_hardcode_libdir_flag_spec\"
737 libdir="$acl_save_libdir"
740 dnl The -rpath options are cumulative.
741 for dir in $rpathdirs; do
742 acl_save_libdir="$libdir"
744 eval flag=\"$acl_hardcode_libdir_flag_spec\"
745 libdir="$acl_save_libdir"
746 $1="${$1}${$1:+ }$flag"