Skip to content
Snippets Groups Projects
ltmain.sh 136 KiB
Newer Older
  • Learn to ignore specific revisions
  • Daniel Stenberg's avatar
    Daniel Stenberg committed
    	dest="$arg"
    	continue
          fi
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
          -d) isdir=yes ;;
          -f) prev="-f" ;;
          -g) prev="-g" ;;
          -m) prev="-m" ;;
          -o) prev="-o" ;;
          -s)
    	stripme=" -s"
    	continue
    	;;
          -*) ;;
    
          *)
    	# If the previous option needed an argument, then skip it.
    	if test -n "$prev"; then
    	  prev=
    	else
    	  dest="$arg"
    	  continue
    	fi
    	;;
          esac
    
          # Aesthetically quote the argument.
          arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
          *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
    	arg="\"$arg\""
    	;;
          esac
          install_prog="$install_prog $arg"
        done
    
        if test -z "$install_prog"; then
          $echo "$modename: you must specify an install program" 1>&2
          $echo "$help" 1>&2
          exit 1
        fi
    
        if test -n "$prev"; then
          $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 "$modename: no file or destination specified" 1>&2
          else
    	$echo "$modename: you must specify a destination" 1>&2
          fi
          $echo "$help" 1>&2
          exit 1
        fi
    
        # Strip any trailing slash from the destination.
        dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
    
        # Check to see that the destination is a directory.
        test -d "$dest" && isdir=yes
        if test "$isdir" = yes; then
          destdir="$dest"
          destname=
        else
          destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
          test "X$destdir" = "X$dest" && destdir=.
          destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
    
          # Not a directory, so check to see that there is only one file specified.
          set dummy $files
          if test $# -gt 2; then
    	$echo "$modename: \`$dest' is not a directory" 1>&2
    	$echo "$help" 1>&2
    	exit 1
          fi
        fi
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
        [\\/]* | [A-Za-z]:[\\/]*) ;;
        *)
          for file in $files; do
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	*.lo) ;;
    	*)
    	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
    	  $echo "$help" 1>&2
    	  exit 1
    	  ;;
    	esac
          done
          ;;
        esac
    
        # This variable tells wrapper scripts just to set variables rather
        # than running their programs.
        libtool_install_magic="$magic"
    
        staticlibs=
        future_libdirs=
        current_libdirs=
        for file in $files; do
    
          # Do each installation.
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	# Do the static libraries later.
    	staticlibs="$staticlibs $file"
    	;;
    
          *.la)
    	# Check to see that this really is a libtool archive.
    	if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
    	else
    	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
    	  $echo "$help" 1>&2
    	  exit 1
    	fi
    
    	library_names=
    	old_library=
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	# If there is no directory component, then add one.
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	*/* | *\\*) . $file ;;
    	*) . ./$file ;;
    	esac
    
    	# Add the libdir to current_libdirs if it is the destination.
    	if test "X$destdir" = "X$libdir"; then
    	  case "$current_libdirs " in
    	  *" $libdir "*) ;;
    	  *) current_libdirs="$current_libdirs $libdir" ;;
    	  esac
    	else
    	  # Note the libdir as a future libdir.
    	  case "$future_libdirs " in
    	  *" $libdir "*) ;;
    	  *) future_libdirs="$future_libdirs $libdir" ;;
    	  esac
    	fi
    
    
    	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	test "X$dir" = "X$file/" && dir=
    	dir="$dir$objdir"
    
    
    	if test -n "$relink_command"; then
    	  $echo "$modename: warning: relinking \`$file'" 1>&2
    	  $show "$relink_command"
    	  if $run eval "$relink_command"; then :
    	  else
    	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
    	    continue
    	  fi
    	fi
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	# See the names of the shared library.
    	set dummy $library_names
    	if test -n "$2"; then
    	  realname="$2"
    	  shift
    	  shift
    
    
    	  srcname="$realname"
    	  test -n "$relink_command" && srcname="$realname"T
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	  # Install the shared library and build the symlinks.
    
    	  $show "$install_prog $dir/$srcname $destdir/$realname"
    	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
    	  if test -n "$stripme" && test -n "$striplib"; then
    	    $show "$striplib $destdir/$realname"
    	    $run eval "$striplib $destdir/$realname" || exit $?
    	  fi
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    
    	  if test $# -gt 0; then
    	    # Delete the old symlinks, and create new ones.
    	    for linkname
    	    do
    	      if test "$linkname" != "$realname"; then
    		$show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
    		$run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
    	      fi
    	    done
    	  fi
    
    	  # Do each command in the postinstall commands.
    	  lib="$destdir/$realname"
    	  eval cmds=\"$postinstall_cmds\"
    	  IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
    	  for cmd in $cmds; do
    	    IFS="$save_ifs"
    	    $show "$cmd"
    	    $run eval "$cmd" || exit $?
    	  done
    	  IFS="$save_ifs"
    	fi
    
    	# Install the pseudo-library for information purposes.
    	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
    	instname="$dir/$name"i
    	$show "$install_prog $instname $destdir/$name"
    	$run eval "$install_prog $instname $destdir/$name" || exit $?
    
    	# Maybe install the static library, too.
    	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
    	;;
    
          *.lo)
    	# Install (i.e. copy) a libtool object.
    
    	# Figure out destination file name, if it wasn't already specified.
    	if test -n "$destname"; then
    	  destfile="$destdir/$destname"
    	else
    	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
    	  destfile="$destdir/$destfile"
    	fi
    
    	# Deduce the name of the destination old-style object file.
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	*.lo)
    	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
    	  ;;
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	  staticdest="$destfile"
    	  destfile=
    	  ;;
    	*)
    	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
    	  $echo "$help" 1>&2
    	  exit 1
    	  ;;
    	esac
    
    	# Install the libtool object if requested.
    	if test -n "$destfile"; then
    	  $show "$install_prog $file $destfile"
    	  $run eval "$install_prog $file $destfile" || exit $?
    	fi
    
    	# Install the old object if enabled.
    	if test "$build_old_libs" = yes; then
    	  # Deduce the name of the old-style object file.
    	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
    
    	  $show "$install_prog $staticobj $staticdest"
    	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
    	fi
    	exit 0
    	;;
    
          *)
    	# Figure out destination file name, if it wasn't already specified.
    	if test -n "$destname"; then
    	  destfile="$destdir/$destname"
    	else
    	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
    	  destfile="$destdir/$destfile"
    	fi
    
    	# Do a test to see if this is really a libtool program.
    	if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	  relink_command=
    
    	  # If there is no directory component, then add one.
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	  */* | *\\*) . $file ;;
    	  *) . ./$file ;;
    	  esac
    
    	  # Check the variables that should have been set.
    
    	  if test -z "$notinst_deplibs"; then
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	    $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
    	    exit 1
    	  fi
    
    	  finalize=yes
    
    	  for lib in $notinst_deplibs; do
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	    # Check to see that each library is installed.
    	    libdir=
    	    if test -f "$lib"; then
    	      # If there is no directory component, then add one.
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	      */* | *\\*) . $lib ;;
    	      *) . ./$lib ;;
    	      esac
    	    fi
    
    	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	    if test -n "$libdir" && test ! -f "$libfile"; then
    	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
    	      finalize=no
    	    fi
    	  done
    
    
    	  relink_command=
    	  # If there is no directory component, then add one.
    	  case $file in
    	  */* | *\\*) . $file ;;
    	  *) . ./$file ;;
    	  esac
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	  outputname=
    	  if test "$fast_install" = no && test -n "$relink_command"; then
    	    if test "$finalize" = yes && test -z "$run"; then
    	      tmpdir="/tmp"
    	      test -n "$TMPDIR" && tmpdir="$TMPDIR"
    	      tmpdir="$tmpdir/libtool-$$"
    	      if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
    	      else
    		$echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
    		continue
    	      fi
    
    	      file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	      outputname="$tmpdir/$file"
    	      # Replace the output file specification.
    	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
    
    	      $show "$relink_command"
    	      if $run eval "$relink_command"; then :
    	      else
    		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
    		${rm}r "$tmpdir"
    		continue
    	      fi
    	      file="$outputname"
    	    else
    	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
    	    fi
    	  else
    	    # Install the binary that we compiled earlier.
    	    file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
    	  fi
    	fi
    
    
    	# remove .exe since cygwin /usr/bin/install will append another
    	# one anyways
    	case $install_prog,$host in
    	/usr/bin/install*,*cygwin*)
    	  case $file:$destfile in
    	  *.exe:*.exe)
    	    # this is ok
    	    ;;
    	  *.exe:*)
    	    destfile=$destfile.exe
    	    ;;
    	  *:*.exe)
    	    destfile=`echo $destfile | sed -e 's,.exe$,,'`
    	    ;;
    	  esac
    	  ;;
    	esac
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	$show "$install_prog$stripme $file $destfile"
    	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
    	test -n "$outputname" && ${rm}r "$tmpdir"
    	;;
          esac
        done
    
        for file in $staticlibs; do
          name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
    
          # Set up the ranlib parameters.
          oldlib="$destdir/$name"
    
          $show "$install_prog $file $oldlib"
          $run eval "$install_prog \$file \$oldlib" || exit $?
    
    
          if test -n "$stripme" && test -n "$striplib"; then
    	$show "$old_striplib $oldlib"
    	$run eval "$old_striplib $oldlib" || exit $?
          fi
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
          # Do each command in the postinstall commands.
          eval cmds=\"$old_postinstall_cmds\"
          IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
          for cmd in $cmds; do
    	IFS="$save_ifs"
    	$show "$cmd"
    	$run eval "$cmd" || exit $?
          done
          IFS="$save_ifs"
        done
    
        if test -n "$future_libdirs"; then
          $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
        fi
    
        if test -n "$current_libdirs"; then
          # Maybe just do a dry run.
          test -n "$run" && current_libdirs=" -n$current_libdirs"
    
          exec_cmd='$SHELL $0 --finish$current_libdirs'
        else
          exit 0
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
        fi
        ;;
    
      # libtool finish mode
      finish)
        modename="$modename: finish"
        libdirs="$nonopt"
        admincmds=
    
        if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
          for dir
          do
    	libdirs="$libdirs $dir"
          done
    
          for libdir in $libdirs; do
    	if test -n "$finish_cmds"; then
    	  # Do each command in the finish commands.
    	  eval cmds=\"$finish_cmds\"
    	  IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
    	  for cmd in $cmds; do
    	    IFS="$save_ifs"
    	    $show "$cmd"
    	    $run eval "$cmd" || admincmds="$admincmds
           $cmd"
    	  done
    	  IFS="$save_ifs"
    	fi
    	if test -n "$finish_eval"; then
    	  # Do the single finish_eval.
    	  eval cmds=\"$finish_eval\"
    	  $run eval "$cmds" || admincmds="$admincmds
           $cmds"
    	fi
          done
        fi
    
        # Exit here if they wanted silent mode.
    
        test "$show" = ":" && exit 0
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    
        echo "----------------------------------------------------------------------"
        echo "Libraries have been installed in:"
        for libdir in $libdirs; do
          echo "   $libdir"
        done
        echo
        echo "If you ever happen to want to link against installed libraries"
        echo "in a given directory, LIBDIR, you must either use libtool, and"
    
        echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
        echo "flag during linking and do at least one of the following:"
        if test -n "$shlibpath_var"; then
          echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
          echo "     during execution"
        fi
        if test -n "$runpath_var"; then
          echo "   - add LIBDIR to the \`$runpath_var' environment variable"
          echo "     during linking"
        fi
        if test -n "$hardcode_libdir_flag_spec"; then
          libdir=LIBDIR
          eval flag=\"$hardcode_libdir_flag_spec\"
    
          echo "   - use the \`$flag' linker flag"
        fi
        if test -n "$admincmds"; then
          echo "   - have your system administrator run these commands:$admincmds"
        fi
        if test -f /etc/ld.so.conf; then
          echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
        fi
        echo
        echo "See any operating system documentation about shared libraries for"
        echo "more information, such as the ld(1) and ld.so(8) manual pages."
        echo "----------------------------------------------------------------------"
        exit 0
        ;;
    
      # libtool execute mode
      execute)
        modename="$modename: execute"
    
        # The first argument is the command name.
        cmd="$nonopt"
        if test -z "$cmd"; then
          $echo "$modename: you must specify a COMMAND" 1>&2
          $echo "$help"
          exit 1
        fi
    
        # Handle -dlopen flags immediately.
        for file in $execute_dlfiles; do
          if test ! -f "$file"; then
    	$echo "$modename: \`$file' is not a file" 1>&2
    	$echo "$help" 1>&2
    	exit 1
          fi
    
          dir=
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
          *.la)
    	# Check to see that this really is a libtool archive.
    	if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
    	else
    	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
    	  $echo "$help" 1>&2
    	  exit 1
    	fi
    
    	# Read the libtool library.
    	dlname=
    	library_names=
    
    	# If there is no directory component, then add one.
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	*/* | *\\*) . $file ;;
    	*) . ./$file ;;
    	esac
    
    	# Skip this library if it cannot be dlopened.
    	if test -z "$dlname"; then
    	  # Warn if it was a shared library.
    	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
    	  continue
    	fi
    
    	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
    	test "X$dir" = "X$file" && dir=.
    
    	if test -f "$dir/$objdir/$dlname"; then
    	  dir="$dir/$objdir"
    	else
    	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
    	  exit 1
    	fi
    	;;
    
          *.lo)
    	# Just add the directory containing the .lo file.
    	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
    	test "X$dir" = "X$file" && dir=.
    	;;
    
          *)
    	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
    	continue
    	;;
          esac
    
          # Get the absolute pathname.
          absdir=`cd "$dir" && pwd`
          test -n "$absdir" && dir="$absdir"
    
          # Now add the directory to shlibpath_var.
          if eval "test -z \"\$$shlibpath_var\""; then
    	eval "$shlibpath_var=\"\$dir\""
          else
    	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
          fi
        done
    
        # This variable tells wrapper scripts just to set shlibpath_var
        # rather than running their programs.
        libtool_execute_magic="$magic"
    
        # Check if any of the arguments is a wrapper script.
        args=
        for file
        do
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
          -*) ;;
          *)
    	# Do a test to see if this is really a libtool program.
    	if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
    	  # If there is no directory component, then add one.
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	  */* | *\\*) . $file ;;
    	  *) . ./$file ;;
    	  esac
    
    	  # Transform arg to wrapped name.
    	  file="$progdir/$program"
    	fi
    	;;
          esac
          # Quote arguments (to preserve shell metacharacters).
          file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
          args="$args \"$file\""
        done
    
        if test -z "$run"; then
          if test -n "$shlibpath_var"; then
    
    	# Export the shlibpath_var.
    	eval "export $shlibpath_var"
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
          fi
    
          # Restore saved enviroment variables
          if test "${save_LC_ALL+set}" = set; then
    	LC_ALL="$save_LC_ALL"; export LC_ALL
          fi
          if test "${save_LANG+set}" = set; then
    	LANG="$save_LANG"; export LANG
          fi
    
    
          # Now prepare to actually exec the command.
          exec_cmd='"$cmd"$args'
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
        else
          # Display what would be done.
          if test -n "$shlibpath_var"; then
    
    	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
    	$echo "export $shlibpath_var"
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
          fi
          $echo "$cmd$args"
          exit 0
        fi
        ;;
    
    
      # libtool clean and uninstall mode
      clean | uninstall)
        modename="$modename: $mode"
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
        rm="$nonopt"
        files=
    
        rmforce=
        exit_status=0
    
        # This variable tells wrapper scripts just to set variables rather
        # than running their programs.
        libtool_install_magic="$magic"
    
          case $arg in
          -f) rm="$rm $arg"; rmforce=yes ;;
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
          -*) rm="$rm $arg" ;;
          *) files="$files $arg" ;;
          esac
        done
    
        if test -z "$rm"; then
          $echo "$modename: you must specify an RM program" 1>&2
          $echo "$help" 1>&2
          exit 1
        fi
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
        for file in $files; do
          dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
    
          if test "X$dir" = "X$file"; then
    	dir=.
    	objdir="$objdir"
          else
    	objdir="$dir/$objdir"
          fi
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
          name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
    
          test $mode = uninstall && objdir="$dir"
    
          # Remember objdir for removal later, being careful to avoid duplicates
          if test $mode = clean; then
    	case " $rmdirs " in
    	  *" $objdir "*) ;;
    	  *) rmdirs="$rmdirs $objdir" ;;
    	esac
          fi
    
          # Don't error if the file doesn't exist and rm -f was used.
          if (test -L "$file") >/dev/null 2>&1 \
            || (test -h "$file") >/dev/null 2>&1 \
    	|| test -f "$file"; then
            :
          elif test -d "$file"; then
            exit_status=1
    	continue
          elif test "$rmforce" = yes; then
            continue
          fi
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    
          rmfiles="$file"
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
          *.la)
    	# Possibly a libtool archive, so verify it.
    	if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
    	  . $dir/$name
    
    	  # Delete the libtool libraries and symlinks.
    	  for n in $library_names; do
    
    	    rmfiles="$rmfiles $objdir/$n"
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	  done
    
    	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
    	  test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
    
    	  if test $mode = uninstall; then
    	    if test -n "$library_names"; then
    	      # Do each command in the postuninstall commands.
    	      eval cmds=\"$postuninstall_cmds\"
    	      IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
    	      for cmd in $cmds; do
    		IFS="$save_ifs"
    		$show "$cmd"
    		$run eval "$cmd"
    		if test $? != 0 && test "$rmforce" != yes; then
    		  exit_status=1
    		fi
    	      done
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	      IFS="$save_ifs"
    
    	    if test -n "$old_library"; then
    	      # Do each command in the old_postuninstall commands.
    	      eval cmds=\"$old_postuninstall_cmds\"
    	      IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
    	      for cmd in $cmds; do
    		IFS="$save_ifs"
    		$show "$cmd"
    		$run eval "$cmd"
    		if test $? != 0 && test "$rmforce" != yes; then
    		  exit_status=1
    		fi
    	      done
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	      IFS="$save_ifs"
    
    	    fi
    	    # FIXME: should reinstall the best remaining shared library.
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	  fi
    	fi
    	;;
    
          *.lo)
    	if test "$build_old_libs" = yes; then
    	  oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
    	  rmfiles="$rmfiles $dir/$oldobj"
    	fi
    	;;
    
          *)
    
    	# Do a test to see if this is a libtool program.
    	if test $mode = clean &&
    	   (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
    	  relink_command=
    	  . $dir/$file
    
    	  rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
    	  if test "$fast_install" = yes && test -n "$relink_command"; then
    	    rmfiles="$rmfiles $objdir/lt-$name"
    	  fi
    	fi
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	;;
          esac
    
          $show "$rm $rmfiles"
          $run $rm $rmfiles || exit_status=1
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
        done
    
    
        # Try to remove the ${objdir}s in the directories where we deleted files
        for dir in $rmdirs; do
          if test -d "$dir"; then
    	$show "rmdir $dir"
    	$run rmdir $dir >/dev/null 2>&1
          fi
        done
    
        exit $exit_status
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
        ;;
    
      "")
        $echo "$modename: you must specify a MODE" 1>&2
        $echo "$generic_help" 1>&2
        exit 1
        ;;
      esac
    
    
      if test -z "$exec_cmd"; then
        $echo "$modename: invalid operation mode \`$mode'" 1>&2
        $echo "$generic_help" 1>&2
        exit 1
      fi
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    fi # test -z "$show_help"
    
    
    if test -n "$exec_cmd"; then
      eval exec $exec_cmd
      exit 1
    fi
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    # We need to display help for each of the modes.
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    "") $echo \
    "Usage: $modename [OPTION]... [MODE-ARG]...
    
    Provide generalized library-building support services.
    
        --config          show all configuration variables
        --debug           enable verbose shell tracing
    -n, --dry-run         display commands without modifying any files
        --features        display basic configuration information and exit
        --finish          same as \`--mode=finish'
        --help            display this help message and exit
        --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
        --quiet           same as \`--silent'
        --silent          don't print informational messages
        --version         print version information
    
    MODE must be one of the following:
    
    
          clean           remove files from the build directory
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
          compile         compile a source file into a libtool object
          execute         automatically set library path, then run a program
          finish          complete the installation of libtool libraries
          install         install libraries or executables
          link            create a library or an executable
          uninstall       remove libraries from an installed directory
    
    MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
    a more detailed description of MODE."
      exit 0
      ;;
    
    
    clean)
      $echo \
    "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
    
    Remove files from the build directory.
    
    RM is the name of the program to use to delete files associated with each FILE
    (typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
    to RM.
    
    If FILE is a libtool library, object or program, all the files associated
    with it are deleted. Otherwise, only FILE itself is deleted using RM."
      ;;
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    compile)
      $echo \
    "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
    
    Compile a source file into a libtool library object.
    
    This mode accepts the following additional options:
    
      -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
    
      -prefer-pic       try to building PIC objects only
      -prefer-non-pic   try to building non-PIC objects only
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
      -static           always build a \`.o' file suitable for static linking
    
    COMPILE-COMMAND is a command to be used in creating a \`standard' object file
    from the given SOURCEFILE.
    
    The output file name is determined by removing the directory component from
    SOURCEFILE, then substituting the C source code suffix \`.c' with the
    library object suffix, \`.lo'."
      ;;
    
    execute)
      $echo \
    "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
    
    Automatically set library path, then run a program.
    
    This mode accepts the following additional options:
    
      -dlopen FILE      add the directory containing FILE to the library path
    
    This mode sets the library path environment variable according to \`-dlopen'
    flags.
    
    If any of the ARGS are libtool executable wrappers, then they are translated
    into their corresponding uninstalled binary, and any of their required library
    directories are added to the library path.
    
    Then, COMMAND is executed, with ARGS as arguments."
      ;;
    
    finish)
      $echo \
    "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
    
    Complete the installation of libtool libraries.
    
    Each LIBDIR is a directory that contains libtool libraries.
    
    The commands that this mode executes may require superuser privileges.  Use
    the \`--dry-run' option if you just want to see what would be executed."
      ;;
    
    install)
      $echo \
    "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
    
    Install executables or libraries.
    
    INSTALL-COMMAND is the installation command.  The first component should be
    either the \`install' or \`cp' program.
    
    The rest of the components are interpreted as arguments to that command (only
    BSD-compatible install options are recognized)."
      ;;
    
    link)
      $echo \
    "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
    
    Link object files or libraries together to form another library, or to
    create an executable program.
    
    LINK-COMMAND is a command using the C compiler that you would use to create
    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
      -avoid-version    do not add a version suffix if possible
      -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
      -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
      -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
      -export-symbols SYMFILE
    		    try to export only the symbols listed in SYMFILE
      -export-symbols-regex REGEX
    		    try to export only the symbols matching REGEX
      -LLIBDIR          search LIBDIR for required installed libraries
      -lNAME            OUTPUT-FILE requires the installed library libNAME
      -module           build a library that can dlopened
    
      -no-fast-install  disable the fast-install mode
      -no-install       link a not-installable executable
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
      -no-undefined     declare that a library does not refer to external symbols
      -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
      -release RELEASE  specify package release information
      -rpath LIBDIR     the created library will eventually be installed in LIBDIR
      -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
      -static           do not do any dynamic linking of libtool libraries
      -version-info CURRENT[:REVISION[:AGE]]
    		    specify library version info [each variable defaults to 0]
    
    All other options (arguments beginning with \`-') are ignored.
    
    Every other argument is treated as a filename.  Files ending in \`.la' are
    treated as uninstalled libtool libraries, other files are standard or library
    object files.
    
    If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
    only library objects (\`.lo' files) may be specified, and \`-rpath' is
    required, except when creating a convenience library.
    
    If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
    using \`ar' and \`ranlib', or on Windows using \`lib'.
    
    If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
    is created, otherwise an executable program is created."
      ;;
    
    uninstall)
      $echo \
    "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
    
    Remove libraries from an installation directory.
    
    RM is the name of the program to use to delete files associated with each FILE
    (typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
    to RM.
    
    If FILE is a libtool library, all the files associated with it are deleted.
    Otherwise, only FILE itself is deleted using RM."
      ;;
    
    *)
      $echo "$modename: invalid operation mode \`$mode'" 1>&2
      $echo "$help" 1>&2
      exit 1
      ;;
    esac
    
    echo
    $echo "Try \`$modename --help' for more information about other modes."
    
    exit 0
    
    # Local Variables:
    # mode:shell-script
    # sh-indentation:2
    # End: