Skip to content
Snippets Groups Projects
ltmain.sh 136 KiB
Newer Older
  • Learn to ignore specific revisions
  • Daniel Stenberg's avatar
    Daniel Stenberg committed
    	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
    	# We need an absolute path.
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	[\\/]* | [A-Za-z]:[\\/]*) ;;
    	*)
    	  absdir=`cd "$dir" && pwd`
    	  if test -z "$absdir"; then
    
    	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
    	    exit 1
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	  fi
    	  dir="$absdir"
    	  ;;
    	esac
    
    	case "$deplibs " in
    	*" -L$dir "*) ;;
    	*)
    	  deplibs="$deplibs -L$dir"
    	  lib_search_path="$lib_search_path $dir"
    	  ;;
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	esac
    
    	case $host in
    	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
    	  case :$dllsearchpath: in
    	  *":$dir:"*) ;;
    	  *) dllsearchpath="$dllsearchpath:$dir";;
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	  esac
    	  ;;
    	esac
    
    	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
    	  case $host in
    	  *-*-cygwin* | *-*-pw32* | *-*-beos*)
    	    # These systems don't actually have a C or math library (as such)
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	    continue
    	    ;;
    
    	  *-*-mingw* | *-*-os2*)
    	    # These systems don't actually have a C library (as such)
    	    test "X$arg" = "X-lc" && continue
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	    ;;
    
              *-*-openbsd*)
                # Do not include libc due to us having libc/libc_r.
                test "X$arg" = "X-lc" && continue
                ;;
              esac
             fi
             if test "X$arg" = "X-lc_r"; then
              case $host in
              *-*-openbsd*)
                # Do not include libc_r directly, use -pthread flag.
                continue
                ;;
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	  esac
    	fi
    	deplibs="$deplibs $arg"
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	;;
    
          -module)
    	module=yes
    	continue
    	;;
    
    
          -no-fast-install)
    	fast_install=no
    	continue
    	;;
    
          -no-install)
    	case $host in
    	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
    	  # The PATH hackery in wrapper scripts is required on Windows
    	  # in order for the loader to find any dlls it needs.
    	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
    	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
    	  fast_install=no
    	  ;;
    	*) no_install=yes ;;
    	esac
    	continue
    	;;
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
          -no-undefined)
    	allow_undefined=no
    	continue
    	;;
    
          -o) prev=output ;;
    
          -release)
    	prev=release
    	continue
    	;;
    
          -rpath)
    	prev=rpath
    	continue
    	;;
    
          -R)
    	prev=xrpath
    	continue
    	;;
    
          -R*)
    	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
    	# We need an absolute path.
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	[\\/]* | [A-Za-z]:[\\/]*) ;;
    	*)
    	  $echo "$modename: only absolute run-paths are allowed" 1>&2
    	  exit 1
    	  ;;
    	esac
    	case "$xrpath " in
    	*" $dir "*) ;;
    	*) xrpath="$xrpath $dir" ;;
    	esac
    	continue
    	;;
    
          -static)
    
    	# The effects of -static are defined in a previous loop.
    	# We used to do the same as -all-static on platforms that
    	# didn't have a PIC flag, but the assumption that the effects
    	# would be equivalent was wrong.  It would break on at least
    	# Digital Unix and AIX.
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	continue
    	;;
    
          -thread-safe)
    	thread_safe=yes
    	continue
    	;;
    
          -version-info)
    	prev=vinfo
    	continue
    	;;
    
    
          -Wc,*)
    	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
    	arg=
    	IFS="${IFS= 	}"; save_ifs="$IFS"; IFS=','
    	for flag in $args; do
    	  IFS="$save_ifs"
    	  case $flag in
    	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
    	    flag="\"$flag\""
    	    ;;
    	  esac
    	  arg="$arg $wl$flag"
    	  compiler_flags="$compiler_flags $flag"
    	done
    	IFS="$save_ifs"
    	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
    	;;
    
          -Wl,*)
    	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
    	arg=
    	IFS="${IFS= 	}"; save_ifs="$IFS"; IFS=','
    	for flag in $args; do
    	  IFS="$save_ifs"
    	  case $flag in
    	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
    	    flag="\"$flag\""
    	    ;;
    	  esac
    	  arg="$arg $wl$flag"
    	  compiler_flags="$compiler_flags $wl$flag"
    	  linker_flags="$linker_flags $flag"
    	done
    	IFS="$save_ifs"
    	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
    	;;
    
          -Xcompiler)
    	prev=xcompiler
    	continue
    	;;
    
          -Xlinker)
    	prev=xlinker
    	continue
    	;;
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
          # Some other compiler flag.
          -* | +*)
    	# Unknown arguments in both finalize_command and compile_command need
    	# to be aesthetically quoted because they are evaled later.
    	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
    
    	case $arg in
    	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	  arg="\"$arg\""
    	  ;;
    	esac
    	;;
    
    
          *.lo | *.$objext)
    	# A library or standard object.
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	if test "$prev" = dlfiles; then
    
    	  # This file was specified with -dlopen.
    	  if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
    	    dlfiles="$dlfiles $arg"
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	    prev=
    	    continue
    	  else
    	    # If libtool objects are unsupported, then we need to preload.
    	    prev=dlprefiles
    	  fi
    	fi
    
    	if test "$prev" = dlprefiles; then
    	  # Preload the old-style object.
    	  dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
    	  prev=
    
    	else
    	  case $arg in
    	  *.lo) libobjs="$libobjs $arg" ;;
    	  *) objs="$objs $arg" ;;
    	  esac
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	fi
    
    	;;
    
          *.$libext)
    	# An archive.
    	deplibs="$deplibs $arg"
    	old_deplibs="$old_deplibs $arg"
    	continue
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	;;
    
          *.la)
    	# A libtool-controlled library.
    
    
    	if test "$prev" = dlfiles; then
    	  # This library was specified with -dlopen.
    	  dlfiles="$dlfiles $arg"
    	  prev=
    	elif test "$prev" = dlprefiles; then
    	  # The library was specified with -dlpreopen.
    	  dlprefiles="$dlprefiles $arg"
    	  prev=
    	else
    	  deplibs="$deplibs $arg"
    	fi
    	continue
    	;;
    
          # Some other compiler argument.
          *)
    	# Unknown arguments in both finalize_command and compile_command need
    	# to be aesthetically quoted because they are evaled later.
    	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
    	case $arg in
    	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
    	  arg="\"$arg\""
    	  ;;
    	esac
    	;;
          esac # arg
    
          # Now actually substitute the argument into the commands.
          if test -n "$arg"; then
    	compile_command="$compile_command $arg"
    	finalize_command="$finalize_command $arg"
          fi
        done # argument parsing loop
    
        if test -n "$prev"; then
          $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
          $echo "$help" 1>&2
          exit 1
        fi
    
        if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
          eval arg=\"$export_dynamic_flag_spec\"
          compile_command="$compile_command $arg"
          finalize_command="$finalize_command $arg"
        fi
    
        # calculate the name of the file, without its directory
        outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
        libobjs_save="$libobjs"
    
        if test -n "$shlibpath_var"; then
          # get the directories listed in $shlibpath_var
          eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
        else
          shlib_search_path=
        fi
        eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
        eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
    
        output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
        if test "X$output_objdir" = "X$output"; then
          output_objdir="$objdir"
        else
          output_objdir="$output_objdir/$objdir"
        fi
        # Create the object directory.
        if test ! -d $output_objdir; then
          $show "$mkdir $output_objdir"
          $run $mkdir $output_objdir
          status=$?
          if test $status -ne 0 && test ! -d $output_objdir; then
    	exit $status
          fi
        fi
    
        # Determine the type of output
        case $output in
        "")
          $echo "$modename: you must specify an output file" 1>&2
          $echo "$help" 1>&2
          exit 1
          ;;
        *.$libext) linkmode=oldlib ;;
        *.lo | *.$objext) linkmode=obj ;;
        *.la) linkmode=lib ;;
        *) linkmode=prog ;; # Anything else should be a program.
        esac
    
        specialdeplibs=
        libs=
        # Find all interdependent deplibs by searching for libraries
        # that are linked more than once (e.g. -la -lb -la)
        for deplib in $deplibs; do
          case "$libs " in
          *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
          esac
          libs="$libs $deplib"
        done
        deplibs=
        newdependency_libs=
        newlib_search_path=
        need_relink=no # whether we're linking any uninstalled libtool libraries
        notinst_deplibs= # not-installed libtool libraries
        notinst_path= # paths that contain not-installed libtool libraries
        case $linkmode in
        lib)
    	passes="conv link"
    	for file in $dlfiles $dlprefiles; do
    	  case $file in
    	  *.la) ;;
    	  *)
    	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
    	    exit 1
    	    ;;
    	  esac
    	done
    	;;
        prog)
    	compile_deplibs=
    	finalize_deplibs=
    	alldeplibs=no
    	newdlfiles=
    	newdlprefiles=
    	passes="conv scan dlopen dlpreopen link"
    	;;
        *)  passes="conv"
    	;;
        esac
        for pass in $passes; do
          if test $linkmode = prog; then
    	# Determine which files to process
    	case $pass in
    	dlopen)
    	  libs="$dlfiles"
    	  save_deplibs="$deplibs" # Collect dlpreopened libraries
    	  deplibs=
    	  ;;
    	dlpreopen) libs="$dlprefiles" ;;
    	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
    	esac
          fi
          for deplib in $libs; do
    	lib=
    	found=no
    	case $deplib in
    	-l*)
    	  if test $linkmode = oldlib && test $linkmode = obj; then
    	    $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2
    	    continue
    	  fi
    	  if test $pass = conv; then
    	    deplibs="$deplib $deplibs"
    	    continue
    	  fi
    	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
    	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
    	    # Search the libtool library
    	    lib="$searchdir/lib${name}.la"
    	    if test -f "$lib"; then
    	      found=yes
    	      break
    	    fi
    	  done
    	  if test "$found" != yes; then
    	    # deplib doesn't seem to be a libtool library
    	    if test "$linkmode,$pass" = "prog,link"; then
    	      compile_deplibs="$deplib $compile_deplibs"
    	      finalize_deplibs="$deplib $finalize_deplibs"
    	    else
    	      deplibs="$deplib $deplibs"
    	      test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs"
    	    fi
    	    continue
    	  fi
    	  ;; # -l
    	-L*)
    	  case $linkmode in
    	  lib)
    	    deplibs="$deplib $deplibs"
    	    test $pass = conv && continue
    	    newdependency_libs="$deplib $newdependency_libs"
    	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
    	    ;;
    	  prog)
    	    if test $pass = conv; then
    	      deplibs="$deplib $deplibs"
    	      continue
    	    fi
    	    if test $pass = scan; then
    	      deplibs="$deplib $deplibs"
    	      newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
    	    else
    	      compile_deplibs="$deplib $compile_deplibs"
    	      finalize_deplibs="$deplib $finalize_deplibs"
    	    fi
    	    ;;
    	  *)
    	    $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2
    	    ;;
    	  esac # linkmode
    	  continue
    	  ;; # -L
    	-R*)
    	  if test $pass = link; then
    	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
    	    # Make sure the xrpath contains only unique directories.
    	    case "$xrpath " in
    	    *" $dir "*) ;;
    	    *) xrpath="$xrpath $dir" ;;
    	    esac
    	  fi
    	  deplibs="$deplib $deplibs"
    	  continue
    	  ;;
    	*.la) lib="$deplib" ;;
    	*.$libext)
    	  if test $pass = conv; then
    	    deplibs="$deplib $deplibs"
    	    continue
    	  fi
    	  case $linkmode in
    	  lib)
    	    if test "$deplibs_check_method" != pass_all; then
    	      echo
    	      echo "*** Warning: This library needs some functionality provided by $deplib."
    	      echo "*** I have the capability to make that library automatically link in when"
    	      echo "*** you link to this library.  But I can only do this if you have a"
    	      echo "*** shared version of the library, which you do not appear to have."
    	    else
    	      echo
    	      echo "*** Warning: Linking the shared library $output against the"
    	      echo "*** static library $deplib is not portable!"
    	      deplibs="$deplib $deplibs"
    	    fi
    	    continue
    	    ;;
    	  prog)
    	    if test $pass != link; then
    	      deplibs="$deplib $deplibs"
    	    else
    	      compile_deplibs="$deplib $compile_deplibs"
    	      finalize_deplibs="$deplib $finalize_deplibs"
    	    fi
    	    continue
    	    ;;
    	  esac # linkmode
    	  ;; # *.$libext
    	*.lo | *.$objext)
    	  if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
    	    # If there is no dlopen support or we're linking statically,
    	    # we need to preload.
    	    newdlprefiles="$newdlprefiles $deplib"
    	    compile_deplibs="$deplib $compile_deplibs"
    	    finalize_deplibs="$deplib $finalize_deplibs"
    	  else
    	    newdlfiles="$newdlfiles $deplib"
    	  fi
    	  continue
    	  ;;
    	%DEPLIBS%)
    	  alldeplibs=yes
    	  continue
    	  ;;
    	esac # case $deplib
    	if test $found = yes || test -f "$lib"; then :
    	else
    	  $echo "$modename: cannot find the library \`$lib'" 1>&2
    	  exit 1
    	fi
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    
    	# Check to see that this really is a libtool archive.
    
    	if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	else
    
    	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
    
    	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
    	test "X$ladir" = "X$lib" && ladir="."
    
    	dlname=
    	dlopen=
    	dlpreopen=
    	libdir=
    	library_names=
    	old_library=
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	# If the library was installed with an old release of libtool,
    	# it will not redefine variable installed.
    	installed=yes
    
    	# Read the .la file
    
    	case $lib in
    	*/* | *\\*) . $lib ;;
    	*) . ./$lib ;;
    
    	if test "$linkmode,$pass" = "lib,link" ||
    	   test "$linkmode,$pass" = "prog,scan" ||
    	   { test $linkmode = oldlib && test $linkmode = obj; }; then
    	   # Add dl[pre]opened files of deplib
    	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
    	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
    	fi
    
    	if test $pass = conv; then
    	  # Only check for convenience libraries
    	  deplibs="$lib $deplibs"
    	  if test -z "$libdir"; then
    	    if test -z "$old_library"; then
    	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
    	      exit 1
    	    fi
    	    # It is a libtool convenience library, so add in its objects.
    	    convenience="$convenience $ladir/$objdir/$old_library"
    	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
    	    tmp_libs=
    	    for deplib in $dependency_libs; do
    	      deplibs="$deplib $deplibs"
    	      case "$tmp_libs " in
    	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
    	      esac
    	      tmp_libs="$tmp_libs $deplib"
    	    done
    	  elif test $linkmode != prog && test $linkmode != lib; then
    	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
    	    exit 1
    	  fi
    	  continue
    	fi # $pass = conv
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	# Get the name of the library we link against.
    	linklib=
    	for l in $old_library $library_names; do
    	  linklib="$l"
    	done
    	if test -z "$linklib"; then
    
    	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
    
    	# This library was specified with -dlopen.
    	if test $pass = dlopen; then
    	  if test -z "$libdir"; then
    	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
    	    exit 1
    	  fi
    	  if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
    	    # If there is no dlname, no dlopen support or we're linking
    	    # statically, we need to preload.
    	    dlprefiles="$dlprefiles $lib"
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	  else
    
    	    newdlfiles="$newdlfiles $lib"
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	  fi
    	  continue
    
    	# We need an absolute path.
    	case $ladir in
    	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
    	*)
    	  abs_ladir=`cd "$ladir" && pwd`
    	  if test -z "$abs_ladir"; then
    	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
    	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
    	    abs_ladir="$ladir"
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	  fi
    
    	  ;;
    	esac
    	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
    
    	# Find the relevant object directory and library name.
    	if test "X$installed" = Xyes; then
    	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
    	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
    	    dir="$ladir"
    	    absdir="$abs_ladir"
    	    libdir="$abs_ladir"
    	  else
    	    dir="$libdir"
    	    absdir="$libdir"
    	  fi
    	else
    	  dir="$ladir/$objdir"
    	  absdir="$abs_ladir/$objdir"
    	  # Remove this search path later
    	  notinst_path="$notinst_path $abs_ladir"
    	fi # $installed = yes
    	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
    
    	# This library was specified with -dlpreopen.
    	if test $pass = dlpreopen; then
    	  if test -z "$libdir"; then
    	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
    	    exit 1
    	  fi
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	  # Prefer using a static library (so that no silly _DYNAMIC symbols
    	  # are required to link).
    	  if test -n "$old_library"; then
    
    	    newdlprefiles="$newdlprefiles $dir/$old_library"
    	  # Otherwise, use the dlname, so that lt_dlopen finds it.
    	  elif test -n "$dlname"; then
    	    newdlprefiles="$newdlprefiles $dir/$dlname"
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	  else
    
    	    newdlprefiles="$newdlprefiles $dir/$linklib"
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	  fi
    
    	fi # $pass = dlpreopen
    
    	if test -z "$libdir"; then
    	  # Link the convenience library
    	  if test $linkmode = lib; then
    	    deplibs="$dir/$old_library $deplibs"
    	  elif test "$linkmode,$pass" = "prog,link"; then
    	    compile_deplibs="$dir/$old_library $compile_deplibs"
    	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
    	  else
    	    deplibs="$lib $deplibs"
    	  fi
    	  continue
    
    	if test $linkmode = prog && test $pass != link; then
    	  newlib_search_path="$newlib_search_path $ladir"
    	  deplibs="$lib $deplibs"
    
    	  linkalldeplibs=no
    	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
    	     test "$build_libtool_libs" = no; then
    	    linkalldeplibs=yes
    
    	  tmp_libs=
    	  for deplib in $dependency_libs; do
    	    case $deplib in
    	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
    	    esac
    	    # Need to link against all dependency_libs?
    	    if test $linkalldeplibs = yes; then
    	      deplibs="$deplib $deplibs"
    	    else
    	      # Need to hardcode shared library paths
    	      # or/and link against static libraries
    	      newdependency_libs="$deplib $newdependency_libs"
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	    fi
    
    	    case "$tmp_libs " in
    	    *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	    esac
    
    	    tmp_libs="$tmp_libs $deplib"
    	  done # for deplib
    	  continue
    	fi # $linkmode = prog...
    
    	link_static=no # Whether the deplib will be linked statically
    	if test -n "$library_names" &&
    	   { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
    	  # Link against this shared library
    
    	  if test "$linkmode,$pass" = "prog,link" ||
    	   { test $linkmode = lib && test $hardcode_into_libs = yes; }; then
    	    # Hardcode the library path.
    	    # Skip directories that are in the system default run-time
    	    # search path.
    	    case " $sys_lib_dlsearch_path " in
    	    *" $absdir "*) ;;
    	    *)
    	      case "$compile_rpath " in
    	      *" $absdir "*) ;;
    	      *) compile_rpath="$compile_rpath $absdir"
    	      esac
    	      ;;
    	    esac
    	    case " $sys_lib_dlsearch_path " in
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	    *" $libdir "*) ;;
    
    	    *)
    	      case "$finalize_rpath " in
    	      *" $libdir "*) ;;
    	      *) finalize_rpath="$finalize_rpath $libdir"
    	      esac
    	      ;;
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	    esac
    
    	    if test $linkmode = prog; then
    	      # We need to hardcode the library path
    	      if test -n "$shlibpath_var"; then
    		# Make sure the rpath contains only unique directories.
    		case "$temp_rpath " in
    		*" $dir "*) ;;
    		*" $absdir "*) ;;
    		*) temp_rpath="$temp_rpath $dir" ;;
    		esac
    	      fi
    	    fi
    	  fi # $linkmode,$pass = prog,link...
    
    	  if test "$alldeplibs" = yes &&
    	     { test "$deplibs_check_method" = pass_all ||
    	       { test "$build_libtool_libs" = yes &&
    		 test -n "$library_names"; }; }; then
    	    # We only need to search for static libraries
    	    continue
    	  fi
    
    	  if test "$installed" = no; then
    	    notinst_deplibs="$notinst_deplibs $lib"
    	    need_relink=yes
    	  fi
    
    	  if test -n "$old_archive_from_expsyms_cmds"; then
    	    # figure out the soname
    	    set dummy $library_names
    	    realname="$2"
    	    shift; shift
    	    libname=`eval \\$echo \"$libname_spec\"`
    	    # use dlname if we got it. it's perfectly good, no?
    	    if test -n "$dlname"; then
    	      soname="$dlname"
    	    elif test -n "$soname_spec"; then
    	      # bleh windows
    	      case $host in
    	      *cygwin*)
    		major=`expr $current - $age`
    		versuffix="-$major"
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    		;;
    	      esac
    
    	      eval soname=\"$soname_spec\"
    	    else
    	      soname="$realname"
    	    fi
    
    	    # Make a new name for the extract_expsyms_cmds to use
    	    soroot="$soname"
    	    soname=`echo $soroot | sed -e 's/^.*\///'`
    	    newlib="libimp-`echo $soname | sed 's/^lib//;s/\.dll$//'`.a"
    
    	    # If the library has no export list, then create one now
    	    if test -f "$output_objdir/$soname-def"; then :
    	    else
    	      $show "extracting exported symbol list from \`$soname'"
    	      IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
    	      eval cmds=\"$extract_expsyms_cmds\"
    	      for cmd in $cmds; do
    		IFS="$save_ifs"
    		$show "$cmd"
    		$run eval "$cmd" || exit $?
    	      done
    	      IFS="$save_ifs"
    	    fi
    
    	    # Create $newlib
    	    if test -f "$output_objdir/$newlib"; then :; else
    	      $show "generating import library for \`$soname'"
    	      IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
    	      eval cmds=\"$old_archive_from_expsyms_cmds\"
    	      for cmd in $cmds; do
    		IFS="$save_ifs"
    		$show "$cmd"
    		$run eval "$cmd" || exit $?
    	      done
    	      IFS="$save_ifs"
    	    fi
    	    # make sure the library variables are pointing to the new library
    	    dir=$output_objdir
    	    linklib=$newlib
    	  fi # test -n $old_archive_from_expsyms_cmds
    
    	  if test $linkmode = prog || test "$mode" != relink; then
    	    add_shlibpath=
    	    add_dir=
    	    add=
    	    lib_linked=yes
    	    case $hardcode_action in
    	    immediate | unsupported)
    	      if test "$hardcode_direct" = no; then
    		add="$dir/$linklib"
    	      elif test "$hardcode_minus_L" = no; then
    		case $host in
    		*-*-sunos*) add_shlibpath="$dir" ;;
    		esac
    		add_dir="-L$dir"
    		add="-l$name"
    	      elif test "$hardcode_shlibpath_var" = no; then
    		add_shlibpath="$dir"
    		add="-l$name"
    	      else
    		lib_linked=no
    	      fi
    	      ;;
    	    relink)
    	      if test "$hardcode_direct" = yes; then
    		add="$dir/$linklib"
    	      elif test "$hardcode_minus_L" = yes; then
    		add_dir="-L$dir"
    		add="-l$name"
    	      elif test "$hardcode_shlibpath_var" = yes; then
    		add_shlibpath="$dir"
    		add="-l$name"
    	      else
    		lib_linked=no
    	      fi
    	      ;;
    	    *) lib_linked=no ;;
    	    esac
    
    	    if test "$lib_linked" != yes; then
    	      $echo "$modename: configuration error: unsupported hardcode properties"
    	      exit 1
    	    fi
    
    	    if test -n "$add_shlibpath"; then
    	      case :$compile_shlibpath: in
    	      *":$add_shlibpath:"*) ;;
    	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	      esac
    
    	    fi
    	    if test $linkmode = prog; then
    	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
    	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	    else
    
    	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
    	      test -n "$add" && deplibs="$add $deplibs"
    	      if test "$hardcode_direct" != yes && \
    		 test "$hardcode_minus_L" != yes && \
    		 test "$hardcode_shlibpath_var" = yes; then
    		case :$finalize_shlibpath: in
    		*":$libdir:"*) ;;
    		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
    		esac
    	      fi
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	    fi
    
    	  if test $linkmode = prog || test "$mode" = relink; then
    	    add_shlibpath=
    	    add_dir=
    	    add=
    	    # Finalize command for both is simple: just hardcode it.
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	    if test "$hardcode_direct" = yes; then
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	    elif test "$hardcode_minus_L" = yes; then
    
    	      add_dir="-L$libdir"
    	      add="-l$name"
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	    elif test "$hardcode_shlibpath_var" = yes; then
    
    	      case :$finalize_shlibpath: in
    	      *":$libdir:"*) ;;
    	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	      esac
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	    else
    
    	      # We cannot seem to hardcode it, guess we'll fake it.
    	      add_dir="-L$libdir"
    	      add="-l$name"
    
    	    if test $linkmode = prog; then
    	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
    	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
    	    else
    	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
    	      test -n "$add" && deplibs="$add $deplibs"
    	    fi
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	  fi
    
    	elif test $linkmode = prog; then
    	  if test "$alldeplibs" = yes &&
    	     { test "$deplibs_check_method" = pass_all ||
    	       { test "$build_libtool_libs" = yes &&
    		 test -n "$library_names"; }; }; then
    	    # We only need to search for static libraries
    	    continue
    
    	  # Try to link the static library
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	  # Here we assume that one of hardcode_direct or hardcode_minus_L
    	  # is not unsupported.  This is valid on all known static and
    	  # shared platforms.
    	  if test "$hardcode_direct" != unsupported; then
    	    test -n "$old_library" && linklib="$old_library"
    
    	    compile_deplibs="$dir/$linklib $compile_deplibs"
    	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    	  else
    
    	    compile_deplibs="-l$name -L$dir $compile_deplibs"
    	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
    	  fi
    	elif test "$build_libtool_libs" = yes; then
    	  # Not a shared library
    	  if test "$deplibs_check_method" != pass_all; then
    	    # We're trying link a shared library against a static one
    	    # but the system doesn't support it.
    
    	    # Just print a warning and add the library to dependency_libs so
    	    # that the program can be linked against the static library.
    	    echo
    	    echo "*** Warning: This library needs some functionality provided by $lib."
    	    echo "*** I have the capability to make that library automatically link in when"
    	    echo "*** you link to this library.  But I can only do this if you have a"
    	    echo "*** shared version of the library, which you do not appear to have."
    	    if test "$module" = yes; then
    	      echo "*** Therefore, libtool will create a static module, that should work "
    	      echo "*** as long as the dlopening application is linked with the -dlopen flag."
    	      if test -z "$global_symbol_pipe"; then
    	        echo
    	        echo "*** However, this would only work if libtool was able to extract symbol"
    	        echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
    	        echo "*** not find such a program.  So, this module is probably useless."
    	        echo "*** \`nm' from GNU binutils and a full rebuild may help."
    	      fi
    	      if test "$build_old_libs" = no; then
    	        build_libtool_libs=module
    	        build_old_libs=yes
    	      else
    	        build_libtool_libs=no
    	      fi
    	    fi
    	  else
    	    convenience="$convenience $dir/$old_library"
    	    old_convenience="$old_convenience $dir/$old_library"
    	    deplibs="$dir/$old_library $deplibs"
    	    link_static=yes
    	  fi
    	fi # link shared/static library?
    
    	if test $linkmode = lib; then
    	  if test -n "$dependency_libs" &&
    	     { test $hardcode_into_libs != yes || test $build_old_libs = yes ||
    	       test $link_static = yes; }; then
    	    # Extract -R from dependency_libs
    	    temp_deplibs=
    	    for libdir in $dependency_libs; do
    	      case $libdir in
    	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
    		   case " $xrpath " in
    		   *" $temp_xrpath "*) ;;
    		   *) xrpath="$xrpath $temp_xrpath";;
    		   esac;;
    	      *) temp_deplibs="$temp_deplibs $libdir";;
    	      esac
    	    done
    	    dependency_libs="$temp_deplibs"
    
    	  newlib_search_path="$newlib_search_path $absdir"
    	  # Link against this library
    	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
    	  # ... and its dependency_libs
    	  tmp_libs=
    	  for deplib in $dependency_libs; do
    	    newdependency_libs="$deplib $newdependency_libs"
    	    case "$tmp_libs " in
    	    *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
    	    esac
    	    tmp_libs="$tmp_libs $deplib"
    	  done
    
    	  if test $link_all_deplibs != no; then
    	    # Add the search paths of all dependency libraries
    	    for deplib in $dependency_libs; do
    	      case $deplib in
    	      -L*) path="$deplib" ;;
    	      *.la)
    		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
    		test "X$dir" = "X$deplib" && dir="."
    		# We need an absolute path.
    		case $dir in
    		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
    		*)
    		  absdir=`cd "$dir" && pwd`