Updated gettext m4 macros to 0.17.

This commit is contained in:
Vincent Richard 2010-02-12 22:28:37 +00:00
parent 396a01950c
commit 64cf047f72
2 changed files with 244 additions and 56 deletions

View File

@ -1,17 +1,19 @@
# lib-link.m4 serial 6 (gettext-0.14.3) # lib-link.m4 serial 13 (gettext-0.17)
dnl Copyright (C) 2001-2005 Free Software Foundation, Inc. dnl Copyright (C) 2001-2007 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it, dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved. dnl with or without modifications, as long as this notice is preserved.
dnl From Bruno Haible. dnl From Bruno Haible.
AC_PREREQ(2.50) AC_PREREQ(2.54)
dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
dnl the libraries corresponding to explicit and implicit dependencies. dnl the libraries corresponding to explicit and implicit dependencies.
dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
dnl augments the CPPFLAGS variable. dnl augments the CPPFLAGS variable.
dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
AC_DEFUN([AC_LIB_LINKFLAGS], AC_DEFUN([AC_LIB_LINKFLAGS],
[ [
AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
@ -24,13 +26,16 @@ AC_DEFUN([AC_LIB_LINKFLAGS],
ac_cv_lib[]Name[]_libs="$LIB[]NAME" ac_cv_lib[]Name[]_libs="$LIB[]NAME"
ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
ac_cv_lib[]Name[]_cppflags="$INC[]NAME" ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX"
]) ])
LIB[]NAME="$ac_cv_lib[]Name[]_libs" LIB[]NAME="$ac_cv_lib[]Name[]_libs"
LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
INC[]NAME="$ac_cv_lib[]Name[]_cppflags" INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix"
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
AC_SUBST([LIB]NAME) AC_SUBST([LIB]NAME)
AC_SUBST([LTLIB]NAME) AC_SUBST([LTLIB]NAME)
AC_SUBST([LIB]NAME[_PREFIX])
dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
dnl results of this search when this library appears as a dependency. dnl results of this search when this library appears as a dependency.
HAVE_LIB[]NAME=yes HAVE_LIB[]NAME=yes
@ -46,6 +51,8 @@ dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
[ [
AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
@ -82,17 +89,23 @@ AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
CPPFLAGS="$ac_save_CPPFLAGS" CPPFLAGS="$ac_save_CPPFLAGS"
LIB[]NAME= LIB[]NAME=
LTLIB[]NAME= LTLIB[]NAME=
LIB[]NAME[]_PREFIX=
fi fi
AC_SUBST([HAVE_LIB]NAME) AC_SUBST([HAVE_LIB]NAME)
AC_SUBST([LIB]NAME) AC_SUBST([LIB]NAME)
AC_SUBST([LTLIB]NAME) AC_SUBST([LTLIB]NAME)
AC_SUBST([LIB]NAME[_PREFIX])
undefine([Name]) undefine([Name])
undefine([NAME]) undefine([NAME])
]) ])
dnl Determine the platform dependent parameters needed to use rpath: dnl Determine the platform dependent parameters needed to use rpath:
dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, dnl acl_libext,
dnl hardcode_direct, hardcode_minus_L. dnl acl_shlibext,
dnl acl_hardcode_libdir_flag_spec,
dnl acl_hardcode_libdir_separator,
dnl acl_hardcode_direct,
dnl acl_hardcode_minus_L.
AC_DEFUN([AC_LIB_RPATH], AC_DEFUN([AC_LIB_RPATH],
[ [
dnl Tell automake >= 1.10 to complain if config.rpath is missing. dnl Tell automake >= 1.10 to complain if config.rpath is missing.
@ -109,12 +122,14 @@ AC_DEFUN([AC_LIB_RPATH],
acl_cv_rpath=done acl_cv_rpath=done
]) ])
wl="$acl_cv_wl" wl="$acl_cv_wl"
libext="$acl_cv_libext" acl_libext="$acl_cv_libext"
shlibext="$acl_cv_shlibext" acl_shlibext="$acl_cv_shlibext"
hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_libname_spec="$acl_cv_libname_spec"
hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_library_names_spec="$acl_cv_library_names_spec"
hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
hardcode_minus_L="$acl_cv_hardcode_minus_L" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
acl_hardcode_direct="$acl_cv_hardcode_direct"
acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
dnl Determine whether the user wants rpath handling at all. dnl Determine whether the user wants rpath handling at all.
AC_ARG_ENABLE(rpath, AC_ARG_ENABLE(rpath,
[ --disable-rpath do not hardcode runtime library paths], [ --disable-rpath do not hardcode runtime library paths],
@ -124,19 +139,24 @@ AC_DEFUN([AC_LIB_RPATH],
dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
dnl the libraries corresponding to explicit and implicit dependencies. dnl the libraries corresponding to explicit and implicit dependencies.
dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found
dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
AC_DEFUN([AC_LIB_LINKFLAGS_BODY], AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
[ [
AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
dnl Autoconf >= 2.61 supports dots in --with options.
define([N_A_M_E],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit([$1],[.],[_])],[$1])])
dnl By default, look in $includedir and $libdir. dnl By default, look in $includedir and $libdir.
use_additional=yes use_additional=yes
AC_LIB_WITH_FINAL_PREFIX([ AC_LIB_WITH_FINAL_PREFIX([
eval additional_includedir=\"$includedir\" eval additional_includedir=\"$includedir\"
eval additional_libdir=\"$libdir\" eval additional_libdir=\"$libdir\"
]) ])
AC_LIB_ARG_WITH([lib$1-prefix], AC_LIB_ARG_WITH([lib]N_A_M_E[-prefix],
[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib [ --with-lib]N_A_M_E[-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
--without-lib$1-prefix don't search for lib$1 in includedir and libdir], --without-lib]N_A_M_E[-prefix don't search for lib$1 in includedir and libdir],
[ [
if test "X$withval" = "Xno"; then if test "X$withval" = "Xno"; then
use_additional=no use_additional=no
@ -148,7 +168,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
]) ])
else else
additional_includedir="$withval/include" additional_includedir="$withval/include"
additional_libdir="$withval/lib" additional_libdir="$withval/$acl_libdirstem"
fi fi
fi fi
]) ])
@ -157,6 +177,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
LIB[]NAME= LIB[]NAME=
LTLIB[]NAME= LTLIB[]NAME=
INC[]NAME= INC[]NAME=
LIB[]NAME[]_PREFIX=
rpathdirs= rpathdirs=
ltrpathdirs= ltrpathdirs=
names_already_handled= names_already_handled=
@ -196,22 +217,55 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
found_la= found_la=
found_so= found_so=
found_a= found_a=
eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
if test -n "$acl_shlibext"; then
shrext=".$acl_shlibext" # typically: shrext=.so
else
shrext=
fi
if test $use_additional = yes; then if test $use_additional = yes; then
if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then dir="$additional_libdir"
found_dir="$additional_libdir" dnl The same code as in the loop below:
found_so="$additional_libdir/lib$name.$shlibext" dnl First look for a shared library.
if test -f "$additional_libdir/lib$name.la"; then if test -n "$acl_shlibext"; then
found_la="$additional_libdir/lib$name.la" if test -f "$dir/$libname$shrext"; then
fi found_dir="$dir"
else found_so="$dir/$libname$shrext"
if test -f "$additional_libdir/lib$name.$libext"; then else
found_dir="$additional_libdir" if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
found_a="$additional_libdir/lib$name.$libext" ver=`(cd "$dir" && \
if test -f "$additional_libdir/lib$name.la"; then for f in "$libname$shrext".*; do echo "$f"; done \
found_la="$additional_libdir/lib$name.la" | sed -e "s,^$libname$shrext\\\\.,," \
| sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
| sed 1q ) 2>/dev/null`
if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
found_dir="$dir"
found_so="$dir/$libname$shrext.$ver"
fi
else
eval library_names=\"$acl_library_names_spec\"
for f in $library_names; do
if test -f "$dir/$f"; then
found_dir="$dir"
found_so="$dir/$f"
break
fi
done
fi fi
fi fi
fi fi
dnl Then look for a static library.
if test "X$found_dir" = "X"; then
if test -f "$dir/$libname.$acl_libext"; then
found_dir="$dir"
found_a="$dir/$libname.$acl_libext"
fi
fi
if test "X$found_dir" != "X"; then
if test -f "$dir/$libname.la"; then
found_la="$dir/$libname.la"
fi
fi
fi fi
if test "X$found_dir" = "X"; then if test "X$found_dir" = "X"; then
for x in $LDFLAGS $LTLIB[]NAME; do for x in $LDFLAGS $LTLIB[]NAME; do
@ -219,21 +273,46 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
case "$x" in case "$x" in
-L*) -L*)
dir=`echo "X$x" | sed -e 's/^X-L//'` dir=`echo "X$x" | sed -e 's/^X-L//'`
if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then dnl First look for a shared library.
found_dir="$dir" if test -n "$acl_shlibext"; then
found_so="$dir/lib$name.$shlibext" if test -f "$dir/$libname$shrext"; then
if test -f "$dir/lib$name.la"; then
found_la="$dir/lib$name.la"
fi
else
if test -f "$dir/lib$name.$libext"; then
found_dir="$dir" found_dir="$dir"
found_a="$dir/lib$name.$libext" found_so="$dir/$libname$shrext"
if test -f "$dir/lib$name.la"; then else
found_la="$dir/lib$name.la" if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
ver=`(cd "$dir" && \
for f in "$libname$shrext".*; do echo "$f"; done \
| sed -e "s,^$libname$shrext\\\\.,," \
| sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
| sed 1q ) 2>/dev/null`
if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
found_dir="$dir"
found_so="$dir/$libname$shrext.$ver"
fi
else
eval library_names=\"$acl_library_names_spec\"
for f in $library_names; do
if test -f "$dir/$f"; then
found_dir="$dir"
found_so="$dir/$f"
break
fi
done
fi fi
fi fi
fi fi
dnl Then look for a static library.
if test "X$found_dir" = "X"; then
if test -f "$dir/$libname.$acl_libext"; then
found_dir="$dir"
found_a="$dir/$libname.$acl_libext"
fi
fi
if test "X$found_dir" != "X"; then
if test -f "$dir/$libname.la"; then
found_la="$dir/$libname.la"
fi
fi
;; ;;
esac esac
if test "X$found_dir" != "X"; then if test "X$found_dir" != "X"; then
@ -248,7 +327,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
dnl Linking with a shared library. We attempt to hardcode its dnl Linking with a shared library. We attempt to hardcode its
dnl directory into the executable's runpath, unless it's the dnl directory into the executable's runpath, unless it's the
dnl standard /usr/lib. dnl standard /usr/lib.
if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then
dnl No hardcoding is needed. dnl No hardcoding is needed.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
else else
@ -267,12 +346,12 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
ltrpathdirs="$ltrpathdirs $found_dir" ltrpathdirs="$ltrpathdirs $found_dir"
fi fi
dnl The hardcoding into $LIBNAME is system dependent. dnl The hardcoding into $LIBNAME is system dependent.
if test "$hardcode_direct" = yes; then if test "$acl_hardcode_direct" = yes; then
dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl Using DIR/libNAME.so during linking hardcodes DIR into the
dnl resulting binary. dnl resulting binary.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
else else
if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
dnl Use an explicit option to hardcode DIR into the resulting dnl Use an explicit option to hardcode DIR into the resulting
dnl binary. dnl binary.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
@ -303,13 +382,13 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
if test -z "$haveit"; then if test -z "$haveit"; then
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
fi fi
if test "$hardcode_minus_L" != no; then if test "$acl_hardcode_minus_L" != no; then
dnl FIXME: Not sure whether we should use dnl FIXME: Not sure whether we should use
dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
dnl here. dnl here.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
else else
dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH
dnl here, because this doesn't fit in flags passed to the dnl here, because this doesn't fit in flags passed to the
dnl compiler. So give up. No hardcoding. This affects only dnl compiler. So give up. No hardcoding. This affects only
dnl very old systems. dnl very old systems.
@ -334,8 +413,9 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
dnl Assume the include files are nearby. dnl Assume the include files are nearby.
additional_includedir= additional_includedir=
case "$found_dir" in case "$found_dir" in
*/lib | */lib/) */$acl_libdirstem | */$acl_libdirstem/)
basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
LIB[]NAME[]_PREFIX="$basedir"
additional_includedir="$basedir/include" additional_includedir="$basedir/include"
;; ;;
esac esac
@ -396,9 +476,9 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
dnl 3. if it's already present in $LDFLAGS or the already dnl 3. if it's already present in $LDFLAGS or the already
dnl constructed $LIBNAME, dnl constructed $LIBNAME,
dnl 4. if it doesn't exist as a directory. dnl 4. if it doesn't exist as a directory.
if test "X$additional_libdir" != "X/usr/lib"; then if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
haveit= haveit=
if test "X$additional_libdir" = "X/usr/local/lib"; then if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
if test -n "$GCC"; then if test -n "$GCC"; then
case $host_os in case $host_os in
linux* | gnu* | k*bsd*-gnu) haveit=yes;; linux* | gnu* | k*bsd*-gnu) haveit=yes;;
@ -497,18 +577,18 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
done done
done done
if test "X$rpathdirs" != "X"; then if test "X$rpathdirs" != "X"; then
if test -n "$hardcode_libdir_separator"; then if test -n "$acl_hardcode_libdir_separator"; then
dnl Weird platform: only the last -rpath option counts, the user must dnl Weird platform: only the last -rpath option counts, the user must
dnl pass all path elements in one option. We can arrange that for a dnl pass all path elements in one option. We can arrange that for a
dnl single library, but not when more than one $LIBNAMEs are used. dnl single library, but not when more than one $LIBNAMEs are used.
alldirs= alldirs=
for found_dir in $rpathdirs; do for found_dir in $rpathdirs; do
alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
done done
dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl.
acl_save_libdir="$libdir" acl_save_libdir="$libdir"
libdir="$alldirs" libdir="$alldirs"
eval flag=\"$hardcode_libdir_flag_spec\" eval flag=\"$acl_hardcode_libdir_flag_spec\"
libdir="$acl_save_libdir" libdir="$acl_save_libdir"
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
else else
@ -516,7 +596,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
for found_dir in $rpathdirs; do for found_dir in $rpathdirs; do
acl_save_libdir="$libdir" acl_save_libdir="$libdir"
libdir="$found_dir" libdir="$found_dir"
eval flag=\"$hardcode_libdir_flag_spec\" eval flag=\"$acl_hardcode_libdir_flag_spec\"
libdir="$acl_save_libdir" libdir="$acl_save_libdir"
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
done done
@ -551,3 +631,79 @@ AC_DEFUN([AC_LIB_APPENDTOVAR],
fi fi
done done
]) ])
dnl For those cases where a variable contains several -L and -l options
dnl referring to unknown libraries and directories, this macro determines the
dnl necessary additional linker options for the runtime path.
dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL])
dnl sets LDADDVAR to linker options needed together with LIBSVALUE.
dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed,
dnl otherwise linking without libtool is assumed.
AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
[
AC_REQUIRE([AC_LIB_RPATH])
AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
$1=
if test "$enable_rpath" != no; then
if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
dnl Use an explicit option to hardcode directories into the resulting
dnl binary.
rpathdirs=
next=
for opt in $2; do
if test -n "$next"; then
dir="$next"
dnl No need to hardcode the standard /usr/lib.
if test "X$dir" != "X/usr/$acl_libdirstem"; then
rpathdirs="$rpathdirs $dir"
fi
next=
else
case $opt in
-L) next=yes ;;
-L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
dnl No need to hardcode the standard /usr/lib.
if test "X$dir" != "X/usr/$acl_libdirstem"; then
rpathdirs="$rpathdirs $dir"
fi
next= ;;
*) next= ;;
esac
fi
done
if test "X$rpathdirs" != "X"; then
if test -n ""$3""; then
dnl libtool is used for linking. Use -R options.
for dir in $rpathdirs; do
$1="${$1}${$1:+ }-R$dir"
done
else
dnl The linker is used for linking directly.
if test -n "$acl_hardcode_libdir_separator"; then
dnl Weird platform: only the last -rpath option counts, the user
dnl must pass all path elements in one option.
alldirs=
for dir in $rpathdirs; do
alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir"
done
acl_save_libdir="$libdir"
libdir="$alldirs"
eval flag=\"$acl_hardcode_libdir_flag_spec\"
libdir="$acl_save_libdir"
$1="$flag"
else
dnl The -rpath options are cumulative.
for dir in $rpathdirs; do
acl_save_libdir="$libdir"
libdir="$dir"
eval flag=\"$acl_hardcode_libdir_flag_spec\"
libdir="$acl_save_libdir"
$1="${$1}${$1:+ }$flag"
done
fi
fi
fi
fi
fi
AC_SUBST([$1])
])

View File

@ -1,4 +1,4 @@
# lib-prefix.m4 serial 4 (gettext-0.14.2) # lib-prefix.m4 serial 5 (gettext-0.15)
dnl Copyright (C) 2001-2005 Free Software Foundation, Inc. dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it, dnl gives unlimited permission to copy and/or distribute it,
@ -24,6 +24,7 @@ AC_DEFUN([AC_LIB_PREFIX],
AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
dnl By default, look in $includedir and $libdir. dnl By default, look in $includedir and $libdir.
use_additional=yes use_additional=yes
@ -45,7 +46,7 @@ AC_DEFUN([AC_LIB_PREFIX],
]) ])
else else
additional_includedir="$withval/include" additional_includedir="$withval/include"
additional_libdir="$withval/lib" additional_libdir="$withval/$acl_libdirstem"
fi fi
fi fi
]) ])
@ -87,7 +88,7 @@ AC_DEFUN([AC_LIB_PREFIX],
dnl 2. if it's already present in $LDFLAGS, dnl 2. if it's already present in $LDFLAGS,
dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
dnl 4. if it doesn't exist as a directory. dnl 4. if it doesn't exist as a directory.
if test "X$additional_libdir" != "X/usr/lib"; then if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
haveit= haveit=
for x in $LDFLAGS; do for x in $LDFLAGS; do
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
@ -97,7 +98,7 @@ AC_DEFUN([AC_LIB_PREFIX],
fi fi
done done
if test -z "$haveit"; then if test -z "$haveit"; then
if test "X$additional_libdir" = "X/usr/local/lib"; then if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
if test -n "$GCC"; then if test -n "$GCC"; then
case $host_os in case $host_os in
linux*) haveit=yes;; linux*) haveit=yes;;
@ -151,3 +152,34 @@ AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
exec_prefix="$acl_save_exec_prefix" exec_prefix="$acl_save_exec_prefix"
prefix="$acl_save_prefix" prefix="$acl_save_prefix"
]) ])
dnl AC_LIB_PREPARE_MULTILIB creates a variable acl_libdirstem, containing
dnl the basename of the libdir, either "lib" or "lib64".
AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
[
dnl There is no formal standard regarding lib and lib64. The current
dnl practice is that on a system supporting 32-bit and 64-bit instruction
dnl sets or ABIs, 64-bit libraries go under $prefix/lib64 and 32-bit
dnl libraries go under $prefix/lib. We determine the compiler's default
dnl mode by looking at the compiler's library search path. If at least
dnl of its elements ends in /lib64 or points to a directory whose absolute
dnl pathname ends in /lib64, we assume a 64-bit ABI. Otherwise we use the
dnl default, namely "lib".
acl_libdirstem=lib
searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
if test -n "$searchpath"; then
acl_save_IFS="${IFS= }"; IFS=":"
for searchdir in $searchpath; do
if test -d "$searchdir"; then
case "$searchdir" in
*/lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
*) searchdir=`cd "$searchdir" && pwd`
case "$searchdir" in
*/lib64 ) acl_libdirstem=lib64 ;;
esac ;;
esac
fi
done
IFS="$acl_save_IFS"
fi
])