]> Pileus Git - ~andy/gtk/commitdiff
Updated libtool to 1.0h. -Jay
authorJay Painter <jpaint@src.gnome.org>
Mon, 5 Jan 1998 18:42:42 +0000 (18:42 +0000)
committerJay Painter <jpaint@src.gnome.org>
Mon, 5 Jan 1998 18:42:42 +0000 (18:42 +0000)
glib/ltconfig
glib/ltmain.sh
ltconfig
ltmain.sh

index e9d3a8379558f00c92cd7508fc55d22ce34a3970..9d3ca58fae1c6feb6d281d1cafa470f5caeac2e3 100755 (executable)
 
 # A lot of this script is taken from autoconf-2.10.
 
+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
+
 # The name of this program.
-progname=`echo "$0" | sed 's%^.*/%%'`
+progname=`$echo "$0" | sed 's%^.*/%%'`
 
 # Constants:
 PROGRAM=ltconfig
 PACKAGE=libtool
-VERSION=1.0f
+VERSION=1.0h
 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"
@@ -41,10 +64,10 @@ help="Try \`$progname --help' for more information."
 
 # Sed substitution that helps us do robust quoting.  It backslashifies
 # metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s/\([\\"$\\\\]\)/\\\1/g'
+sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
 
 # Same as above, but don't quote variable references.
-double_quote_subst='s/\([\\"\\\\]\)/\\\1/g'
+double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
 
 # Global variables:
 can_build_shared=yes
@@ -279,7 +302,7 @@ host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
 host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 
 case "$host_os" in
-aix*)
+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.
@@ -293,6 +316,7 @@ 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
@@ -391,7 +415,7 @@ if test "$with_gcc" != yes || test -z "$CC"; then
   # Now see if the compiler is really GCC.
   with_gcc=no
   echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6
-  echo "$progname:394: checking whether we are using GNU C" >&5
+  echo "$progname:418: checking whether we are using GNU C" >&5
 
   $rm conftest.c
   cat > conftest.c <<EOF
@@ -399,7 +423,7 @@ if test "$with_gcc" != yes || test -z "$CC"; then
   yes;
 #endif
 EOF
-  if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:402: \"$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:426: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
     with_gcc=yes
   fi
   $rm conftest.c
@@ -431,6 +455,12 @@ if test "$with_gcc" = yes; then
   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'
     ;;
@@ -504,8 +534,8 @@ if test -n "$pic_flag"; then
   echo > conftest.c
   save_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS $pic_flag -DPIC"
-  echo "$progname:507: checking if $compiler PIC flag $pic_flag works" >&5
-  if { (eval echo $progname:508: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
+  echo "$progname:537: checking if $compiler PIC flag $pic_flag works" >&5
+  if { (eval echo $progname:538: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
     # Append any errors to the config.log.
     cat conftest.err 1>&5
 
@@ -547,8 +577,8 @@ $rm conftest*
 echo 'main(){return(0);}' > conftest.c
 save_LDFLAGS="$LDFLAGS"
 LDFLAGS="$LDFLAGS $link_static_flag"
-echo "$progname:550: checking if $compiler static flag $link_static_flag works" >&5
-if { (eval echo $progname:551: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+echo "$progname:580: checking if $compiler static flag $link_static_flag works" >&5
+if { (eval echo $progname:581: \"$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
@@ -580,7 +610,7 @@ if test -z "$LD"; then
   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:583: checking for ld used by GCC" >&5
+    echo "$progname:613: checking for ld used by GCC" >&5
     ac_prog=`($CC -print-prog-name=ld) 2>&5`
     case "$ac_prog" in
     # Accept absolute paths.
@@ -598,10 +628,10 @@ if test -z "$LD"; then
     esac
   elif test "$with_gnu_ld" = yes; then
     echo $ac_n "checking for GNU ld... $ac_c" 1>&6
-    echo "$progname:601: checking for GNU ld" >&5
+    echo "$progname:631: checking for GNU ld" >&5
   else
     echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-    echo "$progname:604: checking for non-GNU ld" >&5
+    echo "$progname:634: checking for non-GNU ld" >&5
   fi
 
   if test -z "$LD"; then
@@ -660,30 +690,30 @@ 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
+    hardcode_runpath_var=yes
     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_spec='${wl}-export-dynamic'
   fi
@@ -692,7 +722,7 @@ else
   case "$host_os" in
   aix3*)
     allow_undefined_flag=unsupported
-    archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '"'s/.* //'"' > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE$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
@@ -705,17 +735,24 @@ else
 
   aix4*)
     allow_undefined_flag=unsupported
-    archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '"'s/.* //'"' > $lib.exp;$CC -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry$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
   # 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
@@ -723,7 +760,7 @@ else
 
   # Unfortunately, older versions of FreeBSD 2 don't 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
@@ -731,7 +768,7 @@ 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_minus_L=yes
@@ -739,21 +776,23 @@ else
     ;;
 
   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$deplibs'
+    archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs'
     hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
     ;;
 
@@ -766,7 +805,7 @@ else
     ;;
 
   openbsd*)
-    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
@@ -776,7 +815,7 @@ else
     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'
+    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'
     ;;
 
@@ -788,18 +827,26 @@ else
     ;;
 
   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'
+    archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs'
     hardcode_libdir_flag_spec='-R$libdir'
     hardcode_shlibpath_var=no
     ;;
 
   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
@@ -807,7 +854,7 @@ else
     ;;
 
    uts4*)
-     archive_cmds='$LD -G -h $soname -o $lib$libobjs$deplibs'
+     archive_cmds='$LD -G -h $soname -o $lib$libobjs'
      hardcode_libdir_flag_spec='-L$libdir'
      hardcode_direct=no
      hardcode_minus_L=no
@@ -828,13 +875,15 @@ if test -z "$NM"; then
   /*) ;; # Let the user override the test with a path.
   *)
     IFS="${IFS=        }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-    for ac_dir in /usr/ucb $PATH /bin; do
+    for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do
       test -z "$ac_dir" && dir=.
       if test -f $ac_dir/nm; then
         # Check to see if the nm accepts a BSD-compat flag.
-        if ($ac_dir/nm -B /dev/null 2>&1; exit 0) | grep /dev/null >/dev/null; then
+        # Adding the `sed 1!d' prevents false positives on HP-UX, which says:
+        #   nm: unknown option "B" ignored
+        if ($ac_dir/nm -B /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then
           NM="$ac_dir/nm -B"
-        elif ($ac_dir/nm -p /dev/null 2>&1; exit 0) | grep /dev/null >/dev/null; then
+        elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then
           NM="$ac_dir/nm -p"
        else
           NM="$ac_dir/nm"
@@ -869,6 +918,10 @@ 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]'
   ;;
@@ -897,11 +950,11 @@ void nm_test_func(){}
 main(){nm_test_var='a';nm_test_func();return(0);}
 EOF
 
-echo "$progname:900: checking if global_symbol_pipe works" >&5
-if { (eval echo $progname:901: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then
+echo "$progname:953: checking if global_symbol_pipe works" >&5
+if { (eval echo $progname:954: \"$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:904: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
+  if { echo "$progname:957: 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
@@ -944,7 +997,7 @@ struct {
 dld_preloaded_symbols[] =
 {
 EOF
-        sed 's/^\(.*\) \(.*\)$/  {"\1", \&\2},/' < "$nlist" >> conftest.c
+        sed 's/^\(.*\) \(.*\)$/  {"\1", (__ptr_t) \&\2},/' < "$nlist" >> conftest.c
         cat <<\EOF >> conftest.c
   {0},
 };
@@ -959,7 +1012,7 @@ EOF
        save_CFLAGS="$CFLAGS"
         LIBS='conftestm.o'
        CFLAGS="$CFLAGS$no_builtin_flag"
-        if { (eval echo $progname:962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+        if { (eval echo $progname:1015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
           pipe_works=yes
         else
           echo "$progname: failed program was:" >&5
@@ -1028,7 +1081,9 @@ 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"
@@ -1044,6 +1099,12 @@ aix3* | aix4*)
   soname_spec='$libname.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 "$lib" | sed '\''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'
@@ -1108,7 +1169,6 @@ netbsd* | openbsd*)
   ;;
 
 os2*)
-  version_type=none
   libname_spec='$name'
   library_names_spec='$libname.dll $libname.a'
   dynamic_linker='OS/2 ld.exe'
@@ -1200,25 +1260,30 @@ 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 old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \
+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 \
   profile_flag_pattern libname_spec library_names_spec soname_spec RANLIB \
   old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
-  archive_cmds postinstall_cmds \
-  allow_undefined_flag finish_cmds global_symbol_pipe \
+  old_postuninstall_cmds archive_cmds postinstall_cmds postuninstall_cmds \
+  allow_undefined_flag finish_cmds finish_eval global_symbol_pipe \
   striplib old_striplib \
   hardcode_libdir_flag_spec hardcode_libdir_separator; do
 
   case "$var" in
   reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
-  old_postinstall_cmds | archive_cmds | postinstall_cmds | finish_cmds)
+  old_postinstall_cmds | old_postuninstall_cmds | archive_cmds | \
+  postinstall_cmds | postuninstall_cmds | finish_cmds)
     # Double-quote double-evaled strings.
-    eval "$var=\`echo \"\$$var\" | sed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\"\`"
+    eval "$var=\`\$echo \"\$$var\" | sed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\"\`"
     ;;
   *)
-    eval "$var=\`echo \"\$$var\" | sed \"\$sed_quote_subst\"\`"
+    eval "$var=\`\$echo \"\$$var\" | sed \"\$sed_quote_subst\"\`"
     ;;
   esac
 done
@@ -1243,6 +1308,9 @@ cat <<EOF > $ofile
 # Compiler and other test output produced by $progname, useful for
 # debugging $progname, is in ./config.log if it exists.
 
+# An echo program that doesn't interpret backslashes.
+echo="$ltecho"
+
 # The version of $progname that generated this script.
 LTCONFIG_VERSION="$VERSION"
 
@@ -1316,6 +1384,7 @@ soname_spec="$soname_spec"
 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"
@@ -1323,6 +1392,7 @@ old_archive_from_new_cmds="$old_archive_from_new_cmds"
 # Commands used to build and install a shared archive.
 archive_cmds="$archive_cmds"
 postinstall_cmds="$postinstall_cmds"
+postuninstall_cmds="$postuninstall_cmds"
 
 # Flag that allows shared libraries with undefined symbols to be built.
 allow_undefined_flag="$allow_undefined_flag"
@@ -1330,6 +1400,9 @@ allow_undefined_flag="$allow_undefined_flag"
 # Commands used to finish a libtool library installation in a directory.
 finish_cmds="$finish_cmds"
 
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval="$finish_eval"
+
 # Take the output of nm and produce a listing of raw symbols and C names.
 global_symbol_pipe="$global_symbol_pipe"
 
@@ -1395,7 +1468,7 @@ EOF
   ;;
 *) cat <<EOF >> $ofile
 # Find the path to this script.
-thisdir=\`echo "\$0" | sed -e 's%/[^/]*\$%%'\`
+thisdir=\`$echo "\$0" | sed -e 's%/[^/]*\$%%'\`
 test "X\$0" = "X\$thisdir" && thisdir=.
 
 # Execute the libtool backend.
index cb46c849873c5bb5ba1563d1d8bc3466e6b85028..978e91c81e3134b5fc61ad570e53307415edfe81 100644 (file)
 # configuration script generated by Autoconf, you may include it under
 # the same distribution terms that you use for the rest of that program.
 
-#FIXME: echo=echo
-echo='printf %s\n'
-if test "X`$echo '\t'`" = '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'`" = '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}:"
-    save_PATH="$PATH"
-    PATH="$PATH":/usr/ucb
-    for dir in $PATH; do
-      if test -f $dir/echo && test "X`$dir/echo '\t'`" = 'X\t'; then
-        echo="$dir/echo"
-        break
-      fi
-    done
-    IFS="$save_ifs"
-    PATH="$save_PATH"
-  fi
-fi
-
 # The name of this program.
 progname=`$echo "$0" | sed 's%^.*/%%'`
+modename="$progname"
 
 # Constants.
 PROGRAM=ltmain.sh
 PACKAGE=libtool
-VERSION=1.0f
+VERSION=1.0h
 
 default_mode=
 help="Try \`$progname --help' for more information."
@@ -66,7 +40,7 @@ rm="rm -f"
 
 # Sed substitution that helps us do robust quoting.  It backslashifies
 # metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s/\([\\"$\\\\]\)/\\\1/g'
+sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
 
 # NLS nuisances.
 # Only set LANG and LC_ALL to C if already set.
@@ -76,14 +50,14 @@ if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
 if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
 
 if test "$LTCONFIG_VERSION" != "$VERSION"; then
-  $echo "$progname: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
-  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
+  echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
+  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
   exit 1
 fi
 
 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-  $echo "$progname: not configured to build any kind of library" 1>&2
-  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
+  echo "$modename: not configured to build any kind of library" 1>&2
+  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
   exit 1
 fi
 
@@ -131,7 +105,7 @@ do
     ;;
 
   --version)
-    $echo "$PROGRAM (GNU $PACKAGE) $VERSION"
+    echo "$PROGRAM (GNU $PACKAGE) $VERSION"
     exit 0
     ;;
 
@@ -140,16 +114,16 @@ do
     ;;
 
   --features)
-    $echo "host: $host"
+    echo "host: $host"
     if test "$build_libtool_libs" = yes; then
-      $echo "enable shared libraries"
+      echo "enable shared libraries"
     else
-      $echo "disable shared libraries"
+      echo "disable shared libraries"
     fi
     if test "$build_old_libs" = yes; then
-      $echo "enable static libraries"
+      echo "enable static libraries"
     else
-      $echo "disable static libraries"
+      echo "disable static libraries"
     fi
     exit 0
     ;;
@@ -169,7 +143,7 @@ do
     ;;
 
   -*)
-    $echo "$progname: unrecognized option \`$arg'" 1>&2
+    $echo "$modename: unrecognized option \`$arg'" 1>&2
     $echo "$help" 1>&2
     exit 1
     ;;
@@ -182,7 +156,7 @@ do
 done
 
 if test -n "$prevopt"; then
-  $echo "$progname: option \`$prevopt' requires an argument" 1>&2
+  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
   $echo "$help" 1>&2
   exit 1
 fi
@@ -220,9 +194,9 @@ if test -z "$show_help"; then
       # Just use the default operation mode.
       if test -z "$mode"; then
         if test -n "$nonopt"; then
-          $echo "$progname: warning: cannot infer operation mode from \`$nonopt'" 1>&2
+          $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
         else
-          $echo "$progname: warning: cannot infer operation mode without MODE-ARGS" 1>&2
+          $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
         fi
       fi
       ;;
@@ -231,20 +205,20 @@ if test -z "$show_help"; then
 
   # Only execute mode is allowed to have -dlopen flags.
   if test -n "$execute_dlfiles" && test "$mode" != execute; then
-    $echo "$progname: unrecognized option \`-dlopen'" 1>&2
+    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
     $echo "$help" 1>&2
     exit 1
   fi
 
   # Change the help message to a mode-specific one.
   generic_help="$help"
-  help="Try \`$progname --help --mode=$mode' for more information."
+  help="Try \`$modename --help --mode=$mode' for more information."
 
   # These modes are in order of execution frequency so that they run quickly.
   case "$mode" in
   # libtool compile mode
   compile)
-    progname="$progname: compile"
+    modename="$modename: compile"
     # Get the compilation command and the source file.
     base_compile=
     lastarg=
@@ -255,7 +229,7 @@ if test -z "$show_help"; then
     do
       # The only flag that cannot be specified is the output filename.
       if test "X$arg" = "X-o"; then
-       $echo "$progname: you cannot specify the output filename with \`-o'" 1>&2
+       $echo "$modename: you cannot specify the output filename with \`-o'" 1>&2
        $echo "$help" 1>&2
        exit 1
       fi
@@ -307,13 +281,13 @@ if test -z "$show_help"; then
     case "$libobj" in
     *.lo) obj=`$echo "$libobj" | sed -e 's/\.lo$/.o/'` ;;
     *)
-      $echo "$progname: cannot determine name of library object from \`$srcfile'" 1>&2
+      $echo "$modename: cannot determine name of library object from \`$srcfile'" 1>&2
       exit 1
       ;;
     esac
 
     if test -z "$base_compile"; then
-      $echo "$progname: you must specify a compilation command" 1>&2
+      $echo "$modename: you must specify a compilation command" 1>&2
       $echo "$help" 1>&2
       exit 1
     fi
@@ -369,8 +343,8 @@ if test -z "$show_help"; then
     # Create an invalid libtool object if no PIC, so that we don't accidentally
     # link it into a program.
     if test "$build_libtool_libs" != yes; then
-      $show "$echo timestamp > $libobj"
-      $run eval "\$echo timestamp > \$libobj" || exit $?
+      $show "echo timestamp > $libobj"
+      $run eval "echo timestamp > \$libobj" || exit $?
     fi
 
     exit 0
@@ -378,9 +352,9 @@ if test -z "$show_help"; then
 
   # libtool link mode
   link)
-    progname="$progname: link"
+    modename="$modename: link"
     CC="$nonopt"
-    allow_undefined=no
+    allow_undefined=yes
     compile_command="$CC"
     finalize_command="$CC"
 
@@ -408,7 +382,7 @@ if test -z "$show_help"; then
       case "$arg" in
       -all-static | -static)
         if test "X$arg" = "X-all-static" && test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
-           $echo "$progname: warning: complete static linking is impossible in this configuration" 1>&2
+           $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
         fi
         build_libtool_libs=no
        build_old_libs=yes
@@ -468,7 +442,8 @@ if test -z "$show_help"; then
        ;;
 
       -allow-undefined)
-       allow_undefined=yes
+       # FIXME: remove this flag sometime in the future.
+       $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
        continue
        ;;
 
@@ -504,7 +479,7 @@ if test -z "$show_help"; then
          # Add the corresponding hardcode_libdir_flag, if it is not identical.
           ;;
         *)
-          $echo "$progname: \`-L$dir' cannot specify a relative directory" 1>&2
+          $echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2
           exit 1
           ;;
         esac
@@ -513,6 +488,11 @@ if test -z "$show_help"; then
 
       -l*) deplibs="$deplibs $arg" ;;
 
+      -no-undefined)
+       allow_undefined=no
+       continue
+       ;;
+
       -o) prev=output ;;
 
       -rpath)
@@ -583,7 +563,7 @@ if test -z "$show_help"; then
         # Check to see that this really is a libtool archive.
         if egrep '^# Generated by ltmain.sh' $arg >/dev/null 2>&1; then :
         else
-          $echo "$progname: \`$arg' is not a valid libtool archive" 1>&2
+          $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
           exit 1
         fi
 
@@ -594,7 +574,7 @@ if test -z "$show_help"; then
         esac
 
         if test -z "$libdir"; then
-          $echo "$progname: \`$arg' contains no -rpath information" 1>&2
+          $echo "$modename: \`$arg' contains no -rpath information" 1>&2
           exit 1
         fi
 
@@ -605,7 +585,7 @@ if test -z "$show_help"; then
         done
 
         if test -z "$linklib"; then
-          $echo "$progname: cannot find name of link library for \`$arg'" 1>&2
+          $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
           exit 1
         fi
 
@@ -707,7 +687,7 @@ if test -z "$show_help"; then
             *)
               absdir=`cd "$dir" && pwd`
               if test -z "$absdir"; then
-                $echo "$progname: cannot determine absolute directory name of \`$dir'" 1>&2
+                $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
                 exit 1
               fi
               dir="$absdir"
@@ -725,7 +705,7 @@ if test -z "$show_help"; then
             ;;
 
           *)
-            $echo "$progname: \`$hardcode_action' is an unknown hardcode action" 1>&2
+            $echo "$modename: \`$hardcode_action' is an unknown hardcode action" 1>&2
             exit 1
             ;;
           esac
@@ -745,7 +725,7 @@ if test -z "$show_help"; then
         else
           # Transform directly to old archives if we don't build new libraries.
           if test -n "$pic_flag" && test -z "$old_library"; then
-            $echo "$progname: cannot find static library for \`$arg'" 1>&2
+            $echo "$modename: cannot find static library for \`$arg'" 1>&2
             exit 1
           fi
 
@@ -778,12 +758,14 @@ if test -z "$show_help"; then
       esac
 
       # Now actually substitute the argument into the commands.
-      compile_command="$compile_command $arg"
-      finalize_command="$finalize_command $arg"
+      if test -n "$arg"; then
+       compile_command="$compile_command $arg"
+       finalize_command="$finalize_command $arg"
+      fi
     done
 
     if test -n "$prev"; then
-      $echo "$progname: the \`$prevarg' option requires an argument" 1>&2
+      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
       $echo "$help" 1>&2
       exit 1
     fi
@@ -792,13 +774,13 @@ if test -z "$show_help"; then
     oldobjs=
     case "$output" in
     "")
-      $echo "$progname: you must specify an output file" 1>&2
+      $echo "$modename: you must specify an output file" 1>&2
       $echo "$help" 1>&2
       exit 1
       ;;
 
     */*)
-      $echo "$progname: output file \`$output' must have no directory components" 1>&2
+      $echo "$modename: output file \`$output' must have no directory components" 1>&2
       exit 1
       ;;
 
@@ -807,7 +789,7 @@ if test -z "$show_help"; then
       case "$output" in
       lib*) ;;
       *)
-       $echo "$progname: libtool library \`$arg' must begin with \`lib'" 1>&2
+       $echo "$modename: libtool library \`$arg' must begin with \`lib'" 1>&2
        $echo "$help" 1>&2
        exit 1
        ;;
@@ -825,13 +807,13 @@ if test -z "$show_help"; then
       age=0
 
       if test -n "$objs"; then
-        $echo "$progname: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
+        $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
         exit 1
       fi
 
       # How the heck are we supposed to write a wrapper for a shared library?
       if test -n "$link_against_libtool_libs"; then
-        $echo "$progname: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2
+        $echo "$modename: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2
         exit 1
       fi
 
@@ -839,21 +821,21 @@ if test -z "$show_help"; then
       deplibs="$deplibs -lc"
 
       if test -n "$dlfiles$dlprefiles"; then
-        $echo "$progname: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2
+        $echo "$modename: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2
         # Nullify the symbol file.
         compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"`
         finalize_command=`$echo "$finalize_command" | sed "s% @SYMFILE@%%"`
       fi
 
       if test -z "$rpath"; then
-        $echo "$progname: you must specify an installation directory with \`-rpath'" 1>&2
+        $echo "$modename: you must specify an installation directory with \`-rpath'" 1>&2
        $echo "$help" 1>&2
         exit 1
       fi
 
       set dummy $rpath
       if test $# -gt 2; then
-       $echo "$progname: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
+       $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
       fi
       install_libdir="$2"
 
@@ -863,7 +845,7 @@ if test -z "$show_help"; then
       IFS="$save_ifs"
 
       if test -n "$5"; then
-        $echo "$progname: too many parameters to \`-version-info'" 1>&2
+        $echo "$modename: too many parameters to \`-version-info'" 1>&2
         $echo "$help" 1>&2
         exit 1
       fi
@@ -876,8 +858,8 @@ if test -z "$show_help"; then
       case "$current" in
       0 | [1-9] | [1-9][0-9]*) ;;
       *)
-        $echo "$progname: CURRENT \`$current' is not a nonnegative integer" 1>&2
-        $echo "$progname: \`$vinfo' is not valid version information" 1>&2
+        $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
+        $echo "$modename: \`$vinfo' is not valid version information" 1>&2
         exit 1
         ;;
       esac
@@ -885,8 +867,8 @@ if test -z "$show_help"; then
       case "$revision" in
       0 | [1-9] | [1-9][0-9]*) ;;
       *)
-        $echo "$progname: REVISION \`$revision' is not a nonnegative integer" 1>&2
-        $echo "$progname: \`$vinfo' is not valid version information" 1>&2
+        $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
+        $echo "$modename: \`$vinfo' is not valid version information" 1>&2
         exit 1
         ;;
       esac
@@ -894,15 +876,15 @@ if test -z "$show_help"; then
       case "$age" in
       0 | [1-9] | [1-9][0-9]*) ;;
       *)
-        $echo "$progname: AGE \`$age' is not a nonnegative integer" 1>&2
-        $echo "$progname: \`$vinfo' is not valid version information" 1>&2
+        $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
+        $echo "$modename: \`$vinfo' is not valid version information" 1>&2
         exit 1
         ;;
       esac
 
       if test $age -gt $current; then
-        $echo "$progname: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
-        $echo "$progname: \`$vinfo' is not valid version information" 1>&2
+        $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
+        $echo "$modename: \`$vinfo' is not valid version information" 1>&2
         exit 1
       fi
 
@@ -942,8 +924,8 @@ if test -z "$show_help"; then
         ;;
 
       *)
-        $echo "$progname: unknown library version type \`$version_type'" 1>&2
-        $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
+        $echo "$modename: unknown library version type \`$version_type'" 1>&2
+        echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
         exit 1
         ;;
       esac
@@ -965,7 +947,7 @@ if test -z "$show_help"; then
       # Check to see if the archive will have undefined symbols.
       if test "$allow_undefined" = yes; then
         if test "$allow_undefined_flag" = unsupported; then
-          $echo "$progname: warning: undefined symbols not allowed in $host shared libraries" 1>&2
+          $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
           build_libtool_libs=no
          build_old_libs=yes
         fi
@@ -1007,9 +989,9 @@ if test -z "$show_help"; then
         IFS="$save_ifs"
 
         # Create links to the real library.
-        for link in $linknames; do
-          $show "(cd $objdir && $LN_S $realname $link)"
-          $run eval '(cd $objdir && $LN_S $realname $link)' || exit $?
+        for linkname in $linknames; do
+          $show "(cd $objdir && $LN_S $realname $linkname)"
+          $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $?
         done
 
         # If -export-dynamic was specified, set the dlname.
@@ -1022,33 +1004,33 @@ if test -z "$show_help"; then
 
     *.lo | *.o)
       if test -n "$link_against_libtool_libs"; then
-        $echo "$progname: error: cannot link libtool libraries into reloadable objects" 1>&2
+        $echo "$modename: error: cannot link libtool libraries into reloadable objects" 1>&2
         exit 1
       fi
 
       if test -n "$deplibs"; then
-        $echo "$progname: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2
+        $echo "$modename: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2
       fi
 
       if test -n "$dlfiles$dlprefiles"; then
-        $echo "$progname: warning: \`-dlopen' is ignored while creating objects" 1>&2
+        $echo "$modename: warning: \`-dlopen' is ignored while creating objects" 1>&2
         # Nullify the symbol file.
         compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"`
         finalize_command=`$echo "$finalize_command" | sed "s% @SYMFILE@%%"`
       fi
 
       if test -n "$rpath"; then
-        $echo "$progname: warning: \`-rpath' is ignored while creating objects" 1>&2
+        $echo "$modename: warning: \`-rpath' is ignored while creating objects" 1>&2
       fi
 
       if test -n "$vinfo"; then
-        $echo "$progname: warning: \`-version-info' is ignored while creating objects" 1>&2
+        $echo "$modename: warning: \`-version-info' is ignored while creating objects" 1>&2
       fi
 
       case "$output" in
       *.lo)
         if test -n "$objs"; then
-          $echo "$progname: cannot build library object \`$output' from non-libtool objects" 1>&2
+          $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
           exit 1
         fi
         libobj="$output"
@@ -1082,8 +1064,8 @@ if test -z "$show_help"; then
       if test "$build_libtool_libs" != yes; then
         # Create an invalid libtool object if no PIC, so that we don't
         # accidentally link it into a program.
-        $show "$echo timestamp > $libobj"
-        $run eval "\$echo timestamp > $libobj" || exit $?
+        $show "echo timestamp > $libobj"
+        $run eval "echo timestamp > $libobj" || exit $?
         exit 0
       fi
 
@@ -1110,7 +1092,7 @@ if test -z "$show_help"; then
 
     *)
       if test -n "$vinfo"; then
-        $echo "$progname: warning: \`-version-info' is ignored while linking programs" 1>&2
+        $echo "$modename: warning: \`-version-info' is ignored while linking programs" 1>&2
       fi
 
       if test -n "$rpath"; then
@@ -1203,7 +1185,7 @@ if test -z "$show_help"; then
          if sort "$nlist" | uniq > "$nlist"T; then
            mv -f "$nlist"T "$nlist"
            wcout=`wc "$nlist" 2>/dev/null`
-           count=`$echo "$wcout" | sed 's/^[   ]*\([0-9][0-9]*\).*$/\1/'`
+           count=`echo "$wcout" | sed 's/^[    ]*\([0-9][0-9]*\).*$/\1/'`
            (test "$count" -ge 0) 2>/dev/null || count=-1
          else
            $rm "$nlist"T
@@ -1230,7 +1212,7 @@ EOF
            if test -f "$nlist"; then
              sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms"
            else
-             $echo '/* NONE */' >> "$objdir/$dlsyms"
+             echo '/* NONE */' >> "$objdir/$dlsyms"
 EOF
            fi
 
@@ -1258,7 +1240,7 @@ dld_preloaded_symbols[] =
 EOF
 
            if test -f "$nlist"; then
-             sed 's/^\(.*\) \(.*\)$/  {"\1", \&\2},/' < "$nlist" >> "$objdir/$dlsyms"
+             sed 's/^\(.*\) \(.*\)$/  {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms"
            fi
 
            cat <<\EOF >> "$objdir/$dlsyms"
@@ -1272,7 +1254,7 @@ EOF
            ;;
 
          *)
-           echo "$progname: unknown suffix for \`$dlsyms'" 1>&2
+           $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
            exit 1
            ;;
          esac
@@ -1286,12 +1268,12 @@ EOF
         compile_command=`$echo "$compile_command" | sed "s%@SYMFILE@%$objdir/${output}S.o%"`
         finalize_command=`$echo "$finalize_command" | sed "s%@SYMFILE@%$objdir/${output}S.o%"`
       elif test "$export_dynamic" != yes; then
-        test -n "$dlfiles$dlprefiles" && $echo "$progname: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2
+        test -n "$dlfiles$dlprefiles" && $echo "$modename: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2
       else
         # We keep going just in case the user didn't refer to
         # dld_preloaded_symbols.  The linker will fail if global_symbol_pipe
         # really was required.
-        $echo "$progname: not configured to extract global symbols from dlpreopened files" 1>&2
+        $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
 
         # Nullify the symbol file.
         compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"`
@@ -1361,8 +1343,8 @@ EOF
       case "$hardcode_action" in
       relink)
         # AGH! Flame the AIX and HP-UX people for me, will ya?
-        $echo "$progname: warning: using a buggy system linker" 1>&2
-        $echo "$progname: relinking will be required before \`$output' can be installed" 1>&2
+        $echo "$modename: warning: using a buggy system linker" 1>&2
+        $echo "$modename: relinking will be required before \`$output' can be installed" 1>&2
         ;;
       esac
 
@@ -1475,7 +1457,7 @@ EOF
     # The program doesn't exist.
     \$echo "\$0: error: \$progdir/\$program does not exist" 1>&2
     \$echo "This script is just a wrapper for \$program." 1>&2
-    \$echo "See the $PACKAGE documentation for more information." 1>&2
+    echo "See the $PACKAGE documentation for more information." 1>&2
     exit 1
   fi
 fi
@@ -1562,7 +1544,7 @@ EOF
 
   # libtool install mode
   install)
-    progname="$progname: install"
+    modename="$modename: install"
 
     # There may be an optional /bin/sh argument at the beginning of
     # install_prog (especially on Windows NT).
@@ -1642,22 +1624,22 @@ EOF
     done
 
     if test -z "$install_prog"; then
-      $echo "$progname: you must specify an install program" 1>&2
+      $echo "$modename: you must specify an install program" 1>&2
       $echo "$help" 1>&2
       exit 1
     fi
 
     if test -n "$prev"; then
-      $echo "$progname: the \`$prev' option requires an argument" 1>&2
+      $echo "$modename: the \`$prev' option requires an argument" 1>&2
       $echo "$help" 1>&2
       exit 1
     fi
 
     if test -z "$files"; then
       if test -z "$dest"; then
-        $echo "$progname: no file or destination specified" 1>&2
+        $echo "$modename: no file or destination specified" 1>&2
       else
-        $echo "$progname: you must specify a destination" 1>&2
+        $echo "$modename: you must specify a destination" 1>&2
       fi
       $echo "$help" 1>&2
       exit 1
@@ -1679,7 +1661,7 @@ EOF
       # Not a directory, so check to see that there is only one file specified.
       set dummy $files
       if test $# -gt 2; then
-        $echo "$progname: \`$dest' is not a directory" 1>&2
+        $echo "$modename: \`$dest' is not a directory" 1>&2
         $echo "$help" 1>&2
         exit 1
       fi
@@ -1691,7 +1673,7 @@ EOF
         case "$file" in
         *.lo) ;;
         *)
-          $echo "$progname: \`$destdir' must be an absolute directory name" 1>&2
+          $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
           $echo "$help" 1>&2
           exit 1
           ;;
@@ -1720,7 +1702,7 @@ EOF
         # Check to see that this really is a libtool archive.
         if egrep '^# Generated by ltmain.sh' $file >/dev/null 2>&1; then :
         else
-          $echo "$progname: \`$file' is not a valid libtool archive" 1>&2
+          $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
           $echo "$help" 1>&2
           exit 1
         fi
@@ -1769,7 +1751,7 @@ EOF
               $show "$striplib $destdir/$realname"
               $run $striplib $destdir/$realname || exit $?
             else
-              $echo "$progname: warning: no library stripping program" 1>&2
+              $echo "$modename: warning: no library stripping program" 1>&2
             fi
           fi
 
@@ -1840,7 +1822,7 @@ EOF
           destfile=
           ;;
         *)
-          $echo "$progname: cannot copy a libtool object to \`$destfile'" 1>&2
+          $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
           $echo "$help" 1>&2
           exit 1
           ;;
@@ -1877,7 +1859,7 @@ EOF
 
           # Check the variables that should have been set.
           if test -z "$link_against_libtool_libs" || test -z "$finalize_command"; then
-            $echo "$progname: invalid libtool wrapper script \`$file'" 1>&2
+            $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
             exit 1
           fi
 
@@ -1894,26 +1876,26 @@ EOF
             fi
             libfile="$libdir/`$echo "$lib" | sed 's%^.*/%%g'`"
             if test -z "$libdir"; then
-              $echo "$progname: warning: \`$lib' contains no -rpath information" 1>&2
+              $echo "$modename: warning: \`$lib' contains no -rpath information" 1>&2
             elif test -f "$libfile"; then :
             else
-              $echo "$progname: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
+              $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
               finalize=no
             fi
           done
 
           if test "$hardcode_action" = relink; then
             if test "$finalize" = yes; then
-              $echo "$progname: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2
+              $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2
               $show "$finalize_command"
               if $run eval "$finalize_command"; then :
               else
-                $echo "$progname: error: relink \`$file' with the above command before installing it" 1>&2
+                $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
                 continue
               fi
               file="$objdir/$file"T
             else
-              $echo "$progname: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2
+              $echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2
             fi
           else
             # Install the binary that we compiled earlier.
@@ -1942,7 +1924,7 @@ EOF
           $show "$old_striplib $oldlib"
           $run $old_striplib $oldlib || exit $?
         else
-          $echo "$progname: warning: no static library stripping program" 1>&2
+          $echo "$modename: warning: no static library stripping program" 1>&2
         fi
       fi
 
@@ -1958,7 +1940,7 @@ EOF
     done
 
     if test -n "$future_libdirs"; then
-      $echo "$progname: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
+      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
     fi
 
     if test -n "$current_libdirs"; then
@@ -1973,44 +1955,51 @@ EOF
 
   # libtool finish mode
   finish)
-    progname="$progname: finish"
+    modename="$modename: finish"
     libdirs="$nonopt"
 
-    if test -n "$finish_cmds" && test -n "$libdirs"; then
+    if test -n "$finish_cmds$finish_eval" && 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
+       if test -n "$finish_cmds"; then
+         # Do each command in the finish commands.
+         cmds=`eval \\$echo \"$finish_cmds\"`
+          IFS="${IFS=  }"; save_ifs="$IFS"; IFS=';'
+          for cmd in $cmds; do
+            IFS="$save_ifs"
+            $show "$cmd"
+            $run eval "$cmd"
+          done
           IFS="$save_ifs"
-          $show "$cmd"
-          $run eval "$cmd"
-        done
-        IFS="$save_ifs"
+       fi
+       if test -n "$finish_eval"; then
+         # Do the single finish_eval.
+         cmds=`eval \\$echo \"$finish_eval\"`
+         $run eval "$cmds"
+       fi
       done
     fi
 
-    $echo "To link against installed libraries in LIBDIR, users may have to:"
+    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"
+      echo "   - add LIBDIR to their \`$shlibpath_var' environment variable"
     fi
-    $echo "   - use the \`-LLIBDIR' linker flag"
+    echo "   - use the \`-LLIBDIR' linker flag"
     exit 0
     ;;
 
   # libtool execute mode
   execute)
-    progname="$progname: execute"
+    modename="$modename: execute"
 
     # The first argument is the command name.
     cmd="$nonopt"
     if test -z "$cmd"; then
-      $echo "$progname: you must specify a COMMAND" 1>&2
+      $echo "$modename: you must specify a COMMAND" 1>&2
       $echo "$help"
       exit 1
     fi
@@ -2019,7 +2008,7 @@ EOF
     for file in $execute_dlfiles; do
       if test -f "$file"; then :
       else
-       $echo "$progname: \`$file' is not a file" 1>&2
+       $echo "$modename: \`$file' is not a file" 1>&2
        $echo "$help" 1>&2
        exit 1
       fi
@@ -2030,7 +2019,7 @@ EOF
         # Check to see that this really is a libtool archive.
         if egrep '^# Generated by ltmain.sh' $file >/dev/null 2>&1; then :
         else
-          $echo "$progname: \`$lib' is not a valid libtool archive" 1>&2
+          $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
           $echo "$help" 1>&2
           exit 1
         fi
@@ -2048,7 +2037,7 @@ EOF
        # Skip this library if it cannot be dlopened.
        if test -z "$dlname"; then
          # Warn if it was a shared library.
-         test -n "$library_names" && $echo "$progname: warning: \`$file' was not linked with \`-export-dynamic'"
+         test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
          continue
        fi
 
@@ -2058,7 +2047,7 @@ EOF
        if test -f "$dir/$objdir/$dlname"; then
          dir="$dir/$objdir"
        else
-         $echo "$progname: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
+         $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
          exit 1
        fi
        ;;
@@ -2070,7 +2059,7 @@ EOF
        ;;
 
       *)
-       $echo "$progname: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
+       $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
         continue
        ;;
       esac
@@ -2122,7 +2111,7 @@ EOF
       # Now actually exec the command.
       eval "exec \$cmd$args"
 
-      $echo "$progname: cannot exec \$cmd$args"
+      $echo "$modename: cannot exec \$cmd$args"
       exit 1
     else
       # Display what would be done.
@@ -2135,7 +2124,7 @@ EOF
 
   # libtool uninstall mode
   uninstall)
-    progname="$progname: uninstall"
+    modename="$modename: uninstall"
     rm="$nonopt"
     files=
 
@@ -2148,7 +2137,7 @@ EOF
     done
 
     if test -z "$rm"; then
-      $echo "$progname: you must specify an RM program" 1>&2
+      $echo "$modename: you must specify an RM program" 1>&2
       $echo "$help" 1>&2
       exit 1
     fi
@@ -2174,6 +2163,33 @@ EOF
           test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname"
           test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
 
+         $show "$rm $rmfiles"
+         $run $rm $rmfiles
+
+         if test -n "$library_names"; then
+           # Do each command in the postuninstall commands.
+           cmds=`eval \\$echo \"$postuninstall_cmds\"`
+           IFS="${IFS=         }"; save_ifs="$IFS"; IFS=';'
+           for cmd in $cmds; do
+             IFS="$save_ifs"
+             $show "$cmd"
+             $run eval "$cmd"
+           done
+           IFS="$save_ifs"
+         fi
+
+          if test -n "$old_library"; then
+           # Do each command in the old_postuninstall commands.
+           cmds=`eval \\$echo \"$old_postuninstall_cmds\"`
+           IFS="${IFS=         }"; save_ifs="$IFS"; IFS=';'
+           for cmd in $cmds; do
+             IFS="$save_ifs"
+             $show "$cmd"
+             $run eval "$cmd"
+           done
+           IFS="$save_ifs"
+         fi
+
           # FIXME: should reinstall the best remaining shared library.
         fi
         ;;
@@ -2183,23 +2199,27 @@ EOF
           oldobj=`$echo "$name" | sed 's/\.lo$/\.o/'`
           rmfiles="$rmfiles $dir/$oldobj"
         fi
+       $show "$rm $rmfiles"
+       $run $rm $rmfiles
         ;;
-      esac
 
-      $show "$rm $rmfiles"
-      $run $rm $rmfiles
+      *)
+       $show "$rm $rmfiles"
+       $run $rm $rmfiles
+       ;;
+      esac
     done
     exit 0
     ;;
 
   "")
-    $echo "$progname: you must specify a MODE" 1>&2
+    $echo "$modename: you must specify a MODE" 1>&2
     $echo "$generic_help" 1>&2
     exit 1
     ;;
   esac
 
-  $echo "$progname: invalid operation mode \`$mode'" 1>&2
+  $echo "$modename: invalid operation mode \`$mode'" 1>&2
   $echo "$generic_help" 1>&2
   exit 1
 fi # test -z "$show_help"
@@ -2207,7 +2227,7 @@ fi # test -z "$show_help"
 # We need to display help for each of the modes.
 case "$mode" in
 "") cat <<EOF
-Usage: $progname [OPTION]... [MODE-ARG]...
+Usage: $modename [OPTION]... [MODE-ARG]...
 
 Provide generalized library-building support services.
 
@@ -2229,14 +2249,14 @@ MODE must be one of the following:
       link            create a library or an executable
       uninstall       remove libraries from an installed directory
 
-MODE-ARGS vary depending on the MODE.  Try \`$progname --help --mode=MODE' for
+MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
 a more detailed description of MODE.
 EOF
   ;;
 
 compile)
   cat <<EOF
-Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
 
 Compile a source file into a libtool library object.
 
@@ -2251,7 +2271,7 @@ EOF
 
 execute)
   cat <<EOF
-Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
+Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
 
 Automatically set library path, then run a program.
 
@@ -2272,7 +2292,7 @@ EOF
 
 finish)
   cat <<EOF
-Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
+Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
 
 Complete the installation of libtool libraries.
 
@@ -2285,7 +2305,7 @@ EOF
 
 install)
   cat <<EOF
-Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
+Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
 
 Install executables or libraries.
 
@@ -2299,7 +2319,7 @@ EOF
 
 link)
   cat <<EOF
-Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
+Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
 
 Link object files or libraries together to form another library, or to
 create an executable program.
@@ -2310,12 +2330,12 @@ a program from several object files.
 The following components of LINK-COMMAND are treated specially:
 
   -all-static       do not do any dynamic linking at all
-  -allow-undefined  allow a libtool library to reference undefined symbols
   -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
   -dlpreopen FILE   link in FILE and add its symbols to dld_preloaded_symbols
   -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
   -LLIBDIR          search LIBDIR for required installed libraries
   -lNAME            OUTPUT-FILE requires the installed library libNAME
+  -no-undefined     declare that a library does not refer to external symbols
   -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
   -rpath LIBDIR     the created library will eventually be installed in LIBDIR
   -static           do not do any dynamic linking of libtool libraries
@@ -2341,7 +2361,7 @@ EOF
 
 uninstall)
   cat <<EOF
-Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
 
 Remove libraries from an installation directory.
 
@@ -2355,14 +2375,14 @@ EOF
   ;;
 
 *)
-  $echo "$progname: invalid operation mode \`$mode'" 1>&2
+  $echo "$modename: invalid operation mode \`$mode'" 1>&2
   $echo "$help" 1>&2
   exit 1
   ;;
 esac
 
-$echo
-$echo "Try \`$progname --help' for more information about other modes."
+echo
+$echo "Try \`$modename --help' for more information about other modes."
 
 exit 0
 
index 2b366f5fc1f1d2eff673e2f761e62fbf5d059157..9d3ca58fae1c6feb6d281d1cafa470f5caeac2e3 100755 (executable)
--- a/ltconfig
+++ b/ltconfig
 
 # A lot of this script is taken from autoconf-2.10.
 
+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
+
 # The name of this program.
-progname=`echo "$0" | sed 's%^.*/%%'`
+progname=`$echo "$0" | sed 's%^.*/%%'`
 
 # Constants:
 PROGRAM=ltconfig
 PACKAGE=libtool
-VERSION=1.0f
+VERSION=1.0h
 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"
@@ -41,10 +64,10 @@ help="Try \`$progname --help' for more information."
 
 # Sed substitution that helps us do robust quoting.  It backslashifies
 # metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s/\([\\"$\\\\]\)/\\\1/g'
+sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
 
 # Same as above, but don't quote variable references.
-double_quote_subst='s/\([\\"\\\\]\)/\\\1/g'
+double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
 
 # Global variables:
 can_build_shared=yes
@@ -279,7 +302,7 @@ host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
 host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 
 case "$host_os" in
-aix*)
+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.
@@ -293,6 +316,7 @@ 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
@@ -391,7 +415,7 @@ if test "$with_gcc" != yes || test -z "$CC"; then
   # Now see if the compiler is really GCC.
   with_gcc=no
   echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6
-  echo "$progname:394: checking whether we are using GNU C" >&5
+  echo "$progname:418: checking whether we are using GNU C" >&5
 
   $rm conftest.c
   cat > conftest.c <<EOF
@@ -399,7 +423,7 @@ if test "$with_gcc" != yes || test -z "$CC"; then
   yes;
 #endif
 EOF
-  if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:402: \"$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:426: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
     with_gcc=yes
   fi
   $rm conftest.c
@@ -431,6 +455,12 @@ if test "$with_gcc" = yes; then
   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'
     ;;
@@ -504,8 +534,8 @@ if test -n "$pic_flag"; then
   echo > conftest.c
   save_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS $pic_flag -DPIC"
-  echo "$progname:507: checking if $compiler PIC flag $pic_flag works" >&5
-  if { (eval echo $progname:508: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
+  echo "$progname:537: checking if $compiler PIC flag $pic_flag works" >&5
+  if { (eval echo $progname:538: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
     # Append any errors to the config.log.
     cat conftest.err 1>&5
 
@@ -547,8 +577,8 @@ $rm conftest*
 echo 'main(){return(0);}' > conftest.c
 save_LDFLAGS="$LDFLAGS"
 LDFLAGS="$LDFLAGS $link_static_flag"
-echo "$progname:550: checking if $compiler static flag $link_static_flag works" >&5
-if { (eval echo $progname:551: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+echo "$progname:580: checking if $compiler static flag $link_static_flag works" >&5
+if { (eval echo $progname:581: \"$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
@@ -580,7 +610,7 @@ if test -z "$LD"; then
   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:583: checking for ld used by GCC" >&5
+    echo "$progname:613: checking for ld used by GCC" >&5
     ac_prog=`($CC -print-prog-name=ld) 2>&5`
     case "$ac_prog" in
     # Accept absolute paths.
@@ -598,10 +628,10 @@ if test -z "$LD"; then
     esac
   elif test "$with_gnu_ld" = yes; then
     echo $ac_n "checking for GNU ld... $ac_c" 1>&6
-    echo "$progname:601: checking for GNU ld" >&5
+    echo "$progname:631: checking for GNU ld" >&5
   else
     echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-    echo "$progname:604: checking for non-GNU ld" >&5
+    echo "$progname:634: checking for non-GNU ld" >&5
   fi
 
   if test -z "$LD"; then
@@ -660,30 +690,30 @@ 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
+    hardcode_runpath_var=yes
     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_spec='${wl}-export-dynamic'
   fi
@@ -692,7 +722,7 @@ else
   case "$host_os" in
   aix3*)
     allow_undefined_flag=unsupported
-    archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '"'s/.* //'"' > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE$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
@@ -705,17 +735,24 @@ else
 
   aix4*)
     allow_undefined_flag=unsupported
-    archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '"'s/.* //'"' > $lib.exp;$CC -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry$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
   # 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
@@ -723,7 +760,7 @@ else
 
   # Unfortunately, older versions of FreeBSD 2 don't 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
@@ -731,7 +768,7 @@ 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_minus_L=yes
@@ -739,21 +776,23 @@ else
     ;;
 
   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$deplibs'
+    archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs'
     hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
     ;;
 
@@ -766,7 +805,7 @@ else
     ;;
 
   openbsd*)
-    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
@@ -776,8 +815,7 @@ else
     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;e
-mxexp$libobjs >> $objdir/$libname.def;$CC -Zdll -Zcrtdll -o $lib$libobjs $objdir/$libname.def'
+    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'
     ;;
 
@@ -789,21 +827,26 @@ mxexp$libobjs >> $objdir/$libname.def;$CC -Zdll -Zcrtdll -o $lib$libobjs $objdir
     ;;
 
   sco3.2v5*)
-    archive_cmds='$LD -G -o $lib$libobjs$deplibs'
+    archive_cmds='$LD -G -o $lib$libobjs'
     hardcode_direct=yes
     ;;
 
   solaris2*)
-    case "$host_cpu" in
-    i386) archive_cmds='$LD -G -h $soname -o $lib$libobjs$deplibs' ;;
-    *) archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs$deplibs' ;;
-    esac
+    archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs'
     hardcode_libdir_flag_spec='-R$libdir'
     hardcode_shlibpath_var=no
     ;;
 
   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
@@ -811,7 +854,7 @@ mxexp$libobjs >> $objdir/$libname.def;$CC -Zdll -Zcrtdll -o $lib$libobjs $objdir
     ;;
 
    uts4*)
-     archive_cmds='$LD -G -h $soname -o $lib$libobjs$deplibs'
+     archive_cmds='$LD -G -h $soname -o $lib$libobjs'
      hardcode_libdir_flag_spec='-L$libdir'
      hardcode_direct=no
      hardcode_minus_L=no
@@ -832,13 +875,15 @@ if test -z "$NM"; then
   /*) ;; # Let the user override the test with a path.
   *)
     IFS="${IFS=        }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-    for ac_dir in /usr/ucb $PATH /bin; do
+    for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do
       test -z "$ac_dir" && dir=.
       if test -f $ac_dir/nm; then
         # Check to see if the nm accepts a BSD-compat flag.
-        if ($ac_dir/nm -B /dev/null 2>&1; exit 0) | grep /dev/null >/dev/null; then
+        # Adding the `sed 1!d' prevents false positives on HP-UX, which says:
+        #   nm: unknown option "B" ignored
+        if ($ac_dir/nm -B /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then
           NM="$ac_dir/nm -B"
-        elif ($ac_dir/nm -p /dev/null 2>&1; exit 0) | grep /dev/null >/dev/null; then
+        elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then
           NM="$ac_dir/nm -p"
        else
           NM="$ac_dir/nm"
@@ -873,6 +918,10 @@ 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]'
   ;;
@@ -901,11 +950,11 @@ void nm_test_func(){}
 main(){nm_test_var='a';nm_test_func();return(0);}
 EOF
 
-echo "$progname:900: checking if global_symbol_pipe works" >&5
-if { (eval echo $progname:901: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then
+echo "$progname:953: checking if global_symbol_pipe works" >&5
+if { (eval echo $progname:954: \"$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:904: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
+  if { echo "$progname:957: 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
@@ -948,7 +997,7 @@ struct {
 dld_preloaded_symbols[] =
 {
 EOF
-        sed 's/^\(.*\) \(.*\)$/  {"\1", \&\2},/' < "$nlist" >> conftest.c
+        sed 's/^\(.*\) \(.*\)$/  {"\1", (__ptr_t) \&\2},/' < "$nlist" >> conftest.c
         cat <<\EOF >> conftest.c
   {0},
 };
@@ -963,7 +1012,7 @@ EOF
        save_CFLAGS="$CFLAGS"
         LIBS='conftestm.o'
        CFLAGS="$CFLAGS$no_builtin_flag"
-        if { (eval echo $progname:962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+        if { (eval echo $progname:1015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
           pipe_works=yes
         else
           echo "$progname: failed program was:" >&5
@@ -1032,7 +1081,9 @@ 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"
@@ -1048,6 +1099,12 @@ aix3* | aix4*)
   soname_spec='$libname.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 "$lib" | sed '\''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'
@@ -1112,7 +1169,6 @@ netbsd* | openbsd*)
   ;;
 
 os2*)
-  version_type=none
   libname_spec='$name'
   library_names_spec='$libname.dll $libname.a'
   dynamic_linker='OS/2 ld.exe'
@@ -1204,25 +1260,30 @@ 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 old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \
+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 \
   profile_flag_pattern libname_spec library_names_spec soname_spec RANLIB \
   old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
-  archive_cmds postinstall_cmds \
-  allow_undefined_flag finish_cmds global_symbol_pipe \
+  old_postuninstall_cmds archive_cmds postinstall_cmds postuninstall_cmds \
+  allow_undefined_flag finish_cmds finish_eval global_symbol_pipe \
   striplib old_striplib \
   hardcode_libdir_flag_spec hardcode_libdir_separator; do
 
   case "$var" in
   reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
-  old_postinstall_cmds | archive_cmds | postinstall_cmds | finish_cmds)
+  old_postinstall_cmds | old_postuninstall_cmds | archive_cmds | \
+  postinstall_cmds | postuninstall_cmds | finish_cmds)
     # Double-quote double-evaled strings.
-    eval "$var=\`echo \"\$$var\" | sed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\"\`"
+    eval "$var=\`\$echo \"\$$var\" | sed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\"\`"
     ;;
   *)
-    eval "$var=\`echo \"\$$var\" | sed \"\$sed_quote_subst\"\`"
+    eval "$var=\`\$echo \"\$$var\" | sed \"\$sed_quote_subst\"\`"
     ;;
   esac
 done
@@ -1247,6 +1308,9 @@ cat <<EOF > $ofile
 # Compiler and other test output produced by $progname, useful for
 # debugging $progname, is in ./config.log if it exists.
 
+# An echo program that doesn't interpret backslashes.
+echo="$ltecho"
+
 # The version of $progname that generated this script.
 LTCONFIG_VERSION="$VERSION"
 
@@ -1320,6 +1384,7 @@ soname_spec="$soname_spec"
 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"
@@ -1327,6 +1392,7 @@ old_archive_from_new_cmds="$old_archive_from_new_cmds"
 # Commands used to build and install a shared archive.
 archive_cmds="$archive_cmds"
 postinstall_cmds="$postinstall_cmds"
+postuninstall_cmds="$postuninstall_cmds"
 
 # Flag that allows shared libraries with undefined symbols to be built.
 allow_undefined_flag="$allow_undefined_flag"
@@ -1334,6 +1400,9 @@ allow_undefined_flag="$allow_undefined_flag"
 # Commands used to finish a libtool library installation in a directory.
 finish_cmds="$finish_cmds"
 
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval="$finish_eval"
+
 # Take the output of nm and produce a listing of raw symbols and C names.
 global_symbol_pipe="$global_symbol_pipe"
 
@@ -1352,7 +1421,7 @@ 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"
@@ -1399,7 +1468,7 @@ EOF
   ;;
 *) cat <<EOF >> $ofile
 # Find the path to this script.
-thisdir=\`echo "\$0" | sed -e 's%/[^/]*\$%%'\`
+thisdir=\`$echo "\$0" | sed -e 's%/[^/]*\$%%'\`
 test "X\$0" = "X\$thisdir" && thisdir=.
 
 # Execute the libtool backend.
index cb46c849873c5bb5ba1563d1d8bc3466e6b85028..978e91c81e3134b5fc61ad570e53307415edfe81 100644 (file)
--- a/ltmain.sh
+++ b/ltmain.sh
 # configuration script generated by Autoconf, you may include it under
 # the same distribution terms that you use for the rest of that program.
 
-#FIXME: echo=echo
-echo='printf %s\n'
-if test "X`$echo '\t'`" = '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'`" = '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}:"
-    save_PATH="$PATH"
-    PATH="$PATH":/usr/ucb
-    for dir in $PATH; do
-      if test -f $dir/echo && test "X`$dir/echo '\t'`" = 'X\t'; then
-        echo="$dir/echo"
-        break
-      fi
-    done
-    IFS="$save_ifs"
-    PATH="$save_PATH"
-  fi
-fi
-
 # The name of this program.
 progname=`$echo "$0" | sed 's%^.*/%%'`
+modename="$progname"
 
 # Constants.
 PROGRAM=ltmain.sh
 PACKAGE=libtool
-VERSION=1.0f
+VERSION=1.0h
 
 default_mode=
 help="Try \`$progname --help' for more information."
@@ -66,7 +40,7 @@ rm="rm -f"
 
 # Sed substitution that helps us do robust quoting.  It backslashifies
 # metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s/\([\\"$\\\\]\)/\\\1/g'
+sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
 
 # NLS nuisances.
 # Only set LANG and LC_ALL to C if already set.
@@ -76,14 +50,14 @@ if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
 if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
 
 if test "$LTCONFIG_VERSION" != "$VERSION"; then
-  $echo "$progname: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
-  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
+  echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
+  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
   exit 1
 fi
 
 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-  $echo "$progname: not configured to build any kind of library" 1>&2
-  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
+  echo "$modename: not configured to build any kind of library" 1>&2
+  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
   exit 1
 fi
 
@@ -131,7 +105,7 @@ do
     ;;
 
   --version)
-    $echo "$PROGRAM (GNU $PACKAGE) $VERSION"
+    echo "$PROGRAM (GNU $PACKAGE) $VERSION"
     exit 0
     ;;
 
@@ -140,16 +114,16 @@ do
     ;;
 
   --features)
-    $echo "host: $host"
+    echo "host: $host"
     if test "$build_libtool_libs" = yes; then
-      $echo "enable shared libraries"
+      echo "enable shared libraries"
     else
-      $echo "disable shared libraries"
+      echo "disable shared libraries"
     fi
     if test "$build_old_libs" = yes; then
-      $echo "enable static libraries"
+      echo "enable static libraries"
     else
-      $echo "disable static libraries"
+      echo "disable static libraries"
     fi
     exit 0
     ;;
@@ -169,7 +143,7 @@ do
     ;;
 
   -*)
-    $echo "$progname: unrecognized option \`$arg'" 1>&2
+    $echo "$modename: unrecognized option \`$arg'" 1>&2
     $echo "$help" 1>&2
     exit 1
     ;;
@@ -182,7 +156,7 @@ do
 done
 
 if test -n "$prevopt"; then
-  $echo "$progname: option \`$prevopt' requires an argument" 1>&2
+  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
   $echo "$help" 1>&2
   exit 1
 fi
@@ -220,9 +194,9 @@ if test -z "$show_help"; then
       # Just use the default operation mode.
       if test -z "$mode"; then
         if test -n "$nonopt"; then
-          $echo "$progname: warning: cannot infer operation mode from \`$nonopt'" 1>&2
+          $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
         else
-          $echo "$progname: warning: cannot infer operation mode without MODE-ARGS" 1>&2
+          $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
         fi
       fi
       ;;
@@ -231,20 +205,20 @@ if test -z "$show_help"; then
 
   # Only execute mode is allowed to have -dlopen flags.
   if test -n "$execute_dlfiles" && test "$mode" != execute; then
-    $echo "$progname: unrecognized option \`-dlopen'" 1>&2
+    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
     $echo "$help" 1>&2
     exit 1
   fi
 
   # Change the help message to a mode-specific one.
   generic_help="$help"
-  help="Try \`$progname --help --mode=$mode' for more information."
+  help="Try \`$modename --help --mode=$mode' for more information."
 
   # These modes are in order of execution frequency so that they run quickly.
   case "$mode" in
   # libtool compile mode
   compile)
-    progname="$progname: compile"
+    modename="$modename: compile"
     # Get the compilation command and the source file.
     base_compile=
     lastarg=
@@ -255,7 +229,7 @@ if test -z "$show_help"; then
     do
       # The only flag that cannot be specified is the output filename.
       if test "X$arg" = "X-o"; then
-       $echo "$progname: you cannot specify the output filename with \`-o'" 1>&2
+       $echo "$modename: you cannot specify the output filename with \`-o'" 1>&2
        $echo "$help" 1>&2
        exit 1
       fi
@@ -307,13 +281,13 @@ if test -z "$show_help"; then
     case "$libobj" in
     *.lo) obj=`$echo "$libobj" | sed -e 's/\.lo$/.o/'` ;;
     *)
-      $echo "$progname: cannot determine name of library object from \`$srcfile'" 1>&2
+      $echo "$modename: cannot determine name of library object from \`$srcfile'" 1>&2
       exit 1
       ;;
     esac
 
     if test -z "$base_compile"; then
-      $echo "$progname: you must specify a compilation command" 1>&2
+      $echo "$modename: you must specify a compilation command" 1>&2
       $echo "$help" 1>&2
       exit 1
     fi
@@ -369,8 +343,8 @@ if test -z "$show_help"; then
     # Create an invalid libtool object if no PIC, so that we don't accidentally
     # link it into a program.
     if test "$build_libtool_libs" != yes; then
-      $show "$echo timestamp > $libobj"
-      $run eval "\$echo timestamp > \$libobj" || exit $?
+      $show "echo timestamp > $libobj"
+      $run eval "echo timestamp > \$libobj" || exit $?
     fi
 
     exit 0
@@ -378,9 +352,9 @@ if test -z "$show_help"; then
 
   # libtool link mode
   link)
-    progname="$progname: link"
+    modename="$modename: link"
     CC="$nonopt"
-    allow_undefined=no
+    allow_undefined=yes
     compile_command="$CC"
     finalize_command="$CC"
 
@@ -408,7 +382,7 @@ if test -z "$show_help"; then
       case "$arg" in
       -all-static | -static)
         if test "X$arg" = "X-all-static" && test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
-           $echo "$progname: warning: complete static linking is impossible in this configuration" 1>&2
+           $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
         fi
         build_libtool_libs=no
        build_old_libs=yes
@@ -468,7 +442,8 @@ if test -z "$show_help"; then
        ;;
 
       -allow-undefined)
-       allow_undefined=yes
+       # FIXME: remove this flag sometime in the future.
+       $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
        continue
        ;;
 
@@ -504,7 +479,7 @@ if test -z "$show_help"; then
          # Add the corresponding hardcode_libdir_flag, if it is not identical.
           ;;
         *)
-          $echo "$progname: \`-L$dir' cannot specify a relative directory" 1>&2
+          $echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2
           exit 1
           ;;
         esac
@@ -513,6 +488,11 @@ if test -z "$show_help"; then
 
       -l*) deplibs="$deplibs $arg" ;;
 
+      -no-undefined)
+       allow_undefined=no
+       continue
+       ;;
+
       -o) prev=output ;;
 
       -rpath)
@@ -583,7 +563,7 @@ if test -z "$show_help"; then
         # Check to see that this really is a libtool archive.
         if egrep '^# Generated by ltmain.sh' $arg >/dev/null 2>&1; then :
         else
-          $echo "$progname: \`$arg' is not a valid libtool archive" 1>&2
+          $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
           exit 1
         fi
 
@@ -594,7 +574,7 @@ if test -z "$show_help"; then
         esac
 
         if test -z "$libdir"; then
-          $echo "$progname: \`$arg' contains no -rpath information" 1>&2
+          $echo "$modename: \`$arg' contains no -rpath information" 1>&2
           exit 1
         fi
 
@@ -605,7 +585,7 @@ if test -z "$show_help"; then
         done
 
         if test -z "$linklib"; then
-          $echo "$progname: cannot find name of link library for \`$arg'" 1>&2
+          $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
           exit 1
         fi
 
@@ -707,7 +687,7 @@ if test -z "$show_help"; then
             *)
               absdir=`cd "$dir" && pwd`
               if test -z "$absdir"; then
-                $echo "$progname: cannot determine absolute directory name of \`$dir'" 1>&2
+                $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
                 exit 1
               fi
               dir="$absdir"
@@ -725,7 +705,7 @@ if test -z "$show_help"; then
             ;;
 
           *)
-            $echo "$progname: \`$hardcode_action' is an unknown hardcode action" 1>&2
+            $echo "$modename: \`$hardcode_action' is an unknown hardcode action" 1>&2
             exit 1
             ;;
           esac
@@ -745,7 +725,7 @@ if test -z "$show_help"; then
         else
           # Transform directly to old archives if we don't build new libraries.
           if test -n "$pic_flag" && test -z "$old_library"; then
-            $echo "$progname: cannot find static library for \`$arg'" 1>&2
+            $echo "$modename: cannot find static library for \`$arg'" 1>&2
             exit 1
           fi
 
@@ -778,12 +758,14 @@ if test -z "$show_help"; then
       esac
 
       # Now actually substitute the argument into the commands.
-      compile_command="$compile_command $arg"
-      finalize_command="$finalize_command $arg"
+      if test -n "$arg"; then
+       compile_command="$compile_command $arg"
+       finalize_command="$finalize_command $arg"
+      fi
     done
 
     if test -n "$prev"; then
-      $echo "$progname: the \`$prevarg' option requires an argument" 1>&2
+      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
       $echo "$help" 1>&2
       exit 1
     fi
@@ -792,13 +774,13 @@ if test -z "$show_help"; then
     oldobjs=
     case "$output" in
     "")
-      $echo "$progname: you must specify an output file" 1>&2
+      $echo "$modename: you must specify an output file" 1>&2
       $echo "$help" 1>&2
       exit 1
       ;;
 
     */*)
-      $echo "$progname: output file \`$output' must have no directory components" 1>&2
+      $echo "$modename: output file \`$output' must have no directory components" 1>&2
       exit 1
       ;;
 
@@ -807,7 +789,7 @@ if test -z "$show_help"; then
       case "$output" in
       lib*) ;;
       *)
-       $echo "$progname: libtool library \`$arg' must begin with \`lib'" 1>&2
+       $echo "$modename: libtool library \`$arg' must begin with \`lib'" 1>&2
        $echo "$help" 1>&2
        exit 1
        ;;
@@ -825,13 +807,13 @@ if test -z "$show_help"; then
       age=0
 
       if test -n "$objs"; then
-        $echo "$progname: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
+        $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
         exit 1
       fi
 
       # How the heck are we supposed to write a wrapper for a shared library?
       if test -n "$link_against_libtool_libs"; then
-        $echo "$progname: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2
+        $echo "$modename: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2
         exit 1
       fi
 
@@ -839,21 +821,21 @@ if test -z "$show_help"; then
       deplibs="$deplibs -lc"
 
       if test -n "$dlfiles$dlprefiles"; then
-        $echo "$progname: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2
+        $echo "$modename: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2
         # Nullify the symbol file.
         compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"`
         finalize_command=`$echo "$finalize_command" | sed "s% @SYMFILE@%%"`
       fi
 
       if test -z "$rpath"; then
-        $echo "$progname: you must specify an installation directory with \`-rpath'" 1>&2
+        $echo "$modename: you must specify an installation directory with \`-rpath'" 1>&2
        $echo "$help" 1>&2
         exit 1
       fi
 
       set dummy $rpath
       if test $# -gt 2; then
-       $echo "$progname: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
+       $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
       fi
       install_libdir="$2"
 
@@ -863,7 +845,7 @@ if test -z "$show_help"; then
       IFS="$save_ifs"
 
       if test -n "$5"; then
-        $echo "$progname: too many parameters to \`-version-info'" 1>&2
+        $echo "$modename: too many parameters to \`-version-info'" 1>&2
         $echo "$help" 1>&2
         exit 1
       fi
@@ -876,8 +858,8 @@ if test -z "$show_help"; then
       case "$current" in
       0 | [1-9] | [1-9][0-9]*) ;;
       *)
-        $echo "$progname: CURRENT \`$current' is not a nonnegative integer" 1>&2
-        $echo "$progname: \`$vinfo' is not valid version information" 1>&2
+        $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
+        $echo "$modename: \`$vinfo' is not valid version information" 1>&2
         exit 1
         ;;
       esac
@@ -885,8 +867,8 @@ if test -z "$show_help"; then
       case "$revision" in
       0 | [1-9] | [1-9][0-9]*) ;;
       *)
-        $echo "$progname: REVISION \`$revision' is not a nonnegative integer" 1>&2
-        $echo "$progname: \`$vinfo' is not valid version information" 1>&2
+        $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
+        $echo "$modename: \`$vinfo' is not valid version information" 1>&2
         exit 1
         ;;
       esac
@@ -894,15 +876,15 @@ if test -z "$show_help"; then
       case "$age" in
       0 | [1-9] | [1-9][0-9]*) ;;
       *)
-        $echo "$progname: AGE \`$age' is not a nonnegative integer" 1>&2
-        $echo "$progname: \`$vinfo' is not valid version information" 1>&2
+        $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
+        $echo "$modename: \`$vinfo' is not valid version information" 1>&2
         exit 1
         ;;
       esac
 
       if test $age -gt $current; then
-        $echo "$progname: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
-        $echo "$progname: \`$vinfo' is not valid version information" 1>&2
+        $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
+        $echo "$modename: \`$vinfo' is not valid version information" 1>&2
         exit 1
       fi
 
@@ -942,8 +924,8 @@ if test -z "$show_help"; then
         ;;
 
       *)
-        $echo "$progname: unknown library version type \`$version_type'" 1>&2
-        $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
+        $echo "$modename: unknown library version type \`$version_type'" 1>&2
+        echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
         exit 1
         ;;
       esac
@@ -965,7 +947,7 @@ if test -z "$show_help"; then
       # Check to see if the archive will have undefined symbols.
       if test "$allow_undefined" = yes; then
         if test "$allow_undefined_flag" = unsupported; then
-          $echo "$progname: warning: undefined symbols not allowed in $host shared libraries" 1>&2
+          $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
           build_libtool_libs=no
          build_old_libs=yes
         fi
@@ -1007,9 +989,9 @@ if test -z "$show_help"; then
         IFS="$save_ifs"
 
         # Create links to the real library.
-        for link in $linknames; do
-          $show "(cd $objdir && $LN_S $realname $link)"
-          $run eval '(cd $objdir && $LN_S $realname $link)' || exit $?
+        for linkname in $linknames; do
+          $show "(cd $objdir && $LN_S $realname $linkname)"
+          $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $?
         done
 
         # If -export-dynamic was specified, set the dlname.
@@ -1022,33 +1004,33 @@ if test -z "$show_help"; then
 
     *.lo | *.o)
       if test -n "$link_against_libtool_libs"; then
-        $echo "$progname: error: cannot link libtool libraries into reloadable objects" 1>&2
+        $echo "$modename: error: cannot link libtool libraries into reloadable objects" 1>&2
         exit 1
       fi
 
       if test -n "$deplibs"; then
-        $echo "$progname: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2
+        $echo "$modename: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2
       fi
 
       if test -n "$dlfiles$dlprefiles"; then
-        $echo "$progname: warning: \`-dlopen' is ignored while creating objects" 1>&2
+        $echo "$modename: warning: \`-dlopen' is ignored while creating objects" 1>&2
         # Nullify the symbol file.
         compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"`
         finalize_command=`$echo "$finalize_command" | sed "s% @SYMFILE@%%"`
       fi
 
       if test -n "$rpath"; then
-        $echo "$progname: warning: \`-rpath' is ignored while creating objects" 1>&2
+        $echo "$modename: warning: \`-rpath' is ignored while creating objects" 1>&2
       fi
 
       if test -n "$vinfo"; then
-        $echo "$progname: warning: \`-version-info' is ignored while creating objects" 1>&2
+        $echo "$modename: warning: \`-version-info' is ignored while creating objects" 1>&2
       fi
 
       case "$output" in
       *.lo)
         if test -n "$objs"; then
-          $echo "$progname: cannot build library object \`$output' from non-libtool objects" 1>&2
+          $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
           exit 1
         fi
         libobj="$output"
@@ -1082,8 +1064,8 @@ if test -z "$show_help"; then
       if test "$build_libtool_libs" != yes; then
         # Create an invalid libtool object if no PIC, so that we don't
         # accidentally link it into a program.
-        $show "$echo timestamp > $libobj"
-        $run eval "\$echo timestamp > $libobj" || exit $?
+        $show "echo timestamp > $libobj"
+        $run eval "echo timestamp > $libobj" || exit $?
         exit 0
       fi
 
@@ -1110,7 +1092,7 @@ if test -z "$show_help"; then
 
     *)
       if test -n "$vinfo"; then
-        $echo "$progname: warning: \`-version-info' is ignored while linking programs" 1>&2
+        $echo "$modename: warning: \`-version-info' is ignored while linking programs" 1>&2
       fi
 
       if test -n "$rpath"; then
@@ -1203,7 +1185,7 @@ if test -z "$show_help"; then
          if sort "$nlist" | uniq > "$nlist"T; then
            mv -f "$nlist"T "$nlist"
            wcout=`wc "$nlist" 2>/dev/null`
-           count=`$echo "$wcout" | sed 's/^[   ]*\([0-9][0-9]*\).*$/\1/'`
+           count=`echo "$wcout" | sed 's/^[    ]*\([0-9][0-9]*\).*$/\1/'`
            (test "$count" -ge 0) 2>/dev/null || count=-1
          else
            $rm "$nlist"T
@@ -1230,7 +1212,7 @@ EOF
            if test -f "$nlist"; then
              sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms"
            else
-             $echo '/* NONE */' >> "$objdir/$dlsyms"
+             echo '/* NONE */' >> "$objdir/$dlsyms"
 EOF
            fi
 
@@ -1258,7 +1240,7 @@ dld_preloaded_symbols[] =
 EOF
 
            if test -f "$nlist"; then
-             sed 's/^\(.*\) \(.*\)$/  {"\1", \&\2},/' < "$nlist" >> "$objdir/$dlsyms"
+             sed 's/^\(.*\) \(.*\)$/  {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms"
            fi
 
            cat <<\EOF >> "$objdir/$dlsyms"
@@ -1272,7 +1254,7 @@ EOF
            ;;
 
          *)
-           echo "$progname: unknown suffix for \`$dlsyms'" 1>&2
+           $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
            exit 1
            ;;
          esac
@@ -1286,12 +1268,12 @@ EOF
         compile_command=`$echo "$compile_command" | sed "s%@SYMFILE@%$objdir/${output}S.o%"`
         finalize_command=`$echo "$finalize_command" | sed "s%@SYMFILE@%$objdir/${output}S.o%"`
       elif test "$export_dynamic" != yes; then
-        test -n "$dlfiles$dlprefiles" && $echo "$progname: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2
+        test -n "$dlfiles$dlprefiles" && $echo "$modename: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2
       else
         # We keep going just in case the user didn't refer to
         # dld_preloaded_symbols.  The linker will fail if global_symbol_pipe
         # really was required.
-        $echo "$progname: not configured to extract global symbols from dlpreopened files" 1>&2
+        $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
 
         # Nullify the symbol file.
         compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"`
@@ -1361,8 +1343,8 @@ EOF
       case "$hardcode_action" in
       relink)
         # AGH! Flame the AIX and HP-UX people for me, will ya?
-        $echo "$progname: warning: using a buggy system linker" 1>&2
-        $echo "$progname: relinking will be required before \`$output' can be installed" 1>&2
+        $echo "$modename: warning: using a buggy system linker" 1>&2
+        $echo "$modename: relinking will be required before \`$output' can be installed" 1>&2
         ;;
       esac
 
@@ -1475,7 +1457,7 @@ EOF
     # The program doesn't exist.
     \$echo "\$0: error: \$progdir/\$program does not exist" 1>&2
     \$echo "This script is just a wrapper for \$program." 1>&2
-    \$echo "See the $PACKAGE documentation for more information." 1>&2
+    echo "See the $PACKAGE documentation for more information." 1>&2
     exit 1
   fi
 fi
@@ -1562,7 +1544,7 @@ EOF
 
   # libtool install mode
   install)
-    progname="$progname: install"
+    modename="$modename: install"
 
     # There may be an optional /bin/sh argument at the beginning of
     # install_prog (especially on Windows NT).
@@ -1642,22 +1624,22 @@ EOF
     done
 
     if test -z "$install_prog"; then
-      $echo "$progname: you must specify an install program" 1>&2
+      $echo "$modename: you must specify an install program" 1>&2
       $echo "$help" 1>&2
       exit 1
     fi
 
     if test -n "$prev"; then
-      $echo "$progname: the \`$prev' option requires an argument" 1>&2
+      $echo "$modename: the \`$prev' option requires an argument" 1>&2
       $echo "$help" 1>&2
       exit 1
     fi
 
     if test -z "$files"; then
       if test -z "$dest"; then
-        $echo "$progname: no file or destination specified" 1>&2
+        $echo "$modename: no file or destination specified" 1>&2
       else
-        $echo "$progname: you must specify a destination" 1>&2
+        $echo "$modename: you must specify a destination" 1>&2
       fi
       $echo "$help" 1>&2
       exit 1
@@ -1679,7 +1661,7 @@ EOF
       # Not a directory, so check to see that there is only one file specified.
       set dummy $files
       if test $# -gt 2; then
-        $echo "$progname: \`$dest' is not a directory" 1>&2
+        $echo "$modename: \`$dest' is not a directory" 1>&2
         $echo "$help" 1>&2
         exit 1
       fi
@@ -1691,7 +1673,7 @@ EOF
         case "$file" in
         *.lo) ;;
         *)
-          $echo "$progname: \`$destdir' must be an absolute directory name" 1>&2
+          $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
           $echo "$help" 1>&2
           exit 1
           ;;
@@ -1720,7 +1702,7 @@ EOF
         # Check to see that this really is a libtool archive.
         if egrep '^# Generated by ltmain.sh' $file >/dev/null 2>&1; then :
         else
-          $echo "$progname: \`$file' is not a valid libtool archive" 1>&2
+          $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
           $echo "$help" 1>&2
           exit 1
         fi
@@ -1769,7 +1751,7 @@ EOF
               $show "$striplib $destdir/$realname"
               $run $striplib $destdir/$realname || exit $?
             else
-              $echo "$progname: warning: no library stripping program" 1>&2
+              $echo "$modename: warning: no library stripping program" 1>&2
             fi
           fi
 
@@ -1840,7 +1822,7 @@ EOF
           destfile=
           ;;
         *)
-          $echo "$progname: cannot copy a libtool object to \`$destfile'" 1>&2
+          $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
           $echo "$help" 1>&2
           exit 1
           ;;
@@ -1877,7 +1859,7 @@ EOF
 
           # Check the variables that should have been set.
           if test -z "$link_against_libtool_libs" || test -z "$finalize_command"; then
-            $echo "$progname: invalid libtool wrapper script \`$file'" 1>&2
+            $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
             exit 1
           fi
 
@@ -1894,26 +1876,26 @@ EOF
             fi
             libfile="$libdir/`$echo "$lib" | sed 's%^.*/%%g'`"
             if test -z "$libdir"; then
-              $echo "$progname: warning: \`$lib' contains no -rpath information" 1>&2
+              $echo "$modename: warning: \`$lib' contains no -rpath information" 1>&2
             elif test -f "$libfile"; then :
             else
-              $echo "$progname: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
+              $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
               finalize=no
             fi
           done
 
           if test "$hardcode_action" = relink; then
             if test "$finalize" = yes; then
-              $echo "$progname: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2
+              $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2
               $show "$finalize_command"
               if $run eval "$finalize_command"; then :
               else
-                $echo "$progname: error: relink \`$file' with the above command before installing it" 1>&2
+                $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
                 continue
               fi
               file="$objdir/$file"T
             else
-              $echo "$progname: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2
+              $echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2
             fi
           else
             # Install the binary that we compiled earlier.
@@ -1942,7 +1924,7 @@ EOF
           $show "$old_striplib $oldlib"
           $run $old_striplib $oldlib || exit $?
         else
-          $echo "$progname: warning: no static library stripping program" 1>&2
+          $echo "$modename: warning: no static library stripping program" 1>&2
         fi
       fi
 
@@ -1958,7 +1940,7 @@ EOF
     done
 
     if test -n "$future_libdirs"; then
-      $echo "$progname: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
+      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
     fi
 
     if test -n "$current_libdirs"; then
@@ -1973,44 +1955,51 @@ EOF
 
   # libtool finish mode
   finish)
-    progname="$progname: finish"
+    modename="$modename: finish"
     libdirs="$nonopt"
 
-    if test -n "$finish_cmds" && test -n "$libdirs"; then
+    if test -n "$finish_cmds$finish_eval" && 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
+       if test -n "$finish_cmds"; then
+         # Do each command in the finish commands.
+         cmds=`eval \\$echo \"$finish_cmds\"`
+          IFS="${IFS=  }"; save_ifs="$IFS"; IFS=';'
+          for cmd in $cmds; do
+            IFS="$save_ifs"
+            $show "$cmd"
+            $run eval "$cmd"
+          done
           IFS="$save_ifs"
-          $show "$cmd"
-          $run eval "$cmd"
-        done
-        IFS="$save_ifs"
+       fi
+       if test -n "$finish_eval"; then
+         # Do the single finish_eval.
+         cmds=`eval \\$echo \"$finish_eval\"`
+         $run eval "$cmds"
+       fi
       done
     fi
 
-    $echo "To link against installed libraries in LIBDIR, users may have to:"
+    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"
+      echo "   - add LIBDIR to their \`$shlibpath_var' environment variable"
     fi
-    $echo "   - use the \`-LLIBDIR' linker flag"
+    echo "   - use the \`-LLIBDIR' linker flag"
     exit 0
     ;;
 
   # libtool execute mode
   execute)
-    progname="$progname: execute"
+    modename="$modename: execute"
 
     # The first argument is the command name.
     cmd="$nonopt"
     if test -z "$cmd"; then
-      $echo "$progname: you must specify a COMMAND" 1>&2
+      $echo "$modename: you must specify a COMMAND" 1>&2
       $echo "$help"
       exit 1
     fi
@@ -2019,7 +2008,7 @@ EOF
     for file in $execute_dlfiles; do
       if test -f "$file"; then :
       else
-       $echo "$progname: \`$file' is not a file" 1>&2
+       $echo "$modename: \`$file' is not a file" 1>&2
        $echo "$help" 1>&2
        exit 1
       fi
@@ -2030,7 +2019,7 @@ EOF
         # Check to see that this really is a libtool archive.
         if egrep '^# Generated by ltmain.sh' $file >/dev/null 2>&1; then :
         else
-          $echo "$progname: \`$lib' is not a valid libtool archive" 1>&2
+          $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
           $echo "$help" 1>&2
           exit 1
         fi
@@ -2048,7 +2037,7 @@ EOF
        # Skip this library if it cannot be dlopened.
        if test -z "$dlname"; then
          # Warn if it was a shared library.
-         test -n "$library_names" && $echo "$progname: warning: \`$file' was not linked with \`-export-dynamic'"
+         test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
          continue
        fi
 
@@ -2058,7 +2047,7 @@ EOF
        if test -f "$dir/$objdir/$dlname"; then
          dir="$dir/$objdir"
        else
-         $echo "$progname: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
+         $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
          exit 1
        fi
        ;;
@@ -2070,7 +2059,7 @@ EOF
        ;;
 
       *)
-       $echo "$progname: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
+       $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
         continue
        ;;
       esac
@@ -2122,7 +2111,7 @@ EOF
       # Now actually exec the command.
       eval "exec \$cmd$args"
 
-      $echo "$progname: cannot exec \$cmd$args"
+      $echo "$modename: cannot exec \$cmd$args"
       exit 1
     else
       # Display what would be done.
@@ -2135,7 +2124,7 @@ EOF
 
   # libtool uninstall mode
   uninstall)
-    progname="$progname: uninstall"
+    modename="$modename: uninstall"
     rm="$nonopt"
     files=
 
@@ -2148,7 +2137,7 @@ EOF
     done
 
     if test -z "$rm"; then
-      $echo "$progname: you must specify an RM program" 1>&2
+      $echo "$modename: you must specify an RM program" 1>&2
       $echo "$help" 1>&2
       exit 1
     fi
@@ -2174,6 +2163,33 @@ EOF
           test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname"
           test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
 
+         $show "$rm $rmfiles"
+         $run $rm $rmfiles
+
+         if test -n "$library_names"; then
+           # Do each command in the postuninstall commands.
+           cmds=`eval \\$echo \"$postuninstall_cmds\"`
+           IFS="${IFS=         }"; save_ifs="$IFS"; IFS=';'
+           for cmd in $cmds; do
+             IFS="$save_ifs"
+             $show "$cmd"
+             $run eval "$cmd"
+           done
+           IFS="$save_ifs"
+         fi
+
+          if test -n "$old_library"; then
+           # Do each command in the old_postuninstall commands.
+           cmds=`eval \\$echo \"$old_postuninstall_cmds\"`
+           IFS="${IFS=         }"; save_ifs="$IFS"; IFS=';'
+           for cmd in $cmds; do
+             IFS="$save_ifs"
+             $show "$cmd"
+             $run eval "$cmd"
+           done
+           IFS="$save_ifs"
+         fi
+
           # FIXME: should reinstall the best remaining shared library.
         fi
         ;;
@@ -2183,23 +2199,27 @@ EOF
           oldobj=`$echo "$name" | sed 's/\.lo$/\.o/'`
           rmfiles="$rmfiles $dir/$oldobj"
         fi
+       $show "$rm $rmfiles"
+       $run $rm $rmfiles
         ;;
-      esac
 
-      $show "$rm $rmfiles"
-      $run $rm $rmfiles
+      *)
+       $show "$rm $rmfiles"
+       $run $rm $rmfiles
+       ;;
+      esac
     done
     exit 0
     ;;
 
   "")
-    $echo "$progname: you must specify a MODE" 1>&2
+    $echo "$modename: you must specify a MODE" 1>&2
     $echo "$generic_help" 1>&2
     exit 1
     ;;
   esac
 
-  $echo "$progname: invalid operation mode \`$mode'" 1>&2
+  $echo "$modename: invalid operation mode \`$mode'" 1>&2
   $echo "$generic_help" 1>&2
   exit 1
 fi # test -z "$show_help"
@@ -2207,7 +2227,7 @@ fi # test -z "$show_help"
 # We need to display help for each of the modes.
 case "$mode" in
 "") cat <<EOF
-Usage: $progname [OPTION]... [MODE-ARG]...
+Usage: $modename [OPTION]... [MODE-ARG]...
 
 Provide generalized library-building support services.
 
@@ -2229,14 +2249,14 @@ MODE must be one of the following:
       link            create a library or an executable
       uninstall       remove libraries from an installed directory
 
-MODE-ARGS vary depending on the MODE.  Try \`$progname --help --mode=MODE' for
+MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
 a more detailed description of MODE.
 EOF
   ;;
 
 compile)
   cat <<EOF
-Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
 
 Compile a source file into a libtool library object.
 
@@ -2251,7 +2271,7 @@ EOF
 
 execute)
   cat <<EOF
-Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
+Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
 
 Automatically set library path, then run a program.
 
@@ -2272,7 +2292,7 @@ EOF
 
 finish)
   cat <<EOF
-Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
+Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
 
 Complete the installation of libtool libraries.
 
@@ -2285,7 +2305,7 @@ EOF
 
 install)
   cat <<EOF
-Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
+Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
 
 Install executables or libraries.
 
@@ -2299,7 +2319,7 @@ EOF
 
 link)
   cat <<EOF
-Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
+Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
 
 Link object files or libraries together to form another library, or to
 create an executable program.
@@ -2310,12 +2330,12 @@ a program from several object files.
 The following components of LINK-COMMAND are treated specially:
 
   -all-static       do not do any dynamic linking at all
-  -allow-undefined  allow a libtool library to reference undefined symbols
   -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
   -dlpreopen FILE   link in FILE and add its symbols to dld_preloaded_symbols
   -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
   -LLIBDIR          search LIBDIR for required installed libraries
   -lNAME            OUTPUT-FILE requires the installed library libNAME
+  -no-undefined     declare that a library does not refer to external symbols
   -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
   -rpath LIBDIR     the created library will eventually be installed in LIBDIR
   -static           do not do any dynamic linking of libtool libraries
@@ -2341,7 +2361,7 @@ EOF
 
 uninstall)
   cat <<EOF
-Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
 
 Remove libraries from an installation directory.
 
@@ -2355,14 +2375,14 @@ EOF
   ;;
 
 *)
-  $echo "$progname: invalid operation mode \`$mode'" 1>&2
+  $echo "$modename: invalid operation mode \`$mode'" 1>&2
   $echo "$help" 1>&2
   exit 1
   ;;
 esac
 
-$echo
-$echo "Try \`$progname --help' for more information about other modes."
+echo
+$echo "Try \`$modename --help' for more information about other modes."
 
 exit 0