github.com/jlmucb/cloudproxy@v0.0.0-20170830161738-b5aa0b619bc4/src/third_party/gflags/libtool (about)

     1  #! /bin/sh
     2  
     3  # libtool - Provide generalized library-building support services.
     4  # Generated automatically by config.status (gflags) 2.0
     5  # Libtool was configured on host tmroeder-loaner2:
     6  # NOTE: Changes made to this file will be lost: look at ltmain.sh.
     7  #
     8  #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
     9  #                 2006, 2007, 2008 Free Software Foundation, Inc.
    10  #   Written by Gordon Matzigkeit, 1996
    11  #
    12  #   This file is part of GNU Libtool.
    13  #
    14  # GNU Libtool is free software; you can redistribute it and/or
    15  # modify it under the terms of the GNU General Public License as
    16  # published by the Free Software Foundation; either version 2 of
    17  # the License, or (at your option) any later version.
    18  #
    19  # As a special exception to the GNU General Public License,
    20  # if you distribute this file as part of a program or library that
    21  # is built using GNU Libtool, you may include this file under the
    22  # same distribution terms that you use for the rest of that program.
    23  #
    24  # GNU Libtool is distributed in the hope that it will be useful,
    25  # but WITHOUT ANY WARRANTY; without even the implied warranty of
    26  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    27  # GNU General Public License for more details.
    28  #
    29  # You should have received a copy of the GNU General Public License
    30  # along with GNU Libtool; see the file COPYING.  If not, a copy
    31  # can be downloaded from http://www.gnu.org/licenses/gpl.html, or
    32  # obtained by writing to the Free Software Foundation, Inc.,
    33  # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
    34  
    35  
    36  # The names of the tagged configurations supported by this script.
    37  available_tags="CXX "
    38  
    39  # ### BEGIN LIBTOOL CONFIG
    40  
    41  # Whether or not to optimize for fast installation.
    42  fast_install=yes
    43  
    44  # Which release of libtool.m4 was used?
    45  macro_version=2.2.6b
    46  macro_revision=1.3017
    47  
    48  # Whether or not to build shared libraries.
    49  build_libtool_libs=yes
    50  
    51  # Whether or not to build static libraries.
    52  build_old_libs=yes
    53  
    54  # What type of objects to build.
    55  pic_mode=default
    56  
    57  # The host system.
    58  host_alias=
    59  host=x86_64-unknown-linux-gnu
    60  host_os=linux-gnu
    61  
    62  # The build system.
    63  build_alias=
    64  build=x86_64-unknown-linux-gnu
    65  build_os=linux-gnu
    66  
    67  # A sed program that does not truncate output.
    68  SED="/bin/sed"
    69  
    70  # Sed that helps us avoid accidentally triggering echo(1) options like -n.
    71  Xsed="$SED -e 1s/^X//"
    72  
    73  # A grep program that handles long lines.
    74  GREP="/bin/grep"
    75  
    76  # An ERE matcher.
    77  EGREP="/bin/grep -E"
    78  
    79  # A literal string matcher.
    80  FGREP="/bin/grep -F"
    81  
    82  # A BSD- or MS-compatible name lister.
    83  NM="/usr/bin/nm -B"
    84  
    85  # Whether we need soft or hard links.
    86  LN_S="ln -s"
    87  
    88  # What is the maximum length of a command?
    89  max_cmd_len=1572864
    90  
    91  # Object file suffix (normally "o").
    92  objext=o
    93  
    94  # Executable file suffix (normally "").
    95  exeext=
    96  
    97  # whether the shell understands "unset".
    98  lt_unset=unset
    99  
   100  # turn spaces into newlines.
   101  SP2NL="tr \\040 \\012"
   102  
   103  # turn newlines into spaces.
   104  NL2SP="tr \\015\\012 \\040\\040"
   105  
   106  # How to create reloadable object files.
   107  reload_flag=" -r"
   108  reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
   109  
   110  # An object symbol dumper.
   111  OBJDUMP="objdump"
   112  
   113  # Method to check whether dependent libraries are shared objects.
   114  deplibs_check_method="pass_all"
   115  
   116  # Command to use when deplibs_check_method == "file_magic".
   117  file_magic_cmd="\$MAGIC_CMD"
   118  
   119  # The archiver.
   120  AR="ar"
   121  AR_FLAGS="cru"
   122  
   123  # A symbol stripping program.
   124  STRIP="strip"
   125  
   126  # Commands used to install an old-style archive.
   127  RANLIB="ranlib"
   128  old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib"
   129  old_postuninstall_cmds=""
   130  
   131  # A C compiler.
   132  LTCC="gcc"
   133  
   134  # LTCC compiler flags.
   135  LTCFLAGS="-g -O2"
   136  
   137  # Take the output of nm and produce a listing of raw symbols and C names.
   138  global_symbol_pipe="sed -n -e 's/^.*[	 ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[	 ][	 ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'"
   139  
   140  # Transform the output of nm in a proper C declaration.
   141  global_symbol_to_cdecl="sed -n -e 's/^T .* \\(.*\\)\$/extern int \\1();/p' -e 's/^[ABCDGIRSTW]* .* \\(.*\\)\$/extern char \\1;/p'"
   142  
   143  # Transform the output of nm in a C name address pair.
   144  global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/  {\\\"\\1\\\", (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/  {\"\\2\", (void *) \\&\\2},/p'"
   145  
   146  # Transform the output of nm in a C name address pair when lib prefix is needed.
   147  global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \\([^ ]*\\) \$/  {\\\"\\1\\\", (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\(lib[^ ]*\\)\$/  {\"\\2\", (void *) \\&\\2},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/  {\"lib\\2\", (void *) \\&\\2},/p'"
   148  
   149  # The name of the directory that contains temporary libtool files.
   150  objdir=.libs
   151  
   152  # Shell to use when invoking shell scripts.
   153  SHELL="/bin/sh"
   154  
   155  # An echo program that does not interpret backslashes.
   156  ECHO="echo"
   157  
   158  # Used to examine libraries when file_magic_cmd begins with "file".
   159  MAGIC_CMD=file
   160  
   161  # Must we lock files when doing compilation?
   162  need_locks="no"
   163  
   164  # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
   165  DSYMUTIL=""
   166  
   167  # Tool to change global to local symbols on Mac OS X.
   168  NMEDIT=""
   169  
   170  # Tool to manipulate fat objects and archives on Mac OS X.
   171  LIPO=""
   172  
   173  # ldd/readelf like tool for Mach-O binaries on Mac OS X.
   174  OTOOL=""
   175  
   176  # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
   177  OTOOL64=""
   178  
   179  # Old archive suffix (normally "a").
   180  libext=a
   181  
   182  # Shared library suffix (normally ".so").
   183  shrext_cmds=".so"
   184  
   185  # The commands to extract the exported symbol list from a shared archive.
   186  extract_expsyms_cmds=""
   187  
   188  # Variables whose values should be saved in libtool wrapper scripts and
   189  # restored at link time.
   190  variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
   191  
   192  # Do we need the "lib" prefix for modules?
   193  need_lib_prefix=no
   194  
   195  # Do we need a version for libraries?
   196  need_version=no
   197  
   198  # Library versioning type.
   199  version_type=linux
   200  
   201  # Shared library runtime path variable.
   202  runpath_var=LD_RUN_PATH
   203  
   204  # Shared library path variable.
   205  shlibpath_var=LD_LIBRARY_PATH
   206  
   207  # Is shlibpath searched before the hard-coded library search path?
   208  shlibpath_overrides_runpath=no
   209  
   210  # Format of library name prefix.
   211  libname_spec="lib\$name"
   212  
   213  # List of archive names.  First name is the real one, the rest are links.
   214  # The last name is the one that the linker finds with -lNAME
   215  library_names_spec="\${libname}\${release}\${shared_ext}\$versuffix \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}"
   216  
   217  # The coded name of the library, if different from the real name.
   218  soname_spec="\${libname}\${release}\${shared_ext}\$major"
   219  
   220  # Command to use after installation of a shared archive.
   221  postinstall_cmds=""
   222  
   223  # Command to use after uninstallation of a shared archive.
   224  postuninstall_cmds=""
   225  
   226  # Commands used to finish a libtool library installation in a directory.
   227  finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir"
   228  
   229  # As "finish_cmds", except a single script fragment to be evaled but
   230  # not shown.
   231  finish_eval=""
   232  
   233  # Whether we should hardcode library paths into libraries.
   234  hardcode_into_libs=yes
   235  
   236  # Compile-time system search path for libraries.
   237  sys_lib_search_path_spec="/usr/lib/gcc/x86_64-linux-gnu/4.6 /usr/lib/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib"
   238  
   239  # Run-time system search path for libraries.
   240  sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/local/lib /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/mesa /lib32 /usr/lib32 "
   241  
   242  # Whether dlopen is supported.
   243  dlopen_support=unknown
   244  
   245  # Whether dlopen of programs is supported.
   246  dlopen_self=unknown
   247  
   248  # Whether dlopen of statically linked programs is supported.
   249  dlopen_self_static=unknown
   250  
   251  # Commands to strip libraries.
   252  old_striplib="strip --strip-debug"
   253  striplib="strip --strip-unneeded"
   254  
   255  
   256  # The linker used to build libraries.
   257  LD="/usr/bin/ld -m elf_x86_64"
   258  
   259  # Commands used to build an old-style archive.
   260  old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib"
   261  
   262  # A language specific compiler.
   263  CC="gcc"
   264  
   265  # Is the compiler the GNU compiler?
   266  with_gcc=yes
   267  
   268  # Compiler flag to turn off builtin functions.
   269  no_builtin_flag=" -fno-builtin"
   270  
   271  # How to pass a linker flag through the compiler.
   272  wl="-Wl,"
   273  
   274  # Additional compiler flags for building library objects.
   275  pic_flag=" -fPIC -DPIC"
   276  
   277  # Compiler flag to prevent dynamic linking.
   278  link_static_flag="-static"
   279  
   280  # Does compiler simultaneously support -c and -o options?
   281  compiler_c_o="yes"
   282  
   283  # Whether or not to add -lc for building shared libraries.
   284  build_libtool_need_lc=no
   285  
   286  # Whether or not to disallow shared libs when runtime libs are static.
   287  allow_libtool_libs_with_static_runtimes=no
   288  
   289  # Compiler flag to allow reflexive dlopens.
   290  export_dynamic_flag_spec="\${wl}--export-dynamic"
   291  
   292  # Compiler flag to generate shared objects directly from archives.
   293  whole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive"
   294  
   295  # Whether the compiler copes with passing no objects directly.
   296  compiler_needs_object="no"
   297  
   298  # Create an old-style archive from a shared archive.
   299  old_archive_from_new_cmds=""
   300  
   301  # Create a temporary old-style archive to link instead of a shared archive.
   302  old_archive_from_expsyms_cmds=""
   303  
   304  # Commands used to build a shared archive.
   305  archive_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib"
   306  archive_expsym_cmds="echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~
   307  	    cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> \$output_objdir/\$libname.ver~
   308  	    echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~
   309  	    \$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib"
   310  
   311  # Commands used to build a loadable module if different from building
   312  # a shared archive.
   313  module_cmds=""
   314  module_expsym_cmds=""
   315  
   316  # Whether we are building with GNU ld or not.
   317  with_gnu_ld="yes"
   318  
   319  # Flag that allows shared libraries with undefined symbols to be built.
   320  allow_undefined_flag=""
   321  
   322  # Flag that enforces no undefined symbols.
   323  no_undefined_flag=""
   324  
   325  # Flag to hardcode $libdir into a binary during linking.
   326  # This must work even if $libdir does not exist
   327  hardcode_libdir_flag_spec="\${wl}-rpath \${wl}\$libdir"
   328  
   329  # If ld is used when linking, flag to hardcode $libdir into a binary
   330  # during linking.  This must work even if $libdir does not exist.
   331  hardcode_libdir_flag_spec_ld=""
   332  
   333  # Whether we need a single "-rpath" flag with a separated argument.
   334  hardcode_libdir_separator=""
   335  
   336  # Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
   337  # DIR into the resulting binary.
   338  hardcode_direct=no
   339  
   340  # Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
   341  # DIR into the resulting binary and the resulting library dependency is
   342  # "absolute",i.e impossible to change by setting ${shlibpath_var} if the
   343  # library is relocated.
   344  hardcode_direct_absolute=no
   345  
   346  # Set to "yes" if using the -LDIR flag during linking hardcodes DIR
   347  # into the resulting binary.
   348  hardcode_minus_L=no
   349  
   350  # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
   351  # into the resulting binary.
   352  hardcode_shlibpath_var=unsupported
   353  
   354  # Set to "yes" if building a shared library automatically hardcodes DIR
   355  # into the library and all subsequent libraries and executables linked
   356  # against it.
   357  hardcode_automatic=no
   358  
   359  # Set to yes if linker adds runtime paths of dependent libraries
   360  # to runtime path list.
   361  inherit_rpath=no
   362  
   363  # Whether libtool must link a program against all its dependency libraries.
   364  link_all_deplibs=no
   365  
   366  # Fix the shell variable $srcfile for the compiler.
   367  fix_srcfile_path=""
   368  
   369  # Set to "yes" if exported symbols are required.
   370  always_export_symbols=no
   371  
   372  # The commands to list exported symbols.
   373  export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
   374  
   375  # Symbols that should not be listed in the preloaded symbols.
   376  exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*"
   377  
   378  # Symbols that must always be exported.
   379  include_expsyms=""
   380  
   381  # Commands necessary for linking programs (against libraries) with templates.
   382  prelink_cmds=""
   383  
   384  # Specify filename containing input files.
   385  file_list_spec=""
   386  
   387  # How to hardcode a shared library path into an executable.
   388  hardcode_action=immediate
   389  
   390  # The directories searched by this compiler when creating a shared library.
   391  compiler_lib_search_dirs=""
   392  
   393  # Dependencies to place before and after the objects being linked to
   394  # create a shared library.
   395  predep_objects=""
   396  postdep_objects=""
   397  predeps=""
   398  postdeps=""
   399  
   400  # The library search path used internally by the compiler when linking
   401  # a shared library.
   402  compiler_lib_search_path=""
   403  
   404  # ### END LIBTOOL CONFIG
   405  
   406  # Generated from ltmain.m4sh.
   407  
   408  # ltmain.sh (GNU libtool) 2.2.6b
   409  # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
   410  
   411  # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc.
   412  # This is free software; see the source for copying conditions.  There is NO
   413  # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
   414  
   415  # GNU Libtool is free software; you can redistribute it and/or modify
   416  # it under the terms of the GNU General Public License as published by
   417  # the Free Software Foundation; either version 2 of the License, or
   418  # (at your option) any later version.
   419  #
   420  # As a special exception to the GNU General Public License,
   421  # if you distribute this file as part of a program or library that
   422  # is built using GNU Libtool, you may include this file under the
   423  # same distribution terms that you use for the rest of that program.
   424  #
   425  # GNU Libtool is distributed in the hope that it will be useful, but
   426  # WITHOUT ANY WARRANTY; without even the implied warranty of
   427  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   428  # General Public License for more details.
   429  #
   430  # You should have received a copy of the GNU General Public License
   431  # along with GNU Libtool; see the file COPYING.  If not, a copy
   432  # can be downloaded from http://www.gnu.org/licenses/gpl.html,
   433  # or obtained by writing to the Free Software Foundation, Inc.,
   434  # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
   435  
   436  # Usage: $progname [OPTION]... [MODE-ARG]...
   437  #
   438  # Provide generalized library-building support services.
   439  #
   440  #     --config             show all configuration variables
   441  #     --debug              enable verbose shell tracing
   442  # -n, --dry-run            display commands without modifying any files
   443  #     --features           display basic configuration information and exit
   444  #     --mode=MODE          use operation mode MODE
   445  #     --preserve-dup-deps  don't remove duplicate dependency libraries
   446  #     --quiet, --silent    don't print informational messages
   447  #     --tag=TAG            use configuration variables from tag TAG
   448  # -v, --verbose            print informational messages (default)
   449  #     --version            print version information
   450  # -h, --help               print short or long help message
   451  #
   452  # MODE must be one of the following:
   453  #
   454  #       clean              remove files from the build directory
   455  #       compile            compile a source file into a libtool object
   456  #       execute            automatically set library path, then run a program
   457  #       finish             complete the installation of libtool libraries
   458  #       install            install libraries or executables
   459  #       link               create a library or an executable
   460  #       uninstall          remove libraries from an installed directory
   461  #
   462  # MODE-ARGS vary depending on the MODE.
   463  # Try `$progname --help --mode=MODE' for a more detailed description of MODE.
   464  #
   465  # When reporting a bug, please describe a test case to reproduce it and
   466  # include the following information:
   467  #
   468  #       host-triplet:	$host
   469  #       shell:		$SHELL
   470  #       compiler:		$LTCC
   471  #       compiler flags:		$LTCFLAGS
   472  #       linker:		$LD (gnu? $with_gnu_ld)
   473  #       $progname:		(GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
   474  #       automake:		$automake_version
   475  #       autoconf:		$autoconf_version
   476  #
   477  # Report bugs to <bug-libtool@gnu.org>.
   478  
   479  PROGRAM=ltmain.sh
   480  PACKAGE=libtool
   481  VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"
   482  TIMESTAMP=""
   483  package_revision=1.3017
   484  
   485  # Be Bourne compatible
   486  if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   487    emulate sh
   488    NULLCMD=:
   489    # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
   490    # is contrary to our usage.  Disable this feature.
   491    alias -g '${1+"$@"}'='"$@"'
   492    setopt NO_GLOB_SUBST
   493  else
   494    case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
   495  fi
   496  BIN_SH=xpg4; export BIN_SH # for Tru64
   497  DUALCASE=1; export DUALCASE # for MKS sh
   498  
   499  # NLS nuisances: We save the old values to restore during execute mode.
   500  # Only set LANG and LC_ALL to C if already set.
   501  # These must not be set unconditionally because not all systems understand
   502  # e.g. LANG=C (notably SCO).
   503  lt_user_locale=
   504  lt_safe_locale=
   505  for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
   506  do
   507    eval "if test \"\${$lt_var+set}\" = set; then
   508            save_$lt_var=\$$lt_var
   509            $lt_var=C
   510  	  export $lt_var
   511  	  lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
   512  	  lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
   513  	fi"
   514  done
   515  
   516  $lt_unset CDPATH
   517  
   518  
   519  
   520  
   521  
   522  : ${CP="cp -f"}
   523  : ${ECHO="echo"}
   524  : ${EGREP="/bin/grep -E"}
   525  : ${FGREP="/bin/grep -F"}
   526  : ${GREP="/bin/grep"}
   527  : ${LN_S="ln -s"}
   528  : ${MAKE="make"}
   529  : ${MKDIR="mkdir"}
   530  : ${MV="mv -f"}
   531  : ${RM="rm -f"}
   532  : ${SED="/bin/sed"}
   533  : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
   534  : ${Xsed="$SED -e 1s/^X//"}
   535  
   536  # Global variables:
   537  EXIT_SUCCESS=0
   538  EXIT_FAILURE=1
   539  EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
   540  EXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.
   541  
   542  exit_status=$EXIT_SUCCESS
   543  
   544  # Make sure IFS has a sensible default
   545  lt_nl='
   546  '
   547  IFS=" 	$lt_nl"
   548  
   549  dirname="s,/[^/]*$,,"
   550  basename="s,^.*/,,"
   551  
   552  # func_dirname_and_basename file append nondir_replacement
   553  # perform func_basename and func_dirname in a single function
   554  # call:
   555  #   dirname:  Compute the dirname of FILE.  If nonempty,
   556  #             add APPEND to the result, otherwise set result
   557  #             to NONDIR_REPLACEMENT.
   558  #             value returned in "$func_dirname_result"
   559  #   basename: Compute filename of FILE.
   560  #             value retuned in "$func_basename_result"
   561  # Implementation must be kept synchronized with func_dirname
   562  # and func_basename. For efficiency, we do not delegate to
   563  # those functions but instead duplicate the functionality here.
   564  func_dirname_and_basename ()
   565  {
   566    # Extract subdirectory from the argument.
   567    func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
   568    if test "X$func_dirname_result" = "X${1}"; then
   569      func_dirname_result="${3}"
   570    else
   571      func_dirname_result="$func_dirname_result${2}"
   572    fi
   573    func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
   574  }
   575  
   576  # Generated shell functions inserted here.
   577  
   578  # func_dirname file append nondir_replacement
   579  # Compute the dirname of FILE.  If nonempty, add APPEND to the result,
   580  # otherwise set result to NONDIR_REPLACEMENT.
   581  func_dirname ()
   582  {
   583    case ${1} in
   584      */*) func_dirname_result="${1%/*}${2}" ;;
   585      *  ) func_dirname_result="${3}" ;;
   586    esac
   587  }
   588  
   589  # func_basename file
   590  func_basename ()
   591  {
   592    func_basename_result="${1##*/}"
   593  }
   594  
   595  # func_dirname_and_basename file append nondir_replacement
   596  # perform func_basename and func_dirname in a single function
   597  # call:
   598  #   dirname:  Compute the dirname of FILE.  If nonempty,
   599  #             add APPEND to the result, otherwise set result
   600  #             to NONDIR_REPLACEMENT.
   601  #             value returned in "$func_dirname_result"
   602  #   basename: Compute filename of FILE.
   603  #             value retuned in "$func_basename_result"
   604  # Implementation must be kept synchronized with func_dirname
   605  # and func_basename. For efficiency, we do not delegate to
   606  # those functions but instead duplicate the functionality here.
   607  func_dirname_and_basename ()
   608  {
   609    case ${1} in
   610      */*) func_dirname_result="${1%/*}${2}" ;;
   611      *  ) func_dirname_result="${3}" ;;
   612    esac
   613    func_basename_result="${1##*/}"
   614  }
   615  
   616  # func_stripname prefix suffix name
   617  # strip PREFIX and SUFFIX off of NAME.
   618  # PREFIX and SUFFIX must not contain globbing or regex special
   619  # characters, hashes, percent signs, but SUFFIX may contain a leading
   620  # dot (in which case that matches only a dot).
   621  func_stripname ()
   622  {
   623    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
   624    # positional parameters, so assign one to ordinary parameter first.
   625    func_stripname_result=${3}
   626    func_stripname_result=${func_stripname_result#"${1}"}
   627    func_stripname_result=${func_stripname_result%"${2}"}
   628  }
   629  
   630  # func_opt_split
   631  func_opt_split ()
   632  {
   633    func_opt_split_opt=${1%%=*}
   634    func_opt_split_arg=${1#*=}
   635  }
   636  
   637  # func_lo2o object
   638  func_lo2o ()
   639  {
   640    case ${1} in
   641      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
   642      *)    func_lo2o_result=${1} ;;
   643    esac
   644  }
   645  
   646  # func_xform libobj-or-source
   647  func_xform ()
   648  {
   649    func_xform_result=${1%.*}.lo
   650  }
   651  
   652  # func_arith arithmetic-term...
   653  func_arith ()
   654  {
   655    func_arith_result=$(( $* ))
   656  }
   657  
   658  # func_len string
   659  # STRING may not start with a hyphen.
   660  func_len ()
   661  {
   662    func_len_result=${#1}
   663  }
   664  
   665  
   666  # func_append var value
   667  # Append VALUE to the end of shell variable VAR.
   668  func_append ()
   669  {
   670    eval "$1+=\$2"
   671  }
   672  # Generated shell functions inserted here.
   673  
   674  # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
   675  # is ksh but when the shell is invoked as "sh" and the current value of
   676  # the _XPG environment variable is not equal to 1 (one), the special
   677  # positional parameter $0, within a function call, is the name of the
   678  # function.
   679  progpath="$0"
   680  
   681  # The name of this program:
   682  # In the unlikely event $progname began with a '-', it would play havoc with
   683  # func_echo (imagine progname=-n), so we prepend ./ in that case:
   684  func_dirname_and_basename "$progpath"
   685  progname=$func_basename_result
   686  case $progname in
   687    -*) progname=./$progname ;;
   688  esac
   689  
   690  # Make sure we have an absolute path for reexecution:
   691  case $progpath in
   692    [\\/]*|[A-Za-z]:\\*) ;;
   693    *[\\/]*)
   694       progdir=$func_dirname_result
   695       progdir=`cd "$progdir" && pwd`
   696       progpath="$progdir/$progname"
   697       ;;
   698    *)
   699       save_IFS="$IFS"
   700       IFS=:
   701       for progdir in $PATH; do
   702         IFS="$save_IFS"
   703         test -x "$progdir/$progname" && break
   704       done
   705       IFS="$save_IFS"
   706       test -n "$progdir" || progdir=`pwd`
   707       progpath="$progdir/$progname"
   708       ;;
   709  esac
   710  
   711  # Sed substitution that helps us do robust quoting.  It backslashifies
   712  # metacharacters that are still active within double-quoted strings.
   713  Xsed="${SED}"' -e 1s/^X//'
   714  sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
   715  
   716  # Same as above, but do not quote variable references.
   717  double_quote_subst='s/\(["`\\]\)/\\\1/g'
   718  
   719  # Re-`\' parameter expansions in output of double_quote_subst that were
   720  # `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
   721  # in input to double_quote_subst, that '$' was protected from expansion.
   722  # Since each input `\' is now two `\'s, look for any number of runs of
   723  # four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
   724  bs='\\'
   725  bs2='\\\\'
   726  bs4='\\\\\\\\'
   727  dollar='\$'
   728  sed_double_backslash="\
   729    s/$bs4/&\\
   730  /g
   731    s/^$bs2$dollar/$bs&/
   732    s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
   733    s/\n//g"
   734  
   735  # Standard options:
   736  opt_dry_run=false
   737  opt_help=false
   738  opt_quiet=false
   739  opt_verbose=false
   740  opt_warning=:
   741  
   742  # func_echo arg...
   743  # Echo program name prefixed message, along with the current mode
   744  # name if it has been set yet.
   745  func_echo ()
   746  {
   747      $ECHO "$progname${mode+: }$mode: $*"
   748  }
   749  
   750  # func_verbose arg...
   751  # Echo program name prefixed message in verbose mode only.
   752  func_verbose ()
   753  {
   754      $opt_verbose && func_echo ${1+"$@"}
   755  
   756      # A bug in bash halts the script if the last line of a function
   757      # fails when set -e is in force, so we need another command to
   758      # work around that:
   759      :
   760  }
   761  
   762  # func_error arg...
   763  # Echo program name prefixed message to standard error.
   764  func_error ()
   765  {
   766      $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
   767  }
   768  
   769  # func_warning arg...
   770  # Echo program name prefixed warning message to standard error.
   771  func_warning ()
   772  {
   773      $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
   774  
   775      # bash bug again:
   776      :
   777  }
   778  
   779  # func_fatal_error arg...
   780  # Echo program name prefixed message to standard error, and exit.
   781  func_fatal_error ()
   782  {
   783      func_error ${1+"$@"}
   784      exit $EXIT_FAILURE
   785  }
   786  
   787  # func_fatal_help arg...
   788  # Echo program name prefixed message to standard error, followed by
   789  # a help hint, and exit.
   790  func_fatal_help ()
   791  {
   792      func_error ${1+"$@"}
   793      func_fatal_error "$help"
   794  }
   795  help="Try \`$progname --help' for more information."  ## default
   796  
   797  
   798  # func_grep expression filename
   799  # Check whether EXPRESSION matches any line of FILENAME, without output.
   800  func_grep ()
   801  {
   802      $GREP "$1" "$2" >/dev/null 2>&1
   803  }
   804  
   805  
   806  # func_mkdir_p directory-path
   807  # Make sure the entire path to DIRECTORY-PATH is available.
   808  func_mkdir_p ()
   809  {
   810      my_directory_path="$1"
   811      my_dir_list=
   812  
   813      if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
   814  
   815        # Protect directory names starting with `-'
   816        case $my_directory_path in
   817          -*) my_directory_path="./$my_directory_path" ;;
   818        esac
   819  
   820        # While some portion of DIR does not yet exist...
   821        while test ! -d "$my_directory_path"; do
   822          # ...make a list in topmost first order.  Use a colon delimited
   823  	# list incase some portion of path contains whitespace.
   824          my_dir_list="$my_directory_path:$my_dir_list"
   825  
   826          # If the last portion added has no slash in it, the list is done
   827          case $my_directory_path in */*) ;; *) break ;; esac
   828  
   829          # ...otherwise throw away the child directory and loop
   830          my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
   831        done
   832        my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
   833  
   834        save_mkdir_p_IFS="$IFS"; IFS=':'
   835        for my_dir in $my_dir_list; do
   836  	IFS="$save_mkdir_p_IFS"
   837          # mkdir can fail with a `File exist' error if two processes
   838          # try to create one of the directories concurrently.  Don't
   839          # stop in that case!
   840          $MKDIR "$my_dir" 2>/dev/null || :
   841        done
   842        IFS="$save_mkdir_p_IFS"
   843  
   844        # Bail out if we (or some other process) failed to create a directory.
   845        test -d "$my_directory_path" || \
   846          func_fatal_error "Failed to create \`$1'"
   847      fi
   848  }
   849  
   850  
   851  # func_mktempdir [string]
   852  # Make a temporary directory that won't clash with other running
   853  # libtool processes, and avoids race conditions if possible.  If
   854  # given, STRING is the basename for that directory.
   855  func_mktempdir ()
   856  {
   857      my_template="${TMPDIR-/tmp}/${1-$progname}"
   858  
   859      if test "$opt_dry_run" = ":"; then
   860        # Return a directory name, but don't create it in dry-run mode
   861        my_tmpdir="${my_template}-$$"
   862      else
   863  
   864        # If mktemp works, use that first and foremost
   865        my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
   866  
   867        if test ! -d "$my_tmpdir"; then
   868          # Failing that, at least try and use $RANDOM to avoid a race
   869          my_tmpdir="${my_template}-${RANDOM-0}$$"
   870  
   871          save_mktempdir_umask=`umask`
   872          umask 0077
   873          $MKDIR "$my_tmpdir"
   874          umask $save_mktempdir_umask
   875        fi
   876  
   877        # If we're not in dry-run mode, bomb out on failure
   878        test -d "$my_tmpdir" || \
   879          func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
   880      fi
   881  
   882      $ECHO "X$my_tmpdir" | $Xsed
   883  }
   884  
   885  
   886  # func_quote_for_eval arg
   887  # Aesthetically quote ARG to be evaled later.
   888  # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
   889  # is double-quoted, suitable for a subsequent eval, whereas
   890  # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
   891  # which are still active within double quotes backslashified.
   892  func_quote_for_eval ()
   893  {
   894      case $1 in
   895        *[\\\`\"\$]*)
   896  	func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
   897        *)
   898          func_quote_for_eval_unquoted_result="$1" ;;
   899      esac
   900  
   901      case $func_quote_for_eval_unquoted_result in
   902        # Double-quote args containing shell metacharacters to delay
   903        # word splitting, command substitution and and variable
   904        # expansion for a subsequent eval.
   905        # Many Bourne shells cannot handle close brackets correctly
   906        # in scan sets, so we specify it separately.
   907        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
   908          func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
   909          ;;
   910        *)
   911          func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
   912      esac
   913  }
   914  
   915  
   916  # func_quote_for_expand arg
   917  # Aesthetically quote ARG to be evaled later; same as above,
   918  # but do not quote variable references.
   919  func_quote_for_expand ()
   920  {
   921      case $1 in
   922        *[\\\`\"]*)
   923  	my_arg=`$ECHO "X$1" | $Xsed \
   924  	    -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
   925        *)
   926          my_arg="$1" ;;
   927      esac
   928  
   929      case $my_arg in
   930        # Double-quote args containing shell metacharacters to delay
   931        # word splitting and command substitution for a subsequent eval.
   932        # Many Bourne shells cannot handle close brackets correctly
   933        # in scan sets, so we specify it separately.
   934        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
   935          my_arg="\"$my_arg\""
   936          ;;
   937      esac
   938  
   939      func_quote_for_expand_result="$my_arg"
   940  }
   941  
   942  
   943  # func_show_eval cmd [fail_exp]
   944  # Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
   945  # not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
   946  # is given, then evaluate it.
   947  func_show_eval ()
   948  {
   949      my_cmd="$1"
   950      my_fail_exp="${2-:}"
   951  
   952      ${opt_silent-false} || {
   953        func_quote_for_expand "$my_cmd"
   954        eval "func_echo $func_quote_for_expand_result"
   955      }
   956  
   957      if ${opt_dry_run-false}; then :; else
   958        eval "$my_cmd"
   959        my_status=$?
   960        if test "$my_status" -eq 0; then :; else
   961  	eval "(exit $my_status); $my_fail_exp"
   962        fi
   963      fi
   964  }
   965  
   966  
   967  # func_show_eval_locale cmd [fail_exp]
   968  # Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
   969  # not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
   970  # is given, then evaluate it.  Use the saved locale for evaluation.
   971  func_show_eval_locale ()
   972  {
   973      my_cmd="$1"
   974      my_fail_exp="${2-:}"
   975  
   976      ${opt_silent-false} || {
   977        func_quote_for_expand "$my_cmd"
   978        eval "func_echo $func_quote_for_expand_result"
   979      }
   980  
   981      if ${opt_dry_run-false}; then :; else
   982        eval "$lt_user_locale
   983  	    $my_cmd"
   984        my_status=$?
   985        eval "$lt_safe_locale"
   986        if test "$my_status" -eq 0; then :; else
   987  	eval "(exit $my_status); $my_fail_exp"
   988        fi
   989      fi
   990  }
   991  
   992  
   993  
   994  
   995  
   996  # func_version
   997  # Echo version message to standard output and exit.
   998  func_version ()
   999  {
  1000      $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
  1001          s/^# //
  1002  	s/^# *$//
  1003          s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
  1004          p
  1005       }' < "$progpath"
  1006       exit $?
  1007  }
  1008  
  1009  # func_usage
  1010  # Echo short help message to standard output and exit.
  1011  func_usage ()
  1012  {
  1013      $SED -n '/^# Usage:/,/# -h/ {
  1014          s/^# //
  1015  	s/^# *$//
  1016  	s/\$progname/'$progname'/
  1017  	p
  1018      }' < "$progpath"
  1019      $ECHO
  1020      $ECHO "run \`$progname --help | more' for full usage"
  1021      exit $?
  1022  }
  1023  
  1024  # func_help
  1025  # Echo long help message to standard output and exit.
  1026  func_help ()
  1027  {
  1028      $SED -n '/^# Usage:/,/# Report bugs to/ {
  1029          s/^# //
  1030  	s/^# *$//
  1031  	s*\$progname*'$progname'*
  1032  	s*\$host*'"$host"'*
  1033  	s*\$SHELL*'"$SHELL"'*
  1034  	s*\$LTCC*'"$LTCC"'*
  1035  	s*\$LTCFLAGS*'"$LTCFLAGS"'*
  1036  	s*\$LD*'"$LD"'*
  1037  	s/\$with_gnu_ld/'"$with_gnu_ld"'/
  1038  	s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
  1039  	s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
  1040  	p
  1041       }' < "$progpath"
  1042      exit $?
  1043  }
  1044  
  1045  # func_missing_arg argname
  1046  # Echo program name prefixed message to standard error and set global
  1047  # exit_cmd.
  1048  func_missing_arg ()
  1049  {
  1050      func_error "missing argument for $1"
  1051      exit_cmd=exit
  1052  }
  1053  
  1054  exit_cmd=:
  1055  
  1056  
  1057  
  1058  
  1059  
  1060  # Check that we have a working $ECHO.
  1061  if test "X$1" = X--no-reexec; then
  1062    # Discard the --no-reexec flag, and continue.
  1063    shift
  1064  elif test "X$1" = X--fallback-echo; then
  1065    # Avoid inline document here, it may be left over
  1066    :
  1067  elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
  1068    # Yippee, $ECHO works!
  1069    :
  1070  else
  1071    # Restart under the correct shell, and then maybe $ECHO will work.
  1072    exec $SHELL "$progpath" --no-reexec ${1+"$@"}
  1073  fi
  1074  
  1075  if test "X$1" = X--fallback-echo; then
  1076    # used as fallback echo
  1077    shift
  1078    cat <<EOF
  1079  $*
  1080  EOF
  1081    exit $EXIT_SUCCESS
  1082  fi
  1083  
  1084  magic="%%%MAGIC variable%%%"
  1085  magic_exe="%%%MAGIC EXE variable%%%"
  1086  
  1087  # Global variables.
  1088  # $mode is unset
  1089  nonopt=
  1090  execute_dlfiles=
  1091  preserve_args=
  1092  lo2o="s/\\.lo\$/.${objext}/"
  1093  o2lo="s/\\.${objext}\$/.lo/"
  1094  extracted_archives=
  1095  extracted_serial=0
  1096  
  1097  opt_dry_run=false
  1098  opt_duplicate_deps=false
  1099  opt_silent=false
  1100  opt_debug=:
  1101  
  1102  # If this variable is set in any of the actions, the command in it
  1103  # will be execed at the end.  This prevents here-documents from being
  1104  # left over by shells.
  1105  exec_cmd=
  1106  
  1107  # func_fatal_configuration arg...
  1108  # Echo program name prefixed message to standard error, followed by
  1109  # a configuration failure hint, and exit.
  1110  func_fatal_configuration ()
  1111  {
  1112      func_error ${1+"$@"}
  1113      func_error "See the $PACKAGE documentation for more information."
  1114      func_fatal_error "Fatal configuration error."
  1115  }
  1116  
  1117  
  1118  # func_config
  1119  # Display the configuration for all the tags in this script.
  1120  func_config ()
  1121  {
  1122      re_begincf='^# ### BEGIN LIBTOOL'
  1123      re_endcf='^# ### END LIBTOOL'
  1124  
  1125      # Default configuration.
  1126      $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
  1127  
  1128      # Now print the configurations for the tags.
  1129      for tagname in $taglist; do
  1130        $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
  1131      done
  1132  
  1133      exit $?
  1134  }
  1135  
  1136  # func_features
  1137  # Display the features supported by this script.
  1138  func_features ()
  1139  {
  1140      $ECHO "host: $host"
  1141      if test "$build_libtool_libs" = yes; then
  1142        $ECHO "enable shared libraries"
  1143      else
  1144        $ECHO "disable shared libraries"
  1145      fi
  1146      if test "$build_old_libs" = yes; then
  1147        $ECHO "enable static libraries"
  1148      else
  1149        $ECHO "disable static libraries"
  1150      fi
  1151  
  1152      exit $?
  1153  }
  1154  
  1155  # func_enable_tag tagname
  1156  # Verify that TAGNAME is valid, and either flag an error and exit, or
  1157  # enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
  1158  # variable here.
  1159  func_enable_tag ()
  1160  {
  1161    # Global variable:
  1162    tagname="$1"
  1163  
  1164    re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
  1165    re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
  1166    sed_extractcf="/$re_begincf/,/$re_endcf/p"
  1167  
  1168    # Validate tagname.
  1169    case $tagname in
  1170      *[!-_A-Za-z0-9,/]*)
  1171        func_fatal_error "invalid tag name: $tagname"
  1172        ;;
  1173    esac
  1174  
  1175    # Don't test for the "default" C tag, as we know it's
  1176    # there but not specially marked.
  1177    case $tagname in
  1178      CC) ;;
  1179      *)
  1180        if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
  1181  	taglist="$taglist $tagname"
  1182  
  1183  	# Evaluate the configuration.  Be careful to quote the path
  1184  	# and the sed script, to avoid splitting on whitespace, but
  1185  	# also don't use non-portable quotes within backquotes within
  1186  	# quotes we have to do it in 2 steps:
  1187  	extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
  1188  	eval "$extractedcf"
  1189        else
  1190  	func_error "ignoring unknown tag $tagname"
  1191        fi
  1192        ;;
  1193    esac
  1194  }
  1195  
  1196  # Parse options once, thoroughly.  This comes as soon as possible in
  1197  # the script to make things like `libtool --version' happen quickly.
  1198  {
  1199  
  1200    # Shorthand for --mode=foo, only valid as the first argument
  1201    case $1 in
  1202    clean|clea|cle|cl)
  1203      shift; set dummy --mode clean ${1+"$@"}; shift
  1204      ;;
  1205    compile|compil|compi|comp|com|co|c)
  1206      shift; set dummy --mode compile ${1+"$@"}; shift
  1207      ;;
  1208    execute|execut|execu|exec|exe|ex|e)
  1209      shift; set dummy --mode execute ${1+"$@"}; shift
  1210      ;;
  1211    finish|finis|fini|fin|fi|f)
  1212      shift; set dummy --mode finish ${1+"$@"}; shift
  1213      ;;
  1214    install|instal|insta|inst|ins|in|i)
  1215      shift; set dummy --mode install ${1+"$@"}; shift
  1216      ;;
  1217    link|lin|li|l)
  1218      shift; set dummy --mode link ${1+"$@"}; shift
  1219      ;;
  1220    uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
  1221      shift; set dummy --mode uninstall ${1+"$@"}; shift
  1222      ;;
  1223    esac
  1224  
  1225    # Parse non-mode specific arguments:
  1226    while test "$#" -gt 0; do
  1227      opt="$1"
  1228      shift
  1229  
  1230      case $opt in
  1231        --config)		func_config					;;
  1232  
  1233        --debug)		preserve_args="$preserve_args $opt"
  1234  			func_echo "enabling shell trace mode"
  1235  			opt_debug='set -x'
  1236  			$opt_debug
  1237  			;;
  1238  
  1239        -dlopen)		test "$#" -eq 0 && func_missing_arg "$opt" && break
  1240  			execute_dlfiles="$execute_dlfiles $1"
  1241  			shift
  1242  			;;
  1243  
  1244        --dry-run | -n)	opt_dry_run=:					;;
  1245        --features)       func_features					;;
  1246        --finish)		mode="finish"					;;
  1247  
  1248        --mode)		test "$#" -eq 0 && func_missing_arg "$opt" && break
  1249  			case $1 in
  1250  			  # Valid mode arguments:
  1251  			  clean)	;;
  1252  			  compile)	;;
  1253  			  execute)	;;
  1254  			  finish)	;;
  1255  			  install)	;;
  1256  			  link)		;;
  1257  			  relink)	;;
  1258  			  uninstall)	;;
  1259  
  1260  			  # Catch anything else as an error
  1261  			  *) func_error "invalid argument for $opt"
  1262  			     exit_cmd=exit
  1263  			     break
  1264  			     ;;
  1265  		        esac
  1266  
  1267  			mode="$1"
  1268  			shift
  1269  			;;
  1270  
  1271        --preserve-dup-deps)
  1272  			opt_duplicate_deps=:				;;
  1273  
  1274        --quiet|--silent)	preserve_args="$preserve_args $opt"
  1275  			opt_silent=:
  1276  			;;
  1277  
  1278        --verbose| -v)	preserve_args="$preserve_args $opt"
  1279  			opt_silent=false
  1280  			;;
  1281  
  1282        --tag)		test "$#" -eq 0 && func_missing_arg "$opt" && break
  1283  			preserve_args="$preserve_args $opt $1"
  1284  			func_enable_tag "$1"	# tagname is set here
  1285  			shift
  1286  			;;
  1287  
  1288        # Separate optargs to long options:
  1289        -dlopen=*|--mode=*|--tag=*)
  1290  			func_opt_split "$opt"
  1291  			set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
  1292  			shift
  1293  			;;
  1294  
  1295        -\?|-h)		func_usage					;;
  1296        --help)		opt_help=:					;;
  1297        --version)	func_version					;;
  1298  
  1299        -*)		func_fatal_help "unrecognized option \`$opt'"	;;
  1300  
  1301        *)		nonopt="$opt"
  1302  			break
  1303  			;;
  1304      esac
  1305    done
  1306  
  1307  
  1308    case $host in
  1309      *cygwin* | *mingw* | *pw32* | *cegcc*)
  1310        # don't eliminate duplications in $postdeps and $predeps
  1311        opt_duplicate_compiler_generated_deps=:
  1312        ;;
  1313      *)
  1314        opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
  1315        ;;
  1316    esac
  1317  
  1318    # Having warned about all mis-specified options, bail out if
  1319    # anything was wrong.
  1320    $exit_cmd $EXIT_FAILURE
  1321  }
  1322  
  1323  # func_check_version_match
  1324  # Ensure that we are using m4 macros, and libtool script from the same
  1325  # release of libtool.
  1326  func_check_version_match ()
  1327  {
  1328    if test "$package_revision" != "$macro_revision"; then
  1329      if test "$VERSION" != "$macro_version"; then
  1330        if test -z "$macro_version"; then
  1331          cat >&2 <<_LT_EOF
  1332  $progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
  1333  $progname: definition of this LT_INIT comes from an older release.
  1334  $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
  1335  $progname: and run autoconf again.
  1336  _LT_EOF
  1337        else
  1338          cat >&2 <<_LT_EOF
  1339  $progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
  1340  $progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
  1341  $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
  1342  $progname: and run autoconf again.
  1343  _LT_EOF
  1344        fi
  1345      else
  1346        cat >&2 <<_LT_EOF
  1347  $progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
  1348  $progname: but the definition of this LT_INIT comes from revision $macro_revision.
  1349  $progname: You should recreate aclocal.m4 with macros from revision $package_revision
  1350  $progname: of $PACKAGE $VERSION and run autoconf again.
  1351  _LT_EOF
  1352      fi
  1353  
  1354      exit $EXIT_MISMATCH
  1355    fi
  1356  }
  1357  
  1358  
  1359  ## ----------- ##
  1360  ##    Main.    ##
  1361  ## ----------- ##
  1362  
  1363  $opt_help || {
  1364    # Sanity checks first:
  1365    func_check_version_match
  1366  
  1367    if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
  1368      func_fatal_configuration "not configured to build any kind of library"
  1369    fi
  1370  
  1371    test -z "$mode" && func_fatal_error "error: you must specify a MODE."
  1372  
  1373  
  1374    # Darwin sucks
  1375    eval std_shrext=\"$shrext_cmds\"
  1376  
  1377  
  1378    # Only execute mode is allowed to have -dlopen flags.
  1379    if test -n "$execute_dlfiles" && test "$mode" != execute; then
  1380      func_error "unrecognized option \`-dlopen'"
  1381      $ECHO "$help" 1>&2
  1382      exit $EXIT_FAILURE
  1383    fi
  1384  
  1385    # Change the help message to a mode-specific one.
  1386    generic_help="$help"
  1387    help="Try \`$progname --help --mode=$mode' for more information."
  1388  }
  1389  
  1390  
  1391  # func_lalib_p file
  1392  # True iff FILE is a libtool `.la' library or `.lo' object file.
  1393  # This function is only a basic sanity check; it will hardly flush out
  1394  # determined imposters.
  1395  func_lalib_p ()
  1396  {
  1397      test -f "$1" &&
  1398        $SED -e 4q "$1" 2>/dev/null \
  1399          | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
  1400  }
  1401  
  1402  # func_lalib_unsafe_p file
  1403  # True iff FILE is a libtool `.la' library or `.lo' object file.
  1404  # This function implements the same check as func_lalib_p without
  1405  # resorting to external programs.  To this end, it redirects stdin and
  1406  # closes it afterwards, without saving the original file descriptor.
  1407  # As a safety measure, use it only where a negative result would be
  1408  # fatal anyway.  Works if `file' does not exist.
  1409  func_lalib_unsafe_p ()
  1410  {
  1411      lalib_p=no
  1412      if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
  1413  	for lalib_p_l in 1 2 3 4
  1414  	do
  1415  	    read lalib_p_line
  1416  	    case "$lalib_p_line" in
  1417  		\#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
  1418  	    esac
  1419  	done
  1420  	exec 0<&5 5<&-
  1421      fi
  1422      test "$lalib_p" = yes
  1423  }
  1424  
  1425  # func_ltwrapper_script_p file
  1426  # True iff FILE is a libtool wrapper script
  1427  # This function is only a basic sanity check; it will hardly flush out
  1428  # determined imposters.
  1429  func_ltwrapper_script_p ()
  1430  {
  1431      func_lalib_p "$1"
  1432  }
  1433  
  1434  # func_ltwrapper_executable_p file
  1435  # True iff FILE is a libtool wrapper executable
  1436  # This function is only a basic sanity check; it will hardly flush out
  1437  # determined imposters.
  1438  func_ltwrapper_executable_p ()
  1439  {
  1440      func_ltwrapper_exec_suffix=
  1441      case $1 in
  1442      *.exe) ;;
  1443      *) func_ltwrapper_exec_suffix=.exe ;;
  1444      esac
  1445      $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
  1446  }
  1447  
  1448  # func_ltwrapper_scriptname file
  1449  # Assumes file is an ltwrapper_executable
  1450  # uses $file to determine the appropriate filename for a
  1451  # temporary ltwrapper_script.
  1452  func_ltwrapper_scriptname ()
  1453  {
  1454      func_ltwrapper_scriptname_result=""
  1455      if func_ltwrapper_executable_p "$1"; then
  1456  	func_dirname_and_basename "$1" "" "."
  1457  	func_stripname '' '.exe' "$func_basename_result"
  1458  	func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
  1459      fi
  1460  }
  1461  
  1462  # func_ltwrapper_p file
  1463  # True iff FILE is a libtool wrapper script or wrapper executable
  1464  # This function is only a basic sanity check; it will hardly flush out
  1465  # determined imposters.
  1466  func_ltwrapper_p ()
  1467  {
  1468      func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
  1469  }
  1470  
  1471  
  1472  # func_execute_cmds commands fail_cmd
  1473  # Execute tilde-delimited COMMANDS.
  1474  # If FAIL_CMD is given, eval that upon failure.
  1475  # FAIL_CMD may read-access the current command in variable CMD!
  1476  func_execute_cmds ()
  1477  {
  1478      $opt_debug
  1479      save_ifs=$IFS; IFS='~'
  1480      for cmd in $1; do
  1481        IFS=$save_ifs
  1482        eval cmd=\"$cmd\"
  1483        func_show_eval "$cmd" "${2-:}"
  1484      done
  1485      IFS=$save_ifs
  1486  }
  1487  
  1488  
  1489  # func_source file
  1490  # Source FILE, adding directory component if necessary.
  1491  # Note that it is not necessary on cygwin/mingw to append a dot to
  1492  # FILE even if both FILE and FILE.exe exist: automatic-append-.exe
  1493  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
  1494  # `FILE.' does not work on cygwin managed mounts.
  1495  func_source ()
  1496  {
  1497      $opt_debug
  1498      case $1 in
  1499      */* | *\\*)	. "$1" ;;
  1500      *)		. "./$1" ;;
  1501      esac
  1502  }
  1503  
  1504  
  1505  # func_infer_tag arg
  1506  # Infer tagged configuration to use if any are available and
  1507  # if one wasn't chosen via the "--tag" command line option.
  1508  # Only attempt this if the compiler in the base compile
  1509  # command doesn't match the default compiler.
  1510  # arg is usually of the form 'gcc ...'
  1511  func_infer_tag ()
  1512  {
  1513      $opt_debug
  1514      if test -n "$available_tags" && test -z "$tagname"; then
  1515        CC_quoted=
  1516        for arg in $CC; do
  1517          func_quote_for_eval "$arg"
  1518  	CC_quoted="$CC_quoted $func_quote_for_eval_result"
  1519        done
  1520        case $@ in
  1521        # Blanks in the command may have been stripped by the calling shell,
  1522        # but not from the CC environment variable when configure was run.
  1523        " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
  1524        # Blanks at the start of $base_compile will cause this to fail
  1525        # if we don't check for them as well.
  1526        *)
  1527  	for z in $available_tags; do
  1528  	  if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
  1529  	    # Evaluate the configuration.
  1530  	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
  1531  	    CC_quoted=
  1532  	    for arg in $CC; do
  1533  	      # Double-quote args containing other shell metacharacters.
  1534  	      func_quote_for_eval "$arg"
  1535  	      CC_quoted="$CC_quoted $func_quote_for_eval_result"
  1536  	    done
  1537  	    case "$@ " in
  1538  	      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
  1539  	      # The compiler in the base compile command matches
  1540  	      # the one in the tagged configuration.
  1541  	      # Assume this is the tagged configuration we want.
  1542  	      tagname=$z
  1543  	      break
  1544  	      ;;
  1545  	    esac
  1546  	  fi
  1547  	done
  1548  	# If $tagname still isn't set, then no tagged configuration
  1549  	# was found and let the user know that the "--tag" command
  1550  	# line option must be used.
  1551  	if test -z "$tagname"; then
  1552  	  func_echo "unable to infer tagged configuration"
  1553  	  func_fatal_error "specify a tag with \`--tag'"
  1554  #	else
  1555  #	  func_verbose "using $tagname tagged configuration"
  1556  	fi
  1557  	;;
  1558        esac
  1559      fi
  1560  }
  1561  
  1562  
  1563  
  1564  # func_write_libtool_object output_name pic_name nonpic_name
  1565  # Create a libtool object file (analogous to a ".la" file),
  1566  # but don't create it if we're doing a dry run.
  1567  func_write_libtool_object ()
  1568  {
  1569      write_libobj=${1}
  1570      if test "$build_libtool_libs" = yes; then
  1571        write_lobj=\'${2}\'
  1572      else
  1573        write_lobj=none
  1574      fi
  1575  
  1576      if test "$build_old_libs" = yes; then
  1577        write_oldobj=\'${3}\'
  1578      else
  1579        write_oldobj=none
  1580      fi
  1581  
  1582      $opt_dry_run || {
  1583        cat >${write_libobj}T <<EOF
  1584  # $write_libobj - a libtool object file
  1585  # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
  1586  #
  1587  # Please DO NOT delete this file!
  1588  # It is necessary for linking the library.
  1589  
  1590  # Name of the PIC object.
  1591  pic_object=$write_lobj
  1592  
  1593  # Name of the non-PIC object
  1594  non_pic_object=$write_oldobj
  1595  
  1596  EOF
  1597        $MV "${write_libobj}T" "${write_libobj}"
  1598      }
  1599  }
  1600  
  1601  # func_mode_compile arg...
  1602  func_mode_compile ()
  1603  {
  1604      $opt_debug
  1605      # Get the compilation command and the source file.
  1606      base_compile=
  1607      srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
  1608      suppress_opt=yes
  1609      suppress_output=
  1610      arg_mode=normal
  1611      libobj=
  1612      later=
  1613      pie_flag=
  1614  
  1615      for arg
  1616      do
  1617        case $arg_mode in
  1618        arg  )
  1619  	# do not "continue".  Instead, add this to base_compile
  1620  	lastarg="$arg"
  1621  	arg_mode=normal
  1622  	;;
  1623  
  1624        target )
  1625  	libobj="$arg"
  1626  	arg_mode=normal
  1627  	continue
  1628  	;;
  1629  
  1630        normal )
  1631  	# Accept any command-line options.
  1632  	case $arg in
  1633  	-o)
  1634  	  test -n "$libobj" && \
  1635  	    func_fatal_error "you cannot specify \`-o' more than once"
  1636  	  arg_mode=target
  1637  	  continue
  1638  	  ;;
  1639  
  1640  	-pie | -fpie | -fPIE)
  1641            pie_flag="$pie_flag $arg"
  1642  	  continue
  1643  	  ;;
  1644  
  1645  	-shared | -static | -prefer-pic | -prefer-non-pic)
  1646  	  later="$later $arg"
  1647  	  continue
  1648  	  ;;
  1649  
  1650  	-no-suppress)
  1651  	  suppress_opt=no
  1652  	  continue
  1653  	  ;;
  1654  
  1655  	-Xcompiler)
  1656  	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
  1657  	  continue      #  The current "srcfile" will either be retained or
  1658  	  ;;            #  replaced later.  I would guess that would be a bug.
  1659  
  1660  	-Wc,*)
  1661  	  func_stripname '-Wc,' '' "$arg"
  1662  	  args=$func_stripname_result
  1663  	  lastarg=
  1664  	  save_ifs="$IFS"; IFS=','
  1665  	  for arg in $args; do
  1666  	    IFS="$save_ifs"
  1667  	    func_quote_for_eval "$arg"
  1668  	    lastarg="$lastarg $func_quote_for_eval_result"
  1669  	  done
  1670  	  IFS="$save_ifs"
  1671  	  func_stripname ' ' '' "$lastarg"
  1672  	  lastarg=$func_stripname_result
  1673  
  1674  	  # Add the arguments to base_compile.
  1675  	  base_compile="$base_compile $lastarg"
  1676  	  continue
  1677  	  ;;
  1678  
  1679  	*)
  1680  	  # Accept the current argument as the source file.
  1681  	  # The previous "srcfile" becomes the current argument.
  1682  	  #
  1683  	  lastarg="$srcfile"
  1684  	  srcfile="$arg"
  1685  	  ;;
  1686  	esac  #  case $arg
  1687  	;;
  1688        esac    #  case $arg_mode
  1689  
  1690        # Aesthetically quote the previous argument.
  1691        func_quote_for_eval "$lastarg"
  1692        base_compile="$base_compile $func_quote_for_eval_result"
  1693      done # for arg
  1694  
  1695      case $arg_mode in
  1696      arg)
  1697        func_fatal_error "you must specify an argument for -Xcompile"
  1698        ;;
  1699      target)
  1700        func_fatal_error "you must specify a target with \`-o'"
  1701        ;;
  1702      *)
  1703        # Get the name of the library object.
  1704        test -z "$libobj" && {
  1705  	func_basename "$srcfile"
  1706  	libobj="$func_basename_result"
  1707        }
  1708        ;;
  1709      esac
  1710  
  1711      # Recognize several different file suffixes.
  1712      # If the user specifies -o file.o, it is replaced with file.lo
  1713      case $libobj in
  1714      *.[cCFSifmso] | \
  1715      *.ada | *.adb | *.ads | *.asm | \
  1716      *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
  1717      *.[fF][09]? | *.for | *.java | *.obj | *.sx)
  1718        func_xform "$libobj"
  1719        libobj=$func_xform_result
  1720        ;;
  1721      esac
  1722  
  1723      case $libobj in
  1724      *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
  1725      *)
  1726        func_fatal_error "cannot determine name of library object from \`$libobj'"
  1727        ;;
  1728      esac
  1729  
  1730      func_infer_tag $base_compile
  1731  
  1732      for arg in $later; do
  1733        case $arg in
  1734        -shared)
  1735  	test "$build_libtool_libs" != yes && \
  1736  	  func_fatal_configuration "can not build a shared library"
  1737  	build_old_libs=no
  1738  	continue
  1739  	;;
  1740  
  1741        -static)
  1742  	build_libtool_libs=no
  1743  	build_old_libs=yes
  1744  	continue
  1745  	;;
  1746  
  1747        -prefer-pic)
  1748  	pic_mode=yes
  1749  	continue
  1750  	;;
  1751  
  1752        -prefer-non-pic)
  1753  	pic_mode=no
  1754  	continue
  1755  	;;
  1756        esac
  1757      done
  1758  
  1759      func_quote_for_eval "$libobj"
  1760      test "X$libobj" != "X$func_quote_for_eval_result" \
  1761        && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'	 &()|`$[]' \
  1762        && func_warning "libobj name \`$libobj' may not contain shell special characters."
  1763      func_dirname_and_basename "$obj" "/" ""
  1764      objname="$func_basename_result"
  1765      xdir="$func_dirname_result"
  1766      lobj=${xdir}$objdir/$objname
  1767  
  1768      test -z "$base_compile" && \
  1769        func_fatal_help "you must specify a compilation command"
  1770  
  1771      # Delete any leftover library objects.
  1772      if test "$build_old_libs" = yes; then
  1773        removelist="$obj $lobj $libobj ${libobj}T"
  1774      else
  1775        removelist="$lobj $libobj ${libobj}T"
  1776      fi
  1777  
  1778      # On Cygwin there's no "real" PIC flag so we must build both object types
  1779      case $host_os in
  1780      cygwin* | mingw* | pw32* | os2* | cegcc*)
  1781        pic_mode=default
  1782        ;;
  1783      esac
  1784      if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
  1785        # non-PIC code in shared libraries is not supported
  1786        pic_mode=default
  1787      fi
  1788  
  1789      # Calculate the filename of the output object if compiler does
  1790      # not support -o with -c
  1791      if test "$compiler_c_o" = no; then
  1792        output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
  1793        lockfile="$output_obj.lock"
  1794      else
  1795        output_obj=
  1796        need_locks=no
  1797        lockfile=
  1798      fi
  1799  
  1800      # Lock this critical section if it is needed
  1801      # We use this script file to make the link, it avoids creating a new file
  1802      if test "$need_locks" = yes; then
  1803        until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
  1804  	func_echo "Waiting for $lockfile to be removed"
  1805  	sleep 2
  1806        done
  1807      elif test "$need_locks" = warn; then
  1808        if test -f "$lockfile"; then
  1809  	$ECHO "\
  1810  *** ERROR, $lockfile exists and contains:
  1811  `cat $lockfile 2>/dev/null`
  1812  
  1813  This indicates that another process is trying to use the same
  1814  temporary object file, and libtool could not work around it because
  1815  your compiler does not support \`-c' and \`-o' together.  If you
  1816  repeat this compilation, it may succeed, by chance, but you had better
  1817  avoid parallel builds (make -j) in this platform, or get a better
  1818  compiler."
  1819  
  1820  	$opt_dry_run || $RM $removelist
  1821  	exit $EXIT_FAILURE
  1822        fi
  1823        removelist="$removelist $output_obj"
  1824        $ECHO "$srcfile" > "$lockfile"
  1825      fi
  1826  
  1827      $opt_dry_run || $RM $removelist
  1828      removelist="$removelist $lockfile"
  1829      trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
  1830  
  1831      if test -n "$fix_srcfile_path"; then
  1832        eval srcfile=\"$fix_srcfile_path\"
  1833      fi
  1834      func_quote_for_eval "$srcfile"
  1835      qsrcfile=$func_quote_for_eval_result
  1836  
  1837      # Only build a PIC object if we are building libtool libraries.
  1838      if test "$build_libtool_libs" = yes; then
  1839        # Without this assignment, base_compile gets emptied.
  1840        fbsd_hideous_sh_bug=$base_compile
  1841  
  1842        if test "$pic_mode" != no; then
  1843  	command="$base_compile $qsrcfile $pic_flag"
  1844        else
  1845  	# Don't build PIC code
  1846  	command="$base_compile $qsrcfile"
  1847        fi
  1848  
  1849        func_mkdir_p "$xdir$objdir"
  1850  
  1851        if test -z "$output_obj"; then
  1852  	# Place PIC objects in $objdir
  1853  	command="$command -o $lobj"
  1854        fi
  1855  
  1856        func_show_eval_locale "$command"	\
  1857            'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
  1858  
  1859        if test "$need_locks" = warn &&
  1860  	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
  1861  	$ECHO "\
  1862  *** ERROR, $lockfile contains:
  1863  `cat $lockfile 2>/dev/null`
  1864  
  1865  but it should contain:
  1866  $srcfile
  1867  
  1868  This indicates that another process is trying to use the same
  1869  temporary object file, and libtool could not work around it because
  1870  your compiler does not support \`-c' and \`-o' together.  If you
  1871  repeat this compilation, it may succeed, by chance, but you had better
  1872  avoid parallel builds (make -j) in this platform, or get a better
  1873  compiler."
  1874  
  1875  	$opt_dry_run || $RM $removelist
  1876  	exit $EXIT_FAILURE
  1877        fi
  1878  
  1879        # Just move the object if needed, then go on to compile the next one
  1880        if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
  1881  	func_show_eval '$MV "$output_obj" "$lobj"' \
  1882  	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
  1883        fi
  1884  
  1885        # Allow error messages only from the first compilation.
  1886        if test "$suppress_opt" = yes; then
  1887  	suppress_output=' >/dev/null 2>&1'
  1888        fi
  1889      fi
  1890  
  1891      # Only build a position-dependent object if we build old libraries.
  1892      if test "$build_old_libs" = yes; then
  1893        if test "$pic_mode" != yes; then
  1894  	# Don't build PIC code
  1895  	command="$base_compile $qsrcfile$pie_flag"
  1896        else
  1897  	command="$base_compile $qsrcfile $pic_flag"
  1898        fi
  1899        if test "$compiler_c_o" = yes; then
  1900  	command="$command -o $obj"
  1901        fi
  1902  
  1903        # Suppress compiler output if we already did a PIC compilation.
  1904        command="$command$suppress_output"
  1905        func_show_eval_locale "$command" \
  1906          '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
  1907  
  1908        if test "$need_locks" = warn &&
  1909  	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
  1910  	$ECHO "\
  1911  *** ERROR, $lockfile contains:
  1912  `cat $lockfile 2>/dev/null`
  1913  
  1914  but it should contain:
  1915  $srcfile
  1916  
  1917  This indicates that another process is trying to use the same
  1918  temporary object file, and libtool could not work around it because
  1919  your compiler does not support \`-c' and \`-o' together.  If you
  1920  repeat this compilation, it may succeed, by chance, but you had better
  1921  avoid parallel builds (make -j) in this platform, or get a better
  1922  compiler."
  1923  
  1924  	$opt_dry_run || $RM $removelist
  1925  	exit $EXIT_FAILURE
  1926        fi
  1927  
  1928        # Just move the object if needed
  1929        if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
  1930  	func_show_eval '$MV "$output_obj" "$obj"' \
  1931  	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
  1932        fi
  1933      fi
  1934  
  1935      $opt_dry_run || {
  1936        func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
  1937  
  1938        # Unlock the critical section if it was locked
  1939        if test "$need_locks" != no; then
  1940  	removelist=$lockfile
  1941          $RM "$lockfile"
  1942        fi
  1943      }
  1944  
  1945      exit $EXIT_SUCCESS
  1946  }
  1947  
  1948  $opt_help || {
  1949  test "$mode" = compile && func_mode_compile ${1+"$@"}
  1950  }
  1951  
  1952  func_mode_help ()
  1953  {
  1954      # We need to display help for each of the modes.
  1955      case $mode in
  1956        "")
  1957          # Generic help is extracted from the usage comments
  1958          # at the start of this file.
  1959          func_help
  1960          ;;
  1961  
  1962        clean)
  1963          $ECHO \
  1964  "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
  1965  
  1966  Remove files from the build directory.
  1967  
  1968  RM is the name of the program to use to delete files associated with each FILE
  1969  (typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
  1970  to RM.
  1971  
  1972  If FILE is a libtool library, object or program, all the files associated
  1973  with it are deleted. Otherwise, only FILE itself is deleted using RM."
  1974          ;;
  1975  
  1976        compile)
  1977        $ECHO \
  1978  "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
  1979  
  1980  Compile a source file into a libtool library object.
  1981  
  1982  This mode accepts the following additional options:
  1983  
  1984    -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
  1985    -no-suppress      do not suppress compiler output for multiple passes
  1986    -prefer-pic       try to building PIC objects only
  1987    -prefer-non-pic   try to building non-PIC objects only
  1988    -shared           do not build a \`.o' file suitable for static linking
  1989    -static           only build a \`.o' file suitable for static linking
  1990  
  1991  COMPILE-COMMAND is a command to be used in creating a \`standard' object file
  1992  from the given SOURCEFILE.
  1993  
  1994  The output file name is determined by removing the directory component from
  1995  SOURCEFILE, then substituting the C source code suffix \`.c' with the
  1996  library object suffix, \`.lo'."
  1997          ;;
  1998  
  1999        execute)
  2000          $ECHO \
  2001  "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
  2002  
  2003  Automatically set library path, then run a program.
  2004  
  2005  This mode accepts the following additional options:
  2006  
  2007    -dlopen FILE      add the directory containing FILE to the library path
  2008  
  2009  This mode sets the library path environment variable according to \`-dlopen'
  2010  flags.
  2011  
  2012  If any of the ARGS are libtool executable wrappers, then they are translated
  2013  into their corresponding uninstalled binary, and any of their required library
  2014  directories are added to the library path.
  2015  
  2016  Then, COMMAND is executed, with ARGS as arguments."
  2017          ;;
  2018  
  2019        finish)
  2020          $ECHO \
  2021  "Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
  2022  
  2023  Complete the installation of libtool libraries.
  2024  
  2025  Each LIBDIR is a directory that contains libtool libraries.
  2026  
  2027  The commands that this mode executes may require superuser privileges.  Use
  2028  the \`--dry-run' option if you just want to see what would be executed."
  2029          ;;
  2030  
  2031        install)
  2032          $ECHO \
  2033  "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
  2034  
  2035  Install executables or libraries.
  2036  
  2037  INSTALL-COMMAND is the installation command.  The first component should be
  2038  either the \`install' or \`cp' program.
  2039  
  2040  The following components of INSTALL-COMMAND are treated specially:
  2041  
  2042    -inst-prefix PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
  2043  
  2044  The rest of the components are interpreted as arguments to that command (only
  2045  BSD-compatible install options are recognized)."
  2046          ;;
  2047  
  2048        link)
  2049          $ECHO \
  2050  "Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
  2051  
  2052  Link object files or libraries together to form another library, or to
  2053  create an executable program.
  2054  
  2055  LINK-COMMAND is a command using the C compiler that you would use to create
  2056  a program from several object files.
  2057  
  2058  The following components of LINK-COMMAND are treated specially:
  2059  
  2060    -all-static       do not do any dynamic linking at all
  2061    -avoid-version    do not add a version suffix if possible
  2062    -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
  2063    -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
  2064    -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
  2065    -export-symbols SYMFILE
  2066                      try to export only the symbols listed in SYMFILE
  2067    -export-symbols-regex REGEX
  2068                      try to export only the symbols matching REGEX
  2069    -LLIBDIR          search LIBDIR for required installed libraries
  2070    -lNAME            OUTPUT-FILE requires the installed library libNAME
  2071    -module           build a library that can dlopened
  2072    -no-fast-install  disable the fast-install mode
  2073    -no-install       link a not-installable executable
  2074    -no-undefined     declare that a library does not refer to external symbols
  2075    -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
  2076    -objectlist FILE  Use a list of object files found in FILE to specify objects
  2077    -precious-files-regex REGEX
  2078                      don't remove output files matching REGEX
  2079    -release RELEASE  specify package release information
  2080    -rpath LIBDIR     the created library will eventually be installed in LIBDIR
  2081    -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
  2082    -shared           only do dynamic linking of libtool libraries
  2083    -shrext SUFFIX    override the standard shared library file extension
  2084    -static           do not do any dynamic linking of uninstalled libtool libraries
  2085    -static-libtool-libs
  2086                      do not do any dynamic linking of libtool libraries
  2087    -version-info CURRENT[:REVISION[:AGE]]
  2088                      specify library version info [each variable defaults to 0]
  2089    -weak LIBNAME     declare that the target provides the LIBNAME interface
  2090  
  2091  All other options (arguments beginning with \`-') are ignored.
  2092  
  2093  Every other argument is treated as a filename.  Files ending in \`.la' are
  2094  treated as uninstalled libtool libraries, other files are standard or library
  2095  object files.
  2096  
  2097  If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
  2098  only library objects (\`.lo' files) may be specified, and \`-rpath' is
  2099  required, except when creating a convenience library.
  2100  
  2101  If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
  2102  using \`ar' and \`ranlib', or on Windows using \`lib'.
  2103  
  2104  If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
  2105  is created, otherwise an executable program is created."
  2106          ;;
  2107  
  2108        uninstall)
  2109          $ECHO \
  2110  "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
  2111  
  2112  Remove libraries from an installation directory.
  2113  
  2114  RM is the name of the program to use to delete files associated with each FILE
  2115  (typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
  2116  to RM.
  2117  
  2118  If FILE is a libtool library, all the files associated with it are deleted.
  2119  Otherwise, only FILE itself is deleted using RM."
  2120          ;;
  2121  
  2122        *)
  2123          func_fatal_help "invalid operation mode \`$mode'"
  2124          ;;
  2125      esac
  2126  
  2127      $ECHO
  2128      $ECHO "Try \`$progname --help' for more information about other modes."
  2129  
  2130      exit $?
  2131  }
  2132  
  2133    # Now that we've collected a possible --mode arg, show help if necessary
  2134    $opt_help && func_mode_help
  2135  
  2136  
  2137  # func_mode_execute arg...
  2138  func_mode_execute ()
  2139  {
  2140      $opt_debug
  2141      # The first argument is the command name.
  2142      cmd="$nonopt"
  2143      test -z "$cmd" && \
  2144        func_fatal_help "you must specify a COMMAND"
  2145  
  2146      # Handle -dlopen flags immediately.
  2147      for file in $execute_dlfiles; do
  2148        test -f "$file" \
  2149  	|| func_fatal_help "\`$file' is not a file"
  2150  
  2151        dir=
  2152        case $file in
  2153        *.la)
  2154  	# Check to see that this really is a libtool archive.
  2155  	func_lalib_unsafe_p "$file" \
  2156  	  || func_fatal_help "\`$lib' is not a valid libtool archive"
  2157  
  2158  	# Read the libtool library.
  2159  	dlname=
  2160  	library_names=
  2161  	func_source "$file"
  2162  
  2163  	# Skip this library if it cannot be dlopened.
  2164  	if test -z "$dlname"; then
  2165  	  # Warn if it was a shared library.
  2166  	  test -n "$library_names" && \
  2167  	    func_warning "\`$file' was not linked with \`-export-dynamic'"
  2168  	  continue
  2169  	fi
  2170  
  2171  	func_dirname "$file" "" "."
  2172  	dir="$func_dirname_result"
  2173  
  2174  	if test -f "$dir/$objdir/$dlname"; then
  2175  	  dir="$dir/$objdir"
  2176  	else
  2177  	  if test ! -f "$dir/$dlname"; then
  2178  	    func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
  2179  	  fi
  2180  	fi
  2181  	;;
  2182  
  2183        *.lo)
  2184  	# Just add the directory containing the .lo file.
  2185  	func_dirname "$file" "" "."
  2186  	dir="$func_dirname_result"
  2187  	;;
  2188  
  2189        *)
  2190  	func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
  2191  	continue
  2192  	;;
  2193        esac
  2194  
  2195        # Get the absolute pathname.
  2196        absdir=`cd "$dir" && pwd`
  2197        test -n "$absdir" && dir="$absdir"
  2198  
  2199        # Now add the directory to shlibpath_var.
  2200        if eval "test -z \"\$$shlibpath_var\""; then
  2201  	eval "$shlibpath_var=\"\$dir\""
  2202        else
  2203  	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
  2204        fi
  2205      done
  2206  
  2207      # This variable tells wrapper scripts just to set shlibpath_var
  2208      # rather than running their programs.
  2209      libtool_execute_magic="$magic"
  2210  
  2211      # Check if any of the arguments is a wrapper script.
  2212      args=
  2213      for file
  2214      do
  2215        case $file in
  2216        -*) ;;
  2217        *)
  2218  	# Do a test to see if this is really a libtool program.
  2219  	if func_ltwrapper_script_p "$file"; then
  2220  	  func_source "$file"
  2221  	  # Transform arg to wrapped name.
  2222  	  file="$progdir/$program"
  2223  	elif func_ltwrapper_executable_p "$file"; then
  2224  	  func_ltwrapper_scriptname "$file"
  2225  	  func_source "$func_ltwrapper_scriptname_result"
  2226  	  # Transform arg to wrapped name.
  2227  	  file="$progdir/$program"
  2228  	fi
  2229  	;;
  2230        esac
  2231        # Quote arguments (to preserve shell metacharacters).
  2232        func_quote_for_eval "$file"
  2233        args="$args $func_quote_for_eval_result"
  2234      done
  2235  
  2236      if test "X$opt_dry_run" = Xfalse; then
  2237        if test -n "$shlibpath_var"; then
  2238  	# Export the shlibpath_var.
  2239  	eval "export $shlibpath_var"
  2240        fi
  2241  
  2242        # Restore saved environment variables
  2243        for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
  2244        do
  2245  	eval "if test \"\${save_$lt_var+set}\" = set; then
  2246                  $lt_var=\$save_$lt_var; export $lt_var
  2247  	      else
  2248  		$lt_unset $lt_var
  2249  	      fi"
  2250        done
  2251  
  2252        # Now prepare to actually exec the command.
  2253        exec_cmd="\$cmd$args"
  2254      else
  2255        # Display what would be done.
  2256        if test -n "$shlibpath_var"; then
  2257  	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
  2258  	$ECHO "export $shlibpath_var"
  2259        fi
  2260        $ECHO "$cmd$args"
  2261        exit $EXIT_SUCCESS
  2262      fi
  2263  }
  2264  
  2265  test "$mode" = execute && func_mode_execute ${1+"$@"}
  2266  
  2267  
  2268  # func_mode_finish arg...
  2269  func_mode_finish ()
  2270  {
  2271      $opt_debug
  2272      libdirs="$nonopt"
  2273      admincmds=
  2274  
  2275      if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
  2276        for dir
  2277        do
  2278  	libdirs="$libdirs $dir"
  2279        done
  2280  
  2281        for libdir in $libdirs; do
  2282  	if test -n "$finish_cmds"; then
  2283  	  # Do each command in the finish commands.
  2284  	  func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
  2285  '"$cmd"'"'
  2286  	fi
  2287  	if test -n "$finish_eval"; then
  2288  	  # Do the single finish_eval.
  2289  	  eval cmds=\"$finish_eval\"
  2290  	  $opt_dry_run || eval "$cmds" || admincmds="$admincmds
  2291         $cmds"
  2292  	fi
  2293        done
  2294      fi
  2295  
  2296      # Exit here if they wanted silent mode.
  2297      $opt_silent && exit $EXIT_SUCCESS
  2298  
  2299      $ECHO "X----------------------------------------------------------------------" | $Xsed
  2300      $ECHO "Libraries have been installed in:"
  2301      for libdir in $libdirs; do
  2302        $ECHO "   $libdir"
  2303      done
  2304      $ECHO
  2305      $ECHO "If you ever happen to want to link against installed libraries"
  2306      $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
  2307      $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
  2308      $ECHO "flag during linking and do at least one of the following:"
  2309      if test -n "$shlibpath_var"; then
  2310        $ECHO "   - add LIBDIR to the \`$shlibpath_var' environment variable"
  2311        $ECHO "     during execution"
  2312      fi
  2313      if test -n "$runpath_var"; then
  2314        $ECHO "   - add LIBDIR to the \`$runpath_var' environment variable"
  2315        $ECHO "     during linking"
  2316      fi
  2317      if test -n "$hardcode_libdir_flag_spec"; then
  2318        libdir=LIBDIR
  2319        eval flag=\"$hardcode_libdir_flag_spec\"
  2320  
  2321        $ECHO "   - use the \`$flag' linker flag"
  2322      fi
  2323      if test -n "$admincmds"; then
  2324        $ECHO "   - have your system administrator run these commands:$admincmds"
  2325      fi
  2326      if test -f /etc/ld.so.conf; then
  2327        $ECHO "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
  2328      fi
  2329      $ECHO
  2330  
  2331      $ECHO "See any operating system documentation about shared libraries for"
  2332      case $host in
  2333        solaris2.[6789]|solaris2.1[0-9])
  2334          $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
  2335  	$ECHO "pages."
  2336  	;;
  2337        *)
  2338          $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
  2339          ;;
  2340      esac
  2341      $ECHO "X----------------------------------------------------------------------" | $Xsed
  2342      exit $EXIT_SUCCESS
  2343  }
  2344  
  2345  test "$mode" = finish && func_mode_finish ${1+"$@"}
  2346  
  2347  
  2348  # func_mode_install arg...
  2349  func_mode_install ()
  2350  {
  2351      $opt_debug
  2352      # There may be an optional sh(1) argument at the beginning of
  2353      # install_prog (especially on Windows NT).
  2354      if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
  2355         # Allow the use of GNU shtool's install command.
  2356         $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
  2357        # Aesthetically quote it.
  2358        func_quote_for_eval "$nonopt"
  2359        install_prog="$func_quote_for_eval_result "
  2360        arg=$1
  2361        shift
  2362      else
  2363        install_prog=
  2364        arg=$nonopt
  2365      fi
  2366  
  2367      # The real first argument should be the name of the installation program.
  2368      # Aesthetically quote it.
  2369      func_quote_for_eval "$arg"
  2370      install_prog="$install_prog$func_quote_for_eval_result"
  2371  
  2372      # We need to accept at least all the BSD install flags.
  2373      dest=
  2374      files=
  2375      opts=
  2376      prev=
  2377      install_type=
  2378      isdir=no
  2379      stripme=
  2380      for arg
  2381      do
  2382        if test -n "$dest"; then
  2383  	files="$files $dest"
  2384  	dest=$arg
  2385  	continue
  2386        fi
  2387  
  2388        case $arg in
  2389        -d) isdir=yes ;;
  2390        -f)
  2391  	case " $install_prog " in
  2392  	*[\\\ /]cp\ *) ;;
  2393  	*) prev=$arg ;;
  2394  	esac
  2395  	;;
  2396        -g | -m | -o)
  2397  	prev=$arg
  2398  	;;
  2399        -s)
  2400  	stripme=" -s"
  2401  	continue
  2402  	;;
  2403        -*)
  2404  	;;
  2405        *)
  2406  	# If the previous option needed an argument, then skip it.
  2407  	if test -n "$prev"; then
  2408  	  prev=
  2409  	else
  2410  	  dest=$arg
  2411  	  continue
  2412  	fi
  2413  	;;
  2414        esac
  2415  
  2416        # Aesthetically quote the argument.
  2417        func_quote_for_eval "$arg"
  2418        install_prog="$install_prog $func_quote_for_eval_result"
  2419      done
  2420  
  2421      test -z "$install_prog" && \
  2422        func_fatal_help "you must specify an install program"
  2423  
  2424      test -n "$prev" && \
  2425        func_fatal_help "the \`$prev' option requires an argument"
  2426  
  2427      if test -z "$files"; then
  2428        if test -z "$dest"; then
  2429  	func_fatal_help "no file or destination specified"
  2430        else
  2431  	func_fatal_help "you must specify a destination"
  2432        fi
  2433      fi
  2434  
  2435      # Strip any trailing slash from the destination.
  2436      func_stripname '' '/' "$dest"
  2437      dest=$func_stripname_result
  2438  
  2439      # Check to see that the destination is a directory.
  2440      test -d "$dest" && isdir=yes
  2441      if test "$isdir" = yes; then
  2442        destdir="$dest"
  2443        destname=
  2444      else
  2445        func_dirname_and_basename "$dest" "" "."
  2446        destdir="$func_dirname_result"
  2447        destname="$func_basename_result"
  2448  
  2449        # Not a directory, so check to see that there is only one file specified.
  2450        set dummy $files; shift
  2451        test "$#" -gt 1 && \
  2452  	func_fatal_help "\`$dest' is not a directory"
  2453      fi
  2454      case $destdir in
  2455      [\\/]* | [A-Za-z]:[\\/]*) ;;
  2456      *)
  2457        for file in $files; do
  2458  	case $file in
  2459  	*.lo) ;;
  2460  	*)
  2461  	  func_fatal_help "\`$destdir' must be an absolute directory name"
  2462  	  ;;
  2463  	esac
  2464        done
  2465        ;;
  2466      esac
  2467  
  2468      # This variable tells wrapper scripts just to set variables rather
  2469      # than running their programs.
  2470      libtool_install_magic="$magic"
  2471  
  2472      staticlibs=
  2473      future_libdirs=
  2474      current_libdirs=
  2475      for file in $files; do
  2476  
  2477        # Do each installation.
  2478        case $file in
  2479        *.$libext)
  2480  	# Do the static libraries later.
  2481  	staticlibs="$staticlibs $file"
  2482  	;;
  2483  
  2484        *.la)
  2485  	# Check to see that this really is a libtool archive.
  2486  	func_lalib_unsafe_p "$file" \
  2487  	  || func_fatal_help "\`$file' is not a valid libtool archive"
  2488  
  2489  	library_names=
  2490  	old_library=
  2491  	relink_command=
  2492  	func_source "$file"
  2493  
  2494  	# Add the libdir to current_libdirs if it is the destination.
  2495  	if test "X$destdir" = "X$libdir"; then
  2496  	  case "$current_libdirs " in
  2497  	  *" $libdir "*) ;;
  2498  	  *) current_libdirs="$current_libdirs $libdir" ;;
  2499  	  esac
  2500  	else
  2501  	  # Note the libdir as a future libdir.
  2502  	  case "$future_libdirs " in
  2503  	  *" $libdir "*) ;;
  2504  	  *) future_libdirs="$future_libdirs $libdir" ;;
  2505  	  esac
  2506  	fi
  2507  
  2508  	func_dirname "$file" "/" ""
  2509  	dir="$func_dirname_result"
  2510  	dir="$dir$objdir"
  2511  
  2512  	if test -n "$relink_command"; then
  2513  	  # Determine the prefix the user has applied to our future dir.
  2514  	  inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
  2515  
  2516  	  # Don't allow the user to place us outside of our expected
  2517  	  # location b/c this prevents finding dependent libraries that
  2518  	  # are installed to the same prefix.
  2519  	  # At present, this check doesn't affect windows .dll's that
  2520  	  # are installed into $libdir/../bin (currently, that works fine)
  2521  	  # but it's something to keep an eye on.
  2522  	  test "$inst_prefix_dir" = "$destdir" && \
  2523  	    func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
  2524  
  2525  	  if test -n "$inst_prefix_dir"; then
  2526  	    # Stick the inst_prefix_dir data into the link command.
  2527  	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
  2528  	  else
  2529  	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
  2530  	  fi
  2531  
  2532  	  func_warning "relinking \`$file'"
  2533  	  func_show_eval "$relink_command" \
  2534  	    'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
  2535  	fi
  2536  
  2537  	# See the names of the shared library.
  2538  	set dummy $library_names; shift
  2539  	if test -n "$1"; then
  2540  	  realname="$1"
  2541  	  shift
  2542  
  2543  	  srcname="$realname"
  2544  	  test -n "$relink_command" && srcname="$realname"T
  2545  
  2546  	  # Install the shared library and build the symlinks.
  2547  	  func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
  2548  	      'exit $?'
  2549  	  tstripme="$stripme"
  2550  	  case $host_os in
  2551  	  cygwin* | mingw* | pw32* | cegcc*)
  2552  	    case $realname in
  2553  	    *.dll.a)
  2554  	      tstripme=""
  2555  	      ;;
  2556  	    esac
  2557  	    ;;
  2558  	  esac
  2559  	  if test -n "$tstripme" && test -n "$striplib"; then
  2560  	    func_show_eval "$striplib $destdir/$realname" 'exit $?'
  2561  	  fi
  2562  
  2563  	  if test "$#" -gt 0; then
  2564  	    # Delete the old symlinks, and create new ones.
  2565  	    # Try `ln -sf' first, because the `ln' binary might depend on
  2566  	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
  2567  	    # so we also need to try rm && ln -s.
  2568  	    for linkname
  2569  	    do
  2570  	      test "$linkname" != "$realname" \
  2571  		&& func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
  2572  	    done
  2573  	  fi
  2574  
  2575  	  # Do each command in the postinstall commands.
  2576  	  lib="$destdir/$realname"
  2577  	  func_execute_cmds "$postinstall_cmds" 'exit $?'
  2578  	fi
  2579  
  2580  	# Install the pseudo-library for information purposes.
  2581  	func_basename "$file"
  2582  	name="$func_basename_result"
  2583  	instname="$dir/$name"i
  2584  	func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
  2585  
  2586  	# Maybe install the static library, too.
  2587  	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
  2588  	;;
  2589  
  2590        *.lo)
  2591  	# Install (i.e. copy) a libtool object.
  2592  
  2593  	# Figure out destination file name, if it wasn't already specified.
  2594  	if test -n "$destname"; then
  2595  	  destfile="$destdir/$destname"
  2596  	else
  2597  	  func_basename "$file"
  2598  	  destfile="$func_basename_result"
  2599  	  destfile="$destdir/$destfile"
  2600  	fi
  2601  
  2602  	# Deduce the name of the destination old-style object file.
  2603  	case $destfile in
  2604  	*.lo)
  2605  	  func_lo2o "$destfile"
  2606  	  staticdest=$func_lo2o_result
  2607  	  ;;
  2608  	*.$objext)
  2609  	  staticdest="$destfile"
  2610  	  destfile=
  2611  	  ;;
  2612  	*)
  2613  	  func_fatal_help "cannot copy a libtool object to \`$destfile'"
  2614  	  ;;
  2615  	esac
  2616  
  2617  	# Install the libtool object if requested.
  2618  	test -n "$destfile" && \
  2619  	  func_show_eval "$install_prog $file $destfile" 'exit $?'
  2620  
  2621  	# Install the old object if enabled.
  2622  	if test "$build_old_libs" = yes; then
  2623  	  # Deduce the name of the old-style object file.
  2624  	  func_lo2o "$file"
  2625  	  staticobj=$func_lo2o_result
  2626  	  func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
  2627  	fi
  2628  	exit $EXIT_SUCCESS
  2629  	;;
  2630  
  2631        *)
  2632  	# Figure out destination file name, if it wasn't already specified.
  2633  	if test -n "$destname"; then
  2634  	  destfile="$destdir/$destname"
  2635  	else
  2636  	  func_basename "$file"
  2637  	  destfile="$func_basename_result"
  2638  	  destfile="$destdir/$destfile"
  2639  	fi
  2640  
  2641  	# If the file is missing, and there is a .exe on the end, strip it
  2642  	# because it is most likely a libtool script we actually want to
  2643  	# install
  2644  	stripped_ext=""
  2645  	case $file in
  2646  	  *.exe)
  2647  	    if test ! -f "$file"; then
  2648  	      func_stripname '' '.exe' "$file"
  2649  	      file=$func_stripname_result
  2650  	      stripped_ext=".exe"
  2651  	    fi
  2652  	    ;;
  2653  	esac
  2654  
  2655  	# Do a test to see if this is really a libtool program.
  2656  	case $host in
  2657  	*cygwin* | *mingw*)
  2658  	    if func_ltwrapper_executable_p "$file"; then
  2659  	      func_ltwrapper_scriptname "$file"
  2660  	      wrapper=$func_ltwrapper_scriptname_result
  2661  	    else
  2662  	      func_stripname '' '.exe' "$file"
  2663  	      wrapper=$func_stripname_result
  2664  	    fi
  2665  	    ;;
  2666  	*)
  2667  	    wrapper=$file
  2668  	    ;;
  2669  	esac
  2670  	if func_ltwrapper_script_p "$wrapper"; then
  2671  	  notinst_deplibs=
  2672  	  relink_command=
  2673  
  2674  	  func_source "$wrapper"
  2675  
  2676  	  # Check the variables that should have been set.
  2677  	  test -z "$generated_by_libtool_version" && \
  2678  	    func_fatal_error "invalid libtool wrapper script \`$wrapper'"
  2679  
  2680  	  finalize=yes
  2681  	  for lib in $notinst_deplibs; do
  2682  	    # Check to see that each library is installed.
  2683  	    libdir=
  2684  	    if test -f "$lib"; then
  2685  	      func_source "$lib"
  2686  	    fi
  2687  	    libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
  2688  	    if test -n "$libdir" && test ! -f "$libfile"; then
  2689  	      func_warning "\`$lib' has not been installed in \`$libdir'"
  2690  	      finalize=no
  2691  	    fi
  2692  	  done
  2693  
  2694  	  relink_command=
  2695  	  func_source "$wrapper"
  2696  
  2697  	  outputname=
  2698  	  if test "$fast_install" = no && test -n "$relink_command"; then
  2699  	    $opt_dry_run || {
  2700  	      if test "$finalize" = yes; then
  2701  	        tmpdir=`func_mktempdir`
  2702  		func_basename "$file$stripped_ext"
  2703  		file="$func_basename_result"
  2704  	        outputname="$tmpdir/$file"
  2705  	        # Replace the output file specification.
  2706  	        relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
  2707  
  2708  	        $opt_silent || {
  2709  	          func_quote_for_expand "$relink_command"
  2710  		  eval "func_echo $func_quote_for_expand_result"
  2711  	        }
  2712  	        if eval "$relink_command"; then :
  2713  	          else
  2714  		  func_error "error: relink \`$file' with the above command before installing it"
  2715  		  $opt_dry_run || ${RM}r "$tmpdir"
  2716  		  continue
  2717  	        fi
  2718  	        file="$outputname"
  2719  	      else
  2720  	        func_warning "cannot relink \`$file'"
  2721  	      fi
  2722  	    }
  2723  	  else
  2724  	    # Install the binary that we compiled earlier.
  2725  	    file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
  2726  	  fi
  2727  	fi
  2728  
  2729  	# remove .exe since cygwin /usr/bin/install will append another
  2730  	# one anyway
  2731  	case $install_prog,$host in
  2732  	*/usr/bin/install*,*cygwin*)
  2733  	  case $file:$destfile in
  2734  	  *.exe:*.exe)
  2735  	    # this is ok
  2736  	    ;;
  2737  	  *.exe:*)
  2738  	    destfile=$destfile.exe
  2739  	    ;;
  2740  	  *:*.exe)
  2741  	    func_stripname '' '.exe' "$destfile"
  2742  	    destfile=$func_stripname_result
  2743  	    ;;
  2744  	  esac
  2745  	  ;;
  2746  	esac
  2747  	func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
  2748  	$opt_dry_run || if test -n "$outputname"; then
  2749  	  ${RM}r "$tmpdir"
  2750  	fi
  2751  	;;
  2752        esac
  2753      done
  2754  
  2755      for file in $staticlibs; do
  2756        func_basename "$file"
  2757        name="$func_basename_result"
  2758  
  2759        # Set up the ranlib parameters.
  2760        oldlib="$destdir/$name"
  2761  
  2762        func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
  2763  
  2764        if test -n "$stripme" && test -n "$old_striplib"; then
  2765  	func_show_eval "$old_striplib $oldlib" 'exit $?'
  2766        fi
  2767  
  2768        # Do each command in the postinstall commands.
  2769        func_execute_cmds "$old_postinstall_cmds" 'exit $?'
  2770      done
  2771  
  2772      test -n "$future_libdirs" && \
  2773        func_warning "remember to run \`$progname --finish$future_libdirs'"
  2774  
  2775      if test -n "$current_libdirs"; then
  2776        # Maybe just do a dry run.
  2777        $opt_dry_run && current_libdirs=" -n$current_libdirs"
  2778        exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
  2779      else
  2780        exit $EXIT_SUCCESS
  2781      fi
  2782  }
  2783  
  2784  test "$mode" = install && func_mode_install ${1+"$@"}
  2785  
  2786  
  2787  # func_generate_dlsyms outputname originator pic_p
  2788  # Extract symbols from dlprefiles and create ${outputname}S.o with
  2789  # a dlpreopen symbol table.
  2790  func_generate_dlsyms ()
  2791  {
  2792      $opt_debug
  2793      my_outputname="$1"
  2794      my_originator="$2"
  2795      my_pic_p="${3-no}"
  2796      my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
  2797      my_dlsyms=
  2798  
  2799      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
  2800        if test -n "$NM" && test -n "$global_symbol_pipe"; then
  2801  	my_dlsyms="${my_outputname}S.c"
  2802        else
  2803  	func_error "not configured to extract global symbols from dlpreopened files"
  2804        fi
  2805      fi
  2806  
  2807      if test -n "$my_dlsyms"; then
  2808        case $my_dlsyms in
  2809        "") ;;
  2810        *.c)
  2811  	# Discover the nlist of each of the dlfiles.
  2812  	nlist="$output_objdir/${my_outputname}.nm"
  2813  
  2814  	func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
  2815  
  2816  	# Parse the name list into a source file.
  2817  	func_verbose "creating $output_objdir/$my_dlsyms"
  2818  
  2819  	$opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
  2820  /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
  2821  /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
  2822  
  2823  #ifdef __cplusplus
  2824  extern \"C\" {
  2825  #endif
  2826  
  2827  /* External symbol declarations for the compiler. */\
  2828  "
  2829  
  2830  	if test "$dlself" = yes; then
  2831  	  func_verbose "generating symbol list for \`$output'"
  2832  
  2833  	  $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
  2834  
  2835  	  # Add our own program objects to the symbol list.
  2836  	  progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
  2837  	  for progfile in $progfiles; do
  2838  	    func_verbose "extracting global C symbols from \`$progfile'"
  2839  	    $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
  2840  	  done
  2841  
  2842  	  if test -n "$exclude_expsyms"; then
  2843  	    $opt_dry_run || {
  2844  	      eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
  2845  	      eval '$MV "$nlist"T "$nlist"'
  2846  	    }
  2847  	  fi
  2848  
  2849  	  if test -n "$export_symbols_regex"; then
  2850  	    $opt_dry_run || {
  2851  	      eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
  2852  	      eval '$MV "$nlist"T "$nlist"'
  2853  	    }
  2854  	  fi
  2855  
  2856  	  # Prepare the list of exported symbols
  2857  	  if test -z "$export_symbols"; then
  2858  	    export_symbols="$output_objdir/$outputname.exp"
  2859  	    $opt_dry_run || {
  2860  	      $RM $export_symbols
  2861  	      eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
  2862  	      case $host in
  2863  	      *cygwin* | *mingw* | *cegcc* )
  2864                  eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
  2865                  eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
  2866  	        ;;
  2867  	      esac
  2868  	    }
  2869  	  else
  2870  	    $opt_dry_run || {
  2871  	      eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
  2872  	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
  2873  	      eval '$MV "$nlist"T "$nlist"'
  2874  	      case $host in
  2875  	        *cygwin | *mingw* | *cegcc* )
  2876  	          eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
  2877  	          eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
  2878  	          ;;
  2879  	      esac
  2880  	    }
  2881  	  fi
  2882  	fi
  2883  
  2884  	for dlprefile in $dlprefiles; do
  2885  	  func_verbose "extracting global C symbols from \`$dlprefile'"
  2886  	  func_basename "$dlprefile"
  2887  	  name="$func_basename_result"
  2888  	  $opt_dry_run || {
  2889  	    eval '$ECHO ": $name " >> "$nlist"'
  2890  	    eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
  2891  	  }
  2892  	done
  2893  
  2894  	$opt_dry_run || {
  2895  	  # Make sure we have at least an empty file.
  2896  	  test -f "$nlist" || : > "$nlist"
  2897  
  2898  	  if test -n "$exclude_expsyms"; then
  2899  	    $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
  2900  	    $MV "$nlist"T "$nlist"
  2901  	  fi
  2902  
  2903  	  # Try sorting and uniquifying the output.
  2904  	  if $GREP -v "^: " < "$nlist" |
  2905  	      if sort -k 3 </dev/null >/dev/null 2>&1; then
  2906  		sort -k 3
  2907  	      else
  2908  		sort +2
  2909  	      fi |
  2910  	      uniq > "$nlist"S; then
  2911  	    :
  2912  	  else
  2913  	    $GREP -v "^: " < "$nlist" > "$nlist"S
  2914  	  fi
  2915  
  2916  	  if test -f "$nlist"S; then
  2917  	    eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
  2918  	  else
  2919  	    $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
  2920  	  fi
  2921  
  2922  	  $ECHO >> "$output_objdir/$my_dlsyms" "\
  2923  
  2924  /* The mapping between symbol names and symbols.  */
  2925  typedef struct {
  2926    const char *name;
  2927    void *address;
  2928  } lt_dlsymlist;
  2929  "
  2930  	  case $host in
  2931  	  *cygwin* | *mingw* | *cegcc* )
  2932  	    $ECHO >> "$output_objdir/$my_dlsyms" "\
  2933  /* DATA imports from DLLs on WIN32 con't be const, because
  2934     runtime relocations are performed -- see ld's documentation
  2935     on pseudo-relocs.  */"
  2936  	    lt_dlsym_const= ;;
  2937  	  *osf5*)
  2938  	    echo >> "$output_objdir/$my_dlsyms" "\
  2939  /* This system does not cope well with relocations in const data */"
  2940  	    lt_dlsym_const= ;;
  2941  	  *)
  2942  	    lt_dlsym_const=const ;;
  2943  	  esac
  2944  
  2945  	  $ECHO >> "$output_objdir/$my_dlsyms" "\
  2946  extern $lt_dlsym_const lt_dlsymlist
  2947  lt_${my_prefix}_LTX_preloaded_symbols[];
  2948  $lt_dlsym_const lt_dlsymlist
  2949  lt_${my_prefix}_LTX_preloaded_symbols[] =
  2950  {\
  2951    { \"$my_originator\", (void *) 0 },"
  2952  
  2953  	  case $need_lib_prefix in
  2954  	  no)
  2955  	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
  2956  	    ;;
  2957  	  *)
  2958  	    eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
  2959  	    ;;
  2960  	  esac
  2961  	  $ECHO >> "$output_objdir/$my_dlsyms" "\
  2962    {0, (void *) 0}
  2963  };
  2964  
  2965  /* This works around a problem in FreeBSD linker */
  2966  #ifdef FREEBSD_WORKAROUND
  2967  static const void *lt_preloaded_setup() {
  2968    return lt_${my_prefix}_LTX_preloaded_symbols;
  2969  }
  2970  #endif
  2971  
  2972  #ifdef __cplusplus
  2973  }
  2974  #endif\
  2975  "
  2976  	} # !$opt_dry_run
  2977  
  2978  	pic_flag_for_symtable=
  2979  	case "$compile_command " in
  2980  	*" -static "*) ;;
  2981  	*)
  2982  	  case $host in
  2983  	  # compiling the symbol table file with pic_flag works around
  2984  	  # a FreeBSD bug that causes programs to crash when -lm is
  2985  	  # linked before any other PIC object.  But we must not use
  2986  	  # pic_flag when linking with -static.  The problem exists in
  2987  	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
  2988  	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
  2989  	    pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
  2990  	  *-*-hpux*)
  2991  	    pic_flag_for_symtable=" $pic_flag"  ;;
  2992  	  *)
  2993  	    if test "X$my_pic_p" != Xno; then
  2994  	      pic_flag_for_symtable=" $pic_flag"
  2995  	    fi
  2996  	    ;;
  2997  	  esac
  2998  	  ;;
  2999  	esac
  3000  	symtab_cflags=
  3001  	for arg in $LTCFLAGS; do
  3002  	  case $arg in
  3003  	  -pie | -fpie | -fPIE) ;;
  3004  	  *) symtab_cflags="$symtab_cflags $arg" ;;
  3005  	  esac
  3006  	done
  3007  
  3008  	# Now compile the dynamic symbol file.
  3009  	func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
  3010  
  3011  	# Clean up the generated files.
  3012  	func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
  3013  
  3014  	# Transform the symbol file into the correct name.
  3015  	symfileobj="$output_objdir/${my_outputname}S.$objext"
  3016  	case $host in
  3017  	*cygwin* | *mingw* | *cegcc* )
  3018  	  if test -f "$output_objdir/$my_outputname.def"; then
  3019  	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
  3020  	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
  3021  	  else
  3022  	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
  3023  	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
  3024  	  fi
  3025  	  ;;
  3026  	*)
  3027  	  compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
  3028  	  finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
  3029  	  ;;
  3030  	esac
  3031  	;;
  3032        *)
  3033  	func_fatal_error "unknown suffix for \`$my_dlsyms'"
  3034  	;;
  3035        esac
  3036      else
  3037        # We keep going just in case the user didn't refer to
  3038        # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
  3039        # really was required.
  3040  
  3041        # Nullify the symbol file.
  3042        compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
  3043        finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
  3044      fi
  3045  }
  3046  
  3047  # func_win32_libid arg
  3048  # return the library type of file 'arg'
  3049  #
  3050  # Need a lot of goo to handle *both* DLLs and import libs
  3051  # Has to be a shell function in order to 'eat' the argument
  3052  # that is supplied when $file_magic_command is called.
  3053  func_win32_libid ()
  3054  {
  3055    $opt_debug
  3056    win32_libid_type="unknown"
  3057    win32_fileres=`file -L $1 2>/dev/null`
  3058    case $win32_fileres in
  3059    *ar\ archive\ import\ library*) # definitely import
  3060      win32_libid_type="x86 archive import"
  3061      ;;
  3062    *ar\ archive*) # could be an import, or static
  3063      if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
  3064         $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
  3065        win32_nmres=`eval $NM -f posix -A $1 |
  3066  	$SED -n -e '
  3067  	    1,100{
  3068  		/ I /{
  3069  		    s,.*,import,
  3070  		    p
  3071  		    q
  3072  		}
  3073  	    }'`
  3074        case $win32_nmres in
  3075        import*)  win32_libid_type="x86 archive import";;
  3076        *)        win32_libid_type="x86 archive static";;
  3077        esac
  3078      fi
  3079      ;;
  3080    *DLL*)
  3081      win32_libid_type="x86 DLL"
  3082      ;;
  3083    *executable*) # but shell scripts are "executable" too...
  3084      case $win32_fileres in
  3085      *MS\ Windows\ PE\ Intel*)
  3086        win32_libid_type="x86 DLL"
  3087        ;;
  3088      esac
  3089      ;;
  3090    esac
  3091    $ECHO "$win32_libid_type"
  3092  }
  3093  
  3094  
  3095  
  3096  # func_extract_an_archive dir oldlib
  3097  func_extract_an_archive ()
  3098  {
  3099      $opt_debug
  3100      f_ex_an_ar_dir="$1"; shift
  3101      f_ex_an_ar_oldlib="$1"
  3102      func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?'
  3103      if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
  3104       :
  3105      else
  3106        func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
  3107      fi
  3108  }
  3109  
  3110  
  3111  # func_extract_archives gentop oldlib ...
  3112  func_extract_archives ()
  3113  {
  3114      $opt_debug
  3115      my_gentop="$1"; shift
  3116      my_oldlibs=${1+"$@"}
  3117      my_oldobjs=""
  3118      my_xlib=""
  3119      my_xabs=""
  3120      my_xdir=""
  3121  
  3122      for my_xlib in $my_oldlibs; do
  3123        # Extract the objects.
  3124        case $my_xlib in
  3125  	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
  3126  	*) my_xabs=`pwd`"/$my_xlib" ;;
  3127        esac
  3128        func_basename "$my_xlib"
  3129        my_xlib="$func_basename_result"
  3130        my_xlib_u=$my_xlib
  3131        while :; do
  3132          case " $extracted_archives " in
  3133  	*" $my_xlib_u "*)
  3134  	  func_arith $extracted_serial + 1
  3135  	  extracted_serial=$func_arith_result
  3136  	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
  3137  	*) break ;;
  3138  	esac
  3139        done
  3140        extracted_archives="$extracted_archives $my_xlib_u"
  3141        my_xdir="$my_gentop/$my_xlib_u"
  3142  
  3143        func_mkdir_p "$my_xdir"
  3144  
  3145        case $host in
  3146        *-darwin*)
  3147  	func_verbose "Extracting $my_xabs"
  3148  	# Do not bother doing anything if just a dry run
  3149  	$opt_dry_run || {
  3150  	  darwin_orig_dir=`pwd`
  3151  	  cd $my_xdir || exit $?
  3152  	  darwin_archive=$my_xabs
  3153  	  darwin_curdir=`pwd`
  3154  	  darwin_base_archive=`basename "$darwin_archive"`
  3155  	  darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
  3156  	  if test -n "$darwin_arches"; then
  3157  	    darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
  3158  	    darwin_arch=
  3159  	    func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
  3160  	    for darwin_arch in  $darwin_arches ; do
  3161  	      func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
  3162  	      $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
  3163  	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
  3164  	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
  3165  	      cd "$darwin_curdir"
  3166  	      $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
  3167  	    done # $darwin_arches
  3168              ## Okay now we've a bunch of thin objects, gotta fatten them up :)
  3169  	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
  3170  	    darwin_file=
  3171  	    darwin_files=
  3172  	    for darwin_file in $darwin_filelist; do
  3173  	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
  3174  	      $LIPO -create -output "$darwin_file" $darwin_files
  3175  	    done # $darwin_filelist
  3176  	    $RM -rf unfat-$$
  3177  	    cd "$darwin_orig_dir"
  3178  	  else
  3179  	    cd $darwin_orig_dir
  3180  	    func_extract_an_archive "$my_xdir" "$my_xabs"
  3181  	  fi # $darwin_arches
  3182  	} # !$opt_dry_run
  3183  	;;
  3184        *)
  3185          func_extract_an_archive "$my_xdir" "$my_xabs"
  3186  	;;
  3187        esac
  3188        my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
  3189      done
  3190  
  3191      func_extract_archives_result="$my_oldobjs"
  3192  }
  3193  
  3194  
  3195  
  3196  # func_emit_wrapper_part1 [arg=no]
  3197  #
  3198  # Emit the first part of a libtool wrapper script on stdout.
  3199  # For more information, see the description associated with
  3200  # func_emit_wrapper(), below.
  3201  func_emit_wrapper_part1 ()
  3202  {
  3203  	func_emit_wrapper_part1_arg1=no
  3204  	if test -n "$1" ; then
  3205  	  func_emit_wrapper_part1_arg1=$1
  3206  	fi
  3207  
  3208  	$ECHO "\
  3209  #! $SHELL
  3210  
  3211  # $output - temporary wrapper script for $objdir/$outputname
  3212  # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
  3213  #
  3214  # The $output program cannot be directly executed until all the libtool
  3215  # libraries that it depends on are installed.
  3216  #
  3217  # This wrapper script should never be moved out of the build directory.
  3218  # If it is, it will not operate correctly.
  3219  
  3220  # Sed substitution that helps us do robust quoting.  It backslashifies
  3221  # metacharacters that are still active within double-quoted strings.
  3222  Xsed='${SED} -e 1s/^X//'
  3223  sed_quote_subst='$sed_quote_subst'
  3224  
  3225  # Be Bourne compatible
  3226  if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
  3227    emulate sh
  3228    NULLCMD=:
  3229    # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
  3230    # is contrary to our usage.  Disable this feature.
  3231    alias -g '\${1+\"\$@\"}'='\"\$@\"'
  3232    setopt NO_GLOB_SUBST
  3233  else
  3234    case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
  3235  fi
  3236  BIN_SH=xpg4; export BIN_SH # for Tru64
  3237  DUALCASE=1; export DUALCASE # for MKS sh
  3238  
  3239  # The HP-UX ksh and POSIX shell print the target directory to stdout
  3240  # if CDPATH is set.
  3241  (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
  3242  
  3243  relink_command=\"$relink_command\"
  3244  
  3245  # This environment variable determines our operation mode.
  3246  if test \"\$libtool_install_magic\" = \"$magic\"; then
  3247    # install mode needs the following variables:
  3248    generated_by_libtool_version='$macro_version'
  3249    notinst_deplibs='$notinst_deplibs'
  3250  else
  3251    # When we are sourced in execute mode, \$file and \$ECHO are already set.
  3252    if test \"\$libtool_execute_magic\" != \"$magic\"; then
  3253      ECHO=\"$qecho\"
  3254      file=\"\$0\"
  3255      # Make sure echo works.
  3256      if test \"X\$1\" = X--no-reexec; then
  3257        # Discard the --no-reexec flag, and continue.
  3258        shift
  3259      elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
  3260        # Yippee, \$ECHO works!
  3261        :
  3262      else
  3263        # Restart under the correct shell, and then maybe \$ECHO will work.
  3264        exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
  3265      fi
  3266    fi\
  3267  "
  3268  	$ECHO "\
  3269  
  3270    # Find the directory that this script lives in.
  3271    thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
  3272    test \"x\$thisdir\" = \"x\$file\" && thisdir=.
  3273  
  3274    # Follow symbolic links until we get to the real thisdir.
  3275    file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
  3276    while test -n \"\$file\"; do
  3277      destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
  3278  
  3279      # If there was a directory component, then change thisdir.
  3280      if test \"x\$destdir\" != \"x\$file\"; then
  3281        case \"\$destdir\" in
  3282        [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
  3283        *) thisdir=\"\$thisdir/\$destdir\" ;;
  3284        esac
  3285      fi
  3286  
  3287      file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
  3288      file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
  3289    done
  3290  "
  3291  }
  3292  # end: func_emit_wrapper_part1
  3293  
  3294  # func_emit_wrapper_part2 [arg=no]
  3295  #
  3296  # Emit the second part of a libtool wrapper script on stdout.
  3297  # For more information, see the description associated with
  3298  # func_emit_wrapper(), below.
  3299  func_emit_wrapper_part2 ()
  3300  {
  3301  	func_emit_wrapper_part2_arg1=no
  3302  	if test -n "$1" ; then
  3303  	  func_emit_wrapper_part2_arg1=$1
  3304  	fi
  3305  
  3306  	$ECHO "\
  3307  
  3308    # Usually 'no', except on cygwin/mingw when embedded into
  3309    # the cwrapper.
  3310    WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1
  3311    if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
  3312      # special case for '.'
  3313      if test \"\$thisdir\" = \".\"; then
  3314        thisdir=\`pwd\`
  3315      fi
  3316      # remove .libs from thisdir
  3317      case \"\$thisdir\" in
  3318      *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
  3319      $objdir )   thisdir=. ;;
  3320      esac
  3321    fi
  3322  
  3323    # Try to get the absolute directory name.
  3324    absdir=\`cd \"\$thisdir\" && pwd\`
  3325    test -n \"\$absdir\" && thisdir=\"\$absdir\"
  3326  "
  3327  
  3328  	if test "$fast_install" = yes; then
  3329  	  $ECHO "\
  3330    program=lt-'$outputname'$exeext
  3331    progdir=\"\$thisdir/$objdir\"
  3332  
  3333    if test ! -f \"\$progdir/\$program\" ||
  3334       { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
  3335         test \"X\$file\" != \"X\$progdir/\$program\"; }; then
  3336  
  3337      file=\"\$\$-\$program\"
  3338  
  3339      if test ! -d \"\$progdir\"; then
  3340        $MKDIR \"\$progdir\"
  3341      else
  3342        $RM \"\$progdir/\$file\"
  3343      fi"
  3344  
  3345  	  $ECHO "\
  3346  
  3347      # relink executable if necessary
  3348      if test -n \"\$relink_command\"; then
  3349        if relink_command_output=\`eval \$relink_command 2>&1\`; then :
  3350        else
  3351  	$ECHO \"\$relink_command_output\" >&2
  3352  	$RM \"\$progdir/\$file\"
  3353  	exit 1
  3354        fi
  3355      fi
  3356  
  3357      $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
  3358      { $RM \"\$progdir/\$program\";
  3359        $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
  3360      $RM \"\$progdir/\$file\"
  3361    fi"
  3362  	else
  3363  	  $ECHO "\
  3364    program='$outputname'
  3365    progdir=\"\$thisdir/$objdir\"
  3366  "
  3367  	fi
  3368  
  3369  	$ECHO "\
  3370  
  3371    if test -f \"\$progdir/\$program\"; then"
  3372  
  3373  	# Export our shlibpath_var if we have one.
  3374  	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
  3375  	  $ECHO "\
  3376      # Add our own library path to $shlibpath_var
  3377      $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
  3378  
  3379      # Some systems cannot cope with colon-terminated $shlibpath_var
  3380      # The second colon is a workaround for a bug in BeOS R4 sed
  3381      $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
  3382  
  3383      export $shlibpath_var
  3384  "
  3385  	fi
  3386  
  3387  	# fixup the dll searchpath if we need to.
  3388  	if test -n "$dllsearchpath"; then
  3389  	  $ECHO "\
  3390      # Add the dll search path components to the executable PATH
  3391      PATH=$dllsearchpath:\$PATH
  3392  "
  3393  	fi
  3394  
  3395  	$ECHO "\
  3396      if test \"\$libtool_execute_magic\" != \"$magic\"; then
  3397        # Run the actual program with our arguments.
  3398  "
  3399  	case $host in
  3400  	# Backslashes separate directories on plain windows
  3401  	*-*-mingw | *-*-os2* | *-cegcc*)
  3402  	  $ECHO "\
  3403        exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
  3404  "
  3405  	  ;;
  3406  
  3407  	*)
  3408  	  $ECHO "\
  3409        exec \"\$progdir/\$program\" \${1+\"\$@\"}
  3410  "
  3411  	  ;;
  3412  	esac
  3413  	$ECHO "\
  3414        \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
  3415        exit 1
  3416      fi
  3417    else
  3418      # The program doesn't exist.
  3419      \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
  3420      \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
  3421      $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
  3422      exit 1
  3423    fi
  3424  fi\
  3425  "
  3426  }
  3427  # end: func_emit_wrapper_part2
  3428  
  3429  
  3430  # func_emit_wrapper [arg=no]
  3431  #
  3432  # Emit a libtool wrapper script on stdout.
  3433  # Don't directly open a file because we may want to
  3434  # incorporate the script contents within a cygwin/mingw
  3435  # wrapper executable.  Must ONLY be called from within
  3436  # func_mode_link because it depends on a number of variables
  3437  # set therein.
  3438  #
  3439  # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
  3440  # variable will take.  If 'yes', then the emitted script
  3441  # will assume that the directory in which it is stored is
  3442  # the $objdir directory.  This is a cygwin/mingw-specific
  3443  # behavior.
  3444  func_emit_wrapper ()
  3445  {
  3446  	func_emit_wrapper_arg1=no
  3447  	if test -n "$1" ; then
  3448  	  func_emit_wrapper_arg1=$1
  3449  	fi
  3450  
  3451  	# split this up so that func_emit_cwrapperexe_src
  3452  	# can call each part independently.
  3453  	func_emit_wrapper_part1 "${func_emit_wrapper_arg1}"
  3454  	func_emit_wrapper_part2 "${func_emit_wrapper_arg1}"
  3455  }
  3456  
  3457  
  3458  # func_to_host_path arg
  3459  #
  3460  # Convert paths to host format when used with build tools.
  3461  # Intended for use with "native" mingw (where libtool itself
  3462  # is running under the msys shell), or in the following cross-
  3463  # build environments:
  3464  #    $build          $host
  3465  #    mingw (msys)    mingw  [e.g. native]
  3466  #    cygwin          mingw
  3467  #    *nix + wine     mingw
  3468  # where wine is equipped with the `winepath' executable.
  3469  # In the native mingw case, the (msys) shell automatically
  3470  # converts paths for any non-msys applications it launches,
  3471  # but that facility isn't available from inside the cwrapper.
  3472  # Similar accommodations are necessary for $host mingw and
  3473  # $build cygwin.  Calling this function does no harm for other
  3474  # $host/$build combinations not listed above.
  3475  #
  3476  # ARG is the path (on $build) that should be converted to
  3477  # the proper representation for $host. The result is stored
  3478  # in $func_to_host_path_result.
  3479  func_to_host_path ()
  3480  {
  3481    func_to_host_path_result="$1"
  3482    if test -n "$1" ; then
  3483      case $host in
  3484        *mingw* )
  3485          lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
  3486          case $build in
  3487            *mingw* ) # actually, msys
  3488              # awkward: cmd appends spaces to result
  3489              lt_sed_strip_trailing_spaces="s/[ ]*\$//"
  3490              func_to_host_path_tmp1=`( cmd //c echo "$1" |\
  3491                $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
  3492              func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
  3493                $SED -e "$lt_sed_naive_backslashify"`
  3494              ;;
  3495            *cygwin* )
  3496              func_to_host_path_tmp1=`cygpath -w "$1"`
  3497              func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
  3498                $SED -e "$lt_sed_naive_backslashify"`
  3499              ;;
  3500            * )
  3501              # Unfortunately, winepath does not exit with a non-zero
  3502              # error code, so we are forced to check the contents of
  3503              # stdout. On the other hand, if the command is not
  3504              # found, the shell will set an exit code of 127 and print
  3505              # *an error message* to stdout. So we must check for both
  3506              # error code of zero AND non-empty stdout, which explains
  3507              # the odd construction:
  3508              func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
  3509              if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
  3510                func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
  3511                  $SED -e "$lt_sed_naive_backslashify"`
  3512              else
  3513                # Allow warning below.
  3514                func_to_host_path_result=""
  3515              fi
  3516              ;;
  3517          esac
  3518          if test -z "$func_to_host_path_result" ; then
  3519            func_error "Could not determine host path corresponding to"
  3520            func_error "  '$1'"
  3521            func_error "Continuing, but uninstalled executables may not work."
  3522            # Fallback:
  3523            func_to_host_path_result="$1"
  3524          fi
  3525          ;;
  3526      esac
  3527    fi
  3528  }
  3529  # end: func_to_host_path
  3530  
  3531  # func_to_host_pathlist arg
  3532  #
  3533  # Convert pathlists to host format when used with build tools.
  3534  # See func_to_host_path(), above. This function supports the
  3535  # following $build/$host combinations (but does no harm for
  3536  # combinations not listed here):
  3537  #    $build          $host
  3538  #    mingw (msys)    mingw  [e.g. native]
  3539  #    cygwin          mingw
  3540  #    *nix + wine     mingw
  3541  #
  3542  # Path separators are also converted from $build format to
  3543  # $host format. If ARG begins or ends with a path separator
  3544  # character, it is preserved (but converted to $host format)
  3545  # on output.
  3546  #
  3547  # ARG is a pathlist (on $build) that should be converted to
  3548  # the proper representation on $host. The result is stored
  3549  # in $func_to_host_pathlist_result.
  3550  func_to_host_pathlist ()
  3551  {
  3552    func_to_host_pathlist_result="$1"
  3553    if test -n "$1" ; then
  3554      case $host in
  3555        *mingw* )
  3556          lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
  3557          # Remove leading and trailing path separator characters from
  3558          # ARG. msys behavior is inconsistent here, cygpath turns them
  3559          # into '.;' and ';.', and winepath ignores them completely.
  3560          func_to_host_pathlist_tmp2="$1"
  3561          # Once set for this call, this variable should not be
  3562          # reassigned. It is used in tha fallback case.
  3563          func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\
  3564            $SED -e 's|^:*||' -e 's|:*$||'`
  3565          case $build in
  3566            *mingw* ) # Actually, msys.
  3567              # Awkward: cmd appends spaces to result.
  3568              lt_sed_strip_trailing_spaces="s/[ ]*\$//"
  3569              func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
  3570                $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
  3571              func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
  3572                $SED -e "$lt_sed_naive_backslashify"`
  3573              ;;
  3574            *cygwin* )
  3575              func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
  3576              func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
  3577                $SED -e "$lt_sed_naive_backslashify"`
  3578              ;;
  3579            * )
  3580              # unfortunately, winepath doesn't convert pathlists
  3581              func_to_host_pathlist_result=""
  3582              func_to_host_pathlist_oldIFS=$IFS
  3583              IFS=:
  3584              for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
  3585                IFS=$func_to_host_pathlist_oldIFS
  3586                if test -n "$func_to_host_pathlist_f" ; then
  3587                  func_to_host_path "$func_to_host_pathlist_f"
  3588                  if test -n "$func_to_host_path_result" ; then
  3589                    if test -z "$func_to_host_pathlist_result" ; then
  3590                      func_to_host_pathlist_result="$func_to_host_path_result"
  3591                    else
  3592                      func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"
  3593                    fi
  3594                  fi
  3595                fi
  3596                IFS=:
  3597              done
  3598              IFS=$func_to_host_pathlist_oldIFS
  3599              ;;
  3600          esac
  3601          if test -z "$func_to_host_pathlist_result" ; then
  3602            func_error "Could not determine the host path(s) corresponding to"
  3603            func_error "  '$1'"
  3604            func_error "Continuing, but uninstalled executables may not work."
  3605            # Fallback. This may break if $1 contains DOS-style drive
  3606            # specifications. The fix is not to complicate the expression
  3607            # below, but for the user to provide a working wine installation
  3608            # with winepath so that path translation in the cross-to-mingw
  3609            # case works properly.
  3610            lt_replace_pathsep_nix_to_dos="s|:|;|g"
  3611            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
  3612              $SED -e "$lt_replace_pathsep_nix_to_dos"`
  3613          fi
  3614          # Now, add the leading and trailing path separators back
  3615          case "$1" in
  3616            :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
  3617              ;;
  3618          esac
  3619          case "$1" in
  3620            *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"
  3621              ;;
  3622          esac
  3623          ;;
  3624      esac
  3625    fi
  3626  }
  3627  # end: func_to_host_pathlist
  3628  
  3629  # func_emit_cwrapperexe_src
  3630  # emit the source code for a wrapper executable on stdout
  3631  # Must ONLY be called from within func_mode_link because
  3632  # it depends on a number of variable set therein.
  3633  func_emit_cwrapperexe_src ()
  3634  {
  3635  	cat <<EOF
  3636  
  3637  /* $cwrappersource - temporary wrapper executable for $objdir/$outputname
  3638     Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
  3639  
  3640     The $output program cannot be directly executed until all the libtool
  3641     libraries that it depends on are installed.
  3642  
  3643     This wrapper executable should never be moved out of the build directory.
  3644     If it is, it will not operate correctly.
  3645  
  3646     Currently, it simply execs the wrapper *script* "$SHELL $output",
  3647     but could eventually absorb all of the scripts functionality and
  3648     exec $objdir/$outputname directly.
  3649  */
  3650  EOF
  3651  	    cat <<"EOF"
  3652  #include <stdio.h>
  3653  #include <stdlib.h>
  3654  #ifdef _MSC_VER
  3655  # include <direct.h>
  3656  # include <process.h>
  3657  # include <io.h>
  3658  # define setmode _setmode
  3659  #else
  3660  # include <unistd.h>
  3661  # include <stdint.h>
  3662  # ifdef __CYGWIN__
  3663  #  include <io.h>
  3664  #  define HAVE_SETENV
  3665  #  ifdef __STRICT_ANSI__
  3666  char *realpath (const char *, char *);
  3667  int putenv (char *);
  3668  int setenv (const char *, const char *, int);
  3669  #  endif
  3670  # endif
  3671  #endif
  3672  #include <malloc.h>
  3673  #include <stdarg.h>
  3674  #include <assert.h>
  3675  #include <string.h>
  3676  #include <ctype.h>
  3677  #include <errno.h>
  3678  #include <fcntl.h>
  3679  #include <sys/stat.h>
  3680  
  3681  #if defined(PATH_MAX)
  3682  # define LT_PATHMAX PATH_MAX
  3683  #elif defined(MAXPATHLEN)
  3684  # define LT_PATHMAX MAXPATHLEN
  3685  #else
  3686  # define LT_PATHMAX 1024
  3687  #endif
  3688  
  3689  #ifndef S_IXOTH
  3690  # define S_IXOTH 0
  3691  #endif
  3692  #ifndef S_IXGRP
  3693  # define S_IXGRP 0
  3694  #endif
  3695  
  3696  #ifdef _MSC_VER
  3697  # define S_IXUSR _S_IEXEC
  3698  # define stat _stat
  3699  # ifndef _INTPTR_T_DEFINED
  3700  #  define intptr_t int
  3701  # endif
  3702  #endif
  3703  
  3704  #ifndef DIR_SEPARATOR
  3705  # define DIR_SEPARATOR '/'
  3706  # define PATH_SEPARATOR ':'
  3707  #endif
  3708  
  3709  #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
  3710    defined (__OS2__)
  3711  # define HAVE_DOS_BASED_FILE_SYSTEM
  3712  # define FOPEN_WB "wb"
  3713  # ifndef DIR_SEPARATOR_2
  3714  #  define DIR_SEPARATOR_2 '\\'
  3715  # endif
  3716  # ifndef PATH_SEPARATOR_2
  3717  #  define PATH_SEPARATOR_2 ';'
  3718  # endif
  3719  #endif
  3720  
  3721  #ifndef DIR_SEPARATOR_2
  3722  # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
  3723  #else /* DIR_SEPARATOR_2 */
  3724  # define IS_DIR_SEPARATOR(ch) \
  3725  	(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
  3726  #endif /* DIR_SEPARATOR_2 */
  3727  
  3728  #ifndef PATH_SEPARATOR_2
  3729  # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
  3730  #else /* PATH_SEPARATOR_2 */
  3731  # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
  3732  #endif /* PATH_SEPARATOR_2 */
  3733  
  3734  #ifdef __CYGWIN__
  3735  # define FOPEN_WB "wb"
  3736  #endif
  3737  
  3738  #ifndef FOPEN_WB
  3739  # define FOPEN_WB "w"
  3740  #endif
  3741  #ifndef _O_BINARY
  3742  # define _O_BINARY 0
  3743  #endif
  3744  
  3745  #define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
  3746  #define XFREE(stale) do { \
  3747    if (stale) { free ((void *) stale); stale = 0; } \
  3748  } while (0)
  3749  
  3750  #undef LTWRAPPER_DEBUGPRINTF
  3751  #if defined DEBUGWRAPPER
  3752  # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
  3753  static void
  3754  ltwrapper_debugprintf (const char *fmt, ...)
  3755  {
  3756      va_list args;
  3757      va_start (args, fmt);
  3758      (void) vfprintf (stderr, fmt, args);
  3759      va_end (args);
  3760  }
  3761  #else
  3762  # define LTWRAPPER_DEBUGPRINTF(args)
  3763  #endif
  3764  
  3765  const char *program_name = NULL;
  3766  
  3767  void *xmalloc (size_t num);
  3768  char *xstrdup (const char *string);
  3769  const char *base_name (const char *name);
  3770  char *find_executable (const char *wrapper);
  3771  char *chase_symlinks (const char *pathspec);
  3772  int make_executable (const char *path);
  3773  int check_executable (const char *path);
  3774  char *strendzap (char *str, const char *pat);
  3775  void lt_fatal (const char *message, ...);
  3776  void lt_setenv (const char *name, const char *value);
  3777  char *lt_extend_str (const char *orig_value, const char *add, int to_end);
  3778  void lt_opt_process_env_set (const char *arg);
  3779  void lt_opt_process_env_prepend (const char *arg);
  3780  void lt_opt_process_env_append (const char *arg);
  3781  int lt_split_name_value (const char *arg, char** name, char** value);
  3782  void lt_update_exe_path (const char *name, const char *value);
  3783  void lt_update_lib_path (const char *name, const char *value);
  3784  
  3785  static const char *script_text_part1 =
  3786  EOF
  3787  
  3788  	    func_emit_wrapper_part1 yes |
  3789  	        $SED -e 's/\([\\"]\)/\\\1/g' \
  3790  	             -e 's/^/  "/' -e 's/$/\\n"/'
  3791  	    echo ";"
  3792  	    cat <<EOF
  3793  
  3794  static const char *script_text_part2 =
  3795  EOF
  3796  	    func_emit_wrapper_part2 yes |
  3797  	        $SED -e 's/\([\\"]\)/\\\1/g' \
  3798  	             -e 's/^/  "/' -e 's/$/\\n"/'
  3799  	    echo ";"
  3800  
  3801  	    cat <<EOF
  3802  const char * MAGIC_EXE = "$magic_exe";
  3803  const char * LIB_PATH_VARNAME = "$shlibpath_var";
  3804  EOF
  3805  
  3806  	    if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
  3807                func_to_host_pathlist "$temp_rpath"
  3808  	      cat <<EOF
  3809  const char * LIB_PATH_VALUE   = "$func_to_host_pathlist_result";
  3810  EOF
  3811  	    else
  3812  	      cat <<"EOF"
  3813  const char * LIB_PATH_VALUE   = "";
  3814  EOF
  3815  	    fi
  3816  
  3817  	    if test -n "$dllsearchpath"; then
  3818                func_to_host_pathlist "$dllsearchpath:"
  3819  	      cat <<EOF
  3820  const char * EXE_PATH_VARNAME = "PATH";
  3821  const char * EXE_PATH_VALUE   = "$func_to_host_pathlist_result";
  3822  EOF
  3823  	    else
  3824  	      cat <<"EOF"
  3825  const char * EXE_PATH_VARNAME = "";
  3826  const char * EXE_PATH_VALUE   = "";
  3827  EOF
  3828  	    fi
  3829  
  3830  	    if test "$fast_install" = yes; then
  3831  	      cat <<EOF
  3832  const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
  3833  EOF
  3834  	    else
  3835  	      cat <<EOF
  3836  const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
  3837  EOF
  3838  	    fi
  3839  
  3840  
  3841  	    cat <<"EOF"
  3842  
  3843  #define LTWRAPPER_OPTION_PREFIX         "--lt-"
  3844  #define LTWRAPPER_OPTION_PREFIX_LENGTH  5
  3845  
  3846  static const size_t opt_prefix_len         = LTWRAPPER_OPTION_PREFIX_LENGTH;
  3847  static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
  3848  
  3849  static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
  3850  
  3851  static const size_t env_set_opt_len     = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
  3852  static const char *env_set_opt          = LTWRAPPER_OPTION_PREFIX "env-set";
  3853    /* argument is putenv-style "foo=bar", value of foo is set to bar */
  3854  
  3855  static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
  3856  static const char *env_prepend_opt      = LTWRAPPER_OPTION_PREFIX "env-prepend";
  3857    /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */
  3858  
  3859  static const size_t env_append_opt_len  = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
  3860  static const char *env_append_opt       = LTWRAPPER_OPTION_PREFIX "env-append";
  3861    /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */
  3862  
  3863  int
  3864  main (int argc, char *argv[])
  3865  {
  3866    char **newargz;
  3867    int  newargc;
  3868    char *tmp_pathspec;
  3869    char *actual_cwrapper_path;
  3870    char *actual_cwrapper_name;
  3871    char *target_name;
  3872    char *lt_argv_zero;
  3873    intptr_t rval = 127;
  3874  
  3875    int i;
  3876  
  3877    program_name = (char *) xstrdup (base_name (argv[0]));
  3878    LTWRAPPER_DEBUGPRINTF (("(main) argv[0]      : %s\n", argv[0]));
  3879    LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
  3880  
  3881    /* very simple arg parsing; don't want to rely on getopt */
  3882    for (i = 1; i < argc; i++)
  3883      {
  3884        if (strcmp (argv[i], dumpscript_opt) == 0)
  3885  	{
  3886  EOF
  3887  	    case "$host" in
  3888  	      *mingw* | *cygwin* )
  3889  		# make stdout use "unix" line endings
  3890  		echo "          setmode(1,_O_BINARY);"
  3891  		;;
  3892  	      esac
  3893  
  3894  	    cat <<"EOF"
  3895  	  printf ("%s", script_text_part1);
  3896  	  printf ("%s", script_text_part2);
  3897  	  return 0;
  3898  	}
  3899      }
  3900  
  3901    newargz = XMALLOC (char *, argc + 1);
  3902    tmp_pathspec = find_executable (argv[0]);
  3903    if (tmp_pathspec == NULL)
  3904      lt_fatal ("Couldn't find %s", argv[0]);
  3905    LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
  3906  			  tmp_pathspec));
  3907  
  3908    actual_cwrapper_path = chase_symlinks (tmp_pathspec);
  3909    LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
  3910  			  actual_cwrapper_path));
  3911    XFREE (tmp_pathspec);
  3912  
  3913    actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
  3914    strendzap (actual_cwrapper_path, actual_cwrapper_name);
  3915  
  3916    /* wrapper name transforms */
  3917    strendzap (actual_cwrapper_name, ".exe");
  3918    tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
  3919    XFREE (actual_cwrapper_name);
  3920    actual_cwrapper_name = tmp_pathspec;
  3921    tmp_pathspec = 0;
  3922  
  3923    /* target_name transforms -- use actual target program name; might have lt- prefix */
  3924    target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
  3925    strendzap (target_name, ".exe");
  3926    tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
  3927    XFREE (target_name);
  3928    target_name = tmp_pathspec;
  3929    tmp_pathspec = 0;
  3930  
  3931    LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
  3932  			  target_name));
  3933  EOF
  3934  
  3935  	    cat <<EOF
  3936    newargz[0] =
  3937      XMALLOC (char, (strlen (actual_cwrapper_path) +
  3938  		    strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
  3939    strcpy (newargz[0], actual_cwrapper_path);
  3940    strcat (newargz[0], "$objdir");
  3941    strcat (newargz[0], "/");
  3942  EOF
  3943  
  3944  	    cat <<"EOF"
  3945    /* stop here, and copy so we don't have to do this twice */
  3946    tmp_pathspec = xstrdup (newargz[0]);
  3947  
  3948    /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
  3949    strcat (newargz[0], actual_cwrapper_name);
  3950  
  3951    /* DO want the lt- prefix here if it exists, so use target_name */
  3952    lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
  3953    XFREE (tmp_pathspec);
  3954    tmp_pathspec = NULL;
  3955  EOF
  3956  
  3957  	    case $host_os in
  3958  	      mingw*)
  3959  	    cat <<"EOF"
  3960    {
  3961      char* p;
  3962      while ((p = strchr (newargz[0], '\\')) != NULL)
  3963        {
  3964  	*p = '/';
  3965        }
  3966      while ((p = strchr (lt_argv_zero, '\\')) != NULL)
  3967        {
  3968  	*p = '/';
  3969        }
  3970    }
  3971  EOF
  3972  	    ;;
  3973  	    esac
  3974  
  3975  	    cat <<"EOF"
  3976    XFREE (target_name);
  3977    XFREE (actual_cwrapper_path);
  3978    XFREE (actual_cwrapper_name);
  3979  
  3980    lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
  3981    lt_setenv ("DUALCASE", "1");  /* for MSK sh */
  3982    lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
  3983    lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
  3984  
  3985    newargc=0;
  3986    for (i = 1; i < argc; i++)
  3987      {
  3988        if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)
  3989          {
  3990            if (argv[i][env_set_opt_len] == '=')
  3991              {
  3992                const char *p = argv[i] + env_set_opt_len + 1;
  3993                lt_opt_process_env_set (p);
  3994              }
  3995            else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc)
  3996              {
  3997                lt_opt_process_env_set (argv[++i]); /* don't copy */
  3998              }
  3999            else
  4000              lt_fatal ("%s missing required argument", env_set_opt);
  4001            continue;
  4002          }
  4003        if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)
  4004          {
  4005            if (argv[i][env_prepend_opt_len] == '=')
  4006              {
  4007                const char *p = argv[i] + env_prepend_opt_len + 1;
  4008                lt_opt_process_env_prepend (p);
  4009              }
  4010            else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc)
  4011              {
  4012                lt_opt_process_env_prepend (argv[++i]); /* don't copy */
  4013              }
  4014            else
  4015              lt_fatal ("%s missing required argument", env_prepend_opt);
  4016            continue;
  4017          }
  4018        if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)
  4019          {
  4020            if (argv[i][env_append_opt_len] == '=')
  4021              {
  4022                const char *p = argv[i] + env_append_opt_len + 1;
  4023                lt_opt_process_env_append (p);
  4024              }
  4025            else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc)
  4026              {
  4027                lt_opt_process_env_append (argv[++i]); /* don't copy */
  4028              }
  4029            else
  4030              lt_fatal ("%s missing required argument", env_append_opt);
  4031            continue;
  4032          }
  4033        if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
  4034          {
  4035            /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
  4036               namespace, but it is not one of the ones we know about and
  4037               have already dealt with, above (inluding dump-script), then
  4038               report an error. Otherwise, targets might begin to believe
  4039               they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
  4040               namespace. The first time any user complains about this, we'll
  4041               need to make LTWRAPPER_OPTION_PREFIX a configure-time option
  4042               or a configure.ac-settable value.
  4043             */
  4044            lt_fatal ("Unrecognized option in %s namespace: '%s'",
  4045                      ltwrapper_option_prefix, argv[i]);
  4046          }
  4047        /* otherwise ... */
  4048        newargz[++newargc] = xstrdup (argv[i]);
  4049      }
  4050    newargz[++newargc] = NULL;
  4051  
  4052    LTWRAPPER_DEBUGPRINTF     (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
  4053    for (i = 0; i < newargc; i++)
  4054      {
  4055        LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d]   : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
  4056      }
  4057  
  4058  EOF
  4059  
  4060  	    case $host_os in
  4061  	      mingw*)
  4062  		cat <<"EOF"
  4063    /* execv doesn't actually work on mingw as expected on unix */
  4064    rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
  4065    if (rval == -1)
  4066      {
  4067        /* failed to start process */
  4068        LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
  4069        return 127;
  4070      }
  4071    return rval;
  4072  EOF
  4073  		;;
  4074  	      *)
  4075  		cat <<"EOF"
  4076    execv (lt_argv_zero, newargz);
  4077    return rval; /* =127, but avoids unused variable warning */
  4078  EOF
  4079  		;;
  4080  	    esac
  4081  
  4082  	    cat <<"EOF"
  4083  }
  4084  
  4085  void *
  4086  xmalloc (size_t num)
  4087  {
  4088    void *p = (void *) malloc (num);
  4089    if (!p)
  4090      lt_fatal ("Memory exhausted");
  4091  
  4092    return p;
  4093  }
  4094  
  4095  char *
  4096  xstrdup (const char *string)
  4097  {
  4098    return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
  4099  			  string) : NULL;
  4100  }
  4101  
  4102  const char *
  4103  base_name (const char *name)
  4104  {
  4105    const char *base;
  4106  
  4107  #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
  4108    /* Skip over the disk name in MSDOS pathnames. */
  4109    if (isalpha ((unsigned char) name[0]) && name[1] == ':')
  4110      name += 2;
  4111  #endif
  4112  
  4113    for (base = name; *name; name++)
  4114      if (IS_DIR_SEPARATOR (*name))
  4115        base = name + 1;
  4116    return base;
  4117  }
  4118  
  4119  int
  4120  check_executable (const char *path)
  4121  {
  4122    struct stat st;
  4123  
  4124    LTWRAPPER_DEBUGPRINTF (("(check_executable)  : %s\n",
  4125  			  path ? (*path ? path : "EMPTY!") : "NULL!"));
  4126    if ((!path) || (!*path))
  4127      return 0;
  4128  
  4129    if ((stat (path, &st) >= 0)
  4130        && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
  4131      return 1;
  4132    else
  4133      return 0;
  4134  }
  4135  
  4136  int
  4137  make_executable (const char *path)
  4138  {
  4139    int rval = 0;
  4140    struct stat st;
  4141  
  4142    LTWRAPPER_DEBUGPRINTF (("(make_executable)   : %s\n",
  4143  			  path ? (*path ? path : "EMPTY!") : "NULL!"));
  4144    if ((!path) || (!*path))
  4145      return 0;
  4146  
  4147    if (stat (path, &st) >= 0)
  4148      {
  4149        rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
  4150      }
  4151    return rval;
  4152  }
  4153  
  4154  /* Searches for the full path of the wrapper.  Returns
  4155     newly allocated full path name if found, NULL otherwise
  4156     Does not chase symlinks, even on platforms that support them.
  4157  */
  4158  char *
  4159  find_executable (const char *wrapper)
  4160  {
  4161    int has_slash = 0;
  4162    const char *p;
  4163    const char *p_next;
  4164    /* static buffer for getcwd */
  4165    char tmp[LT_PATHMAX + 1];
  4166    int tmp_len;
  4167    char *concat_name;
  4168  
  4169    LTWRAPPER_DEBUGPRINTF (("(find_executable)   : %s\n",
  4170  			  wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
  4171  
  4172    if ((wrapper == NULL) || (*wrapper == '\0'))
  4173      return NULL;
  4174  
  4175    /* Absolute path? */
  4176  #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
  4177    if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
  4178      {
  4179        concat_name = xstrdup (wrapper);
  4180        if (check_executable (concat_name))
  4181  	return concat_name;
  4182        XFREE (concat_name);
  4183      }
  4184    else
  4185      {
  4186  #endif
  4187        if (IS_DIR_SEPARATOR (wrapper[0]))
  4188  	{
  4189  	  concat_name = xstrdup (wrapper);
  4190  	  if (check_executable (concat_name))
  4191  	    return concat_name;
  4192  	  XFREE (concat_name);
  4193  	}
  4194  #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
  4195      }
  4196  #endif
  4197  
  4198    for (p = wrapper; *p; p++)
  4199      if (*p == '/')
  4200        {
  4201  	has_slash = 1;
  4202  	break;
  4203        }
  4204    if (!has_slash)
  4205      {
  4206        /* no slashes; search PATH */
  4207        const char *path = getenv ("PATH");
  4208        if (path != NULL)
  4209  	{
  4210  	  for (p = path; *p; p = p_next)
  4211  	    {
  4212  	      const char *q;
  4213  	      size_t p_len;
  4214  	      for (q = p; *q; q++)
  4215  		if (IS_PATH_SEPARATOR (*q))
  4216  		  break;
  4217  	      p_len = q - p;
  4218  	      p_next = (*q == '\0' ? q : q + 1);
  4219  	      if (p_len == 0)
  4220  		{
  4221  		  /* empty path: current directory */
  4222  		  if (getcwd (tmp, LT_PATHMAX) == NULL)
  4223  		    lt_fatal ("getcwd failed");
  4224  		  tmp_len = strlen (tmp);
  4225  		  concat_name =
  4226  		    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
  4227  		  memcpy (concat_name, tmp, tmp_len);
  4228  		  concat_name[tmp_len] = '/';
  4229  		  strcpy (concat_name + tmp_len + 1, wrapper);
  4230  		}
  4231  	      else
  4232  		{
  4233  		  concat_name =
  4234  		    XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
  4235  		  memcpy (concat_name, p, p_len);
  4236  		  concat_name[p_len] = '/';
  4237  		  strcpy (concat_name + p_len + 1, wrapper);
  4238  		}
  4239  	      if (check_executable (concat_name))
  4240  		return concat_name;
  4241  	      XFREE (concat_name);
  4242  	    }
  4243  	}
  4244        /* not found in PATH; assume curdir */
  4245      }
  4246    /* Relative path | not found in path: prepend cwd */
  4247    if (getcwd (tmp, LT_PATHMAX) == NULL)
  4248      lt_fatal ("getcwd failed");
  4249    tmp_len = strlen (tmp);
  4250    concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
  4251    memcpy (concat_name, tmp, tmp_len);
  4252    concat_name[tmp_len] = '/';
  4253    strcpy (concat_name + tmp_len + 1, wrapper);
  4254  
  4255    if (check_executable (concat_name))
  4256      return concat_name;
  4257    XFREE (concat_name);
  4258    return NULL;
  4259  }
  4260  
  4261  char *
  4262  chase_symlinks (const char *pathspec)
  4263  {
  4264  #ifndef S_ISLNK
  4265    return xstrdup (pathspec);
  4266  #else
  4267    char buf[LT_PATHMAX];
  4268    struct stat s;
  4269    char *tmp_pathspec = xstrdup (pathspec);
  4270    char *p;
  4271    int has_symlinks = 0;
  4272    while (strlen (tmp_pathspec) && !has_symlinks)
  4273      {
  4274        LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
  4275  			      tmp_pathspec));
  4276        if (lstat (tmp_pathspec, &s) == 0)
  4277  	{
  4278  	  if (S_ISLNK (s.st_mode) != 0)
  4279  	    {
  4280  	      has_symlinks = 1;
  4281  	      break;
  4282  	    }
  4283  
  4284  	  /* search backwards for last DIR_SEPARATOR */
  4285  	  p = tmp_pathspec + strlen (tmp_pathspec) - 1;
  4286  	  while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
  4287  	    p--;
  4288  	  if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
  4289  	    {
  4290  	      /* no more DIR_SEPARATORS left */
  4291  	      break;
  4292  	    }
  4293  	  *p = '\0';
  4294  	}
  4295        else
  4296  	{
  4297  	  char *errstr = strerror (errno);
  4298  	  lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
  4299  	}
  4300      }
  4301    XFREE (tmp_pathspec);
  4302  
  4303    if (!has_symlinks)
  4304      {
  4305        return xstrdup (pathspec);
  4306      }
  4307  
  4308    tmp_pathspec = realpath (pathspec, buf);
  4309    if (tmp_pathspec == 0)
  4310      {
  4311        lt_fatal ("Could not follow symlinks for %s", pathspec);
  4312      }
  4313    return xstrdup (tmp_pathspec);
  4314  #endif
  4315  }
  4316  
  4317  char *
  4318  strendzap (char *str, const char *pat)
  4319  {
  4320    size_t len, patlen;
  4321  
  4322    assert (str != NULL);
  4323    assert (pat != NULL);
  4324  
  4325    len = strlen (str);
  4326    patlen = strlen (pat);
  4327  
  4328    if (patlen <= len)
  4329      {
  4330        str += len - patlen;
  4331        if (strcmp (str, pat) == 0)
  4332  	*str = '\0';
  4333      }
  4334    return str;
  4335  }
  4336  
  4337  static void
  4338  lt_error_core (int exit_status, const char *mode,
  4339  	       const char *message, va_list ap)
  4340  {
  4341    fprintf (stderr, "%s: %s: ", program_name, mode);
  4342    vfprintf (stderr, message, ap);
  4343    fprintf (stderr, ".\n");
  4344  
  4345    if (exit_status >= 0)
  4346      exit (exit_status);
  4347  }
  4348  
  4349  void
  4350  lt_fatal (const char *message, ...)
  4351  {
  4352    va_list ap;
  4353    va_start (ap, message);
  4354    lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
  4355    va_end (ap);
  4356  }
  4357  
  4358  void
  4359  lt_setenv (const char *name, const char *value)
  4360  {
  4361    LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
  4362                            (name ? name : "<NULL>"),
  4363                            (value ? value : "<NULL>")));
  4364    {
  4365  #ifdef HAVE_SETENV
  4366      /* always make a copy, for consistency with !HAVE_SETENV */
  4367      char *str = xstrdup (value);
  4368      setenv (name, str, 1);
  4369  #else
  4370      int len = strlen (name) + 1 + strlen (value) + 1;
  4371      char *str = XMALLOC (char, len);
  4372      sprintf (str, "%s=%s", name, value);
  4373      if (putenv (str) != EXIT_SUCCESS)
  4374        {
  4375          XFREE (str);
  4376        }
  4377  #endif
  4378    }
  4379  }
  4380  
  4381  char *
  4382  lt_extend_str (const char *orig_value, const char *add, int to_end)
  4383  {
  4384    char *new_value;
  4385    if (orig_value && *orig_value)
  4386      {
  4387        int orig_value_len = strlen (orig_value);
  4388        int add_len = strlen (add);
  4389        new_value = XMALLOC (char, add_len + orig_value_len + 1);
  4390        if (to_end)
  4391          {
  4392            strcpy (new_value, orig_value);
  4393            strcpy (new_value + orig_value_len, add);
  4394          }
  4395        else
  4396          {
  4397            strcpy (new_value, add);
  4398            strcpy (new_value + add_len, orig_value);
  4399          }
  4400      }
  4401    else
  4402      {
  4403        new_value = xstrdup (add);
  4404      }
  4405    return new_value;
  4406  }
  4407  
  4408  int
  4409  lt_split_name_value (const char *arg, char** name, char** value)
  4410  {
  4411    const char *p;
  4412    int len;
  4413    if (!arg || !*arg)
  4414      return 1;
  4415  
  4416    p = strchr (arg, (int)'=');
  4417  
  4418    if (!p)
  4419      return 1;
  4420  
  4421    *value = xstrdup (++p);
  4422  
  4423    len = strlen (arg) - strlen (*value);
  4424    *name = XMALLOC (char, len);
  4425    strncpy (*name, arg, len-1);
  4426    (*name)[len - 1] = '\0';
  4427  
  4428    return 0;
  4429  }
  4430  
  4431  void
  4432  lt_opt_process_env_set (const char *arg)
  4433  {
  4434    char *name = NULL;
  4435    char *value = NULL;
  4436  
  4437    if (lt_split_name_value (arg, &name, &value) != 0)
  4438      {
  4439        XFREE (name);
  4440        XFREE (value);
  4441        lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg);
  4442      }
  4443  
  4444    lt_setenv (name, value);
  4445    XFREE (name);
  4446    XFREE (value);
  4447  }
  4448  
  4449  void
  4450  lt_opt_process_env_prepend (const char *arg)
  4451  {
  4452    char *name = NULL;
  4453    char *value = NULL;
  4454    char *new_value = NULL;
  4455  
  4456    if (lt_split_name_value (arg, &name, &value) != 0)
  4457      {
  4458        XFREE (name);
  4459        XFREE (value);
  4460        lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg);
  4461      }
  4462  
  4463    new_value = lt_extend_str (getenv (name), value, 0);
  4464    lt_setenv (name, new_value);
  4465    XFREE (new_value);
  4466    XFREE (name);
  4467    XFREE (value);
  4468  }
  4469  
  4470  void
  4471  lt_opt_process_env_append (const char *arg)
  4472  {
  4473    char *name = NULL;
  4474    char *value = NULL;
  4475    char *new_value = NULL;
  4476  
  4477    if (lt_split_name_value (arg, &name, &value) != 0)
  4478      {
  4479        XFREE (name);
  4480        XFREE (value);
  4481        lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg);
  4482      }
  4483  
  4484    new_value = lt_extend_str (getenv (name), value, 1);
  4485    lt_setenv (name, new_value);
  4486    XFREE (new_value);
  4487    XFREE (name);
  4488    XFREE (value);
  4489  }
  4490  
  4491  void
  4492  lt_update_exe_path (const char *name, const char *value)
  4493  {
  4494    LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
  4495                            (name ? name : "<NULL>"),
  4496                            (value ? value : "<NULL>")));
  4497  
  4498    if (name && *name && value && *value)
  4499      {
  4500        char *new_value = lt_extend_str (getenv (name), value, 0);
  4501        /* some systems can't cope with a ':'-terminated path #' */
  4502        int len = strlen (new_value);
  4503        while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
  4504          {
  4505            new_value[len-1] = '\0';
  4506          }
  4507        lt_setenv (name, new_value);
  4508        XFREE (new_value);
  4509      }
  4510  }
  4511  
  4512  void
  4513  lt_update_lib_path (const char *name, const char *value)
  4514  {
  4515    LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
  4516                            (name ? name : "<NULL>"),
  4517                            (value ? value : "<NULL>")));
  4518  
  4519    if (name && *name && value && *value)
  4520      {
  4521        char *new_value = lt_extend_str (getenv (name), value, 0);
  4522        lt_setenv (name, new_value);
  4523        XFREE (new_value);
  4524      }
  4525  }
  4526  
  4527  
  4528  EOF
  4529  }
  4530  # end: func_emit_cwrapperexe_src
  4531  
  4532  # func_mode_link arg...
  4533  func_mode_link ()
  4534  {
  4535      $opt_debug
  4536      case $host in
  4537      *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
  4538        # It is impossible to link a dll without this setting, and
  4539        # we shouldn't force the makefile maintainer to figure out
  4540        # which system we are compiling for in order to pass an extra
  4541        # flag for every libtool invocation.
  4542        # allow_undefined=no
  4543  
  4544        # FIXME: Unfortunately, there are problems with the above when trying
  4545        # to make a dll which has undefined symbols, in which case not
  4546        # even a static library is built.  For now, we need to specify
  4547        # -no-undefined on the libtool link line when we can be certain
  4548        # that all symbols are satisfied, otherwise we get a static library.
  4549        allow_undefined=yes
  4550        ;;
  4551      *)
  4552        allow_undefined=yes
  4553        ;;
  4554      esac
  4555      libtool_args=$nonopt
  4556      base_compile="$nonopt $@"
  4557      compile_command=$nonopt
  4558      finalize_command=$nonopt
  4559  
  4560      compile_rpath=
  4561      finalize_rpath=
  4562      compile_shlibpath=
  4563      finalize_shlibpath=
  4564      convenience=
  4565      old_convenience=
  4566      deplibs=
  4567      old_deplibs=
  4568      compiler_flags=
  4569      linker_flags=
  4570      dllsearchpath=
  4571      lib_search_path=`pwd`
  4572      inst_prefix_dir=
  4573      new_inherited_linker_flags=
  4574  
  4575      avoid_version=no
  4576      dlfiles=
  4577      dlprefiles=
  4578      dlself=no
  4579      export_dynamic=no
  4580      export_symbols=
  4581      export_symbols_regex=
  4582      generated=
  4583      libobjs=
  4584      ltlibs=
  4585      module=no
  4586      no_install=no
  4587      objs=
  4588      non_pic_objects=
  4589      precious_files_regex=
  4590      prefer_static_libs=no
  4591      preload=no
  4592      prev=
  4593      prevarg=
  4594      release=
  4595      rpath=
  4596      xrpath=
  4597      perm_rpath=
  4598      temp_rpath=
  4599      thread_safe=no
  4600      vinfo=
  4601      vinfo_number=no
  4602      weak_libs=
  4603      single_module="${wl}-single_module"
  4604      func_infer_tag $base_compile
  4605  
  4606      # We need to know -static, to get the right output filenames.
  4607      for arg
  4608      do
  4609        case $arg in
  4610        -shared)
  4611  	test "$build_libtool_libs" != yes && \
  4612  	  func_fatal_configuration "can not build a shared library"
  4613  	build_old_libs=no
  4614  	break
  4615  	;;
  4616        -all-static | -static | -static-libtool-libs)
  4617  	case $arg in
  4618  	-all-static)
  4619  	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
  4620  	    func_warning "complete static linking is impossible in this configuration"
  4621  	  fi
  4622  	  if test -n "$link_static_flag"; then
  4623  	    dlopen_self=$dlopen_self_static
  4624  	  fi
  4625  	  prefer_static_libs=yes
  4626  	  ;;
  4627  	-static)
  4628  	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
  4629  	    dlopen_self=$dlopen_self_static
  4630  	  fi
  4631  	  prefer_static_libs=built
  4632  	  ;;
  4633  	-static-libtool-libs)
  4634  	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
  4635  	    dlopen_self=$dlopen_self_static
  4636  	  fi
  4637  	  prefer_static_libs=yes
  4638  	  ;;
  4639  	esac
  4640  	build_libtool_libs=no
  4641  	build_old_libs=yes
  4642  	break
  4643  	;;
  4644        esac
  4645      done
  4646  
  4647      # See if our shared archives depend on static archives.
  4648      test -n "$old_archive_from_new_cmds" && build_old_libs=yes
  4649  
  4650      # Go through the arguments, transforming them on the way.
  4651      while test "$#" -gt 0; do
  4652        arg="$1"
  4653        shift
  4654        func_quote_for_eval "$arg"
  4655        qarg=$func_quote_for_eval_unquoted_result
  4656        func_append libtool_args " $func_quote_for_eval_result"
  4657  
  4658        # If the previous option needs an argument, assign it.
  4659        if test -n "$prev"; then
  4660  	case $prev in
  4661  	output)
  4662  	  func_append compile_command " @OUTPUT@"
  4663  	  func_append finalize_command " @OUTPUT@"
  4664  	  ;;
  4665  	esac
  4666  
  4667  	case $prev in
  4668  	dlfiles|dlprefiles)
  4669  	  if test "$preload" = no; then
  4670  	    # Add the symbol object into the linking commands.
  4671  	    func_append compile_command " @SYMFILE@"
  4672  	    func_append finalize_command " @SYMFILE@"
  4673  	    preload=yes
  4674  	  fi
  4675  	  case $arg in
  4676  	  *.la | *.lo) ;;  # We handle these cases below.
  4677  	  force)
  4678  	    if test "$dlself" = no; then
  4679  	      dlself=needless
  4680  	      export_dynamic=yes
  4681  	    fi
  4682  	    prev=
  4683  	    continue
  4684  	    ;;
  4685  	  self)
  4686  	    if test "$prev" = dlprefiles; then
  4687  	      dlself=yes
  4688  	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
  4689  	      dlself=yes
  4690  	    else
  4691  	      dlself=needless
  4692  	      export_dynamic=yes
  4693  	    fi
  4694  	    prev=
  4695  	    continue
  4696  	    ;;
  4697  	  *)
  4698  	    if test "$prev" = dlfiles; then
  4699  	      dlfiles="$dlfiles $arg"
  4700  	    else
  4701  	      dlprefiles="$dlprefiles $arg"
  4702  	    fi
  4703  	    prev=
  4704  	    continue
  4705  	    ;;
  4706  	  esac
  4707  	  ;;
  4708  	expsyms)
  4709  	  export_symbols="$arg"
  4710  	  test -f "$arg" \
  4711  	    || func_fatal_error "symbol file \`$arg' does not exist"
  4712  	  prev=
  4713  	  continue
  4714  	  ;;
  4715  	expsyms_regex)
  4716  	  export_symbols_regex="$arg"
  4717  	  prev=
  4718  	  continue
  4719  	  ;;
  4720  	framework)
  4721  	  case $host in
  4722  	    *-*-darwin*)
  4723  	      case "$deplibs " in
  4724  		*" $qarg.ltframework "*) ;;
  4725  		*) deplibs="$deplibs $qarg.ltframework" # this is fixed later
  4726  		   ;;
  4727  	      esac
  4728  	      ;;
  4729  	  esac
  4730  	  prev=
  4731  	  continue
  4732  	  ;;
  4733  	inst_prefix)
  4734  	  inst_prefix_dir="$arg"
  4735  	  prev=
  4736  	  continue
  4737  	  ;;
  4738  	objectlist)
  4739  	  if test -f "$arg"; then
  4740  	    save_arg=$arg
  4741  	    moreargs=
  4742  	    for fil in `cat "$save_arg"`
  4743  	    do
  4744  #	      moreargs="$moreargs $fil"
  4745  	      arg=$fil
  4746  	      # A libtool-controlled object.
  4747  
  4748  	      # Check to see that this really is a libtool object.
  4749  	      if func_lalib_unsafe_p "$arg"; then
  4750  		pic_object=
  4751  		non_pic_object=
  4752  
  4753  		# Read the .lo file
  4754  		func_source "$arg"
  4755  
  4756  		if test -z "$pic_object" ||
  4757  		   test -z "$non_pic_object" ||
  4758  		   test "$pic_object" = none &&
  4759  		   test "$non_pic_object" = none; then
  4760  		  func_fatal_error "cannot find name of object for \`$arg'"
  4761  		fi
  4762  
  4763  		# Extract subdirectory from the argument.
  4764  		func_dirname "$arg" "/" ""
  4765  		xdir="$func_dirname_result"
  4766  
  4767  		if test "$pic_object" != none; then
  4768  		  # Prepend the subdirectory the object is found in.
  4769  		  pic_object="$xdir$pic_object"
  4770  
  4771  		  if test "$prev" = dlfiles; then
  4772  		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
  4773  		      dlfiles="$dlfiles $pic_object"
  4774  		      prev=
  4775  		      continue
  4776  		    else
  4777  		      # If libtool objects are unsupported, then we need to preload.
  4778  		      prev=dlprefiles
  4779  		    fi
  4780  		  fi
  4781  
  4782  		  # CHECK ME:  I think I busted this.  -Ossama
  4783  		  if test "$prev" = dlprefiles; then
  4784  		    # Preload the old-style object.
  4785  		    dlprefiles="$dlprefiles $pic_object"
  4786  		    prev=
  4787  		  fi
  4788  
  4789  		  # A PIC object.
  4790  		  func_append libobjs " $pic_object"
  4791  		  arg="$pic_object"
  4792  		fi
  4793  
  4794  		# Non-PIC object.
  4795  		if test "$non_pic_object" != none; then
  4796  		  # Prepend the subdirectory the object is found in.
  4797  		  non_pic_object="$xdir$non_pic_object"
  4798  
  4799  		  # A standard non-PIC object
  4800  		  func_append non_pic_objects " $non_pic_object"
  4801  		  if test -z "$pic_object" || test "$pic_object" = none ; then
  4802  		    arg="$non_pic_object"
  4803  		  fi
  4804  		else
  4805  		  # If the PIC object exists, use it instead.
  4806  		  # $xdir was prepended to $pic_object above.
  4807  		  non_pic_object="$pic_object"
  4808  		  func_append non_pic_objects " $non_pic_object"
  4809  		fi
  4810  	      else
  4811  		# Only an error if not doing a dry-run.
  4812  		if $opt_dry_run; then
  4813  		  # Extract subdirectory from the argument.
  4814  		  func_dirname "$arg" "/" ""
  4815  		  xdir="$func_dirname_result"
  4816  
  4817  		  func_lo2o "$arg"
  4818  		  pic_object=$xdir$objdir/$func_lo2o_result
  4819  		  non_pic_object=$xdir$func_lo2o_result
  4820  		  func_append libobjs " $pic_object"
  4821  		  func_append non_pic_objects " $non_pic_object"
  4822  	        else
  4823  		  func_fatal_error "\`$arg' is not a valid libtool object"
  4824  		fi
  4825  	      fi
  4826  	    done
  4827  	  else
  4828  	    func_fatal_error "link input file \`$arg' does not exist"
  4829  	  fi
  4830  	  arg=$save_arg
  4831  	  prev=
  4832  	  continue
  4833  	  ;;
  4834  	precious_regex)
  4835  	  precious_files_regex="$arg"
  4836  	  prev=
  4837  	  continue
  4838  	  ;;
  4839  	release)
  4840  	  release="-$arg"
  4841  	  prev=
  4842  	  continue
  4843  	  ;;
  4844  	rpath | xrpath)
  4845  	  # We need an absolute path.
  4846  	  case $arg in
  4847  	  [\\/]* | [A-Za-z]:[\\/]*) ;;
  4848  	  *)
  4849  	    func_fatal_error "only absolute run-paths are allowed"
  4850  	    ;;
  4851  	  esac
  4852  	  if test "$prev" = rpath; then
  4853  	    case "$rpath " in
  4854  	    *" $arg "*) ;;
  4855  	    *) rpath="$rpath $arg" ;;
  4856  	    esac
  4857  	  else
  4858  	    case "$xrpath " in
  4859  	    *" $arg "*) ;;
  4860  	    *) xrpath="$xrpath $arg" ;;
  4861  	    esac
  4862  	  fi
  4863  	  prev=
  4864  	  continue
  4865  	  ;;
  4866  	shrext)
  4867  	  shrext_cmds="$arg"
  4868  	  prev=
  4869  	  continue
  4870  	  ;;
  4871  	weak)
  4872  	  weak_libs="$weak_libs $arg"
  4873  	  prev=
  4874  	  continue
  4875  	  ;;
  4876  	xcclinker)
  4877  	  linker_flags="$linker_flags $qarg"
  4878  	  compiler_flags="$compiler_flags $qarg"
  4879  	  prev=
  4880  	  func_append compile_command " $qarg"
  4881  	  func_append finalize_command " $qarg"
  4882  	  continue
  4883  	  ;;
  4884  	xcompiler)
  4885  	  compiler_flags="$compiler_flags $qarg"
  4886  	  prev=
  4887  	  func_append compile_command " $qarg"
  4888  	  func_append finalize_command " $qarg"
  4889  	  continue
  4890  	  ;;
  4891  	xlinker)
  4892  	  linker_flags="$linker_flags $qarg"
  4893  	  compiler_flags="$compiler_flags $wl$qarg"
  4894  	  prev=
  4895  	  func_append compile_command " $wl$qarg"
  4896  	  func_append finalize_command " $wl$qarg"
  4897  	  continue
  4898  	  ;;
  4899  	*)
  4900  	  eval "$prev=\"\$arg\""
  4901  	  prev=
  4902  	  continue
  4903  	  ;;
  4904  	esac
  4905        fi # test -n "$prev"
  4906  
  4907        prevarg="$arg"
  4908  
  4909        case $arg in
  4910        -all-static)
  4911  	if test -n "$link_static_flag"; then
  4912  	  # See comment for -static flag below, for more details.
  4913  	  func_append compile_command " $link_static_flag"
  4914  	  func_append finalize_command " $link_static_flag"
  4915  	fi
  4916  	continue
  4917  	;;
  4918  
  4919        -allow-undefined)
  4920  	# FIXME: remove this flag sometime in the future.
  4921  	func_fatal_error "\`-allow-undefined' must not be used because it is the default"
  4922  	;;
  4923  
  4924        -avoid-version)
  4925  	avoid_version=yes
  4926  	continue
  4927  	;;
  4928  
  4929        -dlopen)
  4930  	prev=dlfiles
  4931  	continue
  4932  	;;
  4933  
  4934        -dlpreopen)
  4935  	prev=dlprefiles
  4936  	continue
  4937  	;;
  4938  
  4939        -export-dynamic)
  4940  	export_dynamic=yes
  4941  	continue
  4942  	;;
  4943  
  4944        -export-symbols | -export-symbols-regex)
  4945  	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
  4946  	  func_fatal_error "more than one -exported-symbols argument is not allowed"
  4947  	fi
  4948  	if test "X$arg" = "X-export-symbols"; then
  4949  	  prev=expsyms
  4950  	else
  4951  	  prev=expsyms_regex
  4952  	fi
  4953  	continue
  4954  	;;
  4955  
  4956        -framework)
  4957  	prev=framework
  4958  	continue
  4959  	;;
  4960  
  4961        -inst-prefix-dir)
  4962  	prev=inst_prefix
  4963  	continue
  4964  	;;
  4965  
  4966        # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
  4967        # so, if we see these flags be careful not to treat them like -L
  4968        -L[A-Z][A-Z]*:*)
  4969  	case $with_gcc/$host in
  4970  	no/*-*-irix* | /*-*-irix*)
  4971  	  func_append compile_command " $arg"
  4972  	  func_append finalize_command " $arg"
  4973  	  ;;
  4974  	esac
  4975  	continue
  4976  	;;
  4977  
  4978        -L*)
  4979  	func_stripname '-L' '' "$arg"
  4980  	dir=$func_stripname_result
  4981  	if test -z "$dir"; then
  4982  	  if test "$#" -gt 0; then
  4983  	    func_fatal_error "require no space between \`-L' and \`$1'"
  4984  	  else
  4985  	    func_fatal_error "need path for \`-L' option"
  4986  	  fi
  4987  	fi
  4988  	# We need an absolute path.
  4989  	case $dir in
  4990  	[\\/]* | [A-Za-z]:[\\/]*) ;;
  4991  	*)
  4992  	  absdir=`cd "$dir" && pwd`
  4993  	  test -z "$absdir" && \
  4994  	    func_fatal_error "cannot determine absolute directory name of \`$dir'"
  4995  	  dir="$absdir"
  4996  	  ;;
  4997  	esac
  4998  	case "$deplibs " in
  4999  	*" -L$dir "*) ;;
  5000  	*)
  5001  	  deplibs="$deplibs -L$dir"
  5002  	  lib_search_path="$lib_search_path $dir"
  5003  	  ;;
  5004  	esac
  5005  	case $host in
  5006  	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
  5007  	  testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
  5008  	  case :$dllsearchpath: in
  5009  	  *":$dir:"*) ;;
  5010  	  ::) dllsearchpath=$dir;;
  5011  	  *) dllsearchpath="$dllsearchpath:$dir";;
  5012  	  esac
  5013  	  case :$dllsearchpath: in
  5014  	  *":$testbindir:"*) ;;
  5015  	  ::) dllsearchpath=$testbindir;;
  5016  	  *) dllsearchpath="$dllsearchpath:$testbindir";;
  5017  	  esac
  5018  	  ;;
  5019  	esac
  5020  	continue
  5021  	;;
  5022  
  5023        -l*)
  5024  	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
  5025  	  case $host in
  5026  	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*)
  5027  	    # These systems don't actually have a C or math library (as such)
  5028  	    continue
  5029  	    ;;
  5030  	  *-*-os2*)
  5031  	    # These systems don't actually have a C library (as such)
  5032  	    test "X$arg" = "X-lc" && continue
  5033  	    ;;
  5034  	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
  5035  	    # Do not include libc due to us having libc/libc_r.
  5036  	    test "X$arg" = "X-lc" && continue
  5037  	    ;;
  5038  	  *-*-rhapsody* | *-*-darwin1.[012])
  5039  	    # Rhapsody C and math libraries are in the System framework
  5040  	    deplibs="$deplibs System.ltframework"
  5041  	    continue
  5042  	    ;;
  5043  	  *-*-sco3.2v5* | *-*-sco5v6*)
  5044  	    # Causes problems with __ctype
  5045  	    test "X$arg" = "X-lc" && continue
  5046  	    ;;
  5047  	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
  5048  	    # Compiler inserts libc in the correct place for threads to work
  5049  	    test "X$arg" = "X-lc" && continue
  5050  	    ;;
  5051  	  esac
  5052  	elif test "X$arg" = "X-lc_r"; then
  5053  	 case $host in
  5054  	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
  5055  	   # Do not include libc_r directly, use -pthread flag.
  5056  	   continue
  5057  	   ;;
  5058  	 esac
  5059  	fi
  5060  	deplibs="$deplibs $arg"
  5061  	continue
  5062  	;;
  5063  
  5064        -module)
  5065  	module=yes
  5066  	continue
  5067  	;;
  5068  
  5069        # Tru64 UNIX uses -model [arg] to determine the layout of C++
  5070        # classes, name mangling, and exception handling.
  5071        # Darwin uses the -arch flag to determine output architecture.
  5072        -model|-arch|-isysroot)
  5073  	compiler_flags="$compiler_flags $arg"
  5074  	func_append compile_command " $arg"
  5075  	func_append finalize_command " $arg"
  5076  	prev=xcompiler
  5077  	continue
  5078  	;;
  5079  
  5080        -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
  5081  	compiler_flags="$compiler_flags $arg"
  5082  	func_append compile_command " $arg"
  5083  	func_append finalize_command " $arg"
  5084  	case "$new_inherited_linker_flags " in
  5085  	    *" $arg "*) ;;
  5086  	    * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
  5087  	esac
  5088  	continue
  5089  	;;
  5090  
  5091        -multi_module)
  5092  	single_module="${wl}-multi_module"
  5093  	continue
  5094  	;;
  5095  
  5096        -no-fast-install)
  5097  	fast_install=no
  5098  	continue
  5099  	;;
  5100  
  5101        -no-install)
  5102  	case $host in
  5103  	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
  5104  	  # The PATH hackery in wrapper scripts is required on Windows
  5105  	  # and Darwin in order for the loader to find any dlls it needs.
  5106  	  func_warning "\`-no-install' is ignored for $host"
  5107  	  func_warning "assuming \`-no-fast-install' instead"
  5108  	  fast_install=no
  5109  	  ;;
  5110  	*) no_install=yes ;;
  5111  	esac
  5112  	continue
  5113  	;;
  5114  
  5115        -no-undefined)
  5116  	allow_undefined=no
  5117  	continue
  5118  	;;
  5119  
  5120        -objectlist)
  5121  	prev=objectlist
  5122  	continue
  5123  	;;
  5124  
  5125        -o) prev=output ;;
  5126  
  5127        -precious-files-regex)
  5128  	prev=precious_regex
  5129  	continue
  5130  	;;
  5131  
  5132        -release)
  5133  	prev=release
  5134  	continue
  5135  	;;
  5136  
  5137        -rpath)
  5138  	prev=rpath
  5139  	continue
  5140  	;;
  5141  
  5142        -R)
  5143  	prev=xrpath
  5144  	continue
  5145  	;;
  5146  
  5147        -R*)
  5148  	func_stripname '-R' '' "$arg"
  5149  	dir=$func_stripname_result
  5150  	# We need an absolute path.
  5151  	case $dir in
  5152  	[\\/]* | [A-Za-z]:[\\/]*) ;;
  5153  	*)
  5154  	  func_fatal_error "only absolute run-paths are allowed"
  5155  	  ;;
  5156  	esac
  5157  	case "$xrpath " in
  5158  	*" $dir "*) ;;
  5159  	*) xrpath="$xrpath $dir" ;;
  5160  	esac
  5161  	continue
  5162  	;;
  5163  
  5164        -shared)
  5165  	# The effects of -shared are defined in a previous loop.
  5166  	continue
  5167  	;;
  5168  
  5169        -shrext)
  5170  	prev=shrext
  5171  	continue
  5172  	;;
  5173  
  5174        -static | -static-libtool-libs)
  5175  	# The effects of -static are defined in a previous loop.
  5176  	# We used to do the same as -all-static on platforms that
  5177  	# didn't have a PIC flag, but the assumption that the effects
  5178  	# would be equivalent was wrong.  It would break on at least
  5179  	# Digital Unix and AIX.
  5180  	continue
  5181  	;;
  5182  
  5183        -thread-safe)
  5184  	thread_safe=yes
  5185  	continue
  5186  	;;
  5187  
  5188        -version-info)
  5189  	prev=vinfo
  5190  	continue
  5191  	;;
  5192  
  5193        -version-number)
  5194  	prev=vinfo
  5195  	vinfo_number=yes
  5196  	continue
  5197  	;;
  5198  
  5199        -weak)
  5200          prev=weak
  5201  	continue
  5202  	;;
  5203  
  5204        -Wc,*)
  5205  	func_stripname '-Wc,' '' "$arg"
  5206  	args=$func_stripname_result
  5207  	arg=
  5208  	save_ifs="$IFS"; IFS=','
  5209  	for flag in $args; do
  5210  	  IFS="$save_ifs"
  5211            func_quote_for_eval "$flag"
  5212  	  arg="$arg $wl$func_quote_for_eval_result"
  5213  	  compiler_flags="$compiler_flags $func_quote_for_eval_result"
  5214  	done
  5215  	IFS="$save_ifs"
  5216  	func_stripname ' ' '' "$arg"
  5217  	arg=$func_stripname_result
  5218  	;;
  5219  
  5220        -Wl,*)
  5221  	func_stripname '-Wl,' '' "$arg"
  5222  	args=$func_stripname_result
  5223  	arg=
  5224  	save_ifs="$IFS"; IFS=','
  5225  	for flag in $args; do
  5226  	  IFS="$save_ifs"
  5227            func_quote_for_eval "$flag"
  5228  	  arg="$arg $wl$func_quote_for_eval_result"
  5229  	  compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
  5230  	  linker_flags="$linker_flags $func_quote_for_eval_result"
  5231  	done
  5232  	IFS="$save_ifs"
  5233  	func_stripname ' ' '' "$arg"
  5234  	arg=$func_stripname_result
  5235  	;;
  5236  
  5237        -Xcompiler)
  5238  	prev=xcompiler
  5239  	continue
  5240  	;;
  5241  
  5242        -Xlinker)
  5243  	prev=xlinker
  5244  	continue
  5245  	;;
  5246  
  5247        -XCClinker)
  5248  	prev=xcclinker
  5249  	continue
  5250  	;;
  5251  
  5252        # -msg_* for osf cc
  5253        -msg_*)
  5254  	func_quote_for_eval "$arg"
  5255  	arg="$func_quote_for_eval_result"
  5256  	;;
  5257  
  5258        # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
  5259        # -r[0-9][0-9]* specifies the processor on the SGI compiler
  5260        # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
  5261        # +DA*, +DD* enable 64-bit mode on the HP compiler
  5262        # -q* pass through compiler args for the IBM compiler
  5263        # -m*, -t[45]*, -txscale* pass through architecture-specific
  5264        # compiler args for GCC
  5265        # -F/path gives path to uninstalled frameworks, gcc on darwin
  5266        # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
  5267        # @file GCC response files
  5268        -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
  5269        -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
  5270          func_quote_for_eval "$arg"
  5271  	arg="$func_quote_for_eval_result"
  5272          func_append compile_command " $arg"
  5273          func_append finalize_command " $arg"
  5274          compiler_flags="$compiler_flags $arg"
  5275          continue
  5276          ;;
  5277  
  5278        # Some other compiler flag.
  5279        -* | +*)
  5280          func_quote_for_eval "$arg"
  5281  	arg="$func_quote_for_eval_result"
  5282  	;;
  5283  
  5284        *.$objext)
  5285  	# A standard object.
  5286  	objs="$objs $arg"
  5287  	;;
  5288  
  5289        *.lo)
  5290  	# A libtool-controlled object.
  5291  
  5292  	# Check to see that this really is a libtool object.
  5293  	if func_lalib_unsafe_p "$arg"; then
  5294  	  pic_object=
  5295  	  non_pic_object=
  5296  
  5297  	  # Read the .lo file
  5298  	  func_source "$arg"
  5299  
  5300  	  if test -z "$pic_object" ||
  5301  	     test -z "$non_pic_object" ||
  5302  	     test "$pic_object" = none &&
  5303  	     test "$non_pic_object" = none; then
  5304  	    func_fatal_error "cannot find name of object for \`$arg'"
  5305  	  fi
  5306  
  5307  	  # Extract subdirectory from the argument.
  5308  	  func_dirname "$arg" "/" ""
  5309  	  xdir="$func_dirname_result"
  5310  
  5311  	  if test "$pic_object" != none; then
  5312  	    # Prepend the subdirectory the object is found in.
  5313  	    pic_object="$xdir$pic_object"
  5314  
  5315  	    if test "$prev" = dlfiles; then
  5316  	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
  5317  		dlfiles="$dlfiles $pic_object"
  5318  		prev=
  5319  		continue
  5320  	      else
  5321  		# If libtool objects are unsupported, then we need to preload.
  5322  		prev=dlprefiles
  5323  	      fi
  5324  	    fi
  5325  
  5326  	    # CHECK ME:  I think I busted this.  -Ossama
  5327  	    if test "$prev" = dlprefiles; then
  5328  	      # Preload the old-style object.
  5329  	      dlprefiles="$dlprefiles $pic_object"
  5330  	      prev=
  5331  	    fi
  5332  
  5333  	    # A PIC object.
  5334  	    func_append libobjs " $pic_object"
  5335  	    arg="$pic_object"
  5336  	  fi
  5337  
  5338  	  # Non-PIC object.
  5339  	  if test "$non_pic_object" != none; then
  5340  	    # Prepend the subdirectory the object is found in.
  5341  	    non_pic_object="$xdir$non_pic_object"
  5342  
  5343  	    # A standard non-PIC object
  5344  	    func_append non_pic_objects " $non_pic_object"
  5345  	    if test -z "$pic_object" || test "$pic_object" = none ; then
  5346  	      arg="$non_pic_object"
  5347  	    fi
  5348  	  else
  5349  	    # If the PIC object exists, use it instead.
  5350  	    # $xdir was prepended to $pic_object above.
  5351  	    non_pic_object="$pic_object"
  5352  	    func_append non_pic_objects " $non_pic_object"
  5353  	  fi
  5354  	else
  5355  	  # Only an error if not doing a dry-run.
  5356  	  if $opt_dry_run; then
  5357  	    # Extract subdirectory from the argument.
  5358  	    func_dirname "$arg" "/" ""
  5359  	    xdir="$func_dirname_result"
  5360  
  5361  	    func_lo2o "$arg"
  5362  	    pic_object=$xdir$objdir/$func_lo2o_result
  5363  	    non_pic_object=$xdir$func_lo2o_result
  5364  	    func_append libobjs " $pic_object"
  5365  	    func_append non_pic_objects " $non_pic_object"
  5366  	  else
  5367  	    func_fatal_error "\`$arg' is not a valid libtool object"
  5368  	  fi
  5369  	fi
  5370  	;;
  5371  
  5372        *.$libext)
  5373  	# An archive.
  5374  	deplibs="$deplibs $arg"
  5375  	old_deplibs="$old_deplibs $arg"
  5376  	continue
  5377  	;;
  5378  
  5379        *.la)
  5380  	# A libtool-controlled library.
  5381  
  5382  	if test "$prev" = dlfiles; then
  5383  	  # This library was specified with -dlopen.
  5384  	  dlfiles="$dlfiles $arg"
  5385  	  prev=
  5386  	elif test "$prev" = dlprefiles; then
  5387  	  # The library was specified with -dlpreopen.
  5388  	  dlprefiles="$dlprefiles $arg"
  5389  	  prev=
  5390  	else
  5391  	  deplibs="$deplibs $arg"
  5392  	fi
  5393  	continue
  5394  	;;
  5395  
  5396        # Some other compiler argument.
  5397        *)
  5398  	# Unknown arguments in both finalize_command and compile_command need
  5399  	# to be aesthetically quoted because they are evaled later.
  5400  	func_quote_for_eval "$arg"
  5401  	arg="$func_quote_for_eval_result"
  5402  	;;
  5403        esac # arg
  5404  
  5405        # Now actually substitute the argument into the commands.
  5406        if test -n "$arg"; then
  5407  	func_append compile_command " $arg"
  5408  	func_append finalize_command " $arg"
  5409        fi
  5410      done # argument parsing loop
  5411  
  5412      test -n "$prev" && \
  5413        func_fatal_help "the \`$prevarg' option requires an argument"
  5414  
  5415      if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
  5416        eval arg=\"$export_dynamic_flag_spec\"
  5417        func_append compile_command " $arg"
  5418        func_append finalize_command " $arg"
  5419      fi
  5420  
  5421      oldlibs=
  5422      # calculate the name of the file, without its directory
  5423      func_basename "$output"
  5424      outputname="$func_basename_result"
  5425      libobjs_save="$libobjs"
  5426  
  5427      if test -n "$shlibpath_var"; then
  5428        # get the directories listed in $shlibpath_var
  5429        eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
  5430      else
  5431        shlib_search_path=
  5432      fi
  5433      eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
  5434      eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
  5435  
  5436      func_dirname "$output" "/" ""
  5437      output_objdir="$func_dirname_result$objdir"
  5438      # Create the object directory.
  5439      func_mkdir_p "$output_objdir"
  5440  
  5441      # Determine the type of output
  5442      case $output in
  5443      "")
  5444        func_fatal_help "you must specify an output file"
  5445        ;;
  5446      *.$libext) linkmode=oldlib ;;
  5447      *.lo | *.$objext) linkmode=obj ;;
  5448      *.la) linkmode=lib ;;
  5449      *) linkmode=prog ;; # Anything else should be a program.
  5450      esac
  5451  
  5452      specialdeplibs=
  5453  
  5454      libs=
  5455      # Find all interdependent deplibs by searching for libraries
  5456      # that are linked more than once (e.g. -la -lb -la)
  5457      for deplib in $deplibs; do
  5458        if $opt_duplicate_deps ; then
  5459  	case "$libs " in
  5460  	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
  5461  	esac
  5462        fi
  5463        libs="$libs $deplib"
  5464      done
  5465  
  5466      if test "$linkmode" = lib; then
  5467        libs="$predeps $libs $compiler_lib_search_path $postdeps"
  5468  
  5469        # Compute libraries that are listed more than once in $predeps
  5470        # $postdeps and mark them as special (i.e., whose duplicates are
  5471        # not to be eliminated).
  5472        pre_post_deps=
  5473        if $opt_duplicate_compiler_generated_deps; then
  5474  	for pre_post_dep in $predeps $postdeps; do
  5475  	  case "$pre_post_deps " in
  5476  	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
  5477  	  esac
  5478  	  pre_post_deps="$pre_post_deps $pre_post_dep"
  5479  	done
  5480        fi
  5481        pre_post_deps=
  5482      fi
  5483  
  5484      deplibs=
  5485      newdependency_libs=
  5486      newlib_search_path=
  5487      need_relink=no # whether we're linking any uninstalled libtool libraries
  5488      notinst_deplibs= # not-installed libtool libraries
  5489      notinst_path= # paths that contain not-installed libtool libraries
  5490  
  5491      case $linkmode in
  5492      lib)
  5493  	passes="conv dlpreopen link"
  5494  	for file in $dlfiles $dlprefiles; do
  5495  	  case $file in
  5496  	  *.la) ;;
  5497  	  *)
  5498  	    func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
  5499  	    ;;
  5500  	  esac
  5501  	done
  5502  	;;
  5503      prog)
  5504  	compile_deplibs=
  5505  	finalize_deplibs=
  5506  	alldeplibs=no
  5507  	newdlfiles=
  5508  	newdlprefiles=
  5509  	passes="conv scan dlopen dlpreopen link"
  5510  	;;
  5511      *)  passes="conv"
  5512  	;;
  5513      esac
  5514  
  5515      for pass in $passes; do
  5516        # The preopen pass in lib mode reverses $deplibs; put it back here
  5517        # so that -L comes before libs that need it for instance...
  5518        if test "$linkmode,$pass" = "lib,link"; then
  5519  	## FIXME: Find the place where the list is rebuilt in the wrong
  5520  	##        order, and fix it there properly
  5521          tmp_deplibs=
  5522  	for deplib in $deplibs; do
  5523  	  tmp_deplibs="$deplib $tmp_deplibs"
  5524  	done
  5525  	deplibs="$tmp_deplibs"
  5526        fi
  5527  
  5528        if test "$linkmode,$pass" = "lib,link" ||
  5529  	 test "$linkmode,$pass" = "prog,scan"; then
  5530  	libs="$deplibs"
  5531  	deplibs=
  5532        fi
  5533        if test "$linkmode" = prog; then
  5534  	case $pass in
  5535  	dlopen) libs="$dlfiles" ;;
  5536  	dlpreopen) libs="$dlprefiles" ;;
  5537  	link)
  5538  	  libs="$deplibs %DEPLIBS%"
  5539  	  test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
  5540  	  ;;
  5541  	esac
  5542        fi
  5543        if test "$linkmode,$pass" = "lib,dlpreopen"; then
  5544  	# Collect and forward deplibs of preopened libtool libs
  5545  	for lib in $dlprefiles; do
  5546  	  # Ignore non-libtool-libs
  5547  	  dependency_libs=
  5548  	  case $lib in
  5549  	  *.la)	func_source "$lib" ;;
  5550  	  esac
  5551  
  5552  	  # Collect preopened libtool deplibs, except any this library
  5553  	  # has declared as weak libs
  5554  	  for deplib in $dependency_libs; do
  5555              deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
  5556  	    case " $weak_libs " in
  5557  	    *" $deplib_base "*) ;;
  5558  	    *) deplibs="$deplibs $deplib" ;;
  5559  	    esac
  5560  	  done
  5561  	done
  5562  	libs="$dlprefiles"
  5563        fi
  5564        if test "$pass" = dlopen; then
  5565  	# Collect dlpreopened libraries
  5566  	save_deplibs="$deplibs"
  5567  	deplibs=
  5568        fi
  5569  
  5570        for deplib in $libs; do
  5571  	lib=
  5572  	found=no
  5573  	case $deplib in
  5574  	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
  5575  	  if test "$linkmode,$pass" = "prog,link"; then
  5576  	    compile_deplibs="$deplib $compile_deplibs"
  5577  	    finalize_deplibs="$deplib $finalize_deplibs"
  5578  	  else
  5579  	    compiler_flags="$compiler_flags $deplib"
  5580  	    if test "$linkmode" = lib ; then
  5581  		case "$new_inherited_linker_flags " in
  5582  		    *" $deplib "*) ;;
  5583  		    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
  5584  		esac
  5585  	    fi
  5586  	  fi
  5587  	  continue
  5588  	  ;;
  5589  	-l*)
  5590  	  if test "$linkmode" != lib && test "$linkmode" != prog; then
  5591  	    func_warning "\`-l' is ignored for archives/objects"
  5592  	    continue
  5593  	  fi
  5594  	  func_stripname '-l' '' "$deplib"
  5595  	  name=$func_stripname_result
  5596  	  if test "$linkmode" = lib; then
  5597  	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
  5598  	  else
  5599  	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
  5600  	  fi
  5601  	  for searchdir in $searchdirs; do
  5602  	    for search_ext in .la $std_shrext .so .a; do
  5603  	      # Search the libtool library
  5604  	      lib="$searchdir/lib${name}${search_ext}"
  5605  	      if test -f "$lib"; then
  5606  		if test "$search_ext" = ".la"; then
  5607  		  found=yes
  5608  		else
  5609  		  found=no
  5610  		fi
  5611  		break 2
  5612  	      fi
  5613  	    done
  5614  	  done
  5615  	  if test "$found" != yes; then
  5616  	    # deplib doesn't seem to be a libtool library
  5617  	    if test "$linkmode,$pass" = "prog,link"; then
  5618  	      compile_deplibs="$deplib $compile_deplibs"
  5619  	      finalize_deplibs="$deplib $finalize_deplibs"
  5620  	    else
  5621  	      deplibs="$deplib $deplibs"
  5622  	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
  5623  	    fi
  5624  	    continue
  5625  	  else # deplib is a libtool library
  5626  	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
  5627  	    # We need to do some special things here, and not later.
  5628  	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
  5629  	      case " $predeps $postdeps " in
  5630  	      *" $deplib "*)
  5631  		if func_lalib_p "$lib"; then
  5632  		  library_names=
  5633  		  old_library=
  5634  		  func_source "$lib"
  5635  		  for l in $old_library $library_names; do
  5636  		    ll="$l"
  5637  		  done
  5638  		  if test "X$ll" = "X$old_library" ; then # only static version available
  5639  		    found=no
  5640  		    func_dirname "$lib" "" "."
  5641  		    ladir="$func_dirname_result"
  5642  		    lib=$ladir/$old_library
  5643  		    if test "$linkmode,$pass" = "prog,link"; then
  5644  		      compile_deplibs="$deplib $compile_deplibs"
  5645  		      finalize_deplibs="$deplib $finalize_deplibs"
  5646  		    else
  5647  		      deplibs="$deplib $deplibs"
  5648  		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
  5649  		    fi
  5650  		    continue
  5651  		  fi
  5652  		fi
  5653  		;;
  5654  	      *) ;;
  5655  	      esac
  5656  	    fi
  5657  	  fi
  5658  	  ;; # -l
  5659  	*.ltframework)
  5660  	  if test "$linkmode,$pass" = "prog,link"; then
  5661  	    compile_deplibs="$deplib $compile_deplibs"
  5662  	    finalize_deplibs="$deplib $finalize_deplibs"
  5663  	  else
  5664  	    deplibs="$deplib $deplibs"
  5665  	    if test "$linkmode" = lib ; then
  5666  		case "$new_inherited_linker_flags " in
  5667  		    *" $deplib "*) ;;
  5668  		    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
  5669  		esac
  5670  	    fi
  5671  	  fi
  5672  	  continue
  5673  	  ;;
  5674  	-L*)
  5675  	  case $linkmode in
  5676  	  lib)
  5677  	    deplibs="$deplib $deplibs"
  5678  	    test "$pass" = conv && continue
  5679  	    newdependency_libs="$deplib $newdependency_libs"
  5680  	    func_stripname '-L' '' "$deplib"
  5681  	    newlib_search_path="$newlib_search_path $func_stripname_result"
  5682  	    ;;
  5683  	  prog)
  5684  	    if test "$pass" = conv; then
  5685  	      deplibs="$deplib $deplibs"
  5686  	      continue
  5687  	    fi
  5688  	    if test "$pass" = scan; then
  5689  	      deplibs="$deplib $deplibs"
  5690  	    else
  5691  	      compile_deplibs="$deplib $compile_deplibs"
  5692  	      finalize_deplibs="$deplib $finalize_deplibs"
  5693  	    fi
  5694  	    func_stripname '-L' '' "$deplib"
  5695  	    newlib_search_path="$newlib_search_path $func_stripname_result"
  5696  	    ;;
  5697  	  *)
  5698  	    func_warning "\`-L' is ignored for archives/objects"
  5699  	    ;;
  5700  	  esac # linkmode
  5701  	  continue
  5702  	  ;; # -L
  5703  	-R*)
  5704  	  if test "$pass" = link; then
  5705  	    func_stripname '-R' '' "$deplib"
  5706  	    dir=$func_stripname_result
  5707  	    # Make sure the xrpath contains only unique directories.
  5708  	    case "$xrpath " in
  5709  	    *" $dir "*) ;;
  5710  	    *) xrpath="$xrpath $dir" ;;
  5711  	    esac
  5712  	  fi
  5713  	  deplibs="$deplib $deplibs"
  5714  	  continue
  5715  	  ;;
  5716  	*.la) lib="$deplib" ;;
  5717  	*.$libext)
  5718  	  if test "$pass" = conv; then
  5719  	    deplibs="$deplib $deplibs"
  5720  	    continue
  5721  	  fi
  5722  	  case $linkmode in
  5723  	  lib)
  5724  	    # Linking convenience modules into shared libraries is allowed,
  5725  	    # but linking other static libraries is non-portable.
  5726  	    case " $dlpreconveniencelibs " in
  5727  	    *" $deplib "*) ;;
  5728  	    *)
  5729  	      valid_a_lib=no
  5730  	      case $deplibs_check_method in
  5731  		match_pattern*)
  5732  		  set dummy $deplibs_check_method; shift
  5733  		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
  5734  		  if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
  5735  		    | $EGREP "$match_pattern_regex" > /dev/null; then
  5736  		    valid_a_lib=yes
  5737  		  fi
  5738  		;;
  5739  		pass_all)
  5740  		  valid_a_lib=yes
  5741  		;;
  5742  	      esac
  5743  	      if test "$valid_a_lib" != yes; then
  5744  		$ECHO
  5745  		$ECHO "*** Warning: Trying to link with static lib archive $deplib."
  5746  		$ECHO "*** I have the capability to make that library automatically link in when"
  5747  		$ECHO "*** you link to this library.  But I can only do this if you have a"
  5748  		$ECHO "*** shared version of the library, which you do not appear to have"
  5749  		$ECHO "*** because the file extensions .$libext of this argument makes me believe"
  5750  		$ECHO "*** that it is just a static archive that I should not use here."
  5751  	      else
  5752  		$ECHO
  5753  		$ECHO "*** Warning: Linking the shared library $output against the"
  5754  		$ECHO "*** static library $deplib is not portable!"
  5755  		deplibs="$deplib $deplibs"
  5756  	      fi
  5757  	      ;;
  5758  	    esac
  5759  	    continue
  5760  	    ;;
  5761  	  prog)
  5762  	    if test "$pass" != link; then
  5763  	      deplibs="$deplib $deplibs"
  5764  	    else
  5765  	      compile_deplibs="$deplib $compile_deplibs"
  5766  	      finalize_deplibs="$deplib $finalize_deplibs"
  5767  	    fi
  5768  	    continue
  5769  	    ;;
  5770  	  esac # linkmode
  5771  	  ;; # *.$libext
  5772  	*.lo | *.$objext)
  5773  	  if test "$pass" = conv; then
  5774  	    deplibs="$deplib $deplibs"
  5775  	  elif test "$linkmode" = prog; then
  5776  	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
  5777  	      # If there is no dlopen support or we're linking statically,
  5778  	      # we need to preload.
  5779  	      newdlprefiles="$newdlprefiles $deplib"
  5780  	      compile_deplibs="$deplib $compile_deplibs"
  5781  	      finalize_deplibs="$deplib $finalize_deplibs"
  5782  	    else
  5783  	      newdlfiles="$newdlfiles $deplib"
  5784  	    fi
  5785  	  fi
  5786  	  continue
  5787  	  ;;
  5788  	%DEPLIBS%)
  5789  	  alldeplibs=yes
  5790  	  continue
  5791  	  ;;
  5792  	esac # case $deplib
  5793  
  5794  	if test "$found" = yes || test -f "$lib"; then :
  5795  	else
  5796  	  func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
  5797  	fi
  5798  
  5799  	# Check to see that this really is a libtool archive.
  5800  	func_lalib_unsafe_p "$lib" \
  5801  	  || func_fatal_error "\`$lib' is not a valid libtool archive"
  5802  
  5803  	func_dirname "$lib" "" "."
  5804  	ladir="$func_dirname_result"
  5805  
  5806  	dlname=
  5807  	dlopen=
  5808  	dlpreopen=
  5809  	libdir=
  5810  	library_names=
  5811  	old_library=
  5812  	inherited_linker_flags=
  5813  	# If the library was installed with an old release of libtool,
  5814  	# it will not redefine variables installed, or shouldnotlink
  5815  	installed=yes
  5816  	shouldnotlink=no
  5817  	avoidtemprpath=
  5818  
  5819  
  5820  	# Read the .la file
  5821  	func_source "$lib"
  5822  
  5823  	# Convert "-framework foo" to "foo.ltframework"
  5824  	if test -n "$inherited_linker_flags"; then
  5825  	  tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
  5826  	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
  5827  	    case " $new_inherited_linker_flags " in
  5828  	      *" $tmp_inherited_linker_flag "*) ;;
  5829  	      *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
  5830  	    esac
  5831  	  done
  5832  	fi
  5833  	dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
  5834  	if test "$linkmode,$pass" = "lib,link" ||
  5835  	   test "$linkmode,$pass" = "prog,scan" ||
  5836  	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
  5837  	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
  5838  	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
  5839  	fi
  5840  
  5841  	if test "$pass" = conv; then
  5842  	  # Only check for convenience libraries
  5843  	  deplibs="$lib $deplibs"
  5844  	  if test -z "$libdir"; then
  5845  	    if test -z "$old_library"; then
  5846  	      func_fatal_error "cannot find name of link library for \`$lib'"
  5847  	    fi
  5848  	    # It is a libtool convenience library, so add in its objects.
  5849  	    convenience="$convenience $ladir/$objdir/$old_library"
  5850  	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
  5851  	    tmp_libs=
  5852  	    for deplib in $dependency_libs; do
  5853  	      deplibs="$deplib $deplibs"
  5854  	      if $opt_duplicate_deps ; then
  5855  		case "$tmp_libs " in
  5856  		*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
  5857  		esac
  5858  	      fi
  5859  	      tmp_libs="$tmp_libs $deplib"
  5860  	    done
  5861  	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
  5862  	    func_fatal_error "\`$lib' is not a convenience library"
  5863  	  fi
  5864  	  continue
  5865  	fi # $pass = conv
  5866  
  5867  
  5868  	# Get the name of the library we link against.
  5869  	linklib=
  5870  	for l in $old_library $library_names; do
  5871  	  linklib="$l"
  5872  	done
  5873  	if test -z "$linklib"; then
  5874  	  func_fatal_error "cannot find name of link library for \`$lib'"
  5875  	fi
  5876  
  5877  	# This library was specified with -dlopen.
  5878  	if test "$pass" = dlopen; then
  5879  	  if test -z "$libdir"; then
  5880  	    func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
  5881  	  fi
  5882  	  if test -z "$dlname" ||
  5883  	     test "$dlopen_support" != yes ||
  5884  	     test "$build_libtool_libs" = no; then
  5885  	    # If there is no dlname, no dlopen support or we're linking
  5886  	    # statically, we need to preload.  We also need to preload any
  5887  	    # dependent libraries so libltdl's deplib preloader doesn't
  5888  	    # bomb out in the load deplibs phase.
  5889  	    dlprefiles="$dlprefiles $lib $dependency_libs"
  5890  	  else
  5891  	    newdlfiles="$newdlfiles $lib"
  5892  	  fi
  5893  	  continue
  5894  	fi # $pass = dlopen
  5895  
  5896  	# We need an absolute path.
  5897  	case $ladir in
  5898  	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
  5899  	*)
  5900  	  abs_ladir=`cd "$ladir" && pwd`
  5901  	  if test -z "$abs_ladir"; then
  5902  	    func_warning "cannot determine absolute directory name of \`$ladir'"
  5903  	    func_warning "passing it literally to the linker, although it might fail"
  5904  	    abs_ladir="$ladir"
  5905  	  fi
  5906  	  ;;
  5907  	esac
  5908  	func_basename "$lib"
  5909  	laname="$func_basename_result"
  5910  
  5911  	# Find the relevant object directory and library name.
  5912  	if test "X$installed" = Xyes; then
  5913  	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
  5914  	    func_warning "library \`$lib' was moved."
  5915  	    dir="$ladir"
  5916  	    absdir="$abs_ladir"
  5917  	    libdir="$abs_ladir"
  5918  	  else
  5919  	    dir="$libdir"
  5920  	    absdir="$libdir"
  5921  	  fi
  5922  	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
  5923  	else
  5924  	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
  5925  	    dir="$ladir"
  5926  	    absdir="$abs_ladir"
  5927  	    # Remove this search path later
  5928  	    notinst_path="$notinst_path $abs_ladir"
  5929  	  else
  5930  	    dir="$ladir/$objdir"
  5931  	    absdir="$abs_ladir/$objdir"
  5932  	    # Remove this search path later
  5933  	    notinst_path="$notinst_path $abs_ladir"
  5934  	  fi
  5935  	fi # $installed = yes
  5936  	func_stripname 'lib' '.la' "$laname"
  5937  	name=$func_stripname_result
  5938  
  5939  	# This library was specified with -dlpreopen.
  5940  	if test "$pass" = dlpreopen; then
  5941  	  if test -z "$libdir" && test "$linkmode" = prog; then
  5942  	    func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
  5943  	  fi
  5944  	  # Prefer using a static library (so that no silly _DYNAMIC symbols
  5945  	  # are required to link).
  5946  	  if test -n "$old_library"; then
  5947  	    newdlprefiles="$newdlprefiles $dir/$old_library"
  5948  	    # Keep a list of preopened convenience libraries to check
  5949  	    # that they are being used correctly in the link pass.
  5950  	    test -z "$libdir" && \
  5951  		dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
  5952  	  # Otherwise, use the dlname, so that lt_dlopen finds it.
  5953  	  elif test -n "$dlname"; then
  5954  	    newdlprefiles="$newdlprefiles $dir/$dlname"
  5955  	  else
  5956  	    newdlprefiles="$newdlprefiles $dir/$linklib"
  5957  	  fi
  5958  	fi # $pass = dlpreopen
  5959  
  5960  	if test -z "$libdir"; then
  5961  	  # Link the convenience library
  5962  	  if test "$linkmode" = lib; then
  5963  	    deplibs="$dir/$old_library $deplibs"
  5964  	  elif test "$linkmode,$pass" = "prog,link"; then
  5965  	    compile_deplibs="$dir/$old_library $compile_deplibs"
  5966  	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
  5967  	  else
  5968  	    deplibs="$lib $deplibs" # used for prog,scan pass
  5969  	  fi
  5970  	  continue
  5971  	fi
  5972  
  5973  
  5974  	if test "$linkmode" = prog && test "$pass" != link; then
  5975  	  newlib_search_path="$newlib_search_path $ladir"
  5976  	  deplibs="$lib $deplibs"
  5977  
  5978  	  linkalldeplibs=no
  5979  	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
  5980  	     test "$build_libtool_libs" = no; then
  5981  	    linkalldeplibs=yes
  5982  	  fi
  5983  
  5984  	  tmp_libs=
  5985  	  for deplib in $dependency_libs; do
  5986  	    case $deplib in
  5987  	    -L*) func_stripname '-L' '' "$deplib"
  5988  	         newlib_search_path="$newlib_search_path $func_stripname_result"
  5989  		 ;;
  5990  	    esac
  5991  	    # Need to link against all dependency_libs?
  5992  	    if test "$linkalldeplibs" = yes; then
  5993  	      deplibs="$deplib $deplibs"
  5994  	    else
  5995  	      # Need to hardcode shared library paths
  5996  	      # or/and link against static libraries
  5997  	      newdependency_libs="$deplib $newdependency_libs"
  5998  	    fi
  5999  	    if $opt_duplicate_deps ; then
  6000  	      case "$tmp_libs " in
  6001  	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
  6002  	      esac
  6003  	    fi
  6004  	    tmp_libs="$tmp_libs $deplib"
  6005  	  done # for deplib
  6006  	  continue
  6007  	fi # $linkmode = prog...
  6008  
  6009  	if test "$linkmode,$pass" = "prog,link"; then
  6010  	  if test -n "$library_names" &&
  6011  	     { { test "$prefer_static_libs" = no ||
  6012  	         test "$prefer_static_libs,$installed" = "built,yes"; } ||
  6013  	       test -z "$old_library"; }; then
  6014  	    # We need to hardcode the library path
  6015  	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
  6016  	      # Make sure the rpath contains only unique directories.
  6017  	      case "$temp_rpath:" in
  6018  	      *"$absdir:"*) ;;
  6019  	      *) temp_rpath="$temp_rpath$absdir:" ;;
  6020  	      esac
  6021  	    fi
  6022  
  6023  	    # Hardcode the library path.
  6024  	    # Skip directories that are in the system default run-time
  6025  	    # search path.
  6026  	    case " $sys_lib_dlsearch_path " in
  6027  	    *" $absdir "*) ;;
  6028  	    *)
  6029  	      case "$compile_rpath " in
  6030  	      *" $absdir "*) ;;
  6031  	      *) compile_rpath="$compile_rpath $absdir"
  6032  	      esac
  6033  	      ;;
  6034  	    esac
  6035  	    case " $sys_lib_dlsearch_path " in
  6036  	    *" $libdir "*) ;;
  6037  	    *)
  6038  	      case "$finalize_rpath " in
  6039  	      *" $libdir "*) ;;
  6040  	      *) finalize_rpath="$finalize_rpath $libdir"
  6041  	      esac
  6042  	      ;;
  6043  	    esac
  6044  	  fi # $linkmode,$pass = prog,link...
  6045  
  6046  	  if test "$alldeplibs" = yes &&
  6047  	     { test "$deplibs_check_method" = pass_all ||
  6048  	       { test "$build_libtool_libs" = yes &&
  6049  		 test -n "$library_names"; }; }; then
  6050  	    # We only need to search for static libraries
  6051  	    continue
  6052  	  fi
  6053  	fi
  6054  
  6055  	link_static=no # Whether the deplib will be linked statically
  6056  	use_static_libs=$prefer_static_libs
  6057  	if test "$use_static_libs" = built && test "$installed" = yes; then
  6058  	  use_static_libs=no
  6059  	fi
  6060  	if test -n "$library_names" &&
  6061  	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
  6062  	  case $host in
  6063  	  *cygwin* | *mingw* | *cegcc*)
  6064  	      # No point in relinking DLLs because paths are not encoded
  6065  	      notinst_deplibs="$notinst_deplibs $lib"
  6066  	      need_relink=no
  6067  	    ;;
  6068  	  *)
  6069  	    if test "$installed" = no; then
  6070  	      notinst_deplibs="$notinst_deplibs $lib"
  6071  	      need_relink=yes
  6072  	    fi
  6073  	    ;;
  6074  	  esac
  6075  	  # This is a shared library
  6076  
  6077  	  # Warn about portability, can't link against -module's on some
  6078  	  # systems (darwin).  Don't bleat about dlopened modules though!
  6079  	  dlopenmodule=""
  6080  	  for dlpremoduletest in $dlprefiles; do
  6081  	    if test "X$dlpremoduletest" = "X$lib"; then
  6082  	      dlopenmodule="$dlpremoduletest"
  6083  	      break
  6084  	    fi
  6085  	  done
  6086  	  if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
  6087  	    $ECHO
  6088  	    if test "$linkmode" = prog; then
  6089  	      $ECHO "*** Warning: Linking the executable $output against the loadable module"
  6090  	    else
  6091  	      $ECHO "*** Warning: Linking the shared library $output against the loadable module"
  6092  	    fi
  6093  	    $ECHO "*** $linklib is not portable!"
  6094  	  fi
  6095  	  if test "$linkmode" = lib &&
  6096  	     test "$hardcode_into_libs" = yes; then
  6097  	    # Hardcode the library path.
  6098  	    # Skip directories that are in the system default run-time
  6099  	    # search path.
  6100  	    case " $sys_lib_dlsearch_path " in
  6101  	    *" $absdir "*) ;;
  6102  	    *)
  6103  	      case "$compile_rpath " in
  6104  	      *" $absdir "*) ;;
  6105  	      *) compile_rpath="$compile_rpath $absdir"
  6106  	      esac
  6107  	      ;;
  6108  	    esac
  6109  	    case " $sys_lib_dlsearch_path " in
  6110  	    *" $libdir "*) ;;
  6111  	    *)
  6112  	      case "$finalize_rpath " in
  6113  	      *" $libdir "*) ;;
  6114  	      *) finalize_rpath="$finalize_rpath $libdir"
  6115  	      esac
  6116  	      ;;
  6117  	    esac
  6118  	  fi
  6119  
  6120  	  if test -n "$old_archive_from_expsyms_cmds"; then
  6121  	    # figure out the soname
  6122  	    set dummy $library_names
  6123  	    shift
  6124  	    realname="$1"
  6125  	    shift
  6126  	    libname=`eval "\\$ECHO \"$libname_spec\""`
  6127  	    # use dlname if we got it. it's perfectly good, no?
  6128  	    if test -n "$dlname"; then
  6129  	      soname="$dlname"
  6130  	    elif test -n "$soname_spec"; then
  6131  	      # bleh windows
  6132  	      case $host in
  6133  	      *cygwin* | mingw* | *cegcc*)
  6134  	        func_arith $current - $age
  6135  		major=$func_arith_result
  6136  		versuffix="-$major"
  6137  		;;
  6138  	      esac
  6139  	      eval soname=\"$soname_spec\"
  6140  	    else
  6141  	      soname="$realname"
  6142  	    fi
  6143  
  6144  	    # Make a new name for the extract_expsyms_cmds to use
  6145  	    soroot="$soname"
  6146  	    func_basename "$soroot"
  6147  	    soname="$func_basename_result"
  6148  	    func_stripname 'lib' '.dll' "$soname"
  6149  	    newlib=libimp-$func_stripname_result.a
  6150  
  6151  	    # If the library has no export list, then create one now
  6152  	    if test -f "$output_objdir/$soname-def"; then :
  6153  	    else
  6154  	      func_verbose "extracting exported symbol list from \`$soname'"
  6155  	      func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
  6156  	    fi
  6157  
  6158  	    # Create $newlib
  6159  	    if test -f "$output_objdir/$newlib"; then :; else
  6160  	      func_verbose "generating import library for \`$soname'"
  6161  	      func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
  6162  	    fi
  6163  	    # make sure the library variables are pointing to the new library
  6164  	    dir=$output_objdir
  6165  	    linklib=$newlib
  6166  	  fi # test -n "$old_archive_from_expsyms_cmds"
  6167  
  6168  	  if test "$linkmode" = prog || test "$mode" != relink; then
  6169  	    add_shlibpath=
  6170  	    add_dir=
  6171  	    add=
  6172  	    lib_linked=yes
  6173  	    case $hardcode_action in
  6174  	    immediate | unsupported)
  6175  	      if test "$hardcode_direct" = no; then
  6176  		add="$dir/$linklib"
  6177  		case $host in
  6178  		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
  6179  		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
  6180  		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
  6181  		    *-*-unixware7*) add_dir="-L$dir" ;;
  6182  		  *-*-darwin* )
  6183  		    # if the lib is a (non-dlopened) module then we can not
  6184  		    # link against it, someone is ignoring the earlier warnings
  6185  		    if /usr/bin/file -L $add 2> /dev/null |
  6186  			 $GREP ": [^:]* bundle" >/dev/null ; then
  6187  		      if test "X$dlopenmodule" != "X$lib"; then
  6188  			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
  6189  			if test -z "$old_library" ; then
  6190  			  $ECHO
  6191  			  $ECHO "*** And there doesn't seem to be a static archive available"
  6192  			  $ECHO "*** The link will probably fail, sorry"
  6193  			else
  6194  			  add="$dir/$old_library"
  6195  			fi
  6196  		      elif test -n "$old_library"; then
  6197  			add="$dir/$old_library"
  6198  		      fi
  6199  		    fi
  6200  		esac
  6201  	      elif test "$hardcode_minus_L" = no; then
  6202  		case $host in
  6203  		*-*-sunos*) add_shlibpath="$dir" ;;
  6204  		esac
  6205  		add_dir="-L$dir"
  6206  		add="-l$name"
  6207  	      elif test "$hardcode_shlibpath_var" = no; then
  6208  		add_shlibpath="$dir"
  6209  		add="-l$name"
  6210  	      else
  6211  		lib_linked=no
  6212  	      fi
  6213  	      ;;
  6214  	    relink)
  6215  	      if test "$hardcode_direct" = yes &&
  6216  	         test "$hardcode_direct_absolute" = no; then
  6217  		add="$dir/$linklib"
  6218  	      elif test "$hardcode_minus_L" = yes; then
  6219  		add_dir="-L$dir"
  6220  		# Try looking first in the location we're being installed to.
  6221  		if test -n "$inst_prefix_dir"; then
  6222  		  case $libdir in
  6223  		    [\\/]*)
  6224  		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
  6225  		      ;;
  6226  		  esac
  6227  		fi
  6228  		add="-l$name"
  6229  	      elif test "$hardcode_shlibpath_var" = yes; then
  6230  		add_shlibpath="$dir"
  6231  		add="-l$name"
  6232  	      else
  6233  		lib_linked=no
  6234  	      fi
  6235  	      ;;
  6236  	    *) lib_linked=no ;;
  6237  	    esac
  6238  
  6239  	    if test "$lib_linked" != yes; then
  6240  	      func_fatal_configuration "unsupported hardcode properties"
  6241  	    fi
  6242  
  6243  	    if test -n "$add_shlibpath"; then
  6244  	      case :$compile_shlibpath: in
  6245  	      *":$add_shlibpath:"*) ;;
  6246  	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
  6247  	      esac
  6248  	    fi
  6249  	    if test "$linkmode" = prog; then
  6250  	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
  6251  	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
  6252  	    else
  6253  	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
  6254  	      test -n "$add" && deplibs="$add $deplibs"
  6255  	      if test "$hardcode_direct" != yes &&
  6256  		 test "$hardcode_minus_L" != yes &&
  6257  		 test "$hardcode_shlibpath_var" = yes; then
  6258  		case :$finalize_shlibpath: in
  6259  		*":$libdir:"*) ;;
  6260  		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
  6261  		esac
  6262  	      fi
  6263  	    fi
  6264  	  fi
  6265  
  6266  	  if test "$linkmode" = prog || test "$mode" = relink; then
  6267  	    add_shlibpath=
  6268  	    add_dir=
  6269  	    add=
  6270  	    # Finalize command for both is simple: just hardcode it.
  6271  	    if test "$hardcode_direct" = yes &&
  6272  	       test "$hardcode_direct_absolute" = no; then
  6273  	      add="$libdir/$linklib"
  6274  	    elif test "$hardcode_minus_L" = yes; then
  6275  	      add_dir="-L$libdir"
  6276  	      add="-l$name"
  6277  	    elif test "$hardcode_shlibpath_var" = yes; then
  6278  	      case :$finalize_shlibpath: in
  6279  	      *":$libdir:"*) ;;
  6280  	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
  6281  	      esac
  6282  	      add="-l$name"
  6283  	    elif test "$hardcode_automatic" = yes; then
  6284  	      if test -n "$inst_prefix_dir" &&
  6285  		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
  6286  		add="$inst_prefix_dir$libdir/$linklib"
  6287  	      else
  6288  		add="$libdir/$linklib"
  6289  	      fi
  6290  	    else
  6291  	      # We cannot seem to hardcode it, guess we'll fake it.
  6292  	      add_dir="-L$libdir"
  6293  	      # Try looking first in the location we're being installed to.
  6294  	      if test -n "$inst_prefix_dir"; then
  6295  		case $libdir in
  6296  		  [\\/]*)
  6297  		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
  6298  		    ;;
  6299  		esac
  6300  	      fi
  6301  	      add="-l$name"
  6302  	    fi
  6303  
  6304  	    if test "$linkmode" = prog; then
  6305  	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
  6306  	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
  6307  	    else
  6308  	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
  6309  	      test -n "$add" && deplibs="$add $deplibs"
  6310  	    fi
  6311  	  fi
  6312  	elif test "$linkmode" = prog; then
  6313  	  # Here we assume that one of hardcode_direct or hardcode_minus_L
  6314  	  # is not unsupported.  This is valid on all known static and
  6315  	  # shared platforms.
  6316  	  if test "$hardcode_direct" != unsupported; then
  6317  	    test -n "$old_library" && linklib="$old_library"
  6318  	    compile_deplibs="$dir/$linklib $compile_deplibs"
  6319  	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
  6320  	  else
  6321  	    compile_deplibs="-l$name -L$dir $compile_deplibs"
  6322  	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
  6323  	  fi
  6324  	elif test "$build_libtool_libs" = yes; then
  6325  	  # Not a shared library
  6326  	  if test "$deplibs_check_method" != pass_all; then
  6327  	    # We're trying link a shared library against a static one
  6328  	    # but the system doesn't support it.
  6329  
  6330  	    # Just print a warning and add the library to dependency_libs so
  6331  	    # that the program can be linked against the static library.
  6332  	    $ECHO
  6333  	    $ECHO "*** Warning: This system can not link to static lib archive $lib."
  6334  	    $ECHO "*** I have the capability to make that library automatically link in when"
  6335  	    $ECHO "*** you link to this library.  But I can only do this if you have a"
  6336  	    $ECHO "*** shared version of the library, which you do not appear to have."
  6337  	    if test "$module" = yes; then
  6338  	      $ECHO "*** But as you try to build a module library, libtool will still create "
  6339  	      $ECHO "*** a static module, that should work as long as the dlopening application"
  6340  	      $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
  6341  	      if test -z "$global_symbol_pipe"; then
  6342  		$ECHO
  6343  		$ECHO "*** However, this would only work if libtool was able to extract symbol"
  6344  		$ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
  6345  		$ECHO "*** not find such a program.  So, this module is probably useless."
  6346  		$ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
  6347  	      fi
  6348  	      if test "$build_old_libs" = no; then
  6349  		build_libtool_libs=module
  6350  		build_old_libs=yes
  6351  	      else
  6352  		build_libtool_libs=no
  6353  	      fi
  6354  	    fi
  6355  	  else
  6356  	    deplibs="$dir/$old_library $deplibs"
  6357  	    link_static=yes
  6358  	  fi
  6359  	fi # link shared/static library?
  6360  
  6361  	if test "$linkmode" = lib; then
  6362  	  if test -n "$dependency_libs" &&
  6363  	     { test "$hardcode_into_libs" != yes ||
  6364  	       test "$build_old_libs" = yes ||
  6365  	       test "$link_static" = yes; }; then
  6366  	    # Extract -R from dependency_libs
  6367  	    temp_deplibs=
  6368  	    for libdir in $dependency_libs; do
  6369  	      case $libdir in
  6370  	      -R*) func_stripname '-R' '' "$libdir"
  6371  	           temp_xrpath=$func_stripname_result
  6372  		   case " $xrpath " in
  6373  		   *" $temp_xrpath "*) ;;
  6374  		   *) xrpath="$xrpath $temp_xrpath";;
  6375  		   esac;;
  6376  	      *) temp_deplibs="$temp_deplibs $libdir";;
  6377  	      esac
  6378  	    done
  6379  	    dependency_libs="$temp_deplibs"
  6380  	  fi
  6381  
  6382  	  newlib_search_path="$newlib_search_path $absdir"
  6383  	  # Link against this library
  6384  	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
  6385  	  # ... and its dependency_libs
  6386  	  tmp_libs=
  6387  	  for deplib in $dependency_libs; do
  6388  	    newdependency_libs="$deplib $newdependency_libs"
  6389  	    if $opt_duplicate_deps ; then
  6390  	      case "$tmp_libs " in
  6391  	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
  6392  	      esac
  6393  	    fi
  6394  	    tmp_libs="$tmp_libs $deplib"
  6395  	  done
  6396  
  6397  	  if test "$link_all_deplibs" != no; then
  6398  	    # Add the search paths of all dependency libraries
  6399  	    for deplib in $dependency_libs; do
  6400  	      path=
  6401  	      case $deplib in
  6402  	      -L*) path="$deplib" ;;
  6403  	      *.la)
  6404  	        func_dirname "$deplib" "" "."
  6405  		dir="$func_dirname_result"
  6406  		# We need an absolute path.
  6407  		case $dir in
  6408  		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
  6409  		*)
  6410  		  absdir=`cd "$dir" && pwd`
  6411  		  if test -z "$absdir"; then
  6412  		    func_warning "cannot determine absolute directory name of \`$dir'"
  6413  		    absdir="$dir"
  6414  		  fi
  6415  		  ;;
  6416  		esac
  6417  		if $GREP "^installed=no" $deplib > /dev/null; then
  6418  		case $host in
  6419  		*-*-darwin*)
  6420  		  depdepl=
  6421  		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
  6422  		  if test -n "$deplibrary_names" ; then
  6423  		    for tmp in $deplibrary_names ; do
  6424  		      depdepl=$tmp
  6425  		    done
  6426  		    if test -f "$absdir/$objdir/$depdepl" ; then
  6427  		      depdepl="$absdir/$objdir/$depdepl"
  6428  		      darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
  6429                        if test -z "$darwin_install_name"; then
  6430                            darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
  6431                        fi
  6432  		      compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
  6433  		      linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
  6434  		      path=
  6435  		    fi
  6436  		  fi
  6437  		  ;;
  6438  		*)
  6439  		  path="-L$absdir/$objdir"
  6440  		  ;;
  6441  		esac
  6442  		else
  6443  		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
  6444  		  test -z "$libdir" && \
  6445  		    func_fatal_error "\`$deplib' is not a valid libtool archive"
  6446  		  test "$absdir" != "$libdir" && \
  6447  		    func_warning "\`$deplib' seems to be moved"
  6448  
  6449  		  path="-L$absdir"
  6450  		fi
  6451  		;;
  6452  	      esac
  6453  	      case " $deplibs " in
  6454  	      *" $path "*) ;;
  6455  	      *) deplibs="$path $deplibs" ;;
  6456  	      esac
  6457  	    done
  6458  	  fi # link_all_deplibs != no
  6459  	fi # linkmode = lib
  6460        done # for deplib in $libs
  6461        if test "$pass" = link; then
  6462  	if test "$linkmode" = "prog"; then
  6463  	  compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
  6464  	  finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
  6465  	else
  6466  	  compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
  6467  	fi
  6468        fi
  6469        dependency_libs="$newdependency_libs"
  6470        if test "$pass" = dlpreopen; then
  6471  	# Link the dlpreopened libraries before other libraries
  6472  	for deplib in $save_deplibs; do
  6473  	  deplibs="$deplib $deplibs"
  6474  	done
  6475        fi
  6476        if test "$pass" != dlopen; then
  6477  	if test "$pass" != conv; then
  6478  	  # Make sure lib_search_path contains only unique directories.
  6479  	  lib_search_path=
  6480  	  for dir in $newlib_search_path; do
  6481  	    case "$lib_search_path " in
  6482  	    *" $dir "*) ;;
  6483  	    *) lib_search_path="$lib_search_path $dir" ;;
  6484  	    esac
  6485  	  done
  6486  	  newlib_search_path=
  6487  	fi
  6488  
  6489  	if test "$linkmode,$pass" != "prog,link"; then
  6490  	  vars="deplibs"
  6491  	else
  6492  	  vars="compile_deplibs finalize_deplibs"
  6493  	fi
  6494  	for var in $vars dependency_libs; do
  6495  	  # Add libraries to $var in reverse order
  6496  	  eval tmp_libs=\"\$$var\"
  6497  	  new_libs=
  6498  	  for deplib in $tmp_libs; do
  6499  	    # FIXME: Pedantically, this is the right thing to do, so
  6500  	    #        that some nasty dependency loop isn't accidentally
  6501  	    #        broken:
  6502  	    #new_libs="$deplib $new_libs"
  6503  	    # Pragmatically, this seems to cause very few problems in
  6504  	    # practice:
  6505  	    case $deplib in
  6506  	    -L*) new_libs="$deplib $new_libs" ;;
  6507  	    -R*) ;;
  6508  	    *)
  6509  	      # And here is the reason: when a library appears more
  6510  	      # than once as an explicit dependence of a library, or
  6511  	      # is implicitly linked in more than once by the
  6512  	      # compiler, it is considered special, and multiple
  6513  	      # occurrences thereof are not removed.  Compare this
  6514  	      # with having the same library being listed as a
  6515  	      # dependency of multiple other libraries: in this case,
  6516  	      # we know (pedantically, we assume) the library does not
  6517  	      # need to be listed more than once, so we keep only the
  6518  	      # last copy.  This is not always right, but it is rare
  6519  	      # enough that we require users that really mean to play
  6520  	      # such unportable linking tricks to link the library
  6521  	      # using -Wl,-lname, so that libtool does not consider it
  6522  	      # for duplicate removal.
  6523  	      case " $specialdeplibs " in
  6524  	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
  6525  	      *)
  6526  		case " $new_libs " in
  6527  		*" $deplib "*) ;;
  6528  		*) new_libs="$deplib $new_libs" ;;
  6529  		esac
  6530  		;;
  6531  	      esac
  6532  	      ;;
  6533  	    esac
  6534  	  done
  6535  	  tmp_libs=
  6536  	  for deplib in $new_libs; do
  6537  	    case $deplib in
  6538  	    -L*)
  6539  	      case " $tmp_libs " in
  6540  	      *" $deplib "*) ;;
  6541  	      *) tmp_libs="$tmp_libs $deplib" ;;
  6542  	      esac
  6543  	      ;;
  6544  	    *) tmp_libs="$tmp_libs $deplib" ;;
  6545  	    esac
  6546  	  done
  6547  	  eval $var=\"$tmp_libs\"
  6548  	done # for var
  6549        fi
  6550        # Last step: remove runtime libs from dependency_libs
  6551        # (they stay in deplibs)
  6552        tmp_libs=
  6553        for i in $dependency_libs ; do
  6554  	case " $predeps $postdeps $compiler_lib_search_path " in
  6555  	*" $i "*)
  6556  	  i=""
  6557  	  ;;
  6558  	esac
  6559  	if test -n "$i" ; then
  6560  	  tmp_libs="$tmp_libs $i"
  6561  	fi
  6562        done
  6563        dependency_libs=$tmp_libs
  6564      done # for pass
  6565      if test "$linkmode" = prog; then
  6566        dlfiles="$newdlfiles"
  6567      fi
  6568      if test "$linkmode" = prog || test "$linkmode" = lib; then
  6569        dlprefiles="$newdlprefiles"
  6570      fi
  6571  
  6572      case $linkmode in
  6573      oldlib)
  6574        if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
  6575  	func_warning "\`-dlopen' is ignored for archives"
  6576        fi
  6577  
  6578        case " $deplibs" in
  6579        *\ -l* | *\ -L*)
  6580  	func_warning "\`-l' and \`-L' are ignored for archives" ;;
  6581        esac
  6582  
  6583        test -n "$rpath" && \
  6584  	func_warning "\`-rpath' is ignored for archives"
  6585  
  6586        test -n "$xrpath" && \
  6587  	func_warning "\`-R' is ignored for archives"
  6588  
  6589        test -n "$vinfo" && \
  6590  	func_warning "\`-version-info/-version-number' is ignored for archives"
  6591  
  6592        test -n "$release" && \
  6593  	func_warning "\`-release' is ignored for archives"
  6594  
  6595        test -n "$export_symbols$export_symbols_regex" && \
  6596  	func_warning "\`-export-symbols' is ignored for archives"
  6597  
  6598        # Now set the variables for building old libraries.
  6599        build_libtool_libs=no
  6600        oldlibs="$output"
  6601        objs="$objs$old_deplibs"
  6602        ;;
  6603  
  6604      lib)
  6605        # Make sure we only generate libraries of the form `libNAME.la'.
  6606        case $outputname in
  6607        lib*)
  6608  	func_stripname 'lib' '.la' "$outputname"
  6609  	name=$func_stripname_result
  6610  	eval shared_ext=\"$shrext_cmds\"
  6611  	eval libname=\"$libname_spec\"
  6612  	;;
  6613        *)
  6614  	test "$module" = no && \
  6615  	  func_fatal_help "libtool library \`$output' must begin with \`lib'"
  6616  
  6617  	if test "$need_lib_prefix" != no; then
  6618  	  # Add the "lib" prefix for modules if required
  6619  	  func_stripname '' '.la' "$outputname"
  6620  	  name=$func_stripname_result
  6621  	  eval shared_ext=\"$shrext_cmds\"
  6622  	  eval libname=\"$libname_spec\"
  6623  	else
  6624  	  func_stripname '' '.la' "$outputname"
  6625  	  libname=$func_stripname_result
  6626  	fi
  6627  	;;
  6628        esac
  6629  
  6630        if test -n "$objs"; then
  6631  	if test "$deplibs_check_method" != pass_all; then
  6632  	  func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
  6633  	else
  6634  	  $ECHO
  6635  	  $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
  6636  	  $ECHO "*** objects $objs is not portable!"
  6637  	  libobjs="$libobjs $objs"
  6638  	fi
  6639        fi
  6640  
  6641        test "$dlself" != no && \
  6642  	func_warning "\`-dlopen self' is ignored for libtool libraries"
  6643  
  6644        set dummy $rpath
  6645        shift
  6646        test "$#" -gt 1 && \
  6647  	func_warning "ignoring multiple \`-rpath's for a libtool library"
  6648  
  6649        install_libdir="$1"
  6650  
  6651        oldlibs=
  6652        if test -z "$rpath"; then
  6653  	if test "$build_libtool_libs" = yes; then
  6654  	  # Building a libtool convenience library.
  6655  	  # Some compilers have problems with a `.al' extension so
  6656  	  # convenience libraries should have the same extension an
  6657  	  # archive normally would.
  6658  	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
  6659  	  build_libtool_libs=convenience
  6660  	  build_old_libs=yes
  6661  	fi
  6662  
  6663  	test -n "$vinfo" && \
  6664  	  func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
  6665  
  6666  	test -n "$release" && \
  6667  	  func_warning "\`-release' is ignored for convenience libraries"
  6668        else
  6669  
  6670  	# Parse the version information argument.
  6671  	save_ifs="$IFS"; IFS=':'
  6672  	set dummy $vinfo 0 0 0
  6673  	shift
  6674  	IFS="$save_ifs"
  6675  
  6676  	test -n "$7" && \
  6677  	  func_fatal_help "too many parameters to \`-version-info'"
  6678  
  6679  	# convert absolute version numbers to libtool ages
  6680  	# this retains compatibility with .la files and attempts
  6681  	# to make the code below a bit more comprehensible
  6682  
  6683  	case $vinfo_number in
  6684  	yes)
  6685  	  number_major="$1"
  6686  	  number_minor="$2"
  6687  	  number_revision="$3"
  6688  	  #
  6689  	  # There are really only two kinds -- those that
  6690  	  # use the current revision as the major version
  6691  	  # and those that subtract age and use age as
  6692  	  # a minor version.  But, then there is irix
  6693  	  # which has an extra 1 added just for fun
  6694  	  #
  6695  	  case $version_type in
  6696  	  darwin|linux|osf|windows|none)
  6697  	    func_arith $number_major + $number_minor
  6698  	    current=$func_arith_result
  6699  	    age="$number_minor"
  6700  	    revision="$number_revision"
  6701  	    ;;
  6702  	  freebsd-aout|freebsd-elf|sunos)
  6703  	    current="$number_major"
  6704  	    revision="$number_minor"
  6705  	    age="0"
  6706  	    ;;
  6707  	  irix|nonstopux)
  6708  	    func_arith $number_major + $number_minor
  6709  	    current=$func_arith_result
  6710  	    age="$number_minor"
  6711  	    revision="$number_minor"
  6712  	    lt_irix_increment=no
  6713  	    ;;
  6714  	  *)
  6715  	    func_fatal_configuration "$modename: unknown library version type \`$version_type'"
  6716  	    ;;
  6717  	  esac
  6718  	  ;;
  6719  	no)
  6720  	  current="$1"
  6721  	  revision="$2"
  6722  	  age="$3"
  6723  	  ;;
  6724  	esac
  6725  
  6726  	# Check that each of the things are valid numbers.
  6727  	case $current in
  6728  	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
  6729  	*)
  6730  	  func_error "CURRENT \`$current' must be a nonnegative integer"
  6731  	  func_fatal_error "\`$vinfo' is not valid version information"
  6732  	  ;;
  6733  	esac
  6734  
  6735  	case $revision in
  6736  	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
  6737  	*)
  6738  	  func_error "REVISION \`$revision' must be a nonnegative integer"
  6739  	  func_fatal_error "\`$vinfo' is not valid version information"
  6740  	  ;;
  6741  	esac
  6742  
  6743  	case $age in
  6744  	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
  6745  	*)
  6746  	  func_error "AGE \`$age' must be a nonnegative integer"
  6747  	  func_fatal_error "\`$vinfo' is not valid version information"
  6748  	  ;;
  6749  	esac
  6750  
  6751  	if test "$age" -gt "$current"; then
  6752  	  func_error "AGE \`$age' is greater than the current interface number \`$current'"
  6753  	  func_fatal_error "\`$vinfo' is not valid version information"
  6754  	fi
  6755  
  6756  	# Calculate the version variables.
  6757  	major=
  6758  	versuffix=
  6759  	verstring=
  6760  	case $version_type in
  6761  	none) ;;
  6762  
  6763  	darwin)
  6764  	  # Like Linux, but with the current version available in
  6765  	  # verstring for coding it into the library header
  6766  	  func_arith $current - $age
  6767  	  major=.$func_arith_result
  6768  	  versuffix="$major.$age.$revision"
  6769  	  # Darwin ld doesn't like 0 for these options...
  6770  	  func_arith $current + 1
  6771  	  minor_current=$func_arith_result
  6772  	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
  6773  	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
  6774  	  ;;
  6775  
  6776  	freebsd-aout)
  6777  	  major=".$current"
  6778  	  versuffix=".$current.$revision";
  6779  	  ;;
  6780  
  6781  	freebsd-elf)
  6782  	  major=".$current"
  6783  	  versuffix=".$current"
  6784  	  ;;
  6785  
  6786  	irix | nonstopux)
  6787  	  if test "X$lt_irix_increment" = "Xno"; then
  6788  	    func_arith $current - $age
  6789  	  else
  6790  	    func_arith $current - $age + 1
  6791  	  fi
  6792  	  major=$func_arith_result
  6793  
  6794  	  case $version_type in
  6795  	    nonstopux) verstring_prefix=nonstopux ;;
  6796  	    *)         verstring_prefix=sgi ;;
  6797  	  esac
  6798  	  verstring="$verstring_prefix$major.$revision"
  6799  
  6800  	  # Add in all the interfaces that we are compatible with.
  6801  	  loop=$revision
  6802  	  while test "$loop" -ne 0; do
  6803  	    func_arith $revision - $loop
  6804  	    iface=$func_arith_result
  6805  	    func_arith $loop - 1
  6806  	    loop=$func_arith_result
  6807  	    verstring="$verstring_prefix$major.$iface:$verstring"
  6808  	  done
  6809  
  6810  	  # Before this point, $major must not contain `.'.
  6811  	  major=.$major
  6812  	  versuffix="$major.$revision"
  6813  	  ;;
  6814  
  6815  	linux)
  6816  	  func_arith $current - $age
  6817  	  major=.$func_arith_result
  6818  	  versuffix="$major.$age.$revision"
  6819  	  ;;
  6820  
  6821  	osf)
  6822  	  func_arith $current - $age
  6823  	  major=.$func_arith_result
  6824  	  versuffix=".$current.$age.$revision"
  6825  	  verstring="$current.$age.$revision"
  6826  
  6827  	  # Add in all the interfaces that we are compatible with.
  6828  	  loop=$age
  6829  	  while test "$loop" -ne 0; do
  6830  	    func_arith $current - $loop
  6831  	    iface=$func_arith_result
  6832  	    func_arith $loop - 1
  6833  	    loop=$func_arith_result
  6834  	    verstring="$verstring:${iface}.0"
  6835  	  done
  6836  
  6837  	  # Make executables depend on our current version.
  6838  	  verstring="$verstring:${current}.0"
  6839  	  ;;
  6840  
  6841  	qnx)
  6842  	  major=".$current"
  6843  	  versuffix=".$current"
  6844  	  ;;
  6845  
  6846  	sunos)
  6847  	  major=".$current"
  6848  	  versuffix=".$current.$revision"
  6849  	  ;;
  6850  
  6851  	windows)
  6852  	  # Use '-' rather than '.', since we only want one
  6853  	  # extension on DOS 8.3 filesystems.
  6854  	  func_arith $current - $age
  6855  	  major=$func_arith_result
  6856  	  versuffix="-$major"
  6857  	  ;;
  6858  
  6859  	*)
  6860  	  func_fatal_configuration "unknown library version type \`$version_type'"
  6861  	  ;;
  6862  	esac
  6863  
  6864  	# Clear the version info if we defaulted, and they specified a release.
  6865  	if test -z "$vinfo" && test -n "$release"; then
  6866  	  major=
  6867  	  case $version_type in
  6868  	  darwin)
  6869  	    # we can't check for "0.0" in archive_cmds due to quoting
  6870  	    # problems, so we reset it completely
  6871  	    verstring=
  6872  	    ;;
  6873  	  *)
  6874  	    verstring="0.0"
  6875  	    ;;
  6876  	  esac
  6877  	  if test "$need_version" = no; then
  6878  	    versuffix=
  6879  	  else
  6880  	    versuffix=".0.0"
  6881  	  fi
  6882  	fi
  6883  
  6884  	# Remove version info from name if versioning should be avoided
  6885  	if test "$avoid_version" = yes && test "$need_version" = no; then
  6886  	  major=
  6887  	  versuffix=
  6888  	  verstring=""
  6889  	fi
  6890  
  6891  	# Check to see if the archive will have undefined symbols.
  6892  	if test "$allow_undefined" = yes; then
  6893  	  if test "$allow_undefined_flag" = unsupported; then
  6894  	    func_warning "undefined symbols not allowed in $host shared libraries"
  6895  	    build_libtool_libs=no
  6896  	    build_old_libs=yes
  6897  	  fi
  6898  	else
  6899  	  # Don't allow undefined symbols.
  6900  	  allow_undefined_flag="$no_undefined_flag"
  6901  	fi
  6902  
  6903        fi
  6904  
  6905        func_generate_dlsyms "$libname" "$libname" "yes"
  6906        libobjs="$libobjs $symfileobj"
  6907        test "X$libobjs" = "X " && libobjs=
  6908  
  6909        if test "$mode" != relink; then
  6910  	# Remove our outputs, but don't remove object files since they
  6911  	# may have been created when compiling PIC objects.
  6912  	removelist=
  6913  	tempremovelist=`$ECHO "$output_objdir/*"`
  6914  	for p in $tempremovelist; do
  6915  	  case $p in
  6916  	    *.$objext | *.gcno)
  6917  	       ;;
  6918  	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
  6919  	       if test "X$precious_files_regex" != "X"; then
  6920  		 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
  6921  		 then
  6922  		   continue
  6923  		 fi
  6924  	       fi
  6925  	       removelist="$removelist $p"
  6926  	       ;;
  6927  	    *) ;;
  6928  	  esac
  6929  	done
  6930  	test -n "$removelist" && \
  6931  	  func_show_eval "${RM}r \$removelist"
  6932        fi
  6933  
  6934        # Now set the variables for building old libraries.
  6935        if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
  6936  	oldlibs="$oldlibs $output_objdir/$libname.$libext"
  6937  
  6938  	# Transform .lo files to .o files.
  6939  	oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
  6940        fi
  6941  
  6942        # Eliminate all temporary directories.
  6943        #for path in $notinst_path; do
  6944        #	lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
  6945        #	deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
  6946        #	dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
  6947        #done
  6948  
  6949        if test -n "$xrpath"; then
  6950  	# If the user specified any rpath flags, then add them.
  6951  	temp_xrpath=
  6952  	for libdir in $xrpath; do
  6953  	  temp_xrpath="$temp_xrpath -R$libdir"
  6954  	  case "$finalize_rpath " in
  6955  	  *" $libdir "*) ;;
  6956  	  *) finalize_rpath="$finalize_rpath $libdir" ;;
  6957  	  esac
  6958  	done
  6959  	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
  6960  	  dependency_libs="$temp_xrpath $dependency_libs"
  6961  	fi
  6962        fi
  6963  
  6964        # Make sure dlfiles contains only unique files that won't be dlpreopened
  6965        old_dlfiles="$dlfiles"
  6966        dlfiles=
  6967        for lib in $old_dlfiles; do
  6968  	case " $dlprefiles $dlfiles " in
  6969  	*" $lib "*) ;;
  6970  	*) dlfiles="$dlfiles $lib" ;;
  6971  	esac
  6972        done
  6973  
  6974        # Make sure dlprefiles contains only unique files
  6975        old_dlprefiles="$dlprefiles"
  6976        dlprefiles=
  6977        for lib in $old_dlprefiles; do
  6978  	case "$dlprefiles " in
  6979  	*" $lib "*) ;;
  6980  	*) dlprefiles="$dlprefiles $lib" ;;
  6981  	esac
  6982        done
  6983  
  6984        if test "$build_libtool_libs" = yes; then
  6985  	if test -n "$rpath"; then
  6986  	  case $host in
  6987  	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)
  6988  	    # these systems don't actually have a c library (as such)!
  6989  	    ;;
  6990  	  *-*-rhapsody* | *-*-darwin1.[012])
  6991  	    # Rhapsody C library is in the System framework
  6992  	    deplibs="$deplibs System.ltframework"
  6993  	    ;;
  6994  	  *-*-netbsd*)
  6995  	    # Don't link with libc until the a.out ld.so is fixed.
  6996  	    ;;
  6997  	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
  6998  	    # Do not include libc due to us having libc/libc_r.
  6999  	    ;;
  7000  	  *-*-sco3.2v5* | *-*-sco5v6*)
  7001  	    # Causes problems with __ctype
  7002  	    ;;
  7003  	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
  7004  	    # Compiler inserts libc in the correct place for threads to work
  7005  	    ;;
  7006  	  *)
  7007  	    # Add libc to deplibs on all other systems if necessary.
  7008  	    if test "$build_libtool_need_lc" = "yes"; then
  7009  	      deplibs="$deplibs -lc"
  7010  	    fi
  7011  	    ;;
  7012  	  esac
  7013  	fi
  7014  
  7015  	# Transform deplibs into only deplibs that can be linked in shared.
  7016  	name_save=$name
  7017  	libname_save=$libname
  7018  	release_save=$release
  7019  	versuffix_save=$versuffix
  7020  	major_save=$major
  7021  	# I'm not sure if I'm treating the release correctly.  I think
  7022  	# release should show up in the -l (ie -lgmp5) so we don't want to
  7023  	# add it in twice.  Is that correct?
  7024  	release=""
  7025  	versuffix=""
  7026  	major=""
  7027  	newdeplibs=
  7028  	droppeddeps=no
  7029  	case $deplibs_check_method in
  7030  	pass_all)
  7031  	  # Don't check for shared/static.  Everything works.
  7032  	  # This might be a little naive.  We might want to check
  7033  	  # whether the library exists or not.  But this is on
  7034  	  # osf3 & osf4 and I'm not really sure... Just
  7035  	  # implementing what was already the behavior.
  7036  	  newdeplibs=$deplibs
  7037  	  ;;
  7038  	test_compile)
  7039  	  # This code stresses the "libraries are programs" paradigm to its
  7040  	  # limits. Maybe even breaks it.  We compile a program, linking it
  7041  	  # against the deplibs as a proxy for the library.  Then we can check
  7042  	  # whether they linked in statically or dynamically with ldd.
  7043  	  $opt_dry_run || $RM conftest.c
  7044  	  cat > conftest.c <<EOF
  7045  	  int main() { return 0; }
  7046  EOF
  7047  	  $opt_dry_run || $RM conftest
  7048  	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
  7049  	    ldd_output=`ldd conftest`
  7050  	    for i in $deplibs; do
  7051  	      case $i in
  7052  	      -l*)
  7053  		func_stripname -l '' "$i"
  7054  		name=$func_stripname_result
  7055  		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
  7056  		  case " $predeps $postdeps " in
  7057  		  *" $i "*)
  7058  		    newdeplibs="$newdeplibs $i"
  7059  		    i=""
  7060  		    ;;
  7061  		  esac
  7062  		fi
  7063  		if test -n "$i" ; then
  7064  		  libname=`eval "\\$ECHO \"$libname_spec\""`
  7065  		  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
  7066  		  set dummy $deplib_matches; shift
  7067  		  deplib_match=$1
  7068  		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
  7069  		    newdeplibs="$newdeplibs $i"
  7070  		  else
  7071  		    droppeddeps=yes
  7072  		    $ECHO
  7073  		    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
  7074  		    $ECHO "*** I have the capability to make that library automatically link in when"
  7075  		    $ECHO "*** you link to this library.  But I can only do this if you have a"
  7076  		    $ECHO "*** shared version of the library, which I believe you do not have"
  7077  		    $ECHO "*** because a test_compile did reveal that the linker did not use it for"
  7078  		    $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
  7079  		  fi
  7080  		fi
  7081  		;;
  7082  	      *)
  7083  		newdeplibs="$newdeplibs $i"
  7084  		;;
  7085  	      esac
  7086  	    done
  7087  	  else
  7088  	    # Error occurred in the first compile.  Let's try to salvage
  7089  	    # the situation: Compile a separate program for each library.
  7090  	    for i in $deplibs; do
  7091  	      case $i in
  7092  	      -l*)
  7093  		func_stripname -l '' "$i"
  7094  		name=$func_stripname_result
  7095  		$opt_dry_run || $RM conftest
  7096  		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
  7097  		  ldd_output=`ldd conftest`
  7098  		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
  7099  		    case " $predeps $postdeps " in
  7100  		    *" $i "*)
  7101  		      newdeplibs="$newdeplibs $i"
  7102  		      i=""
  7103  		      ;;
  7104  		    esac
  7105  		  fi
  7106  		  if test -n "$i" ; then
  7107  		    libname=`eval "\\$ECHO \"$libname_spec\""`
  7108  		    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
  7109  		    set dummy $deplib_matches; shift
  7110  		    deplib_match=$1
  7111  		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
  7112  		      newdeplibs="$newdeplibs $i"
  7113  		    else
  7114  		      droppeddeps=yes
  7115  		      $ECHO
  7116  		      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
  7117  		      $ECHO "*** I have the capability to make that library automatically link in when"
  7118  		      $ECHO "*** you link to this library.  But I can only do this if you have a"
  7119  		      $ECHO "*** shared version of the library, which you do not appear to have"
  7120  		      $ECHO "*** because a test_compile did reveal that the linker did not use this one"
  7121  		      $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
  7122  		    fi
  7123  		  fi
  7124  		else
  7125  		  droppeddeps=yes
  7126  		  $ECHO
  7127  		  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
  7128  		  $ECHO "*** make it link in!  You will probably need to install it or some"
  7129  		  $ECHO "*** library that it depends on before this library will be fully"
  7130  		  $ECHO "*** functional.  Installing it before continuing would be even better."
  7131  		fi
  7132  		;;
  7133  	      *)
  7134  		newdeplibs="$newdeplibs $i"
  7135  		;;
  7136  	      esac
  7137  	    done
  7138  	  fi
  7139  	  ;;
  7140  	file_magic*)
  7141  	  set dummy $deplibs_check_method; shift
  7142  	  file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
  7143  	  for a_deplib in $deplibs; do
  7144  	    case $a_deplib in
  7145  	    -l*)
  7146  	      func_stripname -l '' "$a_deplib"
  7147  	      name=$func_stripname_result
  7148  	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
  7149  		case " $predeps $postdeps " in
  7150  		*" $a_deplib "*)
  7151  		  newdeplibs="$newdeplibs $a_deplib"
  7152  		  a_deplib=""
  7153  		  ;;
  7154  		esac
  7155  	      fi
  7156  	      if test -n "$a_deplib" ; then
  7157  		libname=`eval "\\$ECHO \"$libname_spec\""`
  7158  		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
  7159  		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
  7160  		  for potent_lib in $potential_libs; do
  7161  		      # Follow soft links.
  7162  		      if ls -lLd "$potent_lib" 2>/dev/null |
  7163  			 $GREP " -> " >/dev/null; then
  7164  			continue
  7165  		      fi
  7166  		      # The statement above tries to avoid entering an
  7167  		      # endless loop below, in case of cyclic links.
  7168  		      # We might still enter an endless loop, since a link
  7169  		      # loop can be closed while we follow links,
  7170  		      # but so what?
  7171  		      potlib="$potent_lib"
  7172  		      while test -h "$potlib" 2>/dev/null; do
  7173  			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
  7174  			case $potliblink in
  7175  			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
  7176  			*) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
  7177  			esac
  7178  		      done
  7179  		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
  7180  			 $SED -e 10q |
  7181  			 $EGREP "$file_magic_regex" > /dev/null; then
  7182  			newdeplibs="$newdeplibs $a_deplib"
  7183  			a_deplib=""
  7184  			break 2
  7185  		      fi
  7186  		  done
  7187  		done
  7188  	      fi
  7189  	      if test -n "$a_deplib" ; then
  7190  		droppeddeps=yes
  7191  		$ECHO
  7192  		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
  7193  		$ECHO "*** I have the capability to make that library automatically link in when"
  7194  		$ECHO "*** you link to this library.  But I can only do this if you have a"
  7195  		$ECHO "*** shared version of the library, which you do not appear to have"
  7196  		$ECHO "*** because I did check the linker path looking for a file starting"
  7197  		if test -z "$potlib" ; then
  7198  		  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
  7199  		else
  7200  		  $ECHO "*** with $libname and none of the candidates passed a file format test"
  7201  		  $ECHO "*** using a file magic. Last file checked: $potlib"
  7202  		fi
  7203  	      fi
  7204  	      ;;
  7205  	    *)
  7206  	      # Add a -L argument.
  7207  	      newdeplibs="$newdeplibs $a_deplib"
  7208  	      ;;
  7209  	    esac
  7210  	  done # Gone through all deplibs.
  7211  	  ;;
  7212  	match_pattern*)
  7213  	  set dummy $deplibs_check_method; shift
  7214  	  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
  7215  	  for a_deplib in $deplibs; do
  7216  	    case $a_deplib in
  7217  	    -l*)
  7218  	      func_stripname -l '' "$a_deplib"
  7219  	      name=$func_stripname_result
  7220  	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
  7221  		case " $predeps $postdeps " in
  7222  		*" $a_deplib "*)
  7223  		  newdeplibs="$newdeplibs $a_deplib"
  7224  		  a_deplib=""
  7225  		  ;;
  7226  		esac
  7227  	      fi
  7228  	      if test -n "$a_deplib" ; then
  7229  		libname=`eval "\\$ECHO \"$libname_spec\""`
  7230  		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
  7231  		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
  7232  		  for potent_lib in $potential_libs; do
  7233  		    potlib="$potent_lib" # see symlink-check above in file_magic test
  7234  		    if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
  7235  		       $EGREP "$match_pattern_regex" > /dev/null; then
  7236  		      newdeplibs="$newdeplibs $a_deplib"
  7237  		      a_deplib=""
  7238  		      break 2
  7239  		    fi
  7240  		  done
  7241  		done
  7242  	      fi
  7243  	      if test -n "$a_deplib" ; then
  7244  		droppeddeps=yes
  7245  		$ECHO
  7246  		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
  7247  		$ECHO "*** I have the capability to make that library automatically link in when"
  7248  		$ECHO "*** you link to this library.  But I can only do this if you have a"
  7249  		$ECHO "*** shared version of the library, which you do not appear to have"
  7250  		$ECHO "*** because I did check the linker path looking for a file starting"
  7251  		if test -z "$potlib" ; then
  7252  		  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
  7253  		else
  7254  		  $ECHO "*** with $libname and none of the candidates passed a file format test"
  7255  		  $ECHO "*** using a regex pattern. Last file checked: $potlib"
  7256  		fi
  7257  	      fi
  7258  	      ;;
  7259  	    *)
  7260  	      # Add a -L argument.
  7261  	      newdeplibs="$newdeplibs $a_deplib"
  7262  	      ;;
  7263  	    esac
  7264  	  done # Gone through all deplibs.
  7265  	  ;;
  7266  	none | unknown | *)
  7267  	  newdeplibs=""
  7268  	  tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
  7269  	      -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
  7270  	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
  7271  	    for i in $predeps $postdeps ; do
  7272  	      # can't use Xsed below, because $i might contain '/'
  7273  	      tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
  7274  	    done
  7275  	  fi
  7276  	  if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[	 ]//g' |
  7277  	     $GREP . >/dev/null; then
  7278  	    $ECHO
  7279  	    if test "X$deplibs_check_method" = "Xnone"; then
  7280  	      $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
  7281  	    else
  7282  	      $ECHO "*** Warning: inter-library dependencies are not known to be supported."
  7283  	    fi
  7284  	    $ECHO "*** All declared inter-library dependencies are being dropped."
  7285  	    droppeddeps=yes
  7286  	  fi
  7287  	  ;;
  7288  	esac
  7289  	versuffix=$versuffix_save
  7290  	major=$major_save
  7291  	release=$release_save
  7292  	libname=$libname_save
  7293  	name=$name_save
  7294  
  7295  	case $host in
  7296  	*-*-rhapsody* | *-*-darwin1.[012])
  7297  	  # On Rhapsody replace the C library with the System framework
  7298  	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
  7299  	  ;;
  7300  	esac
  7301  
  7302  	if test "$droppeddeps" = yes; then
  7303  	  if test "$module" = yes; then
  7304  	    $ECHO
  7305  	    $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
  7306  	    $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
  7307  	    $ECHO "*** a static module, that should work as long as the dlopening"
  7308  	    $ECHO "*** application is linked with the -dlopen flag."
  7309  	    if test -z "$global_symbol_pipe"; then
  7310  	      $ECHO
  7311  	      $ECHO "*** However, this would only work if libtool was able to extract symbol"
  7312  	      $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
  7313  	      $ECHO "*** not find such a program.  So, this module is probably useless."
  7314  	      $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
  7315  	    fi
  7316  	    if test "$build_old_libs" = no; then
  7317  	      oldlibs="$output_objdir/$libname.$libext"
  7318  	      build_libtool_libs=module
  7319  	      build_old_libs=yes
  7320  	    else
  7321  	      build_libtool_libs=no
  7322  	    fi
  7323  	  else
  7324  	    $ECHO "*** The inter-library dependencies that have been dropped here will be"
  7325  	    $ECHO "*** automatically added whenever a program is linked with this library"
  7326  	    $ECHO "*** or is declared to -dlopen it."
  7327  
  7328  	    if test "$allow_undefined" = no; then
  7329  	      $ECHO
  7330  	      $ECHO "*** Since this library must not contain undefined symbols,"
  7331  	      $ECHO "*** because either the platform does not support them or"
  7332  	      $ECHO "*** it was explicitly requested with -no-undefined,"
  7333  	      $ECHO "*** libtool will only create a static version of it."
  7334  	      if test "$build_old_libs" = no; then
  7335  		oldlibs="$output_objdir/$libname.$libext"
  7336  		build_libtool_libs=module
  7337  		build_old_libs=yes
  7338  	      else
  7339  		build_libtool_libs=no
  7340  	      fi
  7341  	    fi
  7342  	  fi
  7343  	fi
  7344  	# Done checking deplibs!
  7345  	deplibs=$newdeplibs
  7346        fi
  7347        # Time to change all our "foo.ltframework" stuff back to "-framework foo"
  7348        case $host in
  7349  	*-*-darwin*)
  7350  	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
  7351  	  new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
  7352  	  deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
  7353  	  ;;
  7354        esac
  7355  
  7356        # move library search paths that coincide with paths to not yet
  7357        # installed libraries to the beginning of the library search list
  7358        new_libs=
  7359        for path in $notinst_path; do
  7360  	case " $new_libs " in
  7361  	*" -L$path/$objdir "*) ;;
  7362  	*)
  7363  	  case " $deplibs " in
  7364  	  *" -L$path/$objdir "*)
  7365  	    new_libs="$new_libs -L$path/$objdir" ;;
  7366  	  esac
  7367  	  ;;
  7368  	esac
  7369        done
  7370        for deplib in $deplibs; do
  7371  	case $deplib in
  7372  	-L*)
  7373  	  case " $new_libs " in
  7374  	  *" $deplib "*) ;;
  7375  	  *) new_libs="$new_libs $deplib" ;;
  7376  	  esac
  7377  	  ;;
  7378  	*) new_libs="$new_libs $deplib" ;;
  7379  	esac
  7380        done
  7381        deplibs="$new_libs"
  7382  
  7383        # All the library-specific variables (install_libdir is set above).
  7384        library_names=
  7385        old_library=
  7386        dlname=
  7387  
  7388        # Test again, we may have decided not to build it any more
  7389        if test "$build_libtool_libs" = yes; then
  7390  	if test "$hardcode_into_libs" = yes; then
  7391  	  # Hardcode the library paths
  7392  	  hardcode_libdirs=
  7393  	  dep_rpath=
  7394  	  rpath="$finalize_rpath"
  7395  	  test "$mode" != relink && rpath="$compile_rpath$rpath"
  7396  	  for libdir in $rpath; do
  7397  	    if test -n "$hardcode_libdir_flag_spec"; then
  7398  	      if test -n "$hardcode_libdir_separator"; then
  7399  		if test -z "$hardcode_libdirs"; then
  7400  		  hardcode_libdirs="$libdir"
  7401  		else
  7402  		  # Just accumulate the unique libdirs.
  7403  		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
  7404  		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
  7405  		    ;;
  7406  		  *)
  7407  		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
  7408  		    ;;
  7409  		  esac
  7410  		fi
  7411  	      else
  7412  		eval flag=\"$hardcode_libdir_flag_spec\"
  7413  		dep_rpath="$dep_rpath $flag"
  7414  	      fi
  7415  	    elif test -n "$runpath_var"; then
  7416  	      case "$perm_rpath " in
  7417  	      *" $libdir "*) ;;
  7418  	      *) perm_rpath="$perm_rpath $libdir" ;;
  7419  	      esac
  7420  	    fi
  7421  	  done
  7422  	  # Substitute the hardcoded libdirs into the rpath.
  7423  	  if test -n "$hardcode_libdir_separator" &&
  7424  	     test -n "$hardcode_libdirs"; then
  7425  	    libdir="$hardcode_libdirs"
  7426  	    if test -n "$hardcode_libdir_flag_spec_ld"; then
  7427  	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
  7428  	    else
  7429  	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
  7430  	    fi
  7431  	  fi
  7432  	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
  7433  	    # We should set the runpath_var.
  7434  	    rpath=
  7435  	    for dir in $perm_rpath; do
  7436  	      rpath="$rpath$dir:"
  7437  	    done
  7438  	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
  7439  	  fi
  7440  	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
  7441  	fi
  7442  
  7443  	shlibpath="$finalize_shlibpath"
  7444  	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
  7445  	if test -n "$shlibpath"; then
  7446  	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
  7447  	fi
  7448  
  7449  	# Get the real and link names of the library.
  7450  	eval shared_ext=\"$shrext_cmds\"
  7451  	eval library_names=\"$library_names_spec\"
  7452  	set dummy $library_names
  7453  	shift
  7454  	realname="$1"
  7455  	shift
  7456  
  7457  	if test -n "$soname_spec"; then
  7458  	  eval soname=\"$soname_spec\"
  7459  	else
  7460  	  soname="$realname"
  7461  	fi
  7462  	if test -z "$dlname"; then
  7463  	  dlname=$soname
  7464  	fi
  7465  
  7466  	lib="$output_objdir/$realname"
  7467  	linknames=
  7468  	for link
  7469  	do
  7470  	  linknames="$linknames $link"
  7471  	done
  7472  
  7473  	# Use standard objects if they are pic
  7474  	test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
  7475  	test "X$libobjs" = "X " && libobjs=
  7476  
  7477  	delfiles=
  7478  	if test -n "$export_symbols" && test -n "$include_expsyms"; then
  7479  	  $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
  7480  	  export_symbols="$output_objdir/$libname.uexp"
  7481  	  delfiles="$delfiles $export_symbols"
  7482  	fi
  7483  
  7484  	orig_export_symbols=
  7485  	case $host_os in
  7486  	cygwin* | mingw* | cegcc*)
  7487  	  if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
  7488  	    # exporting using user supplied symfile
  7489  	    if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
  7490  	      # and it's NOT already a .def file. Must figure out
  7491  	      # which of the given symbols are data symbols and tag
  7492  	      # them as such. So, trigger use of export_symbols_cmds.
  7493  	      # export_symbols gets reassigned inside the "prepare
  7494  	      # the list of exported symbols" if statement, so the
  7495  	      # include_expsyms logic still works.
  7496  	      orig_export_symbols="$export_symbols"
  7497  	      export_symbols=
  7498  	      always_export_symbols=yes
  7499  	    fi
  7500  	  fi
  7501  	  ;;
  7502  	esac
  7503  
  7504  	# Prepare the list of exported symbols
  7505  	if test -z "$export_symbols"; then
  7506  	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
  7507  	    func_verbose "generating symbol list for \`$libname.la'"
  7508  	    export_symbols="$output_objdir/$libname.exp"
  7509  	    $opt_dry_run || $RM $export_symbols
  7510  	    cmds=$export_symbols_cmds
  7511  	    save_ifs="$IFS"; IFS='~'
  7512  	    for cmd in $cmds; do
  7513  	      IFS="$save_ifs"
  7514  	      eval cmd=\"$cmd\"
  7515  	      func_len " $cmd"
  7516  	      len=$func_len_result
  7517  	      if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
  7518  		func_show_eval "$cmd" 'exit $?'
  7519  		skipped_export=false
  7520  	      else
  7521  		# The command line is too long to execute in one step.
  7522  		func_verbose "using reloadable object file for export list..."
  7523  		skipped_export=:
  7524  		# Break out early, otherwise skipped_export may be
  7525  		# set to false by a later but shorter cmd.
  7526  		break
  7527  	      fi
  7528  	    done
  7529  	    IFS="$save_ifs"
  7530  	    if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
  7531  	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
  7532  	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
  7533  	    fi
  7534  	  fi
  7535  	fi
  7536  
  7537  	if test -n "$export_symbols" && test -n "$include_expsyms"; then
  7538  	  tmp_export_symbols="$export_symbols"
  7539  	  test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
  7540  	  $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
  7541  	fi
  7542  
  7543  	if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
  7544  	  # The given exports_symbols file has to be filtered, so filter it.
  7545  	  func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
  7546  	  # FIXME: $output_objdir/$libname.filter potentially contains lots of
  7547  	  # 's' commands which not all seds can handle. GNU sed should be fine
  7548  	  # though. Also, the filter scales superlinearly with the number of
  7549  	  # global variables. join(1) would be nice here, but unfortunately
  7550  	  # isn't a blessed tool.
  7551  	  $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
  7552  	  delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
  7553  	  export_symbols=$output_objdir/$libname.def
  7554  	  $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
  7555  	fi
  7556  
  7557  	tmp_deplibs=
  7558  	for test_deplib in $deplibs; do
  7559  	  case " $convenience " in
  7560  	  *" $test_deplib "*) ;;
  7561  	  *)
  7562  	    tmp_deplibs="$tmp_deplibs $test_deplib"
  7563  	    ;;
  7564  	  esac
  7565  	done
  7566  	deplibs="$tmp_deplibs"
  7567  
  7568  	if test -n "$convenience"; then
  7569  	  if test -n "$whole_archive_flag_spec" &&
  7570  	    test "$compiler_needs_object" = yes &&
  7571  	    test -z "$libobjs"; then
  7572  	    # extract the archives, so we have objects to list.
  7573  	    # TODO: could optimize this to just extract one archive.
  7574  	    whole_archive_flag_spec=
  7575  	  fi
  7576  	  if test -n "$whole_archive_flag_spec"; then
  7577  	    save_libobjs=$libobjs
  7578  	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
  7579  	    test "X$libobjs" = "X " && libobjs=
  7580  	  else
  7581  	    gentop="$output_objdir/${outputname}x"
  7582  	    generated="$generated $gentop"
  7583  
  7584  	    func_extract_archives $gentop $convenience
  7585  	    libobjs="$libobjs $func_extract_archives_result"
  7586  	    test "X$libobjs" = "X " && libobjs=
  7587  	  fi
  7588  	fi
  7589  
  7590  	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
  7591  	  eval flag=\"$thread_safe_flag_spec\"
  7592  	  linker_flags="$linker_flags $flag"
  7593  	fi
  7594  
  7595  	# Make a backup of the uninstalled library when relinking
  7596  	if test "$mode" = relink; then
  7597  	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
  7598  	fi
  7599  
  7600  	# Do each of the archive commands.
  7601  	if test "$module" = yes && test -n "$module_cmds" ; then
  7602  	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
  7603  	    eval test_cmds=\"$module_expsym_cmds\"
  7604  	    cmds=$module_expsym_cmds
  7605  	  else
  7606  	    eval test_cmds=\"$module_cmds\"
  7607  	    cmds=$module_cmds
  7608  	  fi
  7609  	else
  7610  	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
  7611  	    eval test_cmds=\"$archive_expsym_cmds\"
  7612  	    cmds=$archive_expsym_cmds
  7613  	  else
  7614  	    eval test_cmds=\"$archive_cmds\"
  7615  	    cmds=$archive_cmds
  7616  	  fi
  7617  	fi
  7618  
  7619  	if test "X$skipped_export" != "X:" &&
  7620  	   func_len " $test_cmds" &&
  7621  	   len=$func_len_result &&
  7622  	   test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
  7623  	  :
  7624  	else
  7625  	  # The command line is too long to link in one step, link piecewise
  7626  	  # or, if using GNU ld and skipped_export is not :, use a linker
  7627  	  # script.
  7628  
  7629  	  # Save the value of $output and $libobjs because we want to
  7630  	  # use them later.  If we have whole_archive_flag_spec, we
  7631  	  # want to use save_libobjs as it was before
  7632  	  # whole_archive_flag_spec was expanded, because we can't
  7633  	  # assume the linker understands whole_archive_flag_spec.
  7634  	  # This may have to be revisited, in case too many
  7635  	  # convenience libraries get linked in and end up exceeding
  7636  	  # the spec.
  7637  	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
  7638  	    save_libobjs=$libobjs
  7639  	  fi
  7640  	  save_output=$output
  7641  	  output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
  7642  
  7643  	  # Clear the reloadable object creation command queue and
  7644  	  # initialize k to one.
  7645  	  test_cmds=
  7646  	  concat_cmds=
  7647  	  objlist=
  7648  	  last_robj=
  7649  	  k=1
  7650  
  7651  	  if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
  7652  	    output=${output_objdir}/${output_la}.lnkscript
  7653  	    func_verbose "creating GNU ld script: $output"
  7654  	    $ECHO 'INPUT (' > $output
  7655  	    for obj in $save_libobjs
  7656  	    do
  7657  	      $ECHO "$obj" >> $output
  7658  	    done
  7659  	    $ECHO ')' >> $output
  7660  	    delfiles="$delfiles $output"
  7661  	  elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
  7662  	    output=${output_objdir}/${output_la}.lnk
  7663  	    func_verbose "creating linker input file list: $output"
  7664  	    : > $output
  7665  	    set x $save_libobjs
  7666  	    shift
  7667  	    firstobj=
  7668  	    if test "$compiler_needs_object" = yes; then
  7669  	      firstobj="$1 "
  7670  	      shift
  7671  	    fi
  7672  	    for obj
  7673  	    do
  7674  	      $ECHO "$obj" >> $output
  7675  	    done
  7676  	    delfiles="$delfiles $output"
  7677  	    output=$firstobj\"$file_list_spec$output\"
  7678  	  else
  7679  	    if test -n "$save_libobjs"; then
  7680  	      func_verbose "creating reloadable object files..."
  7681  	      output=$output_objdir/$output_la-${k}.$objext
  7682  	      eval test_cmds=\"$reload_cmds\"
  7683  	      func_len " $test_cmds"
  7684  	      len0=$func_len_result
  7685  	      len=$len0
  7686  
  7687  	      # Loop over the list of objects to be linked.
  7688  	      for obj in $save_libobjs
  7689  	      do
  7690  		func_len " $obj"
  7691  		func_arith $len + $func_len_result
  7692  		len=$func_arith_result
  7693  		if test "X$objlist" = X ||
  7694  		   test "$len" -lt "$max_cmd_len"; then
  7695  		  func_append objlist " $obj"
  7696  		else
  7697  		  # The command $test_cmds is almost too long, add a
  7698  		  # command to the queue.
  7699  		  if test "$k" -eq 1 ; then
  7700  		    # The first file doesn't have a previous command to add.
  7701  		    eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
  7702  		  else
  7703  		    # All subsequent reloadable object files will link in
  7704  		    # the last one created.
  7705  		    eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
  7706  		  fi
  7707  		  last_robj=$output_objdir/$output_la-${k}.$objext
  7708  		  func_arith $k + 1
  7709  		  k=$func_arith_result
  7710  		  output=$output_objdir/$output_la-${k}.$objext
  7711  		  objlist=$obj
  7712  		  func_len " $last_robj"
  7713  		  func_arith $len0 + $func_len_result
  7714  		  len=$func_arith_result
  7715  		fi
  7716  	      done
  7717  	      # Handle the remaining objects by creating one last
  7718  	      # reloadable object file.  All subsequent reloadable object
  7719  	      # files will link in the last one created.
  7720  	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
  7721  	      eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
  7722  	      if test -n "$last_robj"; then
  7723  	        eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
  7724  	      fi
  7725  	      delfiles="$delfiles $output"
  7726  
  7727  	    else
  7728  	      output=
  7729  	    fi
  7730  
  7731  	    if ${skipped_export-false}; then
  7732  	      func_verbose "generating symbol list for \`$libname.la'"
  7733  	      export_symbols="$output_objdir/$libname.exp"
  7734  	      $opt_dry_run || $RM $export_symbols
  7735  	      libobjs=$output
  7736  	      # Append the command to create the export file.
  7737  	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
  7738  	      eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
  7739  	      if test -n "$last_robj"; then
  7740  		eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
  7741  	      fi
  7742  	    fi
  7743  
  7744  	    test -n "$save_libobjs" &&
  7745  	      func_verbose "creating a temporary reloadable object file: $output"
  7746  
  7747  	    # Loop through the commands generated above and execute them.
  7748  	    save_ifs="$IFS"; IFS='~'
  7749  	    for cmd in $concat_cmds; do
  7750  	      IFS="$save_ifs"
  7751  	      $opt_silent || {
  7752  		  func_quote_for_expand "$cmd"
  7753  		  eval "func_echo $func_quote_for_expand_result"
  7754  	      }
  7755  	      $opt_dry_run || eval "$cmd" || {
  7756  		lt_exit=$?
  7757  
  7758  		# Restore the uninstalled library and exit
  7759  		if test "$mode" = relink; then
  7760  		  ( cd "$output_objdir" && \
  7761  		    $RM "${realname}T" && \
  7762  		    $MV "${realname}U" "$realname" )
  7763  		fi
  7764  
  7765  		exit $lt_exit
  7766  	      }
  7767  	    done
  7768  	    IFS="$save_ifs"
  7769  
  7770  	    if test -n "$export_symbols_regex" && ${skipped_export-false}; then
  7771  	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
  7772  	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
  7773  	    fi
  7774  	  fi
  7775  
  7776            if ${skipped_export-false}; then
  7777  	    if test -n "$export_symbols" && test -n "$include_expsyms"; then
  7778  	      tmp_export_symbols="$export_symbols"
  7779  	      test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
  7780  	      $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
  7781  	    fi
  7782  
  7783  	    if test -n "$orig_export_symbols"; then
  7784  	      # The given exports_symbols file has to be filtered, so filter it.
  7785  	      func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
  7786  	      # FIXME: $output_objdir/$libname.filter potentially contains lots of
  7787  	      # 's' commands which not all seds can handle. GNU sed should be fine
  7788  	      # though. Also, the filter scales superlinearly with the number of
  7789  	      # global variables. join(1) would be nice here, but unfortunately
  7790  	      # isn't a blessed tool.
  7791  	      $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
  7792  	      delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
  7793  	      export_symbols=$output_objdir/$libname.def
  7794  	      $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
  7795  	    fi
  7796  	  fi
  7797  
  7798  	  libobjs=$output
  7799  	  # Restore the value of output.
  7800  	  output=$save_output
  7801  
  7802  	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
  7803  	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
  7804  	    test "X$libobjs" = "X " && libobjs=
  7805  	  fi
  7806  	  # Expand the library linking commands again to reset the
  7807  	  # value of $libobjs for piecewise linking.
  7808  
  7809  	  # Do each of the archive commands.
  7810  	  if test "$module" = yes && test -n "$module_cmds" ; then
  7811  	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
  7812  	      cmds=$module_expsym_cmds
  7813  	    else
  7814  	      cmds=$module_cmds
  7815  	    fi
  7816  	  else
  7817  	    if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
  7818  	      cmds=$archive_expsym_cmds
  7819  	    else
  7820  	      cmds=$archive_cmds
  7821  	    fi
  7822  	  fi
  7823  	fi
  7824  
  7825  	if test -n "$delfiles"; then
  7826  	  # Append the command to remove temporary files to $cmds.
  7827  	  eval cmds=\"\$cmds~\$RM $delfiles\"
  7828  	fi
  7829  
  7830  	# Add any objects from preloaded convenience libraries
  7831  	if test -n "$dlprefiles"; then
  7832  	  gentop="$output_objdir/${outputname}x"
  7833  	  generated="$generated $gentop"
  7834  
  7835  	  func_extract_archives $gentop $dlprefiles
  7836  	  libobjs="$libobjs $func_extract_archives_result"
  7837  	  test "X$libobjs" = "X " && libobjs=
  7838  	fi
  7839  
  7840  	save_ifs="$IFS"; IFS='~'
  7841  	for cmd in $cmds; do
  7842  	  IFS="$save_ifs"
  7843  	  eval cmd=\"$cmd\"
  7844  	  $opt_silent || {
  7845  	    func_quote_for_expand "$cmd"
  7846  	    eval "func_echo $func_quote_for_expand_result"
  7847  	  }
  7848  	  $opt_dry_run || eval "$cmd" || {
  7849  	    lt_exit=$?
  7850  
  7851  	    # Restore the uninstalled library and exit
  7852  	    if test "$mode" = relink; then
  7853  	      ( cd "$output_objdir" && \
  7854  	        $RM "${realname}T" && \
  7855  		$MV "${realname}U" "$realname" )
  7856  	    fi
  7857  
  7858  	    exit $lt_exit
  7859  	  }
  7860  	done
  7861  	IFS="$save_ifs"
  7862  
  7863  	# Restore the uninstalled library and exit
  7864  	if test "$mode" = relink; then
  7865  	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
  7866  
  7867  	  if test -n "$convenience"; then
  7868  	    if test -z "$whole_archive_flag_spec"; then
  7869  	      func_show_eval '${RM}r "$gentop"'
  7870  	    fi
  7871  	  fi
  7872  
  7873  	  exit $EXIT_SUCCESS
  7874  	fi
  7875  
  7876  	# Create links to the real library.
  7877  	for linkname in $linknames; do
  7878  	  if test "$realname" != "$linkname"; then
  7879  	    func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
  7880  	  fi
  7881  	done
  7882  
  7883  	# If -module or -export-dynamic was specified, set the dlname.
  7884  	if test "$module" = yes || test "$export_dynamic" = yes; then
  7885  	  # On all known operating systems, these are identical.
  7886  	  dlname="$soname"
  7887  	fi
  7888        fi
  7889        ;;
  7890  
  7891      obj)
  7892        if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
  7893  	func_warning "\`-dlopen' is ignored for objects"
  7894        fi
  7895  
  7896        case " $deplibs" in
  7897        *\ -l* | *\ -L*)
  7898  	func_warning "\`-l' and \`-L' are ignored for objects" ;;
  7899        esac
  7900  
  7901        test -n "$rpath" && \
  7902  	func_warning "\`-rpath' is ignored for objects"
  7903  
  7904        test -n "$xrpath" && \
  7905  	func_warning "\`-R' is ignored for objects"
  7906  
  7907        test -n "$vinfo" && \
  7908  	func_warning "\`-version-info' is ignored for objects"
  7909  
  7910        test -n "$release" && \
  7911  	func_warning "\`-release' is ignored for objects"
  7912  
  7913        case $output in
  7914        *.lo)
  7915  	test -n "$objs$old_deplibs" && \
  7916  	  func_fatal_error "cannot build library object \`$output' from non-libtool objects"
  7917  
  7918  	libobj=$output
  7919  	func_lo2o "$libobj"
  7920  	obj=$func_lo2o_result
  7921  	;;
  7922        *)
  7923  	libobj=
  7924  	obj="$output"
  7925  	;;
  7926        esac
  7927  
  7928        # Delete the old objects.
  7929        $opt_dry_run || $RM $obj $libobj
  7930  
  7931        # Objects from convenience libraries.  This assumes
  7932        # single-version convenience libraries.  Whenever we create
  7933        # different ones for PIC/non-PIC, this we'll have to duplicate
  7934        # the extraction.
  7935        reload_conv_objs=
  7936        gentop=
  7937        # reload_cmds runs $LD directly, so let us get rid of
  7938        # -Wl from whole_archive_flag_spec and hope we can get by with
  7939        # turning comma into space..
  7940        wl=
  7941  
  7942        if test -n "$convenience"; then
  7943  	if test -n "$whole_archive_flag_spec"; then
  7944  	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
  7945  	  reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
  7946  	else
  7947  	  gentop="$output_objdir/${obj}x"
  7948  	  generated="$generated $gentop"
  7949  
  7950  	  func_extract_archives $gentop $convenience
  7951  	  reload_conv_objs="$reload_objs $func_extract_archives_result"
  7952  	fi
  7953        fi
  7954  
  7955        # Create the old-style object.
  7956        reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
  7957  
  7958        output="$obj"
  7959        func_execute_cmds "$reload_cmds" 'exit $?'
  7960  
  7961        # Exit if we aren't doing a library object file.
  7962        if test -z "$libobj"; then
  7963  	if test -n "$gentop"; then
  7964  	  func_show_eval '${RM}r "$gentop"'
  7965  	fi
  7966  
  7967  	exit $EXIT_SUCCESS
  7968        fi
  7969  
  7970        if test "$build_libtool_libs" != yes; then
  7971  	if test -n "$gentop"; then
  7972  	  func_show_eval '${RM}r "$gentop"'
  7973  	fi
  7974  
  7975  	# Create an invalid libtool object if no PIC, so that we don't
  7976  	# accidentally link it into a program.
  7977  	# $show "echo timestamp > $libobj"
  7978  	# $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
  7979  	exit $EXIT_SUCCESS
  7980        fi
  7981  
  7982        if test -n "$pic_flag" || test "$pic_mode" != default; then
  7983  	# Only do commands if we really have different PIC objects.
  7984  	reload_objs="$libobjs $reload_conv_objs"
  7985  	output="$libobj"
  7986  	func_execute_cmds "$reload_cmds" 'exit $?'
  7987        fi
  7988  
  7989        if test -n "$gentop"; then
  7990  	func_show_eval '${RM}r "$gentop"'
  7991        fi
  7992  
  7993        exit $EXIT_SUCCESS
  7994        ;;
  7995  
  7996      prog)
  7997        case $host in
  7998  	*cygwin*) func_stripname '' '.exe' "$output"
  7999  	          output=$func_stripname_result.exe;;
  8000        esac
  8001        test -n "$vinfo" && \
  8002  	func_warning "\`-version-info' is ignored for programs"
  8003  
  8004        test -n "$release" && \
  8005  	func_warning "\`-release' is ignored for programs"
  8006  
  8007        test "$preload" = yes \
  8008          && test "$dlopen_support" = unknown \
  8009  	&& test "$dlopen_self" = unknown \
  8010  	&& test "$dlopen_self_static" = unknown && \
  8011  	  func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
  8012  
  8013        case $host in
  8014        *-*-rhapsody* | *-*-darwin1.[012])
  8015  	# On Rhapsody replace the C library is the System framework
  8016  	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
  8017  	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
  8018  	;;
  8019        esac
  8020  
  8021        case $host in
  8022        *-*-darwin*)
  8023  	# Don't allow lazy linking, it breaks C++ global constructors
  8024  	# But is supposedly fixed on 10.4 or later (yay!).
  8025  	if test "$tagname" = CXX ; then
  8026  	  case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
  8027  	    10.[0123])
  8028  	      compile_command="$compile_command ${wl}-bind_at_load"
  8029  	      finalize_command="$finalize_command ${wl}-bind_at_load"
  8030  	    ;;
  8031  	  esac
  8032  	fi
  8033  	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
  8034  	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
  8035  	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
  8036  	;;
  8037        esac
  8038  
  8039  
  8040        # move library search paths that coincide with paths to not yet
  8041        # installed libraries to the beginning of the library search list
  8042        new_libs=
  8043        for path in $notinst_path; do
  8044  	case " $new_libs " in
  8045  	*" -L$path/$objdir "*) ;;
  8046  	*)
  8047  	  case " $compile_deplibs " in
  8048  	  *" -L$path/$objdir "*)
  8049  	    new_libs="$new_libs -L$path/$objdir" ;;
  8050  	  esac
  8051  	  ;;
  8052  	esac
  8053        done
  8054        for deplib in $compile_deplibs; do
  8055  	case $deplib in
  8056  	-L*)
  8057  	  case " $new_libs " in
  8058  	  *" $deplib "*) ;;
  8059  	  *) new_libs="$new_libs $deplib" ;;
  8060  	  esac
  8061  	  ;;
  8062  	*) new_libs="$new_libs $deplib" ;;
  8063  	esac
  8064        done
  8065        compile_deplibs="$new_libs"
  8066  
  8067  
  8068        compile_command="$compile_command $compile_deplibs"
  8069        finalize_command="$finalize_command $finalize_deplibs"
  8070  
  8071        if test -n "$rpath$xrpath"; then
  8072  	# If the user specified any rpath flags, then add them.
  8073  	for libdir in $rpath $xrpath; do
  8074  	  # This is the magic to use -rpath.
  8075  	  case "$finalize_rpath " in
  8076  	  *" $libdir "*) ;;
  8077  	  *) finalize_rpath="$finalize_rpath $libdir" ;;
  8078  	  esac
  8079  	done
  8080        fi
  8081  
  8082        # Now hardcode the library paths
  8083        rpath=
  8084        hardcode_libdirs=
  8085        for libdir in $compile_rpath $finalize_rpath; do
  8086  	if test -n "$hardcode_libdir_flag_spec"; then
  8087  	  if test -n "$hardcode_libdir_separator"; then
  8088  	    if test -z "$hardcode_libdirs"; then
  8089  	      hardcode_libdirs="$libdir"
  8090  	    else
  8091  	      # Just accumulate the unique libdirs.
  8092  	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
  8093  	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
  8094  		;;
  8095  	      *)
  8096  		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
  8097  		;;
  8098  	      esac
  8099  	    fi
  8100  	  else
  8101  	    eval flag=\"$hardcode_libdir_flag_spec\"
  8102  	    rpath="$rpath $flag"
  8103  	  fi
  8104  	elif test -n "$runpath_var"; then
  8105  	  case "$perm_rpath " in
  8106  	  *" $libdir "*) ;;
  8107  	  *) perm_rpath="$perm_rpath $libdir" ;;
  8108  	  esac
  8109  	fi
  8110  	case $host in
  8111  	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
  8112  	  testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
  8113  	  case :$dllsearchpath: in
  8114  	  *":$libdir:"*) ;;
  8115  	  ::) dllsearchpath=$libdir;;
  8116  	  *) dllsearchpath="$dllsearchpath:$libdir";;
  8117  	  esac
  8118  	  case :$dllsearchpath: in
  8119  	  *":$testbindir:"*) ;;
  8120  	  ::) dllsearchpath=$testbindir;;
  8121  	  *) dllsearchpath="$dllsearchpath:$testbindir";;
  8122  	  esac
  8123  	  ;;
  8124  	esac
  8125        done
  8126        # Substitute the hardcoded libdirs into the rpath.
  8127        if test -n "$hardcode_libdir_separator" &&
  8128  	 test -n "$hardcode_libdirs"; then
  8129  	libdir="$hardcode_libdirs"
  8130  	eval rpath=\" $hardcode_libdir_flag_spec\"
  8131        fi
  8132        compile_rpath="$rpath"
  8133  
  8134        rpath=
  8135        hardcode_libdirs=
  8136        for libdir in $finalize_rpath; do
  8137  	if test -n "$hardcode_libdir_flag_spec"; then
  8138  	  if test -n "$hardcode_libdir_separator"; then
  8139  	    if test -z "$hardcode_libdirs"; then
  8140  	      hardcode_libdirs="$libdir"
  8141  	    else
  8142  	      # Just accumulate the unique libdirs.
  8143  	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
  8144  	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
  8145  		;;
  8146  	      *)
  8147  		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
  8148  		;;
  8149  	      esac
  8150  	    fi
  8151  	  else
  8152  	    eval flag=\"$hardcode_libdir_flag_spec\"
  8153  	    rpath="$rpath $flag"
  8154  	  fi
  8155  	elif test -n "$runpath_var"; then
  8156  	  case "$finalize_perm_rpath " in
  8157  	  *" $libdir "*) ;;
  8158  	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
  8159  	  esac
  8160  	fi
  8161        done
  8162        # Substitute the hardcoded libdirs into the rpath.
  8163        if test -n "$hardcode_libdir_separator" &&
  8164  	 test -n "$hardcode_libdirs"; then
  8165  	libdir="$hardcode_libdirs"
  8166  	eval rpath=\" $hardcode_libdir_flag_spec\"
  8167        fi
  8168        finalize_rpath="$rpath"
  8169  
  8170        if test -n "$libobjs" && test "$build_old_libs" = yes; then
  8171  	# Transform all the library objects into standard objects.
  8172  	compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
  8173  	finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
  8174        fi
  8175  
  8176        func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
  8177  
  8178        # template prelinking step
  8179        if test -n "$prelink_cmds"; then
  8180  	func_execute_cmds "$prelink_cmds" 'exit $?'
  8181        fi
  8182  
  8183        wrappers_required=yes
  8184        case $host in
  8185        *cygwin* | *mingw* )
  8186          if test "$build_libtool_libs" != yes; then
  8187            wrappers_required=no
  8188          fi
  8189          ;;
  8190        *cegcc)
  8191          # Disable wrappers for cegcc, we are cross compiling anyway.
  8192          wrappers_required=no
  8193          ;;
  8194        *)
  8195          if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
  8196            wrappers_required=no
  8197          fi
  8198          ;;
  8199        esac
  8200        if test "$wrappers_required" = no; then
  8201  	# Replace the output file specification.
  8202  	compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
  8203  	link_command="$compile_command$compile_rpath"
  8204  
  8205  	# We have no uninstalled library dependencies, so finalize right now.
  8206  	exit_status=0
  8207  	func_show_eval "$link_command" 'exit_status=$?'
  8208  
  8209  	# Delete the generated files.
  8210  	if test -f "$output_objdir/${outputname}S.${objext}"; then
  8211  	  func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
  8212  	fi
  8213  
  8214  	exit $exit_status
  8215        fi
  8216  
  8217        if test -n "$compile_shlibpath$finalize_shlibpath"; then
  8218  	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
  8219        fi
  8220        if test -n "$finalize_shlibpath"; then
  8221  	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
  8222        fi
  8223  
  8224        compile_var=
  8225        finalize_var=
  8226        if test -n "$runpath_var"; then
  8227  	if test -n "$perm_rpath"; then
  8228  	  # We should set the runpath_var.
  8229  	  rpath=
  8230  	  for dir in $perm_rpath; do
  8231  	    rpath="$rpath$dir:"
  8232  	  done
  8233  	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
  8234  	fi
  8235  	if test -n "$finalize_perm_rpath"; then
  8236  	  # We should set the runpath_var.
  8237  	  rpath=
  8238  	  for dir in $finalize_perm_rpath; do
  8239  	    rpath="$rpath$dir:"
  8240  	  done
  8241  	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
  8242  	fi
  8243        fi
  8244  
  8245        if test "$no_install" = yes; then
  8246  	# We don't need to create a wrapper script.
  8247  	link_command="$compile_var$compile_command$compile_rpath"
  8248  	# Replace the output file specification.
  8249  	link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
  8250  	# Delete the old output file.
  8251  	$opt_dry_run || $RM $output
  8252  	# Link the executable and exit
  8253  	func_show_eval "$link_command" 'exit $?'
  8254  	exit $EXIT_SUCCESS
  8255        fi
  8256  
  8257        if test "$hardcode_action" = relink; then
  8258  	# Fast installation is not supported
  8259  	link_command="$compile_var$compile_command$compile_rpath"
  8260  	relink_command="$finalize_var$finalize_command$finalize_rpath"
  8261  
  8262  	func_warning "this platform does not like uninstalled shared libraries"
  8263  	func_warning "\`$output' will be relinked during installation"
  8264        else
  8265  	if test "$fast_install" != no; then
  8266  	  link_command="$finalize_var$compile_command$finalize_rpath"
  8267  	  if test "$fast_install" = yes; then
  8268  	    relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
  8269  	  else
  8270  	    # fast_install is set to needless
  8271  	    relink_command=
  8272  	  fi
  8273  	else
  8274  	  link_command="$compile_var$compile_command$compile_rpath"
  8275  	  relink_command="$finalize_var$finalize_command$finalize_rpath"
  8276  	fi
  8277        fi
  8278  
  8279        # Replace the output file specification.
  8280        link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
  8281  
  8282        # Delete the old output files.
  8283        $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
  8284  
  8285        func_show_eval "$link_command" 'exit $?'
  8286  
  8287        # Now create the wrapper script.
  8288        func_verbose "creating $output"
  8289  
  8290        # Quote the relink command for shipping.
  8291        if test -n "$relink_command"; then
  8292  	# Preserve any variables that may affect compiler behavior
  8293  	for var in $variables_saved_for_relink; do
  8294  	  if eval test -z \"\${$var+set}\"; then
  8295  	    relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
  8296  	  elif eval var_value=\$$var; test -z "$var_value"; then
  8297  	    relink_command="$var=; export $var; $relink_command"
  8298  	  else
  8299  	    func_quote_for_eval "$var_value"
  8300  	    relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
  8301  	  fi
  8302  	done
  8303  	relink_command="(cd `pwd`; $relink_command)"
  8304  	relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
  8305        fi
  8306  
  8307        # Quote $ECHO for shipping.
  8308        if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
  8309  	case $progpath in
  8310  	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
  8311  	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
  8312  	esac
  8313  	qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
  8314        else
  8315  	qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
  8316        fi
  8317  
  8318        # Only actually do things if not in dry run mode.
  8319        $opt_dry_run || {
  8320  	# win32 will think the script is a binary if it has
  8321  	# a .exe suffix, so we strip it off here.
  8322  	case $output in
  8323  	  *.exe) func_stripname '' '.exe' "$output"
  8324  	         output=$func_stripname_result ;;
  8325  	esac
  8326  	# test for cygwin because mv fails w/o .exe extensions
  8327  	case $host in
  8328  	  *cygwin*)
  8329  	    exeext=.exe
  8330  	    func_stripname '' '.exe' "$outputname"
  8331  	    outputname=$func_stripname_result ;;
  8332  	  *) exeext= ;;
  8333  	esac
  8334  	case $host in
  8335  	  *cygwin* | *mingw* )
  8336  	    func_dirname_and_basename "$output" "" "."
  8337  	    output_name=$func_basename_result
  8338  	    output_path=$func_dirname_result
  8339  	    cwrappersource="$output_path/$objdir/lt-$output_name.c"
  8340  	    cwrapper="$output_path/$output_name.exe"
  8341  	    $RM $cwrappersource $cwrapper
  8342  	    trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
  8343  
  8344  	    func_emit_cwrapperexe_src > $cwrappersource
  8345  
  8346  	    # The wrapper executable is built using the $host compiler,
  8347  	    # because it contains $host paths and files. If cross-
  8348  	    # compiling, it, like the target executable, must be
  8349  	    # executed on the $host or under an emulation environment.
  8350  	    $opt_dry_run || {
  8351  	      $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
  8352  	      $STRIP $cwrapper
  8353  	    }
  8354  
  8355  	    # Now, create the wrapper script for func_source use:
  8356  	    func_ltwrapper_scriptname $cwrapper
  8357  	    $RM $func_ltwrapper_scriptname_result
  8358  	    trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
  8359  	    $opt_dry_run || {
  8360  	      # note: this script will not be executed, so do not chmod.
  8361  	      if test "x$build" = "x$host" ; then
  8362  		$cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
  8363  	      else
  8364  		func_emit_wrapper no > $func_ltwrapper_scriptname_result
  8365  	      fi
  8366  	    }
  8367  	  ;;
  8368  	  * )
  8369  	    $RM $output
  8370  	    trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
  8371  
  8372  	    func_emit_wrapper no > $output
  8373  	    chmod +x $output
  8374  	  ;;
  8375  	esac
  8376        }
  8377        exit $EXIT_SUCCESS
  8378        ;;
  8379      esac
  8380  
  8381      # See if we need to build an old-fashioned archive.
  8382      for oldlib in $oldlibs; do
  8383  
  8384        if test "$build_libtool_libs" = convenience; then
  8385  	oldobjs="$libobjs_save $symfileobj"
  8386  	addlibs="$convenience"
  8387  	build_libtool_libs=no
  8388        else
  8389  	if test "$build_libtool_libs" = module; then
  8390  	  oldobjs="$libobjs_save"
  8391  	  build_libtool_libs=no
  8392  	else
  8393  	  oldobjs="$old_deplibs $non_pic_objects"
  8394  	  if test "$preload" = yes && test -f "$symfileobj"; then
  8395  	    oldobjs="$oldobjs $symfileobj"
  8396  	  fi
  8397  	fi
  8398  	addlibs="$old_convenience"
  8399        fi
  8400  
  8401        if test -n "$addlibs"; then
  8402  	gentop="$output_objdir/${outputname}x"
  8403  	generated="$generated $gentop"
  8404  
  8405  	func_extract_archives $gentop $addlibs
  8406  	oldobjs="$oldobjs $func_extract_archives_result"
  8407        fi
  8408  
  8409        # Do each command in the archive commands.
  8410        if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
  8411  	cmds=$old_archive_from_new_cmds
  8412        else
  8413  
  8414  	# Add any objects from preloaded convenience libraries
  8415  	if test -n "$dlprefiles"; then
  8416  	  gentop="$output_objdir/${outputname}x"
  8417  	  generated="$generated $gentop"
  8418  
  8419  	  func_extract_archives $gentop $dlprefiles
  8420  	  oldobjs="$oldobjs $func_extract_archives_result"
  8421  	fi
  8422  
  8423  	# POSIX demands no paths to be encoded in archives.  We have
  8424  	# to avoid creating archives with duplicate basenames if we
  8425  	# might have to extract them afterwards, e.g., when creating a
  8426  	# static archive out of a convenience library, or when linking
  8427  	# the entirety of a libtool archive into another (currently
  8428  	# not supported by libtool).
  8429  	if (for obj in $oldobjs
  8430  	    do
  8431  	      func_basename "$obj"
  8432  	      $ECHO "$func_basename_result"
  8433  	    done | sort | sort -uc >/dev/null 2>&1); then
  8434  	  :
  8435  	else
  8436  	  $ECHO "copying selected object files to avoid basename conflicts..."
  8437  	  gentop="$output_objdir/${outputname}x"
  8438  	  generated="$generated $gentop"
  8439  	  func_mkdir_p "$gentop"
  8440  	  save_oldobjs=$oldobjs
  8441  	  oldobjs=
  8442  	  counter=1
  8443  	  for obj in $save_oldobjs
  8444  	  do
  8445  	    func_basename "$obj"
  8446  	    objbase="$func_basename_result"
  8447  	    case " $oldobjs " in
  8448  	    " ") oldobjs=$obj ;;
  8449  	    *[\ /]"$objbase "*)
  8450  	      while :; do
  8451  		# Make sure we don't pick an alternate name that also
  8452  		# overlaps.
  8453  		newobj=lt$counter-$objbase
  8454  		func_arith $counter + 1
  8455  		counter=$func_arith_result
  8456  		case " $oldobjs " in
  8457  		*[\ /]"$newobj "*) ;;
  8458  		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
  8459  		esac
  8460  	      done
  8461  	      func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
  8462  	      oldobjs="$oldobjs $gentop/$newobj"
  8463  	      ;;
  8464  	    *) oldobjs="$oldobjs $obj" ;;
  8465  	    esac
  8466  	  done
  8467  	fi
  8468  	eval cmds=\"$old_archive_cmds\"
  8469  
  8470  	func_len " $cmds"
  8471  	len=$func_len_result
  8472  	if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
  8473  	  cmds=$old_archive_cmds
  8474  	else
  8475  	  # the command line is too long to link in one step, link in parts
  8476  	  func_verbose "using piecewise archive linking..."
  8477  	  save_RANLIB=$RANLIB
  8478  	  RANLIB=:
  8479  	  objlist=
  8480  	  concat_cmds=
  8481  	  save_oldobjs=$oldobjs
  8482  	  oldobjs=
  8483  	  # Is there a better way of finding the last object in the list?
  8484  	  for obj in $save_oldobjs
  8485  	  do
  8486  	    last_oldobj=$obj
  8487  	  done
  8488  	  eval test_cmds=\"$old_archive_cmds\"
  8489  	  func_len " $test_cmds"
  8490  	  len0=$func_len_result
  8491  	  len=$len0
  8492  	  for obj in $save_oldobjs
  8493  	  do
  8494  	    func_len " $obj"
  8495  	    func_arith $len + $func_len_result
  8496  	    len=$func_arith_result
  8497  	    func_append objlist " $obj"
  8498  	    if test "$len" -lt "$max_cmd_len"; then
  8499  	      :
  8500  	    else
  8501  	      # the above command should be used before it gets too long
  8502  	      oldobjs=$objlist
  8503  	      if test "$obj" = "$last_oldobj" ; then
  8504  		RANLIB=$save_RANLIB
  8505  	      fi
  8506  	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
  8507  	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
  8508  	      objlist=
  8509  	      len=$len0
  8510  	    fi
  8511  	  done
  8512  	  RANLIB=$save_RANLIB
  8513  	  oldobjs=$objlist
  8514  	  if test "X$oldobjs" = "X" ; then
  8515  	    eval cmds=\"\$concat_cmds\"
  8516  	  else
  8517  	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
  8518  	  fi
  8519  	fi
  8520        fi
  8521        func_execute_cmds "$cmds" 'exit $?'
  8522      done
  8523  
  8524      test -n "$generated" && \
  8525        func_show_eval "${RM}r$generated"
  8526  
  8527      # Now create the libtool archive.
  8528      case $output in
  8529      *.la)
  8530        old_library=
  8531        test "$build_old_libs" = yes && old_library="$libname.$libext"
  8532        func_verbose "creating $output"
  8533  
  8534        # Preserve any variables that may affect compiler behavior
  8535        for var in $variables_saved_for_relink; do
  8536  	if eval test -z \"\${$var+set}\"; then
  8537  	  relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
  8538  	elif eval var_value=\$$var; test -z "$var_value"; then
  8539  	  relink_command="$var=; export $var; $relink_command"
  8540  	else
  8541  	  func_quote_for_eval "$var_value"
  8542  	  relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
  8543  	fi
  8544        done
  8545        # Quote the link command for shipping.
  8546        relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
  8547        relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
  8548        if test "$hardcode_automatic" = yes ; then
  8549  	relink_command=
  8550        fi
  8551  
  8552        # Only create the output if not a dry run.
  8553        $opt_dry_run || {
  8554  	for installed in no yes; do
  8555  	  if test "$installed" = yes; then
  8556  	    if test -z "$install_libdir"; then
  8557  	      break
  8558  	    fi
  8559  	    output="$output_objdir/$outputname"i
  8560  	    # Replace all uninstalled libtool libraries with the installed ones
  8561  	    newdependency_libs=
  8562  	    for deplib in $dependency_libs; do
  8563  	      case $deplib in
  8564  	      *.la)
  8565  		func_basename "$deplib"
  8566  		name="$func_basename_result"
  8567  		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
  8568  		test -z "$libdir" && \
  8569  		  func_fatal_error "\`$deplib' is not a valid libtool archive"
  8570  		newdependency_libs="$newdependency_libs $libdir/$name"
  8571  		;;
  8572  	      *) newdependency_libs="$newdependency_libs $deplib" ;;
  8573  	      esac
  8574  	    done
  8575  	    dependency_libs="$newdependency_libs"
  8576  	    newdlfiles=
  8577  
  8578  	    for lib in $dlfiles; do
  8579  	      case $lib in
  8580  	      *.la)
  8581  	        func_basename "$lib"
  8582  		name="$func_basename_result"
  8583  		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
  8584  		test -z "$libdir" && \
  8585  		  func_fatal_error "\`$lib' is not a valid libtool archive"
  8586  		newdlfiles="$newdlfiles $libdir/$name"
  8587  		;;
  8588  	      *) newdlfiles="$newdlfiles $lib" ;;
  8589  	      esac
  8590  	    done
  8591  	    dlfiles="$newdlfiles"
  8592  	    newdlprefiles=
  8593  	    for lib in $dlprefiles; do
  8594  	      case $lib in
  8595  	      *.la)
  8596  		# Only pass preopened files to the pseudo-archive (for
  8597  		# eventual linking with the app. that links it) if we
  8598  		# didn't already link the preopened objects directly into
  8599  		# the library:
  8600  		func_basename "$lib"
  8601  		name="$func_basename_result"
  8602  		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
  8603  		test -z "$libdir" && \
  8604  		  func_fatal_error "\`$lib' is not a valid libtool archive"
  8605  		newdlprefiles="$newdlprefiles $libdir/$name"
  8606  		;;
  8607  	      esac
  8608  	    done
  8609  	    dlprefiles="$newdlprefiles"
  8610  	  else
  8611  	    newdlfiles=
  8612  	    for lib in $dlfiles; do
  8613  	      case $lib in
  8614  		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
  8615  		*) abs=`pwd`"/$lib" ;;
  8616  	      esac
  8617  	      newdlfiles="$newdlfiles $abs"
  8618  	    done
  8619  	    dlfiles="$newdlfiles"
  8620  	    newdlprefiles=
  8621  	    for lib in $dlprefiles; do
  8622  	      case $lib in
  8623  		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
  8624  		*) abs=`pwd`"/$lib" ;;
  8625  	      esac
  8626  	      newdlprefiles="$newdlprefiles $abs"
  8627  	    done
  8628  	    dlprefiles="$newdlprefiles"
  8629  	  fi
  8630  	  $RM $output
  8631  	  # place dlname in correct position for cygwin
  8632  	  tdlname=$dlname
  8633  	  case $host,$output,$installed,$module,$dlname in
  8634  	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
  8635  	  esac
  8636  	  $ECHO > $output "\
  8637  # $outputname - a libtool library file
  8638  # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
  8639  #
  8640  # Please DO NOT delete this file!
  8641  # It is necessary for linking the library.
  8642  
  8643  # The name that we can dlopen(3).
  8644  dlname='$tdlname'
  8645  
  8646  # Names of this library.
  8647  library_names='$library_names'
  8648  
  8649  # The name of the static archive.
  8650  old_library='$old_library'
  8651  
  8652  # Linker flags that can not go in dependency_libs.
  8653  inherited_linker_flags='$new_inherited_linker_flags'
  8654  
  8655  # Libraries that this one depends upon.
  8656  dependency_libs='$dependency_libs'
  8657  
  8658  # Names of additional weak libraries provided by this library
  8659  weak_library_names='$weak_libs'
  8660  
  8661  # Version information for $libname.
  8662  current=$current
  8663  age=$age
  8664  revision=$revision
  8665  
  8666  # Is this an already installed library?
  8667  installed=$installed
  8668  
  8669  # Should we warn about portability when linking against -modules?
  8670  shouldnotlink=$module
  8671  
  8672  # Files to dlopen/dlpreopen
  8673  dlopen='$dlfiles'
  8674  dlpreopen='$dlprefiles'
  8675  
  8676  # Directory that this library needs to be installed in:
  8677  libdir='$install_libdir'"
  8678  	  if test "$installed" = no && test "$need_relink" = yes; then
  8679  	    $ECHO >> $output "\
  8680  relink_command=\"$relink_command\""
  8681  	  fi
  8682  	done
  8683        }
  8684  
  8685        # Do a symbolic link so that the libtool archive can be found in
  8686        # LD_LIBRARY_PATH before the program is installed.
  8687        func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
  8688        ;;
  8689      esac
  8690      exit $EXIT_SUCCESS
  8691  }
  8692  
  8693  { test "$mode" = link || test "$mode" = relink; } &&
  8694      func_mode_link ${1+"$@"}
  8695  
  8696  
  8697  # func_mode_uninstall arg...
  8698  func_mode_uninstall ()
  8699  {
  8700      $opt_debug
  8701      RM="$nonopt"
  8702      files=
  8703      rmforce=
  8704      exit_status=0
  8705  
  8706      # This variable tells wrapper scripts just to set variables rather
  8707      # than running their programs.
  8708      libtool_install_magic="$magic"
  8709  
  8710      for arg
  8711      do
  8712        case $arg in
  8713        -f) RM="$RM $arg"; rmforce=yes ;;
  8714        -*) RM="$RM $arg" ;;
  8715        *) files="$files $arg" ;;
  8716        esac
  8717      done
  8718  
  8719      test -z "$RM" && \
  8720        func_fatal_help "you must specify an RM program"
  8721  
  8722      rmdirs=
  8723  
  8724      origobjdir="$objdir"
  8725      for file in $files; do
  8726        func_dirname "$file" "" "."
  8727        dir="$func_dirname_result"
  8728        if test "X$dir" = X.; then
  8729  	objdir="$origobjdir"
  8730        else
  8731  	objdir="$dir/$origobjdir"
  8732        fi
  8733        func_basename "$file"
  8734        name="$func_basename_result"
  8735        test "$mode" = uninstall && objdir="$dir"
  8736  
  8737        # Remember objdir for removal later, being careful to avoid duplicates
  8738        if test "$mode" = clean; then
  8739  	case " $rmdirs " in
  8740  	  *" $objdir "*) ;;
  8741  	  *) rmdirs="$rmdirs $objdir" ;;
  8742  	esac
  8743        fi
  8744  
  8745        # Don't error if the file doesn't exist and rm -f was used.
  8746        if { test -L "$file"; } >/dev/null 2>&1 ||
  8747  	 { test -h "$file"; } >/dev/null 2>&1 ||
  8748  	 test -f "$file"; then
  8749  	:
  8750        elif test -d "$file"; then
  8751  	exit_status=1
  8752  	continue
  8753        elif test "$rmforce" = yes; then
  8754  	continue
  8755        fi
  8756  
  8757        rmfiles="$file"
  8758  
  8759        case $name in
  8760        *.la)
  8761  	# Possibly a libtool archive, so verify it.
  8762  	if func_lalib_p "$file"; then
  8763  	  func_source $dir/$name
  8764  
  8765  	  # Delete the libtool libraries and symlinks.
  8766  	  for n in $library_names; do
  8767  	    rmfiles="$rmfiles $objdir/$n"
  8768  	  done
  8769  	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
  8770  
  8771  	  case "$mode" in
  8772  	  clean)
  8773  	    case "  $library_names " in
  8774  	    # "  " in the beginning catches empty $dlname
  8775  	    *" $dlname "*) ;;
  8776  	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
  8777  	    esac
  8778  	    test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
  8779  	    ;;
  8780  	  uninstall)
  8781  	    if test -n "$library_names"; then
  8782  	      # Do each command in the postuninstall commands.
  8783  	      func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
  8784  	    fi
  8785  
  8786  	    if test -n "$old_library"; then
  8787  	      # Do each command in the old_postuninstall commands.
  8788  	      func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
  8789  	    fi
  8790  	    # FIXME: should reinstall the best remaining shared library.
  8791  	    ;;
  8792  	  esac
  8793  	fi
  8794  	;;
  8795  
  8796        *.lo)
  8797  	# Possibly a libtool object, so verify it.
  8798  	if func_lalib_p "$file"; then
  8799  
  8800  	  # Read the .lo file
  8801  	  func_source $dir/$name
  8802  
  8803  	  # Add PIC object to the list of files to remove.
  8804  	  if test -n "$pic_object" &&
  8805  	     test "$pic_object" != none; then
  8806  	    rmfiles="$rmfiles $dir/$pic_object"
  8807  	  fi
  8808  
  8809  	  # Add non-PIC object to the list of files to remove.
  8810  	  if test -n "$non_pic_object" &&
  8811  	     test "$non_pic_object" != none; then
  8812  	    rmfiles="$rmfiles $dir/$non_pic_object"
  8813  	  fi
  8814  	fi
  8815  	;;
  8816  
  8817        *)
  8818  	if test "$mode" = clean ; then
  8819  	  noexename=$name
  8820  	  case $file in
  8821  	  *.exe)
  8822  	    func_stripname '' '.exe' "$file"
  8823  	    file=$func_stripname_result
  8824  	    func_stripname '' '.exe' "$name"
  8825  	    noexename=$func_stripname_result
  8826  	    # $file with .exe has already been added to rmfiles,
  8827  	    # add $file without .exe
  8828  	    rmfiles="$rmfiles $file"
  8829  	    ;;
  8830  	  esac
  8831  	  # Do a test to see if this is a libtool program.
  8832  	  if func_ltwrapper_p "$file"; then
  8833  	    if func_ltwrapper_executable_p "$file"; then
  8834  	      func_ltwrapper_scriptname "$file"
  8835  	      relink_command=
  8836  	      func_source $func_ltwrapper_scriptname_result
  8837  	      rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
  8838  	    else
  8839  	      relink_command=
  8840  	      func_source $dir/$noexename
  8841  	    fi
  8842  
  8843  	    # note $name still contains .exe if it was in $file originally
  8844  	    # as does the version of $file that was added into $rmfiles
  8845  	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
  8846  	    if test "$fast_install" = yes && test -n "$relink_command"; then
  8847  	      rmfiles="$rmfiles $objdir/lt-$name"
  8848  	    fi
  8849  	    if test "X$noexename" != "X$name" ; then
  8850  	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
  8851  	    fi
  8852  	  fi
  8853  	fi
  8854  	;;
  8855        esac
  8856        func_show_eval "$RM $rmfiles" 'exit_status=1'
  8857      done
  8858      objdir="$origobjdir"
  8859  
  8860      # Try to remove the ${objdir}s in the directories where we deleted files
  8861      for dir in $rmdirs; do
  8862        if test -d "$dir"; then
  8863  	func_show_eval "rmdir $dir >/dev/null 2>&1"
  8864        fi
  8865      done
  8866  
  8867      exit $exit_status
  8868  }
  8869  
  8870  { test "$mode" = uninstall || test "$mode" = clean; } &&
  8871      func_mode_uninstall ${1+"$@"}
  8872  
  8873  test -z "$mode" && {
  8874    help="$generic_help"
  8875    func_fatal_help "you must specify a MODE"
  8876  }
  8877  
  8878  test -z "$exec_cmd" && \
  8879    func_fatal_help "invalid operation mode \`$mode'"
  8880  
  8881  if test -n "$exec_cmd"; then
  8882    eval exec "$exec_cmd"
  8883    exit $EXIT_FAILURE
  8884  fi
  8885  
  8886  exit $exit_status
  8887  
  8888  
  8889  # The TAGs below are defined such that we never get into a situation
  8890  # in which we disable both kinds of libraries.  Given conflicting
  8891  # choices, we go for a static library, that is the most portable,
  8892  # since we can't tell whether shared libraries were disabled because
  8893  # the user asked for that or because the platform doesn't support
  8894  # them.  This is particularly important on AIX, because we don't
  8895  # support having both static and shared libraries enabled at the same
  8896  # time on that platform, so we default to a shared-only configuration.
  8897  # If a disable-shared tag is given, we'll fallback to a static-only
  8898  # configuration.  But we'll never go from static-only to shared-only.
  8899  
  8900  # ### BEGIN LIBTOOL TAG CONFIG: disable-shared
  8901  build_libtool_libs=no
  8902  build_old_libs=yes
  8903  # ### END LIBTOOL TAG CONFIG: disable-shared
  8904  
  8905  # ### BEGIN LIBTOOL TAG CONFIG: disable-static
  8906  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
  8907  # ### END LIBTOOL TAG CONFIG: disable-static
  8908  
  8909  # Local Variables:
  8910  # mode:shell-script
  8911  # sh-indentation:2
  8912  # End:
  8913  # vi:sw=2
  8914  
  8915  
  8916  # ### BEGIN LIBTOOL TAG CONFIG: CXX
  8917  
  8918  # The linker used to build libraries.
  8919  LD="/usr/bin/ld -m elf_x86_64"
  8920  
  8921  # Commands used to build an old-style archive.
  8922  old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib"
  8923  
  8924  # A language specific compiler.
  8925  CC="g++"
  8926  
  8927  # Is the compiler the GNU compiler?
  8928  with_gcc=yes
  8929  
  8930  # Compiler flag to turn off builtin functions.
  8931  no_builtin_flag=" -fno-builtin"
  8932  
  8933  # How to pass a linker flag through the compiler.
  8934  wl="-Wl,"
  8935  
  8936  # Additional compiler flags for building library objects.
  8937  pic_flag=" -fPIC -DPIC"
  8938  
  8939  # Compiler flag to prevent dynamic linking.
  8940  link_static_flag="-static"
  8941  
  8942  # Does compiler simultaneously support -c and -o options?
  8943  compiler_c_o="yes"
  8944  
  8945  # Whether or not to add -lc for building shared libraries.
  8946  build_libtool_need_lc=no
  8947  
  8948  # Whether or not to disallow shared libs when runtime libs are static.
  8949  allow_libtool_libs_with_static_runtimes=no
  8950  
  8951  # Compiler flag to allow reflexive dlopens.
  8952  export_dynamic_flag_spec="\${wl}--export-dynamic"
  8953  
  8954  # Compiler flag to generate shared objects directly from archives.
  8955  whole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive"
  8956  
  8957  # Whether the compiler copes with passing no objects directly.
  8958  compiler_needs_object="no"
  8959  
  8960  # Create an old-style archive from a shared archive.
  8961  old_archive_from_new_cmds=""
  8962  
  8963  # Create a temporary old-style archive to link instead of a shared archive.
  8964  old_archive_from_expsyms_cmds=""
  8965  
  8966  # Commands used to build a shared archive.
  8967  archive_cmds="\$CC -shared -nostdlib \$predep_objects \$libobjs \$deplibs \$postdep_objects \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib"
  8968  archive_expsym_cmds="\$CC -shared -nostdlib \$predep_objects \$libobjs \$deplibs \$postdep_objects \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-retain-symbols-file \$wl\$export_symbols -o \$lib"
  8969  
  8970  # Commands used to build a loadable module if different from building
  8971  # a shared archive.
  8972  module_cmds=""
  8973  module_expsym_cmds=""
  8974  
  8975  # Whether we are building with GNU ld or not.
  8976  with_gnu_ld="yes"
  8977  
  8978  # Flag that allows shared libraries with undefined symbols to be built.
  8979  allow_undefined_flag=""
  8980  
  8981  # Flag that enforces no undefined symbols.
  8982  no_undefined_flag=""
  8983  
  8984  # Flag to hardcode $libdir into a binary during linking.
  8985  # This must work even if $libdir does not exist
  8986  hardcode_libdir_flag_spec="\${wl}-rpath \${wl}\$libdir"
  8987  
  8988  # If ld is used when linking, flag to hardcode $libdir into a binary
  8989  # during linking.  This must work even if $libdir does not exist.
  8990  hardcode_libdir_flag_spec_ld=""
  8991  
  8992  # Whether we need a single "-rpath" flag with a separated argument.
  8993  hardcode_libdir_separator=""
  8994  
  8995  # Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
  8996  # DIR into the resulting binary.
  8997  hardcode_direct=no
  8998  
  8999  # Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
  9000  # DIR into the resulting binary and the resulting library dependency is
  9001  # "absolute",i.e impossible to change by setting ${shlibpath_var} if the
  9002  # library is relocated.
  9003  hardcode_direct_absolute=no
  9004  
  9005  # Set to "yes" if using the -LDIR flag during linking hardcodes DIR
  9006  # into the resulting binary.
  9007  hardcode_minus_L=no
  9008  
  9009  # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
  9010  # into the resulting binary.
  9011  hardcode_shlibpath_var=unsupported
  9012  
  9013  # Set to "yes" if building a shared library automatically hardcodes DIR
  9014  # into the library and all subsequent libraries and executables linked
  9015  # against it.
  9016  hardcode_automatic=no
  9017  
  9018  # Set to yes if linker adds runtime paths of dependent libraries
  9019  # to runtime path list.
  9020  inherit_rpath=no
  9021  
  9022  # Whether libtool must link a program against all its dependency libraries.
  9023  link_all_deplibs=no
  9024  
  9025  # Fix the shell variable $srcfile for the compiler.
  9026  fix_srcfile_path=""
  9027  
  9028  # Set to "yes" if exported symbols are required.
  9029  always_export_symbols=no
  9030  
  9031  # The commands to list exported symbols.
  9032  export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
  9033  
  9034  # Symbols that should not be listed in the preloaded symbols.
  9035  exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*"
  9036  
  9037  # Symbols that must always be exported.
  9038  include_expsyms=""
  9039  
  9040  # Commands necessary for linking programs (against libraries) with templates.
  9041  prelink_cmds=""
  9042  
  9043  # Specify filename containing input files.
  9044  file_list_spec=""
  9045  
  9046  # How to hardcode a shared library path into an executable.
  9047  hardcode_action=immediate
  9048  
  9049  # The directories searched by this compiler when creating a shared library.
  9050  compiler_lib_search_dirs="/usr/lib/gcc/x86_64-linux-gnu/4.6 /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /usr/lib/gcc/x86_64-linux-gnu/4.6/../../.."
  9051  
  9052  # Dependencies to place before and after the objects being linked to
  9053  # create a shared library.
  9054  predep_objects="/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.6/crtbeginS.o"
  9055  postdep_objects="/usr/lib/gcc/x86_64-linux-gnu/4.6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crtn.o"
  9056  predeps=""
  9057  postdeps="-lstdc++ -lm -lgcc_s -lc -lgcc_s"
  9058  
  9059  # The library search path used internally by the compiler when linking
  9060  # a shared library.
  9061  compiler_lib_search_path="-L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.."
  9062  
  9063  # ### END LIBTOOL TAG CONFIG: CXX