From a7a8349dba08c2fa89c52affd0a0590e48bf26b4 Mon Sep 17 00:00:00 2001 From: Marius Vollmer Date: Sat, 11 Jan 1997 18:50:17 +0000 Subject: [PATCH] * ltconfig, ltmain.sh: New files for libtool support. libguile, rx, gh and gtcltk-lib can now be build as shared libraries. * Makefile.am (EXTRA_DIST): Added ltconfig and ltmain.sh --- Makefile.am | 2 +- Makefile.in | 6 +- ltconfig | 853 ++++++++++++++++++++++++++++++ ltmain.sh | 1457 +++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 2314 insertions(+), 4 deletions(-) create mode 100755 ltconfig create mode 100644 ltmain.sh diff --git a/Makefile.am b/Makefile.am index efe9ec547..7d2d36819 100644 --- a/Makefile.am +++ b/Makefile.am @@ -11,4 +11,4 @@ guile-dist: aclocaldir = $(datadir)/aclocal aclocal_DATA = guile.m4 threads.m4 -EXTRA_DIST = $(aclocal_DATA) HACKING GUILE-VERSION +EXTRA_DIST = $(aclocal_DATA) ltconfig ltmain.sh HACKING GUILE-VERSION diff --git a/Makefile.in b/Makefile.in index ad61ab076..bbe8fa169 100644 --- a/Makefile.in +++ b/Makefile.in @@ -49,7 +49,7 @@ guile_dirs = @existingdirs@ doc aclocaldir = $(datadir)/aclocal aclocal_DATA = guile.m4 threads.m4 -EXTRA_DIST = $(aclocal_DATA) HACKING GUILE-VERSION +EXTRA_DIST = $(aclocal_DATA) ltconfig ltmain.sh HACKING GUILE-VERSION ACLOCAL = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = @@ -68,7 +68,7 @@ default: all .SUFFIXES: $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL) - cd $(top_srcdir) && automake --gnu Makefile + cd $(top_srcdir) && automake --foreign Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) cd $(top_builddir) \ @@ -164,7 +164,7 @@ distdir: $(DISTFILES) -chmod 755 $(distdir) here=`pwd`; distdir=`cd $(distdir) && pwd` \ && cd $(srcdir) \ - && automake --include-deps --build-dir=$$here --srcdir-name=$(srcdir) --output-dir=$$distdir --gnu + && automake --include-deps --build-dir=$$here --srcdir-name=$(srcdir) --output-dir=$$distdir --foreign @for file in $(DISTFILES); do \ d=$(srcdir); \ test -f $(distdir)/$$file \ diff --git a/ltconfig b/ltconfig new file mode 100755 index 000000000..ac3ce25a1 --- /dev/null +++ b/ltconfig @@ -0,0 +1,853 @@ +#! /bin/sh + +# ltconfig - Create a system-specific libtool. +# Generated automatically from ltconfig.in by configure. +# Copyright (C) 1996, Free Software Foundation, Inc. +# Gordon Matzigkeit , 1996 +# +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# A lot of this script is taken from autoconf-2.10. + +# The name of this program. +progname=`echo "$0" | sed 's%^.*/%%'` + +# Constants: +PROGRAM=ltconfig +PACKAGE=libtool +VERSION=0.7 +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5' +rm="rm -f" + +help="Try \`$progname --help' for more information." + +# Global variables: +enable_shared=yes +# All known linkers require a `.a' archive for static linking. +enable_static=yes +ltmain=NONE +silent= +srcdir= +ac_config_guess= +ac_config_sub= +host=NONE +nonopt=NONE +verify_host=yes +with_gcc=no + +old_CC="$CC" +old_CFLAGS="$CFLAGS" +old_CPPFLAGS="$CPPFLAGS" +old_LD="$LD" +old_RANLIB="$RANLIB" + +# Parse the command line options. +args= +prev= +for option +do + case "$option" in + -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + eval "$prev=\$option" + prev= + continue + fi + + case "$option" in + --help) cat <&2 + echo "$help" 1>&2 + exit 1 + ;; + + *) + if test "$ltmain" = NONE; then + ltmain="$option" + elif test "$host" = NONE; then +# FIXME This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1 +# if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then +# echo "$progname: warning \`$option' is not a valid host type" 1>&2 +# fi + host="$option" + else + echo "$progname: too many arguments" 1>&2 + echo "$help" 1>&2 + exit 1 + fi ;; + esac +done + +if test "$ltmain" = NONE; then + echo "$progname: you must specify a LTMAIN file" 1>&2 + echo "$help" 1>&2 + exit 1 +fi + +if test -f "$ltmain"; then : +else + echo "$progname: warning: \`$ltmain' does not exist" 1>&2 +fi + +# Quote any args containing shell metacharacters. +ltconfig_args= +for arg +do + case "$arg" in + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ltconfig_args="$ltconfig_args '$arg'" ;; + *) ltconfig_args="$ltconfig_args $arg" ;; + esac +done + +# A relevant subset of AC_INIT. + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 5 compiler messages saved in config.log +# 6 checking for... messages and results +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>>./config.log + +# NLS nuisances. +# Only set LANG and LC_ALL to C if already set. +# These must not be set unconditionally because not all systems understand +# e.g. LANG=C (notably SCO). +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LANG+set}" = set; then LANG=C; export LANG; fi + +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + +if test -z "$srcdir"; then + # Assume the source directory is the same one as the path to ltmain.sh. + srcdir=`echo "$ltmain" | sed 's%/[^/]*$%%'` + test "$srcdir" = "$ltmain" && srcdir=. +fi + +if test "$verify_host" = yes; then + # Check for config.guess and config.sub. + ac_aux_dir= + for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do + if test -f $ac_dir/config.guess; then + ac_aux_dir=$ac_dir + break + fi + done + if test -z "$ac_aux_dir"; then + echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2 + echo "$help" 1>&2 + exit 1 + fi + ac_config_guess=$ac_aux_dir/config.guess + ac_config_sub=$ac_aux_dir/config.sub + + # Make sure we can run config.sub. + if $ac_config_sub sun4 >/dev/null 2>&1; then : + else + echo "$progname: cannot run $ac_config_sub" 1>&2 + echo "$help" 1>&2 + exit 1 + fi + + echo $ac_n "checking host system type""... $ac_c" 1>&6 + + host_alias=$host + case "$host_alias" in + NONE) + if host_alias=`$ac_config_guess`; then : + else + echo "$progname: cannot guess host type; you must specify one" 1>&2 + echo "$help" 1>&2 + exit 1 + fi ;; + esac + host=`$ac_config_sub $host_alias` + echo "$ac_t""$host" 1>&6 + +elif test "$host" = NONE; then + echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2 + echo "$help" 1>&2 + exit 1 +else + host_alias=$host +fi + +host_cpu=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'` + +# Determine commands to create old-style static archives. +old_archive_cmds='ar cru $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' + +# If RANLIB is not set, then run the test. +if test "${RANLIB+set}" != "set"; then + result=no + + echo $ac_n "checking for ranlib... $ac_c" 1>&6 + if test "$result" = no; then + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" + for dir in $PATH; do + test -z "$dir" && dir=. + if test -f $dir/ranlib; then + RANLIB="ranlib" + result="ranlib" + break + fi + done + IFS="$save_ifs" + fi + + 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" +fi + +# FIXME: this is simplistic, and doesn't allow for cross-compiling. +echo $ac_n "checking for library strip program... $ac_c" 1>&6 +striplib= +if strip -x /dev/null 2>&1 | grep '/dev/null' >/dev/null 2>&1; then + # strip: /dev/null: Inappropriate file type or format + striplib="strip -x" +fi + +if test -n "$striplib"; then + echo $ac_t "$striplib" 1>&6 +else + echo $ac_t none 1>&6 +fi + + +# Check if old-style libraries may be stripped. +old_striplib= +if test -n "$striplib"; then + echo $ac_n "checking if $striplib works for static archives... $ac_c" 1>&6 + old_striplib="$striplib" + trap 'rm -rf conftest*; exit 1' 1 2 15 + cat > conftest.c <&5; (eval $ac_compile) 2>&5; }; then + oldlib=conftest.a + oldobjs=' conftest.o' + + # Do each of the archive commands. + cmds=`eval echo \"$old_archive_cmds\"` + IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' + for cmd in $cmds; do + IFS="$save_ifs" + if { (echo $progname:317: \"$cmd\") 1>&5; ($cmd) 2>&5; }; then : + else + old_striplib= + break + fi + done + IFS="$save_ifs" + + if test -n "$old_striplib"; then + if { (echo $progname:326: \"$old_striplib conftest.a\") 1>&5; ($old_striplib conftest.a) 2>&5; }; then : + else + old_striplib= + fi + fi + else + old_striplib= + fi + rm -rf conftest* + trap '' 1 2 15 + + if test -n "$old_striplib"; then + echo "$ac_t""yes" 1>&6 + else + echo "$ac_t""no" 1>&6 + fi +fi + + +# Check to see if we are using GCC. +if test "$with_gcc" = no; then + # If CC is not set, then try to find GCC or a usable CC. + if test -z "$CC"; then + echo $ac_n "checking for gcc... $ac_c" 1>&6 + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" + for dir in $PATH; do + IFS="$save_ifs" + test -z "$dir" && dir=. + if test -f $dir/gcc; then + CC="gcc" + break + fi + done + IFS="$save_ifs" + + if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 + else + echo "$ac_t""no" 1>&6 + fi + fi + + # Not "gcc", so try "cc", rejecting "/usr/ucb/cc". + if test -z "$CC"; then + echo $ac_n "checking for cc... $ac_c" 1>&6 + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" + cc_rejected=no + for dir in $PATH; do + test -z "$dir" && dir=. + if test -f $dir/cc; then + if test "$dir/cc" = "/usr/ucb/cc"; then + cc_rejected=yes + continue + fi + CC="cc" + break + fi + done + IFS="$save_ifs" + if test $cc_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same name, so the bogon will be chosen + # first if we set CC to just the name; use the full file name. + shift + set dummy "$dir/cc" "$@" + shift + CC="$@" + fi + fi + + if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 + else + echo "$ac_t""no" 1>&6 + fi + + if test -z "$CC"; then + echo "$progname: error: no acceptable cc found in \$PATH" 1>&2 + exit 1 + fi + fi + + # Now see if the compiler is really GCC. + with_gcc=no + echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6 + + trap "$rm conftest.c; exit 1" 1 2 15 + $rm conftest.c + cat > conftest.c </dev/null 2>&1; then : + with_gcc=yes + fi + $rm conftest.c + echo $ac_t "$with_gcc" 1>&6 +fi + +# Allow CC to be a program name with arguments. +set dummy $CC +compiler="$2" + +echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6 +pic_flag= +profile_flag_pattern= +wl= +link_static_flag= + +if test "$with_gcc" = yes; then + pic_flag='-fPIC' + profile_flag_pattern='-pg?' + wl='-Wl,' + link_static_flag='-static' +else + # PORTME Check for PIC flags for the system compiler. + case "$host" in + *-*-aix3* | *-*-aix4*) + # FIXME All rs/6000 code is PIC, but is there any non-rs/6000 AIX platform? + link_static_flag='-bnso -bI:/lib/syscalls.exp' + ;; + + *-*-hpux10*) + # FIXME link_static_flag? + pic_flag='+Z' + ;; + + *-*-osf3*) + # FIXME - pic_flag, link_static_flag? + ;; + + *-*-solaris2*) + pic_flag='-KPIC' + link_static_flag='-Bstatic' + ;; + + *-*-sunos4*) + pic_flag='-PIC' + link_static_flag='-Bstatic' + wl='-Qoption ld ' + ;; + + *) + can_build_shared=no + ;; + esac +fi + +case "$host" in +rs6000-*-*) + # Yippee! All rs/6000 code is position-independent. + pic_flag= + ;; +esac + +if test -n "$pic_flag"; then + echo $ac_t "$pic_flag" 1>&6 + pic_flag=" $pic_flag" +else + echo $ac_t none 1>&6 +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 +else + echo $ac_t none 1>&6 +fi + +# See if we're really using GNU ld. +test -z "$LD" && LD="ld" +with_gnu_ld=no +# Allow LD to be a program name with arguments. +set dummy $LD +linker="$2" +echo $ac_n "checking if $LD is GNU ld... $ac_c" 1>&6 +if $LD --version 2>&1 | egrep 'with BFD' > /dev/null; then + with_gnu_ld=yes + linker="GNU ld" +fi +echo $ac_t "$with_gnu_ld" 1>&6 + +# See if the linker supports building shared libraries. +echo $ac_n "checking if $linker supports shared libraries... $ac_c" 1>&6 + +archive_cmds= +link_rpath_flag= +hardcode_minus_L=no +hardcode_shlibpath_var=no + +ld_shlibs=yes +if test "$with_gnu_ld" = yes; then + # See if GNU ld supports shared libraries. + + case "$host" in + *-*-sunos4*) + ld_shlibs=yes + ;; + + *) + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + ld_shlibs=yes + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = yes; then + archive_cmds='$cc -shared ${wl}-soname $wl$soname -o $lib$libobjs$deplibs' + link_rpath_flag='${wl}-rpath $wl$libdir' + fi +else + # PORTME fill in a description of your system's linker (not GNU ld) + case "$host" in + *-*-aix3*) + archive_cmds='$rm $lib.exp;/ucb/nm$libobjs | egrep \" D \" | sed \"s/^.* //\" > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE -lc$deplibs;ar cru $lib $objdir/$soname' + hardcode_shlibpath_var=yes + hardcode_minus_L=yes + ;; + + *-*-aix4*) + archive_cmds='$rm $lib.exp;/bin/nm -B$libobjs | egrep \" D \" | sed \"s/^.* //\" > $lib.exp;$cc -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry$deplibs;ar cru $lib $objdir/$soname' + hardcode_shlibpath_var=yes + hardcode_minus_L=yes + ;; + + *-*-freebsd*) + archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs' + hardcode_minus_L=yes + ;; + + *-*-hpux10*) + archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib$libobjs$deplibs' + link_rpath_flag='${wl}+b ${wl}$libdir' + hardcode_minus_L=yes + hardcode_shlibpath_var=yes + ;; + + *-*-netbsd*) + # Tested with NetBSD 1.2 ld + archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs' + link_rpath_flag='-R$libdir' + ;; + + *-*-osf3*) + archive_cmds='$LD -shared -o $lib -rpath $install_libdir -soname $soname -set_version $verstring$libobjs -lc$deplibs' + link_rpath_flag='${wl}-rpath ${wl}$libdir' + ;; + + *-*-solaris2*) + archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs$deplibs' + link_rpath_flag='-R$libdir' + ;; + + *-*-sunos4*) + archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs$deplibs' + link_rpath_flag='-L$libdir' + hardcode_minus_L=yes + ;; + + *) + ld_shlibs=no + can_build_shared=no + ;; + esac +fi +echo $ac_t "$ld_shlibs" 1>&6 + +if test "$hardcode_shlibpath_var" = yes && test "$hardcode_minus_L" = yes; then + echo "$progname: warning: $LD needlessly hardcodes library paths into binaries" 1>&2 + echo "$PACKAGE will compensate by relinking binaries at install time." 1>&2 +fi + +reload_flag= +reload_cmds='$LD$reload_flag -o $output$reload_objs' +echo $ac_n "checking for $linker option to reload object files... $ac_c" 1>&6 +# PORTME Some linker may need a different reload flag. +reload_flag='-r' +echo $ac_t "$reload_flag" +test -n "$reload_flag" && reload_flag=" $reload_flag" + +# PORTME Fill in your ld.so characteristics +can_build_shared=yes +lib_names= +soname_spec= +postinstall_cmds= +finish_cmds= +shlibpath_var= +version_type=none +dynamic_linker="$host_os ld.so" + +echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6 +case "$host" in +*-*-aix3* | *-*-aix4*) + # Shared libraries and static libraries currently use the same namespace. + test "$enable_shared" = no || enable_static=no + + version_type=linux + lib_names='$libname.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' + ;; + +*-*-freebsd*) + version_type=sunos + lib_names='$libname.so.$versuffix $libname.so' + finish_cmds='ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*-*-gnu*) + version_type=sunos + lib_names='$libname.so.$versuffix' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*-*-hpux10*) + # 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 + lib_names='$libname.sl.$versuffix $libname.sl.$major $libname.sl' + soname_spec='$libname.sl.$major' + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +# No shared lib support for linuxoldld or linuxaout. +*-*-linuxoldld* | *-*-linuxaout*) + dynamic_linker=no + can_build_shared=no + ;; + +*-*-linux*) + version_type=linux + lib_names='$libname.so.$versuffix $libname.so.$major $libname.so' + soname_spec='$libname.so.$major' + finish_cmds='ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*-*-netbsd*) + version_type=sunos + lib_names='$libname.so.$versuffix' + finish_cmds='ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*-*-osf3*) + version_type=osf + soname_spec='$libname.so' + lib_names='$libname.so.$versuffix $libname.so' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*-*-solaris2*) + version_type=linux + lib_names='$libname.so.$versuffix $libname.so.$major $libname.so' + soname_spec='$libname.so.$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*-*-sunos4*) + version_type=sunos + lib_names='$libname.so.$versuffix' + finish_cmds='ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + can_build_shared=no + ;; +esac +echo "$ac_t""$dynamic_linker" + + +# Report the 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 + +if test "$enable_shared" = yes; then + # On AIX, we do not build both static and shared libraries. + case "$host_os" in + aix*) + test "$enable_static" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds;\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + esac +fi + +echo "$ac_t""$enable_shared" 1>&6 + + +ofile=libtool +trap "$rm $ofile; exit 1" 1 2 15 +echo creating $ofile +rm -fr $ofile +cat < $ofile +#! /bin/sh + +# libtool - 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`: +# +# CC="$old_CC" CFLAGS="$old_CFLAGS" LD="$old_LD" RANLIB="$old_RANLIB" \\ +# $0$ltconfig_args +# +# Compiler and other test output produced by $progname, useful for +# debugging $progname, is in ./config.log if it exists. + +# The version of $progname that generated this script. +LTCONFIG_VERSION="$VERSION" + +# Whether or not to build libtool libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build old-style libraries. +build_old_libs=$enable_static + +# The host system. +host_alias="$host_alias" +host="$host" + +# The linker used to build libraries. +LD='$LD' + +# How to create reloadable object files. +reload_flag='$reload_flag' +reload_cmds='$reload_cmds' + +# How to pass a linker flag through the compiler. +wl='$wl' + +# Additional compiler flags for building library objects. +pic_flag='$pic_flag' + +# Compiler flag to prevent dynamic linking. +link_static_flag='$link_static_flag' + +# Pattern to match compiler flags for creating libNAME_p libraries: +profile_flag_pattern='$profile_flag_pattern' + +# Library versioning type. +version_type=$version_type + +# List of archive names. First name is the real one, the rest are links. +lib_names='$lib_names' + +# The coded name of the library, if different from the real name. +soname_spec='$soname_spec' + +# Commands used to build and install an old-style archive. +RANLIB='$RANLIB' +old_archive_cmds='$old_archive_cmds' +old_postinstall_cmds='$old_postinstall_cmds' + +# Commands used to build and install a shared archive. +archive_cmds='$archive_cmds' +postinstall_cmds='$postinstall_cmds' + +# Commands used to finish a libtool library installation in a directory. +finish_cmds='$finish_cmds' + +# The flag that specifies a runtime search path when linking. +link_rpath_flag='$link_rpath_flag' + +# How to strip a library file. +striplib='$striplib' +old_striplib='$old_striplib' + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L + +EOF + +# Detect if we are using a relative or absolute path to ltmain.sh. +case "$ltmain" in +/*) cat <> $ofile +# Execute the libtool backend. +. $ltmain +EOF2 + ;; +*) cat <> $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 + ;; +esac + +echo 'exit 1' >> $ofile + +chmod +x $ofile +exit 0 + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: diff --git a/ltmain.sh b/ltmain.sh new file mode 100644 index 000000000..eaa6f1682 --- /dev/null +++ b/ltmain.sh @@ -0,0 +1,1457 @@ +# ltmain.sh - Provide generalized library-building support services. +# Generated automatically from ltmain.sh.in by configure. +# Copyright (C) 1996 Free Software Foundation, Inc. +# Gordon Matzigkeit , 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. + +# The name of this program. +progname=`echo "$0" | sed 's%^.*/%%'` + +# Constants. +PROGRAM=ltmain.sh +PACKAGE=libtool +VERSION=0.7 + +default_mode=NONE +help="Try \`$progname --help' for more information." +ln_s="ln -s" +cp_p="cp -p" +magic="%%%MAGIC variable%%%" +mkdir="mkdir" +mv="mv -f" +objdir=.libs +rm="rm -f" + +if test "$LTCONFIG_VERSION" != "$VERSION"; then + echo "$progname: 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 + +# Global variables. +mode=$default_mode +nonopt= +prev= +prevopt= +run= +show=echo +show_help= + +# Parse our command line options once, thoroughly. +while test -n "$1" +do + arg="$1" + shift + + case "$arg" in + -*=*) optarg=`echo "$arg" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + eval "$prev=\$arg" + prev= + prevopt= + continue + fi + + # Have we seen a non-optional argument yet? + case "$arg" in + --help) + show_help=yes + ;; + + --version) + echo "$PROGRAM (GNU $PACKAGE) $VERSION" + exit 0 + ;; + + --dry-run | -n) + run=: + ;; + + --finish) mode="finish" ;; + + --mode) prevopt="--mode" prev=mode ;; + --mode=*) mode="$optarg" ;; + + -*) + echo "$progname: unrecognized option \`$arg'" 1>&2 + echo "$help" 1>&2 + exit 1 + ;; + + *) + nonopt="$arg" + break + ;; + esac +done + + +if test -n "$prevopt"; then + echo "$progname: option \`$prevopt' requires an argument" 1>&2 + echo "$help" + exit 1 +fi + + +if test -z "$show_help"; then + + # Infer the operation mode. + if test "$mode" = NONE; then + case "$nonopt" in + *cc) + if echo " $@ " | egrep "[ ]-c[ ]" > /dev/null 2>&1; then + mode=compile + else + mode=link + fi + ;; + *install*|cp) + mode=install + ;; + *rm) + mode=uninstall + ;; + *) + # Just use the default operation mode. + if test "$mode" = NONE; then + if test -n "$nonopt"; then + echo "$progname: warning: cannot infer operation mode from \`$nonopt $@'" 1>&2 + else + echo "$progname: warning: cannot infer operation mode from no MODE-ARGS" 1>&2 + fi + fi + ;; + esac + fi + + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$progname --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) + # Get the compilation command and the source file. + base_compile="$nonopt" + lastarg= + srcfile= + + for arg + do + # Quote any args containing shell metacharacters. + case "$arg" in + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*|*\"*) + quote_arg="'$arg'" ;; + *) quote_arg="$arg" ;; + esac + + base_compile="$base_compile$lastarg" + srcfile="$quote_arg" + lastarg=" $srcfile" + done + + # Get the name of the library object. + libobj=`echo "$srcfile" | sed -e 's%^.*/%%; s/\.[Sc]$/.lo/'` + case $libobj in + *.lo) obj=`echo "$libobj" | sed -e 's/\.lo$/.o/'` ;; + *) + echo "$progname: cannot determine name of library object from \`$srcfile'" + exit 1 + ;; + esac + + if test -z "$base_compile"; then + echo "$progname: you must specify a compilation command" 1>&2 + echo "$help" 1>&2 + exit 1 + fi + + # Delete any old library objects. + $run $rm $obj $libobj + trap "$run $rm $obj $libobj; exit 1" 1 2 15 + + # Only build a PIC object if we are building libtool libraries. + if test "$build_libtool_libs" = yes; then + # All platforms use -DPIC, to notify preprocessed assembler code. + $show "$base_compile$pic_flag -DPIC $srcfile" + if eval "$run $base_compile$pic_flag -DPIC $srcfile"; then : + else + $run $rm $obj + exit 1 + fi + + # If we have no pic_flag, then copy the object into place and finish. + if test -z "$pic_flag"; then + $show "$ln_s $obj $libobj" + $run $ln_s $obj $libobj || $run $cp_p $obj $libobj + exit $? + fi + + # Just move the object, then go on to compile the next one + $show "$mv $obj $libobj" + $run $mv $obj $libobj || exit 1 + fi + + # Compile the position-dependent object. + $show "$base_compile $srcfile" + if eval "$run $base_compile $srcfile"; then : + else + $run $rm $obj $libobj + exit 1 + fi + + # Symlink or copy the object file into library object, if no PIC. + if test "$build_libtool_libs" != yes; then + $show "$ln_s $obj $libobj" + $run $ln_s $obj $libobj || $run $cp_p $obj $libobj + exit $? + fi + + exit 0 + ;; + + # libtool link mode + link) + # Go through the arguments, transforming them on the way. + cc="$nonopt" + args="$cc" + compile_command="$cc" + finalize_command="$cc" + deplibs= + install_libdir= + libobjs= + link_against_libtool_libs= + link_static= + ltlibs= + objs= + output= + prev= + prevarg= + temp_rpath= + vinfo= + + +# FIXME Maybe set the library names to libNAME_p.a if we are doing profiling. +# if echo " $@ " | egrep "[ ]$profile_flag_pattern[ ]" > /dev/null 2>&1; then +# suffix=p +# else +# suffix= +# fi + + for arg + do + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case "$prev" in + output) + compile_command="$compile_command $objdir/$arg" + finalize_command="$finalize_command $objdir/$arg"T + args="$args $arg" + ;; + esac + + eval "$prev=\$arg" + prev= + + continue + fi + + # The finalize and compile arguments. + farg="$arg" + carg="$arg" + + case "$arg" in + -L*) + deplibs="$deplibs $arg" + dir=`echo "$arg" | sed 's%^-L\(.*\)$%\1%'` + case "$dir" in + /*) + ;; + *) + echo "$progname: \`-L$dir' cannot specify a relative directory" 1>&2 + exit 1 + ;; + esac + ;; + + -l*) deplibs="$deplibs $arg" ;; + + -o) prev=output ;; + + -rpath) prev=install_libdir carg= farg= ;; + + -static) + build_libtool_libs=no + farg="$link_static_flag" + carg="$farg" + ;; + + -version-file) + echo "$progname: \`-version-file' has been replaced by \`-version-info'" 1>&2 + echo "$help" 1>&2 + exit 1 + ;; + + -version-info) prev=vinfo carg= farg= ;; + + -*) cc="$cc $arg" ;; # Some other compiler flag. + + # Automake's ansi2knr support code uses the "._o" and ".l_o" object + # suffixes. + *.o | *._o | *.a) + # A standard object. + objs="$objs $arg" + ;; + + *.lo | *.l_o) + # A library object. + libobjs="$libobjs $arg" + ;; + + *.la) + # A libtool-controlled library. + dir=`echo "$arg" | sed 's%/[^/]*$%%'` + test "$dir" = "$arg" && dir=. + file=`echo "$arg" | sed 's%^.*/%%'` + + link_against_libtool_libs="$link_against_libtool_libs $arg" + if test "$build_libtool_libs" = yes; then + # Specify the library as -lNAME. + carg="-l`echo "$file" | sed 's/lib\(..*\)\.la$/\1/'`" + farg="$carg" + + if test -n "$shlibpath_var"; then + # Make sure the rpath contains only unique directories. + case "$temp_rpath " in + "* $dir *") ;; + *) temp_rpath="$temp_rpath $dir" ;; + esac + fi + + # Check to see that this really is a libtool archive. + if egrep "^# Generated by $PROGRAM" $arg >/dev/null 2>&1; then : + else + echo "$progname: \`$arg' is not a valid libtool archive" 1>&2 + exit 1 + fi + + libdir= + . $dir/$file + + if test -z "$libdir"; then + echo "$progname: \`$arg' contains no -rpath information" 1>&2 + exit 1 + fi + + if test -n "$link_rpath_flag"; then + carg="`eval echo \"$link_rpath_flag\"` $carg" + farg="$carg" + fi + + if test "$hardcode_minus_L" != yes; then + # Just give the right -L directory flag. + carg="-L$dir/$objdir $carg" + + elif test "$hardcode_shlibpath_var" = yes; then + # Give an absolute path to the library. + case "$dir" in + /*) absdir="$dir" ;; + *) + absdir=`cd $dir && pwd` + if test -z "$absdir"; then + echo "$progname: cannot determine absolute pathname of \`$dir'" 1>&2 + exit 1 + fi + ;; + esac + carg="-L$absdir/$objdir $carg" + farg="-L$libdir $farg" + fi + else + # Transform directly to old archives if we don't build new libraries. + carg="$dir/$objdir/`echo "$file" | sed 's/\.la$/.a/'`" + farg="$carg" + fi + ;; + + *) + echo "$progname: unknown file suffix for \`$arg'" 1>&2 + echo "$help" + exit 1 + ;; + esac + + args="$args $arg" + + compile_command="$compile_command $carg" + finalize_command="$finalize_command $farg" + prevarg="$arg" + done + + if test -n "$prev"; then + echo "$progname: the \`$prevarg' option requires an argument" + 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 + exit 1 + ;; + + */*) + echo "$progname: output file \`$output' must have no directory components" 1>&2 + exit 1 + ;; + + *.a) + # Old archive. + build_old_libs=yes + + if test -n "$install_libdir"; then + echo "$progname: warning: \`-rpath' is ignored while linking old-style libraries" 1>&2 + fi + + if test -n "$vinfo"; then + echo "$progname: warning: \`-version-info' is ignored while linking old-style libraries" 1>&2 + fi + ;; + + *.la) + libname=`echo "$output" | sed 's/\.la$//'` + + if test -n "$objs"; then + echo "$progname: cannot build libtool library \`$output' from non-libtool objects" + 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 libraries may not depend on uninstalled libraries" 1>&2 + exit 1 + fi + + if test -z "$install_libdir"; then + echo "$progname: you must specify an installation directory with \`-rpath'" 1>&2 + exit 1 + fi + + current=0 + revision=0 + age=0 + + # 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 + exit 1 + fi + + test -n "$2" && current="$2" + test -n "$3" && revision="$3" + test -n "$4" && age="$4" + + # Check that each of the things are valid numbers. + 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 + exit 1 + ;; + esac + + 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 + exit 1 + ;; + esac + + 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 + 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 + exit 1 + fi + + # Calculate the version variables. + version_vars="version_type current age revision" + case "$version_type" in + none) ;; + + libtool) + version_vars="$version_vars versuffix" + versuffix="$current.$age.$revision" + ;; + + linux) + version_vars="$version_vars major versuffix" + major=`expr $current - $age` + versuffix="$major.$age.$revision" + ;; + + osf) + version_vars="$version_vars versuffix verstring" + versuffix="$current.$age.$revision" + verstring="$versuffix" + + # Add in all the interfaces that we are compatible with. + loop=$age + while test $loop != 0; do + iface=`expr $current - $loop` + loop=`expr $loop - 1` + verstring="$verstring:${iface}.0" + done + + # Make executables depend on our current version. + verstring="$verstring:${current}.0" + ;; + + sunos) + version_vars="$version_vars major versuffix" + major="$current" + versuffix="$current.$revision" + ;; + + *) + echo "$progname: unknown library version type \`$version_type'" 1>&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + exit 1 + ;; + esac + + # Maybe add a suffix. + test -n "$suffix" && libname=$libname"_$suffix" + + # 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.* + else + $show "$mkdir $objdir" + $run $mkdir $objdir || exit $? + fi + + if test "$build_libtool_libs" = yes; then + # Get the real and link names of the library. + library_names=`eval echo \"$lib_names\"` + set dummy $library_names + realname="$2" + shift; shift + + if test -n "$soname_spec"; then + soname=`eval echo \"$soname_spec\"` + else + soname="$realname" + fi + + lib="$objdir/$realname" + linknames= + for link + do + linknames="$linknames $objdir/$link" + done + + # Use standard objects if they are PIC. + test -z "$pic_flag" && libobjs=`echo "$libobjs " | sed 's/\.lo /.o /g; s/\.l_o /._o /g; s/ $//g'` + + # Do each of the archive commands. + cmds=`eval echo \"$archive_cmds\"` + IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + eval "$run $cmd" || exit $? + done + IFS="$save_ifs" + + # Create links to the real library. + for link in $linknames; do + $show "$ln_s $realname $link" + $run $ln_s $realname $link || exit $? + done + fi + ;; + + *.lo | *.o) + if test -n "$link_against_libtool_libs"; then + echo "$progname: 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 + fi + + if test -n "$install_libdir"; then + echo "$progname: 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 + fi + + case "$output" in + *.lo) + if test -n "$objs"; then + echo "$progname: cannot build library object \`$output' from non-libtool objects" 1>&2 + exit 1 + fi + libobj="$output" + obj=`echo "$output" | sed 's/\.lo$/.o/'` + ;; + *) + libobj= + obj="$output" + ;; + esac + + # Delete the old objects. + $run $rm $obj $libobj + + # Create the old-style object. + reload_objs="$objs"`echo "$libobjs " | sed 's/\.lo /.o /g; s/\.l_o /._o /g; s/ $//g'` + + output="$obj" + cmds=`eval echo \"$reload_cmds\"` + IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + eval "$run $cmd" || exit $? + done + IFS="$save_ifs" + + # Exit if we aren't doing a library object file. + test -z "$libobj" && exit 0 + + if test "$build_libtool_libs" = yes && test -n "$pic_flag"; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs" + output="$libobj" + cmds=`eval echo \"$reload_cmds\"` + IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + eval "$run $cmd" || exit $? + done + IFS="$save_ifs" + else + # Just create a symlink. + $show "$ln_s $obj $libobj" + $run $ln_s $obj $libobj || $run $cp_p $obj $libobj || exit 1 + fi + + exit 0 + ;; + + *) + 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 + 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/\.l_o /._o /g; s/ $//g'` + + fi + + if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then + # We have no uninstalled library dependencies, so finalize right now. + compile_command=`echo "$compile_command" | sed "s%-o $objdir/%-o %"` + $show "$compile_command" + $run $compile_command + exit $? + fi + + # Create the binary in the object directory, then wrap it. + if test -d $objdir; then : + else + $show "$mkdir $objdir" + $run $mkdir $objdir || exit $? + fi + + if test -n "$shlibpath_var"; then + # We should set the shlibpath_var + rpath= + for dir in $temp_rpath; do + case "$dir" in + /*) + # Absolute path. + rpath="$rpath:$dir/$objdir" + ;; + *) + # Relative path: add a thisdir entry. + rpath="$rpath:\$thisdir/$dir/$objdir" + ;; + esac + done + + # Strip the ugly leading colon. + rpath=`echo "$rpath" | sed 's/^://'` + + # Prettify the rpath for the link command. + linkrpath=`echo "$rpath" | sed 's%\$thisdir/%%g'` + fi + + # Delete the old output file. + $run $rm $output + + if test "$hardcode_minus_L" != yes; then + # Things are fine, the world is a beautiful place. + $show "$compile_command" + + elif test "$hardcode_shlibpath_var" != yes; then + # We just need to export the shlibpath for the link command. + $show "$shlibpath_var=$linkrpath $compile_command" + eval "export $shlibpath_var=$linkrpath" + + else + # AGH! Flame the AIX and HP-UX people for me, will ya? + echo "$progname: warning: using a buggy hardcoding system linker" 1>&2 + echo "$progname: relinking will be required before \`$output' can be installed" 1>&2 + + $show "$compile_command" + fi + + $run $compile_command || exit $? + + # Now create the wrapper script. + echo "creating $output" + + # 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 <> $output <>$output <&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 + chmod +x $output + fi + exit 0 + ;; + esac + + + # See if we need to build an old-fashioned archive. + if test "$build_old_libs" = "yes"; then + # Transform .lo files to .o (and don't forget ansi2knr .l_o to ._o). + oldobjs="$objs"`echo "$libobjs " | sed 's/\.lo /.o /g; s/\.l_o /._o /g; s/ $//g'` + case "$output" in + *.la) + # Now set the variables for building old libraries. + oldlib="$objdir/$libname.a" + ;; + *) + oldlib="$output" + $show "$rm $oldlib" + $run $rm $oldlib + ;; + esac + + # 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" + $show "$cmd" + eval "$run $cmd" || exit $? + done + IFS="$save_ifs" + fi + + # Now create the libtool archive. + case "$output" in + *.la) + old_library= + test "$build_old_libs" = yes && old_library="$libname.a" + + echo "creating $output" + + # Only create the output if not a dry run. + if test -z "$run"; then + cat > $output <&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 + exit 1 + fi + + if test -z "$files"; then + if test -z "$dest"; then + echo "$progname: no file or destination specified" 1>&2 + else + echo "$progname: you must specify a destination" 1>&2 + fi + echo "$help" 1>&2 + exit 1 + fi + + # Strip any trailing slash from the destination. + dest=`echo "$dest" | sed 's%/$%%'` + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=yes + if test -n "$isdir"; then + destdir="$dest" + else + destdir=`echo "$dest" | sed 's%/[^/]*$%%'` + fi + case "$destdir" in + /*) ;; + *) + echo "$progname: $destdir must be an absolute directory name" 1>&2 + echo "$help" 1>&2 + exit 1 + esac + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case "$file" in + *.a) + # Do the static libraries later. + staticlibs="$staticlibs $file" + ;; + + *.la) + # Check to see that this really is a libtool archive. + if egrep "^# Generated by $PROGRAM" $file >/dev/null 2>&1; then : + else + echo "$progname: \`$file' is not a valid libtool archive" 1>&2 + echo "$help" 1>&2 + exit 1 + fi + + library_names= + old_library= + # If there is no directory component, then add one. + case "$file" in + */*) . $file ;; + *) . ./$file ;; + esac + + # Add the libdir to current_libdirs if it is the destination. + if test "$destdir" = "$libdir"; then + case "$current_libdirs " in + "* $libdir *") ;; + *) current_libdirs="$current_libdirs $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + "* $libdir *") ;; + *) future_libdirs="$future_libdirs $libdir" ;; + esac + fi + + dir="`echo "$file" | sed 's%/[^/]*$%%'`/" + test "$dir" = "$file/" && dir= + dir="$dir$objdir" + + # See the names of the shared library. + set dummy $library_names + if test -n "$2"; then + realname="$2" + shift + shift + + # Install the shared library and build the symlinks. + $show "$install_prog $dir/$realname $destdir/$realname" + eval "$run $install_prog $dir/$realname $destdir/$realname" || exit $? + + # 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 -n "$1"; then + # Delete the old symlinks. + rmcmd="$rm" + for linkname + do + rmcmd="$rmcmd $destdir/$linkname" + done + $show "$rmcmd" + $run $rmcmd + + # ... and create new ones. + for linkname + do + $show "$ln_s $realname $destdir/$linkname" + $run $ln_s $realname $destdir/$linkname + done + fi + + # Do each command in the postinstall commands. + lib="$destdir/$realname" + cmds=`eval echo \"$postinstall_cmds\"` + IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + eval "$run $cmd" || exit $? + done + IFS="$save_ifs" + fi + + # Install the pseudo-library for information purposes. + name=`echo "$file" | sed 's%^.*/%%'` + $show "$install_prog $file $destdir/$name" + $run $install_prog $file $destdir/$name || exit $? + + # Maybe install the static library, too. + test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" + ;; + + *) + # 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" + link_against_libtool_libs= + finalize_command= + + # If there is no directory component, then add one. + case "$file" in + */*) . $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'" + exit 1 + fi + + finalize=yes + for lib in $link_against_libtool_libs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + # If there is no directory component, then add one. + case "$lib" in + */*) . $lib ;; + *) . ./$lib ;; + esac + fi + libfile="$libdir/`echo "$lib" | sed 's%^.*/%%g'`" + if test -z "$libdir"; then + echo "$progname: warning: \`$lib' contains no -rpath information" + elif test -f "$libfile"; then : + else + echo "$progname: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 + finalize=no + fi + done + + if test "$hardcode_minus_L" = yes && test "$hardcode_shlibpath_var" = yes; then + if test "$finalize" = no; then + echo "$progname: warning: cannot relink \`$file' on behalf of your buggy system linker" + else + echo "$progname: warning: relinking \`$file' on behalf of your buggy system linker" + $show "$finalize_command" + if $run $finalize_command; then : + else + echo "$progname: error: relink \`$file' with the above command before installing it" 1>&2 + continue + fi + file="$objdir/$file"T + 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 + fi + fi + + $show "$install_prog$stripme $file $dest" + $run $install_prog$stripme $file $dest || exit $? + ;; + esac + done + +# FIXME Install any profiled libraries, too. +# newfiles= +# for file in $staticlibs; do +# newfiles="$newfiles $file" +# pfile=`echo "$file" | sed 's/\.a$/_p.a/'` +# test -f "$pfile" && newfiles="$newfiles $pfile" +# done +# staticlibs="$newfiles" + + for file in $staticlibs; do + name=`echo "$file" | sed '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 + + # Do each command in the postinstall commands. + cmds=`eval echo \"$old_postinstall_cmds\"` + IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + eval "$run $cmd" || exit $? + done + IFS="$save_ifs" + done + + if test -n "$future_libdirs"; then + echo "$progname: warning: remember to run \`$progname --finish$future_libdirs'" + 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 + exit 1 + fi + + exit 0 + ;; + + # libtool finish mode + finish) + libdirs="$nonopt" + + if test -n "$finish_cmds" && test -n "$libdirs"; then + for dir + do + libdirs="$libdirs $dir" + done + + 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" + eval "$run $cmd" + done + IFS="$save_ifs" + done + fi + + 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" + fi + echo " - use the \`-LLIBDIR' linker flag" + exit 0 + ;; + + # libtool uninstall mode + uninstall) + rm="$nonopt" + files= + + for arg + do + case "$arg" in + -*) rm="$rm $arg" ;; + *) files="$files $arg" ;; + esac + done + + if test -z "$rm"; then + echo "$progname: 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%^.*/%%'` + + case "$name" in + *.la) + # Possibly a libtool archive, so verify it. + if egrep "^# Generated by $PROGRAM" $file >/dev/null 2>&1; then + . $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + $show "$rm $dir/$n" + $run $rm $dir/$n + done + + # Delete the old-fashioned archive. + if test -n "$old_library"; then + $show "$rm $dir/$old_library" + $run $rm $dir/$old_library + fi + fi + ;; + esac + + $show "$rm $file" + $run $rm $file + done + exit 0 + ;; + + NONE) + echo "$progname: 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 + exit 1 +fi # test -z "$show_help" + +# We need to display help for each of the modes. +case "$mode" in +NONE) cat <&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 + +exit 0 + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: