Skip to content
Snippets Groups Projects
ltmain.sh 179 KiB
Newer Older
  • Learn to ignore specific revisions
  • 	      # Search the libtool library
    	      lib="$searchdir/lib${name}${search_ext}"
    	      if test -f "$lib"; then
    		if test "$search_ext" = ".la"; then
    		  found=yes
    		else
    		  found=no
    		fi
    		break 2
    	      fi
    	    done
    	  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"
    
    	      deplibs="$deplib $deplibs"
    	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
    
    	    continue
    	  else # deplib is a libtool library
    	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
    	    # We need to do some special things here, and not later.
    	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
    	      case " $predeps $postdeps " in
    	      *" $deplib "*)
    		if (${SED} -e '2q' $lib |
                        grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
    		  library_names=
    		  old_library=
    		  case $lib in
    		  */* | *\\*) . $lib ;;
    		  *) . ./$lib ;;
    		  esac
    		  for l in $old_library $library_names; do
    		    ll="$l"
    		  done
    		  if test "X$ll" = "X$old_library" ; then # only static version available
    		    found=no
    		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
    		    test "X$ladir" = "X$lib" && ladir="."
    		    lib=$ladir/$old_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
    		fi
    	        ;;
    	      *) ;;
    	      esac
    	    fi
    	  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
    
    	    if test "$pass" = scan; then
    	      deplibs="$deplib $deplibs"
    	    else
    	      compile_deplibs="$deplib $compile_deplibs"
    	      finalize_deplibs="$deplib $finalize_deplibs"
    
    	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
    
    	  *)
    	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 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)
    	    valid_a_lib=no
    	    case $deplibs_check_method in
    	      match_pattern*)
    		set dummy $deplibs_check_method
    	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
    		if eval $echo \"$deplib\" 2>/dev/null \
    		    | $SED 10q \
    		    | $EGREP "$match_pattern_regex" > /dev/null; then
    		  valid_a_lib=yes
    		fi
    		;;
    	      pass_all)
    		valid_a_lib=yes
    		;;
                esac
    	    if test "$valid_a_lib" != yes; then
    	      $echo
    	      $echo "*** Warning: Trying to link with static lib archive $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"
    	      $echo "*** because the file extensions .$libext of this argument makes me believe"
    	      $echo "*** that it is just a static archive that I should not used here."
    	    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" = conv; then
    	    deplibs="$deplib $deplibs"
    	  elif test "$linkmode" = prog; then
    	    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
    	  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
    
    	# Check to see that this really is a libtool archive.
    	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
    	else
    	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
    	  exit $EXIT_FAILURE
    	fi
    
    	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
    	test "X$ladir" = "X$lib" && ladir="."
    
    	dlname=
    	dlopen=
    	dlpreopen=
    	libdir=
    	library_names=
    	old_library=
    	# If the library was installed with an old release of libtool,
    	# it will not redefine variables installed, or shouldnotlink
    	installed=yes
    	shouldnotlink=no
    
    	# Read the .la file
    	case $lib in
    	*/* | *\\*) . $lib ;;
    	*) . ./$lib ;;
    	esac
    
    	if test "$linkmode,$pass" = "lib,link" ||
    	   test "$linkmode,$pass" = "prog,scan" ||
    	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
    	  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 $EXIT_FAILURE
    	    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"
                  if test "X$duplicate_deps" = "Xyes" ; then
    	        case "$tmp_libs " in
    	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
    	        esac
                  fi
    	      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 $EXIT_FAILURE
    	  fi
    	  continue
    	fi # $pass = conv
    
    	# 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
    	  exit $EXIT_FAILURE
    	fi
    
    	# 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 $EXIT_FAILURE
    	  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.  We also need to preload any
    	    # dependent libraries so libltdl's deplib preloader doesn't
    	    # bomb out in the load deplibs phase.
    	    dlprefiles="$dlprefiles $lib $dependency_libs"
    	  else
    	    newdlfiles="$newdlfiles $lib"
    
    	  continue
    	fi # $pass = dlopen
    
    	# 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"
    
    	  ;;
    	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"
    
    	    dir="$libdir"
    	    absdir="$libdir"
    
    	else
    	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
    	    dir="$ladir"
    	    absdir="$abs_ladir"
    	    # Remove this search path later
    	    notinst_path="$notinst_path $abs_ladir"
    	  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 $EXIT_FAILURE
    	  fi
    	  # 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"
    
    	    newdlprefiles="$newdlprefiles $dir/$linklib"
    
    	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"
    
    	    deplibs="$lib $deplibs" # used for prog,scan pass
    
    	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
    	  fi
    
    	  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"
    
    	    if test "X$duplicate_deps" = "Xyes" ; then
    	      case "$tmp_libs " in
    	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
    	      esac
    	    fi
    	    tmp_libs="$tmp_libs $deplib"
    	  done # for deplib
    	  continue
    	fi # $linkmode = prog...
    
    	if test "$linkmode,$pass" = "prog,link"; then
    	  if test -n "$library_names" &&
    
    	     { test "$prefer_static_libs" = no || test -z "$old_library"; }; 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" ;;
    
    	    # 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
    	    *" $libdir "*) ;;
    	    *)
    	      case "$finalize_rpath " in
    	      *" $libdir "*) ;;
    	      *) finalize_rpath="$finalize_rpath $libdir"
    	      esac
    	      ;;
    	    esac
    	  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
    
    	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
    
    	  if test "$installed" = no; then
    	    notinst_deplibs="$notinst_deplibs $lib"
    	    need_relink=yes
    	  fi
    	  # This is a shared library
    
    	  # Warn about portability, can't link against -module's on
    	  # some systems (darwin)
    	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
    	    $echo
    	    if test "$linkmode" = prog; then
    	      $echo "*** Warning: Linking the executable $output against the loadable module"
    	    else
    	      $echo "*** Warning: Linking the shared library $output against the loadable module"
    	    fi
    	    $echo "*** $linklib is not portable!"
    	  fi
    	  if 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
    	    *" $libdir "*) ;;
    	    *)
    	      case "$finalize_rpath " in
    	      *" $libdir "*) ;;
    	      *) finalize_rpath="$finalize_rpath $libdir"
    	      esac
    	      ;;
    	    esac
    	  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* | mingw*)
    		major=`expr $current - $age`
    		versuffix="-$major"
    		;;
    	      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'"
    	      save_ifs="$IFS"; IFS='~'
    	      cmds=$extract_expsyms_cmds
    	      for cmd in $cmds; do
    		IFS="$save_ifs"
    		eval cmd=\"$cmd\"
    		$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'"
    	      save_ifs="$IFS"; IFS='~'
    	      cmds=$old_archive_from_expsyms_cmds
    	      for cmd in $cmds; do
    		IFS="$save_ifs"
    		eval cmd=\"$cmd\"
    		$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"
    		case $host in
    
    		  *-*-sco3.2v5* ) add_dir="-L$dir" ;;
    
    		  *-*-darwin* )
    		    # if the lib is a module then we can not link against
    		    # it, someone is ignoring the new warnings I added
    
    		    if /usr/bin/file -L $add 2> /dev/null | $EGREP "bundle" >/dev/null ; then
    
    		      $echo "** Warning, lib $linklib is a module, not a shared library"
    		      if test -z "$old_library" ; then
    		        $echo
    		        $echo "** And there doesn't seem to be a static archive available"
    		        $echo "** The link will probably fail, sorry"
    		      else
    		        add="$dir/$old_library"
    		      fi
    		    fi
    		esac
    	      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"
    		# Try looking first in the location we're being installed to.
    		if test -n "$inst_prefix_dir"; then
    
    		    [\\/]*)
    		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
    		      ;;
    		  esac
    		fi
    		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 $EXIT_FAILURE
    	    fi
    
    	    if test -n "$add_shlibpath"; then
    	      case :$compile_shlibpath: in
    	      *":$add_shlibpath:"*) ;;
    	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
    	      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"
    	    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
    	    fi
    	  fi
    
    	  if test "$linkmode" = prog || test "$mode" = relink; then
    	    add_shlibpath=
    	    add_dir=
    	    add=
    	    # Finalize command for both is simple: just hardcode it.
    	    if test "$hardcode_direct" = yes; then
    	      add="$libdir/$linklib"
    	    elif test "$hardcode_minus_L" = yes; then
    	      add_dir="-L$libdir"
    	      add="-l$name"
    	    elif test "$hardcode_shlibpath_var" = yes; then
    	      case :$finalize_shlibpath: in
    	      *":$libdir:"*) ;;
    	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
    	      esac
    	      add="-l$name"
    	    elif test "$hardcode_automatic" = yes; then
    	      if test -n "$inst_prefix_dir" &&
    		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
    	        add="$inst_prefix_dir$libdir/$linklib"
    	      else
    	        add="$libdir/$linklib"
    	      fi
    	    else
    	      # We cannot seem to hardcode it, guess we'll fake it.
    	      add_dir="-L$libdir"
    	      # Try looking first in the location we're being installed to.
    	      if test -n "$inst_prefix_dir"; then
    
    		  [\\/]*)
    		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
    		    ;;
    		esac
    	      fi
    	      add="-l$name"
    	    fi
    
    	    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
    	  fi
    	elif test "$linkmode" = prog; then
    	  # 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"
    	  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 system can not link to static lib archive $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 "*** But as you try to build a module library, libtool will still create "
    	      $echo "*** a static module, that should work as long as the dlopening application"
    	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
    	      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"
    	  fi
    
    	  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"
    	    if test "X$duplicate_deps" = "Xyes" ; then
    	      case "$tmp_libs " in
    	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
    	      esac
    	    fi
    	    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`
    		  if test -z "$absdir"; then
    		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
    		    absdir="$dir"
    		  fi
    		  ;;
    		esac
    		if grep "^installed=no" $deplib > /dev/null; then
    		  path="$absdir/$objdir"
    		else
    		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
    		  if test -z "$libdir"; then
    		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
    		    exit $EXIT_FAILURE
    		  fi
    		  if test "$absdir" != "$libdir"; then
    		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
    		  fi
    		  path="$absdir"
    		fi
    		depdepl=
    		case $host in
    		*-*-darwin*)
    		  # we do not want to link against static libs,
    		  # but need to link against shared
    		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
    		  if test -n "$deplibrary_names" ; then
    		    for tmp in $deplibrary_names ; do
    		      depdepl=$tmp
    		    done
    		    if test -f "$path/$depdepl" ; then
    		      depdepl="$path/$depdepl"
    		    fi
    		    # do not add paths which are already there
    		    case " $newlib_search_path " in
    		    *" $path "*) ;;
    		    *) newlib_search_path="$newlib_search_path $path";;
    		    esac
    		  fi
    		  path=""
    		  ;;
    		*)
    		  path="-L$path"
    		  ;;
    		esac
    		;;
    	      -l*)
    		case $host in
    		*-*-darwin*)
    		  # Again, we only want to link against shared libraries
    		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
    		  for tmp in $newlib_search_path ; do
    		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
    		      eval depdepl="$tmp/lib$tmp_libs.dylib"
    		      break
    		    fi
    		  done
    		  path=""
    		  ;;
    		*) continue ;;
    		esac
    		;;
    	      *) continue ;;
    	      esac
    	      case " $deplibs " in
    	      *" $depdepl "*) ;;
    	      *) deplibs="$depdepl $deplibs" ;;
    	      esac
    
    	      case " $deplibs " in
    	      *" $path "*) ;;
    	      *) deplibs="$deplibs $path" ;;
    	      esac
    
    	    done
    	  fi # link_all_deplibs != no
    	fi # linkmode = lib
          done # for deplib in $libs
          dependency_libs="$newdependency_libs"
          if test "$pass" = dlpreopen; then
    	# Link the dlpreopened libraries before other libraries
    	for deplib in $save_deplibs; do
    	  deplibs="$deplib $deplibs"
    	done
          fi
          if test "$pass" != dlopen; then
    	if test "$pass" != conv; then
    	  # Make sure lib_search_path contains only unique directories.
    	  lib_search_path=
    	  for dir in $newlib_search_path; do
    	    case "$lib_search_path " in
    	    *" $dir "*) ;;
    	    *) lib_search_path="$lib_search_path $dir" ;;
    	    esac
    	  done
    	  newlib_search_path=
    
    	if test "$linkmode,$pass" != "prog,link"; then
    	  vars="deplibs"
    	else
    	  vars="compile_deplibs finalize_deplibs"
    	fi
    	for var in $vars dependency_libs; do
    	  # Add libraries to $var in reverse order
    	  eval tmp_libs=\"\$$var\"
    	  new_libs=
    	  for deplib in $tmp_libs; do
    	    # FIXME: Pedantically, this is the right thing to do, so
    	    #        that some nasty dependency loop isn't accidentally
    	    #        broken:
    	    #new_libs="$deplib $new_libs"
    	    # Pragmatically, this seems to cause very few problems in
    	    # practice:
    	    case $deplib in
    	    -L*) new_libs="$deplib $new_libs" ;;
    	    -R*) ;;
    	    *)
    	      # And here is the reason: when a library appears more
    	      # than once as an explicit dependence of a library, or
    	      # is implicitly linked in more than once by the
    	      # compiler, it is considered special, and multiple
    	      # occurrences thereof are not removed.  Compare this
    	      # with having the same library being listed as a
    	      # dependency of multiple other libraries: in this case,
    	      # we know (pedantically, we assume) the library does not
    	      # need to be listed more than once, so we keep only the
    	      # last copy.  This is not always right, but it is rare
    	      # enough that we require users that really mean to play
    	      # such unportable linking tricks to link the library
    	      # using -Wl,-lname, so that libtool does not consider it
    	      # for duplicate removal.
    	      case " $specialdeplibs " in
    	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
    	      *)
    		case " $new_libs " in
    		*" $deplib "*) ;;
    		*) new_libs="$deplib $new_libs" ;;
    		esac
    		;;
    	      esac
    	      ;;
    	    esac
    	  done
    	  tmp_libs=
    	  for deplib in $new_libs; do
    	    case $deplib in
    	    -L*)
    	      case " $tmp_libs " in
    	      *" $deplib "*) ;;
    	      *) tmp_libs="$tmp_libs $deplib" ;;
    	      esac
    	      ;;
    	    *) tmp_libs="$tmp_libs $deplib" ;;
    	    esac
    	  done
    	  eval $var=\"$tmp_libs\"
    	done # for var
          fi
          # Last step: remove runtime libs from dependency_libs
          # (they stay in deplibs)
          tmp_libs=
          for i in $dependency_libs ; do
    	case " $predeps $postdeps $compiler_lib_search_path " in
    	*" $i "*)
    	  i=""
    	  ;;
    	esac
    	if test -n "$i" ; then
    	  tmp_libs="$tmp_libs $i"
    	fi
          done
          dependency_libs=$tmp_libs
        done # for pass
        if test "$linkmode" = prog; then
          dlfiles="$newdlfiles"
          dlprefiles="$newdlprefiles"
    
        case $linkmode in
        oldlib)
          if test -n "$deplibs"; then
    	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
          fi
    
          if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
    	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
          fi
    
          if test -n "$rpath"; then
    	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
          fi
    
          if test -n "$xrpath"; then
    	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
          fi
    
          if test -n "$vinfo"; then
    	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
          fi
    
          if test -n "$release"; then
    	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
          fi
    
          if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
    	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
    
          # Now set the variables for building old libraries.
          build_libtool_libs=no
          oldlibs="$output"
          objs="$objs$old_deplibs"
          ;;
    
        lib)
          # Make sure we only generate libraries of the form `libNAME.la'.
          case $outputname in
          lib*)
    	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
    	eval shared_ext=\"$shrext_cmds\"
    	eval libname=\"$libname_spec\"
    	;;
          *)
    	if test "$module" = no; then
    	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
    	  $echo "$help" 1>&2
    	  exit $EXIT_FAILURE
    	fi
    	if test "$need_lib_prefix" != no; then
    	  # Add the "lib" prefix for modules if required
    	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
    	  eval shared_ext=\"$shrext_cmds\"
    	  eval libname=\"$libname_spec\"
    
    	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
    
          if test -n "$objs"; then
    	if test "$deplibs_check_method" != pass_all; then
    	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
    	  exit $EXIT_FAILURE
    	else