mirror of
git://git.savannah.gnu.org/libtool.git
synced 2024-11-21 01:40:57 +08:00
09a44649a3
available, fallback to not so safe mechanism, by setting need_locks to warn * ltmain.in (need_locks): when need_locks is set to warn, use the lockfile to try to fail in case of incorrect concurrent builds
1650 lines
47 KiB
Bash
Executable File
1650 lines
47 KiB
Bash
Executable File
#! /bin/sh
|
|
|
|
# ltconfig - Create a system-specific libtool.
|
|
# Copyright (C) 1996-1998 Free Software Foundation, Inc.
|
|
# 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`($echo '\t') 2>/dev/null`" = 'X\t'; then
|
|
# Yippee, $echo works!
|
|
:
|
|
else
|
|
# Restart under the correct shell.
|
|
exec "$SHELL" "$0" --no-reexec ${1+"$@"}
|
|
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 '\t') 2>/dev/null`" != 'X\t'; 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}:"
|
|
for dir in $PATH /usr/ucb; do
|
|
if test -f $dir/echo && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t'; 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'; then
|
|
# This shell has a builtin print -r that does the trick.
|
|
echo='print -r'
|
|
elif test -f /bin/ksh && test "X$CONFIG_SHELL" != X/bin/ksh; then
|
|
# If we have ksh, try running ltconfig again with it.
|
|
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'; then
|
|
# Oops. We lost completely, so just stick with echo.
|
|
echo=echo
|
|
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'
|
|
|
|
# The name of this program.
|
|
progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'`
|
|
|
|
# Constants:
|
|
PROGRAM=ltconfig
|
|
PACKAGE=@PACKAGE@
|
|
VERSION=@VERSION@
|
|
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.
|
|
enable_static=yes
|
|
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
|
|
|
|
old_AR="$AR"
|
|
old_CC="$CC"
|
|
old_CFLAGS="$CFLAGS"
|
|
old_CPPFLAGS="$CPPFLAGS"
|
|
old_LD="$LD"
|
|
old_LN_S="$LN_S"
|
|
old_NM="$NM"
|
|
old_RANLIB="$RANLIB"
|
|
|
|
# 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
|
|
--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
|
|
|
|
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 ;;
|
|
|
|
--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"; exit 0 ;;
|
|
|
|
--with-gcc) with_gcc=yes ;;
|
|
--with-gnu-ld) with_gnu_ld=yes ;;
|
|
|
|
--disable-lock) need_locks=no ;;
|
|
|
|
-*)
|
|
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 (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 "$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
|
|
|
|
# If RANLIB is not set, then run the test.
|
|
if test "${RANLIB+set}" != "set"; then
|
|
result=no
|
|
|
|
echo $ac_n "checking for ranlib... $ac_c" 1>&6
|
|
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
|
|
for dir in $PATH; do
|
|
test -z "$dir" && dir=.
|
|
if test -f $dir/ranlib; then
|
|
RANLIB="ranlib"
|
|
result="ranlib"
|
|
break
|
|
fi
|
|
done
|
|
IFS="$save_ifs"
|
|
|
|
echo "$ac_t$result" 1>&6
|
|
fi
|
|
|
|
if test -n "$RANLIB"; then
|
|
old_archive_cmds="$old_archive_cmds;\$RANLIB \$oldlib"
|
|
old_postinstall_cmds="\$RANLIB \$oldlib;$old_postinstall_cmds"
|
|
fi
|
|
|
|
# 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}:"
|
|
for dir in $PATH; do
|
|
IFS="$save_ifs"
|
|
test -z "$dir" && dir=.
|
|
if test -f $dir/gcc; 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}:"
|
|
cc_rejected=no
|
|
for dir in $PATH; do
|
|
test -z "$dir" && dir=.
|
|
if test -f $dir/cc; 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 $compiler option to produce PIC... $ac_c" 1>&6
|
|
pic_flag=
|
|
special_shlib_compile_flags=
|
|
wl=
|
|
link_static_flag=
|
|
no_builtin_flag=
|
|
|
|
if test "$with_gcc" = yes; then
|
|
wl='-Wl,'
|
|
link_static_flag='-static'
|
|
no_builtin_flag=' -fno-builtin'
|
|
|
|
case "$host_os" in
|
|
aix3* | aix4* | irix5* | irix6* | osf3* | osf4*)
|
|
# PIC is the default for these OSes.
|
|
;;
|
|
os2*)
|
|
# We can build DLLs from non-PIC.
|
|
;;
|
|
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'.
|
|
pic_flag='-m68020 -resident32 -malways-restore-a4'
|
|
;;
|
|
*)
|
|
pic_flag='-fPIC'
|
|
;;
|
|
esac
|
|
else
|
|
# PORTME Check for PIC flags for the system compiler.
|
|
case "$host_os" in
|
|
aix3* | aix4*)
|
|
# All AIX code is PIC.
|
|
link_static_flag='-bnso -bI:/lib/syscalls.exp'
|
|
;;
|
|
|
|
hpux9* | hpux10* | hpux11*)
|
|
# Is there a better link_static_flag that works with the bundled CC?
|
|
wl='-Wl,'
|
|
link_static_flag="${wl}-a ${wl}archive"
|
|
pic_flag='+Z'
|
|
;;
|
|
|
|
irix5* | irix6*)
|
|
wl='-Wl,'
|
|
link_static_flag='-non_shared'
|
|
# PIC (with -KPIC) is the default.
|
|
;;
|
|
|
|
os2*)
|
|
# We can build DLLs from non-PIC.
|
|
;;
|
|
|
|
osf3* | osf4*)
|
|
# All OSF/1 code is PIC.
|
|
wl='-Wl,'
|
|
link_static_flag='-non_shared'
|
|
;;
|
|
|
|
sco3.2v5*)
|
|
pic_flag='-Kpic'
|
|
link_static_flag='-dn'
|
|
special_shlib_compile_flags='-belf'
|
|
;;
|
|
|
|
solaris2*)
|
|
pic_flag='-KPIC'
|
|
link_static_flag='-Bstatic'
|
|
wl='-Wl,'
|
|
;;
|
|
|
|
sunos4*)
|
|
pic_flag='-PIC'
|
|
link_static_flag='-Bstatic'
|
|
wl='-Qoption ld '
|
|
;;
|
|
|
|
sysv4.2uw2*)
|
|
pic_flag='-KPIC'
|
|
link_static_flag='-Bstatic'
|
|
wl='-Wl,'
|
|
;;
|
|
|
|
uts4*)
|
|
pic_flag='-pic'
|
|
link_static_flag='-Bstatic'
|
|
;;
|
|
|
|
*)
|
|
can_build_shared=no
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
if test -n "$pic_flag"; then
|
|
echo "$ac_t$pic_flag" 1>&6
|
|
|
|
# Check to make sure the pic_flag actually works.
|
|
echo $ac_n "checking if $compiler PIC flag $pic_flag works... $ac_c" 1>&6
|
|
$rm conftest*
|
|
echo "int some_variable = 0;" > conftest.c
|
|
save_CFLAGS="$CFLAGS"
|
|
CFLAGS="$CFLAGS $pic_flag -DPIC"
|
|
echo "$progname:@LINENO@: checking if $compiler PIC flag $pic_flag works" >&5
|
|
if { (eval echo $progname:@LINENO@: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
|
|
# Append any warnings to the config.log.
|
|
cat conftest.err 1>&5
|
|
|
|
# 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
|
|
can_build_shared=no
|
|
pic_flag=
|
|
else
|
|
echo "$ac_t"yes 1>&6
|
|
pic_flag=" $pic_flag"
|
|
fi
|
|
else
|
|
# Append any errors to the config.log.
|
|
cat conftest.err 1>&5
|
|
can_build_shared=no
|
|
pic_flag=
|
|
echo "$ac_t"no 1>&6
|
|
fi
|
|
CFLAGS="$save_CFLAGS"
|
|
$rm conftest*
|
|
else
|
|
echo "$ac_t"none 1>&6
|
|
fi
|
|
|
|
# Check to see if options -o and -c are simultaneously supported by compiler
|
|
echo $ac_n "checking if $compiler supports -c and -o options... $ac_c" 1>&6
|
|
$rm conftest*
|
|
echo "int some_variable = 0;" > conftest.c
|
|
save_CFLAGS="$CFLAGS"
|
|
CFLAGS="$CFLAGS -c -o conftest.o"
|
|
echo "$progname:@LINENO@: checking if $compiler supports -c and -o options" >&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_c_o=no
|
|
else
|
|
echo "$ac_t"yes 1>&6
|
|
compiler_c_o=yes
|
|
fi
|
|
else
|
|
# Append any errors to the config.log.
|
|
cat conftest.err 1>&5
|
|
compiler_c_o=no
|
|
echo "$ac_t"no 1>&6
|
|
fi
|
|
CFLAGS="$save_CFLAGS"
|
|
$rm conftest*
|
|
|
|
# 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"
|
|
need_locks=warn
|
|
fi
|
|
else
|
|
need_locks=no
|
|
fi
|
|
|
|
# Check for any special shared library compilation flags.
|
|
if test -n "$special_shlib_compile_flags"; then
|
|
echo "$progname: warning: \`$CC' requires \`$special_shlib_compile_flags' to build shared libraries" 1>&2
|
|
if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$special_shlib_compile_flags[ ]" >/dev/null; then :
|
|
else
|
|
echo "$progname: add \`$special_shlib_compile_flags' to the CC or CFLAGS env variable and reconfigure" 1>&2
|
|
can_build_shared=no
|
|
fi
|
|
fi
|
|
|
|
echo $ac_n "checking if $compiler static flag $link_static_flag works... $ac_c" 1>&6
|
|
$rm conftest*
|
|
echo 'main(){return(0);}' > conftest.c
|
|
save_LDFLAGS="$LDFLAGS"
|
|
LDFLAGS="$LDFLAGS $link_static_flag"
|
|
echo "$progname:@LINENO@: checking if $compiler static flag $link_static_flag works" >&5
|
|
if { (eval echo $progname:@LINENO@: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
|
|
echo "$ac_t$link_static_flag" 1>&6
|
|
else
|
|
echo "$ac_t"none 1>&6
|
|
link_static_flag=
|
|
fi
|
|
LDFLAGS="$save_LDFLAGS"
|
|
$rm conftest*
|
|
|
|
if test -z "$LN_S"; then
|
|
# 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
|
|
$rm conftestdata
|
|
if ln -s X conftestdata 2>/dev/null; then
|
|
$rm conftestdata
|
|
LN_S="ln -s"
|
|
else
|
|
LN_S=ln
|
|
fi
|
|
if test "$LN_S" = "ln -s"; then
|
|
echo "$ac_t"yes 1>&6
|
|
else
|
|
echo "$ac_t"no 1>&6
|
|
fi
|
|
fi
|
|
|
|
# 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]:[/\\]*)
|
|
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}:"
|
|
for ac_dir in $PATH; do
|
|
test -z "$ac_dir" && ac_dir=.
|
|
if test -f "$ac_dir/$ac_prog"; 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=
|
|
archive_cmds=
|
|
old_archive_from_new_cmds=
|
|
export_dynamic_flag_spec=
|
|
whole_archive_flag_spec=
|
|
hardcode_libdir_flag_spec=
|
|
hardcode_libdir_separator=
|
|
hardcode_direct=no
|
|
hardcode_minus_L=no
|
|
hardcode_shlibpath_var=unsupported
|
|
runpath_var=
|
|
|
|
ld_shlibs=yes
|
|
if test "$with_gnu_ld" = yes; then
|
|
|
|
# See if GNU ld supports shared libraries.
|
|
case "$host_os" in
|
|
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
|
|
;;
|
|
|
|
sunos4*)
|
|
archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs'
|
|
hardcode_direct=yes
|
|
hardcode_minus_L=yes
|
|
hardcode_shlibpath_var=no
|
|
;;
|
|
|
|
*)
|
|
if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
|
|
archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib$libobjs'
|
|
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'
|
|
whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
|
|
fi
|
|
else
|
|
# PORTME fill in a description of your system's linker (not GNU ld)
|
|
case "$host_os" in
|
|
aix3*)
|
|
allow_undefined_flag=unsupported
|
|
archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -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*)
|
|
allow_undefined_flag=unsupported
|
|
archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$CC -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry;$AR cru $lib $objdir/$soname'
|
|
hardcode_direct=yes
|
|
hardcode_minus_L=yes
|
|
;;
|
|
|
|
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
|
|
;;
|
|
|
|
# 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 /usr/lib/c++rt0.o'
|
|
hardcode_libdir_flag_spec='-R$libdir'
|
|
hardcode_direct=yes
|
|
hardcode_minus_L=yes
|
|
hardcode_shlibpath_var=no
|
|
;;
|
|
|
|
# Unfortunately, older versions of FreeBSD 2 do not have this feature.
|
|
freebsd2*)
|
|
archive_cmds='$LD -Bshareable -o $lib$libobjs'
|
|
hardcode_direct=yes
|
|
hardcode_minus_L=yes
|
|
hardcode_shlibpath_var=no
|
|
;;
|
|
|
|
# FreeBSD 3, at last, uses gcc -shared to do shared libraries.
|
|
freebsd3*)
|
|
archive_cmds='$CC -shared -o $lib$libobjs'
|
|
hardcode_libdir_flag_spec='-R$libdir'
|
|
hardcode_direct=yes
|
|
hardcode_minus_L=no
|
|
hardcode_shlibpath_var=no
|
|
;;
|
|
|
|
hpux9*)
|
|
archive_cmds='$rm $objdir/$soname;$LD -b +s +b $install_libdir -o $objdir/$soname$libobjs;test $objdir/$soname = $lib || mv $objdir/$soname $lib'
|
|
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
|
hardcode_direct=yes
|
|
hardcode_minus_L=yes
|
|
export_dynamic_flag_spec='${wl}-E'
|
|
;;
|
|
|
|
hpux10* | hpux11*)
|
|
archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib$libobjs'
|
|
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
|
hardcode_direct=yes
|
|
hardcode_minus_L=yes
|
|
export_dynamic_flag_spec='${wl}-E'
|
|
;;
|
|
|
|
irix5* | irix6*)
|
|
if test "$with_gcc" = yes; then
|
|
archive_cmds='$CC -shared -o $lib ${wl}-soname ${wl}$soname ${wl}-set_version ${wl}$verstring$libobjs'
|
|
else
|
|
archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs'
|
|
fi
|
|
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
|
;;
|
|
|
|
netbsd*)
|
|
# Tested with NetBSD 1.2 ld
|
|
archive_cmds='$LD -Bshareable -o $lib$libobjs'
|
|
hardcode_libdir_flag_spec='-R$libdir'
|
|
hardcode_direct=yes
|
|
hardcode_shlibpath_var=no
|
|
;;
|
|
|
|
openbsd*)
|
|
archive_cmds='$LD -Bshareable -o $lib$libobjs'
|
|
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 $objdir/$libname.def'
|
|
old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def'
|
|
;;
|
|
|
|
osf3* | osf4*)
|
|
allow_undefined_flag=' -expect_unresolved \*'
|
|
archive_cmds='$LD -shared${allow_undefined_flag} -o $lib -soname $soname -set_version $verstring$libobjs$deplibs'
|
|
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
|
hardcode_libdir_separator=:
|
|
;;
|
|
|
|
sco3.2v5*)
|
|
archive_cmds='$LD -G -o $lib$libobjs'
|
|
hardcode_direct=yes
|
|
;;
|
|
|
|
solaris2*)
|
|
no_undefined_flag=' -z text'
|
|
archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib$libobjs'
|
|
hardcode_libdir_flag_spec='-R$libdir'
|
|
hardcode_shlibpath_var=no
|
|
|
|
# Solaris 2 before 2.5 hardcodes -L paths.
|
|
case "$host_os" in
|
|
solaris2.[0-4]*)
|
|
hardcode_minus_L=yes
|
|
;;
|
|
esac
|
|
;;
|
|
|
|
sunos4*)
|
|
archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs'
|
|
hardcode_libdir_flag_spec='-L$libdir'
|
|
hardcode_direct=yes
|
|
hardcode_minus_L=yes
|
|
hardcode_shlibpath_var=no
|
|
;;
|
|
|
|
uts4*)
|
|
archive_cmds='$LD -G -h $soname -o $lib$libobjs'
|
|
hardcode_libdir_flag_spec='-L$libdir'
|
|
hardcode_direct=no
|
|
hardcode_minus_L=no
|
|
hardcode_shlibpath_var=no
|
|
;;
|
|
|
|
*)
|
|
ld_shlibs=no
|
|
can_build_shared=no
|
|
;;
|
|
esac
|
|
fi
|
|
echo "$ac_t$ld_shlibs" 1>&6
|
|
|
|
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}:"
|
|
for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do
|
|
test -z "$ac_dir" && ac_dir=.
|
|
if test -f $ac_dir/nm; 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"
|
|
elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
|
|
NM="$ac_dir/nm -p"
|
|
else
|
|
NM="$ac_dir/nm"
|
|
fi
|
|
break
|
|
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='[BCDEGRSTU]'
|
|
|
|
# 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 \1'
|
|
|
|
# Define system-specific variables.
|
|
case "$host_os" in
|
|
aix*)
|
|
symcode='[BCDTU]'
|
|
;;
|
|
irix*)
|
|
# Cannot use undefined symbols on IRIX because inlined functions mess us up.
|
|
symcode='[BCDEGRST]'
|
|
;;
|
|
solaris2*)
|
|
symcode='[BDTU]'
|
|
;;
|
|
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='[ABCDGISTUW]'
|
|
fi
|
|
|
|
# Write the raw and C identifiers.
|
|
global_symbol_pipe="sed -n -e 's/^.* $symcode $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.o; then
|
|
# Now try to grab the symbols.
|
|
nlist=conftest.nm
|
|
if { echo "$progname:@LINENO@: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $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"
|
|
wcout=`wc "$nlist" 2>/dev/null`
|
|
count=`$echo "X$wcout" | $Xsed -e 's/^[ ]*\([0-9][0-9]*\).*$/\1/'`
|
|
(test "$count" -ge 0) 2>/dev/null || count=-1
|
|
else
|
|
rm -f "$nlist"T
|
|
count=-1
|
|
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.
|
|
sed 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> conftest.c
|
|
|
|
cat <<EOF >> conftest.c
|
|
#if defined (__STDC__) && __STDC__
|
|
# define __ptr_t void *
|
|
#else
|
|
# define __ptr_t char *
|
|
#endif
|
|
|
|
/* The number of symbols in dld_preloaded_symbols, -1 if unsorted. */
|
|
int dld_preloaded_symbol_count = $count;
|
|
|
|
/* The mapping between symbol names and symbols. */
|
|
struct {
|
|
char *name;
|
|
__ptr_t address;
|
|
}
|
|
dld_preloaded_symbols[] =
|
|
{
|
|
EOF
|
|
sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> conftest.c
|
|
cat <<\EOF >> conftest.c
|
|
{0, (__ptr_t) 0}
|
|
};
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
EOF
|
|
# Now try linking the two files.
|
|
mv conftest.o conftestm.o
|
|
save_LIBS="$LIBS"
|
|
save_CFLAGS="$CFLAGS"
|
|
LIBS='conftestm.o'
|
|
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*
|
|
|
|
# Do not use the global_symbol_pipe unless it works.
|
|
echo "$ac_t$pipe_works" 1>&6
|
|
test "$pipe_works" = yes || global_symbol_pipe=
|
|
|
|
# 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 && \
|
|
test "$hardcode_minus_L" != no && \
|
|
test "$hardcode_shlibpath_var" != 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=
|
|
version_type=none
|
|
dynamic_linker="$host_os ld.so"
|
|
|
|
echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6
|
|
case "$host_os" in
|
|
aix3* | aix4*)
|
|
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'
|
|
;;
|
|
|
|
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'
|
|
;;
|
|
|
|
freebsd2* | freebsd3*)
|
|
version_type=sunos
|
|
library_names_spec='${libname}${release}.so$versuffix $libname.so'
|
|
finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
;;
|
|
|
|
gnu*)
|
|
version_type=linux
|
|
library_names_spec='${libname}${release}.so$versuffix ${libname}.so'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
;;
|
|
|
|
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
|
|
shlibpath_var=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=osf
|
|
soname_spec='${libname}${release}.so'
|
|
library_names_spec='${libname}${release}.so$versuffix $libname.so'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
;;
|
|
|
|
# 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
|
|
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
|
|
|
|
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* | openbsd*)
|
|
version_type=sunos
|
|
library_names_spec='${libname}${release}.so$versuffix'
|
|
finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
;;
|
|
|
|
os2*)
|
|
libname_spec='$name'
|
|
library_names_spec='$libname.dll $libname.a'
|
|
dynamic_linker='OS/2 ld.exe'
|
|
shlibpath_var=LIBPATH
|
|
;;
|
|
|
|
osf3* | osf4*)
|
|
version_type=osf
|
|
soname_spec='${libname}${release}.so'
|
|
library_names_spec='${libname}${release}.so$versuffix $libname.so'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
;;
|
|
|
|
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
|
|
;;
|
|
|
|
solaris2*)
|
|
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
|
|
# ldd complains unless libraries are executable
|
|
postinstall_cmds='chmod +x $lib'
|
|
;;
|
|
|
|
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
|
|
;;
|
|
|
|
sysv4.2uw2*)
|
|
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
|
|
;;
|
|
|
|
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
|
|
;;
|
|
|
|
*)
|
|
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
|
|
|
|
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
|
|
aix*)
|
|
test "$enable_shared" = yes && enable_static=no
|
|
if test -n "$RANLIB"; then
|
|
archive_cmds="$archive_cmds;\$RANLIB \$lib"
|
|
postinstall_cmds='$RANLIB $lib'
|
|
fi
|
|
;;
|
|
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
|
|
|
|
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
|
|
|
|
# Copy echo and quote the copy, instead of the original, because it is
|
|
# used later.
|
|
ltecho="$echo"
|
|
LTSHELL="$SHELL"
|
|
|
|
# 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_NM old_RANLIB \
|
|
old_LN_S AR CC LD LN_S NM LTSHELL VERSION reload_flag reload_cmds wl \
|
|
pic_flag link_static_flag no_builtin_flag export_dynamic_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 postinstall_cmds postuninstall_cmds \
|
|
allow_undefined_flag no_undefined_flag \
|
|
finish_cmds finish_eval global_symbol_pipe \
|
|
hardcode_libdir_flag_spec hardcode_libdir_separator compiler_c_o need_locks; do
|
|
|
|
case "$var" in
|
|
reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
|
|
old_postinstall_cmds | old_postuninstall_cmds | archive_cmds | \
|
|
postinstall_cmds | postuninstall_cmds | finish_cmds)
|
|
# Double-quote double-evaled strings.
|
|
eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\"\`\\\""
|
|
;;
|
|
*)
|
|
eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
|
|
;;
|
|
esac
|
|
done
|
|
|
|
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)
|
|
# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh.
|
|
#
|
|
# Copyright (C) 1996-1998 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_NM old_RANLIB \
|
|
old_LN_S; 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)
|
|
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 NM=$old_NM RANLIB=$old_RANLIB LN_S=$old_LN_S \\
|
|
# $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=$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
|
|
|
|
# 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
|
|
|
|
# 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
|
|
|
|
# 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
|
|
|
|
# Must we lock files when doing compilation ?
|
|
need_locks=$need_locks
|
|
|
|
# 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
|
|
|
|
# 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
|
|
|
|
# Commands used to build and install a shared archive.
|
|
archive_cmds=$archive_cmds
|
|
postinstall_cmds=$postinstall_cmds
|
|
postuninstall_cmds=$postuninstall_cmds
|
|
|
|
# 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
|
|
|
|
# This is the shared library runtime path variable.
|
|
runpath_var=$runpath_var
|
|
|
|
# This is the shared library path variable.
|
|
shlibpath_var=$shlibpath_var
|
|
|
|
# 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
|
|
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
|
|
exit 0
|
|
|
|
# Local Variables:
|
|
# mode:shell-script
|
|
# sh-indentation:2
|
|
# End:
|