1 # lib-link.m4 serial 17 (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 if test "$name" = '$1'; then
450 LIB[]NAME[]_PREFIX="$basedir"
452 additional_includedir="$basedir/include"
454 */$acl_libdirstem2 | */$acl_libdirstem2/)
455 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
456 if test "$name" = '$1'; then
457 LIB[]NAME[]_PREFIX="$basedir"
459 additional_includedir="$basedir/include"
462 if test "X$additional_includedir" != "X"; then
463 dnl Potentially add $additional_includedir to $INCNAME.
465 dnl 1. if it's the standard /usr/include,
466 dnl 2. if it's /usr/local/include and we are using GCC on Linux,
467 dnl 3. if it's already present in $CPPFLAGS or the already
468 dnl constructed $INCNAME,
469 dnl 4. if it doesn't exist as a directory.
470 if test "X$additional_includedir" != "X/usr/include"; then
472 if test "X$additional_includedir" = "X/usr/local/include"; then
473 if test -n "$GCC"; then
475 linux* | gnu* | k*bsd*-gnu) haveit=yes;;
479 if test -z "$haveit"; then
480 for x in $CPPFLAGS $INC[]NAME; do
481 AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
482 if test "X$x" = "X-I$additional_includedir"; then
487 if test -z "$haveit"; then
488 if test -d "$additional_includedir"; then
489 dnl Really add $additional_includedir to $INCNAME.
490 INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
496 dnl Look for dependencies.
497 if test -n "$found_la"; then
498 dnl Read the .la file. It defines the variables
499 dnl dlname, library_names, old_library, dependency_libs, current,
500 dnl age, revision, installed, dlopen, dlpreopen, libdir.
501 save_libdir="$libdir"
503 */* | *\\*) . "$found_la" ;;
504 *) . "./$found_la" ;;
506 libdir="$save_libdir"
507 dnl We use only dependency_libs.
508 for dep in $dependency_libs; do
511 additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
512 dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
514 dnl 1. if it's the standard /usr/lib,
515 dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
516 dnl 3. if it's already present in $LDFLAGS or the already
517 dnl constructed $LIBNAME,
518 dnl 4. if it doesn't exist as a directory.
519 if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
520 && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
522 if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
523 || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
524 if test -n "$GCC"; then
526 linux* | gnu* | k*bsd*-gnu) haveit=yes;;
530 if test -z "$haveit"; then
532 for x in $LDFLAGS $LIB[]NAME; do
533 AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
534 if test "X$x" = "X-L$additional_libdir"; then
539 if test -z "$haveit"; then
540 if test -d "$additional_libdir"; then
541 dnl Really add $additional_libdir to $LIBNAME.
542 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
546 for x in $LDFLAGS $LTLIB[]NAME; do
547 AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
548 if test "X$x" = "X-L$additional_libdir"; then
553 if test -z "$haveit"; then
554 if test -d "$additional_libdir"; then
555 dnl Really add $additional_libdir to $LTLIBNAME.
556 LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
563 dir=`echo "X$dep" | sed -e 's/^X-R//'`
564 if test "$enable_rpath" != no; then
565 dnl Potentially add DIR to rpathdirs.
566 dnl The rpathdirs will be appended to $LIBNAME at the end.
568 for x in $rpathdirs; do
569 if test "X$x" = "X$dir"; then
574 if test -z "$haveit"; then
575 rpathdirs="$rpathdirs $dir"
577 dnl Potentially add DIR to ltrpathdirs.
578 dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
580 for x in $ltrpathdirs; do
581 if test "X$x" = "X$dir"; then
586 if test -z "$haveit"; then
587 ltrpathdirs="$ltrpathdirs $dir"
592 dnl Handle this in the next round.
593 names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
596 dnl Handle this in the next round. Throw away the .la's
597 dnl directory; it is already contained in a preceding -L
599 names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
602 dnl Most likely an immediate library name.
603 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
604 LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
610 dnl Didn't find the library; assume it is in the system directories
611 dnl known to the linker and runtime loader. (All the system
612 dnl directories known to the linker should also be known to the
613 dnl runtime loader, otherwise the system is severely misconfigured.)
614 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
615 LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
621 if test "X$rpathdirs" != "X"; then
622 if test -n "$acl_hardcode_libdir_separator"; then
623 dnl Weird platform: only the last -rpath option counts, the user must
624 dnl pass all path elements in one option. We can arrange that for a
625 dnl single library, but not when more than one $LIBNAMEs are used.
627 for found_dir in $rpathdirs; do
628 alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
630 dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl.
631 acl_save_libdir="$libdir"
633 eval flag=\"$acl_hardcode_libdir_flag_spec\"
634 libdir="$acl_save_libdir"
635 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
637 dnl The -rpath options are cumulative.
638 for found_dir in $rpathdirs; do
639 acl_save_libdir="$libdir"
641 eval flag=\"$acl_hardcode_libdir_flag_spec\"
642 libdir="$acl_save_libdir"
643 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
647 if test "X$ltrpathdirs" != "X"; then
648 dnl When using libtool, the option that works for both libraries and
649 dnl executables is -R. The -R options are cumulative.
650 for found_dir in $ltrpathdirs; do
651 LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
661 dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
662 dnl unless already present in VAR.
663 dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
664 dnl contains two or three consecutive elements that belong together.
665 AC_DEFUN([AC_LIB_APPENDTOVAR],
667 for element in [$2]; do
670 AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
671 if test "X$x" = "X$element"; then
676 if test -z "$haveit"; then
677 [$1]="${[$1]}${[$1]:+ }$element"
682 dnl For those cases where a variable contains several -L and -l options
683 dnl referring to unknown libraries and directories, this macro determines the
684 dnl necessary additional linker options for the runtime path.
685 dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL])
686 dnl sets LDADDVAR to linker options needed together with LIBSVALUE.
687 dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed,
688 dnl otherwise linking without libtool is assumed.
689 AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
691 AC_REQUIRE([AC_LIB_RPATH])
692 AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
694 if test "$enable_rpath" != no; then
695 if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
696 dnl Use an explicit option to hardcode directories into the resulting
701 if test -n "$next"; then
703 dnl No need to hardcode the standard /usr/lib.
704 if test "X$dir" != "X/usr/$acl_libdirstem" \
705 && test "X$dir" != "X/usr/$acl_libdirstem2"; then
706 rpathdirs="$rpathdirs $dir"
712 -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
713 dnl No need to hardcode the standard /usr/lib.
714 if test "X$dir" != "X/usr/$acl_libdirstem" \
715 && test "X$dir" != "X/usr/$acl_libdirstem2"; then
716 rpathdirs="$rpathdirs $dir"
723 if test "X$rpathdirs" != "X"; then
724 if test -n ""$3""; then
725 dnl libtool is used for linking. Use -R options.
726 for dir in $rpathdirs; do
727 $1="${$1}${$1:+ }-R$dir"
730 dnl The linker is used for linking directly.
731 if test -n "$acl_hardcode_libdir_separator"; then
732 dnl Weird platform: only the last -rpath option counts, the user
733 dnl must pass all path elements in one option.
735 for dir in $rpathdirs; do
736 alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir"
738 acl_save_libdir="$libdir"
740 eval flag=\"$acl_hardcode_libdir_flag_spec\"
741 libdir="$acl_save_libdir"
744 dnl The -rpath options are cumulative.
745 for dir in $rpathdirs; do
746 acl_save_libdir="$libdir"
748 eval flag=\"$acl_hardcode_libdir_flag_spec\"
749 libdir="$acl_save_libdir"
750 $1="${$1}${$1:+ }$flag"