mirror of
git://git.savannah.gnu.org/libtool.git
synced 2024-12-27 07:09:26 +08:00
1eafc0b428
preference: the cached value; the default value for the current host. Also test that the compiler accepts the flag, and cache that result too.
3090 lines
96 KiB
Bash
Executable File
3090 lines
96 KiB
Bash
Executable File
#! /bin/sh
|
|
|
|
# ltconfig - Create a system-specific libtool.
|
|
# Copyright (C) 1996-1999 Free Software Foundation, Inc.
|
|
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
|
|
#
|
|
# This file is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
#
|
|
# As a special exception to the GNU General Public License, if you
|
|
# distribute this file as part of a program that contains a
|
|
# configuration script generated by Autoconf, you may include it under
|
|
# the same distribution terms that you use for the rest of that program.
|
|
|
|
# A lot of this script is taken from autoconf-2.10.
|
|
|
|
# Check that we are running under the correct shell.
|
|
SHELL=${CONFIG_SHELL-/bin/sh}
|
|
echo=echo
|
|
if test "X$1" = X--no-reexec; then
|
|
# Discard the --no-reexec flag, and continue.
|
|
shift
|
|
elif test "X$1" = X--fallback-echo; then
|
|
# Avoid inline document here, it may be left over
|
|
:
|
|
elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
|
|
# Yippee, $echo works!
|
|
:
|
|
else
|
|
# Restart under the correct shell.
|
|
exec "$SHELL" "$0" --no-reexec ${1+"$@"}
|
|
fi
|
|
|
|
if test "X$1" = X--fallback-echo; then
|
|
# used as fallback echo
|
|
shift
|
|
cat <<EOF
|
|
$*
|
|
EOF
|
|
exit 0
|
|
fi
|
|
|
|
# Find the correct PATH separator. Usually this is `:', but
|
|
# DJGPP uses `;' like DOS.
|
|
if test "X${PATH_SEPARATOR+set}" != "Xset"; then
|
|
UNAME=${UNAME-`uname 2>/dev/null`}
|
|
case X$UNAME in
|
|
*-DOS) PATH_SEPARATOR=';' ;;
|
|
*) PATH_SEPARATOR=':' ;;
|
|
esac
|
|
fi
|
|
|
|
# The HP-UX ksh and POSIX shell print the target directory to stdout
|
|
# if CDPATH is set.
|
|
if test "${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi
|
|
|
|
if test "X${echo_test_string+set}" != "Xset"; then
|
|
# find a string as large as possible, as long as the shell can cope with it
|
|
for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
|
|
# expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
|
|
if (echo_test_string="`eval $cmd`") 2>/dev/null &&
|
|
echo_test_string="`eval $cmd`" &&
|
|
(test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null; then
|
|
break
|
|
fi
|
|
done
|
|
fi
|
|
|
|
if test "X`($echo '\t') 2>/dev/null`" != 'X\t' ||
|
|
test "X`($echo "$echo_test_string") 2>/dev/null`" != X"$echo_test_string"; then
|
|
# The Solaris, AIX, and Digital Unix default echo programs unquote
|
|
# backslashes. This makes it impossible to quote backslashes using
|
|
# echo "$something" | sed 's/\\/\\\\/g'
|
|
#
|
|
# So, first we look for a working echo in the user's PATH.
|
|
|
|
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
|
|
for dir in $PATH /usr/ucb; do
|
|
if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
|
|
test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
|
|
test "X`($dir/echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
|
|
echo="$dir/echo"
|
|
break
|
|
fi
|
|
done
|
|
IFS="$save_ifs"
|
|
|
|
if test "X$echo" = Xecho; then
|
|
# We didn't find a better echo, so look for alternatives.
|
|
if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
|
|
test "X`(print -r "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
|
|
# This shell has a builtin print -r that does the trick.
|
|
echo='print -r'
|
|
elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
|
|
test "X$CONFIG_SHELL" != X/bin/ksh; then
|
|
# If we have ksh, try running ltconfig again with it.
|
|
ORIGINAL_CONFIG_SHELL="${CONFIG_SHELL-/bin/sh}"
|
|
export ORIGINAL_CONFIG_SHELL
|
|
CONFIG_SHELL=/bin/ksh
|
|
export CONFIG_SHELL
|
|
exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"}
|
|
else
|
|
# Try using printf.
|
|
echo='printf "%s\n"'
|
|
if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
|
|
test "X`($echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
|
|
# Cool, printf works
|
|
:
|
|
elif test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' &&
|
|
test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
|
|
CONFIG_SHELL="$ORIGINAL_CONFIG_SHELL"
|
|
export CONFIG_SHELL
|
|
SHELL="$CONFIG_SHELL"
|
|
export SHELL
|
|
echo="$CONFIG_SHELL $0 --fallback-echo"
|
|
elif test "X`("$CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' &&
|
|
test "X`("$CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
|
|
echo="$CONFIG_SHELL $0 --fallback-echo"
|
|
else
|
|
# maybe with a smaller string...
|
|
prev=:
|
|
|
|
for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
|
|
if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null; then
|
|
break
|
|
fi
|
|
prev="$cmd"
|
|
done
|
|
|
|
if test "$prev" != 'sed 50q "$0"'; then
|
|
echo_test_string=`eval $prev`
|
|
export echo_test_string
|
|
exec "${ORIGINAL_CONFIG_SHELL}" "$0" ${1+"$@"}
|
|
else
|
|
# Oops. We lost completely, so just stick with echo.
|
|
echo=echo
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
# Sed substitution that helps us do robust quoting. It backslashifies
|
|
# metacharacters that are still active within double-quoted strings.
|
|
Xsed='sed -e s/^X//'
|
|
sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
|
|
|
|
# Same as above, but do not quote variable references.
|
|
double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
|
|
|
|
# Sed substitution to delay expansion of an escaped shell variable in a
|
|
# double_quote_subst'ed string.
|
|
delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
|
|
|
|
# The name of this program.
|
|
progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'`
|
|
|
|
# Constants:
|
|
PROGRAM=ltconfig
|
|
PACKAGE=@PACKAGE@
|
|
VERSION=@VERSION@
|
|
TIMESTAMP="@TIMESTAMP@"
|
|
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5'
|
|
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS 1>&5'
|
|
rm="rm -f"
|
|
|
|
help="Try \`$progname --help' for more information."
|
|
|
|
# Global variables:
|
|
default_ofile=libtool
|
|
can_build_shared=yes
|
|
enable_shared=yes
|
|
# All known linkers require a `.a' archive for static linking (except M$VC,
|
|
# which needs '.lib').
|
|
enable_static=yes
|
|
enable_fast_install=yes
|
|
enable_dlopen=unknown
|
|
enable_win32_dll=no
|
|
ltmain=
|
|
silent=
|
|
srcdir=
|
|
ac_config_guess=
|
|
ac_config_sub=
|
|
host=
|
|
nonopt=
|
|
ofile="$default_ofile"
|
|
verify_host=yes
|
|
with_gcc=no
|
|
with_gnu_ld=no
|
|
need_locks=yes
|
|
ac_ext=c
|
|
objext=o
|
|
libext=a
|
|
exeext=
|
|
cache_file=
|
|
|
|
old_AR="$AR"
|
|
old_CC="$CC"
|
|
old_CFLAGS="$CFLAGS"
|
|
old_CPPFLAGS="$CPPFLAGS"
|
|
old_LDFLAGS="$LDFLAGS"
|
|
old_LD="$LD"
|
|
old_LN_S="$LN_S"
|
|
old_LIBS="$LIBS"
|
|
old_NM="$NM"
|
|
old_RANLIB="$RANLIB"
|
|
old_DLLTOOL="$DLLTOOL"
|
|
old_OBJDUMP="$OBJDUMP"
|
|
old_AS="$AS"
|
|
|
|
# Parse the command line options.
|
|
args=
|
|
prev=
|
|
for option
|
|
do
|
|
case "$option" in
|
|
-*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
|
|
*) optarg= ;;
|
|
esac
|
|
|
|
# If the previous option needs an argument, assign it.
|
|
if test -n "$prev"; then
|
|
eval "$prev=\$option"
|
|
prev=
|
|
continue
|
|
fi
|
|
|
|
case "$option" in
|
|
--help) cat <<EOM
|
|
Usage: $progname [OPTION]... [HOST [LTMAIN]]
|
|
|
|
Generate a system-specific libtool script.
|
|
|
|
--debug enable verbose shell tracing
|
|
--disable-shared do not build shared libraries
|
|
--disable-static do not build static libraries
|
|
--disable-fast-install do not optimize for fast installation
|
|
--enable-dlopen enable dlopen support
|
|
--enable-win32-dll enable building dlls on win32 hosts
|
|
--help display this help and exit
|
|
--no-verify do not verify that HOST is a valid host type
|
|
-o, --output=FILE specify the output file [default=$default_ofile]
|
|
--quiet same as \`--silent'
|
|
--silent do not print informational messages
|
|
--srcdir=DIR find \`config.guess' in DIR
|
|
--version output version information and exit
|
|
--with-gcc assume that the GNU C compiler will be used
|
|
--with-gnu-ld assume that the C compiler uses the GNU linker
|
|
--disable-lock disable file locking
|
|
--cache-file=FILE configure cache file
|
|
|
|
LTMAIN is the \`ltmain.sh' shell script fragment or \`ltmain.c' program
|
|
that provides basic libtool functionality.
|
|
|
|
HOST is the canonical host system name [default=guessed].
|
|
EOM
|
|
exit 0
|
|
;;
|
|
|
|
--debug)
|
|
echo "$progname: enabling shell trace mode"
|
|
set -x
|
|
;;
|
|
|
|
--disable-shared) enable_shared=no ;;
|
|
|
|
--disable-static) enable_static=no ;;
|
|
|
|
--disable-fast-install) enable_fast_install=no ;;
|
|
|
|
--enable-dlopen) enable_dlopen=yes ;;
|
|
|
|
--enable-win32-dll) enable_win32_dll=yes ;;
|
|
|
|
--quiet | --silent) silent=yes ;;
|
|
|
|
--srcdir) prev=srcdir ;;
|
|
--srcdir=*) srcdir="$optarg" ;;
|
|
|
|
--no-verify) verify_host=no ;;
|
|
|
|
--output | -o) prev=ofile ;;
|
|
--output=*) ofile="$optarg" ;;
|
|
|
|
--version) echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"; exit 0 ;;
|
|
|
|
--with-gcc) with_gcc=yes ;;
|
|
--with-gnu-ld) with_gnu_ld=yes ;;
|
|
|
|
--disable-lock) need_locks=no ;;
|
|
|
|
--cache-file=*) cache_file="$optarg" ;;
|
|
|
|
-*)
|
|
echo "$progname: unrecognized option \`$option'" 1>&2
|
|
echo "$help" 1>&2
|
|
exit 1
|
|
;;
|
|
|
|
*)
|
|
if test -z "$ltmain"; then
|
|
ltmain="$option"
|
|
elif test -z "$host"; then
|
|
# This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1
|
|
# if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then
|
|
# echo "$progname: warning \`$option' is not a valid host type" 1>&2
|
|
# fi
|
|
host="$option"
|
|
else
|
|
echo "$progname: too many arguments" 1>&2
|
|
echo "$help" 1>&2
|
|
exit 1
|
|
fi ;;
|
|
esac
|
|
done
|
|
|
|
if test -z "$ltmain"; then
|
|
echo "$progname: you must specify a LTMAIN file" 1>&2
|
|
echo "$help" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
if test ! -f "$ltmain"; then
|
|
echo "$progname: \`$ltmain' does not exist" 1>&2
|
|
echo "$help" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
# Quote any args containing shell metacharacters.
|
|
ltconfig_args=
|
|
for arg
|
|
do
|
|
case "$arg" in
|
|
*" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
|
|
ltconfig_args="$ltconfig_args '$arg'" ;;
|
|
*) ltconfig_args="$ltconfig_args $arg" ;;
|
|
esac
|
|
done
|
|
|
|
# A relevant subset of AC_INIT.
|
|
|
|
# File descriptor usage:
|
|
# 0 standard input
|
|
# 1 file creation
|
|
# 2 errors and warnings
|
|
# 3 some systems may open it to /dev/tty
|
|
# 4 used on the Kubota Titan
|
|
# 5 compiler messages saved in config.log
|
|
# 6 checking for... messages and results
|
|
if test "$silent" = yes; then
|
|
exec 6>/dev/null
|
|
else
|
|
exec 6>&1
|
|
fi
|
|
exec 5>>./config.log
|
|
|
|
# NLS nuisances.
|
|
# Only set LANG and LC_ALL to C if already set.
|
|
# These must not be set unconditionally because not all systems understand
|
|
# e.g. LANG=C (notably SCO).
|
|
if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
|
|
if test "${LANG+set}" = set; then LANG=C; export LANG; fi
|
|
|
|
if test -n "$cache_file" && test -r "$cache_file"; then
|
|
echo "loading cache $cache_file within ltconfig"
|
|
. $cache_file
|
|
fi
|
|
|
|
if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
|
|
# Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
|
|
if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
|
|
ac_n= ac_c='
|
|
' ac_t=' '
|
|
else
|
|
ac_n=-n ac_c= ac_t=
|
|
fi
|
|
else
|
|
ac_n= ac_c='\c' ac_t=
|
|
fi
|
|
|
|
if test -z "$srcdir"; then
|
|
# Assume the source directory is the same one as the path to LTMAIN.
|
|
srcdir=`$echo "X$ltmain" | $Xsed -e 's%/[^/]*$%%'`
|
|
test "$srcdir" = "$ltmain" && srcdir=.
|
|
fi
|
|
|
|
trap "$rm conftest*; exit 1" 1 2 15
|
|
if test "$verify_host" = yes; then
|
|
# Check for config.guess and config.sub.
|
|
ac_aux_dir=
|
|
for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
|
|
if test -f $ac_dir/config.guess; then
|
|
ac_aux_dir=$ac_dir
|
|
break
|
|
fi
|
|
done
|
|
if test -z "$ac_aux_dir"; then
|
|
echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2
|
|
echo "$help" 1>&2
|
|
exit 1
|
|
fi
|
|
ac_config_guess=$ac_aux_dir/config.guess
|
|
ac_config_sub=$ac_aux_dir/config.sub
|
|
|
|
# Make sure we can run config.sub.
|
|
if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then :
|
|
else
|
|
echo "$progname: cannot run $ac_config_sub" 1>&2
|
|
echo "$help" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
echo $ac_n "checking host system type""... $ac_c" 1>&6
|
|
|
|
host_alias=$host
|
|
case "$host_alias" in
|
|
"")
|
|
if host_alias=`$SHELL $ac_config_guess`; then :
|
|
else
|
|
echo "$progname: cannot guess host type; you must specify one" 1>&2
|
|
echo "$help" 1>&2
|
|
exit 1
|
|
fi ;;
|
|
esac
|
|
host=`$SHELL $ac_config_sub $host_alias`
|
|
echo "$ac_t$host" 1>&6
|
|
|
|
# Make sure the host verified.
|
|
test -z "$host" && exit 1
|
|
|
|
elif test -z "$host"; then
|
|
echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2
|
|
echo "$help" 1>&2
|
|
exit 1
|
|
else
|
|
host_alias=$host
|
|
fi
|
|
|
|
# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
|
|
case "$host_os" in
|
|
linux-gnu*) ;;
|
|
linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
|
|
esac
|
|
|
|
host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
|
|
host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
|
|
host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
|
|
|
|
case "$host_os" in
|
|
aix3*)
|
|
# AIX sometimes has problems with the GCC collect2 program. For some
|
|
# reason, if we set the COLLECT_NAMES environment variable, the problems
|
|
# vanish in a puff of smoke.
|
|
if test "${COLLECT_NAMES+set}" != set; then
|
|
COLLECT_NAMES=
|
|
export COLLECT_NAMES
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
# Determine commands to create old-style static archives.
|
|
old_archive_cmds='$AR cru $oldlib$oldobjs'
|
|
old_postinstall_cmds='chmod 644 $oldlib'
|
|
old_postuninstall_cmds=
|
|
|
|
# Set a sane default for `AR'.
|
|
test -z "$AR" && AR=ar
|
|
|
|
# Set a sane default for `OBJDUMP'.
|
|
test -z "$OBJDUMP" && OBJDUMP=objdump
|
|
|
|
echo $ac_n "checking for ranlib... $ac_c" 1>&6
|
|
echo "$progname:@LINENO@: checking for ranlib" 1>&5
|
|
if test "${ac_cv_prog_RANLIB+set}" = "set"; then
|
|
echo $ac_n "(cached) $ac_c" 1>&6
|
|
result="$ac_cv_prog_RANLIB"
|
|
else
|
|
if test -n "$RANLIB"; then
|
|
result="$RANLIB" # Let the user override the test.
|
|
ac_cv_prog_RANLIB="$result"
|
|
else
|
|
result=no
|
|
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
|
|
for dir in $PATH; do
|
|
test -z "$dir" && dir=.
|
|
if test -f $dir/ranlib || test -f $dir/ranlib$ac_exeext; then
|
|
result="ranlib"
|
|
ac_cv_prog_RANLIB="$result"
|
|
break
|
|
fi
|
|
done
|
|
IFS="$save_ifs"
|
|
fi
|
|
fi
|
|
if test -n "$ac_cv_prog_RANLIB"; then
|
|
RANLIB="$ac_cv_prog_RANLIB"
|
|
old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
|
|
old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
|
|
fi
|
|
echo "$ac_t$result" 1>&6
|
|
|
|
# Set sane defaults for `DLLTOOL', `OBJDUMP', and `AS', used on cygwin.
|
|
test -z "$DLLTOOL" && DLLTOOL=dlltool
|
|
test -z "$OBJDUMP" && OBJDUMP=objdump
|
|
test -z "$AS" && AS=as
|
|
|
|
# Check to see if we are using GCC.
|
|
if test "$with_gcc" != yes || test -z "$CC"; then
|
|
# If CC is not set, then try to find GCC or a usable CC.
|
|
if test -z "$CC"; then
|
|
echo $ac_n "checking for gcc... $ac_c" 1>&6
|
|
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
|
|
for dir in $PATH; do
|
|
test -z "$dir" && dir=.
|
|
if test -f $dir/gcc || test -f $dir/gcc$ac_exeext; then
|
|
CC="gcc"
|
|
break
|
|
fi
|
|
done
|
|
IFS="$save_ifs"
|
|
|
|
if test -n "$CC"; then
|
|
echo "$ac_t$CC" 1>&6
|
|
else
|
|
echo "$ac_t"no 1>&6
|
|
fi
|
|
fi
|
|
|
|
# Not "gcc", so try "cc", rejecting "/usr/ucb/cc".
|
|
if test -z "$CC"; then
|
|
echo $ac_n "checking for cc... $ac_c" 1>&6
|
|
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
|
|
cc_rejected=no
|
|
for dir in $PATH; do
|
|
test -z "$dir" && dir=.
|
|
if test -f $dir/cc || test -f $dir/cc$ac_exeext; then
|
|
if test "$dir/cc" = "/usr/ucb/cc"; then
|
|
cc_rejected=yes
|
|
continue
|
|
fi
|
|
CC="cc"
|
|
break
|
|
fi
|
|
done
|
|
IFS="$save_ifs"
|
|
if test $cc_rejected = yes; then
|
|
# We found a bogon in the path, so make sure we never use it.
|
|
set dummy $CC
|
|
shift
|
|
if test $# -gt 0; then
|
|
# We chose a different compiler from the bogus one.
|
|
# However, it has the same name, so the bogon will be chosen
|
|
# first if we set CC to just the name; use the full file name.
|
|
shift
|
|
set dummy "$dir/cc" "$@"
|
|
shift
|
|
CC="$@"
|
|
fi
|
|
fi
|
|
|
|
if test -n "$CC"; then
|
|
echo "$ac_t$CC" 1>&6
|
|
else
|
|
echo "$ac_t"no 1>&6
|
|
fi
|
|
|
|
if test -z "$CC"; then
|
|
echo "$progname: error: no acceptable cc found in \$PATH" 1>&2
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Now see if the compiler is really GCC.
|
|
with_gcc=no
|
|
echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6
|
|
echo "$progname:@LINENO@: checking whether we are using GNU C" >&5
|
|
|
|
$rm conftest.c
|
|
cat > conftest.c <<EOF
|
|
#ifdef __GNUC__
|
|
yes;
|
|
#endif
|
|
EOF
|
|
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:@LINENO@: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
|
|
with_gcc=yes
|
|
fi
|
|
$rm conftest.c
|
|
echo "$ac_t$with_gcc" 1>&6
|
|
fi
|
|
|
|
# Allow CC to be a program name with arguments.
|
|
set dummy $CC
|
|
compiler="$2"
|
|
|
|
echo $ac_n "checking for object suffix... $ac_c" 1>&6
|
|
echo "$progname:@LINENO@: checking for object suffix" 1>&5
|
|
if test "${ac_cv_objext+set}" = set; then
|
|
echo $ac_n "(cached) $ac_c" 1>&6
|
|
else
|
|
ac_cv_objext="none"
|
|
$rm conftest*
|
|
echo 'int i = 1;' > conftest.c
|
|
if { (eval echo $progname:@LINENO@: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; }; then
|
|
# Append any warnings to the config.log.
|
|
cat conftest.err 1>&5
|
|
|
|
for ac_file in conftest.*; do
|
|
case $ac_file in
|
|
*.c) ;;
|
|
*) ac_cv_objext=`echo $ac_file | sed -e s/conftest.//` ;;
|
|
esac
|
|
done
|
|
else
|
|
cat conftest.err 1>&5
|
|
echo "$progname: failed program was:" >&5
|
|
cat conftest.c >&5
|
|
fi
|
|
$rm conftest*
|
|
fi
|
|
if test "X$ac_cv_objext" != Xnone; then
|
|
objext="$ac_cv_objext"
|
|
fi
|
|
echo "$ac_t$ac_cv_objext" 1>&6
|
|
|
|
echo $ac_n "checking for executable suffix... $ac_c" 1>&6
|
|
echo "$progname:@LINENO@: checking for executable suffix" 1>&5
|
|
if test "X${ac_cv_exeext+set}" = Xset; then
|
|
echo $ac_n "(cached) $ac_c" 1>&6
|
|
else
|
|
ac_cv_exeext="none"
|
|
$rm conftest*
|
|
echo 'main () { return 0; }' > conftest.c
|
|
if { (eval echo $progname:@LINENO@: \"$ac_link\") 1>&5; (eval $ac_link) 2>conftest.err; }; then
|
|
# Append any warnings to the config.log.
|
|
cat conftest.err 1>&5
|
|
|
|
for ac_file in conftest.*; do
|
|
case $ac_file in
|
|
*.c | *.$objext ) ;;
|
|
*) ac_cv_exeext=.`echo $ac_file | sed -e s/conftest.//` ;;
|
|
esac
|
|
done
|
|
else
|
|
cat conftest.err 1>&5
|
|
echo "$progname: failed program was:" >&5
|
|
cat conftest.c >&5
|
|
fi
|
|
$rm conftest*
|
|
fi
|
|
if test "X$ac_cv_exeext" != Xnone; then
|
|
exeext="$ac_cv_exeext"
|
|
fi
|
|
echo "$ac_t$ac_cv_exeext" 1>&6
|
|
|
|
# We assume here that the value for ac_cv_prog_cc_pic will not be cached
|
|
# in isolation, and that seeing it set (from the cache) indicates that
|
|
#the associated values are set (in the cache) correctly too.
|
|
echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6
|
|
echo "$progname:@LINENO@:checking for $compiler option to produce PIC" 1>&5
|
|
if test "X${ac_cv_prog_cc_pic+set}" = Xset; then
|
|
echo $ac_n "(cached) $ac_c" 1>&6
|
|
else
|
|
ac_cv_prog_cc_pic=
|
|
ac_cv_prog_cc_shlib=
|
|
ac_cv_prog_cc_wl=
|
|
ac_cv_prog_cc_static=
|
|
ac_cv_prog_cc_no_builtin=
|
|
ac_cv_prog_cc_can_build_shared=$can_build_shared
|
|
|
|
if test "$with_gcc" = yes; then
|
|
ac_cv_prog_cc_wl='-Wl,'
|
|
ac_cv_prog_cc_static='-static'
|
|
|
|
case "$host_os" in
|
|
beos* | irix5* | irix6* | osf3* | osf4*)
|
|
# PIC is the default for these OSes.
|
|
;;
|
|
aix*)
|
|
# Below there is a dirty hack to force normal static linking with -ldl
|
|
# The problem is because libdl dynamically linked with both libc and
|
|
# libC (AIX C++ library), which obviously doesn't included in libraries
|
|
# list by gcc. This cause undefined symbols with -static flags.
|
|
# This hack allows C programs to be linked with "-static -ldl", but
|
|
# we not sure about C++ programs.
|
|
ac_cv_prog_cc_static="$ac_cv_prog_cc_static ${ac_cv_prog_cc_wl}-lC"
|
|
;;
|
|
cygwin* | mingw* | os2*)
|
|
# This hack is so that the source file can tell whether it is being
|
|
# built for inclusion in a dll (and should export symbols for example).
|
|
ac_cv_prog_cc_pic='-DDLL_EXPORT'
|
|
;;
|
|
amigaos*)
|
|
# FIXME: we need at least 68020 code to build shared libraries, but
|
|
# adding the `-m68020' flag to GCC prevents building anything better,
|
|
# like `-m68040'.
|
|
ac_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4'
|
|
;;
|
|
sysv4*MP*)
|
|
if test -d /usr/nec; then
|
|
ac_cv_prog_cc_pic=-Kconform_pic
|
|
fi
|
|
;;
|
|
*)
|
|
ac_cv_prog_cc_pic='-fPIC'
|
|
;;
|
|
esac
|
|
else
|
|
# PORTME Check for PIC flags for the system compiler.
|
|
case "$host_os" in
|
|
aix3* | aix4*)
|
|
# All AIX code is PIC.
|
|
ac_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp'
|
|
;;
|
|
|
|
hpux9* | hpux10* | hpux11*)
|
|
# Is there a better ac_cv_prog_cc_static that works with the bundled CC?
|
|
ac_cv_prog_cc_wl='-Wl,'
|
|
ac_cv_prog_cc_static="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
|
|
ac_cv_prog_cc_pic='+Z'
|
|
;;
|
|
|
|
irix5* | irix6*)
|
|
ac_cv_prog_cc_wl='-Wl,'
|
|
ac_cv_prog_cc_static='-non_shared'
|
|
# PIC (with -KPIC) is the default.
|
|
;;
|
|
|
|
cygwin* | mingw* | os2*)
|
|
# This hack is so that the source file can tell whether it is being
|
|
# built for inclusion in a dll (and should export symbols for example).
|
|
ac_cv_prog_cc_pic='-DDLL_EXPORT'
|
|
;;
|
|
|
|
osf3* | osf4*)
|
|
# All OSF/1 code is PIC.
|
|
ac_cv_prog_cc_wl='-Wl,'
|
|
ac_cv_prog_cc_static='-non_shared'
|
|
;;
|
|
|
|
sco3.2v5*)
|
|
ac_cv_prog_cc_pic='-Kpic'
|
|
ac_cv_prog_cc_static='-dn'
|
|
ac_cv_prog_cc_shlib='-belf'
|
|
;;
|
|
|
|
solaris*)
|
|
ac_cv_prog_cc_pic='-KPIC'
|
|
ac_cv_prog_cc_static='-Bstatic'
|
|
ac_cv_prog_cc_wl='-Wl,'
|
|
;;
|
|
|
|
sunos4*)
|
|
ac_cv_prog_cc_pic='-PIC'
|
|
ac_cv_prog_cc_static='-Bstatic'
|
|
ac_cv_prog_cc_wl='-Qoption ld '
|
|
;;
|
|
|
|
sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
|
|
ac_cv_prog_cc_pic='-KPIC'
|
|
ac_cv_prog_cc_static='-Bstatic'
|
|
ac_cv_prog_cc_wl='-Wl,'
|
|
;;
|
|
|
|
uts4*)
|
|
ac_cv_prog_cc_pic='-pic'
|
|
ac_cv_prog_cc_static='-Bstatic'
|
|
;;
|
|
|
|
sysv4*MP*)
|
|
if test -d /usr/nec ;then
|
|
ac_cv_prog_cc_pic='-Kconform_pic'
|
|
ac_cv_prog_cc_static='-Bstatic'
|
|
fi
|
|
;;
|
|
|
|
*)
|
|
ac_cv_prog_cc_can_build_shared=no
|
|
;;
|
|
esac
|
|
fi
|
|
fi
|
|
if test -z "$ac_cv_prog_cc_pic"; then
|
|
echo "$ac_t"none 1>&6
|
|
else
|
|
echo "$ac_t""$ac_cv_prog_cc_pic" 1>&6
|
|
|
|
# Check to make sure the pic_flag actually works.
|
|
echo $ac_n "checking if $compiler PIC flag $ac_cv_prog_cc_pic works... $ac_c" 1>&6
|
|
echo "$progname:@LINENO@:checking that $compiler PIC flag $ac_cv_prog_cc_pic works." 1>&5
|
|
if test "${ac_cv_prog_cc_pic_works+set}" = "set"; then
|
|
echo $ac_n "(cached) $ac_c" 1>&6
|
|
else
|
|
ac_cv_prog_cc_pic_works=yes
|
|
$rm conftest*
|
|
echo "int some_variable = 0;" > conftest.c
|
|
save_CFLAGS="$CFLAGS"
|
|
CFLAGS="$CFLAGS $ac_cv_prog_cc_pic -DPIC"
|
|
if { (eval echo $progname:@LINENO@: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then
|
|
# Append any warnings to the config.log.
|
|
cat conftest.err 1>&5
|
|
|
|
case "$host_os" in
|
|
hpux9* | hpux10* | hpux11*)
|
|
# On HP-UX, both CC and GCC only warn that PIC is supported... then
|
|
# they create non-PIC objects. So, if there were any warnings, we
|
|
# assume that PIC is not supported.
|
|
if test -s conftest.err; then
|
|
echo "$ac_t"no 1>&6
|
|
ac_cv_prog_cc_pic_works=no
|
|
ac_cv_prog_cc_can_build_shared=no
|
|
ac_cv_prog_cc_pic=
|
|
else
|
|
echo "$ac_t"yes 1>&6
|
|
ac_cv_prog_cc_pic=" $ac_cv_prog_cc_pic"
|
|
fi
|
|
;;
|
|
*)
|
|
echo "$ac_t"yes 1>&6
|
|
ac_cv_prog_cc_pic=" $ac_cv_prog_cc_pic"
|
|
;;
|
|
esac
|
|
else
|
|
# Append any errors to the config.log.
|
|
cat conftest.err 1>&5
|
|
ac_cv_prog_cc_pic_works=no
|
|
ac_cv_prog_cc_can_build_shared=no
|
|
ac_cv_prog_cc_pic=
|
|
echo "$ac_t"no 1>&6
|
|
fi
|
|
CFLAGS="$save_CFLAGS"
|
|
$rm conftest*
|
|
fi
|
|
# Belt *and* braces to stop my trousers falling down:
|
|
if test X$ac_cv_prog_cc_pic_works = Xno; then
|
|
ac_cv_prog_cc_pic=
|
|
ac_cv_prog_cc_can_build_shared=no
|
|
fi
|
|
echo "$ac_t""$ac_cv_prog_cc_pic_works" 1>&6
|
|
fi
|
|
|
|
# Check for any special shared library compilation flags.
|
|
if test -n "$ac_cv_prog_cc_shlib"; then
|
|
echo "$progname: warning: \`$CC' requires \`$ac_cv_prog_cc_shlib' to build shared libraries" 1>&2
|
|
if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$ac_cv_prog_cc_shlib[ ]" >/dev/null; then :
|
|
else
|
|
echo "$progname: add \`$ac_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" 1>&2
|
|
ac_cv_prog_cc_can_build_shared=no
|
|
fi
|
|
fi
|
|
|
|
echo $ac_n "checking if $compiler static flag $ac_cv_prog_cc_static works... $ac_c" 1>&6
|
|
echo "$progname:@LINENO@: checking if $compiler static flag $link_static_flag works" >&5
|
|
if test "X${ac_cv_prog_cc_static_works+set}" = Xset; then
|
|
echo $ac_n "(cached) $ac_c" 1>&6
|
|
else
|
|
$rm conftest*
|
|
echo 'main(){return(0);}' > conftest.c
|
|
save_LDFLAGS="$LDFLAGS"
|
|
LDFLAGS="$LDFLAGS $link_static_flag"
|
|
if { (eval echo $progname:@LINENO@: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
|
|
ac_cv_prog_cc_static_works=yes
|
|
else
|
|
ac_cv_prog_cc_static_works=no
|
|
ac_cv_prog_cc_static=
|
|
fi
|
|
LDFLAGS="$save_LDFLAGS"
|
|
$rm conftest*
|
|
fi
|
|
# Belt *and* braces to stop my trousers falling down:
|
|
if test X$ac_cv_prog_cc_static_works = Xno; then
|
|
ac_cv_prog_cc_static=
|
|
fi
|
|
echo "$ac_t""$ac_cv_prog_cc_static_works" 1>&6
|
|
pic_flag="$ac_cv_prog_cc_pic"
|
|
special_shlib_compile_flags="$ac_cv_prog_cc_shlib"
|
|
wl="$ac_cv_prog_cc_wl"
|
|
link_static_flag="$ac_cv_prog_cc_static"
|
|
no_builtin_flag="$ac_cv_prog_cc_no_builtin"
|
|
can_build_shared="$ac_cv_prog_cc_can_build_shared"
|
|
|
|
# Check to see if options -o and -c are simultaneously supported by compiler
|
|
echo $ac_n "checking if $compiler supports -c -o file.o... $ac_c" 1>&6
|
|
$rm -r conftest 2>/dev/null
|
|
mkdir conftest
|
|
cd conftest
|
|
$rm conftest*
|
|
echo "int some_variable = 0;" > conftest.c
|
|
mkdir out
|
|
# According to Tom Tromey, Ian Lance Taylor reported there are C compilers
|
|
# that will create temporary files in the current directory regardless of
|
|
# the output directory. Thus, making CWD read-only will cause this test
|
|
# to fail, enabling locking or at least warning the user not to do parallel
|
|
# builds.
|
|
chmod -w .
|
|
save_CFLAGS="$CFLAGS"
|
|
CFLAGS="$CFLAGS -o out/conftest2.o"
|
|
echo "$progname:@LINENO@: checking if $compiler supports -c -o file.o" >&5
|
|
if { (eval echo $progname:@LINENO@: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.o; then
|
|
|
|
# The compiler can only warn and ignore the option if not recognized
|
|
# So say no if there are warnings
|
|
if test -s out/conftest.err; then
|
|
echo "$ac_t"no 1>&6
|
|
compiler_c_o=no
|
|
else
|
|
echo "$ac_t"yes 1>&6
|
|
compiler_c_o=yes
|
|
fi
|
|
else
|
|
# Append any errors to the config.log.
|
|
cat out/conftest.err 1>&5
|
|
compiler_c_o=no
|
|
echo "$ac_t"no 1>&6
|
|
fi
|
|
CFLAGS="$save_CFLAGS"
|
|
chmod u+w .
|
|
$rm conftest* out/*
|
|
rmdir out
|
|
cd ..
|
|
rmdir conftest
|
|
$rm -r conftest 2>/dev/null
|
|
|
|
if test x"$compiler_c_o" = x"yes"; then
|
|
# Check to see if we can write to a .lo
|
|
echo $ac_n "checking if $compiler supports -c -o file.lo... $ac_c" 1>&6
|
|
$rm conftest*
|
|
echo "int some_variable = 0;" > conftest.c
|
|
save_CFLAGS="$CFLAGS"
|
|
CFLAGS="$CFLAGS -c -o conftest.lo"
|
|
echo "$progname:@LINENO@: checking if $compiler supports -c -o file.lo" >&5
|
|
if { (eval echo $progname:@LINENO@: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; then
|
|
|
|
# The compiler can only warn and ignore the option if not recognized
|
|
# So say no if there are warnings
|
|
if test -s conftest.err; then
|
|
echo "$ac_t"no 1>&6
|
|
compiler_o_lo=no
|
|
else
|
|
echo "$ac_t"yes 1>&6
|
|
compiler_o_lo=yes
|
|
fi
|
|
else
|
|
# Append any errors to the config.log.
|
|
cat conftest.err 1>&5
|
|
compiler_o_lo=no
|
|
echo "$ac_t"no 1>&6
|
|
fi
|
|
CFLAGS="$save_CFLAGS"
|
|
$rm conftest*
|
|
else
|
|
compiler_o_lo=no
|
|
fi
|
|
|
|
# Check to see if we can do hard links to lock some files if needed
|
|
hard_links="nottested"
|
|
if test "$compiler_c_o" = no && test "$need_locks" != no; then
|
|
# do not overwrite the value of need_locks provided by the user
|
|
echo $ac_n "checking if we can lock with hard links... $ac_c" 1>&6
|
|
hard_links=yes
|
|
$rm conftest*
|
|
ln conftest.a conftest.b 2>/dev/null && hard_links=no
|
|
touch conftest.a
|
|
ln conftest.a conftest.b 2>&5 || hard_links=no
|
|
ln conftest.a conftest.b 2>/dev/null && hard_links=no
|
|
echo "$ac_t$hard_links" 1>&6
|
|
$rm conftest*
|
|
if test "$hard_links" = no; then
|
|
echo "*** WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2
|
|
need_locks=warn
|
|
fi
|
|
else
|
|
need_locks=no
|
|
fi
|
|
|
|
if test "$with_gcc" = yes; then
|
|
# Check to see if options -fno-rtti -fno-exceptions are supported by compiler
|
|
echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions ... $ac_c" 1>&6
|
|
$rm conftest*
|
|
echo "int some_variable = 0;" > conftest.c
|
|
save_CFLAGS="$CFLAGS"
|
|
CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.c"
|
|
echo "$progname:@LINENO@: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
|
|
if { (eval echo $progname:@LINENO@: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
|
|
|
|
# The compiler can only warn and ignore the option if not recognized
|
|
# So say no if there are warnings
|
|
if test -s conftest.err; then
|
|
echo "$ac_t"no 1>&6
|
|
compiler_rtti_exceptions=no
|
|
else
|
|
echo "$ac_t"yes 1>&6
|
|
compiler_rtti_exceptions=yes
|
|
fi
|
|
else
|
|
# Append any errors to the config.log.
|
|
cat conftest.err 1>&5
|
|
compiler_rtti_exceptions=no
|
|
echo "$ac_t"no 1>&6
|
|
fi
|
|
CFLAGS="$save_CFLAGS"
|
|
$rm conftest*
|
|
|
|
if test "$compiler_rtti_exceptions" = "yes"; then
|
|
no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions'
|
|
else
|
|
no_builtin_flag=' -fno-builtin'
|
|
fi
|
|
|
|
fi
|
|
|
|
# Check to see if we can use ln -s, or we need hard links.
|
|
echo $ac_n "checking whether ln -s works... $ac_c" 1>&6
|
|
echo "$progname:@LINENO@: checking for ln -s" 1>&5
|
|
result=yes
|
|
if test "${ac_cv_prog_LN_S+set}" = "set"; then
|
|
echo $ac_n "(cached) $ac_c" 1>&6
|
|
if test "X$ac_cv_prog_LN_S" != "Xln -s"; then
|
|
result=no
|
|
fi
|
|
else
|
|
if test -n "$LN_S"; then
|
|
ac_cv_prog_LN_S="$LN_S"
|
|
else
|
|
$rm conftest.dat
|
|
if ln -s X conftest.dat 2>/dev/null; then
|
|
$rm conftest.dat
|
|
ac_cv_prog_LN_S="ln -s"
|
|
else
|
|
ac_cv_prog_LN_S=ln
|
|
result=no
|
|
fi
|
|
fi
|
|
fi
|
|
LN_S="$ac_cv_prog_LN_S"
|
|
echo "$ac_t""$result" 1>&6
|
|
|
|
# Make sure LD is an absolute path.
|
|
if test -z "$LD"; then
|
|
ac_prog=ld
|
|
if test "$with_gcc" = yes; then
|
|
# Check if gcc -print-prog-name=ld gives a path.
|
|
echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6
|
|
echo "$progname:@LINENO@: checking for ld used by GCC" >&5
|
|
ac_prog=`($CC -print-prog-name=ld) 2>&5`
|
|
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 are not 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
|
|
echo $ac_n "checking for GNU ld... $ac_c" 1>&6
|
|
echo "$progname:@LINENO@: checking for GNU ld" >&5
|
|
else
|
|
echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
|
|
echo "$progname:@LINENO@: checking for non-GNU ld" >&5
|
|
fi
|
|
|
|
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
|
|
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.
|
|
if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
|
|
test "$with_gnu_ld" != no && break
|
|
else
|
|
test "$with_gnu_ld" != yes && break
|
|
fi
|
|
fi
|
|
done
|
|
IFS="$ac_save_ifs"
|
|
fi
|
|
|
|
if test -n "$LD"; then
|
|
echo "$ac_t$LD" 1>&6
|
|
else
|
|
echo "$ac_t"no 1>&6
|
|
fi
|
|
|
|
if test -z "$LD"; then
|
|
echo "$progname: error: no acceptable ld found in \$PATH" 1>&2
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Check to see if it really is or is not GNU ld.
|
|
echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6
|
|
# I'd rather use --version here, but apparently some GNU ld's only accept -v.
|
|
if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
|
|
with_gnu_ld=yes
|
|
else
|
|
with_gnu_ld=no
|
|
fi
|
|
echo "$ac_t$with_gnu_ld" 1>&6
|
|
|
|
# See if the linker supports building shared libraries.
|
|
echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6
|
|
|
|
allow_undefined_flag=
|
|
no_undefined_flag=
|
|
need_lib_prefix=unknown
|
|
need_version=unknown
|
|
# when you set need_version to no, make sure it does not cause -set_version
|
|
# flags to be left without arguments
|
|
archive_cmds=
|
|
archive_expsym_cmds=
|
|
old_archive_from_new_cmds=
|
|
old_archive_from_expsyms_cmds=
|
|
export_dynamic_flag_spec=
|
|
whole_archive_flag_spec=
|
|
thread_safe_flag_spec=
|
|
hardcode_libdir_flag_spec=
|
|
hardcode_libdir_separator=
|
|
hardcode_direct=no
|
|
hardcode_minus_L=no
|
|
hardcode_shlibpath_var=unsupported
|
|
runpath_var=
|
|
link_all_deplibs=unknown
|
|
always_export_symbols=no
|
|
export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
|
|
# include_expsyms should be a list of space-separated symbols to be *always*
|
|
# included in the symbol list
|
|
include_expsyms=
|
|
# exclude_expsyms can be an egrep regular expression of symbols to exclude
|
|
# it will be wrapped by ` (' and `)$', so one must not match beginning or
|
|
# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
|
|
# as well as any symbol that contains `d'.
|
|
exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
|
|
# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
|
|
# platforms (ab)use it in PIC code, but their linkers get confused if
|
|
# the symbol is explicitly referenced. Since portable code cannot
|
|
# rely on this symbol name, it's probably fine to never include it in
|
|
# preloaded symbol tables.
|
|
extract_expsyms_cmds=
|
|
|
|
case "$host_os" in
|
|
cygwin* | mingw*)
|
|
# 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 "$with_gcc" != yes; then
|
|
with_gnu_ld=no
|
|
fi
|
|
;;
|
|
|
|
esac
|
|
|
|
ld_shlibs=yes
|
|
if test "$with_gnu_ld" = yes; then
|
|
# If archive_cmds runs LD, not CC, wlarc should be empty
|
|
wlarc='${wl}'
|
|
|
|
# See if GNU ld supports shared libraries.
|
|
case "$host_os" in
|
|
aix3* | aix4*)
|
|
# On AIX, the GNU linker is very broken
|
|
ld_shlibs=no
|
|
cat <<EOF 1>&2
|
|
|
|
*** Warning: the GNU linker, at least up to release 2.9.1, is reported
|
|
*** to be unable to reliably create shared libraries on AIX.
|
|
*** Therefore, libtool is disabling shared libraries support. If you
|
|
*** really care for shared libraries, you may want to modify your PATH
|
|
*** so that a non-GNU linker is found, and then restart.
|
|
|
|
EOF
|
|
;;
|
|
|
|
amigaos*)
|
|
archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)'
|
|
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 can use
|
|
# them.
|
|
ld_shlibs=no
|
|
;;
|
|
|
|
beos*)
|
|
if $LD --help 2>&1 | sed -n '/: supported targets:/,/:/p' | grep 'elf' > /dev/null; then
|
|
allow_undefined_flag=unsupported
|
|
# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
|
|
# support --undefined. This deserves some investigation. FIXME
|
|
archive_cmds='$CC -nostart $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
|
|
else
|
|
ld_shlibs=no
|
|
fi
|
|
;;
|
|
|
|
cygwin* | mingw*)
|
|
# hardcode_libdir_flag_spec is actually meaningless, as there is
|
|
# no search path for DLLs.
|
|
hardcode_libdir_flag_spec='-L$libdir'
|
|
allow_undefined_flag=unsupported
|
|
always_export_symbols=yes
|
|
|
|
extract_expsyms_cmds='test -f $objdir/impgen.c || \
|
|
sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/impgen.c~
|
|
test -f $objdir/impgen.exe || (cd $objdir && $CC -o impgen impgen.c)~
|
|
$objdir/impgen $dir/$soname > $objdir/$soname-def'
|
|
|
|
old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$newlib'
|
|
|
|
# Extract the symbol export list from an `--export-all' def file,
|
|
# then regenerate the def file from the symbol export list, so that
|
|
# the compiled dll only exports the symbol export list.
|
|
export_symbols_cmds='rm -f $objdir/$soname-ltdll.c~
|
|
sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
|
|
(cd $objdir && $CC -c $soname-ltdll.c)~
|
|
$DLLTOOL --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs $convenience~
|
|
sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]* ;.*//" < $objdir/$soname-def > $export_symbols'
|
|
|
|
archive_expsym_cmds='echo EXPORTS > $objdir/$soname-def~
|
|
_lt_hint=1;
|
|
for symbol in `cat $export_symbols`; do
|
|
echo " \$symbol @ \$_lt_hint ; " >> $objdir/$soname-def;
|
|
_lt_hint=`expr 1 + \$_lt_hint`;
|
|
done~
|
|
$CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $compiler_flags~
|
|
$DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
|
|
$CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $compiler_flags~
|
|
$DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
|
|
$CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $compiler_flags'
|
|
;;
|
|
|
|
netbsd*)
|
|
if $LD --help 2>&1 | sed -n '/: supported targets:/,/:/p' | grep 'elf' > /dev/null; then
|
|
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
|
|
archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
|
|
else
|
|
archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
|
|
# can we support soname and/or expsyms with a.out? -oliva
|
|
fi
|
|
;;
|
|
|
|
solaris*)
|
|
if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
|
|
ld_shlibs=no
|
|
cat <<EOF 1>&2
|
|
|
|
*** Warning: The releases 2.8.* of the GNU linker cannot reliably
|
|
*** create shared libraries on Solaris systems. Therefore, libtool
|
|
*** is disabling shared libraries support. We urge you to upgrade GNU
|
|
*** binutils to release 2.9.1 or newer. Another option is to modify
|
|
*** your PATH or compiler configuration so that the native linker is
|
|
*** used, and then restart.
|
|
|
|
EOF
|
|
elif $LD --help 2>&1 | sed -n '/: supported targets:/,/:/p' | grep 'elf' > /dev/null; then
|
|
archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
|
|
archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
|
|
else
|
|
ld_shlibs=no
|
|
fi
|
|
;;
|
|
|
|
sunos4*)
|
|
archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
|
|
wlarc=
|
|
hardcode_direct=yes
|
|
hardcode_shlibpath_var=no
|
|
;;
|
|
|
|
*)
|
|
if $LD --help 2>&1 | sed -n '/: supported targets:/,/:/p' | grep 'elf' > /dev/null; then
|
|
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
|
|
archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
|
|
else
|
|
ld_shlibs=no
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
if test "$ld_shlibs" = yes; then
|
|
runpath_var=LD_RUN_PATH
|
|
hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
|
|
export_dynamic_flag_spec='${wl}--export-dynamic'
|
|
case $host_os in
|
|
cygwin* | mingw*)
|
|
# dlltool doesn't understand --whole-archive et. al.
|
|
whole_archive_flag_spec=
|
|
;;
|
|
*)
|
|
whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
|
|
;;
|
|
esac
|
|
fi
|
|
else
|
|
# PORTME fill in a description of your system's linker (not GNU ld)
|
|
case "$host_os" in
|
|
aix3*)
|
|
allow_undefined_flag=unsupported
|
|
always_export_symbols=yes
|
|
archive_expsym_cmds='$LD -o $objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname'
|
|
# Note: this linker hardcodes the directories in LIBPATH if there
|
|
# are no directories specified by -L.
|
|
hardcode_minus_L=yes
|
|
if test "$with_gcc" = yes && test -z "$link_static_flag"; then
|
|
# Neither direct hardcoding nor static linking is supported with a
|
|
# broken collect2.
|
|
hardcode_direct=unsupported
|
|
fi
|
|
;;
|
|
|
|
aix4*)
|
|
hardcode_libdir_flag_spec='${wl}-b ${wl}nolibpath ${wl}-b ${wl}libpath:$libdir:/usr/lib:/lib'
|
|
hardcode_libdir_separator=':'
|
|
if test "$with_gcc" = yes; then
|
|
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
|
|
# It fails to find uninstalled libraries when the uninstalled
|
|
# path is not listed in the libpath. Setting hardcode_minus_L
|
|
# to unsupported forces relinking
|
|
hardcode_minus_L=yes
|
|
hardcode_libdir_flag_spec='-L$libdir'
|
|
hardcode_libdir_separator=
|
|
fi
|
|
shared_flag='-shared'
|
|
else
|
|
shared_flag='${wl}-bM:SRE'
|
|
hardcode_direct=yes
|
|
fi
|
|
allow_undefined_flag=' ${wl}-berok'
|
|
archive_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bexpall ${wl}-bnoentry${allow_undefined_flag}'
|
|
archive_expsym_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}'
|
|
case "$host_os" in aix4.[01]|aix4.[01].*)
|
|
# According to Greg Wooledge, -bexpall is only supported from AIX 4.2 on
|
|
always_export_symbols=yes ;;
|
|
esac
|
|
;;
|
|
|
|
amigaos*)
|
|
archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)'
|
|
hardcode_libdir_flag_spec='-L$libdir'
|
|
hardcode_minus_L=yes
|
|
# see comment about different semantics on the GNU ld section
|
|
ld_shlibs=no
|
|
;;
|
|
|
|
cygwin* | mingw*)
|
|
# 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=' '
|
|
allow_undefined_flag=unsupported
|
|
# Tell ltmain to make .lib files, not .a files.
|
|
libext=lib
|
|
# FIXME: Setting linknames here is a bad hack.
|
|
archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
|
|
# The linker will automatically build a .lib file if we build a DLL.
|
|
old_archive_from_new_cmds='true'
|
|
# FIXME: Should let the user specify the lib program.
|
|
old_archive_cmds='lib /OUT:$oldlib$oldobjs'
|
|
fix_srcfile_path='`cygpath -w $srcfile`'
|
|
;;
|
|
|
|
freebsd1*)
|
|
ld_shlibs=no
|
|
;;
|
|
|
|
# FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
|
|
# support. Future versions do this automatically, but an explicit c++rt0.o
|
|
# does not break anything, and helps significantly (at the cost of a little
|
|
# extra space).
|
|
freebsd2.2*)
|
|
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
|
|
hardcode_libdir_flag_spec='-R$libdir'
|
|
hardcode_direct=yes
|
|
hardcode_shlibpath_var=no
|
|
;;
|
|
|
|
# Unfortunately, older versions of FreeBSD 2 do not have this feature.
|
|
freebsd2*)
|
|
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
|
|
hardcode_direct=yes
|
|
hardcode_minus_L=yes
|
|
hardcode_shlibpath_var=no
|
|
;;
|
|
|
|
# FreeBSD 3 and greater uses gcc -shared to do shared libraries.
|
|
freebsd*)
|
|
archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
|
|
hardcode_libdir_flag_spec='-R$libdir'
|
|
hardcode_direct=yes
|
|
hardcode_shlibpath_var=no
|
|
;;
|
|
|
|
hpux9* | hpux10* | hpux11*)
|
|
case "$host_os" in
|
|
hpux9*) archive_cmds='$rm $objdir/$soname~$LD -b +b $install_libdir -o $objdir/$soname $libobjs $deplibs $linker_flags~test $objdir/$soname = $lib || mv $objdir/$soname $lib' ;;
|
|
*) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;;
|
|
esac
|
|
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
|
hardcode_libdir_separator=:
|
|
hardcode_direct=yes
|
|
hardcode_minus_L=yes # Not in the search PATH, but as the default
|
|
# location of the library.
|
|
export_dynamic_flag_spec='${wl}-E'
|
|
;;
|
|
|
|
irix5* | irix6*)
|
|
if test "$with_gcc" = yes; then
|
|
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
|
|
else
|
|
archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
|
|
fi
|
|
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
|
hardcode_libdir_separator=:
|
|
link_all_deplibs=yes
|
|
;;
|
|
|
|
netbsd*)
|
|
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
|
|
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
|
|
else
|
|
archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
|
|
fi
|
|
hardcode_libdir_flag_spec='${wl}-R$libdir'
|
|
hardcode_direct=yes
|
|
hardcode_shlibpath_var=no
|
|
;;
|
|
|
|
openbsd*)
|
|
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
|
|
hardcode_libdir_flag_spec='-R$libdir'
|
|
hardcode_direct=yes
|
|
hardcode_shlibpath_var=no
|
|
;;
|
|
|
|
os2*)
|
|
hardcode_libdir_flag_spec='-L$libdir'
|
|
hardcode_minus_L=yes
|
|
allow_undefined_flag=unsupported
|
|
archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $objdir/$libname.def'
|
|
old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def'
|
|
;;
|
|
|
|
osf3* | osf4*)
|
|
if test "$with_gcc" = yes; then
|
|
allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
|
|
archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
|
|
else
|
|
allow_undefined_flag=' -expect_unresolved \*'
|
|
archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
|
|
fi
|
|
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
|
hardcode_libdir_separator=:
|
|
;;
|
|
|
|
sco3.2v5*)
|
|
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
|
|
hardcode_shlibpath_var=no
|
|
runpath_var=LD_RUN_PATH
|
|
hardcode_runpath_var=yes
|
|
;;
|
|
|
|
solaris*)
|
|
no_undefined_flag=' -z text'
|
|
# $CC -shared without GNU ld will not create a library from C++
|
|
# object files and a static libstdc++, better avoid it by now
|
|
archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
|
|
archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
|
|
$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
|
|
hardcode_libdir_flag_spec='-R$libdir'
|
|
hardcode_shlibpath_var=no
|
|
case "$host_os" in
|
|
solaris2.[0-5] | solaris2.[0-5].*) ;;
|
|
*) # Supported since Solaris 2.6 (maybe 2.5.1?)
|
|
whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
|
|
esac
|
|
link_all_deplibs=yes
|
|
;;
|
|
|
|
sunos4*)
|
|
archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
|
|
hardcode_libdir_flag_spec='-L$libdir'
|
|
hardcode_direct=yes
|
|
hardcode_minus_L=yes
|
|
hardcode_shlibpath_var=no
|
|
;;
|
|
|
|
sysv4)
|
|
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
|
|
runpath_var='LD_RUN_PATH'
|
|
hardcode_shlibpath_var=no
|
|
hardcode_direct=no #Motorola manual says yes, but my tests say they lie
|
|
;;
|
|
|
|
sysv4.3*)
|
|
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
|
|
hardcode_shlibpath_var=no
|
|
export_dynamic_flag_spec='-Bexport'
|
|
;;
|
|
|
|
uts4*)
|
|
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
|
|
hardcode_libdir_flag_spec='-L$libdir'
|
|
hardcode_shlibpath_var=no
|
|
;;
|
|
|
|
dgux*)
|
|
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
|
|
hardcode_libdir_flag_spec='-L$libdir'
|
|
hardcode_shlibpath_var=no
|
|
;;
|
|
|
|
sysv4*MP*)
|
|
if test -d /usr/nec ;then
|
|
# archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs$deplibs'
|
|
archive_cmds='$LD -G -h $soname -o $lib$libobjs$deplibs'
|
|
hardcode_shlibpath_var=no
|
|
runpath_var=LD_RUN_PATH
|
|
hardcode_runpath_var=yes
|
|
ld_shlibs=yes
|
|
fi
|
|
;;
|
|
|
|
*)
|
|
ld_shlibs=no
|
|
;;
|
|
esac
|
|
fi
|
|
echo "$ac_t$ld_shlibs" 1>&6
|
|
test "$ld_shlibs" = no && can_build_shared=no
|
|
|
|
if test -z "$NM"; then
|
|
echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6
|
|
case "$NM" in
|
|
[\\/]* | [A-Za-z]:[\\/]*) ;; # Let the user override the test with a path.
|
|
*)
|
|
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
|
|
for ac_dir in $PATH /usr/ucb /usr/ccs/bin /bin; do
|
|
test -z "$ac_dir" && ac_dir=.
|
|
if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext; then
|
|
# Check to see if the nm accepts a BSD-compat flag.
|
|
# Adding the `sed 1q' prevents false positives on HP-UX, which says:
|
|
# nm: unknown option "B" ignored
|
|
if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
|
|
NM="$ac_dir/nm -B"
|
|
break
|
|
elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
|
|
NM="$ac_dir/nm -p"
|
|
break
|
|
else
|
|
NM=${NM="$ac_dir/nm"} # keep the first match, but
|
|
continue # so that we can try to find one that supports BSD flags
|
|
fi
|
|
fi
|
|
done
|
|
IFS="$ac_save_ifs"
|
|
test -z "$NM" && NM=nm
|
|
;;
|
|
esac
|
|
echo "$ac_t$NM" 1>&6
|
|
fi
|
|
|
|
# Check for command to grab the raw symbol name followed by C symbol from nm.
|
|
echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6
|
|
|
|
# These are sane defaults that work on at least a few old systems.
|
|
# [They come from Ultrix. What could be older than Ultrix?!! ;)]
|
|
|
|
# Character class describing NM global symbol codes.
|
|
symcode='[BCDEGRST]'
|
|
|
|
# Regexp to match symbols that can be accessed directly from C.
|
|
sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
|
|
|
|
# Transform the above into a raw symbol and a C symbol.
|
|
symxfrm='\1 \2\3 \3'
|
|
|
|
# Transform an extracted symbol line into a proper C declaration
|
|
global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
|
|
|
|
# Define system-specific variables.
|
|
case "$host_os" in
|
|
aix*)
|
|
symcode='[BCDT]'
|
|
;;
|
|
cygwin* | mingw*)
|
|
symcode='[ABCDGISTW]'
|
|
;;
|
|
hpux*) # Its linker distinguishes data from code symbols
|
|
global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'"
|
|
;;
|
|
irix*)
|
|
symcode='[BCDEGRST]'
|
|
;;
|
|
solaris*)
|
|
symcode='[BDT]'
|
|
;;
|
|
sysv4)
|
|
symcode='[DFNSTU]'
|
|
;;
|
|
esac
|
|
|
|
# If we're using GNU nm, then use its standard symbol codes.
|
|
if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
|
|
symcode='[ABCDGISTW]'
|
|
fi
|
|
|
|
# Try without a prefix undercore, then with it.
|
|
for ac_symprfx in "" "_"; do
|
|
|
|
# Write the raw and C identifiers.
|
|
global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode\)[ ][ ]*\($ac_symprfx\)$sympat$/$symxfrm/p'"
|
|
|
|
# Check to see that the pipe works correctly.
|
|
pipe_works=no
|
|
$rm conftest*
|
|
cat > conftest.c <<EOF
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
char nm_test_var;
|
|
void nm_test_func(){}
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
main(){nm_test_var='a';nm_test_func();return(0);}
|
|
EOF
|
|
|
|
echo "$progname:@LINENO@: checking if global_symbol_pipe works" >&5
|
|
if { (eval echo $progname:@LINENO@: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then
|
|
# Now try to grab the symbols.
|
|
nlist=conftest.nm
|
|
if { echo "$progname:@LINENO@: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
|
|
|
|
# Try sorting and uniquifying the output.
|
|
if sort "$nlist" | uniq > "$nlist"T; then
|
|
mv -f "$nlist"T "$nlist"
|
|
else
|
|
rm -f "$nlist"T
|
|
fi
|
|
|
|
# Make sure that we snagged all the symbols we need.
|
|
if egrep ' nm_test_var$' "$nlist" >/dev/null; then
|
|
if egrep ' nm_test_func$' "$nlist" >/dev/null; then
|
|
cat <<EOF > conftest.c
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
EOF
|
|
# Now generate the symbol file.
|
|
eval "$global_symbol_to_cdecl"' < "$nlist" >> conftest.c'
|
|
|
|
cat <<EOF >> conftest.c
|
|
#if defined (__STDC__) && __STDC__
|
|
# define lt_ptr_t void *
|
|
#else
|
|
# define lt_ptr_t char *
|
|
# define const
|
|
#endif
|
|
|
|
/* The mapping between symbol names and symbols. */
|
|
const struct {
|
|
const char *name;
|
|
lt_ptr_t address;
|
|
}
|
|
lt_preloaded_symbols[] =
|
|
{
|
|
EOF
|
|
sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$nlist" >> conftest.c
|
|
cat <<\EOF >> conftest.c
|
|
{0, (lt_ptr_t) 0}
|
|
};
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
EOF
|
|
# Now try linking the two files.
|
|
mv conftest.$objext conftstm.$objext
|
|
save_LIBS="$LIBS"
|
|
save_CFLAGS="$CFLAGS"
|
|
LIBS="conftstm.$objext"
|
|
CFLAGS="$CFLAGS$no_builtin_flag"
|
|
if { (eval echo $progname:@LINENO@: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
|
|
pipe_works=yes
|
|
else
|
|
echo "$progname: failed program was:" >&5
|
|
cat conftest.c >&5
|
|
fi
|
|
LIBS="$save_LIBS"
|
|
else
|
|
echo "cannot find nm_test_func in $nlist" >&5
|
|
fi
|
|
else
|
|
echo "cannot find nm_test_var in $nlist" >&5
|
|
fi
|
|
else
|
|
echo "cannot run $global_symbol_pipe" >&5
|
|
fi
|
|
else
|
|
echo "$progname: failed program was:" >&5
|
|
cat conftest.c >&5
|
|
fi
|
|
$rm conftest* conftst*
|
|
|
|
# Do not use the global_symbol_pipe unless it works.
|
|
if test "$pipe_works" = yes; then
|
|
break
|
|
else
|
|
global_symbol_pipe=
|
|
fi
|
|
done
|
|
if test "$pipe_works" = yes; then
|
|
echo "${ac_t}ok" 1>&6
|
|
else
|
|
echo "${ac_t}failed" 1>&6
|
|
fi
|
|
|
|
if test -z "$global_symbol_pipe"; then
|
|
global_symbol_to_cdecl=
|
|
fi
|
|
|
|
# Check hardcoding attributes.
|
|
echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6
|
|
hardcode_action=
|
|
if test -n "$hardcode_libdir_flag_spec" || \
|
|
test -n "$runpath_var"; then
|
|
|
|
# We can hardcode non-existant directories.
|
|
if test "$hardcode_direct" != no &&
|
|
# If the only mechanism to avoid hardcoding is shlibpath_var, we
|
|
# have to relink, otherwise we might link with an installed library
|
|
# when we should be linking with a yet-to-be-installed one
|
|
## test "$hardcode_shlibpath_var" != no &&
|
|
test "$hardcode_minus_L" != no; then
|
|
# Linking always hardcodes the temporary library directory.
|
|
hardcode_action=relink
|
|
else
|
|
# We can link without hardcoding, and we can hardcode nonexisting dirs.
|
|
hardcode_action=immediate
|
|
fi
|
|
else
|
|
# We cannot hardcode anything, or else we can only hardcode existing
|
|
# directories.
|
|
hardcode_action=unsupported
|
|
fi
|
|
echo "$ac_t$hardcode_action" 1>&6
|
|
|
|
|
|
reload_flag=
|
|
reload_cmds='$LD$reload_flag -o $output$reload_objs'
|
|
echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6
|
|
# PORTME Some linkers may need a different reload flag.
|
|
reload_flag='-r'
|
|
echo "$ac_t$reload_flag" 1>&6
|
|
test -n "$reload_flag" && reload_flag=" $reload_flag"
|
|
|
|
# PORTME Fill in your ld.so characteristics
|
|
library_names_spec=
|
|
libname_spec='lib$name'
|
|
soname_spec=
|
|
postinstall_cmds=
|
|
postuninstall_cmds=
|
|
finish_cmds=
|
|
finish_eval=
|
|
shlibpath_var=
|
|
shlibpath_overrides_runpath=unknown
|
|
version_type=none
|
|
dynamic_linker="$host_os ld.so"
|
|
sys_lib_dlsearch_path_spec="/lib /usr/lib"
|
|
sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
|
|
file_magic_cmd=
|
|
file_magic_test_file=
|
|
deplibs_check_method='unknown'
|
|
# Need to set the preceding variable on all platforms that support
|
|
# interlibrary dependencies.
|
|
# 'none' -- dependencies not supported.
|
|
# `unknown' -- same as none, but documents that we really don't know.
|
|
# 'pass_all' -- all dependencies passed with no checks.
|
|
# 'test_compile' -- check by making test program.
|
|
# 'file_magic [regex]' -- check by looking for files in library path
|
|
# which responds to the $file_magic_cmd with a given egrep regex.
|
|
# If you have `file' or equivalent on your system and you're not sure
|
|
# whether `pass_all' will *always* work, you probably want this one.
|
|
echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6
|
|
case "$host_os" in
|
|
aix3*)
|
|
version_type=linux
|
|
library_names_spec='${libname}${release}.so$versuffix $libname.a'
|
|
shlibpath_var=LIBPATH
|
|
|
|
# AIX has no versioning support, so we append a major version to the name.
|
|
soname_spec='${libname}${release}.so$major'
|
|
;;
|
|
|
|
aix4*)
|
|
version_type=linux
|
|
# AIX has no versioning support, so currently we can not hardcode correct
|
|
# soname into executable. Probably we can add versioning support to
|
|
# collect2, so additional links can be useful in future.
|
|
# We preserve .a as extension for shared libraries though AIX4.2
|
|
# and later linker supports .so
|
|
library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.a'
|
|
shlibpath_var=LIBPATH
|
|
deplibs_check_method=pass_all
|
|
;;
|
|
|
|
amigaos*)
|
|
library_names_spec='$libname.ixlibrary $libname.a'
|
|
# Create ${libname}_ixlibrary.a entries in /sys/libs.
|
|
finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
|
|
;;
|
|
|
|
beos*)
|
|
library_names_spec='${libname}.so'
|
|
dynamic_linker="$host_os ld.so"
|
|
shlibpath_var=LIBRARY_PATH
|
|
deplibs_check_method=pass_all
|
|
lt_cv_dlopen="load_add_on"
|
|
lt_cv_dlopen_libs=
|
|
lt_cv_dlopen_self=yes
|
|
;;
|
|
|
|
bsdi4*)
|
|
version_type=linux
|
|
library_names_spec='${libname}.so$major ${libname}.so'
|
|
soname_spec='${libname}.so'
|
|
finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
deplibs_check_method='file_magic ELF 32-bit LSB shared object'
|
|
file_magic_cmd=/usr/bin/file
|
|
file_magic_test_file=/shlib/libc.so
|
|
sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
|
|
sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
|
|
# the default ld.so.conf also contains /usr/contrib/lib and
|
|
# /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
|
|
# libtool to hard-code these into programs
|
|
;;
|
|
|
|
cygwin* | mingw*)
|
|
version_type=windows
|
|
need_version=no
|
|
need_lib_prefix=no
|
|
if test "$with_gcc" = yes; then
|
|
library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
|
|
else
|
|
library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib'
|
|
fi
|
|
dynamic_linker='Win32 ld.exe'
|
|
deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
|
|
file_magic_cmd='${OBJDUMP} -f'
|
|
# FIXME: first we should search . and the directory the executable is in
|
|
shlibpath_var=PATH
|
|
lt_cv_dlopen="LoadLibrary"
|
|
lt_cv_dlopen_libs=
|
|
;;
|
|
|
|
freebsd1*)
|
|
dynamic_linker=no
|
|
;;
|
|
|
|
freebsd*)
|
|
objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
|
|
version_type=freebsd-$objformat
|
|
case "$version_type" in
|
|
freebsd-elf*)
|
|
deplibs_check_method=pass_all
|
|
library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
|
|
need_version=no
|
|
need_lib_prefix=no
|
|
;;
|
|
freebsd-*)
|
|
deplibs_check_method=unknown
|
|
library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
|
|
need_version=yes
|
|
;;
|
|
esac
|
|
finish_cmds='PATH="\$PATH:/sbin" OBJFORMAT="'"$objformat"'" ldconfig -m $libdir'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
;;
|
|
|
|
gnu*)
|
|
version_type=linux
|
|
need_lib_prefix=no
|
|
need_version=no
|
|
library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so'
|
|
soname_spec='${libname}${release}.so$major'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
deplibs_check_method=pass_all
|
|
;;
|
|
|
|
hpux9* | hpux10* | hpux11*)
|
|
# Give a soname corresponding to the major version so that dld.sl refuses to
|
|
# link against other versions.
|
|
dynamic_linker="$host_os dld.sl"
|
|
version_type=sunos
|
|
need_lib_prefix=no
|
|
need_version=no
|
|
shlibpath_var=SHLIB_PATH
|
|
shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
|
|
library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
|
|
soname_spec='${libname}${release}.sl$major'
|
|
# HP-UX runs *really* slowly unless shared libraries are mode 555.
|
|
postinstall_cmds='chmod 555 $lib'
|
|
;;
|
|
|
|
irix5* | irix6*)
|
|
version_type=irix
|
|
need_lib_prefix=no
|
|
need_version=no
|
|
soname_spec='${libname}${release}.so.$major'
|
|
library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major ${libname}${release}.so $libname.so'
|
|
case "$host_os" in
|
|
irix5*)
|
|
libsuff= shlibsuff=
|
|
# this will be overridden with pass_all, but let us keep it just in case
|
|
deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
|
|
;;
|
|
*)
|
|
case "$LD" in # libtool.m4 will add one of these switches to LD
|
|
*-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
|
|
*-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
|
|
*-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
|
|
*) libsuff= shlibsuff= libmagic=never-match;;
|
|
esac
|
|
# this will be overridden with pass_all, but let us keep it just in case
|
|
deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
|
|
;;
|
|
esac
|
|
shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
|
|
shlibpath_overrides_runpath=no
|
|
sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
|
|
sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
|
|
file_magic_cmd=/usr/bin/file
|
|
file_magic_test_file=`echo /lib${libsuff}/libc.so*`
|
|
deplibs_check_method='pass_all'
|
|
;;
|
|
|
|
# No shared lib support for Linux oldld, aout, or coff.
|
|
linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
|
|
dynamic_linker=no
|
|
;;
|
|
|
|
# This must be Linux ELF.
|
|
linux-gnu*)
|
|
version_type=linux
|
|
need_lib_prefix=no
|
|
need_version=no
|
|
library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
|
|
soname_spec='${libname}${release}.so$major'
|
|
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
shlibpath_overrides_runpath=no
|
|
deplibs_check_method=pass_all
|
|
|
|
if test -f /lib/ld.so.1; then
|
|
dynamic_linker='GNU ld.so'
|
|
else
|
|
# Only the GNU ld.so supports shared libraries on MkLinux.
|
|
case "$host_cpu" in
|
|
powerpc*) dynamic_linker=no ;;
|
|
*) dynamic_linker='Linux ld.so' ;;
|
|
esac
|
|
fi
|
|
;;
|
|
|
|
netbsd*)
|
|
version_type=sunos
|
|
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
|
|
library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
|
|
finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
|
|
dynamic_linker='NetBSD (a.out) ld.so'
|
|
else
|
|
library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so'
|
|
soname_spec='${libname}${release}.so$major'
|
|
dynamic_linker='NetBSD ld.elf_so'
|
|
fi
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
;;
|
|
|
|
openbsd*)
|
|
version_type=sunos
|
|
if test "$with_gnu_ld" = yes; then
|
|
need_lib_prefix=no
|
|
need_version=no
|
|
fi
|
|
library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
|
|
finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
;;
|
|
|
|
os2*)
|
|
libname_spec='$name'
|
|
need_lib_prefix=no
|
|
library_names_spec='$libname.dll $libname.a'
|
|
dynamic_linker='OS/2 ld.exe'
|
|
shlibpath_var=LIBPATH
|
|
;;
|
|
|
|
osf3* | osf4*)
|
|
version_type=osf
|
|
need_version=no
|
|
soname_spec='${libname}${release}.so'
|
|
library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
# this will be overridden with pass_all, but let us keep it just in case
|
|
deplibs_check_method='file_magic COFF format alpha shared library'
|
|
file_magic_cmd=/usr/bin/file
|
|
file_magic_test_file=/shlib/libc.so
|
|
deplibs_check_method='pass_all'
|
|
sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
|
|
sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
|
|
;;
|
|
|
|
sco3.2v5*)
|
|
version_type=osf
|
|
soname_spec='${libname}${release}.so$major'
|
|
library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
;;
|
|
|
|
solaris*)
|
|
version_type=linux
|
|
need_lib_prefix=no
|
|
need_version=no
|
|
library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
|
|
soname_spec='${libname}${release}.so$major'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
shlibpath_overrides_runpath=yes
|
|
# ldd complains unless libraries are executable
|
|
postinstall_cmds='chmod +x $lib'
|
|
deplibs_check_method=pass_all
|
|
file_magic_cmd=/usr/bin/file
|
|
file_magic_test_file=/lib/libc.so
|
|
;;
|
|
|
|
sunos4*)
|
|
version_type=sunos
|
|
library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
|
|
finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
shlibpath_overrides_runpath=yes
|
|
if test "$with_gnu_ld" = yes; then
|
|
need_lib_prefix=no
|
|
fi
|
|
need_version=yes
|
|
;;
|
|
|
|
sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
|
|
version_type=linux
|
|
library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
|
|
soname_spec='${libname}${release}.so$major'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
case "$host_vendor" in
|
|
ncr)
|
|
deplibs_check_method='pass_all'
|
|
;;
|
|
motorola)
|
|
need_lib_prefix=no
|
|
need_version=no
|
|
shlibpath_overrides_runpath=no
|
|
sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
|
|
deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
|
|
file_magic_cmd=/usr/bin/file
|
|
file_magic_test_file=`echo /usr/lib/libc.so*`
|
|
;;
|
|
esac
|
|
;;
|
|
|
|
uts4*)
|
|
version_type=linux
|
|
library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
|
|
soname_spec='${libname}${release}.so$major'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
;;
|
|
|
|
dgux*)
|
|
version_type=linux
|
|
need_lib_prefix=no
|
|
need_version=no
|
|
library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
|
|
soname_spec='${libname}${release}.so$major'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
;;
|
|
|
|
sysv4*MP*)
|
|
if test -d /usr/nec ;then
|
|
version_type=linux
|
|
library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
|
|
soname_spec='$libname.so.$major'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
fi
|
|
;;
|
|
|
|
*)
|
|
dynamic_linker=no
|
|
;;
|
|
esac
|
|
echo "$ac_t$dynamic_linker" 1>&6
|
|
test "$dynamic_linker" = no && can_build_shared=no
|
|
|
|
# Report the final consequences.
|
|
echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6
|
|
|
|
# Only try to build win32 dlls if AC_LIBTOOL_WIN32_DLL was used in
|
|
# configure.in, otherwise build static only libraries.
|
|
case "$host_os" in
|
|
cygwin* | mingw* | os2*)
|
|
if test x$can_build_shared = xyes; then
|
|
test x$enable_win32_dll = xno && can_build_shared=no
|
|
echo "checking if package supports dlls... $can_build_shared" 1>&6
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
if test -n "$file_magic_test_file" && test -n "$file_magic_cmd"; then
|
|
case "$deplibs_check_method" in
|
|
"file_magic "*)
|
|
file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
|
|
if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
|
|
egrep "$file_magic_regex" > /dev/null; then
|
|
:
|
|
else
|
|
cat <<EOF 1>&2
|
|
|
|
*** Warning: the command libtool uses to detect shared libraries,
|
|
*** $file_magic_cmd, produces output that libtool cannot recognize.
|
|
*** The result is that libtool may fail to recognize shared libraries
|
|
*** as such. This will affect the creation of libtool libraries that
|
|
*** depend on shared libraries, but programs linked with such libtool
|
|
*** libraries will work regardless of this problem. Nevertheless, you
|
|
*** may want to report the problem to your system manager and/or to
|
|
*** bug-libtool@gnu.org
|
|
|
|
EOF
|
|
fi ;;
|
|
esac
|
|
fi
|
|
|
|
echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6
|
|
test "$can_build_shared" = "no" && enable_shared=no
|
|
|
|
# On AIX, shared libraries and static libraries use the same namespace, and
|
|
# are all built from PIC.
|
|
case "$host_os" in
|
|
aix3*)
|
|
test "$enable_shared" = yes && enable_static=no
|
|
if test -n "$RANLIB"; then
|
|
archive_cmds="$archive_cmds~\$RANLIB \$lib"
|
|
postinstall_cmds='$RANLIB $lib'
|
|
fi
|
|
;;
|
|
|
|
aix4*)
|
|
test "$enable_shared" = yes && enable_static=no
|
|
;;
|
|
esac
|
|
|
|
echo "$ac_t$enable_shared" 1>&6
|
|
|
|
# Make sure either enable_shared or enable_static is yes.
|
|
test "$enable_shared" = yes || enable_static=yes
|
|
|
|
echo "checking whether to build static libraries... $enable_static" 1>&6
|
|
|
|
if test "$hardcode_action" = relink; then
|
|
# Fast installation is not supported
|
|
enable_fast_install=no
|
|
elif test "$shlibpath_overrides_runpath" = yes ||
|
|
test "$enable_shared" = no; then
|
|
# Fast installation is not necessary
|
|
enable_fast_install=needless
|
|
fi
|
|
|
|
echo $ac_n "checking for objdir... $ac_c" 1>&6
|
|
rm -f .libs 2>/dev/null
|
|
mkdir .libs 2>/dev/null
|
|
if test -d .libs; then
|
|
objdir=.libs
|
|
else
|
|
# MS-DOS does not allow filenames that begin with a dot.
|
|
objdir=_libs
|
|
fi
|
|
rmdir .libs 2>/dev/null
|
|
echo "$ac_t$objdir" 1>&6
|
|
|
|
if test "x$enable_dlopen" != xyes; then
|
|
enable_dlopen=unknown
|
|
enable_dlopen_self=unknown
|
|
enable_dlopen_self_static=unknown
|
|
else
|
|
if eval "test \"`echo '$''{'lt_cv_dlopen'+set}'`\" != set"; then
|
|
lt_cv_dlopen=no lt_cv_dlopen_libs=
|
|
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
|
|
echo "$progname:@LINENO@: checking for dlopen in -ldl" >&5
|
|
ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
|
|
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
|
echo $ac_n "(cached) $ac_c" 1>&6
|
|
else
|
|
ac_save_LIBS="$LIBS"
|
|
LIBS="-ldl $LIBS"
|
|
cat > conftest.$ac_ext <<EOF
|
|
#line @LINENO@ "ltconfig"
|
|
/* Override any gcc2 internal prototype to avoid an error. */
|
|
/* We use char because int might match the return type of a gcc2
|
|
builtin and then its argument prototype would still apply. */
|
|
char dlopen();
|
|
|
|
int main() {
|
|
dlopen()
|
|
; return 0; }
|
|
EOF
|
|
if { (eval echo $progname:@LINENO@: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
|
rm -rf conftest*
|
|
eval "ac_cv_lib_$ac_lib_var=yes"
|
|
else
|
|
echo "$progname: failed program was:" >&5
|
|
cat conftest.$ac_ext >&5
|
|
rm -rf conftest*
|
|
eval "ac_cv_lib_$ac_lib_var=no"
|
|
fi
|
|
rm -f conftest*
|
|
LIBS="$ac_save_LIBS"
|
|
|
|
fi
|
|
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
|
|
echo "$ac_t""yes" 1>&6
|
|
lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
|
|
else
|
|
echo "$ac_t""no" 1>&6
|
|
echo $ac_n "checking for dlopen""... $ac_c" 1>&6
|
|
echo "$progname:@LINENO@: checking for dlopen" >&5
|
|
if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
|
|
echo $ac_n "(cached) $ac_c" 1>&6
|
|
else
|
|
cat > conftest.$ac_ext <<EOF
|
|
#line @LINENO@ "ltconfig"
|
|
/* System header to define __stub macros and hopefully few prototypes,
|
|
which can conflict with char dlopen(); below. */
|
|
#include <assert.h>
|
|
/* Override any gcc2 internal prototype to avoid an error. */
|
|
/* We use char because int might match the return type of a gcc2
|
|
builtin and then its argument prototype would still apply. */
|
|
char dlopen();
|
|
|
|
int main() {
|
|
|
|
/* The GNU C library defines this for functions which it implements
|
|
to always fail with ENOSYS. Some functions are actually named
|
|
something starting with __ and the normal name is an alias. */
|
|
#if defined (__stub_dlopen) || defined (__stub___dlopen)
|
|
choke me
|
|
#else
|
|
dlopen();
|
|
#endif
|
|
|
|
; return 0; }
|
|
EOF
|
|
if { (eval echo $progname:@LINENO@: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
|
rm -rf conftest*
|
|
eval "ac_cv_func_dlopen=yes"
|
|
else
|
|
echo "$progname: failed program was:" >&5
|
|
cat conftest.$ac_ext >&5
|
|
rm -rf conftest*
|
|
eval "ac_cv_func_dlopen=no"
|
|
fi
|
|
rm -f conftest*
|
|
fi
|
|
if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
|
|
echo "$ac_t""yes" 1>&6
|
|
lt_cv_dlopen="dlopen"
|
|
else
|
|
echo "$ac_t""no" 1>&6
|
|
echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6
|
|
echo "$progname:@LINENO@: checking for dld_link in -ldld" >&5
|
|
ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'`
|
|
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
|
echo $ac_n "(cached) $ac_c" 1>&6
|
|
else
|
|
ac_save_LIBS="$LIBS"
|
|
LIBS="-ldld $LIBS"
|
|
cat > conftest.$ac_ext <<EOF
|
|
#line @LINENO@ "ltconfig"
|
|
/* Override any gcc2 internal prototype to avoid an error. */
|
|
/* We use char because int might match the return type of a gcc2
|
|
builtin and then its argument prototype would still apply. */
|
|
char dld_link();
|
|
|
|
int main() {
|
|
dld_link()
|
|
; return 0; }
|
|
EOF
|
|
if { (eval echo $progname:@LINENO@: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
|
rm -rf conftest*
|
|
eval "ac_cv_lib_$ac_lib_var=yes"
|
|
else
|
|
echo "$progname: failed program was:" >&5
|
|
cat conftest.$ac_ext >&5
|
|
rm -rf conftest*
|
|
eval "ac_cv_lib_$ac_lib_var=no"
|
|
fi
|
|
rm -f conftest*
|
|
LIBS="$ac_save_LIBS"
|
|
|
|
fi
|
|
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
|
|
echo "$ac_t""yes" 1>&6
|
|
lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
|
|
else
|
|
echo "$ac_t""no" 1>&6
|
|
echo $ac_n "checking for shl_load""... $ac_c" 1>&6
|
|
echo "$progname:@LINENO@: checking for shl_load" >&5
|
|
if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then
|
|
echo $ac_n "(cached) $ac_c" 1>&6
|
|
else
|
|
cat > conftest.$ac_ext <<EOF
|
|
#line @LINENO@ "ltconfig"
|
|
/* System header to define __stub macros and hopefully few prototypes,
|
|
which can conflict with char shl_load(); below. */
|
|
#include <assert.h>
|
|
/* Override any gcc2 internal prototype to avoid an error. */
|
|
/* We use char because int might match the return type of a gcc2
|
|
builtin and then its argument prototype would still apply. */
|
|
char shl_load();
|
|
|
|
int main() {
|
|
|
|
/* The GNU C library defines this for functions which it implements
|
|
to always fail with ENOSYS. Some functions are actually named
|
|
something starting with __ and the normal name is an alias. */
|
|
#if defined (__stub_shl_load) || defined (__stub___shl_load)
|
|
choke me
|
|
#else
|
|
shl_load();
|
|
#endif
|
|
|
|
; return 0; }
|
|
EOF
|
|
if { (eval echo $progname:@LINENO@: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
|
rm -rf conftest*
|
|
eval "ac_cv_func_shl_load=yes"
|
|
else
|
|
echo "$progname: failed program was:" >&5
|
|
cat conftest.$ac_ext >&5
|
|
rm -rf conftest*
|
|
eval "ac_cv_func_shl_load=no"
|
|
fi
|
|
rm -f conftest*
|
|
fi
|
|
|
|
if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then
|
|
echo "$ac_t""yes" 1>&6
|
|
lt_cv_dlopen="shl_load"
|
|
else
|
|
echo "$ac_t""no" 1>&6
|
|
echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
|
|
echo "$progname:@LINENO@: checking for shl_load in -ldld" >&5
|
|
ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
|
|
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
|
echo $ac_n "(cached) $ac_c" 1>&6
|
|
else
|
|
ac_save_LIBS="$LIBS"
|
|
LIBS="-ldld $LIBS"
|
|
cat > conftest.$ac_ext <<EOF
|
|
#line @LINENO@ "ltconfig"
|
|
#include "confdefs.h"
|
|
/* Override any gcc2 internal prototype to avoid an error. */
|
|
/* We use char because int might match the return type of a gcc2
|
|
builtin and then its argument prototype would still apply. */
|
|
char shl_load();
|
|
|
|
int main() {
|
|
shl_load()
|
|
; return 0; }
|
|
EOF
|
|
if { (eval echo $progname:@LINENO@: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
|
rm -rf conftest*
|
|
eval "ac_cv_lib_$ac_lib_var=yes"
|
|
else
|
|
echo "$progname: failed program was:" >&5
|
|
cat conftest.$ac_ext >&5
|
|
rm -rf conftest*
|
|
eval "ac_cv_lib_$ac_lib_var=no"
|
|
fi
|
|
rm -f conftest*
|
|
LIBS="$ac_save_LIBS"
|
|
|
|
fi
|
|
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
|
|
echo "$ac_t""yes" 1>&6
|
|
lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
|
|
else
|
|
echo "$ac_t""no" 1>&6
|
|
fi
|
|
|
|
|
|
fi
|
|
|
|
|
|
fi
|
|
|
|
|
|
fi
|
|
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
if test "x$lt_cv_dlopen" != xno; then
|
|
enable_dlopen=yes
|
|
fi
|
|
|
|
case "$lt_cv_dlopen" in
|
|
dlopen)
|
|
for ac_hdr in dlfcn.h; do
|
|
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
|
|
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
|
|
echo "$progname:@LINENO@: checking for $ac_hdr" >&5
|
|
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
|
echo $ac_n "(cached) $ac_c" 1>&6
|
|
else
|
|
cat > conftest.$ac_ext <<EOF
|
|
#line @LINENO@ "ltconfig"
|
|
#include <$ac_hdr>
|
|
int fnord = 0;
|
|
EOF
|
|
ac_try="$ac_compile conftest.$ac_ext >/dev/null 2>conftest.out"
|
|
{ (eval echo $progname:@LINENO@: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
|
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
|
if test -z "$ac_err"; then
|
|
rm -rf conftest*
|
|
eval "ac_cv_header_$ac_safe=yes"
|
|
else
|
|
echo "$ac_err" >&5
|
|
echo "$progname: failed program was:" >&5
|
|
cat conftest.$ac_ext >&5
|
|
rm -rf conftest*
|
|
eval "ac_cv_header_$ac_safe=no"
|
|
fi
|
|
rm -f conftest*
|
|
fi
|
|
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
|
|
echo "$ac_t""yes" 1>&6
|
|
else
|
|
echo "$ac_t""no" 1>&6
|
|
fi
|
|
done
|
|
|
|
if test "x$ac_cv_header_dlfcn_h" = xyes; then
|
|
CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
|
|
fi
|
|
eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
|
|
LIBS="$lt_cv_dlopen_libs $LIBS"
|
|
|
|
echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6
|
|
echo "$progname:@LINENO@: checking whether a program can dlopen itself" >&5
|
|
if test "${lt_cv_dlopen_self+set}" = set; then
|
|
echo $ac_n "(cached) $ac_c" 1>&6
|
|
else
|
|
if test "$cross_compiling" = yes; then
|
|
lt_cv_dlopen_self=cross
|
|
else
|
|
cat > conftest.c <<EOF
|
|
#line @LINENO@ "ltconfig"
|
|
|
|
#if HAVE_DLFCN_H
|
|
#include <dlfcn.h>
|
|
#endif
|
|
|
|
#include <stdio.h>
|
|
|
|
#ifdef RTLD_GLOBAL
|
|
# define LTDL_GLOBAL RTLD_GLOBAL
|
|
#else
|
|
# ifdef DL_GLOBAL
|
|
# define LTDL_GLOBAL DL_GLOBAL
|
|
# else
|
|
# define LTDL_GLOBAL 0
|
|
# endif
|
|
#endif
|
|
|
|
/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
|
|
find out it does not work in some platform. */
|
|
#ifndef LTDL_LAZY_OR_NOW
|
|
# ifdef RTLD_LAZY
|
|
# define LTDL_LAZY_OR_NOW RTLD_LAZY
|
|
# else
|
|
# ifdef DL_LAZY
|
|
# define LTDL_LAZY_OR_NOW DL_LAZY
|
|
# else
|
|
# ifdef RTLD_NOW
|
|
# define LTDL_LAZY_OR_NOW RTLD_NOW
|
|
# else
|
|
# ifdef DL_NOW
|
|
# define LTDL_LAZY_OR_NOW DL_NOW
|
|
# else
|
|
# define LTDL_LAZY_OR_NOW 0
|
|
# endif
|
|
# endif
|
|
# endif
|
|
# endif
|
|
#endif
|
|
|
|
fnord() { int i=42;}
|
|
main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
|
|
if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
|
|
if(ptr1 || ptr2) exit(0); } exit(1); }
|
|
|
|
EOF
|
|
if { (eval echo $progname:@LINENO@: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
|
|
then
|
|
lt_cv_dlopen_self=yes
|
|
else
|
|
echo "$progname: failed program was:" >&5
|
|
cat conftest.$ac_ext >&5
|
|
rm -fr conftest*
|
|
lt_cv_dlopen_self=no
|
|
fi
|
|
rm -fr conftest*
|
|
fi
|
|
|
|
fi
|
|
|
|
echo "$ac_t""$lt_cv_dlopen_self" 1>&6
|
|
|
|
if test "$lt_cv_dlopen_self" = yes; then
|
|
LDFLAGS="$LDFLAGS $link_static_flag"
|
|
echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6
|
|
echo "$progname:@LINENO@: checking whether a statically linked program can dlopen itself" >&5
|
|
if test "${lt_cv_dlopen_self_static+set}" = set; then
|
|
echo $ac_n "(cached) $ac_c" 1>&6
|
|
else
|
|
if test "$cross_compiling" = yes; then
|
|
lt_cv_dlopen_self_static=cross
|
|
else
|
|
cat > conftest.c <<EOF
|
|
#line @LINENO@ "ltconfig"
|
|
|
|
#if HAVE_DLFCN_H
|
|
#include <dlfcn.h>
|
|
#endif
|
|
|
|
#include <stdio.h>
|
|
|
|
#ifdef RTLD_GLOBAL
|
|
# define LTDL_GLOBAL RTLD_GLOBAL
|
|
#else
|
|
# ifdef DL_GLOBAL
|
|
# define LTDL_GLOBAL DL_GLOBAL
|
|
# else
|
|
# define LTDL_GLOBAL 0
|
|
# endif
|
|
#endif
|
|
|
|
/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
|
|
find out it does not work in some platform. */
|
|
#ifndef LTDL_LAZY_OR_NOW
|
|
# ifdef RTLD_LAZY
|
|
# define LTDL_LAZY_OR_NOW RTLD_LAZY
|
|
# else
|
|
# ifdef DL_LAZY
|
|
# define LTDL_LAZY_OR_NOW DL_LAZY
|
|
# else
|
|
# ifdef RTLD_NOW
|
|
# define LTDL_LAZY_OR_NOW RTLD_NOW
|
|
# else
|
|
# ifdef DL_NOW
|
|
# define LTDL_LAZY_OR_NOW DL_NOW
|
|
# else
|
|
# define LTDL_LAZY_OR_NOW 0
|
|
# endif
|
|
# endif
|
|
# endif
|
|
# endif
|
|
#endif
|
|
|
|
fnord() { int i=42;}
|
|
main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
|
|
if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
|
|
if(ptr1 || ptr2) exit(0); } exit(1); }
|
|
|
|
EOF
|
|
if { (eval echo $progname:@LINENO@: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
|
|
then
|
|
lt_cv_dlopen_self_static=yes
|
|
else
|
|
echo "$progname: failed program was:" >&5
|
|
cat conftest.$ac_ext >&5
|
|
rm -fr conftest*
|
|
lt_cv_dlopen_self_static=no
|
|
fi
|
|
rm -fr conftest*
|
|
fi
|
|
|
|
fi
|
|
|
|
echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
case "$lt_cv_dlopen_self" in
|
|
yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
|
|
*) enable_dlopen_self=unknown ;;
|
|
esac
|
|
|
|
case "$lt_cv_dlopen_self_static" in
|
|
yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
|
|
*) enable_dlopen_self_static=unknown ;;
|
|
esac
|
|
fi
|
|
|
|
# Copy echo and quote the copy, instead of the original, because it is
|
|
# used later.
|
|
ltecho="$echo"
|
|
if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then
|
|
ltecho="$CONFIG_SHELL \$0 --fallback-echo"
|
|
fi
|
|
LTSHELL="$SHELL"
|
|
|
|
LTCONFIG_VERSION="$VERSION"
|
|
|
|
# Only quote variables if we're using ltmain.sh.
|
|
case "$ltmain" in
|
|
*.sh)
|
|
# Now quote all the things that may contain metacharacters.
|
|
for var in ltecho old_CC old_CFLAGS old_CPPFLAGS \
|
|
old_LD old_LDFLAGS old_LIBS \
|
|
old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS \
|
|
AR CC LD LN_S NM LTSHELL LTCONFIG_VERSION \
|
|
reload_flag reload_cmds wl \
|
|
pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
|
|
thread_safe_flag_spec whole_archive_flag_spec libname_spec \
|
|
library_names_spec soname_spec \
|
|
RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
|
|
old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \
|
|
postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \
|
|
file_magic_cmd export_symbols_cmds deplibs_check_method allow_undefined_flag no_undefined_flag \
|
|
finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
|
|
hardcode_libdir_flag_spec hardcode_libdir_separator \
|
|
sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
|
|
compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do
|
|
|
|
case "$var" in
|
|
reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
|
|
old_postinstall_cmds | old_postuninstall_cmds | \
|
|
export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
|
|
extract_expsyms_cmds | old_archive_from_expsyms_cmds | \
|
|
postinstall_cmds | postuninstall_cmds | \
|
|
finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
|
|
# Double-quote double-evaled strings.
|
|
eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
|
|
;;
|
|
*)
|
|
eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
|
|
;;
|
|
esac
|
|
done
|
|
|
|
case "$ltecho" in
|
|
*'\$0 --fallback-echo"')
|
|
ltecho=`$echo "X$ltecho" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
|
|
;;
|
|
esac
|
|
|
|
trap "$rm \"$ofile\"; exit 1" 1 2 15
|
|
echo "creating $ofile"
|
|
$rm "$ofile"
|
|
cat <<EOF > "$ofile"
|
|
#! $SHELL
|
|
|
|
# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
|
|
# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
|
|
# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh.
|
|
#
|
|
# Copyright (C) 1996-1999 Free Software Foundation, Inc.
|
|
# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
#
|
|
# As a special exception to the GNU General Public License, if you
|
|
# distribute this file as part of a program that contains a
|
|
# configuration script generated by Autoconf, you may include it under
|
|
# the same distribution terms that you use for the rest of that program.
|
|
|
|
# Sed that helps us avoid accidentally triggering echo(1) options like -n.
|
|
Xsed="sed -e s/^X//"
|
|
|
|
# The HP-UX ksh and POSIX shell print the target directory to stdout
|
|
# if CDPATH is set.
|
|
if test "\${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi
|
|
|
|
### BEGIN LIBTOOL CONFIG
|
|
EOF
|
|
cfgfile="$ofile"
|
|
;;
|
|
|
|
*)
|
|
# Double-quote the variables that need it (for aesthetics).
|
|
for var in old_CC old_CFLAGS old_CPPFLAGS \
|
|
old_LD old_LDFLAGS old_LIBS \
|
|
old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS; do
|
|
eval "$var=\\\"\$var\\\""
|
|
done
|
|
|
|
# Just create a config file.
|
|
cfgfile="$ofile.cfg"
|
|
trap "$rm \"$cfgfile\"; exit 1" 1 2 15
|
|
echo "creating $cfgfile"
|
|
$rm "$cfgfile"
|
|
cat <<EOF > "$cfgfile"
|
|
# `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file.
|
|
# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
|
|
EOF
|
|
;;
|
|
esac
|
|
|
|
cat <<EOF >> "$cfgfile"
|
|
# Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
|
|
#
|
|
# CC=$old_CC CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\
|
|
# LD=$old_LD LDFLAGS=$old_LDFLAGS LIBS=$old_LIBS \\
|
|
# NM=$old_NM RANLIB=$old_RANLIB LN_S=$old_LN_S \\
|
|
# DLLTOOL=$old_DLLTOOL OBJDUMP=$old_OBJDUMP AS=$old_AS \\
|
|
# $0$ltconfig_args
|
|
#
|
|
# Compiler and other test output produced by $progname, useful for
|
|
# debugging $progname, is in ./config.log if it exists.
|
|
|
|
# The version of $progname that generated this script.
|
|
LTCONFIG_VERSION=$LTCONFIG_VERSION
|
|
|
|
# Shell to use when invoking shell scripts.
|
|
SHELL=$LTSHELL
|
|
|
|
# Whether or not to build shared libraries.
|
|
build_libtool_libs=$enable_shared
|
|
|
|
# Whether or not to build static libraries.
|
|
build_old_libs=$enable_static
|
|
|
|
# Whether or not to optimize for fast installation.
|
|
fast_install=$enable_fast_install
|
|
|
|
# The host system.
|
|
host_alias=$host_alias
|
|
host=$host
|
|
|
|
# An echo program that does not interpret backslashes.
|
|
echo=$ltecho
|
|
|
|
# The archiver.
|
|
AR=$AR
|
|
|
|
# The default C compiler.
|
|
CC=$CC
|
|
|
|
# The linker used to build libraries.
|
|
LD=$LD
|
|
|
|
# Whether we need hard or soft links.
|
|
LN_S=$LN_S
|
|
|
|
# A BSD-compatible nm program.
|
|
NM=$NM
|
|
|
|
# Used on cygwin: DLL creation program.
|
|
DLLTOOL="$DLLTOOL"
|
|
|
|
# Used on cygwin: object dumper.
|
|
OBJDUMP="$OBJDUMP"
|
|
|
|
# Used on cygwin: assembler.
|
|
AS="$AS"
|
|
|
|
# The name of the directory that contains temporary libtool files.
|
|
objdir=$objdir
|
|
|
|
# How to create reloadable object files.
|
|
reload_flag=$reload_flag
|
|
reload_cmds=$reload_cmds
|
|
|
|
# How to pass a linker flag through the compiler.
|
|
wl=$wl
|
|
|
|
# Object file suffix (normally "o").
|
|
objext="$objext"
|
|
|
|
# Old archive suffix (normally "a").
|
|
libext="$libext"
|
|
|
|
# Executable file suffix (normally "").
|
|
exeext="$exeext"
|
|
|
|
# Additional compiler flags for building library objects.
|
|
pic_flag=$pic_flag
|
|
|
|
# Does compiler simultaneously support -c and -o options?
|
|
compiler_c_o=$compiler_c_o
|
|
|
|
# Can we write directly to a .lo ?
|
|
compiler_o_lo=$compiler_o_lo
|
|
|
|
# Must we lock files when doing compilation ?
|
|
need_locks=$need_locks
|
|
|
|
# Do we need the lib prefix for modules?
|
|
need_lib_prefix=$need_lib_prefix
|
|
|
|
# Do we need a version for libraries?
|
|
need_version=$need_version
|
|
|
|
# Whether dlopen is supported.
|
|
dlopen=$enable_dlopen
|
|
|
|
# Whether dlopen of programs is supported.
|
|
dlopen_self=$enable_dlopen_self
|
|
|
|
# Whether dlopen of statically linked programs is supported.
|
|
dlopen_self_static=$enable_dlopen_self_static
|
|
|
|
# Compiler flag to prevent dynamic linking.
|
|
link_static_flag=$link_static_flag
|
|
|
|
# Compiler flag to turn off builtin functions.
|
|
no_builtin_flag=$no_builtin_flag
|
|
|
|
# Compiler flag to allow reflexive dlopens.
|
|
export_dynamic_flag_spec=$export_dynamic_flag_spec
|
|
|
|
# Compiler flag to generate shared objects directly from archives.
|
|
whole_archive_flag_spec=$whole_archive_flag_spec
|
|
|
|
# Compiler flag to generate thread-safe objects.
|
|
thread_safe_flag_spec=$thread_safe_flag_spec
|
|
|
|
# Library versioning type.
|
|
version_type=$version_type
|
|
|
|
# Format of library name prefix.
|
|
libname_spec=$libname_spec
|
|
|
|
# List of archive names. First name is the real one, the rest are links.
|
|
# The last name is the one that the linker finds with -lNAME.
|
|
library_names_spec=$library_names_spec
|
|
|
|
# The coded name of the library, if different from the real name.
|
|
soname_spec=$soname_spec
|
|
|
|
# Commands used to build and install an old-style archive.
|
|
RANLIB=$RANLIB
|
|
old_archive_cmds=$old_archive_cmds
|
|
old_postinstall_cmds=$old_postinstall_cmds
|
|
old_postuninstall_cmds=$old_postuninstall_cmds
|
|
|
|
# Create an old-style archive from a shared archive.
|
|
old_archive_from_new_cmds=$old_archive_from_new_cmds
|
|
|
|
# Create a temporary old-style archive to link instead of a shared archive.
|
|
old_archive_from_expsyms_cmds=$old_archive_from_expsyms_cmds
|
|
|
|
# Commands used to build and install a shared archive.
|
|
archive_cmds=$archive_cmds
|
|
archive_expsym_cmds=$archive_expsym_cmds
|
|
postinstall_cmds=$postinstall_cmds
|
|
postuninstall_cmds=$postuninstall_cmds
|
|
|
|
# Method to check whether dependent libraries are shared objects.
|
|
deplibs_check_method=$deplibs_check_method
|
|
|
|
# Command to use when deplibs_check_method == file_magic.
|
|
file_magic_cmd=$file_magic_cmd
|
|
|
|
# Flag that allows shared libraries with undefined symbols to be built.
|
|
allow_undefined_flag=$allow_undefined_flag
|
|
|
|
# Flag that forces no undefined symbols.
|
|
no_undefined_flag=$no_undefined_flag
|
|
|
|
# Commands used to finish a libtool library installation in a directory.
|
|
finish_cmds=$finish_cmds
|
|
|
|
# Same as above, but a single script fragment to be evaled but not shown.
|
|
finish_eval=$finish_eval
|
|
|
|
# Take the output of nm and produce a listing of raw symbols and C names.
|
|
global_symbol_pipe=$global_symbol_pipe
|
|
|
|
# Transform the output of nm in a proper C declaration
|
|
global_symbol_to_cdecl=$global_symbol_to_cdecl
|
|
|
|
# This is the shared library runtime path variable.
|
|
runpath_var=$runpath_var
|
|
|
|
# This is the shared library path variable.
|
|
shlibpath_var=$shlibpath_var
|
|
|
|
# Is shlibpath searched before the hard-coded library search path?
|
|
shlibpath_overrides_runpath=$shlibpath_overrides_runpath
|
|
|
|
# How to hardcode a shared library path into an executable.
|
|
hardcode_action=$hardcode_action
|
|
|
|
# Flag to hardcode \$libdir into a binary during linking.
|
|
# This must work even if \$libdir does not exist.
|
|
hardcode_libdir_flag_spec=$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
|
|
|
|
# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
|
|
# the resulting binary.
|
|
hardcode_shlibpath_var=$hardcode_shlibpath_var
|
|
|
|
# Whether libtool must link a program against all its dependency libraries.
|
|
link_all_deplibs=$link_all_deplibs
|
|
|
|
# Compile-time system search path for libraries
|
|
sys_lib_search_path_spec=$sys_lib_search_path_spec
|
|
|
|
# Run-time system search path for libraries
|
|
sys_lib_dlsearch_path_spec=$sys_lib_dlsearch_path_spec
|
|
|
|
# Fix the shell variable \$srcfile for the compiler.
|
|
fix_srcfile_path="$fix_srcfile_path"
|
|
|
|
# Set to yes if exported symbols are required.
|
|
always_export_symbols=$always_export_symbols
|
|
|
|
# The commands to list exported symbols.
|
|
export_symbols_cmds=$export_symbols_cmds
|
|
|
|
# The commands to extract the exported symbol list from a shared archive.
|
|
extract_expsyms_cmds=$extract_expsyms_cmds
|
|
|
|
# Symbols that should not be listed in the preloaded symbols.
|
|
exclude_expsyms=$exclude_expsyms
|
|
|
|
# Symbols that must always be exported.
|
|
include_expsyms=$include_expsyms
|
|
|
|
EOF
|
|
|
|
case "$ltmain" in
|
|
*.sh)
|
|
echo '### END LIBTOOL CONFIG' >> "$ofile"
|
|
echo >> "$ofile"
|
|
case "$host_os" in
|
|
aix3*)
|
|
cat <<\EOF >> "$ofile"
|
|
|
|
# AIX sometimes has problems with the GCC collect2 program. For some
|
|
# reason, if we set the COLLECT_NAMES environment variable, the problems
|
|
# vanish in a puff of smoke.
|
|
if test "${COLLECT_NAMES+set}" != set; then
|
|
COLLECT_NAMES=
|
|
export COLLECT_NAMES
|
|
fi
|
|
EOF
|
|
;;
|
|
esac
|
|
|
|
# Append the ltmain.sh script.
|
|
cat "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1)
|
|
|
|
chmod +x "$ofile"
|
|
;;
|
|
|
|
*)
|
|
# Compile the libtool program.
|
|
echo "FIXME: would compile $ltmain"
|
|
;;
|
|
esac
|
|
|
|
test -n "$cache_file" || exit 0
|
|
|
|
# AC_CACHE_SAVE
|
|
trap '' 1 2 15
|
|
cat > confcache <<\EOF
|
|
# This file is a shell script that caches the results of configure
|
|
# tests run on this system so they can be shared between configure
|
|
# scripts and configure runs. It is not useful on other systems.
|
|
# If it contains results you don't want to keep, you may remove or edit it.
|
|
#
|
|
# By default, configure uses ./config.cache as the cache file,
|
|
# creating it if it does not exist already. You can give configure
|
|
# the --cache-file=FILE option to use a different cache file; that is
|
|
# what configure does when it calls configure scripts in
|
|
# subdirectories, so they share the cache.
|
|
# Giving --cache-file=/dev/null disables caching, for debugging configure.
|
|
# config.status only pays attention to the cache file if you give it the
|
|
# --recheck option to rerun configure.
|
|
#
|
|
EOF
|
|
# The following way of writing the cache mishandles newlines in values,
|
|
# but we know of no workaround that is simple, portable, and efficient.
|
|
# So, don't put newlines in cache variables' values.
|
|
# Ultrix sh set writes to stderr and can't be redirected directly,
|
|
# and sets the high bit in the cache file unless we assign to the vars.
|
|
(set) 2>&1 |
|
|
case `(ac_space=' '; set | grep ac_space) 2>&1` in
|
|
*ac_space=\ *)
|
|
# `set' does not quote correctly, so add quotes (double-quote substitution
|
|
# turns \\\\ into \\, and sed turns \\ into \).
|
|
sed -n \
|
|
-e "s/'/'\\\\''/g" \
|
|
-e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
|
|
;;
|
|
*)
|
|
# `set' quotes correctly as required by POSIX, so do not add quotes.
|
|
sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
|
|
;;
|
|
esac >> confcache
|
|
if cmp -s $cache_file confcache; then
|
|
:
|
|
else
|
|
if test -w $cache_file; then
|
|
echo "updating cache $cache_file"
|
|
cat confcache > $cache_file
|
|
else
|
|
echo "not updating unwritable cache $cache_file"
|
|
fi
|
|
fi
|
|
rm -f confcache
|
|
|
|
exit 0
|
|
|
|
# Local Variables:
|
|
# mode:shell-script
|
|
# sh-indentation:2
|
|
# End:
|