* feature.c, feature.h (scm_reset_hook_x): New procedure.
[bpt/guile.git] / ltconfig
index bb1135b..2347e69 100755 (executable)
--- a/ltconfig
+++ b/ltconfig
@@ -1,9 +1,7 @@
 #! /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
 
 # A lot of this script is taken from autoconf-2.10.
 
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi
+
+echo=echo
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then :
+else
+  # The Solaris and AIX default echo program unquotes backslashes.
+  # This makes it impossible to quote backslashes using
+  #   echo "$something" | sed 's/\\/\\\\/g'
+  # So, we emulate echo with printf '%s\n'
+  echo="printf %s\\n"
+  if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then :
+  else
+    # Oops.  We have no working printf.  Try to find a not-so-buggy echo.
+    echo=echo
+    IFS="${IFS=        }"; save_ifs="$IFS"; IFS="${IFS}:"
+    for dir in $PATH /usr/ucb; do
+      if test -f $dir/echo && test "X`$dir/echo '\t'`" = 'X\t'; then
+        echo="$dir/echo"
+        break
+      fi
+    done
+    IFS="$save_ifs"
+  fi
+fi
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e s/^X//'
+sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
+
 # The name of this program.
-progname=`echo "$0" | sed 's%^.*/%%'`
+progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'`
 
 # Constants:
 PROGRAM=ltconfig
 PACKAGE=libtool
-VERSION=0.9h
+VERSION=1.2
 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5'
+ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS 1>&5'
 rm="rm -f"
 
 help="Try \`$progname --help' for more information."
@@ -44,25 +78,26 @@ can_build_shared=yes
 enable_shared=yes
 # All known linkers require a `.a' archive for static linking.
 enable_static=yes
-ltmain=NONE
+ltmain=
 silent=
 srcdir=
 ac_config_guess=
 ac_config_sub=
-host=NONE
-nonopt=NONE
+host=
+nonopt=
 verify_host=yes
 with_gcc=no
+with_gnu_ld=no
 
 old_AR="$AR"
 old_CC="$CC"
 old_CFLAGS="$CFLAGS"
 old_CPPFLAGS="$CPPFLAGS"
 old_LD="$LD"
+old_LN_S="$LN_S"
+old_NM="$NM"
 old_RANLIB="$RANLIB"
 
-test -z "$AR" && AR=ar
-
 # Parse the command line options.
 args=
 prev=
@@ -91,10 +126,11 @@ Generate a system-specific libtool script.
     --help                 display this help and exit
     --no-verify            do not verify that HOST is a valid host type
     --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
+    --with-gnu-ld          assume that the C compiler uses the GNU linker
 
 LTMAIN is the \`ltmain.sh' shell script fragment that provides basic libtool
 functionality.
@@ -118,6 +154,7 @@ EOM
   --version) echo "$PROGRAM (GNU $PACKAGE) $VERSION"; exit 0 ;;
 
   --with-gcc) with_gcc=yes ;;
+  --with-gnu-ld) with_gnu_ld=yes ;;
 
   -*)
     echo "$progname: unrecognized option \`$option'" 1>&2
@@ -126,10 +163,10 @@ EOM
     ;;
 
   *)
-    if test "$ltmain" = NONE; then
+    if test -z "$ltmain"; then
       ltmain="$option"
-    elif test "$host" = NONE; then
-# FIXME This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1
+    elif test -z "$host"; then
+# This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1
 #      if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then
 #        echo "$progname: warning \`$option' is not a valid host type" 1>&2
 #      fi
@@ -142,7 +179,7 @@ EOM
   esac
 done
 
-if test "$ltmain" = NONE; then
+if test -z "$ltmain"; then
   echo "$progname: you must specify a LTMAIN file" 1>&2
   echo "$help" 1>&2
   exit 1
@@ -150,7 +187,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.
@@ -202,10 +241,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=
@@ -235,7 +275,7 @@ if test "$verify_host" = yes; then
 
   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
@@ -244,9 +284,12 @@ 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 "$host" = NONE; then
+elif test -z "$host"; then
   echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2
   echo "$help" 1>&2
   exit 1
@@ -254,48 +297,62 @@ 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
   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
+  IFS="${IFS=  }"; save_ifs="$IFS"; IFS="${IFS}:"
+  for dir in $PATH; do
+    test -z "$dir" && dir=.
+    if test -f $dir/ranlib; then
+      RANLIB="ranlib"
+      result="ranlib"
+      break
+    fi
+  done
+  IFS="$save_ifs"
 
-  echo $ac_t "$result" 1>&6
+  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
 
 # Check to see if we are using GCC.
-if test "$with_gcc" = no; then
+if test "$with_gcc" != yes || test -z "$CC"; then
   # If CC is not set, then try to find GCC or a usable CC.
   if test -z "$CC"; then
     echo $ac_n "checking for gcc... $ac_c" 1>&6
@@ -311,9 +368,9 @@ if test "$with_gcc" = no; 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
 
@@ -350,9 +407,9 @@ if test "$with_gcc" = no; 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
@@ -364,20 +421,19 @@ if test "$with_gcc" = no; 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:424: 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:376: \"$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:432: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
     with_gcc=yes
   fi
   $rm conftest.c
-  echo $ac_t "$with_gcc" 1>&6
+  echo "$ac_t$with_gcc" 1>&6
 fi
 
 # Allow CC to be a program name with arguments.
@@ -386,29 +442,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.
+    ;;
+  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?
+    # 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'
     ;;
 
@@ -416,11 +488,14 @@ else
     wl='-Wl,'
     link_static_flag='-non_shared'
     # PIC (with -KPIC) is the default.
-    pic_flag=
+    ;;
+
+  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'
     ;;
@@ -443,24 +518,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
-  pic_flag=" $pic_flag"
+  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 > conftest.c
+  save_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS $pic_flag -DPIC"
+  echo "$progname:547: checking if $compiler PIC flag $pic_flag works" >&5
+  if { (eval echo $progname:548: \"$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.
@@ -473,57 +583,91 @@ 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:591: checking if $compiler static flag $link_static_flag works" >&5
+if { (eval echo $progname:592: \"$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 conftestdata
+  if ln -s X conftestdata 2>/dev/null; then
+    $rm conftestdata
+    LN_S="ln -s"
+  else
+    LN_S=ln
+  fi
+  if test "$LN_S" = "ln -s"; then
+    echo "$ac_t"yes 1>&6
+  else
+    echo "$ac_t"no 1>&6
+  fi
 fi
 
+# Make sure LD is an absolute path.
 if test -z "$LD"; then
-  # Find the linker that we think the C compiler uses.
-  echo $ac_n "checking for ld used by $compiler... $ac_c" 1>&6
-
-  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
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
-      if "$ac_dir/ld" -v 2>&1 < /dev/null | egrep '(GNU ld|with BFD)' > /dev/null; then
-        # If it was GNU ld, only accept it if we're using GCC.
-        LD="$ac_dir/ld"
-       test "$with_gcc" = yes && break
-      else
-        # If it was not GNU ld, and we are not using GCC, then accept it.
-        LD="$ac_dir/ld"
-        break
+  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:624: 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:642: checking for GNU ld" >&5
+  else
+    echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
+    echo "$progname:645: checking for non-GNU ld" >&5
+  fi
+
+  if test -z "$LD"; then
+    IFS="${IFS=        }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+    for ac_dir in $PATH; do
+      test -z "$ac_dir" && ac_dir=.
+      if test -f "$ac_dir/$ac_prog"; then
+       LD="$ac_dir/$ac_prog"
+       # Check to see if the program is GNU ld.  I'd rather use --version,
+       # but apparently some GNU ld's only accept -v.
+       # Break only if it was the GNU/non-GNU ld that we prefer.
+       if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+         test "$with_gnu_ld" != no && break
+       else
+         test "$with_gnu_ld" != yes && break
+       fi
       fi
-    fi
-  done
-  IFS="$ac_save_ifs"
+    done
+    IFS="$ac_save_ifs"
+  fi
 
-  if test -n "$CC"; then
-    echo "$ac_t""$LD" 1>&6
+  if test -n "$LD"; then
+    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
@@ -532,93 +676,101 @@ if test -z "$LD"; then
   fi
 fi
 
-# See if we're really using GNU 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
-# I'd rather use --version here, but apparently some GNU ld's don't accept
-# it, but do accept -v.
-if $LD -v 2>&1 | 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
-  linker="GNU ld"
+else
+  with_gnu_ld=no
 fi
-echo $ac_t "$with_gnu_ld" 1>&6
+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
+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=
 
+case "$host_os" in
+amigaos* | sunos4*)
+  # On these operating systems, we should treat GNU ld like the system ld.
+  gnu_ld_acts_native=yes
+  ;;
+*)
+  gnu_ld_acts_native=no
+  ;;
+esac
+
 ld_shlibs=yes
-if test "$with_gnu_ld" = yes; then
-  # See if GNU ld supports shared libraries.
+if test "$with_gnu_ld" = yes && test "$gnu_ld_acts_native" != yes; then
 
-  case "$host_os" in
-  sunos4*)
+  # See if GNU ld supports shared libraries.
+  if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+    archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib$libobjs'
+    runpath_var=LD_RUN_PATH
     ld_shlibs=yes
-    hardcode_direct=yes
-    hardcode_shlibpath_var=no
-    ;;
-
-  *)
-    if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
-      runpath_var=LD_RUN_PATH
-      hardcode_runpath_var=yes
-      ld_shlibs=yes
-    else
-      ld_shlibs=no
-    fi
-    ;;
-  esac
+  else
+    ld_shlibs=no
+  fi
 
   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'
+    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
+    ;;
+
   # 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
@@ -626,78 +778,289 @@ 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'
+    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'
+    archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs'
     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*)
-    archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs'
+    if test "$with_gcc" = yes; then
+      archive_cmds='$CC -shared -o $lib$libobjs'
+    else
+      archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs'
+    fi
+
+    if test "$with_gnu_ld" = yes; then
+      export_dynamic_flag_spec='${wl}-export-dynamic'
+    fi
     hardcode_libdir_flag_spec='-L$libdir'
     hardcode_direct=yes
     hardcode_minus_L=yes
     hardcode_shlibpath_var=no
     ;;
 
+  uts4*)
+    archive_cmds='$LD -G -h $soname -o $lib$libobjs'
+    hardcode_libdir_flag_spec='-L$libdir'
+    hardcode_direct=no
+    hardcode_minus_L=no
+    hardcode_shlibpath_var=no
+    ;;
+
   *)
     ld_shlibs=no
     can_build_shared=no
     ;;
   esac
 fi
-echo $ac_t "$ld_shlibs" 1>&6
+echo "$ac_t$ld_shlibs" 1>&6
+
+if test -z "$NM"; then
+  echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6
+  case "$NM" in
+  /* | [A-Za-z]:\\*) ;; # Let the user override the test with a path.
+  *)
+    IFS="${IFS=        }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+    for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do
+      test -z "$ac_dir" && ac_dir=.
+      if test -f $ac_dir/nm; then
+        # Check to see if the nm accepts a BSD-compat flag.
+        # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+        #   nm: unknown option "B" ignored
+        if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+          NM="$ac_dir/nm -B"
+        elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+          NM="$ac_dir/nm -p"
+       else
+          NM="$ac_dir/nm"
+       fi
+        break
+      fi
+    done
+    IFS="$ac_save_ifs"
+    test -z "$NM" && NM=nm
+    ;;
+  esac
+  echo "$ac_t$NM" 1>&6
+fi
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRSTU]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Transform the above into a raw symbol and a C symbol.
+symxfrm='\1 \1'
+
+# Define system-specific variables.
+case "$host_os" in
+aix*)
+  symcode='[BCDTU]'
+  ;;
+irix*)
+  # Cannot use undefined symbols on IRIX because inlined functions mess us up.
+  symcode='[BCDEGRST]'
+  ;;
+solaris2*)
+  symcode='[BDTU]'
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
+  symcode='[ABCDGISTUW]'
+fi
+
+# Write the raw and C identifiers.
+global_symbol_pipe="sed -n -e 's/^.* $symcode $sympat$/$symxfrm/p'"
+
+# Check to see that the pipe works correctly.
+pipe_works=no
+$rm conftest*
+cat > conftest.c <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+echo "$progname:971: checking if global_symbol_pipe works" >&5
+if { (eval echo $progname:972: \"$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:975: 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:1033: \"$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 && \
@@ -713,29 +1076,32 @@ if test -n "$hardcode_libdir_flag_spec" || \
 elif test "$hardcode_direct" != yes && \
      test "$hardcode_minus_L" != yes && \
      test "$hardcode_shlibpath_var" != yes; then
-  # We can't hardcode anything.
+  # We cannot hardcode anything.
   hardcode_action=unsupported
 else
   # We can only hardcode existing directories.
   hardcode_action=relink
 fi
-echo $ac_t "$hardcode_action" 1>&6
+echo "$ac_t$hardcode_action" 1>&6
 test "$hardcode_action" = unsupported && can_build_shared=no
 
 
 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
+echo $ac_n "checking for $LD 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"
+echo "$ac_t$reload_flag"
 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"
@@ -744,23 +1110,29 @@ 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'
   ;;
 
 freebsd2* | freebsd3*)
   version_type=sunos
-  library_names_spec='$libname.so.$versuffix $libname.so'
-  finish_cmds='ldconfig -m $libdir'
+  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
   ;;
 
@@ -770,107 +1142,114 @@ hpux9* | hpux10*)
   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
   ;;
 
 # No shared lib support for Linux oldld, aout, or coff.
 linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
   dynamic_linker=no
-  can_build_shared=no
   ;;
 
 # 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'
-  finish_cmds='ldconfig -n $libdir'
+  library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major $libname.so'
+  soname_spec='${libname}${release}.so.$major'
+  finish_cmds='PATH="$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
+
+  if test -f /lib/ld.so.1; then
+    dynamic_linker='GNU ld.so'
+  else
+    # Only the GNU ld.so supports shared libraries on MkLinux.
+    case "$host_cpu" in
+    powerpc*) dynamic_linker=no ;;
+    *) dynamic_linker='Linux ld.so' ;;
+    esac
+  fi
   ;;
 
 netbsd* | openbsd*)
   version_type=sunos
-  library_names_spec='$libname.so.$versuffix'
-  finish_cmds='ldconfig -m $libdir'
+  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'
-  finish_cmds='ldconfig $libdir'
+  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
-  can_build_shared=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
@@ -881,35 +1260,112 @@ 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
 
+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 AR CC LD LN_S NM 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
+
 ofile=libtool
 trap "$rm $ofile; exit 1" 1 2 15
 echo creating $ofile
-rm -fr $ofile
+$rm $ofile
 cat <<EOF > $ofile
 #! /bin/sh
 
 # libtool - Provide generalized library-building support services.
-#
 # Generated automatically by $PROGRAM - GNU $PACKAGE $VERSION
+# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh.
+#
+# Copyright (C) 1996-1998 Free Software Foundation, Inc.
+# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
 # 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" \\
+# CC="$old_CC" CFLAGS="$old_CFLAGS" CPPFLAGS="$old_CPPFLAGS" \\
+# LD="$old_LD" NM="$old_NM" RANLIB="$old_RANLIB" LN_S="$old_LN_S" \\
 #   $0$ltconfig_args
 #
 # Compiler and other test output produced by $progname, useful for
 # debugging $progname, is in ./config.log if it exists.
 
+# 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
+
+# An echo program that does not interpret backslashes.
+echo="$ltecho"
+
 # The version of $progname that generated this script.
 LTCONFIG_VERSION="$VERSION"
 
+# Shell to use when invoking shell scripts.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
 # Whether or not to build libtool libraries.
 build_libtool_libs=$enable_shared
 
@@ -921,58 +1377,83 @@ host_alias="$host_alias"
 host="$host"
 
 # 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"
+
+# A BSD-compatible nm program.
+NM="$NM"
+
+# The name of the directory that contains temporary libtool files.
+objdir="$objdir"
 
 # How to create reloadable object files.
-reload_flag='$reload_flag'
-reload_cmds='$reload_cmds'
+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"
 
-# How to strip a library file.
-striplib='$striplib'
-old_striplib='$old_striplib'
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval="$finish_eval"
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe="$global_symbol_pipe"
 
 # This is the shared library runtime path variable.
 runpath_var=$runpath_var
@@ -985,10 +1466,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.
@@ -998,35 +1479,29 @@ 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
+# Append the ltmain.sh script.
+cat "$ltmain" >> $ofile || (rm -f $ofile; exit 1)
 
 chmod +x $ofile
 exit 0