Alexei Sheplyakov
16 years ago
6 changed files with 1560 additions and 0 deletions
-
614autoconf/config.rpath
-
4configure.ac
-
3m4/gmp.m4
-
110m4/lib-ld.m4
-
644m4/lib-link.m4
-
185m4/lib-prefix.m4
@ -0,0 +1,614 @@ |
|||
#! /bin/sh |
|||
# Output a system dependent set of variables, describing how to set the |
|||
# run time search path of shared libraries in an executable. |
|||
# |
|||
# Copyright 1996-2006 Free Software Foundation, Inc. |
|||
# Taken from GNU libtool, 2001 |
|||
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 |
|||
# |
|||
# This file is free software; the Free Software Foundation gives |
|||
# unlimited permission to copy and/or distribute it, with or without |
|||
# modifications, as long as this notice is preserved. |
|||
# |
|||
# The first argument passed to this file is the canonical host specification, |
|||
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM |
|||
# or |
|||
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM |
|||
# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld |
|||
# should be set by the caller. |
|||
# |
|||
# The set of defined variables is at the end of this script. |
|||
|
|||
# Known limitations: |
|||
# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer |
|||
# than 256 bytes, otherwise the compiler driver will dump core. The only |
|||
# known workaround is to choose shorter directory names for the build |
|||
# directory and/or the installation directory. |
|||
|
|||
# All known linkers require a `.a' archive for static linking (except MSVC, |
|||
# which needs '.lib'). |
|||
libext=a |
|||
shrext=.so |
|||
|
|||
host="$1" |
|||
host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` |
|||
host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` |
|||
host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` |
|||
|
|||
# Code taken from libtool.m4's _LT_CC_BASENAME. |
|||
|
|||
for cc_temp in $CC""; do |
|||
case $cc_temp in |
|||
compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; |
|||
distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; |
|||
\-*) ;; |
|||
*) break;; |
|||
esac |
|||
done |
|||
cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` |
|||
|
|||
# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. |
|||
|
|||
wl= |
|||
if test "$GCC" = yes; then |
|||
wl='-Wl,' |
|||
else |
|||
case "$host_os" in |
|||
aix*) |
|||
wl='-Wl,' |
|||
;; |
|||
darwin*) |
|||
case $cc_basename in |
|||
xlc*) |
|||
wl='-Wl,' |
|||
;; |
|||
esac |
|||
;; |
|||
mingw* | pw32* | os2*) |
|||
;; |
|||
hpux9* | hpux10* | hpux11*) |
|||
wl='-Wl,' |
|||
;; |
|||
irix5* | irix6* | nonstopux*) |
|||
wl='-Wl,' |
|||
;; |
|||
newsos6) |
|||
;; |
|||
linux*) |
|||
case $cc_basename in |
|||
icc* | ecc*) |
|||
wl='-Wl,' |
|||
;; |
|||
pgcc | pgf77 | pgf90) |
|||
wl='-Wl,' |
|||
;; |
|||
ccc*) |
|||
wl='-Wl,' |
|||
;; |
|||
como) |
|||
wl='-lopt=' |
|||
;; |
|||
*) |
|||
case `$CC -V 2>&1 | sed 5q` in |
|||
*Sun\ C*) |
|||
wl='-Wl,' |
|||
;; |
|||
esac |
|||
;; |
|||
esac |
|||
;; |
|||
osf3* | osf4* | osf5*) |
|||
wl='-Wl,' |
|||
;; |
|||
sco3.2v5*) |
|||
;; |
|||
solaris*) |
|||
wl='-Wl,' |
|||
;; |
|||
sunos4*) |
|||
wl='-Qoption ld ' |
|||
;; |
|||
sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) |
|||
wl='-Wl,' |
|||
;; |
|||
sysv4*MP*) |
|||
;; |
|||
unicos*) |
|||
wl='-Wl,' |
|||
;; |
|||
uts4*) |
|||
;; |
|||
esac |
|||
fi |
|||
|
|||
# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. |
|||
|
|||
hardcode_libdir_flag_spec= |
|||
hardcode_libdir_separator= |
|||
hardcode_direct=no |
|||
hardcode_minus_L=no |
|||
|
|||
case "$host_os" in |
|||
cygwin* | mingw* | pw32*) |
|||
# FIXME: the MSVC++ port hasn't been tested in a loooong time |
|||
# When not using gcc, we currently assume that we are using |
|||
# Microsoft Visual C++. |
|||
if test "$GCC" != yes; then |
|||
with_gnu_ld=no |
|||
fi |
|||
;; |
|||
interix*) |
|||
# we just hope/assume this is gcc and not c89 (= MSVC++) |
|||
with_gnu_ld=yes |
|||
;; |
|||
openbsd*) |
|||
with_gnu_ld=no |
|||
;; |
|||
esac |
|||
|
|||
ld_shlibs=yes |
|||
if test "$with_gnu_ld" = yes; then |
|||
# Set some defaults for GNU ld with shared library support. These |
|||
# are reset later if shared libraries are not supported. Putting them |
|||
# here allows them to be overridden if necessary. |
|||
# Unlike libtool, we use -rpath here, not --rpath, since the documented |
|||
# option of GNU ld is called -rpath, not --rpath. |
|||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' |
|||
case "$host_os" in |
|||
aix3* | aix4* | aix5*) |
|||
# On AIX/PPC, the GNU linker is very broken |
|||
if test "$host_cpu" != ia64; then |
|||
ld_shlibs=no |
|||
fi |
|||
;; |
|||
amigaos*) |
|||
hardcode_libdir_flag_spec='-L$libdir' |
|||
hardcode_minus_L=yes |
|||
# Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports |
|||
# that the semantics of dynamic libraries on AmigaOS, at least up |
|||
# to version 4, is to share data among multiple programs linked |
|||
# with the same dynamic library. Since this doesn't match the |
|||
# behavior of shared libraries on other platforms, we cannot use |
|||
# them. |
|||
ld_shlibs=no |
|||
;; |
|||
beos*) |
|||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then |
|||
: |
|||
else |
|||
ld_shlibs=no |
|||
fi |
|||
;; |
|||
cygwin* | mingw* | pw32*) |
|||
# hardcode_libdir_flag_spec is actually meaningless, as there is |
|||
# no search path for DLLs. |
|||
hardcode_libdir_flag_spec='-L$libdir' |
|||
if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then |
|||
: |
|||
else |
|||
ld_shlibs=no |
|||
fi |
|||
;; |
|||
interix3*) |
|||
hardcode_direct=no |
|||
hardcode_libdir_flag_spec='${wl}-rpath,$libdir' |
|||
;; |
|||
linux*) |
|||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then |
|||
: |
|||
else |
|||
ld_shlibs=no |
|||
fi |
|||
;; |
|||
netbsd*) |
|||
;; |
|||
solaris*) |
|||
if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then |
|||
ld_shlibs=no |
|||
elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then |
|||
: |
|||
else |
|||
ld_shlibs=no |
|||
fi |
|||
;; |
|||
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) |
|||
case `$LD -v 2>&1` in |
|||
*\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) |
|||
ld_shlibs=no |
|||
;; |
|||
*) |
|||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then |
|||
hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' |
|||
else |
|||
ld_shlibs=no |
|||
fi |
|||
;; |
|||
esac |
|||
;; |
|||
sunos4*) |
|||
hardcode_direct=yes |
|||
;; |
|||
*) |
|||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then |
|||
: |
|||
else |
|||
ld_shlibs=no |
|||
fi |
|||
;; |
|||
esac |
|||
if test "$ld_shlibs" = no; then |
|||
hardcode_libdir_flag_spec= |
|||
fi |
|||
else |
|||
case "$host_os" in |
|||
aix3*) |
|||
# Note: this linker hardcodes the directories in LIBPATH if there |
|||
# are no directories specified by -L. |
|||
hardcode_minus_L=yes |
|||
if test "$GCC" = yes; then |
|||
# Neither direct hardcoding nor static linking is supported with a |
|||
# broken collect2. |
|||
hardcode_direct=unsupported |
|||
fi |
|||
;; |
|||
aix4* | aix5*) |
|||
if test "$host_cpu" = ia64; then |
|||
# On IA64, the linker does run time linking by default, so we don't |
|||
# have to do anything special. |
|||
aix_use_runtimelinking=no |
|||
else |
|||
aix_use_runtimelinking=no |
|||
# Test if we are trying to use run time linking or normal |
|||
# AIX style linking. If -brtl is somewhere in LDFLAGS, we |
|||
# need to do runtime linking. |
|||
case $host_os in aix4.[23]|aix4.[23].*|aix5*) |
|||
for ld_flag in $LDFLAGS; do |
|||
if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then |
|||
aix_use_runtimelinking=yes |
|||
break |
|||
fi |
|||
done |
|||
;; |
|||
esac |
|||
fi |
|||
hardcode_direct=yes |
|||
hardcode_libdir_separator=':' |
|||
if test "$GCC" = yes; then |
|||
case $host_os in aix4.[012]|aix4.[012].*) |
|||
collect2name=`${CC} -print-prog-name=collect2` |
|||
if test -f "$collect2name" && \ |
|||
strings "$collect2name" | grep resolve_lib_name >/dev/null |
|||
then |
|||
# We have reworked collect2 |
|||
hardcode_direct=yes |
|||
else |
|||
# We have old collect2 |
|||
hardcode_direct=unsupported |
|||
hardcode_minus_L=yes |
|||
hardcode_libdir_flag_spec='-L$libdir' |
|||
hardcode_libdir_separator= |
|||
fi |
|||
;; |
|||
esac |
|||
fi |
|||
# Begin _LT_AC_SYS_LIBPATH_AIX. |
|||
echo 'int main () { return 0; }' > conftest.c |
|||
${CC} ${LDFLAGS} conftest.c -o conftest |
|||
aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } |
|||
}'` |
|||
if test -z "$aix_libpath"; then |
|||
aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } |
|||
}'` |
|||
fi |
|||
if test -z "$aix_libpath"; then |
|||
aix_libpath="/usr/lib:/lib" |
|||
fi |
|||
rm -f conftest.c conftest |
|||
# End _LT_AC_SYS_LIBPATH_AIX. |
|||
if test "$aix_use_runtimelinking" = yes; then |
|||
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" |
|||
else |
|||
if test "$host_cpu" = ia64; then |
|||
hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' |
|||
else |
|||
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" |
|||
fi |
|||
fi |
|||
;; |
|||
amigaos*) |
|||
hardcode_libdir_flag_spec='-L$libdir' |
|||
hardcode_minus_L=yes |
|||
# see comment about different semantics on the GNU ld section |
|||
ld_shlibs=no |
|||
;; |
|||
bsdi[45]*) |
|||
;; |
|||
cygwin* | mingw* | pw32*) |
|||
# When not using gcc, we currently assume that we are using |
|||
# Microsoft Visual C++. |
|||
# hardcode_libdir_flag_spec is actually meaningless, as there is |
|||
# no search path for DLLs. |
|||
hardcode_libdir_flag_spec=' ' |
|||
libext=lib |
|||
;; |
|||
darwin* | rhapsody*) |
|||
hardcode_direct=no |
|||
if test "$GCC" = yes ; then |
|||
: |
|||
else |
|||
case $cc_basename in |
|||
xlc*) |
|||
;; |
|||
*) |
|||
ld_shlibs=no |
|||
;; |
|||
esac |
|||
fi |
|||
;; |
|||
dgux*) |
|||
hardcode_libdir_flag_spec='-L$libdir' |
|||
;; |
|||
freebsd1*) |
|||
ld_shlibs=no |
|||
;; |
|||
freebsd2.2*) |
|||
hardcode_libdir_flag_spec='-R$libdir' |
|||
hardcode_direct=yes |
|||
;; |
|||
freebsd2*) |
|||
hardcode_direct=yes |
|||
hardcode_minus_L=yes |
|||
;; |
|||
freebsd* | kfreebsd*-gnu | dragonfly*) |
|||
hardcode_libdir_flag_spec='-R$libdir' |
|||
hardcode_direct=yes |
|||
;; |
|||
hpux9*) |
|||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' |
|||
hardcode_libdir_separator=: |
|||
hardcode_direct=yes |
|||
# hardcode_minus_L: Not really in the search PATH, |
|||
# but as the default location of the library. |
|||
hardcode_minus_L=yes |
|||
;; |
|||
hpux10*) |
|||
if test "$with_gnu_ld" = no; then |
|||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' |
|||
hardcode_libdir_separator=: |
|||
hardcode_direct=yes |
|||
# hardcode_minus_L: Not really in the search PATH, |
|||
# but as the default location of the library. |
|||
hardcode_minus_L=yes |
|||
fi |
|||
;; |
|||
hpux11*) |
|||
if test "$with_gnu_ld" = no; then |
|||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' |
|||
hardcode_libdir_separator=: |
|||
case $host_cpu in |
|||
hppa*64*|ia64*) |
|||
hardcode_direct=no |
|||
;; |
|||
*) |
|||
hardcode_direct=yes |
|||
# hardcode_minus_L: Not really in the search PATH, |
|||
# but as the default location of the library. |
|||
hardcode_minus_L=yes |
|||
;; |
|||
esac |
|||
fi |
|||
;; |
|||
irix5* | irix6* | nonstopux*) |
|||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' |
|||
hardcode_libdir_separator=: |
|||
;; |
|||
netbsd*) |
|||
hardcode_libdir_flag_spec='-R$libdir' |
|||
hardcode_direct=yes |
|||
;; |
|||
newsos6) |
|||
hardcode_direct=yes |
|||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' |
|||
hardcode_libdir_separator=: |
|||
;; |
|||
openbsd*) |
|||
hardcode_direct=yes |
|||
if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then |
|||
hardcode_libdir_flag_spec='${wl}-rpath,$libdir' |
|||
else |
|||
case "$host_os" in |
|||
openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) |
|||
hardcode_libdir_flag_spec='-R$libdir' |
|||
;; |
|||
*) |
|||
hardcode_libdir_flag_spec='${wl}-rpath,$libdir' |
|||
;; |
|||
esac |
|||
fi |
|||
;; |
|||
os2*) |
|||
hardcode_libdir_flag_spec='-L$libdir' |
|||
hardcode_minus_L=yes |
|||
;; |
|||
osf3*) |
|||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' |
|||
hardcode_libdir_separator=: |
|||
;; |
|||
osf4* | osf5*) |
|||
if test "$GCC" = yes; then |
|||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' |
|||
else |
|||
# Both cc and cxx compiler support -rpath directly |
|||
hardcode_libdir_flag_spec='-rpath $libdir' |
|||
fi |
|||
hardcode_libdir_separator=: |
|||
;; |
|||
solaris*) |
|||
hardcode_libdir_flag_spec='-R$libdir' |
|||
;; |
|||
sunos4*) |
|||
hardcode_libdir_flag_spec='-L$libdir' |
|||
hardcode_direct=yes |
|||
hardcode_minus_L=yes |
|||
;; |
|||
sysv4) |
|||
case $host_vendor in |
|||
sni) |
|||
hardcode_direct=yes # is this really true??? |
|||
;; |
|||
siemens) |
|||
hardcode_direct=no |
|||
;; |
|||
motorola) |
|||
hardcode_direct=no #Motorola manual says yes, but my tests say they lie |
|||
;; |
|||
esac |
|||
;; |
|||
sysv4.3*) |
|||
;; |
|||
sysv4*MP*) |
|||
if test -d /usr/nec; then |
|||
ld_shlibs=yes |
|||
fi |
|||
;; |
|||
sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) |
|||
;; |
|||
sysv5* | sco3.2v5* | sco5v6*) |
|||
hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' |
|||
hardcode_libdir_separator=':' |
|||
;; |
|||
uts4*) |
|||
hardcode_libdir_flag_spec='-L$libdir' |
|||
;; |
|||
*) |
|||
ld_shlibs=no |
|||
;; |
|||
esac |
|||
fi |
|||
|
|||
# Check dynamic linker characteristics |
|||
# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. |
|||
libname_spec='lib$name' |
|||
case "$host_os" in |
|||
aix3*) |
|||
;; |
|||
aix4* | aix5*) |
|||
;; |
|||
amigaos*) |
|||
;; |
|||
beos*) |
|||
;; |
|||
bsdi[45]*) |
|||
;; |
|||
cygwin* | mingw* | pw32*) |
|||
shrext=.dll |
|||
;; |
|||
darwin* | rhapsody*) |
|||
shrext=.dylib |
|||
;; |
|||
dgux*) |
|||
;; |
|||
freebsd1*) |
|||
;; |
|||
kfreebsd*-gnu) |
|||
;; |
|||
freebsd* | dragonfly*) |
|||
;; |
|||
gnu*) |
|||
;; |
|||
hpux9* | hpux10* | hpux11*) |
|||
case $host_cpu in |
|||
ia64*) |
|||
shrext=.so |
|||
;; |
|||
hppa*64*) |
|||
shrext=.sl |
|||
;; |
|||
*) |
|||
shrext=.sl |
|||
;; |
|||
esac |
|||
;; |
|||
interix3*) |
|||
;; |
|||
irix5* | irix6* | nonstopux*) |
|||
case "$host_os" in |
|||
irix5* | nonstopux*) |
|||
libsuff= shlibsuff= |
|||
;; |
|||
*) |
|||
case $LD in |
|||
*-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; |
|||
*-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; |
|||
*-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; |
|||
*) libsuff= shlibsuff= ;; |
|||
esac |
|||
;; |
|||
esac |
|||
;; |
|||
linux*oldld* | linux*aout* | linux*coff*) |
|||
;; |
|||
linux*) |
|||
;; |
|||
knetbsd*-gnu) |
|||
;; |
|||
netbsd*) |
|||
;; |
|||
newsos6) |
|||
;; |
|||
nto-qnx*) |
|||
;; |
|||
openbsd*) |
|||
;; |
|||
os2*) |
|||
libname_spec='$name' |
|||
shrext=.dll |
|||
;; |
|||
osf3* | osf4* | osf5*) |
|||
;; |
|||
solaris*) |
|||
;; |
|||
sunos4*) |
|||
;; |
|||
sysv4 | sysv4.3*) |
|||
;; |
|||
sysv4*MP*) |
|||
;; |
|||
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) |
|||
;; |
|||
uts4*) |
|||
;; |
|||
esac |
|||
|
|||
sed_quote_subst='s/\(["`$\\]\)/\\\1/g' |
|||
escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` |
|||
shlibext=`echo "$shrext" | sed -e 's,^\.,,'` |
|||
escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` |
|||
|
|||
LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF |
|||
|
|||
# How to pass a linker flag through the compiler. |
|||
wl="$escaped_wl" |
|||
|
|||
# Static library suffix (normally "a"). |
|||
libext="$libext" |
|||
|
|||
# Shared library suffix (normally "so"). |
|||
shlibext="$shlibext" |
|||
|
|||
# Flag to hardcode \$libdir into a binary during linking. |
|||
# This must work even if \$libdir does not exist. |
|||
hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec" |
|||
|
|||
# Whether we need a single -rpath flag with a separated argument. |
|||
hardcode_libdir_separator="$hardcode_libdir_separator" |
|||
|
|||
# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the |
|||
# resulting binary. |
|||
hardcode_direct="$hardcode_direct" |
|||
|
|||
# Set to yes if using the -LDIR flag during linking hardcodes DIR into the |
|||
# resulting binary. |
|||
hardcode_minus_L="$hardcode_minus_L" |
|||
|
|||
EOF |
@ -0,0 +1,110 @@ |
|||
# lib-ld.m4 serial 3 (gettext-0.13) |
|||
dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. |
|||
dnl This file is free software; the Free Software Foundation |
|||
dnl gives unlimited permission to copy and/or distribute it, |
|||
dnl with or without modifications, as long as this notice is preserved. |
|||
|
|||
dnl Subroutines of libtool.m4, |
|||
dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision |
|||
dnl with libtool.m4. |
|||
|
|||
dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. |
|||
AC_DEFUN([AC_LIB_PROG_LD_GNU], |
|||
[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, |
|||
[# I'd rather use --version here, but apparently some GNU ld's only accept -v. |
|||
case `$LD -v 2>&1 </dev/null` in |
|||
*GNU* | *'with BFD'*) |
|||
acl_cv_prog_gnu_ld=yes ;; |
|||
*) |
|||
acl_cv_prog_gnu_ld=no ;; |
|||
esac]) |
|||
with_gnu_ld=$acl_cv_prog_gnu_ld |
|||
]) |
|||
|
|||
dnl From libtool-1.4. Sets the variable LD. |
|||
AC_DEFUN([AC_LIB_PROG_LD], |
|||
[AC_ARG_WITH(gnu-ld, |
|||
[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], |
|||
test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) |
|||
AC_REQUIRE([AC_PROG_CC])dnl |
|||
AC_REQUIRE([AC_CANONICAL_HOST])dnl |
|||
# Prepare PATH_SEPARATOR. |
|||
# The user is always right. |
|||
if test "${PATH_SEPARATOR+set}" != set; then |
|||
echo "#! /bin/sh" >conf$$.sh |
|||
echo "exit 0" >>conf$$.sh |
|||
chmod +x conf$$.sh |
|||
if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then |
|||
PATH_SEPARATOR=';' |
|||
else |
|||
PATH_SEPARATOR=: |
|||
fi |
|||
rm -f conf$$.sh |
|||
fi |
|||
ac_prog=ld |
|||
if test "$GCC" = yes; then |
|||
# Check if gcc -print-prog-name=ld gives a path. |
|||
AC_MSG_CHECKING([for ld used by GCC]) |
|||
case $host in |
|||
*-*-mingw*) |
|||
# gcc leaves a trailing carriage return which upsets mingw |
|||
ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; |
|||
*) |
|||
ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; |
|||
esac |
|||
case $ac_prog in |
|||
# Accept absolute paths. |
|||
[[\\/]* | [A-Za-z]:[\\/]*)] |
|||
[re_direlt='/[^/][^/]*/\.\./'] |
|||
# Canonicalize the path of ld |
|||
ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` |
|||
while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do |
|||
ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` |
|||
done |
|||
test -z "$LD" && LD="$ac_prog" |
|||
;; |
|||
"") |
|||
# If it fails, then pretend we aren't using GCC. |
|||
ac_prog=ld |
|||
;; |
|||
*) |
|||
# If it is relative, then search for the first ld in PATH. |
|||
with_gnu_ld=unknown |
|||
;; |
|||
esac |
|||
elif test "$with_gnu_ld" = yes; then |
|||
AC_MSG_CHECKING([for GNU ld]) |
|||
else |
|||
AC_MSG_CHECKING([for non-GNU ld]) |
|||
fi |
|||
AC_CACHE_VAL(acl_cv_path_LD, |
|||
[if test -z "$LD"; then |
|||
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" |
|||
for ac_dir in $PATH; do |
|||
test -z "$ac_dir" && ac_dir=. |
|||
if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then |
|||
acl_cv_path_LD="$ac_dir/$ac_prog" |
|||
# Check to see if the program is GNU ld. I'd rather use --version, |
|||
# but apparently some GNU ld's only accept -v. |
|||
# Break only if it was the GNU/non-GNU ld that we prefer. |
|||
case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in |
|||
*GNU* | *'with BFD'*) |
|||
test "$with_gnu_ld" != no && break ;; |
|||
*) |
|||
test "$with_gnu_ld" != yes && break ;; |
|||
esac |
|||
fi |
|||
done |
|||
IFS="$ac_save_ifs" |
|||
else |
|||
acl_cv_path_LD="$LD" # Let the user override the test with a path. |
|||
fi]) |
|||
LD="$acl_cv_path_LD" |
|||
if test -n "$LD"; then |
|||
AC_MSG_RESULT($LD) |
|||
else |
|||
AC_MSG_RESULT(no) |
|||
fi |
|||
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) |
|||
AC_LIB_PROG_LD_GNU |
|||
]) |
@ -0,0 +1,644 @@ |
|||
# lib-link.m4 serial 9 (gettext-0.16) |
|||
dnl Copyright (C) 2001-2006 Free Software Foundation, Inc. |
|||
dnl This file is free software; the Free Software Foundation |
|||
dnl gives unlimited permission to copy and/or distribute it, |
|||
dnl with or without modifications, as long as this notice is preserved. |
|||
|
|||
dnl From Bruno Haible. |
|||
|
|||
AC_PREREQ(2.50) |
|||
|
|||
dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and |
|||
dnl the libraries corresponding to explicit and implicit dependencies. |
|||
dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and |
|||
dnl augments the CPPFLAGS variable. |
|||
AC_DEFUN([AC_LIB_LINKFLAGS], |
|||
[ |
|||
AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) |
|||
AC_REQUIRE([AC_LIB_RPATH]) |
|||
define([Name],[translit([$1],[./-], [___])]) |
|||
define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], |
|||
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) |
|||
AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ |
|||
AC_LIB_LINKFLAGS_BODY([$1], [$2]) |
|||
ac_cv_lib[]Name[]_libs="$LIB[]NAME" |
|||
ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" |
|||
ac_cv_lib[]Name[]_cppflags="$INC[]NAME" |
|||
]) |
|||
LIB[]NAME="$ac_cv_lib[]Name[]_libs" |
|||
LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" |
|||
INC[]NAME="$ac_cv_lib[]Name[]_cppflags" |
|||
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) |
|||
AC_SUBST([LIB]NAME) |
|||
AC_SUBST([LTLIB]NAME) |
|||
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. |
|||
HAVE_LIB[]NAME=yes |
|||
undefine([Name]) |
|||
undefine([NAME]) |
|||
]) |
|||
|
|||
dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) |
|||
dnl searches for libname and the libraries corresponding to explicit and |
|||
dnl implicit dependencies, together with the specified include files and |
|||
dnl the ability to compile and link the specified testcode. If found, it |
|||
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 #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. |
|||
AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], |
|||
[ |
|||
AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) |
|||
AC_REQUIRE([AC_LIB_RPATH]) |
|||
define([Name],[translit([$1],[./-], [___])]) |
|||
define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], |
|||
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) |
|||
|
|||
dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME |
|||
dnl accordingly. |
|||
AC_LIB_LINKFLAGS_BODY([$1], [$2]) |
|||
|
|||
dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, |
|||
dnl because if the user has installed lib[]Name and not disabled its use |
|||
dnl via --without-lib[]Name-prefix, he wants to use it. |
|||
ac_save_CPPFLAGS="$CPPFLAGS" |
|||
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) |
|||
|
|||
AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ |
|||
ac_save_LIBS="$LIBS" |
|||
LIBS="$LIBS $LIB[]NAME" |
|||
AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) |
|||
LIBS="$ac_save_LIBS" |
|||
]) |
|||
if test "$ac_cv_lib[]Name" = yes; then |
|||
HAVE_LIB[]NAME=yes |
|||
AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) |
|||
AC_MSG_CHECKING([how to link with lib[]$1]) |
|||
AC_MSG_RESULT([$LIB[]NAME]) |
|||
else |
|||
HAVE_LIB[]NAME=no |
|||
dnl If $LIB[]NAME didn't lead to a usable library, we don't need |
|||
dnl $INC[]NAME either. |
|||
CPPFLAGS="$ac_save_CPPFLAGS" |
|||
LIB[]NAME= |
|||
LTLIB[]NAME= |
|||
fi |
|||
AC_SUBST([HAVE_LIB]NAME) |
|||
AC_SUBST([LIB]NAME) |
|||
AC_SUBST([LTLIB]NAME) |
|||
undefine([Name]) |
|||
undefine([NAME]) |
|||
]) |
|||
|
|||
dnl Determine the platform dependent parameters needed to use rpath: |
|||
dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, |
|||
dnl hardcode_direct, hardcode_minus_L. |
|||
AC_DEFUN([AC_LIB_RPATH], |
|||
[ |
|||
dnl Tell automake >= 1.10 to complain if config.rpath is missing. |
|||
m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) |
|||
AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS |
|||
AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld |
|||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host |
|||
AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir |
|||
AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ |
|||
CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ |
|||
${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh |
|||
. ./conftest.sh |
|||
rm -f ./conftest.sh |
|||
acl_cv_rpath=done |
|||
]) |
|||
wl="$acl_cv_wl" |
|||
libext="$acl_cv_libext" |
|||
shlibext="$acl_cv_shlibext" |
|||
hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" |
|||
hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" |
|||
hardcode_direct="$acl_cv_hardcode_direct" |
|||
hardcode_minus_L="$acl_cv_hardcode_minus_L" |
|||
dnl Determine whether the user wants rpath handling at all. |
|||
AC_ARG_ENABLE(rpath, |
|||
[ --disable-rpath do not hardcode runtime library paths], |
|||
:, enable_rpath=yes) |
|||
]) |
|||
|
|||
dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and |
|||
dnl the libraries corresponding to explicit and implicit dependencies. |
|||
dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. |
|||
AC_DEFUN([AC_LIB_LINKFLAGS_BODY], |
|||
[ |
|||
AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) |
|||
define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], |
|||
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) |
|||
dnl By default, look in $includedir and $libdir. |
|||
use_additional=yes |
|||
AC_LIB_WITH_FINAL_PREFIX([ |
|||
eval additional_includedir=\"$includedir\" |
|||
eval additional_libdir=\"$libdir\" |
|||
]) |
|||
AC_LIB_ARG_WITH([lib$1-prefix], |
|||
[ --with-lib$1-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], |
|||
[ |
|||
if test "X$withval" = "Xno"; then |
|||
use_additional=no |
|||
else |
|||
if test "X$withval" = "X"; then |
|||
AC_LIB_WITH_FINAL_PREFIX([ |
|||
eval additional_includedir=\"$includedir\" |
|||
eval additional_libdir=\"$libdir\" |
|||
]) |
|||
else |
|||
additional_includedir="$withval/include" |
|||
additional_libdir="$withval/$acl_libdirstem" |
|||
fi |
|||
fi |
|||
]) |
|||
dnl Search the library and its dependencies in $additional_libdir and |
|||
dnl $LDFLAGS. Using breadth-first-seach. |
|||
LIB[]NAME= |
|||
LTLIB[]NAME= |
|||
INC[]NAME= |
|||
rpathdirs= |
|||
ltrpathdirs= |
|||
names_already_handled= |
|||
names_next_round='$1 $2' |
|||
while test -n "$names_next_round"; do |
|||
names_this_round="$names_next_round" |
|||
names_next_round= |
|||
for name in $names_this_round; do |
|||
already_handled= |
|||
for n in $names_already_handled; do |
|||
if test "$n" = "$name"; then |
|||
already_handled=yes |
|||
break |
|||
fi |
|||
done |
|||
if test -z "$already_handled"; then |
|||
names_already_handled="$names_already_handled $name" |
|||
dnl See if it was already located by an earlier AC_LIB_LINKFLAGS |
|||
dnl or AC_LIB_HAVE_LINKFLAGS call. |
|||
uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` |
|||
eval value=\"\$HAVE_LIB$uppername\" |
|||
if test -n "$value"; then |
|||
if test "$value" = yes; then |
|||
eval value=\"\$LIB$uppername\" |
|||
test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" |
|||
eval value=\"\$LTLIB$uppername\" |
|||
test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" |
|||
else |
|||
dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined |
|||
dnl that this library doesn't exist. So just drop it. |
|||
: |
|||
fi |
|||
else |
|||
dnl Search the library lib$name in $additional_libdir and $LDFLAGS |
|||
dnl and the already constructed $LIBNAME/$LTLIBNAME. |
|||
found_dir= |
|||
found_la= |
|||
found_so= |
|||
found_a= |
|||
if test $use_additional = yes; then |
|||
if test -n "$shlibext" \ |
|||
&& { test -f "$additional_libdir/lib$name.$shlibext" \ |
|||
|| { test "$shlibext" = dll \ |
|||
&& test -f "$additional_libdir/lib$name.dll.a"; }; }; then |
|||
found_dir="$additional_libdir" |
|||
if test -f "$additional_libdir/lib$name.$shlibext"; then |
|||
found_so="$additional_libdir/lib$name.$shlibext" |
|||
else |
|||
found_so="$additional_libdir/lib$name.dll.a" |
|||
fi |
|||
if test -f "$additional_libdir/lib$name.la"; then |
|||
found_la="$additional_libdir/lib$name.la" |
|||
fi |
|||
else |
|||
if test -f "$additional_libdir/lib$name.$libext"; then |
|||
found_dir="$additional_libdir" |
|||
found_a="$additional_libdir/lib$name.$libext" |
|||
if test -f "$additional_libdir/lib$name.la"; then |
|||
found_la="$additional_libdir/lib$name.la" |
|||
fi |
|||
fi |
|||
fi |
|||
fi |
|||
if test "X$found_dir" = "X"; then |
|||
for x in $LDFLAGS $LTLIB[]NAME; do |
|||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) |
|||
case "$x" in |
|||
-L*) |
|||
dir=`echo "X$x" | sed -e 's/^X-L//'` |
|||
if test -n "$shlibext" \ |
|||
&& { test -f "$dir/lib$name.$shlibext" \ |
|||
|| { test "$shlibext" = dll \ |
|||
&& test -f "$dir/lib$name.dll.a"; }; }; then |
|||
found_dir="$dir" |
|||
if test -f "$dir/lib$name.$shlibext"; then |
|||
found_so="$dir/lib$name.$shlibext" |
|||
else |
|||
found_so="$dir/lib$name.dll.a" |
|||
fi |
|||
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_a="$dir/lib$name.$libext" |
|||
if test -f "$dir/lib$name.la"; then |
|||
found_la="$dir/lib$name.la" |
|||
fi |
|||
fi |
|||
fi |
|||
;; |
|||
esac |
|||
if test "X$found_dir" != "X"; then |
|||
break |
|||
fi |
|||
done |
|||
fi |
|||
if test "X$found_dir" != "X"; then |
|||
dnl Found the library. |
|||
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" |
|||
if test "X$found_so" != "X"; then |
|||
dnl Linking with a shared library. We attempt to hardcode its |
|||
dnl directory into the executable's runpath, unless it's the |
|||
dnl standard /usr/lib. |
|||
if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then |
|||
dnl No hardcoding is needed. |
|||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" |
|||
else |
|||
dnl Use an explicit option to hardcode DIR into the resulting |
|||
dnl binary. |
|||
dnl Potentially add DIR to ltrpathdirs. |
|||
dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. |
|||
haveit= |
|||
for x in $ltrpathdirs; do |
|||
if test "X$x" = "X$found_dir"; then |
|||
haveit=yes |
|||
break |
|||
fi |
|||
done |
|||
if test -z "$haveit"; then |
|||
ltrpathdirs="$ltrpathdirs $found_dir" |
|||
fi |
|||
dnl The hardcoding into $LIBNAME is system dependent. |
|||
if test "$hardcode_direct" = yes; then |
|||
dnl Using DIR/libNAME.so during linking hardcodes DIR into the |
|||
dnl resulting binary. |
|||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" |
|||
else |
|||
if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then |
|||
dnl Use an explicit option to hardcode DIR into the resulting |
|||
dnl binary. |
|||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" |
|||
dnl Potentially add DIR to rpathdirs. |
|||
dnl The rpathdirs will be appended to $LIBNAME at the end. |
|||
haveit= |
|||
for x in $rpathdirs; do |
|||
if test "X$x" = "X$found_dir"; then |
|||
haveit=yes |
|||
break |
|||
fi |
|||
done |
|||
if test -z "$haveit"; then |
|||
rpathdirs="$rpathdirs $found_dir" |
|||
fi |
|||
else |
|||
dnl Rely on "-L$found_dir". |
|||
dnl But don't add it if it's already contained in the LDFLAGS |
|||
dnl or the already constructed $LIBNAME |
|||
haveit= |
|||
for x in $LDFLAGS $LIB[]NAME; do |
|||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) |
|||
if test "X$x" = "X-L$found_dir"; then |
|||
haveit=yes |
|||
break |
|||
fi |
|||
done |
|||
if test -z "$haveit"; then |
|||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" |
|||
fi |
|||
if test "$hardcode_minus_L" != no; then |
|||
dnl FIXME: Not sure whether we should use |
|||
dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" |
|||
dnl here. |
|||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" |
|||
else |
|||
dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH |
|||
dnl here, because this doesn't fit in flags passed to the |
|||
dnl compiler. So give up. No hardcoding. This affects only |
|||
dnl very old systems. |
|||
dnl FIXME: Not sure whether we should use |
|||
dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" |
|||
dnl here. |
|||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" |
|||
fi |
|||
fi |
|||
fi |
|||
fi |
|||
else |
|||
if test "X$found_a" != "X"; then |
|||
dnl Linking with a static library. |
|||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" |
|||
else |
|||
dnl We shouldn't come here, but anyway it's good to have a |
|||
dnl fallback. |
|||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" |
|||
fi |
|||
fi |
|||
dnl Assume the include files are nearby. |
|||
additional_includedir= |
|||
case "$found_dir" in |
|||
*/$acl_libdirstem | */$acl_libdirstem/) |
|||
basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` |
|||
additional_includedir="$basedir/include" |
|||
;; |
|||
esac |
|||
if test "X$additional_includedir" != "X"; then |
|||
dnl Potentially add $additional_includedir to $INCNAME. |
|||
dnl But don't add it |
|||
dnl 1. if it's the standard /usr/include, |
|||
dnl 2. if it's /usr/local/include and we are using GCC on Linux, |
|||
dnl 3. if it's already present in $CPPFLAGS or the already |
|||
dnl constructed $INCNAME, |
|||
dnl 4. if it doesn't exist as a directory. |
|||
if test "X$additional_includedir" != "X/usr/include"; then |
|||
haveit= |
|||
if test "X$additional_includedir" = "X/usr/local/include"; then |
|||
if test -n "$GCC"; then |
|||
case $host_os in |
|||
linux* | gnu* | k*bsd*-gnu) haveit=yes;; |
|||
esac |
|||
fi |
|||
fi |
|||
if test -z "$haveit"; then |
|||
for x in $CPPFLAGS $INC[]NAME; do |
|||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) |
|||
if test "X$x" = "X-I$additional_includedir"; then |
|||
haveit=yes |
|||
break |
|||
fi |
|||
done |
|||
if test -z "$haveit"; then |
|||
if test -d "$additional_includedir"; then |
|||
dnl Really add $additional_includedir to $INCNAME. |
|||
INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" |
|||
fi |
|||
fi |
|||
fi |
|||
fi |
|||
fi |
|||
dnl Look for dependencies. |
|||
if test -n "$found_la"; then |
|||
dnl Read the .la file. It defines the variables |
|||
dnl dlname, library_names, old_library, dependency_libs, current, |
|||
dnl age, revision, installed, dlopen, dlpreopen, libdir. |
|||
save_libdir="$libdir" |
|||
case "$found_la" in |
|||
*/* | *\\*) . "$found_la" ;; |
|||
*) . "./$found_la" ;; |
|||
esac |
|||
libdir="$save_libdir" |
|||
dnl We use only dependency_libs. |
|||
for dep in $dependency_libs; do |
|||
case "$dep" in |
|||
-L*) |
|||
additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` |
|||
dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. |
|||
dnl But don't add it |
|||
dnl 1. if it's the standard /usr/lib, |
|||
dnl 2. if it's /usr/local/lib and we are using GCC on Linux, |
|||
dnl 3. if it's already present in $LDFLAGS or the already |
|||
dnl constructed $LIBNAME, |
|||
dnl 4. if it doesn't exist as a directory. |
|||
if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then |
|||
haveit= |
|||
if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then |
|||
if test -n "$GCC"; then |
|||
case $host_os in |
|||
linux* | gnu* | k*bsd*-gnu) haveit=yes;; |
|||
esac |
|||
fi |
|||
fi |
|||
if test -z "$haveit"; then |
|||
haveit= |
|||
for x in $LDFLAGS $LIB[]NAME; do |
|||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) |
|||
if test "X$x" = "X-L$additional_libdir"; then |
|||
haveit=yes |
|||
break |
|||
fi |
|||
done |
|||
if test -z "$haveit"; then |
|||
if test -d "$additional_libdir"; then |
|||
dnl Really add $additional_libdir to $LIBNAME. |
|||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" |
|||
fi |
|||
fi |
|||
haveit= |
|||
for x in $LDFLAGS $LTLIB[]NAME; do |
|||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) |
|||
if test "X$x" = "X-L$additional_libdir"; then |
|||
haveit=yes |
|||
break |
|||
fi |
|||
done |
|||
if test -z "$haveit"; then |
|||
if test -d "$additional_libdir"; then |
|||
dnl Really add $additional_libdir to $LTLIBNAME. |
|||
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" |
|||
fi |
|||
fi |
|||
fi |
|||
fi |
|||
;; |
|||
-R*) |
|||
dir=`echo "X$dep" | sed -e 's/^X-R//'` |
|||
if test "$enable_rpath" != no; then |
|||
dnl Potentially add DIR to rpathdirs. |
|||
dnl The rpathdirs will be appended to $LIBNAME at the end. |
|||
haveit= |
|||
for x in $rpathdirs; do |
|||
if test "X$x" = "X$dir"; then |
|||
haveit=yes |
|||
break |
|||
fi |
|||
done |
|||
if test -z "$haveit"; then |
|||
rpathdirs="$rpathdirs $dir" |
|||
fi |
|||
dnl Potentially add DIR to ltrpathdirs. |
|||
dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. |
|||
haveit= |
|||
for x in $ltrpathdirs; do |
|||
if test "X$x" = "X$dir"; then |
|||
haveit=yes |
|||
break |
|||
fi |
|||
done |
|||
if test -z "$haveit"; then |
|||
ltrpathdirs="$ltrpathdirs $dir" |
|||
fi |
|||
fi |
|||
;; |
|||
-l*) |
|||
dnl Handle this in the next round. |
|||
names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` |
|||
;; |
|||
*.la) |
|||
dnl Handle this in the next round. Throw away the .la's |
|||
dnl directory; it is already contained in a preceding -L |
|||
dnl option. |
|||
names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` |
|||
;; |
|||
*) |
|||
dnl Most likely an immediate library name. |
|||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" |
|||
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" |
|||
;; |
|||
esac |
|||
done |
|||
fi |
|||
else |
|||
dnl Didn't find the library; assume it is in the system directories |
|||
dnl known to the linker and runtime loader. (All the system |
|||
dnl directories known to the linker should also be known to the |
|||
dnl runtime loader, otherwise the system is severely misconfigured.) |
|||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" |
|||
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" |
|||
fi |
|||
fi |
|||
fi |
|||
done |
|||
done |
|||
if test "X$rpathdirs" != "X"; then |
|||
if test -n "$hardcode_libdir_separator"; then |
|||
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 single library, but not when more than one $LIBNAMEs are used. |
|||
alldirs= |
|||
for found_dir in $rpathdirs; do |
|||
alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" |
|||
done |
|||
dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. |
|||
acl_save_libdir="$libdir" |
|||
libdir="$alldirs" |
|||
eval flag=\"$hardcode_libdir_flag_spec\" |
|||
libdir="$acl_save_libdir" |
|||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" |
|||
else |
|||
dnl The -rpath options are cumulative. |
|||
for found_dir in $rpathdirs; do |
|||
acl_save_libdir="$libdir" |
|||
libdir="$found_dir" |
|||
eval flag=\"$hardcode_libdir_flag_spec\" |
|||
libdir="$acl_save_libdir" |
|||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" |
|||
done |
|||
fi |
|||
fi |
|||
if test "X$ltrpathdirs" != "X"; then |
|||
dnl When using libtool, the option that works for both libraries and |
|||
dnl executables is -R. The -R options are cumulative. |
|||
for found_dir in $ltrpathdirs; do |
|||
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" |
|||
done |
|||
fi |
|||
]) |
|||
|
|||
dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, |
|||
dnl unless already present in VAR. |
|||
dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes |
|||
dnl contains two or three consecutive elements that belong together. |
|||
AC_DEFUN([AC_LIB_APPENDTOVAR], |
|||
[ |
|||
for element in [$2]; do |
|||
haveit= |
|||
for x in $[$1]; do |
|||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) |
|||
if test "X$x" = "X$element"; then |
|||
haveit=yes |
|||
break |
|||
fi |
|||
done |
|||
if test -z "$haveit"; then |
|||
[$1]="${[$1]}${[$1]:+ }$element" |
|||
fi |
|||
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 "$hardcode_libdir_flag_spec" && test "$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 "$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:+$hardcode_libdir_separator}$dir" |
|||
done |
|||
acl_save_libdir="$libdir" |
|||
libdir="$alldirs" |
|||
eval flag=\"$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=\"$hardcode_libdir_flag_spec\" |
|||
libdir="$acl_save_libdir" |
|||
$1="${$1}${$1:+ }$flag" |
|||
done |
|||
fi |
|||
fi |
|||
fi |
|||
fi |
|||
fi |
|||
AC_SUBST([$1]) |
|||
]) |
@ -0,0 +1,185 @@ |
|||
# lib-prefix.m4 serial 5 (gettext-0.15) |
|||
dnl Copyright (C) 2001-2005 Free Software Foundation, Inc. |
|||
dnl This file is free software; the Free Software Foundation |
|||
dnl gives unlimited permission to copy and/or distribute it, |
|||
dnl with or without modifications, as long as this notice is preserved. |
|||
|
|||
dnl From Bruno Haible. |
|||
|
|||
dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and |
|||
dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't |
|||
dnl require excessive bracketing. |
|||
ifdef([AC_HELP_STRING], |
|||
[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], |
|||
[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) |
|||
|
|||
dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed |
|||
dnl to access previously installed libraries. The basic assumption is that |
|||
dnl a user will want packages to use other packages he previously installed |
|||
dnl with the same --prefix option. |
|||
dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate |
|||
dnl libraries, but is otherwise very convenient. |
|||
AC_DEFUN([AC_LIB_PREFIX], |
|||
[ |
|||
AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) |
|||
AC_REQUIRE([AC_PROG_CC]) |
|||
AC_REQUIRE([AC_CANONICAL_HOST]) |
|||
AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) |
|||
AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) |
|||
dnl By default, look in $includedir and $libdir. |
|||
use_additional=yes |
|||
AC_LIB_WITH_FINAL_PREFIX([ |
|||
eval additional_includedir=\"$includedir\" |
|||
eval additional_libdir=\"$libdir\" |
|||
]) |
|||
AC_LIB_ARG_WITH([lib-prefix], |
|||
[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib |
|||
--without-lib-prefix don't search for libraries in includedir and libdir], |
|||
[ |
|||
if test "X$withval" = "Xno"; then |
|||
use_additional=no |
|||
else |
|||
if test "X$withval" = "X"; then |
|||
AC_LIB_WITH_FINAL_PREFIX([ |
|||
eval additional_includedir=\"$includedir\" |
|||
eval additional_libdir=\"$libdir\" |
|||
]) |
|||
else |
|||
additional_includedir="$withval/include" |
|||
additional_libdir="$withval/$acl_libdirstem" |
|||
fi |
|||
fi |
|||
]) |
|||
if test $use_additional = yes; then |
|||
dnl Potentially add $additional_includedir to $CPPFLAGS. |
|||
dnl But don't add it |
|||
dnl 1. if it's the standard /usr/include, |
|||
dnl 2. if it's already present in $CPPFLAGS, |
|||
dnl 3. if it's /usr/local/include and we are using GCC on Linux, |
|||
dnl 4. if it doesn't exist as a directory. |
|||
if test "X$additional_includedir" != "X/usr/include"; then |
|||
haveit= |
|||
for x in $CPPFLAGS; do |
|||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) |
|||
if test "X$x" = "X-I$additional_includedir"; then |
|||
haveit=yes |
|||
break |
|||
fi |
|||
done |
|||
if test -z "$haveit"; then |
|||
if test "X$additional_includedir" = "X/usr/local/include"; then |
|||
if test -n "$GCC"; then |
|||
case $host_os in |
|||
linux* | gnu* | k*bsd*-gnu) haveit=yes;; |
|||
esac |
|||
fi |
|||
fi |
|||
if test -z "$haveit"; then |
|||
if test -d "$additional_includedir"; then |
|||
dnl Really add $additional_includedir to $CPPFLAGS. |
|||
CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" |
|||
fi |
|||
fi |
|||
fi |
|||
fi |
|||
dnl Potentially add $additional_libdir to $LDFLAGS. |
|||
dnl But don't add it |
|||
dnl 1. if it's the standard /usr/lib, |
|||
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 4. if it doesn't exist as a directory. |
|||
if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then |
|||
haveit= |
|||
for x in $LDFLAGS; do |
|||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) |
|||
if test "X$x" = "X-L$additional_libdir"; then |
|||
haveit=yes |
|||
break |
|||
fi |
|||
done |
|||
if test -z "$haveit"; then |
|||
if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then |
|||
if test -n "$GCC"; then |
|||
case $host_os in |
|||
linux*) haveit=yes;; |
|||
esac |
|||
fi |
|||
fi |
|||
if test -z "$haveit"; then |
|||
if test -d "$additional_libdir"; then |
|||
dnl Really add $additional_libdir to $LDFLAGS. |
|||
LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" |
|||
fi |
|||
fi |
|||
fi |
|||
fi |
|||
fi |
|||
]) |
|||
|
|||
dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, |
|||
dnl acl_final_exec_prefix, containing the values to which $prefix and |
|||
dnl $exec_prefix will expand at the end of the configure script. |
|||
AC_DEFUN([AC_LIB_PREPARE_PREFIX], |
|||
[ |
|||
dnl Unfortunately, prefix and exec_prefix get only finally determined |
|||
dnl at the end of configure. |
|||
if test "X$prefix" = "XNONE"; then |
|||
acl_final_prefix="$ac_default_prefix" |
|||
else |
|||
acl_final_prefix="$prefix" |
|||
fi |
|||
if test "X$exec_prefix" = "XNONE"; then |
|||
acl_final_exec_prefix='${prefix}' |
|||
else |
|||
acl_final_exec_prefix="$exec_prefix" |
|||
fi |
|||
acl_save_prefix="$prefix" |
|||
prefix="$acl_final_prefix" |
|||
eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" |
|||
prefix="$acl_save_prefix" |
|||
]) |
|||
|
|||
dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the |
|||
dnl variables prefix and exec_prefix bound to the values they will have |
|||
dnl at the end of the configure script. |
|||
AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], |
|||
[ |
|||
acl_save_prefix="$prefix" |
|||
prefix="$acl_final_prefix" |
|||
acl_save_exec_prefix="$exec_prefix" |
|||
exec_prefix="$acl_final_exec_prefix" |
|||
$1 |
|||
exec_prefix="$acl_save_exec_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 |
|||
]) |
Write
Preview
Loading…
Cancel
Save
Reference in new issue