📄 ltconfig
字号:
#! /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.
# 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
echo=echo
if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then :
else
# The Solaris and AIX default echo program unquotes backslashes.
# This makes it impossible to quote backslashes using
# echo "$something" | sed 's/\\/\\\\/g'
# So, we emulate echo with printf '%s\n'
echo="printf %s\\n"
if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then :
else
# Oops. We have no working printf. Try to find a not-so-buggy echo.
echo=echo
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
for dir in $PATH /usr/ucb; do
if test -f $dir/echo && test "X`$dir/echo '\t'`" = 'X\t'; then
echo="$dir/echo"
break
fi
done
IFS="$save_ifs"
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=libtool
VERSION=1.2
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:
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=
verify_host=yes
with_gcc=no
with_gnu_ld=no
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]... LTMAIN [HOST]
Generate a system-specific libtool script.
--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
--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
LTMAIN is the \`ltmain.sh' shell script fragment that provides basic libtool
functionality.
HOST is the canonical host system name [default=guessed].
EOM
exit 0
;;
--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 ;;
--version) echo "$PROGRAM (GNU $PACKAGE) $VERSION"; exit 0 ;;
--with-gcc) with_gcc=yes ;;
--with-gnu-ld) with_gnu_ld=yes ;;
-*)
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 :
else
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.sh.
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 $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=`$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=`$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:424: 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:432: \"$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*)
# 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'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -