summaryrefslogtreecommitdiffstats
path: root/gl/m4/lib-link.m4
diff options
context:
space:
mode:
Diffstat (limited to 'gl/m4/lib-link.m4')
-rw-r--r--gl/m4/lib-link.m4103
1 files changed, 76 insertions, 27 deletions
diff --git a/gl/m4/lib-link.m4 b/gl/m4/lib-link.m4
index e3d26fc..fcd3391 100644
--- a/gl/m4/lib-link.m4
+++ b/gl/m4/lib-link.m4
@@ -1,12 +1,12 @@
1# lib-link.m4 serial 13 (gettext-0.17) 1# lib-link.m4 serial 18 (gettext-0.18)
2dnl Copyright (C) 2001-2007 Free Software Foundation, Inc. 2dnl Copyright (C) 2001-2009 Free Software Foundation, Inc.
3dnl This file is free software; the Free Software Foundation 3dnl This file is free software; the Free Software Foundation
4dnl gives unlimited permission to copy and/or distribute it, 4dnl gives unlimited permission to copy and/or distribute it,
5dnl with or without modifications, as long as this notice is preserved. 5dnl with or without modifications, as long as this notice is preserved.
6 6
7dnl From Bruno Haible. 7dnl From Bruno Haible.
8 8
9AC_PREREQ(2.54) 9AC_PREREQ([2.54])
10 10
11dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and 11dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
12dnl the libraries corresponding to explicit and implicit dependencies. 12dnl the libraries corresponding to explicit and implicit dependencies.
@@ -18,9 +18,9 @@ AC_DEFUN([AC_LIB_LINKFLAGS],
18[ 18[
19 AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) 19 AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
20 AC_REQUIRE([AC_LIB_RPATH]) 20 AC_REQUIRE([AC_LIB_RPATH])
21 define([Name],[translit([$1],[./-], [___])]) 21 pushdef([Name],[translit([$1],[./-], [___])])
22 define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], 22 pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
23 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) 23 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
24 AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ 24 AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
25 AC_LIB_LINKFLAGS_BODY([$1], [$2]) 25 AC_LIB_LINKFLAGS_BODY([$1], [$2])
26 ac_cv_lib[]Name[]_libs="$LIB[]NAME" 26 ac_cv_lib[]Name[]_libs="$LIB[]NAME"
@@ -39,8 +39,8 @@ AC_DEFUN([AC_LIB_LINKFLAGS],
39 dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the 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. 40 dnl results of this search when this library appears as a dependency.
41 HAVE_LIB[]NAME=yes 41 HAVE_LIB[]NAME=yes
42 undefine([Name]) 42 popdef([NAME])
43 undefine([NAME]) 43 popdef([Name])
44]) 44])
45 45
46dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) 46dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
@@ -57,9 +57,9 @@ AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
57[ 57[
58 AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) 58 AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
59 AC_REQUIRE([AC_LIB_RPATH]) 59 AC_REQUIRE([AC_LIB_RPATH])
60 define([Name],[translit([$1],[./-], [___])]) 60 pushdef([Name],[translit([$1],[./-], [___])])
61 define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], 61 pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
62 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) 62 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
63 63
64 dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME 64 dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
65 dnl accordingly. 65 dnl accordingly.
@@ -95,8 +95,8 @@ AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
95 AC_SUBST([LIB]NAME) 95 AC_SUBST([LIB]NAME)
96 AC_SUBST([LTLIB]NAME) 96 AC_SUBST([LTLIB]NAME)
97 AC_SUBST([LIB]NAME[_PREFIX]) 97 AC_SUBST([LIB]NAME[_PREFIX])
98 undefine([Name]) 98 popdef([NAME])
99 undefine([NAME]) 99 popdef([Name])
100]) 100])
101 101
102dnl Determine the platform dependent parameters needed to use rpath: 102dnl Determine the platform dependent parameters needed to use rpath:
@@ -114,7 +114,7 @@ AC_DEFUN([AC_LIB_RPATH],
114 AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld 114 AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
115 AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host 115 AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
116 AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir 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, [ 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" \ 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 119 ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
120 . ./conftest.sh 120 . ./conftest.sh
@@ -131,11 +131,32 @@ AC_DEFUN([AC_LIB_RPATH],
131 acl_hardcode_direct="$acl_cv_hardcode_direct" 131 acl_hardcode_direct="$acl_cv_hardcode_direct"
132 acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" 132 acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
133 dnl Determine whether the user wants rpath handling at all. 133 dnl Determine whether the user wants rpath handling at all.
134 AC_ARG_ENABLE(rpath, 134 AC_ARG_ENABLE([rpath],
135 [ --disable-rpath do not hardcode runtime library paths], 135 [ --disable-rpath do not hardcode runtime library paths],
136 :, enable_rpath=yes) 136 :, enable_rpath=yes)
137]) 137])
138 138
139dnl AC_LIB_FROMPACKAGE(name, package)
140dnl declares that libname comes from the given package. The configure file
141dnl will then not have a --with-libname-prefix option but a
142dnl --with-package-prefix option. Several libraries can come from the same
143dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar
144dnl macro call that searches for libname.
145AC_DEFUN([AC_LIB_FROMPACKAGE],
146[
147 pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
148 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
149 define([acl_frompackage_]NAME, [$2])
150 popdef([NAME])
151 pushdef([PACK],[$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])
156 popdef([PACKUP])
157 popdef([PACK])
158])
159
139dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and 160dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
140dnl the libraries corresponding to explicit and implicit dependencies. 161dnl the libraries corresponding to explicit and implicit dependencies.
141dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. 162dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
@@ -144,19 +165,23 @@ dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
144AC_DEFUN([AC_LIB_LINKFLAGS_BODY], 165AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
145[ 166[
146 AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) 167 AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
147 define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], 168 pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
148 [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])])
149 dnl Autoconf >= 2.61 supports dots in --with options. 174 dnl Autoconf >= 2.61 supports dots in --with options.
150 define([N_A_M_E],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit([$1],[.],[_])],[$1])]) 175 pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit(PACK,[.],[_])],PACK)])
151 dnl By default, look in $includedir and $libdir. 176 dnl By default, look in $includedir and $libdir.
152 use_additional=yes 177 use_additional=yes
153 AC_LIB_WITH_FINAL_PREFIX([ 178 AC_LIB_WITH_FINAL_PREFIX([
154 eval additional_includedir=\"$includedir\" 179 eval additional_includedir=\"$includedir\"
155 eval additional_libdir=\"$libdir\" 180 eval additional_libdir=\"$libdir\"
156 ]) 181 ])
157 AC_LIB_ARG_WITH([lib]N_A_M_E[-prefix], 182 AC_ARG_WITH(P_A_C_K[-prefix],
158[ --with-lib]N_A_M_E[-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib 183[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib
159 --without-lib]N_A_M_E[-prefix don't search for lib$1 in includedir and libdir], 184 --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]],
160[ 185[
161 if test "X$withval" = "Xno"; then 186 if test "X$withval" = "Xno"; then
162 use_additional=no 187 use_additional=no
@@ -169,6 +194,10 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
169 else 194 else
170 additional_includedir="$withval/include" 195 additional_includedir="$withval/include"
171 additional_libdir="$withval/$acl_libdirstem" 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"
200 fi
172 fi 201 fi
173 fi 202 fi
174]) 203])
@@ -327,7 +356,9 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
327 dnl Linking with a shared library. We attempt to hardcode its 356 dnl Linking with a shared library. We attempt to hardcode its
328 dnl directory into the executable's runpath, unless it's the 357 dnl directory into the executable's runpath, unless it's the
329 dnl standard /usr/lib. 358 dnl standard /usr/lib.
330 if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then 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
331 dnl No hardcoding is needed. 362 dnl No hardcoding is needed.
332 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" 363 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
333 else 364 else
@@ -415,7 +446,16 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
415 case "$found_dir" in 446 case "$found_dir" in
416 */$acl_libdirstem | */$acl_libdirstem/) 447 */$acl_libdirstem | */$acl_libdirstem/)
417 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` 448 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
418 LIB[]NAME[]_PREFIX="$basedir" 449 if test "$name" = '$1'; then
450 LIB[]NAME[]_PREFIX="$basedir"
451 fi
452 additional_includedir="$basedir/include"
453 ;;
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"
458 fi
419 additional_includedir="$basedir/include" 459 additional_includedir="$basedir/include"
420 ;; 460 ;;
421 esac 461 esac
@@ -476,9 +516,11 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
476 dnl 3. if it's already present in $LDFLAGS or the already 516 dnl 3. if it's already present in $LDFLAGS or the already
477 dnl constructed $LIBNAME, 517 dnl constructed $LIBNAME,
478 dnl 4. if it doesn't exist as a directory. 518 dnl 4. if it doesn't exist as a directory.
479 if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then 519 if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
520 && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
480 haveit= 521 haveit=
481 if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then 522 if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
523 || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
482 if test -n "$GCC"; then 524 if test -n "$GCC"; then
483 case $host_os in 525 case $host_os in
484 linux* | gnu* | k*bsd*-gnu) haveit=yes;; 526 linux* | gnu* | k*bsd*-gnu) haveit=yes;;
@@ -609,6 +651,11 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
609 LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" 651 LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
610 done 652 done
611 fi 653 fi
654 popdef([P_A_C_K])
655 popdef([PACKLIBS])
656 popdef([PACKUP])
657 popdef([PACK])
658 popdef([NAME])
612]) 659])
613 660
614dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, 661dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
@@ -654,7 +701,8 @@ AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
654 if test -n "$next"; then 701 if test -n "$next"; then
655 dir="$next" 702 dir="$next"
656 dnl No need to hardcode the standard /usr/lib. 703 dnl No need to hardcode the standard /usr/lib.
657 if test "X$dir" != "X/usr/$acl_libdirstem"; then 704 if test "X$dir" != "X/usr/$acl_libdirstem" \
705 && test "X$dir" != "X/usr/$acl_libdirstem2"; then
658 rpathdirs="$rpathdirs $dir" 706 rpathdirs="$rpathdirs $dir"
659 fi 707 fi
660 next= 708 next=
@@ -663,7 +711,8 @@ AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
663 -L) next=yes ;; 711 -L) next=yes ;;
664 -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` 712 -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
665 dnl No need to hardcode the standard /usr/lib. 713 dnl No need to hardcode the standard /usr/lib.
666 if test "X$dir" != "X/usr/$acl_libdirstem"; then 714 if test "X$dir" != "X/usr/$acl_libdirstem" \
715 && test "X$dir" != "X/usr/$acl_libdirstem2"; then
667 rpathdirs="$rpathdirs $dir" 716 rpathdirs="$rpathdirs $dir"
668 fi 717 fi
669 next= ;; 718 next= ;;