Commit cf4ccd63 by Jeff Law

#

	* mpw-* Delete.  Not used.
	* ltconfig, ltmain.sh: Update to libtool 1.2a.
	* Makefile.in (CC_FOR_TARGET): Use $(TARGET_SUBDIR) when passing -B
	for newlib directory.
	(CXX_FOR_TARGET): Likewise.
Bring over from devo.

From-SVN: r19691
parent 9c7d6038
#! /bin/sh
# ltconfig - Create a system-specific libtool.
# When updating this script, search for LINENUM and fix line number refs.
# Generated automatically from ltconfig.in by configure.
# Copyright (C) 1996, 1997, Free Software Foundation, Inc.
# 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
......@@ -27,19 +25,82 @@
# 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}
if test "X$1" = "X--no-reexec"; then
# Discard the --no-reexec flag, and continue.
shift
elif test "X$SHELL" != X/bin/sh; then
# 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
echo=echo
if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then :
else
# 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 :
else
# 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 "$0" | sed 's%^.*/%%'`
progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'`
# Constants:
PROGRAM=ltconfig
PACKAGE=libtool
VERSION=1.0
VERSION=1.2a
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.
......@@ -51,6 +112,7 @@ ac_config_guess=
ac_config_sub=
host=
nonopt=
ofile="$default_ofile"
verify_host=yes
with_gcc=no
with_gnu_ld=no
......@@ -61,9 +123,10 @@ old_CFLAGS="$CFLAGS"
old_CPPFLAGS="$CPPFLAGS"
old_LD="$LD"
old_LN_S="$LN_S"
old_NM="$NM"
old_RANLIB="$RANLIB"
test -z "$AR" && AR=ar
old_DLLTOOL="$DLLTOOL"
old_AS="$AS"
# Parse the command line options.
args=
......@@ -88,12 +151,14 @@ Usage: $progname [OPTION]... LTMAIN [HOST]
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 don't print informational messages
--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
......@@ -107,6 +172,11 @@ EOM
exit 0
;;
--debug)
echo "$progname: enabling shell trace mode"
set -x
;;
--disable-shared) enable_shared=no ;;
--disable-static) enable_static=no ;;
......@@ -118,6 +188,9 @@ EOM
--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 ;;
......@@ -133,7 +206,7 @@ EOM
if test -z "$ltmain"; then
ltmain="$option"
elif test -z "$host"; then
# FIXME This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1
# 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
......@@ -154,7 +227,9 @@ fi
if test -f "$ltmain"; then :
else
echo "$progname: warning: \`$ltmain' does not exist" 1>&2
echo "$progname: \`$ltmain' does not exist" 1>&2
echo "$help" 1>&2
exit 1
fi
# Quote any args containing shell metacharacters.
......@@ -206,10 +281,11 @@ fi
if test -z "$srcdir"; then
# Assume the source directory is the same one as the path to ltmain.sh.
srcdir=`echo "$ltmain" | sed 's%/[^/]*$%%'`
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=
......@@ -248,7 +324,10 @@ if test "$verify_host" = yes; then
fi ;;
esac
host=`$ac_config_sub $host_alias`
echo "$ac_t""$host" 1>&6
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
......@@ -258,19 +337,35 @@ else
host_alias=$host
fi
# Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts.
case "$host" in
*-*-linux-gnu*) ;;
*-*-linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
# 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
......@@ -288,14 +383,18 @@ if test "${RANLIB+set}" != "set"; then
done
IFS="$save_ifs"
echo $ac_t "$result" 1>&6
echo "$ac_t$result" 1>&6
fi
if test -n "$RANLIB"; then
old_archive_cmds="$old_archive_cmds;\$RANLIB \$oldlib"
old_postinstall_cmds="$old_postinstall_cmds;\$RANLIB \$oldlib"
old_postinstall_cmds="\$RANLIB \$oldlib;$old_postinstall_cmds"
fi
# Set sane defaults for `DLLTOOL' and `AS', used on cygwin32.
test -z "$DLLTOOL" && DLLTOOL=dlltool
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.
......@@ -313,9 +412,9 @@ if test "$with_gcc" != yes || test -z "$CC"; then
IFS="$save_ifs"
if test -n "$CC"; then
echo "$ac_t""$CC" 1>&6
echo "$ac_t$CC" 1>&6
else
echo "$ac_t""no" 1>&6
echo "$ac_t"no 1>&6
fi
fi
......@@ -352,9 +451,9 @@ if test "$with_gcc" != yes || test -z "$CC"; then
fi
if test -n "$CC"; then
echo "$ac_t""$CC" 1>&6
echo "$ac_t$CC" 1>&6
else
echo "$ac_t""no" 1>&6
echo "$ac_t"no 1>&6
fi
if test -z "$CC"; then
......@@ -366,20 +465,19 @@ if test "$with_gcc" != yes || test -z "$CC"; then
# 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:468: checking whether we are using GNU C" >&5
trap "$rm conftest.c; exit 1" 1 2 15
$rm conftest.c
cat > conftest.c <<EOF
#ifdef __GNUC__
yes;
#endif
EOF
# LINENUM
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:378: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:476: \"$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
echo "$ac_t$with_gcc" 1>&6
fi
# Allow CC to be a program name with arguments.
......@@ -388,29 +486,45 @@ compiler="$2"
echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6
pic_flag=
profile_flag_pattern=
special_shlib_compile_flags=
wl=
link_static_flag=
no_builtin_flag=
if test "$with_gcc" = yes; then
pic_flag='-fPIC'
profile_flag_pattern='-pg?'
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.
;;
cygwin32* | 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*)
# FIXME All rs/6000 code is PIC, but is there any non-rs/6000 AIX platform?
pic_flag=
# All AIX code is PIC.
link_static_flag='-bnso -bI:/lib/syscalls.exp'
;;
hpux9* | hpux10*)
# FIXME is there a better link_static_flag that works with the bundled CC?
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'
link_static_flag="${wl}-a ${wl}archive"
pic_flag='+Z'
;;
......@@ -418,11 +532,14 @@ else
wl='-Wl,'
link_static_flag='-non_shared'
# PIC (with -KPIC) is the default.
pic_flag=
;;
cygwin32* | os2*)
# We can build DLLs from non-PIC.
;;
osf3* | osf4*)
# FIXME - pic_flag is probably required for hppa*-osf* and i860-osf*
# All OSF/1 code is PIC.
wl='-Wl,'
link_static_flag='-non_shared'
;;
......@@ -445,24 +562,59 @@ else
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
case "$host_cpu" in
rs6000 | powerpc | powerpcle)
# Yippee! All RS/6000 and PowerPC code is position-independent.
pic_flag=
;;
esac
if test -n "$pic_flag"; then
echo $ac_t "$pic_flag" 1>&6
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:591: checking if $compiler PIC flag $pic_flag works" >&5
if { (eval echo $progname:592: \"$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
echo "$ac_t"none 1>&6
fi
# Check for any special shared library compilation flags.
......@@ -475,36 +627,27 @@ if test -n "$special_shlib_compile_flags"; then
fi
fi
# See if we are using a broken GCC collect2 program.
if test "$with_gcc" = yes; then
echo $ac_n "checking for broken GCC collect2... $ac_c" 1>&6
# FIXME: Run a test here, instead of relying on the canonical system name.
case "$host_os" in
aix3*)
can_build_shared=no
echo $ac_t yes 1>&6
echo "$progname: to build shared libraries, set the CC env variable to \`xlc' and reconfigure" 1>&2
;;
*)
echo $ac_t no 1>&6
;;
esac
fi
echo $ac_n "checking for $compiler option to statically link programs... $ac_c" 1>&6
if test -n "$link_static_flag"; then
echo $ac_t "$link_static_flag" 1>&6
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:635: checking if $compiler static flag $link_static_flag works" >&5
if { (eval echo $progname:636: \"$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
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 -f conftestdata
$rm conftestdata
if ln -s X conftestdata 2>/dev/null; then
rm -f conftestdata
$rm conftestdata
LN_S="ln -s"
else
LN_S=ln
......@@ -516,81 +659,131 @@ if test -z "$LN_S"; then
fi
fi
if test "$with_gnu_ld" != yes || test -z "$LD"; then
if test -z "$LD"; then
if test "$with_gnu_ld" = yes; then
# 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:668: 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:686: checking for GNU ld" >&5
else
echo $ac_n "checking for non-GNU ld... $ac_c" 1>&6
echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
echo "$progname:689: 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/ld"; then
LD="$ac_dir/ld"
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 ld|with BFD)' > /dev/null; then
test "$with_gnu_ld" = yes && break
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
echo "$ac_t$LD" 1>&6
else
echo "$ac_t""no" 1>&6
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
fi
echo $ac_n "checking whether we are using 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 ld|with BFD)' > /dev/null; then
# 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
fi
echo $ac_t "$with_gnu_ld" 1>&6
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=
export_dynamic_flag=
old_archive_from_new_cmds=
export_dynamic_flag_spec=
hardcode_libdir_flag_spec=
hardcode_libdir_separator=
hardcode_direct=no
hardcode_minus_L=no
hardcode_runpath_var=no
hardcode_shlibpath_var=unsupported
runpath_var=
ld_shlibs=yes
if test "$with_gnu_ld" = yes; then
# See if GNU ld supports shared libraries.
# 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*)
ld_shlibs=yes
hardcode_direct=yes
hardcode_shlibpath_var=no
archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs'
;;
cygwin32*)
# 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
# Very, very bogus.
echo '
#include <windows.h>
struct _reent *_impure_ptr;
extern struct _reent *__imp_reent_data;
BOOL APIENTRY
__dll_entry (HINSTANCE hinst, DWORD reason, LPVOID reserved)
{
_impure_ptr = __imp_reent_data;
}
' > libtool.c
archive_cmds='$CC -c '"`pwd`"'/libtool.c;echo EXPORTS > $soname-def;$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' >> $soname-def;$LD -s --base-file $soname-base --dll -e ___dll_entry@12 -o $lib libtool.o$libobjs$deplibs;$DLLTOOL --as=$AS --dllname $soname --def $soname-def --base-file $soname-base --output-exp $soname-exp;$LD -s --base-file $soname-base $soname-exp --dll -e ___dll_entry@12 -o $lib libtool.o$libobjs$deplibs;$DLLTOOL --as=$AS --dllname $soname --def $soname-def --base-file $soname-base --output-exp $soname-exp;$LD $soname-exp --dll -e ___dll_entry@12 -o $lib libtool.o$libobjs$deplibs;$rm libtool.o $soname-base $soname-exp'
old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $soname-def --output-lib $objdir/$libname.a;$rm $soname-def'
;;
*)
if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
runpath_var=LD_RUN_PATH
hardcode_runpath_var=yes
ld_shlibs=yes
archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib$libobjs'
else
ld_shlibs=no
fi
......@@ -598,42 +791,75 @@ if test "$with_gnu_ld" = yes; then
esac
if test "$ld_shlibs" = yes; then
archive_cmds='$cc -shared ${wl}-soname $wl$soname -o $lib$libobjs$deplibs'
hardcode_libdir_flag_spec='${wl}-rpath $wl$libdir'
export_dynamic_flag='${wl}-export-dynamic'
runpath_var=LD_RUN_PATH
hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
export_dynamic_flag_spec='${wl}--export-dynamic'
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='/usr/ucb/nm$libobjs | egrep \" [BD] \" | sed \"s/^.* //\" > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE -lc$deplibs;$AR cru $lib $objdir/$soname'
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='/bin/nm -B$libobjs | egrep \" [BD] \" | sed \"s/^.* //\" > $lib.exp;$cc -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry$deplibs;$AR cru $lib $objdir/$soname'
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
;;
cygwin32*)
# 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
# Very, very bogus.
echo '
#include <windows.h>
struct _reent *_impure_ptr;
extern struct _reent *__imp_reent_data;
BOOL APIENTRY
__dll_entry (HINSTANCE hinst, DWORD reason, LPVOID reserved)
{
_impure_ptr = __imp_reent_data;
}
' > libtool.c
archive_cmds='$CC -c '"`pwd`"'/libtool.c;echo EXPORTS > $soname-def;$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' >> $soname-def;$LD -s --base-file $soname-base --dll -e ___dll_entry@12 -o $lib libtool.o$libobjs$deplibs;$DLLTOOL --as=$AS --dllname $soname --def $soname-def --base-file $soname-base --output-exp $soname-exp;$LD -s --base-file $soname-base $soname-exp --dll -e ___dll_entry@12 -o $lib libtool.o$libobjs$deplibs;$DLLTOOL --as=$AS --dllname $soname --def $soname-def --base-file $soname-base --output-exp $soname-exp;$LD $soname-exp --dll -e ___dll_entry@12 -o $lib libtool.o$libobjs$deplibs;$rm libtool.o $soname-base $soname-exp'
old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $soname-def --output-lib $objdir/$libname.a;$rm $soname-def'
;;
# 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
# doesn't break anything, and helps significantly (at the cost of a little
# 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 /usr/lib/c++rt0.o'
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 don't have this feature.
# Unfortunately, older versions of FreeBSD 2 do not have this feature.
freebsd2*)
archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs'
archive_cmds='$LD -Bshareable -o $lib$libobjs'
hardcode_direct=yes
hardcode_minus_L=yes
hardcode_shlibpath_var=no
......@@ -641,55 +867,85 @@ else
# FreeBSD 3, at last, uses gcc -shared to do shared libraries.
freebsd3*)
archive_cmds='$CC -shared -o $lib$libobjs$deplibs'
archive_cmds='$CC -shared -o $lib$libobjs'
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_minusL=yes
hardcode_minus_L=yes
hardcode_shlibpath_var=no
;;
hpux9*)
archive_cmds='$rm $objdir/$soname;$LD -b +s +b $install_libdir -o $objdir/$soname$libobjs$deplibs;mv $objdir/$soname $lib'
archive_cmds='$rm $objdir/$soname;$LD -b +s +b $install_libdir -o $objdir/$soname$libobjs;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*)
archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib$libobjs$deplibs'
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*)
archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs -lc$deplibs'
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* | openbsd*)
netbsd*)
# Tested with NetBSD 1.2 ld
archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs'
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 -lc$deplibs'
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$deplibs'
archive_cmds='$LD -G -o $lib$libobjs'
hardcode_direct=yes
;;
solaris2*)
archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs$deplibs'
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*)
......@@ -700,19 +956,208 @@ else
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
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]'
;;
cygwin32*)
sympat='_\([_A-Za-z][_A-Za-z0-9]*\)'
symxfrm='_\1 \1'
;;
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
case "$host_os" in
cygwin32*)
# We do not want undefined symbols on cygwin32. The user must
# arrange to define them via -l arguments.
symcode='[ABCDGISTW]'
;;
esac
# 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:1068: checking if global_symbol_pipe works" >&5
if { (eval echo $progname:1069: \"$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:1072: 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:1130: \"$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 "$hardcode_runpath_var" = yes; then
test -n "$runpath_var"; then
# We can hardcode non-existant directories.
if test "$hardcode_direct" != no && \
......@@ -725,32 +1170,30 @@ if test -n "$hardcode_libdir_flag_spec" || \
# We can link without hardcoding, and we can hardcode nonexisting dirs.
hardcode_action=immediate
fi
elif test "$hardcode_direct" != yes && \
test "$hardcode_minus_L" != yes && \
test "$hardcode_shlibpath_var" != yes; then
# We can't hardcode anything.
hardcode_action=unsupported
else
# We can only hardcode existing directories.
hardcode_action=relink
# We cannot hardcode anything, or else we can only hardcode existing
# directories.
hardcode_action=unsupported
fi
echo $ac_t "$hardcode_action" 1>&6
test "$hardcode_action" = unsupported && can_build_shared=no
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 linker may need a different reload flag.
# PORTME Some linkers may need a different reload flag.
reload_flag='-r'
echo $ac_t "$reload_flag"
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"
......@@ -759,42 +1202,55 @@ echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6
case "$host_os" in
aix3* | aix4*)
version_type=linux
library_names_spec='$libname.so.$versuffix $libname.a'
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.so.$major'
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'
;;
cygwin32*)
version_type=windows
library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a'
dynamic_linker='Win32 ld.exe'
shlibpath_var=PATH
;;
freebsd2* | freebsd3*)
version_type=sunos
library_names_spec='$libname.so.$versuffix $libname.so'
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=sunos
library_names_spec='$libname.so.$versuffix'
library_names_spec='${libname}${release}.so$versuffix'
shlibpath_var=LD_LIBRARY_PATH
;;
hpux9* | hpux10*)
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.sl.$versuffix $libname.sl.$major $libname.sl'
soname_spec='$libname.sl.$major'
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.so'
library_names_spec='$libname.so.$versuffix $libname.so'
soname_spec='${libname}${release}.so'
library_names_spec='${libname}${release}.so$versuffix $libname.so'
shlibpath_var=LD_LIBRARY_PATH
;;
......@@ -806,8 +1262,8 @@ linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
# This must be Linux ELF.
linux-gnu*)
version_type=linux
library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
soname_spec='$libname.so.$major'
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
......@@ -824,76 +1280,75 @@ linux-gnu*)
netbsd* | openbsd*)
version_type=sunos
library_names_spec='$libname.so.$versuffix'
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.so'
library_names_spec='$libname.so.$versuffix $libname.so'
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.so.$major'
library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
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.so.$versuffix $libname.so.$major $libname.so'
soname_spec='$libname.so.$major'
library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
soname_spec='${libname}${release}.so$major'
shlibpath_var=LD_LIBRARY_PATH
;;
sunos4*)
version_type=sunos
library_names_spec='$libname.so.$versuffix'
library_names_spec='${libname}${release}.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"
echo "$ac_t$dynamic_linker"
test "$dynamic_linker" = no && can_build_shared=no
# FIXME need to add library stripping features
# strip -x works for most platforms, though not for static libraries on NetBSD
# HP-UX requires "-r" for library stripping
striplib=
old_striplib=
#echo $ac_n "checking for static library strip program... $ac_c" 1>&6
#if test -n "$old_striplib"; then
# echo $ac_t "$old_striplib" 1>&6
#else
# echo $ac_t none 1>&6
#fi
#if test "$can_build_shared" = yes; then
# echo $ac_n "checking for shared library strip program... $ac_c" 1>&6
#
# if test -n "$striplib"; then
# echo $ac_t "$striplib" 1>&6
# else
# echo $ac_t none 1>&6
# fi
#fi
# Report the consequences.
# 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.
# 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
......@@ -904,28 +1359,98 @@ aix*)
;;
esac
echo "$ac_t""$enable_shared" 1>&6
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
ofile=libtool
trap "$rm $ofile; exit 1" 1 2 15
echo creating $ofile
rm -fr $ofile
cat <<EOF > $ofile
#! /bin/sh
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"
# 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 old_DLLTOOL old_AS AR CC LD LN_S NM DLLTOOL AS reload_flag \
reload_cmds wl pic_flag link_static_flag no_builtin_flag \
export_dynamic_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; 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
# libtool - Provide generalized library-building support services.
#
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
# This program was configured as follows,
# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
# 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
# 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" RANLIB="$old_RANLIB" LN_S="$old_LN_S" \\
# LD="$old_LD" NM="$old_NM" RANLIB="$old_RANLIB" LN_S="$old_LN_S" \\
# DLLTOOL="$old_DLLTOOL" AS="$old_AS" \\
# $0$ltconfig_args
#
# Compiler and other test output produced by $progname, useful for
......@@ -934,72 +1459,106 @@ cat <<EOF > $ofile
# The version of $progname that generated this script.
LTCONFIG_VERSION="$VERSION"
# Whether or not to build libtool libraries.
# Shell to use when invoking shell scripts.
SHELL="$SHELL"
# Whether or not to build shared libraries.
build_libtool_libs=$enable_shared
# Whether or not to build old-style libraries.
# 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'
AR="$AR"
# The default C compiler.
CC="$CC"
# The linker used to build libraries.
LD='$LD'
LD="$LD"
# Whether we need hard or soft links.
LN_S='$LN_S'
LN_S="$LN_S"
# A BSD-compatible nm program.
NM="$NM"
# Used on cygwin32: DLL creation program.
DLLTOOL="$DLLTOOL"
# Used on cygwin32: 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'
reload_flag="$reload_flag"
reload_cmds="$reload_cmds"
# How to pass a linker flag through the compiler.
wl='$wl'
wl="$wl"
# Additional compiler flags for building library objects.
pic_flag='$pic_flag'
pic_flag="$pic_flag"
# Compiler flag to prevent dynamic linking.
link_static_flag='$link_static_flag'
link_static_flag="$link_static_flag"
# Compiler flag to allow reflexive dlopens.
export_dynamic_flag='$export_dynamic_flag'
# Compiler flag to turn off builtin functions.
no_builtin_flag="$no_builtin_flag"
# Pattern to match compiler flags for creating libNAME_p libraries:
profile_flag_pattern='$profile_flag_pattern'
# Compiler flag to allow reflexive dlopens.
export_dynamic_flag_spec="$export_dynamic_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'
library_names_spec="$library_names_spec"
# The coded name of the library, if different from the real name.
soname_spec='$soname_spec'
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'
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'
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'
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'
finish_cmds="$finish_cmds"
# Same as above, but a single script fragment to be evaled but not shown.
finish_eval="$finish_eval"
# How to strip a library file.
striplib='$striplib'
old_striplib='$old_striplib'
# 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
......@@ -1012,10 +1571,10 @@ 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'
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'
hardcode_libdir_separator="$hardcode_libdir_separator"
# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
# resulting binary.
......@@ -1025,37 +1584,33 @@ hardcode_direct=$hardcode_direct
# resulting binary.
hardcode_minus_L=$hardcode_minus_L
# Set to yes if using RUNPATH_VAR=DIR during linking hardcodes DIR into the
# resulting binary.
hardcode_runpath_var=$hardcode_runpath_var
# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
# the resulting binary.
hardcode_shlibpath_var=$hardcode_shlibpath_var
EOF
# Detect if we are using a relative or absolute path to ltmain.sh.
case "$ltmain" in
/*) cat <<EOF2 >> $ofile
# Execute the libtool backend.
. $ltmain
EOF2
;;
*) cat <<EOF3 >> $ofile
# Find the path to this script.
thisdir=\`echo "\$0" | sed -e 's%/[^/]*\$%%'\`
test "X\$0" = "X\$thisdir" && thisdir=.
# Execute the libtool backend.
. \$thisdir/$ltmain
EOF3
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
echo 'exit 1' >> $ofile
echo '### END LIBTOOL CONFIG' >> "$ofile"
echo >> "$ofile"
# Append the ltmain.sh script.
cat "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1)
chmod +x $ofile
chmod +x "$ofile"
exit 0
# Local Variables:
......
# ltmain.sh - Provide generalized library-building support services.
# Generated automatically from ltmain.sh.in by configure.
# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
# NOTE: Changing this file will not affect anything until you rerun ltconfig.
#
# 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
......@@ -23,30 +24,41 @@
# the same distribution terms that you use for the rest of that program.
# The name of this program.
progname=`echo "$0" | sed 's%^.*/%%'`
progname=`$echo "$0" | sed 's%^.*/%%'`
modename="$progname"
# Constants.
PROGRAM=ltmain.sh
PACKAGE=libtool
VERSION=1.0
VERSION=1.2a
default_mode=
help="Try \`$progname --help' for more information."
magic="%%%MAGIC variable%%%"
mkdir="mkdir"
mv="mv -f"
objdir=.libs
rm="rm -f"
# 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'
# 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 "$LTCONFIG_VERSION" != "$VERSION"; then
echo "$progname: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
exit 1
fi
#
if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
echo "$progname: not configured to build any kind of library" 1>&2
echo "$modename: not configured to build any kind of library" 1>&2
echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
exit 1
fi
......@@ -57,8 +69,9 @@ nonopt=
prev=
prevopt=
run=
show=echo
show="$echo"
show_help=
execute_dlfiles=
# Parse our command line options once, thoroughly.
while test $# -gt 0
......@@ -67,13 +80,21 @@ do
shift
case "$arg" in
-*=*) optarg=`echo "$arg" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
-*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
*) optarg= ;;
esac
# If the previous option needs an argument, assign it.
if test -n "$prev"; then
case "$prev" in
execute_dlfiles)
eval "$prev=\"\$$prev \$arg\""
;;
*)
eval "$prev=\$arg"
;;
esac
prev=
prevopt=
continue
......@@ -90,6 +111,16 @@ do
exit 0
;;
--config)
sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0
exit 0
;;
--debug)
echo "$progname: enabling shell trace mode"
set -x
;;
--dry-run | -n)
run=:
;;
......@@ -114,9 +145,18 @@ do
--mode) prevopt="--mode" prev=mode ;;
--mode=*) mode="$optarg" ;;
--quiet | --silent)
show=:
;;
-dlopen)
prevopt="-dlopen"
prev=execute_dlfiles
;;
-*)
echo "$progname: unrecognized option \`$arg'" 1>&2
echo "$help" 1>&2
$echo "$modename: unrecognized option \`$arg'" 1>&2
$echo "$help" 1>&2
exit 1
;;
......@@ -127,20 +167,18 @@ do
esac
done
if test -n "$prevopt"; then
echo "$progname: option \`$prevopt' requires an argument" 1>&2
echo "$help" 1>&2
$echo "$modename: option \`$prevopt' requires an argument" 1>&2
$echo "$help" 1>&2
exit 1
fi
if test -z "$show_help"; then
# Infer the operation mode.
if test -z "$mode"; then
case "$nonopt" in
*cc)
*cc | *++ | gcc* | *-gcc*)
mode=link
for arg
do
......@@ -152,83 +190,129 @@ if test -z "$show_help"; then
esac
done
;;
*install*|cp)
*db | *dbx)
mode=execute
;;
*install*|cp|mv)
mode=install
;;
*rm)
mode=uninstall
;;
*.la)
mode=dlname
;;
*)
# If we have no mode, but dlfiles were specified, then do execute mode.
test -n "$execute_dlfiles" && mode=execute
# Just use the default operation mode.
if test -z "$mode"; then
if test -n "$nonopt"; then
echo "$progname: warning: cannot infer operation mode from \`$nonopt'" 1>&2
$echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
else
echo "$progname: warning: cannot infer operation mode without MODE-ARGS" 1>&2
$echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
fi
fi
;;
esac
fi
# Only execute mode is allowed to have -dlopen flags.
if test -n "$execute_dlfiles" && test "$mode" != execute; then
$echo "$modename: unrecognized option \`-dlopen'" 1>&2
$echo "$help" 1>&2
exit 1
fi
# Change the help message to a mode-specific one.
generic_help="$help"
help="Try \`$progname --help --mode=$mode' for more information."
help="Try \`$modename --help --mode=$mode' for more information."
# These modes are in order of execution frequency so that they run quickly.
case "$mode" in
# libtool compile mode
compile)
progname="$progname: compile"
modename="$modename: compile"
# Get the compilation command and the source file.
base_compile="$nonopt"
base_compile=
lastarg=
srcfile=
srcfile="$nonopt"
suppress_output=
for arg
do
# Quote any args containing shell metacharacters.
# Accept any command-line options.
case "$arg" in
*" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*|*\"*)
quote_arg="'$arg'" ;;
*) quote_arg="$arg" ;;
-o)
$echo "$modename: you cannot specify the output filename with \`-o'" 1>&2
$echo "$help" 1>&2
exit 1
;;
-static)
build_libtool_libs=no
build_old_libs=yes
continue
;;
esac
# Accept the current argument as the source file.
lastarg="$srcfile"
srcfile="$arg"
# Aesthetically quote the previous argument.
# Backslashify any backslashes, double quotes, and dollar signs.
# These are the only characters that are still specially
# interpreted inside of double-quoted scrings.
lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
# Double-quote args containing other shell metacharacters.
# Many Bourne shells cannot handle close brackets correctly in scan
# sets, so we specify it separately.
case "$lastarg" in
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
lastarg="\"$lastarg\""
;;
esac
base_compile="$base_compile$lastarg"
srcfile="$quote_arg"
lastarg=" $srcfile"
# Add the previous argument to base_compile.
if test -z "$base_compile"; then
base_compile="$lastarg"
else
base_compile="$base_compile $lastarg"
fi
done
# Get the name of the library object.
libobj=`echo "$srcfile" | sed -e 's%^.*/%%'`
libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
# Recognize several different file suffixes.
xform='[cCFSf]'
xform='[cCFSfms]'
case "$libobj" in
*.c++) xform='c++' ;;
*.ada) xform=ada ;;
*.adb) xform=adb ;;
*.ads) xform=ads ;;
*.asm) xform=asm ;;
*.c++) xform=c++ ;;
*.cc) xform=cc ;;
*.cpp) xform=cpp ;;
*.cxx) xform=cxx ;;
*.f90) xform=f90 ;;
*.for) xform='for' ;;
*.for) xform=for ;;
esac
libobj=`echo "$libobj" | sed -e "s/\.$xform$/.lo/"`
libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
case "$libobj" in
*.lo) obj=`echo "$libobj" | sed -e 's/\.lo$/.o/'` ;;
*.lo) obj=`$echo "X$libobj" | $Xsed -e 's/\.lo$/.o/'` ;;
*)
echo "$progname: cannot determine name of library object from \`$srcfile'" 1>&2
$echo "$modename: cannot determine name of library object from \`$srcfile'" 1>&2
exit 1
;;
esac
if test -z "$base_compile"; then
echo "$progname: you must specify a compilation command" 1>&2
echo "$help" 1>&2
$echo "$modename: you must specify a compilation command" 1>&2
$echo "$help" 1>&2
exit 1
fi
......@@ -243,9 +327,12 @@ if test -z "$show_help"; then
# Only build a PIC object if we are building libtool libraries.
if test "$build_libtool_libs" = yes; then
# Without this assignment, base_compile gets emptied.
fbsd_hideous_sh_bug=$base_compile
# All platforms use -DPIC, to notify preprocessed assembler code.
$show "$base_compile$pic_flag -DPIC $srcfile"
if $run eval "$base_compile$pic_flag -DPIC $srcfile"; then :
if $run eval "$base_compile\$pic_flag -DPIC \$srcfile"; then :
else
test -n "$obj" && $run $rm $obj
exit 1
......@@ -261,23 +348,27 @@ if test -z "$show_help"; then
# Just move the object, then go on to compile the next one
$show "$mv $obj $libobj"
$run $mv $obj $libobj || exit 1
# Allow error messages only from the first compilation.
suppress_output=' >/dev/null 2>&1'
fi
# Only build a position-dependent object if we build old libraries.
if test "$build_old_libs" = yes; then
$show "$base_compile $srcfile"
if $run eval "$base_compile $srcfile"; then :
# Suppress compiler output if we already did a PIC compilation.
$show "$base_compile $srcfile$suppress_output"
if $run eval "$base_compile \$srcfile$suppress_output"; then :
else
$run $rm $obj $libobj
exit 1
fi
fi
# Create an invalid libtool object if no PIC, so that we don't accidentally
# link it into a program.
# Create an invalid libtool object if no PIC, so that we do not
# accidentally link it into a program.
if test "$build_libtool_libs" != yes; then
$show "echo timestamp > $libobj"
$run eval "echo timestamp > $libobj" || exit $?
$run eval "echo timestamp > \$libobj" || exit $?
fi
exit 0
......@@ -285,26 +376,27 @@ if test -z "$show_help"; then
# libtool link mode
link)
progname="$progname: link"
# Go through the arguments, transforming them on the way.
cc="$nonopt"
args="$cc"
allow_undefined=no
compile_command="$cc"
finalize_command="$cc"
modename="$modename: link"
CC="$nonopt"
allow_undefined=yes
compile_command="$CC"
finalize_command="$CC"
compile_shlibpath=
finalize_shlibpath=
deplibs=
dlfiles=
dlprefiles=
export_dynamic=no
hardcode_libdirs=
install_libdir=
libobjs=
link_against_libtool_libs=
link_static=
ltlibs=
objs=
prev=
prevarg=
release=
rpath=
perm_rpath=
temp_rpath=
vinfo=
......@@ -313,7 +405,10 @@ if test -z "$show_help"; then
for arg
do
case "$arg" in
-static)
-all-static | -static)
if test "X$arg" = "X-all-static" && test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
$echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
fi
build_libtool_libs=no
build_old_libs=yes
break
......@@ -321,6 +416,10 @@ if test -z "$show_help"; then
esac
done
# See if our shared archives depend on static archives.
test -n "$old_archive_from_new_cmds" && build_old_libs=yes
# Go through the arguments, transforming them on the way.
for arg
do
# If the previous option needs an argument, assign it.
......@@ -329,36 +428,88 @@ if test -z "$show_help"; then
output)
compile_command="$compile_command @OUTPUT@"
finalize_command="$finalize_command @OUTPUT@"
args="$args $arg"
;;
esac
eval "$prev=\$arg"
case "$prev" in
dlfiles|dlprefiles)
case "$arg" in
*.la | *.lo) ;; # We handle these cases below.
*)
dlprefiles="$dlprefiles $arg"
test "$prev" = dlfiles && dlfiles="$dlfiles $arg"
prev=
;;
esac
;;
release)
release="-$arg"
prev=
continue
;;
rpath)
rpath="$rpath $arg"
prev=
continue
;;
*)
eval "$prev=\"\$arg\""
prev=
continue
;;
esac
fi
args="$args $arg"
prevarg="$arg"
case "$arg" in
-allow-undefined) allow_undefined=yes ;;
-all-static)
if test -n "$link_static_flag"; then
compile_command="$compile_command $link_static_flag"
finalize_command="$finalize_command $link_static_flag"
fi
continue
;;
-allow-undefined)
# FIXME: remove this flag sometime in the future.
$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
continue
;;
-dlopen)
prev=dlfiles
continue
;;
-dlpreopen)
prev=dlprefiles
continue
;;
-export-dynamic)
if test "$export_dynamic" != yes; then
export_dynamic=yes
compile_command="$compile_command $export_dynamic_flag"
finalize_command="$finalize_command $export_dynamic_flag"
continue
if test -n "$export_dynamic_flag_spec"; then
eval arg=\"$export_dynamic_flag_spec\"
else
arg=
fi
# Add the symbol object into the linking commands.
compile_command="$compile_command @SYMFILE@"
finalize_command="$finalize_command @SYMFILE@"
fi
;;
-L*)
dir=`echo "$arg" | sed 's%^-L\(.*\)$%\1%'`
dir=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'`
case "$dir" in
/*)
/* | [A-Za-z]:\\*)
# Add the corresponding hardcode_libdir_flag, if it is not identical.
;;
*)
echo "$progname: \`-L$dir' cannot specify a relative directory" 1>&2
$echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2
exit 1
;;
esac
......@@ -367,23 +518,30 @@ if test -z "$show_help"; then
-l*) deplibs="$deplibs $arg" ;;
-no-undefined)
allow_undefined=no
continue
;;
-o) prev=output ;;
-rpath)
prev=install_libdir
-release)
prev=release
continue
;;
-static)
link_static="`eval echo \"$link_static_flag\"`"
compile_command="$compile_command $link_static"
-rpath)
prev=rpath
continue
;;
-version-file)
echo "$progname: \`-version-file' has been replaced by \`-version-info'" 1>&2
echo "$help" 1>&2
exit 1
-static)
# If we have no pic_flag, then this is the same as -all-static.
if test -z "$pic_flag" && test -n "$link_static_flag"; then
compile_command="$compile_command $link_static_flag"
finalize_command="$finalize_command $link_static_flag"
fi
continue
;;
-version-info)
......@@ -391,50 +549,67 @@ if test -z "$show_help"; then
continue
;;
-*) cc="$cc $arg" ;; # Some other compiler flag.
*.o)
# A standard object.
objs="$objs $arg"
# Some other compiler flag.
-* | +*)
# Unknown arguments in both finalize_command and compile_command need
# to be aesthetically quoted because they are evaled later.
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
case "$arg" in
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
arg="\"$arg\""
;;
esac
;;
*.a)
# Find the relevant object directory and library name.
file=`echo "$arg" | sed 's%^.*/%%'`
dir=`echo "$arg" | sed 's%/[^/]*$%/%'`
test "$dir" = "$arg" && dir=
# Standard archive.
*.o | *.a)
# A standard object.
objs="$objs $arg"
;;
*.lo)
# A library object.
if test "$prev" = dlfiles; then
dlfiles="$dlfiles $arg"
if test "$build_libtool_libs" = yes; then
prev=
continue
else
# If libtool objects are unsupported, then we need to preload.
prev=dlprefiles
fi
fi
if test "$prev" = dlprefiles; then
# Preload the old-style object.
dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e 's/\.lo$/.o/'`
prev=
fi
libobjs="$libobjs $arg"
;;
*.la)
# A libtool-controlled library.
dlname=
libdir=
library_names=
old_library=
# Check to see that this really is a libtool archive.
if egrep "^# Generated by $PROGRAM" $arg >/dev/null 2>&1; then :
if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
else
echo "$progname: \`$arg' is not a valid libtool archive" 1>&2
$echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
exit 1
fi
# If there is no directory component, then add one.
case "$arg" in
*/*) . $arg ;;
*/* | *\\*) . $arg ;;
*) . ./$arg ;;
esac
if test -z "$libdir"; then
echo "$progname: \`$arg' contains no -rpath information" 1>&2
$echo "$modename: \`$arg' contains no -rpath information" 1>&2
exit 1
fi
......@@ -445,29 +620,58 @@ if test -z "$show_help"; then
done
if test -z "$linklib"; then
echo "$progname: cannot find name of link library for \`$arg'" 1>&2
$echo "$modename: cannot find name of link library for \`$arg'" 1>&2
exit 1
fi
# Find the relevant object directory and library name.
name=`echo "$arg" | sed 's%^.*/%%; s/\.la$//; s/^lib//'`
dir=`echo "$arg" | sed 's%/[^/]*$%%'`
if test "$dir" = "$arg"; then
name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
if test "X$dir" = "X$arg"; then
dir="$objdir"
else
dir="$dir/$objdir"
fi
# This library was specified with -dlopen.
if test "$prev" = dlfiles; then
dlfiles="$dlfiles $arg"
if test -z "$dlname"; then
# If there is no dlname, we need to preload.
prev=dlprefiles
else
# We should not create a dependency on this library, but we
# may need any libraries it requires.
compile_command="$compile_command$dependency_libs"
finalize_command="$finalize_command$dependency_libs"
prev=
continue
fi
fi
# The library was specified with -dlpreopen.
if test "$prev" = dlprefiles; then
# Prefer using a static library (so that no silly _DYNAMIC symbols
# are required to link).
if test -n "$old_library"; then
dlprefiles="$dlprefiles $dir/$old_library"
else
dlprefiles="$dlprefiles $dir/$linklib"
fi
prev=
fi
if test "$build_libtool_libs" = yes && test -n "$library_names"; then
link_against_libtool_libs="$link_against_libtool_libs $arg"
if test -n "$shlibpath_var"; then
# Make sure the rpath contains only unique directories.
case "$temp_rpath " in
"* $dir *") ;;
*" $dir "*) ;;
*) temp_rpath="$temp_rpath $dir" ;;
esac
fi
# This is the magic to use -rpath.
if test -n "$hardcode_libdir_flag_spec"; then
if test -n "$hardcode_libdir_separator"; then
if test -z "$hardcode_libdirs"; then
......@@ -475,21 +679,28 @@ if test -z "$show_help"; then
hardcode_libdirs="$libdir"
libdir="@HARDCODE_LIBDIRS@"
else
# Just accumulate the libdirs.
# Just accumulate the unique libdirs.
case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
*"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
;;
*)
hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
;;
esac
libdir=
fi
fi
if test -n "$libdir"; then
hardcode_libdir_flag=`eval echo \"$hardcode_libdir_flag_spec\"`
compile_command="$compile_command $hardcode_libdir_flag"
finalize_command="$finalize_command $hardcode_libdir_flag"
eval flag=\"$hardcode_libdir_flag_spec\"
compile_command="$compile_command $flag"
finalize_command="$finalize_command $flag"
fi
elif test "$hardcode_runpath_var" = yes; then
elif test -n "$runpath_var"; then
# Do the same for the permanent run path.
case "$perm_rpath " in
"* $libdir *") ;;
*" $libdir "*) ;;
*) perm_rpath="$perm_rpath $libdir" ;;
esac
fi
......@@ -510,11 +721,11 @@ if test -z "$show_help"; then
relink)
# We need an absolute path.
case "$dir" in
/*) ;;
/* | [A-Za-z]:\\*) ;;
*)
absdir=`cd "$dir" && pwd`
if test -z "$absdir"; then
echo "$progname: cannot determine absolute directory name of \`$dir'" 1>&2
$echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
exit 1
fi
dir="$absdir"
......@@ -530,11 +741,6 @@ if test -z "$show_help"; then
compile_command="$compile_command -l$name"
fi
;;
*)
echo "$progname: \`$hardcode_action' is an unknown hardcode action" 1>&2
exit 1
;;
esac
# Finalize command for both is simple: just hardcode it.
......@@ -546,61 +752,103 @@ if test -z "$show_help"; then
finalize_shlibpath="$finalize_shlibpath$libdir:"
finalize_command="$finalize_command -l$name"
else
# We can't seem to hardcode it, guess we'll fake it.
# We cannot seem to hardcode it, guess we'll fake it.
finalize_command="$finalize_command -L$libdir -l$name"
fi
else
# Transform directly to old archives if we don't build new libraries.
if test -n "$pic_flag" && test -z "$old_library"; then
echo "$progname: cannot find static library for \`$arg'" 1>&2
$echo "$modename: cannot find static library for \`$arg'" 1>&2
exit 1
fi
# Here we assume that one of hardcode_direct or hardcode_minus_L
# is not unsupported. This is valid on all known static and
# shared platforms.
if test "$hardcode_direct" != unsupported; then
test -n "$old_library" && linklib="$old_library"
compile_command="$compile_command $dir/$linklib"
finalize_command="$finalize_command $dir/$linklib"
else
compile_command="$compile_command -L$dir -l$name"
finalize_command="$finalize_command -L$dir -l$name"
fi
fi
# Add in any libraries that this one depends upon.
compile_command="$compile_command$dependency_libs"
finalize_command="$finalize_command$dependency_libs"
continue
;;
# Some other compiler argument.
*)
echo "$progname: unknown file suffix for \`$arg'" 1>&2
echo "$help" 1>&2
exit 1
# Unknown arguments in both finalize_command and compile_command need
# to be aesthetically quoted because they are evaled later.
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
case "$arg" in
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
arg="\"$arg\""
;;
esac
;;
esac
# Now actually substitute the argument into the commands.
if test -n "$arg"; then
compile_command="$compile_command $arg"
finalize_command="$finalize_command $arg"
fi
done
if test -n "$prev"; then
echo "$progname: the \`$prevarg' option requires an argument" 1>&2
echo "$help" 1>&2
$echo "$modename: the \`$prevarg' option requires an argument" 1>&2
$echo "$help" 1>&2
exit 1
fi
# Substitute the hardcoded libdirs into the compile commands.
if test "$hardcode_libdir_colon_separated" = yes; then
compile_command=`echo "$compile_command" | sed "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"`
finalize_command=`echo "$finalize_command" | sed "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"`
if test -n "$vinfo" && test -n "$release"; then
$echo "$modename: you cannot specify both \`-version-info' and \`-release'" 1>&2
$echo "$help" 1>&2
exit 1
fi
oldlib=
oldobjs=
case "$output" in
"")
echo "$progname: you must specify an output file" 1>&2
echo "$help" 1>&2
$echo "$modename: you must specify an output file" 1>&2
$echo "$help" 1>&2
exit 1
;;
*/*)
echo "$progname: output file \`$output' must have no directory components" 1>&2
*/* | *\\*)
$echo "$modename: output file \`$output' must have no directory components" 1>&2
exit 1
;;
*.a)
# Now set the variables for building old libraries.
build_libtool_libs=no
build_old_libs=yes
oldlib="$output"
$show "$rm $oldlib"
$run $rm $oldlib
;;
*.la)
libname=`echo "$output" | sed 's/\.la$//'`
# Make sure we only generate libraries of the form `libNAME.la'.
case "$output" in
lib*) ;;
*)
$echo "$modename: libtool library \`$arg' must begin with \`lib'" 1>&2
$echo "$help" 1>&2
exit 1
;;
esac
name=`$echo "X$output" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
eval libname=\"$libname_spec\"
# All the library-specific variables (install_libdir is set above).
library_names=
......@@ -611,29 +859,45 @@ if test -z "$show_help"; then
age=0
if test -n "$objs"; then
echo "$progname: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
$echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
exit 1
fi
# How the heck are we supposed to write a wrapper for a shared library?
if test -n "$link_against_libtool_libs"; then
echo "$progname: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2
$echo "$modename: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2
exit 1
fi
if test -z "$install_libdir"; then
echo "$progname: you must specify an installation directory with \`-rpath'" 1>&2
if test -n "$dlfiles$dlprefiles"; then
$echo "$modename: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2
# Nullify the symbol file.
compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
fi
if test -z "$rpath"; then
$echo "$modename: you must specify an installation directory with \`-rpath'" 1>&2
$echo "$help" 1>&2
exit 1
fi
set dummy $rpath
if test $# -gt 2; then
$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
fi
install_libdir="$2"
if test -n "$vinfo"; then
# Parse the version information argument.
IFS="${IFS= }"; save_ifs="$IFS"; IFS=':'
set dummy $vinfo
IFS="$save_ifs"
if test -n "$5"; then
echo "$progname: too many parameters to \`-version-info'" 1>&2
echo "$help" 1>&2
$echo "$modename: too many parameters to \`-version-info'" 1>&2
$echo "$help" 1>&2
exit 1
fi
......@@ -645,8 +909,8 @@ if test -z "$show_help"; then
case "$current" in
0 | [1-9] | [1-9][0-9]*) ;;
*)
echo "$progname: CURRENT \`$current' is not a nonnegative integer" 1>&2
echo "$progname: \`$vinfo' is not valid version information" 1>&2
$echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
$echo "$modename: \`$vinfo' is not valid version information" 1>&2
exit 1
;;
esac
......@@ -654,8 +918,8 @@ if test -z "$show_help"; then
case "$revision" in
0 | [1-9] | [1-9][0-9]*) ;;
*)
echo "$progname: REVISION \`$revision' is not a nonnegative integer" 1>&2
echo "$progname: \`$vinfo' is not valid version information" 1>&2
$echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
$echo "$modename: \`$vinfo' is not valid version information" 1>&2
exit 1
;;
esac
......@@ -663,15 +927,15 @@ if test -z "$show_help"; then
case "$age" in
0 | [1-9] | [1-9][0-9]*) ;;
*)
echo "$progname: AGE \`$age' is not a nonnegative integer" 1>&2
echo "$progname: \`$vinfo' is not valid version information" 1>&2
$echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
$echo "$modename: \`$vinfo' is not valid version information" 1>&2
exit 1
;;
esac
if test $age -gt $current; then
echo "$progname: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
echo "$progname: \`$vinfo' is not valid version information" 1>&2
$echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
$echo "$modename: \`$vinfo' is not valid version information" 1>&2
exit 1
fi
......@@ -682,15 +946,15 @@ if test -z "$show_help"; then
linux)
version_vars="$version_vars major versuffix"
major=`expr $current - $age`
versuffix="$major.$age.$revision"
major=.`expr $current - $age`
versuffix=".$major.$age.$revision"
;;
osf)
version_vars="$version_vars versuffix verstring"
major=`expr $current - $age`
versuffix="$current.$age.$revision"
verstring="$versuffix"
major=.`expr $current - $age`
versuffix=."$current.$age.$revision"
verstring="$current.$age.$revision"
# Add in all the interfaces that we are compatible with.
loop=$age
......@@ -706,62 +970,121 @@ if test -z "$show_help"; then
sunos)
version_vars="$version_vars major versuffix"
major="$current"
versuffix="$current.$revision"
major=."$current"
versuffix=."$current.$revision"
;;
windows)
# Like Linux, but with '-' rather than '.', since we only
# want one extension on Windows 95.
version_vars="$version_vars major versuffix"
major=`expr $current - $age`
versuffix="-$major-$age-$revision"
;;
*)
$echo "$modename: unknown library version type \`$version_type'" 1>&2
echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
exit 1
;;
esac
else
# No version information.
version_vars=
case "$version_type" in
none) ;;
linux)
version_vars="$version_vars versuffix major"
major=
versuffix=
;;
osf)
version_vars="$version_vars versuffix verstring"
major=
versuffix=
verstring=":0.0"
;;
sunos)
version_vars="$version_vars major versuffix"
major=
versuffix=
;;
windows)
# Like Linux, but with '-' rather than '.', and with a leading
# '-', since we only want one extension on Windows 95.
version_vars="$version_vars major versuffix"
major=
versuffix=
;;
*)
echo "$progname: unknown library version type \`$version_type'" 1>&2
$echo "$modename: unknown library version type \`$version_type'" 1>&2
echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
exit 1
;;
esac
fi
# Create the output directory, or remove our outputs if we need to.
if test -d $objdir; then
$show "$rm $objdir/$libname.*"
$run $rm $objdir/$libname.*
$show "$rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*"
$run $rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*
else
$show "$mkdir $objdir"
$run $mkdir $objdir || exit $?
$run $mkdir $objdir
status=$?
if test $status -eq 0 || test -d $objdir; then :
else
exit $status
fi
fi
# Check to see if the archive will have undefined symbols.
if test "$allow_undefined" = yes; then
if test "$allow_undefined_flag" = unsupported; then
echo "$progname: warning: undefined symbols not allowed in $host shared libraries" 1>&2
$echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
build_libtool_libs=no
build_old_libs=yes
fi
else
# Clear the flag.
allow_undefined_flag=
# Don't allow undefined symbols.
allow_undefined_flag="$no_undefined_flag"
fi
# Add libc to deplibs on all systems.
dependency_libs="$deplibs"
deplibs="$deplibs -lc"
if test "$build_libtool_libs" = yes; then
# Get the real and link names of the library.
library_names=`eval echo \"$library_names_spec\"`
eval library_names=\"$library_names_spec\"
set dummy $library_names
realname="$2"
shift; shift
if test -n "$soname_spec"; then
soname=`eval echo \"$soname_spec\"`
eval soname=\"$soname_spec\"
else
soname="$realname"
fi
lib="$objdir/$realname"
linknames=
for link
do
linknames="$linknames $link"
done
# Use standard objects if they are PIC.
test -z "$pic_flag" && libobjs=`echo "$libobjs " | sed 's/\.lo /.o /g; s/ $//g'`
test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//g'`
# Do each of the archive commands.
cmds=`eval echo \"$archive_cmds\"`
eval cmds=\"$archive_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
......@@ -771,9 +1094,11 @@ if test -z "$show_help"; then
IFS="$save_ifs"
# Create links to the real library.
for link in $linknames; do
$show "(cd $objdir && $LN_S $realname $link)"
$run eval "(cd $objdir && $LN_S $realname $link)" || exit $?
for linkname in $linknames; do
if test "$realname" != "$linkname"; then
$show "(cd $objdir && $LN_S $realname $linkname)"
$run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $?
fi
done
# If -export-dynamic was specified, set the dlname.
......@@ -782,34 +1107,48 @@ if test -z "$show_help"; then
dlname="$soname"
fi
fi
# Now set the variables for building old libraries.
oldlib="$objdir/$libname.a"
;;
*.lo | *.o)
if test -n "$link_against_libtool_libs"; then
echo "$progname: error: cannot link libtool libraries into reloadable objects" 1>&2
$echo "$modename: error: cannot link libtool libraries into reloadable objects" 1>&2
exit 1
fi
if test -n "$deplibs"; then
echo "$progname: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2
$echo "$modename: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2
fi
if test -n "$install_libdir"; then
echo "$progname: warning: \`-rpath' is ignored while creating objects" 1>&2
if test -n "$dlfiles$dlprefiles"; then
$echo "$modename: warning: \`-dlopen' is ignored while creating objects" 1>&2
# Nullify the symbol file.
compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
fi
if test -n "$rpath"; then
$echo "$modename: warning: \`-rpath' is ignored while creating objects" 1>&2
fi
if test -n "$vinfo"; then
echo "$progname: warning: \`-version-info' is ignored while creating objects" 1>&2
$echo "$modename: warning: \`-version-info' is ignored while creating objects" 1>&2
fi
if test -n "$release"; then
$echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2
fi
case "$output" in
*.lo)
if test -n "$objs"; then
echo "$progname: cannot build library object \`$output' from non-libtool objects" 1>&2
$echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
exit 1
fi
libobj="$output"
obj=`echo "$output" | sed 's/\.lo$/.o/'`
obj=`$echo "X$output" | $Xsed -e 's/\.lo$/.o/'`
;;
*)
libobj=
......@@ -821,10 +1160,10 @@ if test -z "$show_help"; then
$run $rm $obj $libobj
# Create the old-style object.
reload_objs="$objs"`echo "$libobjs " | sed 's/[^ ]*\.a //g; s/\.lo /.o /g; s/ $//g'`
reload_objs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'`
output="$obj"
cmds=`eval echo \"$reload_cmds\"`
eval cmds=\"$reload_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
......@@ -848,7 +1187,7 @@ if test -z "$show_help"; then
# Only do commands if we really have different PIC objects.
reload_objs="$libobjs"
output="$libobj"
cmds=`eval echo \"$reload_cmds\"`
eval cmds=\"$reload_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
......@@ -866,50 +1205,224 @@ if test -z "$show_help"; then
;;
*)
if test -n "$install_libdir"; then
echo "$progname: warning: \`-rpath' is ignored while linking programs" 1>&2
fi
if test -n "$vinfo"; then
echo "$progname: warning: \`-version-info' is ignored while linking programs" 1>&2
$echo "$modename: warning: \`-version-info' is ignored while linking programs" 1>&2
fi
if test -n "$libobjs"; then
# Transform all the library objects into standard objects.
compile_command=`echo "$compile_command " | sed 's/\.lo /.o /g; s/ $//'`
finalize_command=`echo "$finalize_command " | sed 's/\.lo /.o /g; s/ $//'`
if test -n "$release"; then
$echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2
fi
if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
# Replace the output file specification.
compile_command=`echo "$compile_command" | sed 's%@OUTPUT@%'"$output"'%g'`
finalize_command=`echo "$finalize_command" | sed 's%@OUTPUT@%'"$output"'%g'`
# We have no uninstalled library dependencies, so finalize right now.
$show "$compile_command"
$run $compile_command
status=$?
# If we failed to link statically, then try again.
if test $status -ne 0 && test -n "$link_static"; then
echo "$progname: cannot link \`$output' statically; retrying semi-dynamically" 1>&2
compile_command=`echo "$compile_command " | sed "s% $link_static % %;s/ $//"`
$show "$finalize_command"
$run $finalize_command
status=$?
if test -n "$rpath"; then
# If the user specified any rpath flags, then add them.
for libdir in $rpath; do
if test -n "$hardcode_libdir_flag_spec"; then
if test -n "$hardcode_libdir_separator"; then
if test -z "$hardcode_libdirs"; then
# Put the magic libdir with the hardcode flag.
hardcode_libdirs="$libdir"
libdir="@HARDCODE_LIBDIRS@"
else
# Just accumulate the unique libdirs.
case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
*"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
;;
*)
hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
;;
esac
libdir=
fi
exit $status
fi
# Replace the output file specification.
compile_command=`echo "$compile_command" | sed 's%@OUTPUT@%'"$objdir/$output"'%g'`
finalize_command=`echo "$finalize_command" | sed 's%@OUTPUT@%'"$objdir/$output"'T%g'`
if test -n "$libdir"; then
eval flag=\"$hardcode_libdir_flag_spec\"
# Create the binary in the object directory, then wrap it.
if test -d $objdir; then :
else
$show "$mkdir $objdir"
$run $mkdir $objdir || exit $?
compile_command="$compile_command $flag"
finalize_command="$finalize_command $flag"
fi
elif test -n "$runpath_var"; then
case "$perm_rpath " in
*" $libdir "*) ;;
*) perm_rpath="$perm_rpath $libdir" ;;
esac
fi
done
fi
# Substitute the hardcoded libdirs into the compile commands.
if test -n "$hardcode_libdir_separator"; then
compile_command=`$echo "X$compile_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"`
finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"`
fi
if test -n "$libobjs" && test "$build_old_libs" = yes; then
# Transform all the library objects into standard objects.
compile_command=`$echo "X$compile_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'`
finalize_command=`$echo "X$finalize_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'`
fi
if test "$export_dynamic" = yes && test -n "$NM" && test -n "$global_symbol_pipe"; then
dlsyms="${output}S.c"
else
dlsyms=
fi
if test -n "$dlsyms"; then
# Add our own program objects to the preloaded list.
dlprefiles=`$echo "X$objs$dlprefiles " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'`
# Discover the nlist of each of the dlfiles.
nlist="$objdir/${output}.nm"
if test -d $objdir; then
$show "$rm $nlist ${nlist}T"
$run $rm "$nlist" "${nlist}T"
else
$show "$mkdir $objdir"
$run $mkdir $objdir
status=$?
if test $status -eq 0 || test -d $objdir; then :
else
exit $status
fi
fi
for arg in $dlprefiles; do
$show "extracting global C symbols from \`$arg'"
$run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
done
# Parse the name list into a source file.
$show "creating $objdir/$dlsyms"
if test -z "$run"; then
# Make sure we at least have an empty file.
test -f "$nlist" || : > "$nlist"
# 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 "$nlist"T
count=-1
fi
case "$dlsyms" in
"") ;;
*.c)
$echo > "$objdir/$dlsyms" "\
/* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */
/* Generated by $PROGRAM - GNU $PACKAGE $VERSION */
#ifdef __cplusplus
extern \"C\" {
#endif
/* Prevent the only kind of declaration conflicts we can make. */
#define dld_preloaded_symbol_count some_other_symbol
#define dld_preloaded_symbols some_other_symbol
/* External symbol declarations for the compiler. */\
"
if test -f "$nlist"; then
sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms"
else
echo '/* NONE */' >> "$objdir/$dlsyms"
fi
$echo >> "$objdir/$dlsyms" "\
#undef dld_preloaded_symbol_count
#undef dld_preloaded_symbols
#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[] =
{\
"
if test -f "$nlist"; then
sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms"
fi
$echo >> "$objdir/$dlsyms" "\
{0, (__ptr_t) 0}
};
#ifdef __cplusplus
}
#endif\
"
;;
*)
$echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
exit 1
;;
esac
fi
# Now compile the dynamic symbol file.
$show "(cd $objdir && $CC -c$no_builtin_flag \"$dlsyms\")"
$run eval '(cd $objdir && $CC -c$no_builtin_flag "$dlsyms")' || exit $?
# Transform the symbol file into the correct name.
compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"`
finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"`
elif test "$export_dynamic" != yes; then
test -n "$dlfiles$dlprefiles" && $echo "$modename: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2
else
# We keep going just in case the user didn't refer to
# dld_preloaded_symbols. The linker will fail if global_symbol_pipe
# really was required.
$echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
# Nullify the symbol file.
compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
fi
if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
# Replace the output file specification.
compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
# We have no uninstalled library dependencies, so finalize right now.
$show "$compile_command"
$run eval "$compile_command"
exit $?
fi
# Replace the output file specification.
compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'%g'`
finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'T%g'`
# Create the binary in the object directory, then wrap it.
if test -d $objdir; then :
else
$show "$mkdir $objdir"
$run $mkdir $objdir
status=$?
if test $status -eq 0 || test -d $objdir; then :
else
exit $status
fi
fi
if test -n "$shlibpath_var"; then
......@@ -917,7 +1430,7 @@ if test -z "$show_help"; then
rpath=
for dir in $temp_rpath; do
case "$dir" in
/*)
/* | [A-Za-z]:\\*)
# Absolute path.
rpath="$rpath$dir:"
;;
......@@ -940,7 +1453,7 @@ if test -z "$show_help"; then
finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
fi
if test -n "$perm_rpath"; then
if test -n "$runpath_var" && test -n "$perm_rpath"; then
# We should set the runpath_var.
rpath=
for dir in $perm_rpath; do
......@@ -950,27 +1463,31 @@ if test -z "$show_help"; then
finalize_command="$runpath_var=\"$rpath\$$runpath_var\" $finalize_command"
fi
case "$hardcode_action" in
relink)
if test "$hardcode_action" = relink; then
# AGH! Flame the AIX and HP-UX people for me, will ya?
echo "$progname: warning: using a buggy system linker" 1>&2
echo "$progname: relinking will be required before \`$output' can be installed" 1>&2
;;
esac
$echo "$modename: warning: using a buggy system linker" 1>&2
$echo "$modename: relinking will be required before \`$output' can be installed" 1>&2
fi
$show "$compile_command"
$run eval "$compile_command" || exit $?
# Now create the wrapper script.
echo "creating $output"
$show "creating $output"
# Quote the finalize command for shipping.
finalize_command=`$echo "X$finalize_command" | $Xsed -e "$sed_quote_subst"`
# Quote $echo for shipping.
qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
# Only actually do things if our run command is non-null.
if test -z "$run"; then
$rm $output
trap "$rm $output; exit 1" 1 2 15
cat > $output <<EOF
#! /bin/sh
$echo > $output "\
#! $SHELL
# $output - temporary wrapper script for $objdir/$output
# Generated by $PROGRAM - GNU $PACKAGE $VERSION
......@@ -981,91 +1498,112 @@ if test -z "$show_help"; then
# This wrapper script should never be moved out of \``pwd`'.
# If it is, it will not operate correctly.
# 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='$sed_quote_subst'
# 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
# This environment variable determines our operation mode.
if test "\$libtool_install_magic" = "$magic"; then
if test \"\$libtool_install_magic\" = \"$magic\"; then
# install mode needs the following variables:
link_against_libtool_libs='$link_against_libtool_libs'
finalize_command='$finalize_command'
finalize_command=\"$finalize_command\"
else
# When we are sourced in execute mode, \$file and \$echo are already set.
if test \"\$libtool_execute_magic\" = \"$magic\"; then :
else
echo=\"$qecho\"
file=\"\$0\"
fi\
"
$echo >> $output "\
# Find the directory that this script lives in.
thisdir=\`echo \$0 | sed 's%/[^/]*$%%'\`
test "x\$thisdir" = "x\$0" && thisdir=.
thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
test \"x\$thisdir\" = \"x\$file\" && thisdir=.
# Follow symbolic links until we get to the real thisdir.
file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
while test -n \"\$file\"; do
destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
# If there was a directory component, then change thisdir.
if test \"x\$destdir\" != \"x\$file\"; then
case \"\$destdir\" in
/* | [A-Za-z]:\\*) thisdir=\"\$destdir\" ;;
*) thisdir=\"\$thisdir/\$destdir\" ;;
esac
fi
# Try to get the absolute directory name.
absdir=\`cd "\$thisdir" && pwd\`
test -n "\$absdir" && thisdir="\$absdir"
file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
done
progdir="\$thisdir/$objdir"
program="$output"
# Try to get the absolute directory name.
absdir=\`cd \"\$thisdir\" && pwd\`
test -n \"\$absdir\" && thisdir=\"\$absdir\"
if test -f "\$progdir/\$program"; then
# Run the actual program with our arguments.
args=
for arg
do
# Quote arguments (to preserve shell metacharacters).
args="\$args '\$arg'"
done
progdir=\"\$thisdir/$objdir\"
program='$output'
# Export the path to the program.
PATH="\$progdir:\$PATH"
export PATH
EOF
if test -f \"\$progdir/\$program\"; then"
# Export our shlibpath_var if we have one.
if test -n "$shlibpath_var" && test -n "$temp_rpath"; then
cat >> $output <<EOF
$echo >> $output "\
# Add our own library path to $shlibpath_var
$shlibpath_var="$temp_rpath\$$shlibpath_var"
$shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
# Some systems cannot cope with colon-terminated $shlibpath_var
$shlibpath_var=\`echo \$$shlibpath_var | sed -e 's/:*\$//'\`
$shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/:*\$//'\`
export $shlibpath_var
EOF
"
fi
cat >> $output <<EOF
$echo >> $output "\
if test \"\$libtool_execute_magic\" != \"$magic\"; then
# Run the actual program with our arguments.
eval "exec \$program \$args"
# Export the path to the program.
PATH=\"\$progdir:\$PATH\"
export PATH
echo "\$0: cannot exec \$program \$args"
exec \$program \${1+\"\$@\"}
\$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
exit 1
fi
else
# The program doesn't exist.
echo "\$0: error: \$progdir/\$program does not exist" 1>&2
echo "This script is just a wrapper for \$program." 1>&2
echo "See the $PACKAGE documentation for more information." 1>&2
\$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
\$echo \"This script is just a wrapper for \$program.\" 1>&2
echo \"See the $PACKAGE documentation for more information.\" 1>&2
exit 1
fi
fi
EOF
fi\
"
chmod +x $output
fi
exit 0
;;
esac
# See if we need to build an old-fashioned archive.
if test "$build_old_libs" = "yes"; then
# Now set the variables for building old libraries.
oldlib="$objdir/$libname.a"
# Transform .lo files to .o files.
oldobjs="$objs"`echo "$libobjs " | sed 's/[^ ]*\.a //g; s/\.lo /.o /g; s/ $//g'`
oldobjs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'`
if test -d "$objdir"; then
$show "$rm $oldlib"
$run $rm $oldlib
# Do each command in the archive commands.
if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
eval cmds=\"$old_archive_from_new_cmds\"
else
$show "$mkdir $objdir"
$run $mkdir $objdir
eval cmds=\"$old_archive_cmds\"
fi
# Do each command in the archive commands.
cmds=`eval echo \"$old_archive_cmds\"`
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
......@@ -1081,11 +1619,11 @@ EOF
old_library=
test "$build_old_libs" = yes && old_library="$libname.a"
echo "creating $output"
$show "creating $output"
# Only create the output if not a dry run.
if test -z "$run"; then
cat > $output <<EOF
$echo > $output "\
# $output - a libtool library file
# Generated by $PROGRAM - GNU $PACKAGE $VERSION
......@@ -1098,14 +1636,17 @@ library_names='$library_names'
# The name of the static archive.
old_library='$old_library'
# Libraries that this one depends upon.
dependency_libs='$dependency_libs'
# Version information for $libname.
current=$current
age=$age
revision=$revision
# Directory that this library needs to be installed in:
libdir='$install_libdir'
EOF
libdir='$install_libdir'\
"
fi
# Do a symbolic link so that the libtool archive can be found in
......@@ -1119,24 +1660,43 @@ EOF
# libtool install mode
install)
progname="$progname: install"
# The first argument is the name of the installation program.
install_prog="$nonopt"
modename="$modename: install"
# CYGNUS LOCAL: Handle /bin/sh at the start.
if test "$install_prog" = "/bin/sh"; then
install_prog=$1
# There may be an optional sh(1) argument at the beginning of
# install_prog (especially on Windows NT).
if test "$nonopt" = "$SHELL"; then
# Aesthetically quote it.
arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
case "$arg" in
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
arg="\"$arg\""
;;
esac
install_prog="$arg "
arg="$1"
shift
else
install_prog=
arg="$nonopt"
fi
# The real first argument should be the name of the installation program.
# Aesthetically quote it.
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
case "$arg" in
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
arg="\"$arg\""
;;
esac
install_prog="$install_prog$arg"
# We need to accept at least all the BSD install flags.
dest=
files=
opts=
prev=
install_type=
isdir=
isdir=no
stripme=
for arg
do
......@@ -1168,61 +1728,69 @@ EOF
fi
;;
esac
# Aesthetically quote the argument.
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
case "$arg" in
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
arg="\"$arg\""
;;
esac
install_prog="$install_prog $arg"
done
if test -z "$install_prog"; then
echo "$progname: you must specify an install program" 1>&2
echo "$help" 1>&2
$echo "$modename: you must specify an install program" 1>&2
$echo "$help" 1>&2
exit 1
fi
if test -n "$prev"; then
echo "$progname: the \`$prev' option requires an argument" 1>&2
echo "$help" 1>&2
$echo "$modename: the \`$prev' option requires an argument" 1>&2
$echo "$help" 1>&2
exit 1
fi
if test -z "$files"; then
if test -z "$dest"; then
echo "$progname: no file or destination specified" 1>&2
$echo "$modename: no file or destination specified" 1>&2
else
echo "$progname: you must specify a destination" 1>&2
$echo "$modename: you must specify a destination" 1>&2
fi
echo "$help" 1>&2
$echo "$help" 1>&2
exit 1
fi
# Strip any trailing slash from the destination.
dest=`echo "$dest" | sed 's%/$%%'`
dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
# Check to see that the destination is a directory.
test -d "$dest" && isdir=yes
if test -n "$isdir"; then
if test "$isdir" = yes; then
destdir="$dest"
destname=
else
destdir=`echo "$dest" | sed 's%/[^/]*$%%'`
test "$destdir" = "$dest" && destdir=.
destname=`echo "$dest" | sed 's%^.*/%%'`
destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
test "X$destdir" = "X$dest" && destdir=.
destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
# Not a directory, so check to see that there is only one file specified.
set dummy $files
if test $# -gt 2; then
echo "$progname: \`$dest' is not a directory" 1>&2
echo "$help" 1>&2
$echo "$modename: \`$dest' is not a directory" 1>&2
$echo "$help" 1>&2
exit 1
fi
fi
case "$destdir" in
/*) ;;
/* | [A-Za-z]:\\*) ;;
*)
for file in $files; do
case "$file" in
*.lo) ;;
*)
echo "$progname: \`$destdir' must be an absolute directory name" 1>&2
echo "$help" 1>&2
$echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
$echo "$help" 1>&2
exit 1
;;
esac
......@@ -1230,6 +1798,10 @@ EOF
;;
esac
# This variable tells wrapper scripts just to set variables rather
# than running their programs.
libtool_install_magic="$magic"
staticlibs=
future_libdirs=
current_libdirs=
......@@ -1244,10 +1816,10 @@ EOF
*.la)
# Check to see that this really is a libtool archive.
if egrep "^# Generated by $PROGRAM" $file >/dev/null 2>&1; then :
if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
else
echo "$progname: \`$file' is not a valid libtool archive" 1>&2
echo "$help" 1>&2
$echo "$modename: \`$file' is not a valid libtool archive" 1>&2
$echo "$help" 1>&2
exit 1
fi
......@@ -1255,26 +1827,26 @@ EOF
old_library=
# If there is no directory component, then add one.
case "$file" in
*/*) . $file ;;
*/* | *\\*) . $file ;;
*) . ./$file ;;
esac
# Add the libdir to current_libdirs if it is the destination.
if test "$destdir" = "$libdir"; then
if test "X$destdir" = "X$libdir"; then
case "$current_libdirs " in
"* $libdir *") ;;
*" $libdir "*) ;;
*) current_libdirs="$current_libdirs $libdir" ;;
esac
else
# Note the libdir as a future libdir.
case "$future_libdirs " in
"* $libdir *") ;;
*" $libdir "*) ;;
*) future_libdirs="$future_libdirs $libdir" ;;
esac
fi
dir="`echo "$file" | sed 's%/[^/]*$%%'`/"
test "$dir" = "$file/" && dir=
dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
test "X$dir" = "X$file/" && dir=
dir="$dir$objdir"
# See the names of the shared library.
......@@ -1289,16 +1861,6 @@ EOF
$run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
test "X$dlname" = "X$realname" && dlname=
# Support stripping libraries.
if test -n "$stripme"; then
if test -n "$striplib"; then
$show "$striplib $destdir/$realname"
$run $striplib $destdir/$realname || exit $?
else
echo "$progname: warning: no library stripping program" 1>&2
fi
fi
if test $# -gt 0; then
# Delete the old symlinks.
rmcmd="$rm"
......@@ -1326,7 +1888,7 @@ EOF
# Do each command in the postinstall commands.
lib="$destdir/$realname"
cmds=`eval echo \"$postinstall_cmds\"`
eval cmds=\"$postinstall_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
......@@ -1337,9 +1899,9 @@ EOF
fi
# Install the pseudo-library for information purposes.
name=`echo "$file" | sed 's%^.*/%%'`
name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
$show "$install_prog $file $destdir/$name"
$run $install_prog $file $destdir/$name || exit $?
$run eval "$install_prog $file $destdir/$name" || exit $?
# Maybe install the static library, too.
test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
......@@ -1352,22 +1914,22 @@ EOF
if test -n "$destname"; then
destfile="$destdir/$destname"
else
destfile=`echo "$file" | sed 's%^.*/%%;'`
destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
destfile="$destdir/$destfile"
fi
# Deduce the name of the destination old-style object file.
case "$destfile" in
*.lo)
staticdest=`echo "$destfile" | sed 's/\.lo$/\.o/;'`
staticdest=`$echo "X$destfile" | $Xsed -e 's/\.lo$/.o/'`
;;
*.o)
staticdest="$destfile"
destfile=
;;
*)
echo "$progname: cannot copy a libtool object to \`$destfile'" 1>&2
echo "$help" 1>&2
$echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
$echo "$help" 1>&2
exit 1
;;
esac
......@@ -1375,38 +1937,43 @@ EOF
# Install the libtool object if requested.
if test -n "$destfile"; then
$show "$install_prog $file $destfile"
$run $install_prog $file $destfile || exit $?
$run eval "$install_prog $file $destfile" || exit $?
fi
# Install the old object if enabled.
if test "$build_old_libs" = yes; then
# Deduce the name of the old-style object file.
staticobj=`echo "$file" | sed 's/\.lo$/\.o/;'`
staticobj=`$echo "X$file" | $Xsed -e 's/\.lo$/.o/'`
$show "$install_prog $staticobj $staticdest"
$run $install_prog $staticobj $staticdest || exit $?
$run eval "$install_prog \$staticobj \$staticdest" || exit $?
fi
exit 0
;;
*)
# Figure out destination file name, if it wasn't already specified.
if test -n "$destname"; then
destfile="$destdir/$destname"
else
destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
destfile="$destdir/$destfile"
fi
# Do a test to see if this is really a libtool program.
if egrep "^# Generated by $PROGRAM" $file >/dev/null 2>&1; then
# This variable tells wrapper scripts just to set variables rather
# than running their programs.
libtool_install_magic="$magic"
if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
link_against_libtool_libs=
finalize_command=
# If there is no directory component, then add one.
case "$file" in
*/*) . $file ;;
*/* | *\\*) . $file ;;
*) . ./$file ;;
esac
# Check the variables that should have been set.
if test -z "$link_against_libtool_libs" || test -z "$finalize_command"; then
echo "$progname: invalid libtool wrapper script \`$file'" 1>&2
$echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
exit 1
fi
......@@ -1417,71 +1984,56 @@ EOF
if test -f "$lib"; then
# If there is no directory component, then add one.
case "$lib" in
*/*) . $lib ;;
*/* | *\\*) . $lib ;;
*) . ./$lib ;;
esac
fi
libfile="$libdir/`echo "$lib" | sed 's%^.*/%%g'`"
libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
if test -z "$libdir"; then
echo "$progname: warning: \`$lib' contains no -rpath information" 1>&2
$echo "$modename: warning: \`$lib' contains no -rpath information" 1>&2
elif test -f "$libfile"; then :
else
echo "$progname: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
$echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
finalize=no
fi
done
if test "$hardcode_action" = relink; then
if test "$finalize" = yes; then
echo "$progname: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2
$echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2
$show "$finalize_command"
if $run $finalize_command; then :
if $run eval "$finalize_command"; then :
else
echo "$progname: error: relink \`$file' with the above command before installing it" 1>&2
$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
continue
fi
file="$objdir/$file"T
else
echo "$progname: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2
$echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2
fi
else
# Install the binary that we compiled earlier.
dir=`echo "$file" | sed 's%/[^/]*$%%'`
if test "$file" = "$dir"; then
file="$objdir/$file"
else
file="$dir/$objdir/`echo "$file" | sed 's%^.*/%%'`"
fi
file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
fi
fi
$show "$install_prog$stripme $file $dest"
$run $install_prog$stripme $file $dest || exit $?
$show "$install_prog$stripme $file $destfile"
$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
;;
esac
done
for file in $staticlibs; do
name=`echo "$file" | sed 's%^.*/%%'`
name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
# Set up the ranlib parameters.
oldlib="$destdir/$name"
$show "$install_prog $file $oldlib"
$run $install_prog $file $oldlib || exit $?
# Support stripping libraries.
if test -n "$stripme"; then
if test -n "$old_striplib"; then
$show "$old_striplib $oldlib"
$run $old_striplib $oldlib || exit $?
else
echo "$progname: warning: no static library stripping program" 1>&2
fi
fi
$run eval "$install_prog \$file \$oldlib" || exit $?
# Do each command in the postinstall commands.
cmds=`eval echo \"$old_postinstall_cmds\"`
eval cmds=\"$old_postinstall_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
......@@ -1492,106 +2044,224 @@ EOF
done
if test -n "$future_libdirs"; then
echo "$progname: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
$echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
fi
if test -n "$current_libdirs"; then
# Maybe just do a dry run.
test -n "$run" && current_libdirs=" -n$current_libdirs"
exec $0 --finish$current_libdirs
exec $SHELL $0 --finish$current_libdirs
exit 1
fi
exit 0
;;
# libtool dlname mode
dlname)
progname="$progname: dlname"
ltlibs="$nonopt"
for lib
# libtool finish mode
finish)
modename="$modename: finish"
libdirs="$nonopt"
admincmds=
if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
for dir
do
ltlibs="$ltlibs $lib"
libdirs="$libdirs $dir"
done
if test -z "$ltlibs"; then
echo "$progname: you must specify at least one LTLIBRARY" 1>&2
echo "$help" 1>&2
for libdir in $libdirs; do
if test -n "$finish_cmds"; then
# Do each command in the finish commands.
eval cmds=\"$finish_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
$show "$cmd"
$run eval "$cmd" || admincmds="$admincmds
$cmd"
done
IFS="$save_ifs"
fi
if test -n "$finish_eval"; then
# Do the single finish_eval.
eval cmds=\"$finish_eval\"
$run eval "$cmds" || admincmds="$admincmds
$cmds"
fi
done
fi
echo "----------------------------------------------------------------------"
echo "Libraries have been installed in:"
for libdir in $libdirs; do
echo " $libdir"
done
echo
echo "To link against installed libraries in a given directory, LIBDIR,"
echo "you must use the \`-LLIBDIR' flag during linking."
echo
echo " You will also need to do at least one of the following:"
if test -n "$shlibpath_var"; then
echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
echo " during execution"
fi
if test -n "$runpath_var"; then
echo " - add LIBDIR to the \`$runpath_var' environment variable"
echo " during linking"
fi
if test -n "$hardcode_libdir_flag_spec"; then
libdir=LIBDIR
eval flag=\"$hardcode_libdir_flag_spec\"
echo " - use the \`$flag' linker flag"
fi
if test -n "$admincmds"; then
echo " - have your system administrator run these commands:$admincmds"
fi
if test -f /etc/ld.so.conf; then
echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
fi
echo
echo "See any operating system documentation about shared libraries for"
echo "more information, such as the ld(1) and ld.so(8) manual pages."
echo "----------------------------------------------------------------------"
exit 0
;;
# libtool execute mode
execute)
modename="$modename: execute"
# The first argument is the command name.
cmd="$nonopt"
if test -z "$cmd"; then
$echo "$modename: you must specify a COMMAND" 1>&2
$echo "$help"
exit 1
fi
# Now check to make sure each one is a valid libtool library.
status=0
for lib in $ltlibs; do
dlname=
libdir=
library_names=
# Handle -dlopen flags immediately.
for file in $execute_dlfiles; do
if test -f "$file"; then :
else
$echo "$modename: \`$file' is not a file" 1>&2
$echo "$help" 1>&2
exit 1
fi
dir=
case "$file" in
*.la)
# Check to see that this really is a libtool archive.
if egrep "^# Generated by $PROGRAM" $arg >/dev/null 2>&1; then :
if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
else
echo "$progname: \`$arg' is not a valid libtool archive" 1>&2
status=1
continue
$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
$echo "$help" 1>&2
exit 1
fi
# Read the libtool library.
dlname=
library_names=
# If there is no directory component, then add one.
case "$arg" in
*/*) . $arg ;;
*) . ./$arg ;;
case "$file" in
*/* | *\\*) . $file ;;
*) . ./$file ;;
esac
if test -z "$libdir"; then
echo "$progname: \`$arg' contains no -rpath information" 1>&2
status=1
elif test -n "$dlname"; then
echo "$libdir/$dlname"
elif test -z "$library_names"; then
echo "$progname: \`$arg' is not a shared library" 1>&2
status=1
# Skip this library if it cannot be dlopened.
if test -z "$dlname"; then
# Warn if it was a shared library.
test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
continue
fi
dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
test "X$dir" = "X$file" && dir=.
if test -f "$dir/$objdir/$dlname"; then
dir="$dir/$objdir"
else
echo "$progname: \`$arg' was not linked with \`-export-dynamic'" 1>&2
status=1
$echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
exit 1
fi
done
exit $status
;;
# libtool finish mode
finish)
progname="$progname: finish"
libdirs="$nonopt"
*.lo)
# Just add the directory containing the .lo file.
dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
test "X$dir" = "X$file" && dir=.
;;
if test -n "$finish_cmds" && test -n "$libdirs"; then
for dir
do
libdirs="$libdirs $dir"
done
*)
$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
continue
;;
esac
for libdir in $libdirs; do
# Do each command in the postinstall commands.
cmds=`eval echo \"$finish_cmds\"`
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
$show "$cmd"
$run eval "$cmd"
done
IFS="$save_ifs"
done
# Get the absolute pathname.
absdir=`cd "$dir" && pwd`
test -n "$absdir" && dir="$absdir"
# Now add the directory to shlibpath_var.
if eval "test -z \"\$$shlibpath_var\""; then
eval "$shlibpath_var=\"\$dir\""
else
eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
fi
done
echo "To link against installed libraries in LIBDIR, users may have to:"
if test -n "$shlibpath_var"; then
echo " - add LIBDIR to their \`$shlibpath_var' environment variable"
# This variable tells wrapper scripts just to set shlibpath_var
# rather than running their programs.
libtool_execute_magic="$magic"
# Check if any of the arguments is a wrapper script.
args=
for file
do
case "$file" in
-*) ;;
*)
# Do a test to see if this is really a libtool program.
if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
# If there is no directory component, then add one.
case "$file" in
*/* | *\\*) . $file ;;
*) . ./$file ;;
esac
# Transform arg to wrapped name.
file="$progdir/$program"
fi
echo " - use the \`-LLIBDIR' linker flag"
;;
esac
# Quote arguments (to preserve shell metacharacters).
file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
args="$args \"$file\""
done
if test -z "$run"; then
# Export the shlibpath_var.
eval "export $shlibpath_var"
# Now actually exec the command.
eval "exec \$cmd$args"
$echo "$modename: cannot exec \$cmd$args"
exit 1
else
# Display what would be done.
eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
$echo "export $shlibpath_var"
$echo "$cmd$args"
exit 0
fi
;;
# libtool uninstall mode
uninstall)
progname="$progname: uninstall"
modename="$modename: uninstall"
rm="$nonopt"
files=
......@@ -1604,22 +2274,22 @@ EOF
done
if test -z "$rm"; then
echo "$progname: you must specify an RM program" 1>&2
echo "$help" 1>&2
$echo "$modename: you must specify an RM program" 1>&2
$echo "$help" 1>&2
exit 1
fi
for file in $files; do
dir=`echo "$file" | sed -e 's%/[^/]*$%%'`
test "$dir" = "$file" && dir=.
name=`echo "$file" | sed -e 's%^.*/%%'`
dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
test "X$dir" = "X$file" && dir=.
name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
rmfiles="$file"
case "$name" in
*.la)
# Possibly a libtool archive, so verify it.
if egrep "^# Generated by $PROGRAM" $file >/dev/null 2>&1; then
if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
. $dir/$name
# Delete the libtool libraries and symlinks.
......@@ -1630,67 +2300,102 @@ EOF
test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname"
test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
$show "$rm $rmfiles"
$run $rm $rmfiles
if test -n "$library_names"; then
# Do each command in the postuninstall commands.
eval cmds=\"$postuninstall_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
$show "$cmd"
$run eval "$cmd"
done
IFS="$save_ifs"
fi
if test -n "$old_library"; then
# Do each command in the old_postuninstall commands.
eval cmds=\"$old_postuninstall_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
$show "$cmd"
$run eval "$cmd"
done
IFS="$save_ifs"
fi
# FIXME: should reinstall the best remaining shared library.
fi
;;
*.lo)
if test "$build_old_libs" = yes; then
oldobj=`echo "$name" | sed 's/\.lo$/\.o/'`
oldobj=`$echo "X$name" | $Xsed -e 's/\.lo$/.o/'`
rmfiles="$rmfiles $dir/$oldobj"
fi
$show "$rm $rmfiles"
$run $rm $rmfiles
;;
esac
*)
$show "$rm $rmfiles"
$run $rm $rmfiles
;;
esac
done
exit 0
;;
NONE)
echo "$progname: you must specify a MODE" 1>&2
echo "$generic_help" 1>&2
"")
$echo "$modename: you must specify a MODE" 1>&2
$echo "$generic_help" 1>&2
exit 1
;;
esac
echo "$progname: invalid operation mode \`$mode'" 1>&2
echo "$generic_help" 1>&2
$echo "$modename: invalid operation mode \`$mode'" 1>&2
$echo "$generic_help" 1>&2
exit 1
fi # test -z "$show_help"
# We need to display help for each of the modes.
case "$mode" in
NONE) cat <<EOF
Usage: $progname [OPTION]... [MODE-ARG]...
"") $echo \
"Usage: $modename [OPTION]... [MODE-ARG]...
Provide generalized library-building support services.
--config show all configuration variables
--debug enable verbose shell tracing
-n, --dry-run display commands without modifying any files
--features display configuration information and exit
--features display basic configuration information and exit
--finish same as \`--mode=finish'
--help display this help message and exit
--mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
--quiet same as \`--silent'
--silent don't print informational messages
--version print version information
MODE must be one of the following:
compile compile a source file into a libtool object
dlname print filenames to use to \`dlopen' libtool libraries
execute automatically set library path, then run a program
finish complete the installation of libtool libraries
install install libraries or executables
link create a library or an executable
uninstall remove libraries from an installed directory
MODE-ARGS vary depending on the MODE. Try \`$progname --help --mode=MODE' for
a more detailed description of MODE.
EOF
MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
a more detailed description of MODE."
exit 0
;;
compile)
cat <<EOF
Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
$echo \
"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
Compile a source file into a libtool library object.
......@@ -1699,39 +2404,44 @@ from the given SOURCEFILE.
The output file name is determined by removing the directory component from
SOURCEFILE, then substituting the C source code suffix \`.c' with the
library object suffix, \`.lo'.
EOF
library object suffix, \`.lo'."
;;
dlname)
cat <<EOF
Usage: $progname [OPTION]... --mode=dlname LTLIBRARY...
execute)
$echo \
"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
Automatically set library path, then run a program.
This mode accepts the following additional options:
-dlopen FILE add the directory containing FILE to the library path
Print filenames to use to \`dlopen' libtool libraries.
This mode sets the library path environment variable according to \`-dlopen'
flags.
Each LTLIBRARY is the name of a dynamically loadable libtool library (one that
was linked using the \`-export-dynamic' option).
If any of the ARGS are libtool executable wrappers, then they are translated
into their corresponding uninstalled binary, and any of their required library
directories are added to the library path.
The names to use are printed to standard output, one per line.
EOF
Then, COMMAND is executed, with ARGS as arguments."
;;
finish)
cat <<EOF
Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
$echo \
"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
Complete the installation of libtool libraries.
Each LIBDIR is a directory that contains libtool libraries.
The commands that this mode executes may require superuser privileges. Use
the \`--dry-run' option if you just want to see what would be executed.
EOF
the \`--dry-run' option if you just want to see what would be executed."
;;
install)
cat <<EOF
Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
$echo \
"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
Install executables or libraries.
......@@ -1739,13 +2449,12 @@ INSTALL-COMMAND is the installation command. The first component should be
either the \`install' or \`cp' program.
The rest of the components are interpreted as arguments to that command (only
BSD-compatible install options are recognized).
EOF
BSD-compatible install options are recognized)."
;;
link)
cat <<EOF
Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
$echo \
"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
Link object files or libraries together to form another library, or to
create an executable program.
......@@ -1755,13 +2464,17 @@ a program from several object files.
The following components of LINK-COMMAND are treated specially:
-allow-undefined allow a libtool library to reference undefined symbols
-all-static do not do any dynamic linking at all
-dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
-dlpreopen FILE link in FILE and add its symbols to dld_preloaded_symbols
-export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
-LLIBDIR search LIBDIR for required installed libraries
-lNAME OUTPUT-FILE requires the installed library libNAME
-no-undefined declare that a library does not refer to external symbols
-o OUTPUT-FILE create OUTPUT-FILE from the specified objects
-release RELEASE specify package release information
-rpath LIBDIR the created library will eventually be installed in LIBDIR
-static do not do any dynamic linking or shared library creation
-static do not do any dynamic linking of libtool libraries
-version-info CURRENT[:REVISION[:AGE]]
specify library version info [each variable defaults to 0]
......@@ -1778,13 +2491,12 @@ If OUTPUT-FILE ends in \`.a', then a standard library is created using \`ar'
and \`ranlib'.
If OUTPUT-FILE ends in \`.lo' or \`.o', then a reloadable object file is
created, otherwise an executable program is created.
EOF
created, otherwise an executable program is created."
;;
uninstall)
cat <<EOF
Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
$echo
"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
Remove libraries from an installation directory.
......@@ -1793,23 +2505,18 @@ RM is the name of the program to use to delete files associated with each FILE
to RM.
If FILE is a libtool library, all the files associated with it are deleted.
Otherwise, only FILE itself is deleted using RM.
EOF
Otherwise, only FILE itself is deleted using RM."
;;
*)
echo "$progname: invalid operation mode \`$mode'" 1>&2
echo "$help" 1>&2
$echo "$modename: invalid operation mode \`$mode'" 1>&2
$echo "$help" 1>&2
exit 1
;;
esac
case "$mode" in
archive|compile)
echo
echo "Try \`$progname --help' for more information about other modes."
;;
esac
echo
$echo "Try \`$modename --help' for more information about other modes."
exit 0
......
# Top-level script fragment to build everything for MPW.
Set savedir "`Directory`"
#Set Echo 1
Set ThisScript "{0}"
Set objdir ":"
Set verify 0
Set BuildTarget "none"
# Parse arguments.
Loop
Break If {#} == 0
If "{BuildTarget}" =~ /none/
Set BuildTarget "{1}"
Else
Echo Only one build target allowed, ignoring "{1}"
End If
Shift 1
End Loop
If "{BuildTarget}" =~ /none/
Set BuildTarget "all"
End If
If {verify} == 1
Echo "#" Doing "{ThisScript}" "{BuildTarget}" in "`Directory`" ...
End If
Set ranmake 0
If "`Exists Makefile`" != ""
Echo "Set Echo 1" >{BuildTarget}.makeout
Make -f Makefile {BuildTarget} >>{BuildTarget}.makeout
{BuildTarget}.makeout
Delete {BuildTarget}.makeout
Set ranmake 1
End If
If "`Exists Makefile.PPC`" != ""
Echo "Set Echo 1" >{BuildTarget}.makeout.ppc
Make -f Makefile.PPC {BuildTarget} >>{BuildTarget}.makeout.ppc
{BuildTarget}.makeout.ppc
Delete {BuildTarget}.makeout.ppc
Set ranmake 1
End If
If {ranmake} == 1
Exit
End If
# Dispatch on various pseudo-targets.
If "{BuildTarget}" =~ /all/
Echo Started `Date`
"{ThisScript}" all-gcc
"{ThisScript}" all-gdb
Echo Finished `Date`
Else If "{BuildTarget}" =~ /all-libiberty/
"{ThisScript}" do-libiberty
Else If "{BuildTarget}" =~ /all-bfd/
"{ThisScript}" do-bfd
Else If "{BuildTarget}" =~ /all-opcodes/
"{ThisScript}" do-opcodes
Else If "{BuildTarget}" =~ /all-byacc/
"{ThisScript}" do-byacc
Else If "{BuildTarget}" =~ /all-flex/
"{ThisScript}" all-libiberty
"{ThisScript}" do-flex
Else If "{BuildTarget}" =~ /all-binutils/
"{ThisScript}" all-libiberty
"{ThisScript}" all-bfd
"{ThisScript}" all-opcodes
"{ThisScript}" do-binutils
Else If "{BuildTarget}" =~ /all-gas/
"{ThisScript}" all-libiberty
"{ThisScript}" all-bfd
"{ThisScript}" all-opcodes
"{ThisScript}" do-gas
Else If "{BuildTarget}" =~ /all-gcc/
"{ThisScript}" all-libiberty
"{ThisScript}" all-gas
"{ThisScript}" all-binutils
"{ThisScript}" all-ld
"{ThisScript}" do-gcc
Else If "{BuildTarget}" =~ /all-gdb/
"{ThisScript}" all-libiberty
"{ThisScript}" all-bfd
"{ThisScript}" all-opcodes
"{ThisScript}" do-gdb
Else If "{BuildTarget}" =~ /all-grez/
"{ThisScript}" all-libiberty
"{ThisScript}" all-bfd
"{ThisScript}" do-grez
Else If "{BuildTarget}" =~ /all-ld/
"{ThisScript}" all-libiberty
"{ThisScript}" all-bfd
"{ThisScript}" all-opcodes
"{ThisScript}" do-ld
Else If "{BuildTarget}" =~ /do-byacc/
SetDirectory :byacc:
::mpw-build all
Else If "{BuildTarget}" =~ /do-flex/
SetDirectory :flex:
::mpw-build _bootstrap
::mpw-build all
Else If "{BuildTarget}" =~ /do-bfd/
SetDirectory :bfd:
::mpw-build all
Else If "{BuildTarget}" =~ /do-libiberty/
SetDirectory :libiberty:
::mpw-build all
Else If "{BuildTarget}" =~ /do-opcodes/
SetDirectory :opcodes:
::mpw-build all
Else If "{BuildTarget}" =~ /do-binutils/
SetDirectory :binutils:
::mpw-build stamps
::mpw-build all
Else If "{BuildTarget}" =~ /do-gas/
SetDirectory :gas:
::mpw-build stamps
::mpw-build all
Else If "{BuildTarget}" =~ /do-gcc/
SetDirectory :gcc:
:mpw-build all
Else If "{BuildTarget}" =~ /do-gdb/
SetDirectory :gdb:
::mpw-build all
Else If "{BuildTarget}" =~ /do-grez/
SetDirectory :grez:
::mpw-build all
Else If "{BuildTarget}" =~ /do-ld/
SetDirectory :ld:
::mpw-build all
Else If "{BuildTarget}" =~ /do-newlib/
SetDirectory :newlib:
::mpw-build all
Else If "{BuildTarget}" =~ /install/
"{ThisScript}" install-only-top
"{ThisScript}" install-binutils
"{ThisScript}" install-gas
"{ThisScript}" install-gcc
"{ThisScript}" install-ld
"{ThisScript}" install-gdb
Else If "{BuildTarget}" =~ /install-binutils/
SetDirectory :binutils:
::mpw-build install
Else If "{BuildTarget}" =~ /install-gas/
SetDirectory :gas:
::mpw-build install
Else If "{BuildTarget}" =~ /install-gcc/
SetDirectory :gcc:
:mpw-build install
Else If "{BuildTarget}" =~ /install-gdb/
SetDirectory :gdb:
::mpw-build install
Else If "{BuildTarget}" =~ /install-grez/
SetDirectory :grez:
::mpw-build install
Else If "{BuildTarget}" =~ /install-ld/
SetDirectory :ld:
::mpw-build install
Else If "{BuildTarget}" =~ /install-only/
"{ThisScript}" install-only-top
"{ThisScript}" install-only-binutils
"{ThisScript}" install-only-gas
"{ThisScript}" install-only-gcc
"{ThisScript}" install-only-gdb
"{ThisScript}" install-only-ld
Else If "{BuildTarget}" =~ /install-only-binutils/
SetDirectory :binutils:
::mpw-build install-only
Else If "{BuildTarget}" =~ /install-only-gas/
SetDirectory :gas:
::mpw-build install-only
Else If "{BuildTarget}" =~ /install-only-gcc/
SetDirectory :gcc:
:mpw-build install-only
Else If "{BuildTarget}" =~ /install-only-gdb/
SetDirectory :gdb:
::mpw-build install-only
Else If "{BuildTarget}" =~ /install-only-grez/
SetDirectory :grez:
::mpw-build install-only
Else If "{BuildTarget}" =~ /install-only-ld/
SetDirectory :ld:
::mpw-build install-only
Else If "{BuildTarget}" =~ /install-only-top/
NewFolderRecursive "{prefix}"
If "{prefix}" != "`Directory`"
Duplicate -y 'Read Me for MPW' "{prefix}"'Read Me for MPW'
Duplicate -y Install "{prefix}"Install
End If
Else
Echo {BuildTarget} not understood, ignoring
End If
SetDirectory "{savedir}"
# Configuration fragment for Cygnus source tree.
# Check that we can find all the special tools that we will need.
# The test for sed is semi-pointless, because it's already been invoked
# by the calculation of target_cpu in the main configure script, but
# the test will also show which one is being used.
Set Exit 0
Echo byacc is `Which byacc`
Echo flex is `Which flex`
Echo forward-include is `Which forward-include`
Echo MoveIfChange is `Which MoveIfChange`
Echo mpw-touch is `Which mpw-touch`
Echo mpw-true is `Which mpw-true`
Echo NewFolderRecursive is `Which NewFolderRecursive`
Echo null-command is `Which null-command`
Echo open-brace is `Which open-brace`
Echo sed is `Which sed`
Echo 'tr-7to8' is `Which tr-7to8`
Echo true is `Which true`
Set Exit 1
Set host_libs "mmalloc libiberty opcodes bfd readline gash tcl tk tclX"
Set host_tools "texinfo byacc flex bison binutils ld gas gcc gdb make patch \Option-d
prms send-pr gprof gdbtest tgas etc expect dejagnu sim bash \Option-d
m4 autoconf ispell grep diff rcs cvs fileutils shellutils time \Option-d
textutils wdiff find emacs emacs19 uudecode hello tar gzip indent \Option-d
recode release sed utils guile perl apache inet gawk"
Set target_libs "newlib"
Set target_tools "examples"
# Configure the resource compiler if targeting Macs.
If {target_os} =~ /macos/ || {target_os} =~ /mpw/
Set host_tools "{host_tools} grez"
End If
Set configdirs "{host_libs} {host_tools} {target_libs} {target_tools}"
Export configdirs
# Make up a special include directory that tools will share.
If "`Exists "{objdir}"extra-include`" == ""
NewFolder "{objdir}"extra-include
End If
Set edir "{objdir}extra-include:"
forward-include "{srcdir}"include:mpw:sys:file.h "{edir}"'sys/file.h'
forward-include "{srcdir}"include:mpw:sys:ioctl.h "{edir}"'sys/ioctl.h'
forward-include "{srcdir}"include:mpw:sys:param.h "{edir}"'sys/param.h'
forward-include "{srcdir}"include:mpw:sys:resource.h "{edir}"'sys/resource.h'
forward-include "{srcdir}"include:mpw:sys:stat.h "{edir}"'sys/stat.h'
forward-include "{srcdir}"include:mpw:sys:time.h "{edir}"'sys/time.h'
forward-include "{srcdir}"include:mpw:sys:types.h "{edir}"'sys/types.h'
forward-include "{srcroot}"include:aout:aout64.h "{edir}"'aout/aout64.h'
forward-include "{srcroot}"include:aout:ar.h "{edir}"'aout/ar.h'
forward-include "{srcroot}"include:aout:ranlib.h "{edir}"'aout/ranlib.h'
forward-include "{srcroot}"include:aout:reloc.h "{edir}"'aout/reloc.h'
forward-include "{srcroot}"include:aout:stab.def "{edir}"'aout/stab.def'
forward-include "{srcroot}"include:aout:stab_gnu.h "{edir}"'aout/stab_gnu.h'
If "`Exists "{srcroot}"include:aout:"{target_cpu}".h`" != ""
forward-include "{srcroot}"include:aout:"{target_cpu}".h "{edir}"'aout/'"{target_cpu}"'.h'
End If
forward-include "{srcroot}"include:coff:ecoff.h "{edir}"'coff/ecoff.h'
forward-include "{srcroot}"include:coff:internal.h "{edir}"'coff/internal.h'
forward-include "{srcroot}"include:coff:sym.h "{edir}"'coff/sym.h'
forward-include "{srcroot}"include:coff:symconst.h "{edir}"'coff/symconst.h'
If "`Exists "{srcroot}"include:coff:"{target_cpu}".h`" != ""
forward-include "{srcroot}"include:coff:"{target_cpu}".h "{edir}"'coff/'"{target_cpu}"'.h'
End If
If "{target_cpu}" =~ /powerpc/
forward-include "{srcroot}"include:coff:rs6000.h "{edir}"'coff/rs6000.h'
End If
forward-include "{srcroot}"include:elf:common.h "{edir}"'elf/common.h'
forward-include "{srcroot}"include:elf:dwarf.h "{edir}"'elf/dwarf.h'
forward-include "{srcroot}"include:elf:dwarf2.h "{edir}"'elf/dwarf2.h'
forward-include "{srcroot}"include:elf:external.h "{edir}"'elf/external.h'
forward-include "{srcroot}"include:elf:internal.h "{edir}"'elf/internal.h'
# Believe it or not, GDB needs this for all targets.
forward-include "{srcroot}"include:elf:mips.h "{edir}"'elf/mips.h'
If "`Exists "{srcroot}"include:elf:"{target_cpu}".h`" != ""
forward-include "{srcroot}"include:elf:"{target_cpu}".h "{edir}"'elf/'"{target_cpu}"'.h'
End If
If "{target_cpu}" =~ /powerpc/
forward-include "{srcroot}"include:elf:ppc.h "{edir}"'elf/ppc.h'
End If
If "`Exists "{srcroot}"include:opcode:"{target_cpu}".h`" != ""
forward-include "{srcroot}"include:opcode:"{target_cpu}".h "{edir}"'opcode/'"{target_cpu}"'.h'
End If
If "{target_cpu}" =~ /powerpc/
forward-include "{srcroot}"include:opcode:ppc.h "{edir}"'opcode/ppc.h'
End If
# Add some bfd includes that get mentioned outside the bfd dir.
forward-include "{srcroot}"bfd:libcoff.h "{edir}"'bfd/libcoff.h'
forward-include "{srcroot}"bfd:libecoff.h "{edir}"'bfd/libecoff.h'
# Translate random files into MPW-only character set.
tr-7to8 "{srcdir}"mpw-README > "{objdir}Read Me for MPW"
tr-7to8 "{srcdir}"mpw-install > "{objdir}"Install
# Configuration script
# Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
# 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.
### WARNING
### This script must NOT use any 8-bit chars!
### WARNING
# This is an MPW Shell script that sets everything up for compilation,
# mainly creating directories, and editing copies of files.
Set savedir "`Directory`"
#Set Echo 1
Set ThisScript "{0}"
Set srcroot "--------"
Set srcdir ":"
Set objdir ":"
Set prefix "{MPW}":GNUTools:
Set exec_prefix ""
Set bindir ""
Set host_alias "m68k-apple-mpw"
Set target_alias {host_alias}
Set host_cc "mpwc"
Set with_gnu_ld 0
Set helpoutput 0
Set recurse 1
Set verify 0
Set verifystr ""
Set enable_options ""
Set disable_options ""
# Parse arguments.
Loop
Break If {#} == 0
If "{1}" =~ /--cc/
Set host_cc "{2}"
Shift 1
Else If "{1}" =~ /--bindir/
Set bindir "{2}"
Shift 1
Else If "{1}" =~ /--disable-?+/
Set `Echo {1} | sed -e 's/--disable-/enable_/'` no
Set disable_options "{disable_options} '{1}'"
Else If "{1}" =~ /--enable-?+/
Set `Echo {1} | sed -e 's/--enable-/enable_/'` yes
Set enable_options "{enable_options} '{1}'"
Else If "{1}" =~ /--exec-prefix/
Set exec_prefix "{2}"
Shift 1
Else If "{1}" =~ /--help/
Set helpoutput 1
Else If "{1}" =~ /--host/
Set host_alias "{2}"
Shift 1
Else If "{1}" =~ /--norecursion/
Set recurse 0
Else If "{1}" =~ /--prefix/
Set prefix "{2}"
Shift 1
Else If "{1}" =~ /--srcdir/
Set srcdir "{2}"
Shift 1
Else If "{1}" =~ /--srcroot/
Set srcroot "{2}"
Shift 1
Else If "{1}" =~ /--target/
Set target_alias "{2}"
Shift 1
Else If "{1}" =~ /-v/
Set verify 1
Set verifystr "-v"
Else If "{1}" =~ /--with-gnu-ld/
Set with_gnu_ld 1
Else
Echo -n 'mpw-configure: Unrecognized option: "'
Echo -n "{1}"
Echo '"; use --help for usage.'
Exit 1
End If
Shift 1
End Loop
If {helpoutput} == 1
Echo "Usage: mpw-configure [OPTIONS]"
Echo ""
Echo "Options: [defaults in brackets]"
Echo "--bindir DIR directory for binaries []"
Echo "--cc CC use C compiler CC [mpwc]"
Echo "--disable-FOO do not include feature FOO"
Echo "--enable-FOO include feature FOO"
Echo "--exec-prefix DIR install host-dependent files into DIR []"
Echo "--help print this message"
Echo "--host HOST configure for HOST [m68k-apple-mpw]"
Echo "--norecursion configure this directory only [recurse]"
Echo "--prefix DIR install into DIR [{MPW}:GNUTools:]"
Echo "--srcdir DIR find the sources in DIR [:]"
Echo "--srcroot DIR find the toplevel sources in DIR [:]"
Echo "--target TARGET configure for TARGET [TARGET=HOST]"
Echo "-v verbose"
Echo "--with-gnu-ld link using GNU ld [no]"
Exit 0
End If
Set Exit 0
# Default exec_prefix from prefix.
If "{exec_prefix}" == ""
Set exec_prefix "{prefix}"
End If
If "{bindir}" == ""
Set bindir "{prefix}"bin:
End If
# Point to the correct set of tools to use with the chosen compiler.
If "{host_cc}" =~ /mpwc/
Set host_alias "m68k-apple-mpw"
Set cc_name '{CC_MPW_C}'
Set segment_flag '-s '
Set ar_name '{AR_LIB}'
Set ranlib_name '{RANLIB_NULL}'
Set cc_ld_name '{CC_LD_LINK}'
Set prog_ext_name '{PROG_EXT_68K}'
Set extralibs_name '{EXTRALIBS_C}'
Set makepef_name '{MAKEPEF_NULL}'
Set rez_name '{REZ_68K}'
Else If "{host_cc}" =~ /sc68k/
Set host_alias "m68k-apple-mpw"
Set cc_name '{CC_SC}'
Set segment_flag '-s '
Set ar_name '{AR_LIB}'
Set ranlib_name '{RANLIB_NULL}'
Set cc_ld_name '{CC_LD_LINK}'
Set prog_ext_name '{PROG_EXT_68K}'
Set extralibs_name '{EXTRALIBS_C}'
Set makepef_name '{MAKEPEF_NULL}'
Set rez_name '{REZ_68K}'
Else If "{host_cc}" =~ /mwc68k/
Set host_alias "m68k-apple-mpw"
Set cc_name '{CC_MWC68K}'
Set segment_flag '-s '
Set ar_name '{AR_MWLINK68K}'
Set ranlib_name '{RANLIB_NULL}'
Set cc_ld_name '{CC_LD_MWLINK68K}'
Set prog_ext_name '{PROG_EXT_68K}'
Set extralibs_name '{EXTRALIBS_MWC68K}'
Set makepef_name '{MAKEPEF_NULL}'
Set rez_name '{REZ_68K}'
Else If "{host_cc}" =~ /gcc68k/
Set host_alias "m68k-apple-mpw"
Set cc_name '{CC_68K_GCC}'
Set segment_flag '-s '
Set ar_name '{AR_68K_AR}'
Set ranlib_name '{RANLIB_RANLIB}'
Set cc_ld_name '{CC_68K_GCC}'
Set prog_ext_name '{PROG_EXT_68K}'
Set extralibs_name '{EXTRALIBS_C}'
Set makepef_name '{MAKEPEF_NULL}'
Set rez_name '{REZ_68K}'
Else If "{host_cc}" =~ /ppcc/
Set host_alias "powerpc-apple-mpw"
Set cc_name '{CC_PPCC}'
Set segment_flag '-d ___s_e_g___='
Set ar_name '{AR_PPCLINK}'
Set ranlib_name '{RANLIB_NULL}'
Set cc_ld_name '{CC_LD_PPCLINK}'
Set prog_ext_name '{PROG_EXT_XCOFF}'
Set extralibs_name '{EXTRALIBS_PPC}'
Set makepef_name '{MAKEPEF_PPC}'
Set rez_name '{REZ_PPC}'
Else If "{host_cc}" =~ /mrc/
Set host_alias "powerpc-apple-mpw"
Set cc_name '{CC_MRC}'
Set segment_flag '-d ___s_e_g___='
Set ar_name '{AR_PPCLINK}'
Set ranlib_name '{RANLIB_NULL}'
Set cc_ld_name '{CC_LD_PPCLINK}'
Set prog_ext_name '{PROG_EXT_XCOFF}'
Set extralibs_name '{EXTRALIBS_PPC}'
Set makepef_name '{MAKEPEF_PPC}'
Set rez_name '{REZ_PPC}'
Else If "{host_cc}" =~ /scppc/
Set host_alias "powerpc-apple-mpw"
Set cc_name '{CC_SC}'
Set segment_flag '-d ___s_e_g___='
Set ar_name '{AR_PPCLINK}'
Set ranlib_name '{RANLIB_NULL}'
Set cc_ld_name '{CC_LD_PPCLINK}'
Set prog_ext_name '{PROG_EXT_XCOFF}'
Set extralibs_name '{EXTRALIBS_PPC}'
Set makepef_name '{MAKEPEF_PPC}'
Set rez_name '{REZ_PPC}'
Else If "{host_cc}" =~ /mwcppc/
Set host_alias "powerpc-apple-mpw"
Set cc_name '{CC_MWCPPC}'
Set segment_flag '-d ___s_e_g___='
Set ar_name '{AR_MWLINKPPC}'
Set ranlib_name '{RANLIB_NULL}'
Set cc_ld_name '{CC_LD_MWLINKPPC}'
# Misleading, but we don't need a PEF step.
Set prog_ext_name '{PROG_EXT_68K}'
Set extralibs_name '{EXTRALIBS_MWCPPC}'
Set makepef_name '{MAKEPEF_NULL}'
Set rez_name '{REZ_PPC}'
Else If "{host_cc}" =~ /gccppc/
Set host_alias "powerpc-apple-mpw"
Set cc_name '{CC_PPC_GCC}'
Set segment_flag '-d ___s_e_g___='
Set ar_name '{AR_PPCLINK}'
If {with_gnu_ld} == 1
Set ranlib_name '{RANLIB_RANLIB}'
Set cc_ld_name '{CC_LD_GLD}'
Else
Set ranlib_name '{RANLIB_NULL}'
Set cc_ld_name '{CC_LD_PPCLINK}'
End If
Set prog_ext_name '{PROG_EXT_XCOFF}'
Set extralibs_name '{EXTRALIBS_PPC}'
Set makepef_name '{MAKEPEF_PPC}'
Set rez_name '{REZ_PPC}'
Else
Echo "{host_cc}" is not a known MPW compiler type
End If
Set dash_c_flag ''
If "{host_cc}" =~ /gcc68k/
Set dash_c_flag '-c'
Else If "{host_cc}" =~ /gccppc/
Set dash_c_flag '-c'
End If
# (should interpret aliases if not in canonical form)
Set host_canonical "{host_alias}"
Set target_canonical "{target_alias}"
Set configdirs ""
If "{srcroot}" =~ /--------/
Set srcroot "{srcdir}"
End If
If "`Exists "{srcdir}"`" == ""
Echo Source directory {srcdir} does not exist!
Exit 1
End If
If "`Exists "{srcroot}"`" == ""
Echo Top-level source directory {srcroot} does not exist!
Exit 1
End If
Set target_cpu "`echo {target_canonical} | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`"
Set target_vendor "`echo {target_canonical} | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`"
Set target_os "`echo {target_canonical} | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`"
# Create a file that is guaranteed to be older than any other here.
If "`Exists "{objdir}"_oldest`" == ""
mpw-touch _oldest
End If
# Record this before creating any files, makefiles sometimes mention
# dependencies on config.status.
Echo "# This directory was configured as follows:" >config.new
Echo "{ThisScript} --host {host_alias} --target {target_alias} --srcdir {srcdir} --srcroot {srcroot} --prefix {prefix} --cc {host_cc} {verifystr} {enable_options} {disable_options} --norecursion" >>config.new
MoveIfChange config.new config.status
If "`Exists "{srcdir}"mpw-config.in`" != ""
tr-7to8 "{srcdir}"mpw-config.in >"{objdir}"mpw-config.in
Execute "{objdir}"mpw-config.in
End If
# Start Makefile construction by defining all the variables chosen by
# configuration.
Echo "# This Makefile produced by mpw-configure. Changes may get lost!" > "{objdir}"Makefile.tem
Echo "srcroot = " {srcroot} >> "{objdir}"Makefile.tem
Echo "topsrcdir = " {srcroot} >> "{objdir}"Makefile.tem
Echo "srcdir = " {srcdir} >> "{objdir}"Makefile.tem
Echo "mpw_prefix = " {prefix} >> "{objdir}"Makefile.tem
Echo "mpw_exec_prefix = " {exec_prefix} >> "{objdir}"Makefile.tem
Echo "mpw_bindir = " {bindir} >> "{objdir}"Makefile.tem
Echo "host_alias = " {host_alias} >> "{objdir}"Makefile.tem
Echo "target_alias = " {target_alias} >> "{objdir}"Makefile.tem
Echo "target_cpu = " {target_cpu} >> "{objdir}"Makefile.tem
Echo "target_vendor = " {target_vendor} >> "{objdir}"Makefile.tem
Echo "target_os = " {target_os} >> "{objdir}"Makefile.tem
Echo "target_canonical = " {target_canonical} >> "{objdir}"Makefile.tem
Echo "host_makefile_frag = " >> "{objdir}"Makefile.tem
Echo "target_makefile_frag = " >> "{objdir}"Makefile.tem
Echo "CC = " {cc_name} >> "{objdir}"Makefile.tem
Echo "AR = " {ar_name} >> "{objdir}"Makefile.tem
Echo "RANLIB = " {ranlib_name} >> "{objdir}"Makefile.tem
Echo "CC_LD = " {cc_ld_name} >> "{objdir}"Makefile.tem
Echo "PROG_EXT = " {prog_ext_name} >> "{objdir}"Makefile.tem
Echo "EXTRALIBS = " {extralibs_name} >> "{objdir}"Makefile.tem
Echo "MAKEPEF = " {makepef_name} >> "{objdir}"Makefile.tem
Echo "REZ = " {rez_name} >> "{objdir}"Makefile.tem
If {host_cc} =~ /gccppc/
Echo -n "dq =\Option-d\Option-d\Option-d" > "{objdir}"Makefile.tem0
Echo '"' >> "{objdir}"Makefile.tem0
tr-7to8 "{objdir}"Makefile.tem0 >>"{objdir}"Makefile.tem
Else
Echo -n "dq ='" >> "{objdir}"Makefile.tem
Echo -n '"' >> "{objdir}"Makefile.tem
Echo "'" >> "{objdir}"Makefile.tem
End If
# Append the master set of definitions for the various compilers.
If "`Exists "{srcdir}"config:mpw-mh-mpw`" != ""
tr-7to8 "{srcdir}"config:mpw-mh-mpw >>"{objdir}"Makefile.tem
Else If "`Exists "{srcroot}"config:mpw-mh-mpw`" != ""
tr-7to8 "{srcroot}"config:mpw-mh-mpw >>"{objdir}"Makefile.tem
Else
Echo "can't find a host config file!"
Exit 0
End If
# Append anything produced by the directory's mpw-config.in.
If "`Exists "{objdir}"mk.tmp`" != ""
Catenate "{objdir}"mk.tmp >>"{objdir}"Makefile.tem
# An mpw-config.in might change so as not to create this
# anymore, so get rid of it now to be safe.
Delete -i -y "{objdir}"mk.tmp
End If
# If there are sed scripts to edit the Unix Makefile.in, use them; otherwise
# use an mpw-make.in if present.
If "`Exists "{srcdir}"mpw-make.sed`" != ""
If "`Exists "{objdir}"hacked_Makefile.in`" != ""
Set MakefileIn "{objdir}"hacked_Makefile.in
Else
Set MakefileIn "{srcdir}"Makefile.in
End If
# Find the generic makefile editing script.
If "`Exists "{srcroot}"config:mpw:g-mpw-make.sed`" != ""
sed -f "{srcroot}"config:mpw:g-mpw-make.sed "{MakefileIn}" >"{objdir}"Makefile.tem1
Else If "`Exists "{srcroot}"utils:mpw:g-mpw-make.sed`" != ""
sed -f "{srcroot}"utils:mpw:g-mpw-make.sed "{MakefileIn}" >"{objdir}"Makefile.tem1
Else If "`Exists "{srcdir}"g-mpw-make.sed`" != ""
sed -f "{srcdir}"g-mpw-make.sed "{MakefileIn}" >"{objdir}"Makefile.tem1
Else
Echo Warning: g-mpw-make.sed not found, copying "{MakefileIn}" verbatim...
Catenate "{MakefileIn}" >"{objdir}"Makefile.tem1
End If
sed -f "{srcdir}"mpw-make.sed "{objdir}"Makefile.tem1 >"{objdir}"Makefile.tem2
sed -e 's/^prefix = .*$/prefix = {mpw_prefix}/g' -e 's/^exec_prefix = .*$/exec_prefix = {mpw_exec_prefix}/g' -e 's/^bindir = @bindir@/bindir = {mpw_bindir}/g' "{objdir}"Makefile.tem2 >"{objdir}"Makefile.tem3
sed -e "s/@DASH_C_FLAG@/{dash_c_flag}/" -e "s/@SEGMENT_FLAG(\([^)]*\))@/{segment_flag}\1/" "{objdir}"Makefile.tem3 >"{objdir}"mpw-make.in
tr-7to8 "{objdir}"mpw-make.in >>"{objdir}"Makefile.tem
If "`Exists "{objdir}"mk.sed`" != ""
sed -f "{objdir}"mk.sed "{objdir}"Makefile.tem >"{objdir}"Makefile.tem2
Rename -y "{objdir}"Makefile.tem2 "{objdir}"Makefile.tem
End If
MoveIfChange "{objdir}"Makefile.tem "{objdir}"Makefile
Delete -i -y "{objdir}"Makefile.tem[12]
If {verify} == 1
Echo Created Makefile in "`Directory`"
End If
Else If "`Exists "{srcdir}"mpw-make.in`" != ""
sed -e 's/^prefix = .*$/prefix = {mpw_prefix}/g' "{srcdir}"mpw-make.in >"{objdir}"Makefile.tem1
sed -e "s/@DASH_C_FLAG@/{dash_c_flag}/" -e "s/@SEGMENT_FLAG(\([^)]*\))@/{segment_flag}}\1/" "{objdir}"Makefile.tem1 >"{objdir}"Makefile.tem2
tr-7to8 "{objdir}"Makefile.tem2 >>"{objdir}"Makefile.tem
If "`Exists "{objdir}"mk.sed`" != ""
sed -f "{objdir}"mk.sed "{objdir}"Makefile.tem >"{objdir}"Makefile.tem2
Rename -y "{objdir}"Makefile.tem2 "{objdir}"Makefile.tem
End If
MoveIfChange "{objdir}"Makefile.tem "{objdir}"Makefile
Delete -i -y "{objdir}"Makefile.tem[12]
If {verify} == 1
Echo Created Makefile in "`Directory`"
End If
End If
# Produce a build script if the source is defined.
If "`Exists "{srcdir}"mpw-build.in`" != ""
Echo "Set srcroot " {srcroot} > "{objdir}"mpw-build.tem
Echo "Set srcdir " {srcdir} >> "{objdir}"mpw-build.tem
Echo "Set target_canonical " {target_canonical} >> "{objdir}"mpw-build.tem
Echo "Set prefix " {prefix} >> "{objdir}"mpw-build.tem
tr-7to8 "{srcdir}"mpw-build.in >>"{objdir}"mpw-build.tem
MoveIfChange "{objdir}"mpw-build.tem "{objdir}"mpw-build
If {verify} == 1
Echo Created mpw-build in "`Directory`"
End If
End If
# Apply ourselves recursively to the list of subdirectories to configure.
If {recurse} == 1
For subdir In {configdirs}
Set savedir "`Directory`"
If "`Exists "{srcdir}{subdir}:"`" == ""
If {verify} == 1
Echo No "{srcdir}{subdir}:" found, skipping
End If
Continue
End If
If {verify} == 1
Echo Configuring {subdir}...
End If
If "`Exists "{objdir}{subdir}:"`" == ""
NewFolder "{objdir}{subdir}"
End If
SetDirectory "{objdir}{subdir}:"
"{ThisScript}" --target "{target_canonical}" --srcdir "{srcdir}{subdir}:" --srcroot "{srcroot}" --prefix "{prefix}" --cc "{host_cc}" {verifystr} {enable_options} {disable_options}
SetDirectory "{savedir}"
End For
End If
SetDirectory "{savedir}"
# GNU Install script for MPW.
Set OldExit "{Exit}"
Set Exit 0
Set TempUserStartup "{TempFolder}"__temp__UserStartup
Echo '# UserStartup generated by GNU Install script' > "{TempUserStartup}"
Echo '' >> "{TempUserStartup}"
# (should) Check that disk space is sufficient for installation.
# Assume that the install script is where everything else is.
Set thisdir "`Directory`"
# Copy the binaries to the desired place.
Confirm -t "Copy the binaries to somewhere else?"
Set TmpStatus {Status}
If {TmpStatus} == 0
Set bindest "`GetFileName -d -m "Where to install the binaries?"`"
If {Status} == 0
If "`Exists "{thisdir}bin"`" != ""
For afile In "{thisdir}"bin:\Option-x
Duplicate -y "{afile}" "{bindest}"
End For
Else
Echo "bin directory not found, exiting"
Exit 1
End If
Else
Echo "No destination supplied, exiting"
Exit 1
End If
Else If {TmpStatus} == 4
# Use the existing directory.
Set bindest "{thisdir}bin:"
Else
# Cancelled from confirmation, escape altogether.
Exit 1
End If
# Copy the libraries to the desired place.
Confirm -t "Copy the libraries to somewhere else?"
Set TmpStatus {Status}
If {TmpStatus} == 0
Set libdest "`GetFileName -d -m "Where to install the libraries?"`"
If {Status} == 0
If "`Exists "{thisdir}lib:"`" != ""
For afile In "{thisdir}"lib:\Option-x
Duplicate -y "{afile}" "{libdest}"
End For
Else
Echo "lib directory not found, exiting"
Exit 1
End If
Else
Echo "No destination supplied, exiting"
Exit 1
End If
Else If {TmpStatus} == 4
# Use the existing directory.
Set libdest "{thisdir}lib:"
Else
# Cancelled from confirmation, escape altogether.
Exit 1
End If
# Add the location of the binaries to the command path.
Echo -n 'Set Commands "' >> "{TempUserStartup}"
Echo -n "{bindest}" >> "{TempUserStartup}"
Echo ',{Commands}"' >> "{TempUserStartup}"
Echo '' >> "{TempUserStartup}"
# Set up GCC exec prefix.
Set gcclibdir "{libdest}"gcc-lib:
Echo -n 'Set GCC_EXEC_PREFIX "' >> "{TempUserStartup}"
Echo -n "{gcclibdir}" >> "{TempUserStartup}"
Echo '"' >> "{TempUserStartup}"
Echo "Export GCC_EXEC_PREFIX" >> "{TempUserStartup}"
Echo '' >> "{TempUserStartup}"
# Set up path to libgcc.xcoff etc.
Echo -n 'Set GCCPPCLibraries "' >> "{TempUserStartup}"
Echo -n "{libdest}" >> "{TempUserStartup}"
Echo '"' >> "{TempUserStartup}"
Echo "Export GCCPPCLibraries" >> "{TempUserStartup}"
Echo '' >> "{TempUserStartup}"
# Display contents of UserStartup, confirm installation.
Set UserStartupName "UserStartup\Option-8GNU"
Echo "Contents of" {UserStartupName} "will be:"
Catenate "{TempUserStartup}"
Confirm "Install {UserStartupName} into the MPW folder {MPW} ?"
If {Status} == 0
Duplicate "{TempUserStartup}" "{MPW}{UserStartupName}"
Delete -y "{TempUserStartup}"
Else
Echo "{UserStartupName} file not installed"
End If
# (should) Check HEXA resource, warn if low.
# (should) Check for spaces in pathnames, warn if found.
Echo "Installation was successful."
Echo ""
Echo "Be sure to review the usage notes in 'Read Me for MPW' before proceeding!"
# Restore previous settings.
Set Exit "{OldExit}"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment