1
# lib-link.m4 serial 18 (gettext-0.18)
2
dnl Copyright (C) 2001-2009 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, [system])
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], [$5])
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.
134
AC_ARG_ENABLE([rpath],
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, system]) searches for
161
dnl libname and the libraries corresponding to explicit and implicit
163
dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
164
dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found
165
dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
166
dnl If system==system, -isystem is used instead of -I
167
AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
169
AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
170
pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
171
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
172
pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])])
173
pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-],
174
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
175
pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])])
176
dnl Autoconf >= 2.61 supports dots in --with options.
177
pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit(PACK,[.],[_])],PACK)])
178
dnl By default, look in $includedir and $libdir.
180
if test "x$GCC" = "xyes" -a "x$3" = "xsystem"
187
AC_LIB_WITH_FINAL_PREFIX([
188
eval additional_includedir=\"$includedir\"
189
eval additional_libdir=\"$libdir\"
191
AC_ARG_WITH(P_A_C_K[-prefix],
192
[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib
193
--without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]],
195
if test "X$withval" = "Xno"; then
198
if test "X$withval" = "X"; then
199
AC_LIB_WITH_FINAL_PREFIX([
200
eval additional_includedir=\"$includedir\"
201
eval additional_libdir=\"$libdir\"
204
additional_includedir="$withval/include"
205
additional_libdir="$withval/$acl_libdirstem"
206
if test "$acl_libdirstem2" != "$acl_libdirstem" \
207
&& ! test -d "$withval/$acl_libdirstem"; then
208
additional_libdir="$withval/$acl_libdirstem2"
213
dnl Search the library and its dependencies in $additional_libdir and
214
dnl $LDFLAGS. Using breadth-first-seach.
221
names_already_handled=
222
names_next_round='$1 $2'
223
while test -n "$names_next_round"; do
224
names_this_round="$names_next_round"
226
for name in $names_this_round; do
228
for n in $names_already_handled; do
229
if test "$n" = "$name"; then
234
if test -z "$already_handled"; then
235
names_already_handled="$names_already_handled $name"
236
dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
237
dnl or AC_LIB_HAVE_LINKFLAGS call.
238
uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
239
eval value=\"\$HAVE_LIB$uppername\"
240
if test -n "$value"; then
241
if test "$value" = yes; then
242
eval value=\"\$LIB$uppername\"
243
test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
244
eval value=\"\$LTLIB$uppername\"
245
test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
247
dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
248
dnl that this library doesn't exist. So just drop it.
252
dnl Search the library lib$name in $additional_libdir and $LDFLAGS
253
dnl and the already constructed $LIBNAME/$LTLIBNAME.
258
eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
259
if test -n "$acl_shlibext"; then
260
shrext=".$acl_shlibext" # typically: shrext=.so
264
if test $use_additional = yes; then
265
dir="$additional_libdir"
266
dnl The same code as in the loop below:
267
dnl First look for a shared library.
268
if test -n "$acl_shlibext"; then
269
if test -f "$dir/$libname$shrext"; then
271
found_so="$dir/$libname$shrext"
273
if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
275
for f in "$libname$shrext".*; do echo "$f"; done \
276
| sed -e "s,^$libname$shrext\\\\.,," \
277
| sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
278
| sed 1q ) 2>/dev/null`
279
if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
281
found_so="$dir/$libname$shrext.$ver"
284
eval library_names=\"$acl_library_names_spec\"
285
for f in $library_names; do
286
if test -f "$dir/$f"; then
295
dnl Then look for a static library.
296
if test "X$found_dir" = "X"; then
297
if test -f "$dir/$libname.$acl_libext"; then
299
found_a="$dir/$libname.$acl_libext"
302
if test "X$found_dir" != "X"; then
303
if test -f "$dir/$libname.la"; then
304
found_la="$dir/$libname.la"
308
if test "X$found_dir" = "X"; then
309
for x in $LDFLAGS $LTLIB[]NAME; do
310
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
313
dir=`echo "X$x" | sed -e 's/^X-L//'`
314
dnl First look for a shared library.
315
if test -n "$acl_shlibext"; then
316
if test -f "$dir/$libname$shrext"; then
318
found_so="$dir/$libname$shrext"
320
if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
322
for f in "$libname$shrext".*; do echo "$f"; done \
323
| sed -e "s,^$libname$shrext\\\\.,," \
324
| sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
325
| sed 1q ) 2>/dev/null`
326
if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
328
found_so="$dir/$libname$shrext.$ver"
331
eval library_names=\"$acl_library_names_spec\"
332
for f in $library_names; do
333
if test -f "$dir/$f"; then
342
dnl Then look for a static library.
343
if test "X$found_dir" = "X"; then
344
if test -f "$dir/$libname.$acl_libext"; then
346
found_a="$dir/$libname.$acl_libext"
349
if test "X$found_dir" != "X"; then
350
if test -f "$dir/$libname.la"; then
351
found_la="$dir/$libname.la"
356
if test "X$found_dir" != "X"; then
361
if test "X$found_dir" != "X"; then
362
dnl Found the library.
363
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
364
if test "X$found_so" != "X"; then
365
dnl Linking with a shared library. We attempt to hardcode its
366
dnl directory into the executable's runpath, unless it's the
367
dnl standard /usr/lib.
368
if test "$enable_rpath" = no \
369
|| test "X$found_dir" = "X/usr/$acl_libdirstem" \
370
|| test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
371
dnl No hardcoding is needed.
372
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
374
dnl Use an explicit option to hardcode DIR into the resulting
376
dnl Potentially add DIR to ltrpathdirs.
377
dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
379
for x in $ltrpathdirs; do
380
if test "X$x" = "X$found_dir"; then
385
if test -z "$haveit"; then
386
ltrpathdirs="$ltrpathdirs $found_dir"
388
dnl The hardcoding into $LIBNAME is system dependent.
389
if test "$acl_hardcode_direct" = yes; then
390
dnl Using DIR/libNAME.so during linking hardcodes DIR into the
391
dnl resulting binary.
392
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
394
if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
395
dnl Use an explicit option to hardcode DIR into the resulting
397
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
398
dnl Potentially add DIR to rpathdirs.
399
dnl The rpathdirs will be appended to $LIBNAME at the end.
401
for x in $rpathdirs; do
402
if test "X$x" = "X$found_dir"; then
407
if test -z "$haveit"; then
408
rpathdirs="$rpathdirs $found_dir"
411
dnl Rely on "-L$found_dir".
412
dnl But don't add it if it's already contained in the LDFLAGS
413
dnl or the already constructed $LIBNAME
415
for x in $LDFLAGS $LIB[]NAME; do
416
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
417
if test "X$x" = "X-L$found_dir"; then
422
if test -z "$haveit"; then
423
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
425
if test "$acl_hardcode_minus_L" != no; then
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:+ }$found_so"
431
dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH
432
dnl here, because this doesn't fit in flags passed to the
433
dnl compiler. So give up. No hardcoding. This affects only
434
dnl very old systems.
435
dnl FIXME: Not sure whether we should use
436
dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
438
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
444
if test "X$found_a" != "X"; then
445
dnl Linking with a static library.
446
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
448
dnl We shouldn't come here, but anyway it's good to have a
450
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
453
dnl Assume the include files are nearby.
454
additional_includedir=
456
*/$acl_libdirstem | */$acl_libdirstem/)
457
basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
458
if test "$name" = '$1'; then
459
LIB[]NAME[]_PREFIX="$basedir"
461
additional_includedir="$basedir/include"
463
*/$acl_libdirstem2 | */$acl_libdirstem2/)
464
basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
465
if test "$name" = '$1'; then
466
LIB[]NAME[]_PREFIX="$basedir"
468
additional_includedir="$basedir/include"
471
if test "X$additional_includedir" != "X"; then
472
dnl Potentially add $additional_includedir to $INCNAME.
474
dnl 1. if it's the standard /usr/include,
475
dnl 2. if it's /usr/local/include and we are using GCC on Linux,
476
dnl 3. if it's already present in $CPPFLAGS or the already
477
dnl constructed $INCNAME,
478
dnl 4. if it doesn't exist as a directory.
479
if test "X$additional_includedir" != "X/usr/include"; then
481
if test "X$additional_includedir" = "X/usr/local/include"; then
482
if test -n "$GCC"; then
484
linux* | gnu* | k*bsd*-gnu) haveit=yes;;
488
if test -z "$haveit"; then
489
for x in $CPPFLAGS $INC[]NAME; do
490
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
491
if test "X$x" = "X${i_system}$additional_includedir"; then
496
if test -z "$haveit"; then
497
if test -d "$additional_includedir"; then
498
dnl Really add $additional_includedir to $INCNAME.
499
INC[]NAME="${INC[]NAME}${INC[]NAME:+ }${i_system}$additional_includedir"
505
dnl Look for dependencies.
506
if test -n "$found_la"; then
507
dnl Read the .la file. It defines the variables
508
dnl dlname, library_names, old_library, dependency_libs, current,
509
dnl age, revision, installed, dlopen, dlpreopen, libdir.
510
save_libdir="$libdir"
512
*/* | *\\*) . "$found_la" ;;
513
*) . "./$found_la" ;;
515
libdir="$save_libdir"
516
dnl We use only dependency_libs.
517
for dep in $dependency_libs; do
520
additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
521
dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
523
dnl 1. if it's the standard /usr/lib,
524
dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
525
dnl 3. if it's already present in $LDFLAGS or the already
526
dnl constructed $LIBNAME,
527
dnl 4. if it doesn't exist as a directory.
528
if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
529
&& test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
531
if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
532
|| test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
533
if test -n "$GCC"; then
535
linux* | gnu* | k*bsd*-gnu) haveit=yes;;
539
if test -z "$haveit"; then
541
for x in $LDFLAGS $LIB[]NAME; do
542
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
543
if test "X$x" = "X-L$additional_libdir"; then
548
if test -z "$haveit"; then
549
if test -d "$additional_libdir"; then
550
dnl Really add $additional_libdir to $LIBNAME.
551
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
555
for x in $LDFLAGS $LTLIB[]NAME; do
556
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
557
if test "X$x" = "X-L$additional_libdir"; then
562
if test -z "$haveit"; then
563
if test -d "$additional_libdir"; then
564
dnl Really add $additional_libdir to $LTLIBNAME.
565
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
572
dir=`echo "X$dep" | sed -e 's/^X-R//'`
573
if test "$enable_rpath" != no; then
574
dnl Potentially add DIR to rpathdirs.
575
dnl The rpathdirs will be appended to $LIBNAME at the end.
577
for x in $rpathdirs; do
578
if test "X$x" = "X$dir"; then
583
if test -z "$haveit"; then
584
rpathdirs="$rpathdirs $dir"
586
dnl Potentially add DIR to ltrpathdirs.
587
dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
589
for x in $ltrpathdirs; do
590
if test "X$x" = "X$dir"; then
595
if test -z "$haveit"; then
596
ltrpathdirs="$ltrpathdirs $dir"
601
dnl Handle this in the next round.
602
names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
605
dnl Handle this in the next round. Throw away the .la's
606
dnl directory; it is already contained in a preceding -L
608
names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
611
dnl Most likely an immediate library name.
612
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
613
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
619
dnl Didn't find the library; assume it is in the system directories
620
dnl known to the linker and runtime loader. (All the system
621
dnl directories known to the linker should also be known to the
622
dnl runtime loader, otherwise the system is severely misconfigured.)
623
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
624
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
630
if test "X$rpathdirs" != "X"; then
631
if test -n "$acl_hardcode_libdir_separator"; then
632
dnl Weird platform: only the last -rpath option counts, the user must
633
dnl pass all path elements in one option. We can arrange that for a
634
dnl single library, but not when more than one $LIBNAMEs are used.
636
for found_dir in $rpathdirs; do
637
alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
639
dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl.
640
acl_save_libdir="$libdir"
642
eval flag=\"$acl_hardcode_libdir_flag_spec\"
643
libdir="$acl_save_libdir"
644
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
646
dnl The -rpath options are cumulative.
647
for found_dir in $rpathdirs; do
648
acl_save_libdir="$libdir"
650
eval flag=\"$acl_hardcode_libdir_flag_spec\"
651
libdir="$acl_save_libdir"
652
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
656
if test "X$ltrpathdirs" != "X"; then
657
dnl When using libtool, the option that works for both libraries and
658
dnl executables is -R. The -R options are cumulative.
659
for found_dir in $ltrpathdirs; do
660
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
670
dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
671
dnl unless already present in VAR.
672
dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
673
dnl contains two or three consecutive elements that belong together.
674
AC_DEFUN([AC_LIB_APPENDTOVAR],
676
for element in [$2]; do
679
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
680
if test "X$x" = "X$element"; then
685
if test -z "$haveit"; then
686
[$1]="${[$1]}${[$1]:+ }$element"
691
dnl For those cases where a variable contains several -L and -l options
692
dnl referring to unknown libraries and directories, this macro determines the
693
dnl necessary additional linker options for the runtime path.
694
dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL])
695
dnl sets LDADDVAR to linker options needed together with LIBSVALUE.
696
dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed,
697
dnl otherwise linking without libtool is assumed.
698
AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
700
AC_REQUIRE([AC_LIB_RPATH])
701
AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
703
if test "$enable_rpath" != no; then
704
if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
705
dnl Use an explicit option to hardcode directories into the resulting
710
if test -n "$next"; then
712
dnl No need to hardcode the standard /usr/lib.
713
if test "X$dir" != "X/usr/$acl_libdirstem" \
714
&& test "X$dir" != "X/usr/$acl_libdirstem2"; then
715
rpathdirs="$rpathdirs $dir"
721
-L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
722
dnl No need to hardcode the standard /usr/lib.
723
if test "X$dir" != "X/usr/$acl_libdirstem" \
724
&& test "X$dir" != "X/usr/$acl_libdirstem2"; then
725
rpathdirs="$rpathdirs $dir"
732
if test "X$rpathdirs" != "X"; then
733
if test -n ""$3""; then
734
dnl libtool is used for linking. Use -R options.
735
for dir in $rpathdirs; do
736
$1="${$1}${$1:+ }-R$dir"
739
dnl The linker is used for linking directly.
740
if test -n "$acl_hardcode_libdir_separator"; then
741
dnl Weird platform: only the last -rpath option counts, the user
742
dnl must pass all path elements in one option.
744
for dir in $rpathdirs; do
745
alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir"
747
acl_save_libdir="$libdir"
749
eval flag=\"$acl_hardcode_libdir_flag_spec\"
750
libdir="$acl_save_libdir"
753
dnl The -rpath options are cumulative.
754
for dir in $rpathdirs; do
755
acl_save_libdir="$libdir"
757
eval flag=\"$acl_hardcode_libdir_flag_spec\"
758
libdir="$acl_save_libdir"
759
$1="${$1}${$1:+ }$flag"