3 # libtool - Provide generalized library-building support services.
4 # Generated automatically by config.status (libusb) 1.0.8
5 # Libtool was configured on host vicente-P5K-E:
6 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
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
12 # This file is part of GNU Libtool.
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.
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.
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.
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.
36 # The names of the tagged configurations supported by this script.
39 # ### BEGIN LIBTOOL CONFIG
41 # Which release of libtool.m4 was used?
45 # Whether or not to build shared libraries.
46 build_libtool_libs
=yes
48 # Whether or not to build static libraries.
51 # What type of objects to build.
54 # Whether or not to optimize for fast installation.
58 host_alias
=mipsel-linux
59 host=mipsel-unknown-linux-gnu
63 build_alias
=x86_64-linux-gnu
64 build
=x86_64-pc-linux-gnu
67 # A sed program that does not truncate output.
70 # Sed that helps us avoid accidentally triggering echo(1) options like -n.
71 Xsed
="$SED -e 1s/^X//"
73 # A grep program that handles long lines.
79 # A literal string matcher.
82 # A BSD- or MS-compatible name lister.
85 # Whether we need soft or hard links.
88 # What is the maximum length of a command?
89 max_cmd_len
=3458764513820540925
91 # Object file suffix (normally "o").
94 # Executable file suffix (normally "").
97 # whether the shell understands "unset".
100 # turn spaces into newlines.
101 SP2NL
="tr \\040 \\012"
103 # turn newlines into spaces.
104 NL2SP
="tr \\015\\012 \\040\\040"
106 # How to create reloadable object files.
108 reload_cmds
="\$LD\$reload_flag -o \$output\$reload_objs"
110 # An object symbol dumper.
111 OBJDUMP
="mipsel-linux-objdump"
113 # Method to check whether dependent libraries are shared objects.
114 deplibs_check_method
="pass_all"
116 # Command to use when deplibs_check_method == "file_magic".
117 file_magic_cmd
="\$MAGIC_CMD"
120 AR
="mipsel-uclibc-ar"
123 # A symbol stripping program.
124 STRIP
="mipsel-uclibc-strip -R .note -R .comment"
126 # Commands used to install an old-style archive.
127 RANLIB
="mipsel-uclibc-ranlib"
128 old_postinstall_cmds
="chmod 644 \$oldlib~\$RANLIB \$oldlib"
129 old_postuninstall_cmds
=""
132 LTCC
="mipsel-uclibc-gcc"
134 # LTCC compiler flags.
135 LTCFLAGS
="-Os -Wall -DLINUX26 -DCONFIG_BCMWL5 -pipe -DBCMWPA2 -funit-at-a-time -Wno-pointer-sign -mtune=mips32 -mips32 "
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'"
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'"
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'"
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'"
149 # The name of the directory that contains temporary libtool files.
152 # Shell to use when invoking shell scripts.
155 # An echo program that does not interpret backslashes.
158 # Used to examine libraries when file_magic_cmd begins with "file".
161 # Must we lock files when doing compilation?
164 # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
167 # Tool to change global to local symbols on Mac OS X.
170 # Tool to manipulate fat objects and archives on Mac OS X.
173 # ldd/readelf like tool for Mach-O binaries on Mac OS X.
176 # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
179 # Old archive suffix (normally "a").
182 # Shared library suffix (normally ".so").
185 # The commands to extract the exported symbol list from a shared archive.
186 extract_expsyms_cmds
=""
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"
192 # Do we need the "lib" prefix for modules?
195 # Do we need a version for libraries?
198 # Library versioning type.
201 # Shared library runtime path variable.
202 runpath_var
=LD_RUN_PATH
204 # Shared library path variable.
205 shlibpath_var
=LD_LIBRARY_PATH
207 # Is shlibpath searched before the hard-coded library search path?
208 shlibpath_overrides_runpath
=no
210 # Format of library name prefix.
211 libname_spec
="lib\$name"
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}"
217 # The coded name of the library, if different from the real name.
218 soname_spec
="\${libname}\${release}\${shared_ext}\$major"
220 # Command to use after installation of a shared archive.
223 # Command to use after uninstallation of a shared archive.
224 postuninstall_cmds
=""
226 # Commands used to finish a libtool library installation in a directory.
227 finish_cmds
="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir"
229 # As "finish_cmds", except a single script fragment to be evaled but
233 # Whether we should hardcode library paths into libraries.
234 hardcode_into_libs
=yes
236 # Compile-time system search path for libraries.
237 sys_lib_search_path_spec
="/home/vicente/tomato/tools/brcm/K26/hndtools-mipsel-uclibc-4.2.4/lib/gcc/mipsel-linux-uclibc/4.2.4 /home/vicente/tomato/tools/brcm/K26/hndtools-mipsel-uclibc-4.2.4/lib/gcc /home/vicente/tomato/tools/brcm/K26/hndtools-mipsel-uclibc-4.2.4/mipsel-linux-uclibc/lib"
239 # Run-time system search path for libraries.
240 sys_lib_dlsearch_path_spec
="/lib /usr/lib /lib/i386-linux-gnu /usr/lib/i386-linux-gnu /lib/i686-linux-gnu /usr/lib/i686-linux-gnu /usr/local/lib /usr/lib/nvidia-settings /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu /usr/lib/nvidia-current /usr/lib32/nvidia-current /lib32 /usr/lib32 "
242 # Whether dlopen is supported.
243 dlopen_support
=unknown
245 # Whether dlopen of programs is supported.
248 # Whether dlopen of statically linked programs is supported.
249 dlopen_self_static
=unknown
251 # Commands to strip libraries.
252 old_striplib
="mipsel-uclibc-strip -R .note -R .comment --strip-debug"
253 striplib
="mipsel-uclibc-strip -R .note -R .comment --strip-unneeded"
256 # The linker used to build libraries.
257 LD
="mipsel-uclibc-ld"
259 # Commands used to build an old-style archive.
260 old_archive_cmds
="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib"
262 # A language specific compiler.
263 CC
="mipsel-uclibc-gcc"
265 # Is the compiler the GNU compiler?
268 # Compiler flag to turn off builtin functions.
269 no_builtin_flag
=" -fno-builtin"
271 # How to pass a linker flag through the compiler.
274 # Additional compiler flags for building library objects.
275 pic_flag
=" -fPIC -DPIC"
277 # Compiler flag to prevent dynamic linking.
278 link_static_flag
="-static"
280 # Does compiler simultaneously support -c and -o options?
283 # Whether or not to add -lc for building shared libraries.
284 build_libtool_need_lc
=no
286 # Whether or not to disallow shared libs when runtime libs are static.
287 allow_libtool_libs_with_static_runtimes
=no
289 # Compiler flag to allow reflexive dlopens.
290 export_dynamic_flag_spec
="\${wl}--export-dynamic"
292 # Compiler flag to generate shared objects directly from archives.
293 whole_archive_flag_spec
="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive"
295 # Whether the compiler copes with passing no objects directly.
296 compiler_needs_object
="no"
298 # Create an old-style archive from a shared archive.
299 old_archive_from_new_cmds
=""
301 # Create a temporary old-style archive to link instead of a shared archive.
302 old_archive_from_expsyms_cmds
=""
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"
311 # Commands used to build a loadable module if different from building
314 module_expsym_cmds
=""
316 # Whether we are building with GNU ld or not.
319 # Flag that allows shared libraries with undefined symbols to be built.
320 allow_undefined_flag
=""
322 # Flag that enforces no undefined symbols.
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"
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
=""
333 # Whether we need a single "-rpath" flag with a separated argument.
334 hardcode_libdir_separator
=""
336 # Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
337 # DIR into the resulting binary.
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
346 # Set to "yes" if using the -LDIR flag during linking hardcodes DIR
347 # into the resulting binary.
350 # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
351 # into the resulting binary.
352 hardcode_shlibpath_var
=unsupported
354 # Set to "yes" if building a shared library automatically hardcodes DIR
355 # into the library and all subsequent libraries and executables linked
357 hardcode_automatic
=no
359 # Set to yes if linker adds runtime paths of dependent libraries
360 # to runtime path list.
363 # Whether libtool must link a program against all its dependency libraries.
364 link_all_deplibs
=unknown
366 # Fix the shell variable $srcfile for the compiler.
369 # Set to "yes" if exported symbols are required.
370 always_export_symbols
=no
372 # The commands to list exported symbols.
373 export_symbols_cmds
="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
375 # Symbols that should not be listed in the preloaded symbols.
376 exclude_expsyms
="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*"
378 # Symbols that must always be exported.
381 # Commands necessary for linking programs (against libraries) with templates.
384 # Specify filename containing input files.
387 # How to hardcode a shared library path into an executable.
388 hardcode_action
=immediate
390 # ### END LIBTOOL CONFIG
392 # Generated from ltmain.m4sh.
394 # ltmain.sh (GNU libtool) 2.2.6b
395 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
397 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc.
398 # This is free software; see the source for copying conditions. There is NO
399 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
401 # GNU Libtool is free software; you can redistribute it and/or modify
402 # it under the terms of the GNU General Public License as published by
403 # the Free Software Foundation; either version 2 of the License, or
404 # (at your option) any later version.
406 # As a special exception to the GNU General Public License,
407 # if you distribute this file as part of a program or library that
408 # is built using GNU Libtool, you may include this file under the
409 # same distribution terms that you use for the rest of that program.
411 # GNU Libtool is distributed in the hope that it will be useful, but
412 # WITHOUT ANY WARRANTY; without even the implied warranty of
413 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
414 # General Public License for more details.
416 # You should have received a copy of the GNU General Public License
417 # along with GNU Libtool; see the file COPYING. If not, a copy
418 # can be downloaded from http://www.gnu.org/licenses/gpl.html,
419 # or obtained by writing to the Free Software Foundation, Inc.,
420 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
422 # Usage: $progname [OPTION]... [MODE-ARG]...
424 # Provide generalized library-building support services.
426 # --config show all configuration variables
427 # --debug enable verbose shell tracing
428 # -n, --dry-run display commands without modifying any files
429 # --features display basic configuration information and exit
430 # --mode=MODE use operation mode MODE
431 # --preserve-dup-deps don't remove duplicate dependency libraries
432 # --quiet, --silent don't print informational messages
433 # --tag=TAG use configuration variables from tag TAG
434 # -v, --verbose print informational messages (default)
435 # --version print version information
436 # -h, --help print short or long help message
438 # MODE must be one of the following:
440 # clean remove files from the build directory
441 # compile compile a source file into a libtool object
442 # execute automatically set library path, then run a program
443 # finish complete the installation of libtool libraries
444 # install install libraries or executables
445 # link create a library or an executable
446 # uninstall remove libraries from an installed directory
448 # MODE-ARGS vary depending on the MODE.
449 # Try `$progname --help --mode=MODE' for a more detailed description of MODE.
451 # When reporting a bug, please describe a test case to reproduce it and
452 # include the following information:
454 # host-triplet: $host
457 # compiler flags: $LTCFLAGS
458 # linker: $LD (gnu? $with_gnu_ld)
459 # $progname: (GNU libtool) 2.2.6b
460 # automake: $automake_version
461 # autoconf: $autoconf_version
463 # Report bugs to <bug-libtool@gnu.org>.
469 package_revision
=1.3017
471 # Be Bourne compatible
472 if test -n "${ZSH_VERSION+set}" && (emulate sh
) >/dev
/null
2>&1; then
475 # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
476 # is contrary to our usage. Disable this feature.
477 alias -g '${1+"$@"}'='"$@"'
480 case `(set -o) 2>/dev/null` in *posix
*) set -o posix
;; esac
482 BIN_SH
=xpg4
; export BIN_SH
# for Tru64
483 DUALCASE
=1; export DUALCASE
# for MKS sh
485 # NLS nuisances: We save the old values to restore during execute mode.
486 # Only set LANG and LC_ALL to C if already set.
487 # These must not be set unconditionally because not all systems understand
488 # e.g. LANG=C (notably SCO).
491 for lt_var
in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
493 eval "if test \"\${$lt_var+set}\" = set; then
494 save_$lt_var=\$$lt_var
497 lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
498 lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
510 : ${EGREP="/bin/grep -E"}
511 : ${FGREP="/bin/grep -F"}
512 : ${GREP="/bin/grep"}
519 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
520 : ${Xsed="$SED -e 1s/^X//"}
525 EXIT_MISMATCH
=63 # $? = 63 is used to indicate version mismatch to missing.
526 EXIT_SKIP
=77 # $? = 77 is used to indicate a skipped test to automake.
528 exit_status
=$EXIT_SUCCESS
530 # Make sure IFS has a sensible default
535 dirname="s,/[^/]*$,,"
538 # func_dirname_and_basename file append nondir_replacement
539 # perform func_basename and func_dirname in a single function
541 # dirname: Compute the dirname of FILE. If nonempty,
542 # add APPEND to the result, otherwise set result
543 # to NONDIR_REPLACEMENT.
544 # value returned in "$func_dirname_result"
545 # basename: Compute filename of FILE.
546 # value retuned in "$func_basename_result"
547 # Implementation must be kept synchronized with func_dirname
548 # and func_basename. For efficiency, we do not delegate to
549 # those functions but instead duplicate the functionality here.
550 func_dirname_and_basename
()
552 # Extract subdirectory from the argument.
553 func_dirname_result
=`$ECHO "X${1}" | $Xsed -e "$dirname"`
554 if test "X$func_dirname_result" = "X${1}"; then
555 func_dirname_result
="${3}"
557 func_dirname_result
="$func_dirname_result${2}"
559 func_basename_result
=`$ECHO "X${1}" | $Xsed -e "$basename"`
562 # Generated shell functions inserted here.
564 # func_dirname file append nondir_replacement
565 # Compute the dirname of FILE. If nonempty, add APPEND to the result,
566 # otherwise set result to NONDIR_REPLACEMENT.
570 */*) func_dirname_result
="${1%/*}${2}" ;;
571 * ) func_dirname_result
="${3}" ;;
578 func_basename_result
="${1##*/}"
581 # func_dirname_and_basename file append nondir_replacement
582 # perform func_basename and func_dirname in a single function
584 # dirname: Compute the dirname of FILE. If nonempty,
585 # add APPEND to the result, otherwise set result
586 # to NONDIR_REPLACEMENT.
587 # value returned in "$func_dirname_result"
588 # basename: Compute filename of FILE.
589 # value retuned in "$func_basename_result"
590 # Implementation must be kept synchronized with func_dirname
591 # and func_basename. For efficiency, we do not delegate to
592 # those functions but instead duplicate the functionality here.
593 func_dirname_and_basename
()
596 */*) func_dirname_result
="${1%/*}${2}" ;;
597 * ) func_dirname_result
="${3}" ;;
599 func_basename_result
="${1##*/}"
602 # func_stripname prefix suffix name
603 # strip PREFIX and SUFFIX off of NAME.
604 # PREFIX and SUFFIX must not contain globbing or regex special
605 # characters, hashes, percent signs, but SUFFIX may contain a leading
606 # dot (in which case that matches only a dot).
609 # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
610 # positional parameters, so assign one to ordinary parameter first.
611 func_stripname_result
=${3}
612 func_stripname_result
=${func_stripname_result#"${1}"}
613 func_stripname_result
=${func_stripname_result%"${2}"}
619 func_opt_split_opt
=${1%%=*}
620 func_opt_split_arg
=${1#*=}
627 *.lo
) func_lo2o_result
=${1%.lo}.
${objext} ;;
628 *) func_lo2o_result
=${1} ;;
632 # func_xform libobj-or-source
635 func_xform_result
=${1%.*}.lo
638 # func_arith arithmetic-term...
641 func_arith_result
=$
(( $
* ))
645 # STRING may not start with a hyphen.
648 func_len_result
=${#1}
652 # func_append var value
653 # Append VALUE to the end of shell variable VAR.
658 # Generated shell functions inserted here.
660 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
661 # is ksh but when the shell is invoked as "sh" and the current value of
662 # the _XPG environment variable is not equal to 1 (one), the special
663 # positional parameter $0, within a function call, is the name of the
667 # The name of this program:
668 # In the unlikely event $progname began with a '-', it would play havoc with
669 # func_echo (imagine progname=-n), so we prepend ./ in that case:
670 func_dirname_and_basename
"$progpath"
671 progname
=$func_basename_result
673 -*) progname
=.
/$progname ;;
676 # Make sure we have an absolute path for reexecution:
678 [\\/]*|
[A-Za-z
]:\\*) ;;
680 progdir
=$func_dirname_result
681 progdir
=`cd "$progdir" && pwd`
682 progpath
="$progdir/$progname"
687 for progdir
in $PATH; do
689 test -x "$progdir/$progname" && break
692 test -n "$progdir" || progdir
=`pwd`
693 progpath
="$progdir/$progname"
697 # Sed substitution that helps us do robust quoting. It backslashifies
698 # metacharacters that are still active within double-quoted strings.
699 Xsed
="${SED}"' -e 1s/^X//'
700 sed_quote_subst
='s/\([`"$\\]\)/\\\1/g'
702 # Same as above, but do not quote variable references.
703 double_quote_subst
='s/\(["`\\]\)/\\\1/g'
705 # Re-`\' parameter expansions in output of double_quote_subst that were
706 # `\'-ed in input to the same. If an odd number of `\' preceded a '$'
707 # in input to double_quote_subst, that '$' was protected from expansion.
708 # Since each input `\' is now two `\'s, look for any number of runs of
709 # four `\'s followed by two `\'s and then a '$'. `\' that '$'.
714 sed_double_backslash
="\
718 s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
729 # Echo program name prefixed message, along with the current mode
730 # name if it has been set yet.
733 $ECHO "$progname${mode+: }$mode: $*"
736 # func_verbose arg...
737 # Echo program name prefixed message in verbose mode only.
740 $opt_verbose && func_echo
${1+"$@"}
742 # A bug in bash halts the script if the last line of a function
743 # fails when set -e is in force, so we need another command to
749 # Echo program name prefixed message to standard error.
752 $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
755 # func_warning arg...
756 # Echo program name prefixed warning message to standard error.
759 $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
765 # func_fatal_error arg...
766 # Echo program name prefixed message to standard error, and exit.
773 # func_fatal_help arg...
774 # Echo program name prefixed message to standard error, followed by
775 # a help hint, and exit.
779 func_fatal_error
"$help"
781 help="Try \`$progname --help' for more information." ## default
784 # func_grep expression filename
785 # Check whether EXPRESSION matches any line of FILENAME, without output.
788 $GREP "$1" "$2" >/dev
/null
2>&1
792 # func_mkdir_p directory-path
793 # Make sure the entire path to DIRECTORY-PATH is available.
796 my_directory_path
="$1"
799 if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
801 # Protect directory names starting with `-'
802 case $my_directory_path in
803 -*) my_directory_path
="./$my_directory_path" ;;
806 # While some portion of DIR does not yet exist...
807 while test ! -d "$my_directory_path"; do
808 # ...make a list in topmost first order. Use a colon delimited
809 # list incase some portion of path contains whitespace.
810 my_dir_list
="$my_directory_path:$my_dir_list"
812 # If the last portion added has no slash in it, the list is done
813 case $my_directory_path in */*) ;; *) break ;; esac
815 # ...otherwise throw away the child directory and loop
816 my_directory_path
=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
818 my_dir_list
=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
820 save_mkdir_p_IFS
="$IFS"; IFS
=':'
821 for my_dir
in $my_dir_list; do
822 IFS
="$save_mkdir_p_IFS"
823 # mkdir can fail with a `File exist' error if two processes
824 # try to create one of the directories concurrently. Don't
826 $MKDIR "$my_dir" 2>/dev
/null ||
:
828 IFS
="$save_mkdir_p_IFS"
830 # Bail out if we (or some other process) failed to create a directory.
831 test -d "$my_directory_path" || \
832 func_fatal_error
"Failed to create \`$1'"
837 # func_mktempdir [string]
838 # Make a temporary directory that won't clash with other running
839 # libtool processes, and avoids race conditions if possible. If
840 # given, STRING is the basename for that directory.
843 my_template
="${TMPDIR-/tmp}/${1-$progname}"
845 if test "$opt_dry_run" = ":"; then
846 # Return a directory name, but don't create it in dry-run mode
847 my_tmpdir
="${my_template}-$$"
850 # If mktemp works, use that first and foremost
851 my_tmpdir
=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
853 if test ! -d "$my_tmpdir"; then
854 # Failing that, at least try and use $RANDOM to avoid a race
855 my_tmpdir
="${my_template}-${RANDOM-0}$$"
857 save_mktempdir_umask
=`umask`
860 umask $save_mktempdir_umask
863 # If we're not in dry-run mode, bomb out on failure
864 test -d "$my_tmpdir" || \
865 func_fatal_error
"cannot create temporary directory \`$my_tmpdir'"
868 $ECHO "X$my_tmpdir" |
$Xsed
872 # func_quote_for_eval arg
873 # Aesthetically quote ARG to be evaled later.
874 # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
875 # is double-quoted, suitable for a subsequent eval, whereas
876 # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
877 # which are still active within double quotes backslashified.
878 func_quote_for_eval
()
882 func_quote_for_eval_unquoted_result=`$ECHO "X$1" |
$Xsed -e "$sed_quote_subst"` ;;
884 func_quote_for_eval_unquoted_result="$1" ;;
887 case $func_quote_for_eval_unquoted_result in
888 # Double-quote args containing shell metacharacters to delay
889 # word splitting, command substitution and and variable
890 # expansion for a subsequent eval.
891 # Many Bourne shells cannot handle close brackets correctly
892 # in scan sets, so we specify it separately.
893 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
894 func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
897 func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
902 # func_quote_for_expand arg
903 # Aesthetically quote ARG to be evaled later; same as above,
904 # but do not quote variable references.
905 func_quote_for_expand ()
909 my_arg
=`$ECHO "X$1" | $Xsed \
910 -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
916 # Double-quote args containing shell metacharacters to delay
917 # word splitting and command substitution for a subsequent eval.
918 # Many Bourne shells cannot handle close brackets correctly
919 # in scan sets, so we specify it separately.
920 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
925 func_quote_for_expand_result
="$my_arg"
929 # func_show_eval cmd [fail_exp]
930 # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
931 # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
932 # is given, then evaluate it.
938 ${opt_silent-false} ||
{
939 func_quote_for_expand
"$my_cmd"
940 eval "func_echo $func_quote_for_expand_result"
943 if ${opt_dry_run-false}; then :; else
946 if test "$my_status" -eq 0; then :; else
947 eval "(exit $my_status); $my_fail_exp"
953 # func_show_eval_locale cmd [fail_exp]
954 # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
955 # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
956 # is given, then evaluate it. Use the saved locale for evaluation.
957 func_show_eval_locale
()
962 ${opt_silent-false} ||
{
963 func_quote_for_expand
"$my_cmd"
964 eval "func_echo $func_quote_for_expand_result"
967 if ${opt_dry_run-false}; then :; else
968 eval "$lt_user_locale
971 eval "$lt_safe_locale"
972 if test "$my_status" -eq 0; then :; else
973 eval "(exit $my_status); $my_fail_exp"
983 # Echo version message to standard output and exit.
986 $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
989 s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
996 # Echo short help message to standard output and exit.
999 $SED -n '/^# Usage:/,/# -h/ {
1002 s/\$progname/'$progname'/
1006 $ECHO "run \`$progname --help | more' for full usage"
1011 # Echo long help message to standard output and exit.
1014 $SED -n '/^# Usage:/,/# Report bugs to/ {
1017 s*\$progname*'$progname'*
1019 s*\$SHELL*'"$SHELL"'*
1021 s*\$LTCFLAGS*'"$LTCFLAGS"'*
1023 s/\$with_gnu_ld/'"$with_gnu_ld"'/
1024 s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
1025 s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
1031 # func_missing_arg argname
1032 # Echo program name prefixed message to standard error and set global
1036 func_error
"missing argument for $1"
1046 # Check that we have a working $ECHO.
1047 if test "X$1" = X--no-reexec
; then
1048 # Discard the --no-reexec flag, and continue.
1050 elif test "X$1" = X--fallback-echo
; then
1051 # Avoid inline document here, it may be left over
1053 elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
1054 # Yippee, $ECHO works!
1057 # Restart under the correct shell, and then maybe $ECHO will work.
1058 exec $SHELL "$progpath" --no-reexec ${1+"$@"}
1061 if test "X$1" = X--fallback-echo
; then
1062 # used as fallback echo
1070 magic
="%%%MAGIC variable%%%"
1071 magic_exe
="%%%MAGIC EXE variable%%%"
1078 lo2o
="s/\\.lo\$/.${objext}/"
1079 o2lo
="s/\\.${objext}\$/.lo/"
1084 opt_duplicate_deps
=false
1088 # If this variable is set in any of the actions, the command in it
1089 # will be execed at the end. This prevents here-documents from being
1090 # left over by shells.
1093 # func_fatal_configuration arg...
1094 # Echo program name prefixed message to standard error, followed by
1095 # a configuration failure hint, and exit.
1096 func_fatal_configuration
()
1098 func_error
${1+"$@"}
1099 func_error
"See the $PACKAGE documentation for more information."
1100 func_fatal_error
"Fatal configuration error."
1105 # Display the configuration for all the tags in this script.
1108 re_begincf
='^# ### BEGIN LIBTOOL'
1109 re_endcf
='^# ### END LIBTOOL'
1111 # Default configuration.
1112 $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
1114 # Now print the configurations for the tags.
1115 for tagname
in $taglist; do
1116 $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
1123 # Display the features supported by this script.
1127 if test "$build_libtool_libs" = yes; then
1128 $ECHO "enable shared libraries"
1130 $ECHO "disable shared libraries"
1132 if test "$build_old_libs" = yes; then
1133 $ECHO "enable static libraries"
1135 $ECHO "disable static libraries"
1141 # func_enable_tag tagname
1142 # Verify that TAGNAME is valid, and either flag an error and exit, or
1143 # enable the TAGNAME tag. We also add TAGNAME to the global $taglist
1150 re_begincf
="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
1151 re_endcf
="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
1152 sed_extractcf
="/$re_begincf/,/$re_endcf/p"
1157 func_fatal_error
"invalid tag name: $tagname"
1161 # Don't test for the "default" C tag, as we know it's
1162 # there but not specially marked.
1166 if $GREP "$re_begincf" "$progpath" >/dev
/null
2>&1; then
1167 taglist
="$taglist $tagname"
1169 # Evaluate the configuration. Be careful to quote the path
1170 # and the sed script, to avoid splitting on whitespace, but
1171 # also don't use non-portable quotes within backquotes within
1172 # quotes we have to do it in 2 steps:
1173 extractedcf
=`$SED -n -e "$sed_extractcf" < "$progpath"`
1176 func_error
"ignoring unknown tag $tagname"
1182 # Parse options once, thoroughly. This comes as soon as possible in
1183 # the script to make things like `libtool --version' happen quickly.
1186 # Shorthand for --mode=foo, only valid as the first argument
1189 shift; set dummy
--mode clean
${1+"$@"}; shift
1191 compile|compil|compi|comp|com|co|c
)
1192 shift; set dummy
--mode compile
${1+"$@"}; shift
1194 execute|execut|execu|
exec|exe|ex|e
)
1195 shift; set dummy
--mode execute
${1+"$@"}; shift
1197 finish|finis|fini|fin|
fi|f
)
1198 shift; set dummy
--mode finish
${1+"$@"}; shift
1200 install|instal|insta|inst|ins|
in|i
)
1201 shift; set dummy
--mode install ${1+"$@"}; shift
1204 shift; set dummy
--mode link
${1+"$@"}; shift
1206 uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u
)
1207 shift; set dummy
--mode uninstall
${1+"$@"}; shift
1211 # Parse non-mode specific arguments:
1212 while test "$#" -gt 0; do
1217 --config) func_config
;;
1219 --debug) preserve_args
="$preserve_args $opt"
1220 func_echo
"enabling shell trace mode"
1225 -dlopen) test "$#" -eq 0 && func_missing_arg
"$opt" && break
1226 execute_dlfiles
="$execute_dlfiles $1"
1230 --dry-run |
-n) opt_dry_run
=: ;;
1231 --features) func_features
;;
1232 --finish) mode
="finish" ;;
1234 --mode) test "$#" -eq 0 && func_missing_arg
"$opt" && break
1236 # Valid mode arguments:
1246 # Catch anything else as an error
1247 *) func_error
"invalid argument for $opt"
1257 --preserve-dup-deps)
1258 opt_duplicate_deps
=: ;;
1260 --quiet|
--silent) preserve_args
="$preserve_args $opt"
1264 --verbose|
-v) preserve_args
="$preserve_args $opt"
1268 --tag) test "$#" -eq 0 && func_missing_arg
"$opt" && break
1269 preserve_args
="$preserve_args $opt $1"
1270 func_enable_tag
"$1" # tagname is set here
1274 # Separate optargs to long options:
1275 -dlopen=*|
--mode=*|
--tag=*)
1276 func_opt_split
"$opt"
1277 set dummy
"$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
1281 -\?|
-h) func_usage
;;
1282 --help) opt_help
=: ;;
1283 --version) func_version
;;
1285 -*) func_fatal_help
"unrecognized option \`$opt'" ;;
1295 *cygwin
* |
*mingw
* |
*pw32
* |
*cegcc
*)
1296 # don't eliminate duplications in $postdeps and $predeps
1297 opt_duplicate_compiler_generated_deps
=:
1300 opt_duplicate_compiler_generated_deps
=$opt_duplicate_deps
1304 # Having warned about all mis-specified options, bail out if
1305 # anything was wrong.
1306 $exit_cmd $EXIT_FAILURE
1309 # func_check_version_match
1310 # Ensure that we are using m4 macros, and libtool script from the same
1311 # release of libtool.
1312 func_check_version_match
()
1314 if test "$package_revision" != "$macro_revision"; then
1315 if test "$VERSION" != "$macro_version"; then
1316 if test -z "$macro_version"; then
1318 $progname: Version mismatch error. This is $PACKAGE $VERSION, but the
1319 $progname: definition of this LT_INIT comes from an older release.
1320 $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
1321 $progname: and run autoconf again.
1325 $progname: Version mismatch error. This is $PACKAGE $VERSION, but the
1326 $progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
1327 $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
1328 $progname: and run autoconf again.
1333 $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
1334 $progname: but the definition of this LT_INIT comes from revision $macro_revision.
1335 $progname: You should recreate aclocal.m4 with macros from revision $package_revision
1336 $progname: of $PACKAGE $VERSION and run autoconf again.
1350 # Sanity checks first:
1351 func_check_version_match
1353 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
1354 func_fatal_configuration
"not configured to build any kind of library"
1357 test -z "$mode" && func_fatal_error
"error: you must specify a MODE."
1361 eval std_shrext
=\"$shrext_cmds\"
1364 # Only execute mode is allowed to have -dlopen flags.
1365 if test -n "$execute_dlfiles" && test "$mode" != execute
; then
1366 func_error
"unrecognized option \`-dlopen'"
1371 # Change the help message to a mode-specific one.
1372 generic_help
="$help"
1373 help="Try \`$progname --help --mode=$mode' for more information."
1378 # True iff FILE is a libtool `.la' library or `.lo' object file.
1379 # This function is only a basic sanity check; it will hardly flush out
1380 # determined imposters.
1384 $SED -e 4q
"$1" 2>/dev
/null \
1385 |
$GREP "^# Generated by .*$PACKAGE" > /dev
/null
2>&1
1388 # func_lalib_unsafe_p file
1389 # True iff FILE is a libtool `.la' library or `.lo' object file.
1390 # This function implements the same check as func_lalib_p without
1391 # resorting to external programs. To this end, it redirects stdin and
1392 # closes it afterwards, without saving the original file descriptor.
1393 # As a safety measure, use it only where a negative result would be
1394 # fatal anyway. Works if `file' does not exist.
1395 func_lalib_unsafe_p
()
1398 if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
1399 for lalib_p_l
in 1 2 3 4
1402 case "$lalib_p_line" in
1403 \
#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
1408 test "$lalib_p" = yes
1411 # func_ltwrapper_script_p file
1412 # True iff FILE is a libtool wrapper script
1413 # This function is only a basic sanity check; it will hardly flush out
1414 # determined imposters.
1415 func_ltwrapper_script_p
()
1420 # func_ltwrapper_executable_p file
1421 # True iff FILE is a libtool wrapper executable
1422 # This function is only a basic sanity check; it will hardly flush out
1423 # determined imposters.
1424 func_ltwrapper_executable_p
()
1426 func_ltwrapper_exec_suffix
=
1429 *) func_ltwrapper_exec_suffix
=.exe
;;
1431 $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev
/null
2>&1
1434 # func_ltwrapper_scriptname file
1435 # Assumes file is an ltwrapper_executable
1436 # uses $file to determine the appropriate filename for a
1437 # temporary ltwrapper_script.
1438 func_ltwrapper_scriptname
()
1440 func_ltwrapper_scriptname_result
=""
1441 if func_ltwrapper_executable_p
"$1"; then
1442 func_dirname_and_basename
"$1" "" "."
1443 func_stripname
'' '.exe' "$func_basename_result"
1444 func_ltwrapper_scriptname_result
="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
1448 # func_ltwrapper_p file
1449 # True iff FILE is a libtool wrapper script or wrapper executable
1450 # This function is only a basic sanity check; it will hardly flush out
1451 # determined imposters.
1454 func_ltwrapper_script_p
"$1" || func_ltwrapper_executable_p
"$1"
1458 # func_execute_cmds commands fail_cmd
1459 # Execute tilde-delimited COMMANDS.
1460 # If FAIL_CMD is given, eval that upon failure.
1461 # FAIL_CMD may read-access the current command in variable CMD!
1462 func_execute_cmds
()
1465 save_ifs
=$IFS; IFS
='~'
1469 func_show_eval
"$cmd" "${2-:}"
1476 # Source FILE, adding directory component if necessary.
1477 # Note that it is not necessary on cygwin/mingw to append a dot to
1478 # FILE even if both FILE and FILE.exe exist: automatic-append-.exe
1479 # behavior happens only for exec(3), not for open(2)! Also, sourcing
1480 # `FILE.' does not work on cygwin managed mounts.
1485 */* |
*\\*) .
"$1" ;;
1491 # func_infer_tag arg
1492 # Infer tagged configuration to use if any are available and
1493 # if one wasn't chosen via the "--tag" command line option.
1494 # Only attempt this if the compiler in the base compile
1495 # command doesn't match the default compiler.
1496 # arg is usually of the form 'gcc ...'
1500 if test -n "$available_tags" && test -z "$tagname"; then
1503 func_quote_for_eval
"$arg"
1504 CC_quoted
="$CC_quoted $func_quote_for_eval_result"
1507 # Blanks in the command may have been stripped by the calling shell,
1508 # but not from the CC environment variable when configure was run.
1509 " $CC "* |
"$CC "* |
" `$ECHO $CC` "* |
"`$ECHO $CC` "* |
" $CC_quoted"* |
"$CC_quoted "* |
" `$ECHO $CC_quoted` "* |
"`$ECHO $CC_quoted` "*) ;;
1510 # Blanks at the start of $base_compile will cause this to fail
1511 # if we don't check for them as well.
1513 for z
in $available_tags; do
1514 if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev
/null
; then
1515 # Evaluate the configuration.
1516 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
1519 # Double-quote args containing other shell metacharacters.
1520 func_quote_for_eval
"$arg"
1521 CC_quoted
="$CC_quoted $func_quote_for_eval_result"
1524 " $CC "* |
"$CC "* |
" `$ECHO $CC` "* |
"`$ECHO $CC` "* |
" $CC_quoted"* |
"$CC_quoted "* |
" `$ECHO $CC_quoted` "* |
"`$ECHO $CC_quoted` "*)
1525 # The compiler in the base compile command matches
1526 # the one in the tagged configuration.
1527 # Assume this is the tagged configuration we want.
1534 # If $tagname still isn't set, then no tagged configuration
1535 # was found and let the user know that the "--tag" command
1536 # line option must be used.
1537 if test -z "$tagname"; then
1538 func_echo
"unable to infer tagged configuration"
1539 func_fatal_error
"specify a tag with \`--tag'"
1541 # func_verbose "using $tagname tagged configuration"
1550 # func_write_libtool_object output_name pic_name nonpic_name
1551 # Create a libtool object file (analogous to a ".la" file),
1552 # but don't create it if we're doing a dry run.
1553 func_write_libtool_object
()
1556 if test "$build_libtool_libs" = yes; then
1562 if test "$build_old_libs" = yes; then
1563 write_oldobj
=\'${3}\'
1569 cat >${write_libobj}T
<<EOF
1570 # $write_libobj - a libtool object file
1571 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
1573 # Please DO NOT delete this file!
1574 # It is necessary for linking the library.
1576 # Name of the PIC object.
1577 pic_object=$write_lobj
1579 # Name of the non-PIC object
1580 non_pic_object=$write_oldobj
1583 $MV "${write_libobj}T" "${write_libobj}"
1587 # func_mode_compile arg...
1588 func_mode_compile
()
1591 # Get the compilation command and the source file.
1593 srcfile
="$nonopt" # always keep a non-empty value in "srcfile"
1605 # do not "continue". Instead, add this to base_compile
1617 # Accept any command-line options.
1620 test -n "$libobj" && \
1621 func_fatal_error
"you cannot specify \`-o' more than once"
1626 -pie |
-fpie |
-fPIE)
1627 pie_flag
="$pie_flag $arg"
1631 -shared |
-static |
-prefer-pic |
-prefer-non-pic)
1642 arg_mode
=arg
# the next one goes into the "base_compile" arg list
1643 continue # The current "srcfile" will either be retained or
1644 ;; # replaced later. I would guess that would be a bug.
1647 func_stripname
'-Wc,' '' "$arg"
1648 args
=$func_stripname_result
1650 save_ifs
="$IFS"; IFS
=','
1651 for arg
in $args; do
1653 func_quote_for_eval
"$arg"
1654 lastarg
="$lastarg $func_quote_for_eval_result"
1657 func_stripname
' ' '' "$lastarg"
1658 lastarg
=$func_stripname_result
1660 # Add the arguments to base_compile.
1661 base_compile
="$base_compile $lastarg"
1666 # Accept the current argument as the source file.
1667 # The previous "srcfile" becomes the current argument.
1674 esac # case $arg_mode
1676 # Aesthetically quote the previous argument.
1677 func_quote_for_eval
"$lastarg"
1678 base_compile
="$base_compile $func_quote_for_eval_result"
1683 func_fatal_error
"you must specify an argument for -Xcompile"
1686 func_fatal_error
"you must specify a target with \`-o'"
1689 # Get the name of the library object.
1690 test -z "$libobj" && {
1691 func_basename
"$srcfile"
1692 libobj
="$func_basename_result"
1697 # Recognize several different file suffixes.
1698 # If the user specifies -o file.o, it is replaced with file.lo
1701 *.ada |
*.adb |
*.ads |
*.asm | \
1702 *.c
++ |
*.cc |
*.ii |
*.class |
*.cpp |
*.cxx | \
1703 *.
[fF
][09]? |
*.
for |
*.java |
*.obj |
*.sx
)
1704 func_xform
"$libobj"
1705 libobj
=$func_xform_result
1710 *.lo
) func_lo2o
"$libobj"; obj
=$func_lo2o_result ;;
1712 func_fatal_error
"cannot determine name of library object from \`$libobj'"
1716 func_infer_tag
$base_compile
1718 for arg
in $later; do
1721 test "$build_libtool_libs" != yes && \
1722 func_fatal_configuration
"can not build a shared library"
1728 build_libtool_libs
=no
1745 func_quote_for_eval
"$libobj"
1746 test "X$libobj" != "X$func_quote_for_eval_result" \
1747 && $ECHO "X$libobj" |
$GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
1748 && func_warning
"libobj name \`$libobj' may not contain shell special characters."
1749 func_dirname_and_basename
"$obj" "/" ""
1750 objname
="$func_basename_result"
1751 xdir
="$func_dirname_result"
1752 lobj
=${xdir}$objdir/$objname
1754 test -z "$base_compile" && \
1755 func_fatal_help
"you must specify a compilation command"
1757 # Delete any leftover library objects.
1758 if test "$build_old_libs" = yes; then
1759 removelist
="$obj $lobj $libobj ${libobj}T"
1761 removelist
="$lobj $libobj ${libobj}T"
1764 # On Cygwin there's no "real" PIC flag so we must build both object types
1766 cygwin
* | mingw
* | pw32
* | os2
* | cegcc
*)
1770 if test "$pic_mode" = no
&& test "$deplibs_check_method" != pass_all
; then
1771 # non-PIC code in shared libraries is not supported
1775 # Calculate the filename of the output object if compiler does
1776 # not support -o with -c
1777 if test "$compiler_c_o" = no
; then
1778 output_obj
=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.
${objext}
1779 lockfile
="$output_obj.lock"
1786 # Lock this critical section if it is needed
1787 # We use this script file to make the link, it avoids creating a new file
1788 if test "$need_locks" = yes; then
1789 until $opt_dry_run ||
ln "$progpath" "$lockfile" 2>/dev
/null
; do
1790 func_echo
"Waiting for $lockfile to be removed"
1793 elif test "$need_locks" = warn
; then
1794 if test -f "$lockfile"; then
1796 *** ERROR, $lockfile exists and contains:
1797 `cat $lockfile 2>/dev/null`
1799 This indicates that another process is trying to use the same
1800 temporary object file, and libtool could not work around it because
1801 your compiler does not support \`-c' and \`-o' together. If you
1802 repeat this compilation, it may succeed, by chance, but you had better
1803 avoid parallel builds (make -j) in this platform, or get a better
1806 $opt_dry_run ||
$RM $removelist
1809 removelist
="$removelist $output_obj"
1810 $ECHO "$srcfile" > "$lockfile"
1813 $opt_dry_run ||
$RM $removelist
1814 removelist
="$removelist $lockfile"
1815 trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
1817 if test -n "$fix_srcfile_path"; then
1818 eval srcfile
=\"$fix_srcfile_path\"
1820 func_quote_for_eval
"$srcfile"
1821 qsrcfile
=$func_quote_for_eval_result
1823 # Only build a PIC object if we are building libtool libraries.
1824 if test "$build_libtool_libs" = yes; then
1825 # Without this assignment, base_compile gets emptied.
1826 fbsd_hideous_sh_bug
=$base_compile
1828 if test "$pic_mode" != no
; then
1829 command="$base_compile $qsrcfile $pic_flag"
1831 # Don't build PIC code
1832 command="$base_compile $qsrcfile"
1835 func_mkdir_p
"$xdir$objdir"
1837 if test -z "$output_obj"; then
1838 # Place PIC objects in $objdir
1839 command="$command -o $lobj"
1842 func_show_eval_locale
"$command" \
1843 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
1845 if test "$need_locks" = warn
&&
1846 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1848 *** ERROR, $lockfile contains:
1849 `cat $lockfile 2>/dev/null`
1851 but it should contain:
1854 This indicates that another process is trying to use the same
1855 temporary object file, and libtool could not work around it because
1856 your compiler does not support \`-c' and \`-o' together. If you
1857 repeat this compilation, it may succeed, by chance, but you had better
1858 avoid parallel builds (make -j) in this platform, or get a better
1861 $opt_dry_run ||
$RM $removelist
1865 # Just move the object if needed, then go on to compile the next one
1866 if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
1867 func_show_eval
'$MV "$output_obj" "$lobj"' \
1868 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
1871 # Allow error messages only from the first compilation.
1872 if test "$suppress_opt" = yes; then
1873 suppress_output
=' >/dev/null 2>&1'
1877 # Only build a position-dependent object if we build old libraries.
1878 if test "$build_old_libs" = yes; then
1879 if test "$pic_mode" != yes; then
1880 # Don't build PIC code
1881 command="$base_compile $qsrcfile$pie_flag"
1883 command="$base_compile $qsrcfile $pic_flag"
1885 if test "$compiler_c_o" = yes; then
1886 command="$command -o $obj"
1889 # Suppress compiler output if we already did a PIC compilation.
1890 command="$command$suppress_output"
1891 func_show_eval_locale
"$command" \
1892 '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
1894 if test "$need_locks" = warn
&&
1895 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1897 *** ERROR, $lockfile contains:
1898 `cat $lockfile 2>/dev/null`
1900 but it should contain:
1903 This indicates that another process is trying to use the same
1904 temporary object file, and libtool could not work around it because
1905 your compiler does not support \`-c' and \`-o' together. If you
1906 repeat this compilation, it may succeed, by chance, but you had better
1907 avoid parallel builds (make -j) in this platform, or get a better
1910 $opt_dry_run ||
$RM $removelist
1914 # Just move the object if needed
1915 if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
1916 func_show_eval
'$MV "$output_obj" "$obj"' \
1917 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
1922 func_write_libtool_object
"$libobj" "$objdir/$objname" "$objname"
1924 # Unlock the critical section if it was locked
1925 if test "$need_locks" != no
; then
1926 removelist
=$lockfile
1935 test "$mode" = compile
&& func_mode_compile
${1+"$@"}
1940 # We need to display help for each of the modes.
1943 # Generic help is extracted from the usage comments
1944 # at the start of this file.
1950 "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
1952 Remove files from the build directory.
1954 RM is the name of the program to use to delete files associated with each FILE
1955 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
1958 If FILE is a libtool library, object or program, all the files associated
1959 with it are deleted. Otherwise, only FILE itself is deleted using RM."
1964 "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
1966 Compile a source file into a libtool library object.
1968 This mode accepts the following additional options:
1970 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
1971 -no-suppress do not suppress compiler output for multiple passes
1972 -prefer-pic try to building PIC objects only
1973 -prefer-non-pic try to building non-PIC objects only
1974 -shared do not build a \`.o' file suitable for static linking
1975 -static only build a \`.o' file suitable for static linking
1977 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
1978 from the given SOURCEFILE.
1980 The output file name is determined by removing the directory component from
1981 SOURCEFILE, then substituting the C source code suffix \`.c' with the
1982 library object suffix, \`.lo'."
1987 "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
1989 Automatically set library path, then run a program.
1991 This mode accepts the following additional options:
1993 -dlopen FILE add the directory containing FILE to the library path
1995 This mode sets the library path environment variable according to \`-dlopen'
1998 If any of the ARGS are libtool executable wrappers, then they are translated
1999 into their corresponding uninstalled binary, and any of their required library
2000 directories are added to the library path.
2002 Then, COMMAND is executed, with ARGS as arguments."
2007 "Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
2009 Complete the installation of libtool libraries.
2011 Each LIBDIR is a directory that contains libtool libraries.
2013 The commands that this mode executes may require superuser privileges. Use
2014 the \`--dry-run' option if you just want to see what would be executed."
2019 "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
2021 Install executables or libraries.
2023 INSTALL-COMMAND is the installation command. The first component should be
2024 either the \`install' or \`cp' program.
2026 The following components of INSTALL-COMMAND are treated specially:
2028 -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation
2030 The rest of the components are interpreted as arguments to that command (only
2031 BSD-compatible install options are recognized)."
2036 "Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
2038 Link object files or libraries together to form another library, or to
2039 create an executable program.
2041 LINK-COMMAND is a command using the C compiler that you would use to create
2042 a program from several object files.
2044 The following components of LINK-COMMAND are treated specially:
2046 -all-static do not do any dynamic linking at all
2047 -avoid-version do not add a version suffix if possible
2048 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
2049 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
2050 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
2051 -export-symbols SYMFILE
2052 try to export only the symbols listed in SYMFILE
2053 -export-symbols-regex REGEX
2054 try to export only the symbols matching REGEX
2055 -LLIBDIR search LIBDIR for required installed libraries
2056 -lNAME OUTPUT-FILE requires the installed library libNAME
2057 -module build a library that can dlopened
2058 -no-fast-install disable the fast-install mode
2059 -no-install link a not-installable executable
2060 -no-undefined declare that a library does not refer to external symbols
2061 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
2062 -objectlist FILE Use a list of object files found in FILE to specify objects
2063 -precious-files-regex REGEX
2064 don't remove output files matching REGEX
2065 -release RELEASE specify package release information
2066 -rpath LIBDIR the created library will eventually be installed in LIBDIR
2067 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
2068 -shared only do dynamic linking of libtool libraries
2069 -shrext SUFFIX override the standard shared library file extension
2070 -static do not do any dynamic linking of uninstalled libtool libraries
2071 -static-libtool-libs
2072 do not do any dynamic linking of libtool libraries
2073 -version-info CURRENT[:REVISION[:AGE]]
2074 specify library version info [each variable defaults to 0]
2075 -weak LIBNAME declare that the target provides the LIBNAME interface
2077 All other options (arguments beginning with \`-') are ignored.
2079 Every other argument is treated as a filename. Files ending in \`.la' are
2080 treated as uninstalled libtool libraries, other files are standard or library
2083 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
2084 only library objects (\`.lo' files) may be specified, and \`-rpath' is
2085 required, except when creating a convenience library.
2087 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
2088 using \`ar' and \`ranlib', or on Windows using \`lib'.
2090 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
2091 is created, otherwise an executable program is created."
2096 "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
2098 Remove libraries from an installation directory.
2100 RM is the name of the program to use to delete files associated with each FILE
2101 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
2104 If FILE is a libtool library, all the files associated with it are deleted.
2105 Otherwise, only FILE itself is deleted using RM."
2109 func_fatal_help
"invalid operation mode \`$mode'"
2114 $ECHO "Try \`$progname --help' for more information about other modes."
2119 # Now that we've collected a possible --mode arg, show help if necessary
2120 $opt_help && func_mode_help
2123 # func_mode_execute arg...
2124 func_mode_execute
()
2127 # The first argument is the command name.
2130 func_fatal_help
"you must specify a COMMAND"
2132 # Handle -dlopen flags immediately.
2133 for file in $execute_dlfiles; do
2135 || func_fatal_help
"\`$file' is not a file"
2140 # Check to see that this really is a libtool archive.
2141 func_lalib_unsafe_p
"$file" \
2142 || func_fatal_help
"\`$lib' is not a valid libtool archive"
2144 # Read the libtool library.
2149 # Skip this library if it cannot be dlopened.
2150 if test -z "$dlname"; then
2151 # Warn if it was a shared library.
2152 test -n "$library_names" && \
2153 func_warning
"\`$file' was not linked with \`-export-dynamic'"
2157 func_dirname
"$file" "" "."
2158 dir
="$func_dirname_result"
2160 if test -f "$dir/$objdir/$dlname"; then
2163 if test ! -f "$dir/$dlname"; then
2164 func_fatal_error
"cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
2170 # Just add the directory containing the .lo file.
2171 func_dirname
"$file" "" "."
2172 dir
="$func_dirname_result"
2176 func_warning
"\`-dlopen' is ignored for non-libtool libraries and objects"
2181 # Get the absolute pathname.
2182 absdir
=`cd "$dir" && pwd`
2183 test -n "$absdir" && dir
="$absdir"
2185 # Now add the directory to shlibpath_var.
2186 if eval "test -z \"\$$shlibpath_var\""; then
2187 eval "$shlibpath_var=\"\$dir\""
2189 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
2193 # This variable tells wrapper scripts just to set shlibpath_var
2194 # rather than running their programs.
2195 libtool_execute_magic
="$magic"
2197 # Check if any of the arguments is a wrapper script.
2204 # Do a test to see if this is really a libtool program.
2205 if func_ltwrapper_script_p
"$file"; then
2207 # Transform arg to wrapped name.
2208 file="$progdir/$program"
2209 elif func_ltwrapper_executable_p
"$file"; then
2210 func_ltwrapper_scriptname
"$file"
2211 func_source
"$func_ltwrapper_scriptname_result"
2212 # Transform arg to wrapped name.
2213 file="$progdir/$program"
2217 # Quote arguments (to preserve shell metacharacters).
2218 func_quote_for_eval
"$file"
2219 args
="$args $func_quote_for_eval_result"
2222 if test "X$opt_dry_run" = Xfalse
; then
2223 if test -n "$shlibpath_var"; then
2224 # Export the shlibpath_var.
2225 eval "export $shlibpath_var"
2228 # Restore saved environment variables
2229 for lt_var
in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
2231 eval "if test \"\${save_$lt_var+set}\" = set; then
2232 $lt_var=\$save_$lt_var; export $lt_var
2238 # Now prepare to actually exec the command.
2239 exec_cmd
="\$cmd$args"
2241 # Display what would be done.
2242 if test -n "$shlibpath_var"; then
2243 eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
2244 $ECHO "export $shlibpath_var"
2251 test "$mode" = execute
&& func_mode_execute
${1+"$@"}
2254 # func_mode_finish arg...
2261 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
2264 libdirs
="$libdirs $dir"
2267 for libdir
in $libdirs; do
2268 if test -n "$finish_cmds"; then
2269 # Do each command in the finish commands.
2270 func_execute_cmds
"$finish_cmds" 'admincmds="$admincmds
2273 if test -n "$finish_eval"; then
2274 # Do the single finish_eval.
2275 eval cmds
=\"$finish_eval\"
2276 $opt_dry_run ||
eval "$cmds" || admincmds
="$admincmds
2282 # Exit here if they wanted silent mode.
2283 $opt_silent && exit $EXIT_SUCCESS
2285 $ECHO "X----------------------------------------------------------------------" |
$Xsed
2286 $ECHO "Libraries have been installed in:"
2287 for libdir
in $libdirs; do
2291 $ECHO "If you ever happen to want to link against installed libraries"
2292 $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
2293 $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
2294 $ECHO "flag during linking and do at least one of the following:"
2295 if test -n "$shlibpath_var"; then
2296 $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable"
2297 $ECHO " during execution"
2299 if test -n "$runpath_var"; then
2300 $ECHO " - add LIBDIR to the \`$runpath_var' environment variable"
2301 $ECHO " during linking"
2303 if test -n "$hardcode_libdir_flag_spec"; then
2305 eval flag
=\"$hardcode_libdir_flag_spec\"
2307 $ECHO " - use the \`$flag' linker flag"
2309 if test -n "$admincmds"; then
2310 $ECHO " - have your system administrator run these commands:$admincmds"
2312 if test -f /etc
/ld.so.conf
; then
2313 $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
2317 $ECHO "See any operating system documentation about shared libraries for"
2319 solaris2.
[6789]|solaris2.1
[0-9])
2320 $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
2324 $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
2327 $ECHO "X----------------------------------------------------------------------" |
$Xsed
2331 test "$mode" = finish
&& func_mode_finish
${1+"$@"}
2334 # func_mode_install arg...
2335 func_mode_install
()
2338 # There may be an optional sh(1) argument at the beginning of
2339 # install_prog (especially on Windows NT).
2340 if test "$nonopt" = "$SHELL" ||
test "$nonopt" = /bin
/sh ||
2341 # Allow the use of GNU shtool's install command.
2342 $ECHO "X$nonopt" |
$GREP shtool
>/dev
/null
; then
2343 # Aesthetically quote it.
2344 func_quote_for_eval
"$nonopt"
2345 install_prog
="$func_quote_for_eval_result "
2353 # The real first argument should be the name of the installation program.
2354 # Aesthetically quote it.
2355 func_quote_for_eval
"$arg"
2356 install_prog
="$install_prog$func_quote_for_eval_result"
2358 # We need to accept at least all the BSD install flags.
2368 if test -n "$dest"; then
2369 files
="$files $dest"
2377 case " $install_prog " in
2392 # If the previous option needed an argument, then skip it.
2393 if test -n "$prev"; then
2402 # Aesthetically quote the argument.
2403 func_quote_for_eval
"$arg"
2404 install_prog
="$install_prog $func_quote_for_eval_result"
2407 test -z "$install_prog" && \
2408 func_fatal_help
"you must specify an install program"
2410 test -n "$prev" && \
2411 func_fatal_help
"the \`$prev' option requires an argument"
2413 if test -z "$files"; then
2414 if test -z "$dest"; then
2415 func_fatal_help
"no file or destination specified"
2417 func_fatal_help
"you must specify a destination"
2421 # Strip any trailing slash from the destination.
2422 func_stripname
'' '/' "$dest"
2423 dest
=$func_stripname_result
2425 # Check to see that the destination is a directory.
2426 test -d "$dest" && isdir
=yes
2427 if test "$isdir" = yes; then
2431 func_dirname_and_basename
"$dest" "" "."
2432 destdir
="$func_dirname_result"
2433 destname
="$func_basename_result"
2435 # Not a directory, so check to see that there is only one file specified.
2436 set dummy
$files; shift
2437 test "$#" -gt 1 && \
2438 func_fatal_help
"\`$dest' is not a directory"
2441 [\\/]* |
[A-Za-z
]:[\\/]*) ;;
2443 for file in $files; do
2447 func_fatal_help
"\`$destdir' must be an absolute directory name"
2454 # This variable tells wrapper scripts just to set variables rather
2455 # than running their programs.
2456 libtool_install_magic
="$magic"
2461 for file in $files; do
2463 # Do each installation.
2466 # Do the static libraries later.
2467 staticlibs
="$staticlibs $file"
2471 # Check to see that this really is a libtool archive.
2472 func_lalib_unsafe_p
"$file" \
2473 || func_fatal_help
"\`$file' is not a valid libtool archive"
2480 # Add the libdir to current_libdirs if it is the destination.
2481 if test "X$destdir" = "X$libdir"; then
2482 case "$current_libdirs " in
2484 *) current_libdirs
="$current_libdirs $libdir" ;;
2487 # Note the libdir as a future libdir.
2488 case "$future_libdirs " in
2490 *) future_libdirs
="$future_libdirs $libdir" ;;
2494 func_dirname
"$file" "/" ""
2495 dir
="$func_dirname_result"
2498 if test -n "$relink_command"; then
2499 # Determine the prefix the user has applied to our future dir.
2500 inst_prefix_dir
=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
2502 # Don't allow the user to place us outside of our expected
2503 # location b/c this prevents finding dependent libraries that
2504 # are installed to the same prefix.
2505 # At present, this check doesn't affect windows .dll's that
2506 # are installed into $libdir/../bin (currently, that works fine)
2507 # but it's something to keep an eye on.
2508 test "$inst_prefix_dir" = "$destdir" && \
2509 func_fatal_error
"error: cannot install \`$file' to a directory not ending in $libdir"
2511 if test -n "$inst_prefix_dir"; then
2512 # Stick the inst_prefix_dir data into the link command.
2513 relink_command
=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
2515 relink_command
=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
2518 func_warning
"relinking \`$file'"
2519 func_show_eval
"$relink_command" \
2520 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
2523 # See the names of the shared library.
2524 set dummy
$library_names; shift
2525 if test -n "$1"; then
2530 test -n "$relink_command" && srcname
="$realname"T
2532 # Install the shared library and build the symlinks.
2533 func_show_eval
"$install_prog $dir/$srcname $destdir/$realname" \
2537 cygwin
* | mingw
* | pw32
* | cegcc
*)
2545 if test -n "$tstripme" && test -n "$striplib"; then
2546 func_show_eval
"$striplib $destdir/$realname" 'exit $?'
2549 if test "$#" -gt 0; then
2550 # Delete the old symlinks, and create new ones.
2551 # Try `ln -sf' first, because the `ln' binary might depend on
2552 # the symlink we replace! Solaris /bin/ln does not understand -f,
2553 # so we also need to try rm && ln -s.
2556 test "$linkname" != "$realname" \
2557 && func_show_eval
"(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
2561 # Do each command in the postinstall commands.
2562 lib
="$destdir/$realname"
2563 func_execute_cmds
"$postinstall_cmds" 'exit $?'
2566 # Install the pseudo-library for information purposes.
2567 func_basename
"$file"
2568 name
="$func_basename_result"
2569 instname
="$dir/$name"i
2570 func_show_eval
"$install_prog $instname $destdir/$name" 'exit $?'
2572 # Maybe install the static library, too.
2573 test -n "$old_library" && staticlibs
="$staticlibs $dir/$old_library"
2577 # Install (i.e. copy) a libtool object.
2579 # Figure out destination file name, if it wasn't already specified.
2580 if test -n "$destname"; then
2581 destfile
="$destdir/$destname"
2583 func_basename
"$file"
2584 destfile
="$func_basename_result"
2585 destfile
="$destdir/$destfile"
2588 # Deduce the name of the destination old-style object file.
2591 func_lo2o
"$destfile"
2592 staticdest
=$func_lo2o_result
2595 staticdest
="$destfile"
2599 func_fatal_help
"cannot copy a libtool object to \`$destfile'"
2603 # Install the libtool object if requested.
2604 test -n "$destfile" && \
2605 func_show_eval
"$install_prog $file $destfile" 'exit $?'
2607 # Install the old object if enabled.
2608 if test "$build_old_libs" = yes; then
2609 # Deduce the name of the old-style object file.
2611 staticobj
=$func_lo2o_result
2612 func_show_eval
"$install_prog \$staticobj \$staticdest" 'exit $?'
2618 # Figure out destination file name, if it wasn't already specified.
2619 if test -n "$destname"; then
2620 destfile
="$destdir/$destname"
2622 func_basename
"$file"
2623 destfile
="$func_basename_result"
2624 destfile
="$destdir/$destfile"
2627 # If the file is missing, and there is a .exe on the end, strip it
2628 # because it is most likely a libtool script we actually want to
2633 if test ! -f "$file"; then
2634 func_stripname
'' '.exe' "$file"
2635 file=$func_stripname_result
2641 # Do a test to see if this is really a libtool program.
2644 if func_ltwrapper_executable_p
"$file"; then
2645 func_ltwrapper_scriptname
"$file"
2646 wrapper
=$func_ltwrapper_scriptname_result
2648 func_stripname
'' '.exe' "$file"
2649 wrapper
=$func_stripname_result
2656 if func_ltwrapper_script_p
"$wrapper"; then
2660 func_source
"$wrapper"
2662 # Check the variables that should have been set.
2663 test -z "$generated_by_libtool_version" && \
2664 func_fatal_error
"invalid libtool wrapper script \`$wrapper'"
2667 for lib
in $notinst_deplibs; do
2668 # Check to see that each library is installed.
2670 if test -f "$lib"; then
2673 libfile
="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
2674 if test -n "$libdir" && test ! -f "$libfile"; then
2675 func_warning
"\`$lib' has not been installed in \`$libdir'"
2681 func_source
"$wrapper"
2684 if test "$fast_install" = no
&& test -n "$relink_command"; then
2686 if test "$finalize" = yes; then
2687 tmpdir
=`func_mktempdir`
2688 func_basename
"$file$stripped_ext"
2689 file="$func_basename_result"
2690 outputname
="$tmpdir/$file"
2691 # Replace the output file specification.
2692 relink_command
=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
2695 func_quote_for_expand
"$relink_command"
2696 eval "func_echo $func_quote_for_expand_result"
2698 if eval "$relink_command"; then :
2700 func_error
"error: relink \`$file' with the above command before installing it"
2701 $opt_dry_run ||
${RM}r
"$tmpdir"
2706 func_warning
"cannot relink \`$file'"
2710 # Install the binary that we compiled earlier.
2711 file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
2715 # remove .exe since cygwin /usr/bin/install will append another
2717 case $install_prog,$host in
2718 */usr
/bin
/install*,*cygwin
*)
2719 case $file:$destfile in
2724 destfile
=$destfile.exe
2727 func_stripname
'' '.exe' "$destfile"
2728 destfile
=$func_stripname_result
2733 func_show_eval
"$install_prog\$stripme \$file \$destfile" 'exit $?'
2734 $opt_dry_run ||
if test -n "$outputname"; then
2741 for file in $staticlibs; do
2742 func_basename
"$file"
2743 name
="$func_basename_result"
2745 # Set up the ranlib parameters.
2746 oldlib
="$destdir/$name"
2748 func_show_eval
"$install_prog \$file \$oldlib" 'exit $?'
2750 if test -n "$stripme" && test -n "$old_striplib"; then
2751 func_show_eval
"$old_striplib $oldlib" 'exit $?'
2754 # Do each command in the postinstall commands.
2755 func_execute_cmds
"$old_postinstall_cmds" 'exit $?'
2758 test -n "$future_libdirs" && \
2759 func_warning
"remember to run \`$progname --finish$future_libdirs'"
2761 if test -n "$current_libdirs"; then
2762 # Maybe just do a dry run.
2763 $opt_dry_run && current_libdirs
=" -n$current_libdirs"
2764 exec_cmd
='$SHELL $progpath $preserve_args --finish$current_libdirs'
2770 test "$mode" = install && func_mode_install
${1+"$@"}
2773 # func_generate_dlsyms outputname originator pic_p
2774 # Extract symbols from dlprefiles and create ${outputname}S.o with
2775 # a dlpreopen symbol table.
2776 func_generate_dlsyms
()
2782 my_prefix
=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
2785 if test -n "$dlfiles$dlprefiles" ||
test "$dlself" != no
; then
2786 if test -n "$NM" && test -n "$global_symbol_pipe"; then
2787 my_dlsyms
="${my_outputname}S.c"
2789 func_error
"not configured to extract global symbols from dlpreopened files"
2793 if test -n "$my_dlsyms"; then
2797 # Discover the nlist of each of the dlfiles.
2798 nlist
="$output_objdir/${my_outputname}.nm"
2800 func_show_eval
"$RM $nlist ${nlist}S ${nlist}T"
2802 # Parse the name list into a source file.
2803 func_verbose
"creating $output_objdir/$my_dlsyms"
2805 $opt_dry_run ||
$ECHO > "$output_objdir/$my_dlsyms" "\
2806 /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
2807 /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
2813 /* External symbol declarations for the compiler. */\
2816 if test "$dlself" = yes; then
2817 func_verbose
"generating symbol list for \`$output'"
2819 $opt_dry_run ||
echo ': @PROGRAM@ ' > "$nlist"
2821 # Add our own program objects to the symbol list.
2822 progfiles
=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2823 for progfile
in $progfiles; do
2824 func_verbose
"extracting global C symbols from \`$progfile'"
2825 $opt_dry_run ||
eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
2828 if test -n "$exclude_expsyms"; then
2830 eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
2831 eval '$MV "$nlist"T "$nlist"'
2835 if test -n "$export_symbols_regex"; then
2837 eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
2838 eval '$MV "$nlist"T "$nlist"'
2842 # Prepare the list of exported symbols
2843 if test -z "$export_symbols"; then
2844 export_symbols
="$output_objdir/$outputname.exp"
2847 eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
2849 *cygwin
* |
*mingw
* |
*cegcc
* )
2850 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
2851 eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
2857 eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
2858 eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
2859 eval '$MV "$nlist"T "$nlist"'
2861 *cygwin |
*mingw
* |
*cegcc
* )
2862 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
2863 eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
2870 for dlprefile
in $dlprefiles; do
2871 func_verbose
"extracting global C symbols from \`$dlprefile'"
2872 func_basename
"$dlprefile"
2873 name
="$func_basename_result"
2875 eval '$ECHO ": $name " >> "$nlist"'
2876 eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
2881 # Make sure we have at least an empty file.
2882 test -f "$nlist" ||
: > "$nlist"
2884 if test -n "$exclude_expsyms"; then
2885 $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
2886 $MV "$nlist"T
"$nlist"
2889 # Try sorting and uniquifying the output.
2890 if $GREP -v "^: " < "$nlist" |
2891 if sort -k 3 </dev
/null
>/dev
/null
2>&1; then
2896 uniq > "$nlist"S
; then
2899 $GREP -v "^: " < "$nlist" > "$nlist"S
2902 if test -f "$nlist"S
; then
2903 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
2905 $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
2908 $ECHO >> "$output_objdir/$my_dlsyms" "\
2910 /* The mapping between symbol names and symbols. */
2917 *cygwin
* |
*mingw
* |
*cegcc
* )
2918 $ECHO >> "$output_objdir/$my_dlsyms" "\
2919 /* DATA imports from DLLs on WIN32 con't be const, because
2920 runtime relocations are performed -- see ld's documentation
2921 on pseudo-relocs. */"
2924 echo >> "$output_objdir/$my_dlsyms" "\
2925 /* This system does not cope well with relocations in const data */"
2928 lt_dlsym_const
=const
;;
2931 $ECHO >> "$output_objdir/$my_dlsyms" "\
2932 extern $lt_dlsym_const lt_dlsymlist
2933 lt_${my_prefix}_LTX_preloaded_symbols[];
2934 $lt_dlsym_const lt_dlsymlist
2935 lt_${my_prefix}_LTX_preloaded_symbols[] =
2937 { \"$my_originator\", (void *) 0 },"
2939 case $need_lib_prefix in
2941 eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
2944 eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
2947 $ECHO >> "$output_objdir/$my_dlsyms" "\
2951 /* This works around a problem in FreeBSD linker */
2952 #ifdef FREEBSD_WORKAROUND
2953 static const void *lt_preloaded_setup() {
2954 return lt_${my_prefix}_LTX_preloaded_symbols;
2964 pic_flag_for_symtable
=
2965 case "$compile_command " in
2969 # compiling the symbol table file with pic_flag works around
2970 # a FreeBSD bug that causes programs to crash when -lm is
2971 # linked before any other PIC object. But we must not use
2972 # pic_flag when linking with -static. The problem exists in
2973 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
2974 *-*-freebsd2*|
*-*-freebsd3.0
*|
*-*-freebsdelf3.0
*)
2975 pic_flag_for_symtable
=" $pic_flag -DFREEBSD_WORKAROUND" ;;
2977 pic_flag_for_symtable
=" $pic_flag" ;;
2979 if test "X$my_pic_p" != Xno
; then
2980 pic_flag_for_symtable
=" $pic_flag"
2987 for arg
in $LTCFLAGS; do
2989 -pie |
-fpie |
-fPIE) ;;
2990 *) symtab_cflags
="$symtab_cflags $arg" ;;
2994 # Now compile the dynamic symbol file.
2995 func_show_eval
'(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
2997 # Clean up the generated files.
2998 func_show_eval
'$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
3000 # Transform the symbol file into the correct name.
3001 symfileobj
="$output_objdir/${my_outputname}S.$objext"
3003 *cygwin
* |
*mingw
* |
*cegcc
* )
3004 if test -f "$output_objdir/$my_outputname.def"; then
3005 compile_command
=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
3006 finalize_command
=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
3008 compile_command
=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
3009 finalize_command
=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
3013 compile_command
=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
3014 finalize_command
=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
3019 func_fatal_error
"unknown suffix for \`$my_dlsyms'"
3023 # We keep going just in case the user didn't refer to
3024 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
3025 # really was required.
3027 # Nullify the symbol file.
3028 compile_command
=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
3029 finalize_command
=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
3033 # func_win32_libid arg
3034 # return the library type of file 'arg'
3036 # Need a lot of goo to handle *both* DLLs and import libs
3037 # Has to be a shell function in order to 'eat' the argument
3038 # that is supplied when $file_magic_command is called.
3042 win32_libid_type
="unknown"
3043 win32_fileres
=`file -L $1 2>/dev/null`
3044 case $win32_fileres in
3045 *ar\ archive\ import\ library
*) # definitely import
3046 win32_libid_type
="x86 archive import"
3048 *ar\ archive
*) # could be an import, or static
3049 if eval $OBJDUMP -f $1 |
$SED -e '10q' 2>/dev
/null |
3050 $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev
/null
; then
3051 win32_nmres
=`eval $NM -f posix -A $1 |
3060 case $win32_nmres in
3061 import
*) win32_libid_type
="x86 archive import";;
3062 *) win32_libid_type
="x86 archive static";;
3067 win32_libid_type
="x86 DLL"
3069 *executable
*) # but shell scripts are "executable" too...
3070 case $win32_fileres in
3071 *MS\ Windows\ PE\ Intel
*)
3072 win32_libid_type
="x86 DLL"
3077 $ECHO "$win32_libid_type"
3082 # func_extract_an_archive dir oldlib
3083 func_extract_an_archive
()
3086 f_ex_an_ar_dir
="$1"; shift
3087 f_ex_an_ar_oldlib
="$1"
3088 func_show_eval
"(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?'
3089 if ($AR t
"$f_ex_an_ar_oldlib" |
sort |
sort -uc >/dev
/null
2>&1); then
3092 func_fatal_error
"object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
3097 # func_extract_archives gentop oldlib ...
3098 func_extract_archives
()
3101 my_gentop
="$1"; shift
3102 my_oldlibs
=${1+"$@"}
3108 for my_xlib
in $my_oldlibs; do
3109 # Extract the objects.
3111 [\\/]* |
[A-Za-z
]:[\\/]*) my_xabs
="$my_xlib" ;;
3112 *) my_xabs
=`pwd`"/$my_xlib" ;;
3114 func_basename
"$my_xlib"
3115 my_xlib
="$func_basename_result"
3118 case " $extracted_archives " in
3120 func_arith
$extracted_serial + 1
3121 extracted_serial
=$func_arith_result
3122 my_xlib_u
=lt
$extracted_serial-$my_xlib ;;
3126 extracted_archives
="$extracted_archives $my_xlib_u"
3127 my_xdir
="$my_gentop/$my_xlib_u"
3129 func_mkdir_p
"$my_xdir"
3133 func_verbose
"Extracting $my_xabs"
3134 # Do not bother doing anything if just a dry run
3136 darwin_orig_dir
=`pwd`
3137 cd $my_xdir ||
exit $?
3138 darwin_archive
=$my_xabs
3140 darwin_base_archive
=`basename "$darwin_archive"`
3141 darwin_arches
=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
3142 if test -n "$darwin_arches"; then
3143 darwin_arches
=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
3145 func_verbose
"$darwin_base_archive has multiple architectures $darwin_arches"
3146 for darwin_arch
in $darwin_arches ; do
3147 func_mkdir_p
"unfat-$$/${darwin_base_archive}-${darwin_arch}"
3148 $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
3149 cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
3150 func_extract_an_archive
"`pwd`" "${darwin_base_archive}"
3152 $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
3153 done # $darwin_arches
3154 ## Okay now we've a bunch of thin objects, gotta fatten them up :)
3155 darwin_filelist
=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
3158 for darwin_file
in $darwin_filelist; do
3159 darwin_files
=`find unfat-$$ -name $darwin_file -print | $NL2SP`
3160 $LIPO -create -output "$darwin_file" $darwin_files
3161 done # $darwin_filelist
3163 cd "$darwin_orig_dir"
3166 func_extract_an_archive
"$my_xdir" "$my_xabs"
3171 func_extract_an_archive
"$my_xdir" "$my_xabs"
3174 my_oldobjs
="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
3177 func_extract_archives_result
="$my_oldobjs"
3182 # func_emit_wrapper_part1 [arg=no]
3184 # Emit the first part of a libtool wrapper script on stdout.
3185 # For more information, see the description associated with
3186 # func_emit_wrapper(), below.
3187 func_emit_wrapper_part1
()
3189 func_emit_wrapper_part1_arg1
=no
3190 if test -n "$1" ; then
3191 func_emit_wrapper_part1_arg1
=$1
3197 # $output - temporary wrapper script for $objdir/$outputname
3198 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
3200 # The $output program cannot be directly executed until all the libtool
3201 # libraries that it depends on are installed.
3203 # This wrapper script should never be moved out of the build directory.
3204 # If it is, it will not operate correctly.
3206 # Sed substitution that helps us do robust quoting. It backslashifies
3207 # metacharacters that are still active within double-quoted strings.
3208 Xsed='${SED} -e 1s/^X//'
3209 sed_quote_subst='$sed_quote_subst'
3211 # Be Bourne compatible
3212 if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
3215 # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
3216 # is contrary to our usage. Disable this feature.
3217 alias -g '\${1+\"\$@\"}'='\"\$@\"'
3218 setopt NO_GLOB_SUBST
3220 case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
3222 BIN_SH=xpg4; export BIN_SH # for Tru64
3223 DUALCASE=1; export DUALCASE # for MKS sh
3225 # The HP-UX ksh and POSIX shell print the target directory to stdout
3227 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
3229 relink_command=\"$relink_command\"
3231 # This environment variable determines our operation mode.
3232 if test \"\$libtool_install_magic\" = \"$magic\"; then
3233 # install mode needs the following variables:
3234 generated_by_libtool_version='$macro_version'
3235 notinst_deplibs='$notinst_deplibs'
3237 # When we are sourced in execute mode, \$file and \$ECHO are already set.
3238 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3241 # Make sure echo works.
3242 if test \"X\$1\" = X--no-reexec; then
3243 # Discard the --no-reexec flag, and continue.
3245 elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
3246 # Yippee, \$ECHO works!
3249 # Restart under the correct shell, and then maybe \$ECHO will work.
3250 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
3256 # Find the directory that this script lives in.
3257 thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
3258 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
3260 # Follow symbolic links until we get to the real thisdir.
3261 file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
3262 while test -n \"\$file\"; do
3263 destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
3265 # If there was a directory component, then change thisdir.
3266 if test \"x\$destdir\" != \"x\$file\"; then
3267 case \"\$destdir\" in
3268 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
3269 *) thisdir=\"\$thisdir/\$destdir\" ;;
3273 file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
3274 file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
3278 # end: func_emit_wrapper_part1
3280 # func_emit_wrapper_part2 [arg=no]
3282 # Emit the second part of a libtool wrapper script on stdout.
3283 # For more information, see the description associated with
3284 # func_emit_wrapper(), below.
3285 func_emit_wrapper_part2
()
3287 func_emit_wrapper_part2_arg1
=no
3288 if test -n "$1" ; then
3289 func_emit_wrapper_part2_arg1
=$1
3294 # Usually 'no', except on cygwin/mingw when embedded into
3296 WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1
3297 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
3298 # special case for '.'
3299 if test \"\$thisdir\" = \".\"; then
3302 # remove .libs from thisdir
3303 case \"\$thisdir\" in
3304 *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
3305 $objdir ) thisdir=. ;;
3309 # Try to get the absolute directory name.
3310 absdir=\`cd \"\$thisdir\" && pwd\`
3311 test -n \"\$absdir\" && thisdir=\"\$absdir\"
3314 if test "$fast_install" = yes; then
3316 program=lt-'$outputname'$exeext
3317 progdir=\"\$thisdir/$objdir\"
3319 if test ! -f \"\$progdir/\$program\" ||
3320 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
3321 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
3323 file=\"\$\$-\$program\"
3325 if test ! -d \"\$progdir\"; then
3326 $MKDIR \"\$progdir\"
3328 $RM \"\$progdir/\$file\"
3333 # relink executable if necessary
3334 if test -n \"\$relink_command\"; then
3335 if relink_command_output=\`eval \$relink_command 2>&1\`; then :
3337 $ECHO \"\$relink_command_output\" >&2
3338 $RM \"\$progdir/\$file\"
3343 $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
3344 { $RM \"\$progdir/\$program\";
3345 $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
3346 $RM \"\$progdir/\$file\"
3350 program='$outputname'
3351 progdir=\"\$thisdir/$objdir\"
3357 if test -f \"\$progdir/\$program\"; then"
3359 # Export our shlibpath_var if we have one.
3360 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
3362 # Add our own library path to $shlibpath_var
3363 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
3365 # Some systems cannot cope with colon-terminated $shlibpath_var
3366 # The second colon is a workaround for a bug in BeOS R4 sed
3367 $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
3369 export $shlibpath_var
3373 # fixup the dll searchpath if we need to.
3374 if test -n "$dllsearchpath"; then
3376 # Add the dll search path components to the executable PATH
3377 PATH=$dllsearchpath:\$PATH
3382 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3383 # Run the actual program with our arguments.
3386 # Backslashes separate directories on plain windows
3387 *-*-mingw |
*-*-os2* |
*-cegcc*)
3389 exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
3395 exec \"\$progdir/\$program\" \${1+\"\$@\"}
3400 \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
3404 # The program doesn't exist.
3405 \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
3406 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
3407 $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
3413 # end: func_emit_wrapper_part2
3416 # func_emit_wrapper [arg=no]
3418 # Emit a libtool wrapper script on stdout.
3419 # Don't directly open a file because we may want to
3420 # incorporate the script contents within a cygwin/mingw
3421 # wrapper executable. Must ONLY be called from within
3422 # func_mode_link because it depends on a number of variables
3425 # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
3426 # variable will take. If 'yes', then the emitted script
3427 # will assume that the directory in which it is stored is
3428 # the $objdir directory. This is a cygwin/mingw-specific
3430 func_emit_wrapper
()
3432 func_emit_wrapper_arg1
=no
3433 if test -n "$1" ; then
3434 func_emit_wrapper_arg1
=$1
3437 # split this up so that func_emit_cwrapperexe_src
3438 # can call each part independently.
3439 func_emit_wrapper_part1
"${func_emit_wrapper_arg1}"
3440 func_emit_wrapper_part2
"${func_emit_wrapper_arg1}"
3444 # func_to_host_path arg
3446 # Convert paths to host format when used with build tools.
3447 # Intended for use with "native" mingw (where libtool itself
3448 # is running under the msys shell), or in the following cross-
3449 # build environments:
3451 # mingw (msys) mingw [e.g. native]
3454 # where wine is equipped with the `winepath' executable.
3455 # In the native mingw case, the (msys) shell automatically
3456 # converts paths for any non-msys applications it launches,
3457 # but that facility isn't available from inside the cwrapper.
3458 # Similar accommodations are necessary for $host mingw and
3459 # $build cygwin. Calling this function does no harm for other
3460 # $host/$build combinations not listed above.
3462 # ARG is the path (on $build) that should be converted to
3463 # the proper representation for $host. The result is stored
3464 # in $func_to_host_path_result.
3465 func_to_host_path
()
3467 func_to_host_path_result
="$1"
3468 if test -n "$1" ; then
3471 lt_sed_naive_backslashify
='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
3473 *mingw
* ) # actually, msys
3474 # awkward: cmd appends spaces to result
3475 lt_sed_strip_trailing_spaces
="s/[ ]*\$//"
3476 func_to_host_path_tmp1
=`( cmd //c echo "$1" |\
3477 $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
3478 func_to_host_path_result
=`echo "$func_to_host_path_tmp1" |\
3479 $SED -e "$lt_sed_naive_backslashify"`
3482 func_to_host_path_tmp1
=`cygpath -w "$1"`
3483 func_to_host_path_result
=`echo "$func_to_host_path_tmp1" |\
3484 $SED -e "$lt_sed_naive_backslashify"`
3487 # Unfortunately, winepath does not exit with a non-zero
3488 # error code, so we are forced to check the contents of
3489 # stdout. On the other hand, if the command is not
3490 # found, the shell will set an exit code of 127 and print
3491 # *an error message* to stdout. So we must check for both
3492 # error code of zero AND non-empty stdout, which explains
3493 # the odd construction:
3494 func_to_host_path_tmp1
=`winepath -w "$1" 2>/dev/null`
3495 if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
3496 func_to_host_path_result
=`echo "$func_to_host_path_tmp1" |\
3497 $SED -e "$lt_sed_naive_backslashify"`
3499 # Allow warning below.
3500 func_to_host_path_result
=""
3504 if test -z "$func_to_host_path_result" ; then
3505 func_error
"Could not determine host path corresponding to"
3507 func_error
"Continuing, but uninstalled executables may not work."
3509 func_to_host_path_result
="$1"
3515 # end: func_to_host_path
3517 # func_to_host_pathlist arg
3519 # Convert pathlists to host format when used with build tools.
3520 # See func_to_host_path(), above. This function supports the
3521 # following $build/$host combinations (but does no harm for
3522 # combinations not listed here):
3524 # mingw (msys) mingw [e.g. native]
3528 # Path separators are also converted from $build format to
3529 # $host format. If ARG begins or ends with a path separator
3530 # character, it is preserved (but converted to $host format)
3533 # ARG is a pathlist (on $build) that should be converted to
3534 # the proper representation on $host. The result is stored
3535 # in $func_to_host_pathlist_result.
3536 func_to_host_pathlist
()
3538 func_to_host_pathlist_result
="$1"
3539 if test -n "$1" ; then
3542 lt_sed_naive_backslashify
='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
3543 # Remove leading and trailing path separator characters from
3544 # ARG. msys behavior is inconsistent here, cygpath turns them
3545 # into '.;' and ';.', and winepath ignores them completely.
3546 func_to_host_pathlist_tmp2
="$1"
3547 # Once set for this call, this variable should not be
3548 # reassigned. It is used in tha fallback case.
3549 func_to_host_pathlist_tmp1
=`echo "$func_to_host_pathlist_tmp2" |\
3550 $SED -e 's|^:*||' -e 's|:*$||'`
3552 *mingw
* ) # Actually, msys.
3553 # Awkward: cmd appends spaces to result.
3554 lt_sed_strip_trailing_spaces
="s/[ ]*\$//"
3555 func_to_host_pathlist_tmp2
=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
3556 $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
3557 func_to_host_pathlist_result
=`echo "$func_to_host_pathlist_tmp2" |\
3558 $SED -e "$lt_sed_naive_backslashify"`
3561 func_to_host_pathlist_tmp2
=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
3562 func_to_host_pathlist_result
=`echo "$func_to_host_pathlist_tmp2" |\
3563 $SED -e "$lt_sed_naive_backslashify"`
3566 # unfortunately, winepath doesn't convert pathlists
3567 func_to_host_pathlist_result
=""
3568 func_to_host_pathlist_oldIFS
=$IFS
3570 for func_to_host_pathlist_f
in $func_to_host_pathlist_tmp1 ; do
3571 IFS
=$func_to_host_pathlist_oldIFS
3572 if test -n "$func_to_host_pathlist_f" ; then
3573 func_to_host_path
"$func_to_host_pathlist_f"
3574 if test -n "$func_to_host_path_result" ; then
3575 if test -z "$func_to_host_pathlist_result" ; then
3576 func_to_host_pathlist_result
="$func_to_host_path_result"
3578 func_to_host_pathlist_result
="$func_to_host_pathlist_result;$func_to_host_path_result"
3584 IFS
=$func_to_host_pathlist_oldIFS
3587 if test -z "$func_to_host_pathlist_result" ; then
3588 func_error
"Could not determine the host path(s) corresponding to"
3590 func_error
"Continuing, but uninstalled executables may not work."
3591 # Fallback. This may break if $1 contains DOS-style drive
3592 # specifications. The fix is not to complicate the expression
3593 # below, but for the user to provide a working wine installation
3594 # with winepath so that path translation in the cross-to-mingw
3595 # case works properly.
3596 lt_replace_pathsep_nix_to_dos
="s|:|;|g"
3597 func_to_host_pathlist_result
=`echo "$func_to_host_pathlist_tmp1" |\
3598 $SED -e "$lt_replace_pathsep_nix_to_dos"`
3600 # Now, add the leading and trailing path separators back
3602 :* ) func_to_host_pathlist_result
=";$func_to_host_pathlist_result"
3606 *: ) func_to_host_pathlist_result
="$func_to_host_pathlist_result;"
3613 # end: func_to_host_pathlist
3615 # func_emit_cwrapperexe_src
3616 # emit the source code for a wrapper executable on stdout
3617 # Must ONLY be called from within func_mode_link because
3618 # it depends on a number of variable set therein.
3619 func_emit_cwrapperexe_src
()
3623 /* $cwrappersource - temporary wrapper executable for $objdir/$outputname
3624 Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
3626 The $output program cannot be directly executed until all the libtool
3627 libraries that it depends on are installed.
3629 This wrapper executable should never be moved out of the build directory.
3630 If it is, it will not operate correctly.
3632 Currently, it simply execs the wrapper *script* "$SHELL $output",
3633 but could eventually absorb all of the scripts functionality and
3634 exec $objdir/$outputname directly.
3641 # include <direct.h>
3642 # include <process.h>
3644 # define setmode _setmode
3646 # include <unistd.h>
3647 # include <stdint.h>
3650 # define HAVE_SETENV
3651 # ifdef __STRICT_ANSI__
3652 char *realpath (const char *, char *);
3653 int putenv (char *);
3654 int setenv (const char *, const char *, int);
3665 #include <sys/stat.h>
3667 #if defined(PATH_MAX)
3668 # define LT_PATHMAX PATH_MAX
3669 #elif defined(MAXPATHLEN)
3670 # define LT_PATHMAX MAXPATHLEN
3672 # define LT_PATHMAX 1024
3683 # define S_IXUSR _S_IEXEC
3685 # ifndef _INTPTR_T_DEFINED
3686 # define intptr_t int
3690 #ifndef DIR_SEPARATOR
3691 # define DIR_SEPARATOR '/'
3692 # define PATH_SEPARATOR ':'
3695 #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
3697 # define HAVE_DOS_BASED_FILE_SYSTEM
3698 # define FOPEN_WB "wb"
3699 # ifndef DIR_SEPARATOR_2
3700 # define DIR_SEPARATOR_2 '\\'
3702 # ifndef PATH_SEPARATOR_2
3703 # define PATH_SEPARATOR_2 ';'
3707 #ifndef DIR_SEPARATOR_2
3708 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
3709 #else /* DIR_SEPARATOR_2 */
3710 # define IS_DIR_SEPARATOR(ch) \
3711 (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
3712 #endif /* DIR_SEPARATOR_2 */
3714 #ifndef PATH_SEPARATOR_2
3715 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
3716 #else /* PATH_SEPARATOR_2 */
3717 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
3718 #endif /* PATH_SEPARATOR_2 */
3721 # define FOPEN_WB "wb"
3725 # define FOPEN_WB "w"
3728 # define _O_BINARY 0
3731 #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
3732 #define XFREE(stale) do { \
3733 if (stale) { free ((void *) stale); stale = 0; } \
3736 #undef LTWRAPPER_DEBUGPRINTF
3737 #if defined DEBUGWRAPPER
3738 # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
3740 ltwrapper_debugprintf (const char *fmt, ...)
3743 va_start (args, fmt);
3744 (void) vfprintf (stderr, fmt, args);
3748 # define LTWRAPPER_DEBUGPRINTF(args)
3751 const char *program_name = NULL;
3753 void *xmalloc (size_t num);
3754 char *xstrdup (const char *string);
3755 const char *base_name (const char *name);
3756 char *find_executable (const char *wrapper);
3757 char *chase_symlinks (const char *pathspec);
3758 int make_executable (const char *path);
3759 int check_executable (const char *path);
3760 char *strendzap (char *str, const char *pat);
3761 void lt_fatal (const char *message, ...);
3762 void lt_setenv (const char *name, const char *value);
3763 char *lt_extend_str (const char *orig_value, const char *add, int to_end);
3764 void lt_opt_process_env_set (const char *arg);
3765 void lt_opt_process_env_prepend (const char *arg);
3766 void lt_opt_process_env_append (const char *arg);
3767 int lt_split_name_value (const char *arg, char** name, char** value);
3768 void lt_update_exe_path (const char *name, const char *value);
3769 void lt_update_lib_path (const char *name, const char *value);
3771 static const char *script_text_part1 =
3774 func_emit_wrapper_part1 yes |
3775 $SED -e 's/\([\\"]\)/\\\1/g' \
3776 -e 's/^/ "/' -e 's/$/\\n"/'
3780 static const char *script_text_part2 =
3782 func_emit_wrapper_part2 yes |
3783 $SED -e 's/\([\\"]\)/\\\1/g' \
3784 -e 's/^/ "/' -e 's/$/\\n"/'
3788 const char * MAGIC_EXE = "$magic_exe";
3789 const char * LIB_PATH_VARNAME = "$shlibpath_var";
3792 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
3793 func_to_host_pathlist "$temp_rpath"
3795 const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result";
3799 const char
* LIB_PATH_VALUE
= "";
3803 if test -n "$dllsearchpath"; then
3804 func_to_host_pathlist
"$dllsearchpath:"
3806 const char * EXE_PATH_VARNAME = "PATH";
3807 const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result";
3811 const char * EXE_PATH_VARNAME = "";
3812 const char * EXE_PATH_VALUE = "";
3816 if test "$fast_install" = yes; then
3818 const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
3822 const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
3829 #define LTWRAPPER_OPTION_PREFIX "--lt-"
3830 #define LTWRAPPER_OPTION_PREFIX_LENGTH 5
3832 static const size_t opt_prefix_len
= LTWRAPPER_OPTION_PREFIX_LENGTH
;
3833 static const char
*ltwrapper_option_prefix
= LTWRAPPER_OPTION_PREFIX
;
3835 static const char
*dumpscript_opt
= LTWRAPPER_OPTION_PREFIX
"dump-script";
3837 static const size_t env_set_opt_len
= LTWRAPPER_OPTION_PREFIX_LENGTH
+ 7;
3838 static const char
*env_set_opt
= LTWRAPPER_OPTION_PREFIX
"env-set";
3839 /* argument is putenv-style
"foo=bar", value of foo is
set to bar
*/
3841 static const size_t env_prepend_opt_len
= LTWRAPPER_OPTION_PREFIX_LENGTH
+ 11;
3842 static const char
*env_prepend_opt
= LTWRAPPER_OPTION_PREFIX
"env-prepend";
3843 /* argument is putenv-style
"foo=bar", new value of foo is bar
${foo} */
3845 static const size_t env_append_opt_len
= LTWRAPPER_OPTION_PREFIX_LENGTH
+ 10;
3846 static const char
*env_append_opt
= LTWRAPPER_OPTION_PREFIX
"env-append";
3847 /* argument is putenv-style
"foo=bar", new value of foo is
${foo}bar
*/
3850 main
(int argc
, char
*argv
[])
3855 char
*actual_cwrapper_path
;
3856 char
*actual_cwrapper_name
;
3859 intptr_t rval
= 127;
3863 program_name
= (char
*) xstrdup
(base_name
(argv
[0]));
3864 LTWRAPPER_DEBUGPRINTF
(("(main) argv[0] : %s\n", argv
[0]));
3865 LTWRAPPER_DEBUGPRINTF
(("(main) program_name : %s\n", program_name
));
3867 /* very simple arg parsing
; don
't want to rely on getopt */
3868 for (i = 1; i < argc; i++)
3870 if (strcmp (argv[i], dumpscript_opt) == 0)
3874 *mingw* | *cygwin* )
3875 # make stdout use "unix" line endings
3876 echo " setmode(1,_O_BINARY);"
3881 printf ("%s", script_text_part1);
3882 printf ("%s", script_text_part2);
3887 newargz = XMALLOC (char *, argc + 1);
3888 tmp_pathspec = find_executable (argv[0]);
3889 if (tmp_pathspec == NULL)
3890 lt_fatal ("Couldn't
find %s
", argv[0]);
3891 LTWRAPPER_DEBUGPRINTF (("(main
) found exe
(before symlink chase
) at : %s
\n",
3894 actual_cwrapper_path = chase_symlinks (tmp_pathspec);
3895 LTWRAPPER_DEBUGPRINTF (("(main
) found exe
(after symlink chase
) at : %s
\n",
3896 actual_cwrapper_path));
3897 XFREE (tmp_pathspec);
3899 actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
3900 strendzap (actual_cwrapper_path, actual_cwrapper_name);
3902 /* wrapper name transforms */
3903 strendzap (actual_cwrapper_name, ".exe
");
3904 tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe
", 1);
3905 XFREE (actual_cwrapper_name);
3906 actual_cwrapper_name = tmp_pathspec;
3909 /* target_name transforms -- use actual target program name; might have lt- prefix */
3910 target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
3911 strendzap (target_name, ".exe
");
3912 tmp_pathspec = lt_extend_str (target_name, ".exe
", 1);
3913 XFREE (target_name);
3914 target_name = tmp_pathspec;
3917 LTWRAPPER_DEBUGPRINTF (("(main
) libtool target name
: %s
\n",
3923 XMALLOC (char, (strlen (actual_cwrapper_path) +
3924 strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
3925 strcpy (newargz[0], actual_cwrapper_path);
3926 strcat (newargz[0], "$objdir");
3927 strcat (newargz[0], "/");
3931 /* stop here, and copy so we don't have to do this twice */
3932 tmp_pathspec = xstrdup (newargz[0]);
3934 /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
3935 strcat (newargz[0], actual_cwrapper_name);
3937 /* DO want the lt- prefix here if it exists, so use target_name */
3938 lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
3939 XFREE (tmp_pathspec);
3940 tmp_pathspec = NULL;
3948 while ((p = strchr (newargz[0], '\\')) != NULL)
3952 while ((p = strchr (lt_argv_zero, '\\')) != NULL)
3962 XFREE (target_name);
3963 XFREE (actual_cwrapper_path);
3964 XFREE (actual_cwrapper_name);
3966 lt_setenv ("BIN_SH
", "xpg4
"); /* for Tru64 */
3967 lt_setenv ("DUALCASE
", "1"); /* for MSK sh */
3968 lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
3969 lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
3972 for (i = 1; i < argc; i++)
3974 if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)
3976 if (argv[i][env_set_opt_len] == '=')
3978 const char *p = argv[i] + env_set_opt_len + 1;
3979 lt_opt_process_env_set (p);
3981 else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc)
3983 lt_opt_process_env_set (argv[++i]); /* don't copy */
3986 lt_fatal ("%s missing required argument
", env_set_opt);
3989 if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)
3991 if (argv[i][env_prepend_opt_len] == '=')
3993 const char *p = argv[i] + env_prepend_opt_len + 1;
3994 lt_opt_process_env_prepend (p);
3996 else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc)
3998 lt_opt_process_env_prepend (argv[++i]); /* don't copy */
4001 lt_fatal ("%s missing required argument
", env_prepend_opt);
4004 if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)
4006 if (argv[i][env_append_opt_len] == '=')
4008 const char *p = argv[i] + env_append_opt_len + 1;
4009 lt_opt_process_env_append (p);
4011 else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc)
4013 lt_opt_process_env_append (argv[++i]); /* don't copy */
4016 lt_fatal ("%s missing required argument
", env_append_opt);
4019 if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
4021 /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
4022 namespace, but it is not one of the ones we know about and
4023 have already dealt with, above (inluding dump-script), then
4024 report an error. Otherwise, targets might begin to believe
4025 they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
4026 namespace. The first time any user complains about this, we'll
4027 need to make LTWRAPPER_OPTION_PREFIX a configure-time option
4028 or a configure.ac-settable value.
4030 lt_fatal ("Unrecognized option
in %s namespace
: '%s'",
4031 ltwrapper_option_prefix, argv[i]);
4034 newargz[++newargc] = xstrdup (argv[i]);
4036 newargz[++newargc] = NULL;
4038 LTWRAPPER_DEBUGPRINTF (("(main
) lt_argv_zero
: %s
\n", (lt_argv_zero ? lt_argv_zero : "<NULL
>")));
4039 for (i = 0; i < newargc; i++)
4041 LTWRAPPER_DEBUGPRINTF (("(main
) newargz
[%d
] : %s
\n", i, (newargz[i] ? newargz[i] : "<NULL
>")));
4049 /* execv doesn't actually work on mingw as expected on unix */
4050 rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
4053 /* failed to start process */
4054 LTWRAPPER_DEBUGPRINTF (("(main
) failed to launch target
\"%s
\": errno
= %d
\n", lt_argv_zero, errno));
4062 execv (lt_argv_zero, newargz);
4063 return rval; /* =127, but avoids unused variable warning */
4072 xmalloc (size_t num)
4074 void *p = (void *) malloc (num);
4076 lt_fatal ("Memory exhausted
");
4082 xstrdup (const char *string)
4084 return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
4089 base_name (const char *name)
4093 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4094 /* Skip over the disk name in MSDOS pathnames. */
4095 if (isalpha ((unsigned char) name[0]) && name[1] == ':')
4099 for (base = name; *name; name++)
4100 if (IS_DIR_SEPARATOR (*name))
4106 check_executable (const char *path)
4110 LTWRAPPER_DEBUGPRINTF (("(check_executable
) : %s
\n",
4111 path ? (*path ? path : "EMPTY
!") : "NULL
!"));
4112 if ((!path) || (!*path))
4115 if ((stat (path, &st) >= 0)
4116 && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
4123 make_executable (const char *path)
4128 LTWRAPPER_DEBUGPRINTF (("(make_executable
) : %s
\n",
4129 path ? (*path ? path : "EMPTY
!") : "NULL
!"));
4130 if ((!path) || (!*path))
4133 if (stat (path, &st) >= 0)
4135 rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
4140 /* Searches for the full path of the wrapper. Returns
4141 newly allocated full path name if found, NULL otherwise
4142 Does not chase symlinks, even on platforms that support them.
4145 find_executable (const char *wrapper)
4150 /* static buffer for getcwd */
4151 char tmp[LT_PATHMAX + 1];
4155 LTWRAPPER_DEBUGPRINTF (("(find_executable
) : %s
\n",
4156 wrapper ? (*wrapper ? wrapper : "EMPTY
!") : "NULL
!"));
4158 if ((wrapper == NULL) || (*wrapper == '\0'))
4161 /* Absolute path? */
4162 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4163 if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
4165 concat_name = xstrdup (wrapper);
4166 if (check_executable (concat_name))
4168 XFREE (concat_name);
4173 if (IS_DIR_SEPARATOR (wrapper[0]))
4175 concat_name = xstrdup (wrapper);
4176 if (check_executable (concat_name))
4178 XFREE (concat_name);
4180 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4184 for (p = wrapper; *p; p++)
4192 /* no slashes; search PATH */
4193 const char *path = getenv ("PATH
");
4196 for (p = path; *p; p = p_next)
4200 for (q = p; *q; q++)
4201 if (IS_PATH_SEPARATOR (*q))
4204 p_next = (*q == '\0' ? q : q + 1);
4207 /* empty path: current directory */
4208 if (getcwd (tmp, LT_PATHMAX) == NULL)
4209 lt_fatal ("getcwd failed
");
4210 tmp_len = strlen (tmp);
4212 XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
4213 memcpy (concat_name, tmp, tmp_len);
4214 concat_name[tmp_len] = '/';
4215 strcpy (concat_name + tmp_len + 1, wrapper);
4220 XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
4221 memcpy (concat_name, p, p_len);
4222 concat_name[p_len] = '/';
4223 strcpy (concat_name + p_len + 1, wrapper);
4225 if (check_executable (concat_name))
4227 XFREE (concat_name);
4230 /* not found in PATH; assume curdir */
4232 /* Relative path | not found in path: prepend cwd */
4233 if (getcwd (tmp, LT_PATHMAX) == NULL)
4234 lt_fatal ("getcwd failed
");
4235 tmp_len = strlen (tmp);
4236 concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
4237 memcpy (concat_name, tmp, tmp_len);
4238 concat_name[tmp_len] = '/';
4239 strcpy (concat_name + tmp_len + 1, wrapper);
4241 if (check_executable (concat_name))
4243 XFREE (concat_name);
4248 chase_symlinks (const char *pathspec)
4251 return xstrdup (pathspec);
4253 char buf[LT_PATHMAX];
4255 char *tmp_pathspec = xstrdup (pathspec);
4257 int has_symlinks = 0;
4258 while (strlen (tmp_pathspec) && !has_symlinks)
4260 LTWRAPPER_DEBUGPRINTF (("checking path component
for symlinks
: %s
\n",
4262 if (lstat (tmp_pathspec, &s) == 0)
4264 if (S_ISLNK (s.st_mode) != 0)
4270 /* search backwards for last DIR_SEPARATOR */
4271 p = tmp_pathspec + strlen (tmp_pathspec) - 1;
4272 while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
4274 if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
4276 /* no more DIR_SEPARATORS left */
4283 char *errstr = strerror (errno);
4284 lt_fatal ("Error accessing
file %s
(%s
)", tmp_pathspec, errstr);
4287 XFREE (tmp_pathspec);
4291 return xstrdup (pathspec);
4294 tmp_pathspec = realpath (pathspec, buf);
4295 if (tmp_pathspec == 0)
4297 lt_fatal ("Could not follow symlinks
for %s
", pathspec);
4299 return xstrdup (tmp_pathspec);
4304 strendzap (char *str, const char *pat)
4308 assert (str != NULL);
4309 assert (pat != NULL);
4312 patlen = strlen (pat);
4316 str += len - patlen;
4317 if (strcmp (str, pat) == 0)
4324 lt_error_core (int exit_status, const char *mode,
4325 const char *message, va_list ap)
4327 fprintf (stderr, "%s
: %s
: ", program_name, mode);
4328 vfprintf (stderr, message, ap);
4329 fprintf (stderr, ".
\n");
4331 if (exit_status >= 0)
4336 lt_fatal (const char *message, ...)
4339 va_start (ap, message);
4340 lt_error_core (EXIT_FAILURE, "FATAL
", message, ap);
4345 lt_setenv (const char *name, const char *value)
4347 LTWRAPPER_DEBUGPRINTF (("(lt_setenv
) setting
'%s' to
'%s'\n",
4348 (name ? name : "<NULL
>"),
4349 (value ? value : "<NULL
>")));
4352 /* always make a copy, for consistency with !HAVE_SETENV */
4353 char *str = xstrdup (value);
4354 setenv (name, str, 1);
4356 int len = strlen (name) + 1 + strlen (value) + 1;
4357 char *str = XMALLOC (char, len);
4358 sprintf (str, "%s
=%s
", name, value);
4359 if (putenv (str) != EXIT_SUCCESS)
4368 lt_extend_str (const char *orig_value, const char *add, int to_end)
4371 if (orig_value && *orig_value)
4373 int orig_value_len = strlen (orig_value);
4374 int add_len = strlen (add);
4375 new_value = XMALLOC (char, add_len + orig_value_len + 1);
4378 strcpy (new_value, orig_value);
4379 strcpy (new_value + orig_value_len, add);
4383 strcpy (new_value, add);
4384 strcpy (new_value + add_len, orig_value);
4389 new_value = xstrdup (add);
4395 lt_split_name_value (const char *arg, char** name, char** value)
4402 p = strchr (arg, (int)'=');
4407 *value = xstrdup (++p);
4409 len = strlen (arg) - strlen (*value);
4410 *name = XMALLOC (char, len);
4411 strncpy (*name, arg, len-1);
4412 (*name)[len - 1] = '\0';
4418 lt_opt_process_env_set (const char *arg)
4423 if (lt_split_name_value (arg, &name, &value) != 0)
4427 lt_fatal ("bad argument
for %s
: '%s'", env_set_opt, arg);
4430 lt_setenv (name, value);
4436 lt_opt_process_env_prepend (const char *arg)
4440 char *new_value = NULL;
4442 if (lt_split_name_value (arg, &name, &value) != 0)
4446 lt_fatal ("bad argument
for %s
: '%s'", env_prepend_opt, arg);
4449 new_value = lt_extend_str (getenv (name), value, 0);
4450 lt_setenv (name, new_value);
4457 lt_opt_process_env_append (const char *arg)
4461 char *new_value = NULL;
4463 if (lt_split_name_value (arg, &name, &value) != 0)
4467 lt_fatal ("bad argument
for %s
: '%s'", env_append_opt, arg);
4470 new_value = lt_extend_str (getenv (name), value, 1);
4471 lt_setenv (name, new_value);
4478 lt_update_exe_path (const char *name, const char *value)
4480 LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path
) modifying
'%s' by prepending
'%s'\n",
4481 (name ? name : "<NULL
>"),
4482 (value ? value : "<NULL
>")));
4484 if (name && *name && value && *value)
4486 char *new_value = lt_extend_str (getenv (name), value, 0);
4487 /* some systems can't cope with a ':'-terminated path #' */
4488 int len = strlen (new_value);
4489 while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
4491 new_value[len-1] = '\0';
4493 lt_setenv (name, new_value);
4499 lt_update_lib_path (const char *name, const char *value)
4501 LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path
) modifying
'%s' by prepending
'%s'\n",
4502 (name ? name : "<NULL
>"),
4503 (value ? value : "<NULL
>")));
4505 if (name && *name && value && *value)
4507 char *new_value = lt_extend_str (getenv (name), value, 0);
4508 lt_setenv (name, new_value);
4516 # end: func_emit_cwrapperexe_src
4518 # func_mode_link arg...
4523 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
4524 # It is impossible to link a dll without this setting, and
4525 # we shouldn't force the makefile maintainer to figure out
4526 # which system we are compiling for in order to pass an extra
4527 # flag for every libtool invocation.
4528 # allow_undefined=no
4530 # FIXME: Unfortunately, there are problems with the above when trying
4531 # to make a dll which has undefined symbols, in which case not
4532 # even a static library is built. For now, we need to specify
4533 # -no-undefined on the libtool link line when we can be certain
4534 # that all symbols are satisfied, otherwise we get a static library.
4541 libtool_args=$nonopt
4542 base_compile="$nonopt $@
"
4543 compile_command=$nonopt
4544 finalize_command=$nonopt
4557 lib_search_path=`pwd`
4559 new_inherited_linker_flags=
4567 export_symbols_regex=
4575 precious_files_regex=
4576 prefer_static_libs=no
4589 single_module="${wl}-single_module"
4590 func_infer_tag $base_compile
4592 # We need to know -static, to get the right output filenames.
4597 test "$build_libtool_libs" != yes && \
4598 func_fatal_configuration "can not build a shared library
"
4602 -all-static | -static | -static-libtool-libs)
4605 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
4606 func_warning "complete static linking is impossible
in this configuration
"
4608 if test -n "$link_static_flag"; then
4609 dlopen_self=$dlopen_self_static
4611 prefer_static_libs=yes
4614 if test -z "$pic_flag" && test -n "$link_static_flag"; then
4615 dlopen_self=$dlopen_self_static
4617 prefer_static_libs=built
4619 -static-libtool-libs)
4620 if test -z "$pic_flag" && test -n "$link_static_flag"; then
4621 dlopen_self=$dlopen_self_static
4623 prefer_static_libs=yes
4626 build_libtool_libs=no
4633 # See if our shared archives depend on static archives.
4634 test -n "$old_archive_from_new_cmds" && build_old_libs=yes
4636 # Go through the arguments, transforming them on the way.
4637 while test "$#" -gt 0; do
4640 func_quote_for_eval "$arg"
4641 qarg=$func_quote_for_eval_unquoted_result
4642 func_append libtool_args " $func_quote_for_eval_result"
4644 # If the previous option needs an argument, assign it.
4645 if test -n "$prev"; then
4648 func_append compile_command " @OUTPUT@
"
4649 func_append finalize_command " @OUTPUT@
"
4655 if test "$preload" = no; then
4656 # Add the symbol object into the linking commands.
4657 func_append compile_command " @SYMFILE@
"
4658 func_append finalize_command " @SYMFILE@
"
4662 *.la | *.lo) ;; # We handle these cases below.
4664 if test "$dlself" = no; then
4672 if test "$prev" = dlprefiles; then
4674 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
4684 if test "$prev" = dlfiles; then
4685 dlfiles="$dlfiles $arg"
4687 dlprefiles="$dlprefiles $arg"
4695 export_symbols="$arg"
4697 || func_fatal_error "symbol
file \
`$arg' does not exist"
4702 export_symbols_regex="$arg"
4710 *" $qarg.ltframework "*) ;;
4711 *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
4720 inst_prefix_dir="$arg"
4725 if test -f "$arg"; then
4728 for fil in `cat "$save_arg"`
4730 # moreargs="$moreargs $fil"
4732 # A libtool-controlled object.
4734 # Check to see that this really is a libtool object.
4735 if func_lalib_unsafe_p "$arg"; then
4742 if test -z "$pic_object" ||
4743 test -z "$non_pic_object" ||
4744 test "$pic_object" = none &&
4745 test "$non_pic_object" = none; then
4746 func_fatal_error "cannot find name of object for \`$arg'"
4749 # Extract subdirectory from the argument.
4750 func_dirname "$arg" "/" ""
4751 xdir="$func_dirname_result"
4753 if test "$pic_object" != none; then
4754 # Prepend the subdirectory the object is found in.
4755 pic_object="$xdir$pic_object"
4757 if test "$prev" = dlfiles; then
4758 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
4759 dlfiles="$dlfiles $pic_object"
4763 # If libtool objects are unsupported, then we need to preload.
4768 # CHECK ME: I think I busted this. -Ossama
4769 if test "$prev" = dlprefiles; then
4770 # Preload the old-style object.
4771 dlprefiles="$dlprefiles $pic_object"
4776 func_append libobjs " $pic_object"
4781 if test "$non_pic_object" != none; then
4782 # Prepend the subdirectory the object is found in.
4783 non_pic_object="$xdir$non_pic_object"
4785 # A standard non-PIC object
4786 func_append non_pic_objects " $non_pic_object"
4787 if test -z "$pic_object" || test "$pic_object" = none ; then
4788 arg="$non_pic_object"
4791 # If the PIC object exists, use it instead.
4792 # $xdir was prepended to $pic_object above.
4793 non_pic_object="$pic_object"
4794 func_append non_pic_objects " $non_pic_object"
4797 # Only an error if not doing a dry-run.
4798 if $opt_dry_run; then
4799 # Extract subdirectory from the argument.
4800 func_dirname "$arg" "/" ""
4801 xdir="$func_dirname_result"
4804 pic_object=$xdir$objdir/$func_lo2o_result
4805 non_pic_object=$xdir$func_lo2o_result
4806 func_append libobjs " $pic_object"
4807 func_append non_pic_objects " $non_pic_object"
4809 func_fatal_error "\`$arg' is not a valid libtool object
"
4814 func_fatal_error "link input
file \
`$arg' does not exist"
4821 precious_files_regex="$arg"
4831 # We need an absolute path.
4833 [\\/]* | [A-Za-z]:[\\/]*) ;;
4835 func_fatal_error "only absolute run-paths are allowed"
4838 if test "$prev" = rpath; then
4841 *) rpath="$rpath $arg" ;;
4846 *) xrpath="$xrpath $arg" ;;
4858 weak_libs="$weak_libs $arg"
4863 linker_flags="$linker_flags $qarg"
4864 compiler_flags="$compiler_flags $qarg"
4866 func_append compile_command " $qarg"
4867 func_append finalize_command " $qarg"
4871 compiler_flags="$compiler_flags $qarg"
4873 func_append compile_command " $qarg"
4874 func_append finalize_command " $qarg"
4878 linker_flags="$linker_flags $qarg"
4879 compiler_flags="$compiler_flags $wl$qarg"
4881 func_append compile_command " $wl$qarg"
4882 func_append finalize_command " $wl$qarg"
4886 eval "$prev=\"\$arg\""
4891 fi # test -n "$prev"
4897 if test -n "$link_static_flag"; then
4898 # See comment for -static flag below, for more details.
4899 func_append compile_command " $link_static_flag"
4900 func_append finalize_command " $link_static_flag"
4906 # FIXME: remove this flag sometime in the future.
4907 func_fatal_error "\`-allow-undefined' must not be used because it is the default"
4930 -export-symbols | -export-symbols-regex)
4931 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
4932 func_fatal_error "more than one -exported-symbols argument is not allowed"
4934 if test "X$arg" = "X-export-symbols"; then
4952 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
4953 # so, if we see these flags be careful not to treat them like -L
4955 case $with_gcc/$host in
4956 no/*-*-irix* | /*-*-irix*)
4957 func_append compile_command " $arg"
4958 func_append finalize_command " $arg"
4965 func_stripname '-L' '' "$arg"
4966 dir=$func_stripname_result
4967 if test -z "$dir"; then
4968 if test "$#" -gt 0; then
4969 func_fatal_error "require no space between \`-L' and \
`$1'"
4971 func_fatal_error "need path for \`-L' option"
4974 # We need an absolute path.
4976 [\\/]* | [A-Za-z]:[\\/]*) ;;
4978 absdir=`cd "$dir" && pwd`
4979 test -z "$absdir" && \
4980 func_fatal_error "cannot determine absolute directory name of \`$dir'"
4987 deplibs="$deplibs -L$dir"
4988 lib_search_path="$lib_search_path $dir"
4992 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
4993 testbindir=`$ECHO "X
$dir" | $Xsed -e 's*/lib$*/bin*'`
4994 case :$dllsearchpath: in
4996 ::) dllsearchpath=$dir;;
4997 *) dllsearchpath="$dllsearchpath:$dir";;
4999 case :$dllsearchpath: in
5000 *":$testbindir:"*) ;;
5001 ::) dllsearchpath=$testbindir;;
5002 *) dllsearchpath="$dllsearchpath:$testbindir";;
5010 if test "X
$arg" = "X-lc
" || test "X
$arg" = "X-lm
"; then
5012 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*)
5013 # These systems don't actually have a C or math library (as such)
5017 # These systems don't actually have a C library (as such)
5018 test "X
$arg" = "X-lc
" && continue
5020 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
5021 # Do not include libc due to us having libc/libc_r.
5022 test "X
$arg" = "X-lc
" && continue
5024 *-*-rhapsody* | *-*-darwin1.[012])
5025 # Rhapsody C and math libraries are in the System framework
5026 deplibs="$deplibs System.ltframework
"
5029 *-*-sco3.2v5* | *-*-sco5v6*)
5030 # Causes problems with __ctype
5031 test "X
$arg" = "X-lc
" && continue
5033 *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
5034 # Compiler inserts libc in the correct place for threads to work
5035 test "X
$arg" = "X-lc
" && continue
5038 elif test "X
$arg" = "X-lc_r
"; then
5040 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
5041 # Do not include libc_r directly, use -pthread flag.
5046 deplibs="$deplibs $arg"
5055 # Tru64 UNIX uses -model [arg] to determine the layout of C++
5056 # classes, name mangling, and exception handling.
5057 # Darwin uses the -arch flag to determine output architecture.
5058 -model|-arch|-isysroot)
5059 compiler_flags="$compiler_flags $arg"
5060 func_append compile_command " $arg"
5061 func_append finalize_command " $arg"
5066 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
5067 compiler_flags="$compiler_flags $arg"
5068 func_append compile_command " $arg"
5069 func_append finalize_command " $arg"
5070 case "$new_inherited_linker_flags " in
5072 * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
5078 single_module="${wl}-multi_module"
5089 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
5090 # The PATH hackery in wrapper scripts is required on Windows
5091 # and Darwin in order for the loader to find any dlls it needs.
5092 func_warning "\
`-no-install' is ignored for $host"
5093 func_warning "assuming \`-no-fast-install' instead"
5096 *) no_install=yes ;;
5113 -precious-files-regex)
5134 func_stripname '-R' '' "$arg"
5135 dir=$func_stripname_result
5136 # We need an absolute path.
5138 [\\/]* | [A-Za-z]:[\\/]*) ;;
5140 func_fatal_error "only absolute run-paths are allowed"
5145 *) xrpath="$xrpath $dir" ;;
5151 # The effects of -shared are defined in a previous loop.
5160 -static | -static-libtool-libs)
5161 # The effects of -static are defined in a previous loop.
5162 # We used to do the same as -all-static on platforms that
5163 # didn't have a PIC flag
, but the assumption that the effects
5164 # would be equivalent was wrong. It would break on at least
5165 # Digital Unix and AIX.
5191 func_stripname
'-Wc,' '' "$arg"
5192 args
=$func_stripname_result
5194 save_ifs
="$IFS"; IFS
=','
5195 for flag
in $args; do
5197 func_quote_for_eval
"$flag"
5198 arg
="$arg $wl$func_quote_for_eval_result"
5199 compiler_flags
="$compiler_flags $func_quote_for_eval_result"
5202 func_stripname
' ' '' "$arg"
5203 arg
=$func_stripname_result
5207 func_stripname
'-Wl,' '' "$arg"
5208 args
=$func_stripname_result
5210 save_ifs
="$IFS"; IFS
=','
5211 for flag
in $args; do
5213 func_quote_for_eval
"$flag"
5214 arg
="$arg $wl$func_quote_for_eval_result"
5215 compiler_flags
="$compiler_flags $wl$func_quote_for_eval_result"
5216 linker_flags
="$linker_flags $func_quote_for_eval_result"
5219 func_stripname
' ' '' "$arg"
5220 arg
=$func_stripname_result
5240 func_quote_for_eval
"$arg"
5241 arg
="$func_quote_for_eval_result"
5244 # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
5245 # -r[0-9][0-9]* specifies the processor on the SGI compiler
5246 # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
5247 # +DA*, +DD* enable 64-bit mode on the HP compiler
5248 # -q* pass through compiler args for the IBM compiler
5249 # -m*, -t[45]*, -txscale* pass through architecture-specific
5250 # compiler args for GCC
5251 # -F/path gives path to uninstalled frameworks, gcc on darwin
5252 # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
5253 # @file GCC response files
5254 -64|
-mips[0-9]|
-r[0-9][0-9]*|
-xarch=*|
-xtarget=*|
+DA
*|
+DD
*|
-q*|
-m*| \
5255 -t[45]*|
-txscale*|
-p|
-pg|
--coverage|
-fprofile-*|
-F*|@
*)
5256 func_quote_for_eval
"$arg"
5257 arg
="$func_quote_for_eval_result"
5258 func_append compile_command
" $arg"
5259 func_append finalize_command
" $arg"
5260 compiler_flags
="$compiler_flags $arg"
5264 # Some other compiler flag.
5266 func_quote_for_eval
"$arg"
5267 arg
="$func_quote_for_eval_result"
5271 # A standard object.
5276 # A libtool-controlled object.
5278 # Check to see that this really is a libtool object.
5279 if func_lalib_unsafe_p
"$arg"; then
5286 if test -z "$pic_object" ||
5287 test -z "$non_pic_object" ||
5288 test "$pic_object" = none
&&
5289 test "$non_pic_object" = none
; then
5290 func_fatal_error
"cannot find name of object for \`$arg'"
5293 # Extract subdirectory from the argument.
5294 func_dirname
"$arg" "/" ""
5295 xdir
="$func_dirname_result"
5297 if test "$pic_object" != none
; then
5298 # Prepend the subdirectory the object is found in.
5299 pic_object
="$xdir$pic_object"
5301 if test "$prev" = dlfiles
; then
5302 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
5303 dlfiles
="$dlfiles $pic_object"
5307 # If libtool objects are unsupported, then we need to preload.
5312 # CHECK ME: I think I busted this. -Ossama
5313 if test "$prev" = dlprefiles
; then
5314 # Preload the old-style object.
5315 dlprefiles
="$dlprefiles $pic_object"
5320 func_append libobjs
" $pic_object"
5325 if test "$non_pic_object" != none
; then
5326 # Prepend the subdirectory the object is found in.
5327 non_pic_object
="$xdir$non_pic_object"
5329 # A standard non-PIC object
5330 func_append non_pic_objects
" $non_pic_object"
5331 if test -z "$pic_object" ||
test "$pic_object" = none
; then
5332 arg
="$non_pic_object"
5335 # If the PIC object exists, use it instead.
5336 # $xdir was prepended to $pic_object above.
5337 non_pic_object
="$pic_object"
5338 func_append non_pic_objects
" $non_pic_object"
5341 # Only an error if not doing a dry-run.
5342 if $opt_dry_run; then
5343 # Extract subdirectory from the argument.
5344 func_dirname
"$arg" "/" ""
5345 xdir
="$func_dirname_result"
5348 pic_object
=$xdir$objdir/$func_lo2o_result
5349 non_pic_object
=$xdir$func_lo2o_result
5350 func_append libobjs
" $pic_object"
5351 func_append non_pic_objects
" $non_pic_object"
5353 func_fatal_error
"\`$arg' is not a valid libtool object"
5360 deplibs
="$deplibs $arg"
5361 old_deplibs
="$old_deplibs $arg"
5366 # A libtool-controlled library.
5368 if test "$prev" = dlfiles
; then
5369 # This library was specified with -dlopen.
5370 dlfiles
="$dlfiles $arg"
5372 elif test "$prev" = dlprefiles
; then
5373 # The library was specified with -dlpreopen.
5374 dlprefiles
="$dlprefiles $arg"
5377 deplibs
="$deplibs $arg"
5382 # Some other compiler argument.
5384 # Unknown arguments in both finalize_command and compile_command need
5385 # to be aesthetically quoted because they are evaled later.
5386 func_quote_for_eval
"$arg"
5387 arg
="$func_quote_for_eval_result"
5391 # Now actually substitute the argument into the commands.
5392 if test -n "$arg"; then
5393 func_append compile_command
" $arg"
5394 func_append finalize_command
" $arg"
5396 done # argument parsing loop
5398 test -n "$prev" && \
5399 func_fatal_help
"the \`$prevarg' option requires an argument"
5401 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
5402 eval arg
=\"$export_dynamic_flag_spec\"
5403 func_append compile_command
" $arg"
5404 func_append finalize_command
" $arg"
5408 # calculate the name of the file, without its directory
5409 func_basename
"$output"
5410 outputname
="$func_basename_result"
5411 libobjs_save
="$libobjs"
5413 if test -n "$shlibpath_var"; then
5414 # get the directories listed in $shlibpath_var
5415 eval shlib_search_path
=\
`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
5419 eval sys_lib_search_path
=\"$sys_lib_search_path_spec\"
5420 eval sys_lib_dlsearch_path
=\"$sys_lib_dlsearch_path_spec\"
5422 func_dirname
"$output" "/" ""
5423 output_objdir
="$func_dirname_result$objdir"
5424 # Create the object directory.
5425 func_mkdir_p
"$output_objdir"
5427 # Determine the type of output
5430 func_fatal_help
"you must specify an output file"
5432 *.
$libext) linkmode
=oldlib
;;
5433 *.lo |
*.
$objext) linkmode
=obj
;;
5434 *.la
) linkmode
=lib
;;
5435 *) linkmode
=prog
;; # Anything else should be a program.
5441 # Find all interdependent deplibs by searching for libraries
5442 # that are linked more than once (e.g. -la -lb -la)
5443 for deplib
in $deplibs; do
5444 if $opt_duplicate_deps ; then
5446 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
5449 libs
="$libs $deplib"
5452 if test "$linkmode" = lib
; then
5453 libs
="$predeps $libs $compiler_lib_search_path $postdeps"
5455 # Compute libraries that are listed more than once in $predeps
5456 # $postdeps and mark them as special (i.e., whose duplicates are
5457 # not to be eliminated).
5459 if $opt_duplicate_compiler_generated_deps; then
5460 for pre_post_dep
in $predeps $postdeps; do
5461 case "$pre_post_deps " in
5462 *" $pre_post_dep "*) specialdeplibs
="$specialdeplibs $pre_post_deps" ;;
5464 pre_post_deps
="$pre_post_deps $pre_post_dep"
5473 need_relink
=no
# whether we're linking any uninstalled libtool libraries
5474 notinst_deplibs
= # not-installed libtool libraries
5475 notinst_path
= # paths that contain not-installed libtool libraries
5479 passes
="conv dlpreopen link"
5480 for file in $dlfiles $dlprefiles; do
5484 func_fatal_help
"libraries can \`-dlopen' only libtool libraries: $file"
5495 passes
="conv scan dlopen dlpreopen link"
5501 for pass
in $passes; do
5502 # The preopen pass in lib mode reverses $deplibs; put it back here
5503 # so that -L comes before libs that need it for instance...
5504 if test "$linkmode,$pass" = "lib,link"; then
5505 ## FIXME: Find the place where the list is rebuilt in the wrong
5506 ## order, and fix it there properly
5508 for deplib
in $deplibs; do
5509 tmp_deplibs
="$deplib $tmp_deplibs"
5511 deplibs
="$tmp_deplibs"
5514 if test "$linkmode,$pass" = "lib,link" ||
5515 test "$linkmode,$pass" = "prog,scan"; then
5519 if test "$linkmode" = prog
; then
5521 dlopen
) libs
="$dlfiles" ;;
5522 dlpreopen
) libs
="$dlprefiles" ;;
5523 link
) libs
="$deplibs %DEPLIBS% $dependency_libs" ;;
5526 if test "$linkmode,$pass" = "lib,dlpreopen"; then
5527 # Collect and forward deplibs of preopened libtool libs
5528 for lib
in $dlprefiles; do
5529 # Ignore non-libtool-libs
5532 *.la
) func_source
"$lib" ;;
5535 # Collect preopened libtool deplibs, except any this library
5536 # has declared as weak libs
5537 for deplib
in $dependency_libs; do
5538 deplib_base
=`$ECHO "X$deplib" | $Xsed -e "$basename"`
5539 case " $weak_libs " in
5540 *" $deplib_base "*) ;;
5541 *) deplibs
="$deplibs $deplib" ;;
5547 if test "$pass" = dlopen
; then
5548 # Collect dlpreopened libraries
5549 save_deplibs
="$deplibs"
5553 for deplib
in $libs; do
5557 -mt|
-mthreads|
-kthread|
-Kthread|
-pthread|
-pthreads|
--thread-safe|
-threads)
5558 if test "$linkmode,$pass" = "prog,link"; then
5559 compile_deplibs
="$deplib $compile_deplibs"
5560 finalize_deplibs
="$deplib $finalize_deplibs"
5562 compiler_flags
="$compiler_flags $deplib"
5563 if test "$linkmode" = lib
; then
5564 case "$new_inherited_linker_flags " in
5566 * ) new_inherited_linker_flags
="$new_inherited_linker_flags $deplib" ;;
5573 if test "$linkmode" != lib
&& test "$linkmode" != prog
; then
5574 func_warning
"\`-l' is ignored for archives/objects"
5577 func_stripname
'-l' '' "$deplib"
5578 name
=$func_stripname_result
5579 if test "$linkmode" = lib
; then
5580 searchdirs
="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
5582 searchdirs
="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
5584 for searchdir
in $searchdirs; do
5585 for search_ext
in .la
$std_shrext .so .a
; do
5586 # Search the libtool library
5587 lib
="$searchdir/lib${name}${search_ext}"
5588 if test -f "$lib"; then
5589 if test "$search_ext" = ".la"; then
5598 if test "$found" != yes; then
5599 # deplib doesn't seem to be a libtool library
5600 if test "$linkmode,$pass" = "prog,link"; then
5601 compile_deplibs
="$deplib $compile_deplibs"
5602 finalize_deplibs
="$deplib $finalize_deplibs"
5604 deplibs
="$deplib $deplibs"
5605 test "$linkmode" = lib
&& newdependency_libs
="$deplib $newdependency_libs"
5608 else # deplib is a libtool library
5609 # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
5610 # We need to do some special things here, and not later.
5611 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
5612 case " $predeps $postdeps " in
5614 if func_lalib_p
"$lib"; then
5618 for l
in $old_library $library_names; do
5621 if test "X$ll" = "X$old_library" ; then # only static version available
5623 func_dirname
"$lib" "" "."
5624 ladir
="$func_dirname_result"
5625 lib
=$ladir/$old_library
5626 if test "$linkmode,$pass" = "prog,link"; then
5627 compile_deplibs
="$deplib $compile_deplibs"
5628 finalize_deplibs
="$deplib $finalize_deplibs"
5630 deplibs
="$deplib $deplibs"
5631 test "$linkmode" = lib
&& newdependency_libs
="$deplib $newdependency_libs"
5643 if test "$linkmode,$pass" = "prog,link"; then
5644 compile_deplibs
="$deplib $compile_deplibs"
5645 finalize_deplibs
="$deplib $finalize_deplibs"
5647 deplibs
="$deplib $deplibs"
5648 if test "$linkmode" = lib
; then
5649 case "$new_inherited_linker_flags " in
5651 * ) new_inherited_linker_flags
="$new_inherited_linker_flags $deplib" ;;
5660 deplibs
="$deplib $deplibs"
5661 test "$pass" = conv
&& continue
5662 newdependency_libs
="$deplib $newdependency_libs"
5663 func_stripname
'-L' '' "$deplib"
5664 newlib_search_path
="$newlib_search_path $func_stripname_result"
5667 if test "$pass" = conv
; then
5668 deplibs
="$deplib $deplibs"
5671 if test "$pass" = scan
; then
5672 deplibs
="$deplib $deplibs"
5674 compile_deplibs
="$deplib $compile_deplibs"
5675 finalize_deplibs
="$deplib $finalize_deplibs"
5677 func_stripname
'-L' '' "$deplib"
5678 newlib_search_path
="$newlib_search_path $func_stripname_result"
5681 func_warning
"\`-L' is ignored for archives/objects"
5687 if test "$pass" = link
; then
5688 func_stripname
'-R' '' "$deplib"
5689 dir
=$func_stripname_result
5690 # Make sure the xrpath contains only unique directories.
5693 *) xrpath
="$xrpath $dir" ;;
5696 deplibs
="$deplib $deplibs"
5699 *.la
) lib
="$deplib" ;;
5701 if test "$pass" = conv
; then
5702 deplibs
="$deplib $deplibs"
5707 # Linking convenience modules into shared libraries is allowed,
5708 # but linking other static libraries is non-portable.
5709 case " $dlpreconveniencelibs " in
5713 case $deplibs_check_method in
5715 set dummy
$deplibs_check_method; shift
5716 match_pattern_regex
=`expr "$deplibs_check_method" : "$1 \(.*\)"`
5717 if eval "\$ECHO \"X$deplib\"" 2>/dev
/null |
$Xsed -e 10q \
5718 |
$EGREP "$match_pattern_regex" > /dev
/null
; then
5726 if test "$valid_a_lib" != yes; then
5728 $ECHO "*** Warning: Trying to link with static lib archive $deplib."
5729 $ECHO "*** I have the capability to make that library automatically link in when"
5730 $ECHO "*** you link to this library. But I can only do this if you have a"
5731 $ECHO "*** shared version of the library, which you do not appear to have"
5732 $ECHO "*** because the file extensions .$libext of this argument makes me believe"
5733 $ECHO "*** that it is just a static archive that I should not use here."
5736 $ECHO "*** Warning: Linking the shared library $output against the"
5737 $ECHO "*** static library $deplib is not portable!"
5738 deplibs
="$deplib $deplibs"
5745 if test "$pass" != link
; then
5746 deplibs
="$deplib $deplibs"
5748 compile_deplibs
="$deplib $compile_deplibs"
5749 finalize_deplibs
="$deplib $finalize_deplibs"
5756 if test "$pass" = conv
; then
5757 deplibs
="$deplib $deplibs"
5758 elif test "$linkmode" = prog
; then
5759 if test "$pass" = dlpreopen ||
test "$dlopen_support" != yes ||
test "$build_libtool_libs" = no
; then
5760 # If there is no dlopen support or we're linking statically,
5761 # we need to preload.
5762 newdlprefiles
="$newdlprefiles $deplib"
5763 compile_deplibs
="$deplib $compile_deplibs"
5764 finalize_deplibs
="$deplib $finalize_deplibs"
5766 newdlfiles
="$newdlfiles $deplib"
5777 if test "$found" = yes ||
test -f "$lib"; then :
5779 func_fatal_error
"cannot find the library \`$lib' or unhandled argument \`$deplib'"
5782 # Check to see that this really is a libtool archive.
5783 func_lalib_unsafe_p
"$lib" \
5784 || func_fatal_error
"\`$lib' is not a valid libtool archive"
5786 func_dirname
"$lib" "" "."
5787 ladir
="$func_dirname_result"
5795 inherited_linker_flags
=
5796 # If the library was installed with an old release of libtool,
5797 # it will not redefine variables installed, or shouldnotlink
5806 # Convert "-framework foo" to "foo.ltframework"
5807 if test -n "$inherited_linker_flags"; then
5808 tmp_inherited_linker_flags
=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
5809 for tmp_inherited_linker_flag
in $tmp_inherited_linker_flags; do
5810 case " $new_inherited_linker_flags " in
5811 *" $tmp_inherited_linker_flag "*) ;;
5812 *) new_inherited_linker_flags
="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
5816 dependency_libs
=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
5817 if test "$linkmode,$pass" = "lib,link" ||
5818 test "$linkmode,$pass" = "prog,scan" ||
5819 { test "$linkmode" != prog
&& test "$linkmode" != lib
; }; then
5820 test -n "$dlopen" && dlfiles
="$dlfiles $dlopen"
5821 test -n "$dlpreopen" && dlprefiles
="$dlprefiles $dlpreopen"
5824 if test "$pass" = conv
; then
5825 # Only check for convenience libraries
5826 deplibs
="$lib $deplibs"
5827 if test -z "$libdir"; then
5828 if test -z "$old_library"; then
5829 func_fatal_error
"cannot find name of link library for \`$lib'"
5831 # It is a libtool convenience library, so add in its objects.
5832 convenience
="$convenience $ladir/$objdir/$old_library"
5833 old_convenience
="$old_convenience $ladir/$objdir/$old_library"
5834 elif test "$linkmode" != prog
&& test "$linkmode" != lib
; then
5835 func_fatal_error
"\`$lib' is not a convenience library"
5838 for deplib
in $dependency_libs; do
5839 deplibs
="$deplib $deplibs"
5840 if $opt_duplicate_deps ; then
5841 case "$tmp_libs " in
5842 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
5845 tmp_libs
="$tmp_libs $deplib"
5851 # Get the name of the library we link against.
5853 for l
in $old_library $library_names; do
5856 if test -z "$linklib"; then
5857 func_fatal_error
"cannot find name of link library for \`$lib'"
5860 # This library was specified with -dlopen.
5861 if test "$pass" = dlopen
; then
5862 if test -z "$libdir"; then
5863 func_fatal_error
"cannot -dlopen a convenience library: \`$lib'"
5865 if test -z "$dlname" ||
5866 test "$dlopen_support" != yes ||
5867 test "$build_libtool_libs" = no
; then
5868 # If there is no dlname, no dlopen support or we're linking
5869 # statically, we need to preload. We also need to preload any
5870 # dependent libraries so libltdl's deplib preloader doesn't
5871 # bomb out in the load deplibs phase.
5872 dlprefiles
="$dlprefiles $lib $dependency_libs"
5874 newdlfiles
="$newdlfiles $lib"
5879 # We need an absolute path.
5881 [\\/]* |
[A-Za-z
]:[\\/]*) abs_ladir
="$ladir" ;;
5883 abs_ladir
=`cd "$ladir" && pwd`
5884 if test -z "$abs_ladir"; then
5885 func_warning
"cannot determine absolute directory name of \`$ladir'"
5886 func_warning
"passing it literally to the linker, although it might fail"
5891 func_basename
"$lib"
5892 laname
="$func_basename_result"
5894 # Find the relevant object directory and library name.
5895 if test "X$installed" = Xyes
; then
5896 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
5897 func_warning
"library \`$lib' was moved."
5905 test "X$hardcode_automatic" = Xyes
&& avoidtemprpath
=yes
5907 if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
5910 # Remove this search path later
5911 notinst_path
="$notinst_path $abs_ladir"
5913 dir
="$ladir/$objdir"
5914 absdir
="$abs_ladir/$objdir"
5915 # Remove this search path later
5916 notinst_path
="$notinst_path $abs_ladir"
5918 fi # $installed = yes
5919 func_stripname
'lib' '.la' "$laname"
5920 name
=$func_stripname_result
5922 # This library was specified with -dlpreopen.
5923 if test "$pass" = dlpreopen
; then
5924 if test -z "$libdir" && test "$linkmode" = prog
; then
5925 func_fatal_error
"only libraries may -dlpreopen a convenience library: \`$lib'"
5927 # Prefer using a static library (so that no silly _DYNAMIC symbols
5928 # are required to link).
5929 if test -n "$old_library"; then
5930 newdlprefiles
="$newdlprefiles $dir/$old_library"
5931 # Keep a list of preopened convenience libraries to check
5932 # that they are being used correctly in the link pass.
5933 test -z "$libdir" && \
5934 dlpreconveniencelibs
="$dlpreconveniencelibs $dir/$old_library"
5935 # Otherwise, use the dlname, so that lt_dlopen finds it.
5936 elif test -n "$dlname"; then
5937 newdlprefiles
="$newdlprefiles $dir/$dlname"
5939 newdlprefiles
="$newdlprefiles $dir/$linklib"
5941 fi # $pass = dlpreopen
5943 if test -z "$libdir"; then
5944 # Link the convenience library
5945 if test "$linkmode" = lib
; then
5946 deplibs
="$dir/$old_library $deplibs"
5947 elif test "$linkmode,$pass" = "prog,link"; then
5948 compile_deplibs
="$dir/$old_library $compile_deplibs"
5949 finalize_deplibs
="$dir/$old_library $finalize_deplibs"
5951 deplibs
="$lib $deplibs" # used for prog,scan pass
5957 if test "$linkmode" = prog
&& test "$pass" != link
; then
5958 newlib_search_path
="$newlib_search_path $ladir"
5959 deplibs
="$lib $deplibs"
5962 if test "$link_all_deplibs" != no ||
test -z "$library_names" ||
5963 test "$build_libtool_libs" = no
; then
5968 for deplib
in $dependency_libs; do
5970 -L*) func_stripname
'-L' '' "$deplib"
5971 newlib_search_path
="$newlib_search_path $func_stripname_result"
5974 # Need to link against all dependency_libs?
5975 if test "$linkalldeplibs" = yes; then
5976 deplibs
="$deplib $deplibs"
5978 # Need to hardcode shared library paths
5979 # or/and link against static libraries
5980 newdependency_libs
="$deplib $newdependency_libs"
5982 if $opt_duplicate_deps ; then
5983 case "$tmp_libs " in
5984 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
5987 tmp_libs
="$tmp_libs $deplib"
5990 fi # $linkmode = prog...
5992 if test "$linkmode,$pass" = "prog,link"; then
5993 if test -n "$library_names" &&
5994 { { test "$prefer_static_libs" = no ||
5995 test "$prefer_static_libs,$installed" = "built,yes"; } ||
5996 test -z "$old_library"; }; then
5997 # We need to hardcode the library path
5998 if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
5999 # Make sure the rpath contains only unique directories.
6000 case "$temp_rpath:" in
6002 *) temp_rpath
="$temp_rpath$absdir:" ;;
6006 # Hardcode the library path.
6007 # Skip directories that are in the system default run-time
6009 case " $sys_lib_dlsearch_path " in
6012 case "$compile_rpath " in
6014 *) compile_rpath
="$compile_rpath $absdir"
6018 case " $sys_lib_dlsearch_path " in
6021 case "$finalize_rpath " in
6023 *) finalize_rpath
="$finalize_rpath $libdir"
6027 fi # $linkmode,$pass = prog,link...
6029 if test "$alldeplibs" = yes &&
6030 { test "$deplibs_check_method" = pass_all ||
6031 { test "$build_libtool_libs" = yes &&
6032 test -n "$library_names"; }; }; then
6033 # We only need to search for static libraries
6038 link_static
=no
# Whether the deplib will be linked statically
6039 use_static_libs
=$prefer_static_libs
6040 if test "$use_static_libs" = built
&& test "$installed" = yes; then
6043 if test -n "$library_names" &&
6044 { test "$use_static_libs" = no ||
test -z "$old_library"; }; then
6046 *cygwin
* |
*mingw
* |
*cegcc
*)
6047 # No point in relinking DLLs because paths are not encoded
6048 notinst_deplibs
="$notinst_deplibs $lib"
6052 if test "$installed" = no
; then
6053 notinst_deplibs
="$notinst_deplibs $lib"
6058 # This is a shared library
6060 # Warn about portability, can't link against -module's on some
6061 # systems (darwin). Don't bleat about dlopened modules though!
6063 for dlpremoduletest
in $dlprefiles; do
6064 if test "X$dlpremoduletest" = "X$lib"; then
6065 dlopenmodule
="$dlpremoduletest"
6069 if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link
; then
6071 if test "$linkmode" = prog
; then
6072 $ECHO "*** Warning: Linking the executable $output against the loadable module"
6074 $ECHO "*** Warning: Linking the shared library $output against the loadable module"
6076 $ECHO "*** $linklib is not portable!"
6078 if test "$linkmode" = lib
&&
6079 test "$hardcode_into_libs" = yes; then
6080 # Hardcode the library path.
6081 # Skip directories that are in the system default run-time
6083 case " $sys_lib_dlsearch_path " in
6086 case "$compile_rpath " in
6088 *) compile_rpath
="$compile_rpath $absdir"
6092 case " $sys_lib_dlsearch_path " in
6095 case "$finalize_rpath " in
6097 *) finalize_rpath
="$finalize_rpath $libdir"
6103 if test -n "$old_archive_from_expsyms_cmds"; then
6104 # figure out the soname
6105 set dummy
$library_names
6109 libname
=`eval "\\$ECHO \"$libname_spec\""`
6110 # use dlname if we got it. it's perfectly good, no?
6111 if test -n "$dlname"; then
6113 elif test -n "$soname_spec"; then
6116 *cygwin
* | mingw
* |
*cegcc
*)
6117 func_arith
$current - $age
6118 major
=$func_arith_result
6122 eval soname
=\"$soname_spec\"
6127 # Make a new name for the extract_expsyms_cmds to use
6129 func_basename
"$soroot"
6130 soname
="$func_basename_result"
6131 func_stripname
'lib' '.dll' "$soname"
6132 newlib
=libimp-
$func_stripname_result.a
6134 # If the library has no export list, then create one now
6135 if test -f "$output_objdir/$soname-def"; then :
6137 func_verbose
"extracting exported symbol list from \`$soname'"
6138 func_execute_cmds
"$extract_expsyms_cmds" 'exit $?'
6142 if test -f "$output_objdir/$newlib"; then :; else
6143 func_verbose
"generating import library for \`$soname'"
6144 func_execute_cmds
"$old_archive_from_expsyms_cmds" 'exit $?'
6146 # make sure the library variables are pointing to the new library
6149 fi # test -n "$old_archive_from_expsyms_cmds"
6151 if test "$linkmode" = prog ||
test "$mode" != relink
; then
6156 case $hardcode_action in
6157 immediate | unsupported
)
6158 if test "$hardcode_direct" = no
; then
6161 *-*-sco3.2v5.0.
[024]*) add_dir
="-L$dir" ;;
6162 *-*-sysv4*uw2
*) add_dir
="-L$dir" ;;
6163 *-*-sysv5OpenUNIX* |
*-*-sysv5UnixWare7.
[01].
[10]* | \
6164 *-*-unixware7*) add_dir
="-L$dir" ;;
6166 # if the lib is a (non-dlopened) module then we can not
6167 # link against it, someone is ignoring the earlier warnings
6168 if /usr
/bin
/file -L $add 2> /dev
/null |
6169 $GREP ": [^:]* bundle" >/dev
/null
; then
6170 if test "X$dlopenmodule" != "X$lib"; then
6171 $ECHO "*** Warning: lib $linklib is a module, not a shared library"
6172 if test -z "$old_library" ; then
6174 $ECHO "*** And there doesn't seem to be a static archive available"
6175 $ECHO "*** The link will probably fail, sorry"
6177 add
="$dir/$old_library"
6179 elif test -n "$old_library"; then
6180 add
="$dir/$old_library"
6184 elif test "$hardcode_minus_L" = no
; then
6186 *-*-sunos*) add_shlibpath
="$dir" ;;
6190 elif test "$hardcode_shlibpath_var" = no
; then
6191 add_shlibpath
="$dir"
6198 if test "$hardcode_direct" = yes &&
6199 test "$hardcode_direct_absolute" = no
; then
6201 elif test "$hardcode_minus_L" = yes; then
6203 # Try looking first in the location we're being installed to.
6204 if test -n "$inst_prefix_dir"; then
6207 add_dir
="$add_dir -L$inst_prefix_dir$libdir"
6212 elif test "$hardcode_shlibpath_var" = yes; then
6213 add_shlibpath
="$dir"
6222 if test "$lib_linked" != yes; then
6223 func_fatal_configuration
"unsupported hardcode properties"
6226 if test -n "$add_shlibpath"; then
6227 case :$compile_shlibpath: in
6228 *":$add_shlibpath:"*) ;;
6229 *) compile_shlibpath
="$compile_shlibpath$add_shlibpath:" ;;
6232 if test "$linkmode" = prog
; then
6233 test -n "$add_dir" && compile_deplibs
="$add_dir $compile_deplibs"
6234 test -n "$add" && compile_deplibs
="$add $compile_deplibs"
6236 test -n "$add_dir" && deplibs
="$add_dir $deplibs"
6237 test -n "$add" && deplibs
="$add $deplibs"
6238 if test "$hardcode_direct" != yes &&
6239 test "$hardcode_minus_L" != yes &&
6240 test "$hardcode_shlibpath_var" = yes; then
6241 case :$finalize_shlibpath: in
6243 *) finalize_shlibpath
="$finalize_shlibpath$libdir:" ;;
6249 if test "$linkmode" = prog ||
test "$mode" = relink
; then
6253 # Finalize command for both is simple: just hardcode it.
6254 if test "$hardcode_direct" = yes &&
6255 test "$hardcode_direct_absolute" = no
; then
6256 add
="$libdir/$linklib"
6257 elif test "$hardcode_minus_L" = yes; then
6260 elif test "$hardcode_shlibpath_var" = yes; then
6261 case :$finalize_shlibpath: in
6263 *) finalize_shlibpath
="$finalize_shlibpath$libdir:" ;;
6266 elif test "$hardcode_automatic" = yes; then
6267 if test -n "$inst_prefix_dir" &&
6268 test -f "$inst_prefix_dir$libdir/$linklib" ; then
6269 add
="$inst_prefix_dir$libdir/$linklib"
6271 add
="$libdir/$linklib"
6274 # We cannot seem to hardcode it, guess we'll fake it.
6276 # Try looking first in the location we're being installed to.
6277 if test -n "$inst_prefix_dir"; then
6280 add_dir
="$add_dir -L$inst_prefix_dir$libdir"
6287 if test "$linkmode" = prog
; then
6288 test -n "$add_dir" && finalize_deplibs
="$add_dir $finalize_deplibs"
6289 test -n "$add" && finalize_deplibs
="$add $finalize_deplibs"
6291 test -n "$add_dir" && deplibs
="$add_dir $deplibs"
6292 test -n "$add" && deplibs
="$add $deplibs"
6295 elif test "$linkmode" = prog
; then
6296 # Here we assume that one of hardcode_direct or hardcode_minus_L
6297 # is not unsupported. This is valid on all known static and
6299 if test "$hardcode_direct" != unsupported
; then
6300 test -n "$old_library" && linklib
="$old_library"
6301 compile_deplibs
="$dir/$linklib $compile_deplibs"
6302 finalize_deplibs
="$dir/$linklib $finalize_deplibs"
6304 compile_deplibs
="-l$name -L$dir $compile_deplibs"
6305 finalize_deplibs
="-l$name -L$dir $finalize_deplibs"
6307 elif test "$build_libtool_libs" = yes; then
6308 # Not a shared library
6309 if test "$deplibs_check_method" != pass_all
; then
6310 # We're trying link a shared library against a static one
6311 # but the system doesn't support it.
6313 # Just print a warning and add the library to dependency_libs so
6314 # that the program can be linked against the static library.
6316 $ECHO "*** Warning: This system can not link to static lib archive $lib."
6317 $ECHO "*** I have the capability to make that library automatically link in when"
6318 $ECHO "*** you link to this library. But I can only do this if you have a"
6319 $ECHO "*** shared version of the library, which you do not appear to have."
6320 if test "$module" = yes; then
6321 $ECHO "*** But as you try to build a module library, libtool will still create "
6322 $ECHO "*** a static module, that should work as long as the dlopening application"
6323 $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
6324 if test -z "$global_symbol_pipe"; then
6326 $ECHO "*** However, this would only work if libtool was able to extract symbol"
6327 $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
6328 $ECHO "*** not find such a program. So, this module is probably useless."
6329 $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
6331 if test "$build_old_libs" = no
; then
6332 build_libtool_libs
=module
6335 build_libtool_libs
=no
6339 deplibs
="$dir/$old_library $deplibs"
6342 fi # link shared/static library?
6344 if test "$linkmode" = lib
; then
6345 if test -n "$dependency_libs" &&
6346 { test "$hardcode_into_libs" != yes ||
6347 test "$build_old_libs" = yes ||
6348 test "$link_static" = yes; }; then
6349 # Extract -R from dependency_libs
6351 for libdir
in $dependency_libs; do
6353 -R*) func_stripname
'-R' '' "$libdir"
6354 temp_xrpath
=$func_stripname_result
6356 *" $temp_xrpath "*) ;;
6357 *) xrpath
="$xrpath $temp_xrpath";;
6359 *) temp_deplibs
="$temp_deplibs $libdir";;
6362 dependency_libs
="$temp_deplibs"
6365 newlib_search_path
="$newlib_search_path $absdir"
6366 # Link against this library
6367 test "$link_static" = no
&& newdependency_libs
="$abs_ladir/$laname $newdependency_libs"
6368 # ... and its dependency_libs
6370 for deplib
in $dependency_libs; do
6371 newdependency_libs
="$deplib $newdependency_libs"
6372 if $opt_duplicate_deps ; then
6373 case "$tmp_libs " in
6374 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
6377 tmp_libs
="$tmp_libs $deplib"
6380 if test "$link_all_deplibs" != no
; then
6381 # Add the search paths of all dependency libraries
6382 for deplib
in $dependency_libs; do
6384 -L*) path
="$deplib" ;;
6386 func_dirname
"$deplib" "" "."
6387 dir
="$func_dirname_result"
6388 # We need an absolute path.
6390 [\\/]* |
[A-Za-z
]:[\\/]*) absdir
="$dir" ;;
6392 absdir
=`cd "$dir" && pwd`
6393 if test -z "$absdir"; then
6394 func_warning
"cannot determine absolute directory name of \`$dir'"
6399 if $GREP "^installed=no" $deplib > /dev
/null
; then
6403 eval deplibrary_names
=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
6404 if test -n "$deplibrary_names" ; then
6405 for tmp
in $deplibrary_names ; do
6408 if test -f "$absdir/$objdir/$depdepl" ; then
6409 depdepl
="$absdir/$objdir/$depdepl"
6410 darwin_install_name
=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
6411 if test -z "$darwin_install_name"; then
6412 darwin_install_name
=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
6414 compiler_flags
="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
6415 linker_flags
="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
6421 path
="-L$absdir/$objdir"
6425 eval libdir
=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
6426 test -z "$libdir" && \
6427 func_fatal_error
"\`$deplib' is not a valid libtool archive"
6428 test "$absdir" != "$libdir" && \
6429 func_warning
"\`$deplib' seems to be moved"
6435 case " $deplibs " in
6437 *) deplibs
="$path $deplibs" ;;
6440 fi # link_all_deplibs != no
6442 done # for deplib in $libs
6443 if test "$pass" = link
; then
6444 if test "$linkmode" = "prog"; then
6445 compile_deplibs
="$new_inherited_linker_flags $compile_deplibs"
6446 finalize_deplibs
="$new_inherited_linker_flags $finalize_deplibs"
6448 compiler_flags
="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
6451 dependency_libs
="$newdependency_libs"
6452 if test "$pass" = dlpreopen
; then
6453 # Link the dlpreopened libraries before other libraries
6454 for deplib
in $save_deplibs; do
6455 deplibs
="$deplib $deplibs"
6458 if test "$pass" != dlopen
; then
6459 if test "$pass" != conv
; then
6460 # Make sure lib_search_path contains only unique directories.
6462 for dir
in $newlib_search_path; do
6463 case "$lib_search_path " in
6465 *) lib_search_path
="$lib_search_path $dir" ;;
6471 if test "$linkmode,$pass" != "prog,link"; then
6474 vars
="compile_deplibs finalize_deplibs"
6476 for var
in $vars dependency_libs
; do
6477 # Add libraries to $var in reverse order
6478 eval tmp_libs
=\"\$
$var\"
6480 for deplib
in $tmp_libs; do
6481 # FIXME: Pedantically, this is the right thing to do, so
6482 # that some nasty dependency loop isn't accidentally
6484 #new_libs="$deplib $new_libs"
6485 # Pragmatically, this seems to cause very few problems in
6488 -L*) new_libs
="$deplib $new_libs" ;;
6491 # And here is the reason: when a library appears more
6492 # than once as an explicit dependence of a library, or
6493 # is implicitly linked in more than once by the
6494 # compiler, it is considered special, and multiple
6495 # occurrences thereof are not removed. Compare this
6496 # with having the same library being listed as a
6497 # dependency of multiple other libraries: in this case,
6498 # we know (pedantically, we assume) the library does not
6499 # need to be listed more than once, so we keep only the
6500 # last copy. This is not always right, but it is rare
6501 # enough that we require users that really mean to play
6502 # such unportable linking tricks to link the library
6503 # using -Wl,-lname, so that libtool does not consider it
6504 # for duplicate removal.
6505 case " $specialdeplibs " in
6506 *" $deplib "*) new_libs
="$deplib $new_libs" ;;
6508 case " $new_libs " in
6510 *) new_libs
="$deplib $new_libs" ;;
6518 for deplib
in $new_libs; do
6521 case " $tmp_libs " in
6523 *) tmp_libs
="$tmp_libs $deplib" ;;
6526 *) tmp_libs
="$tmp_libs $deplib" ;;
6529 eval $var=\"$tmp_libs\"
6532 # Last step: remove runtime libs from dependency_libs
6533 # (they stay in deplibs)
6535 for i
in $dependency_libs ; do
6536 case " $predeps $postdeps $compiler_lib_search_path " in
6541 if test -n "$i" ; then
6542 tmp_libs
="$tmp_libs $i"
6545 dependency_libs
=$tmp_libs
6547 if test "$linkmode" = prog
; then
6548 dlfiles
="$newdlfiles"
6550 if test "$linkmode" = prog ||
test "$linkmode" = lib
; then
6551 dlprefiles
="$newdlprefiles"
6556 if test -n "$dlfiles$dlprefiles" ||
test "$dlself" != no
; then
6557 func_warning
"\`-dlopen' is ignored for archives"
6562 func_warning
"\`-l' and \`-L' are ignored for archives" ;;
6565 test -n "$rpath" && \
6566 func_warning
"\`-rpath' is ignored for archives"
6568 test -n "$xrpath" && \
6569 func_warning
"\`-R' is ignored for archives"
6571 test -n "$vinfo" && \
6572 func_warning
"\`-version-info/-version-number' is ignored for archives"
6574 test -n "$release" && \
6575 func_warning
"\`-release' is ignored for archives"
6577 test -n "$export_symbols$export_symbols_regex" && \
6578 func_warning
"\`-export-symbols' is ignored for archives"
6580 # Now set the variables for building old libraries.
6581 build_libtool_libs
=no
6583 objs
="$objs$old_deplibs"
6587 # Make sure we only generate libraries of the form `libNAME.la'.
6590 func_stripname
'lib' '.la' "$outputname"
6591 name
=$func_stripname_result
6592 eval shared_ext
=\"$shrext_cmds\"
6593 eval libname
=\"$libname_spec\"
6596 test "$module" = no
&& \
6597 func_fatal_help
"libtool library \`$output' must begin with \`lib'"
6599 if test "$need_lib_prefix" != no
; then
6600 # Add the "lib" prefix for modules if required
6601 func_stripname
'' '.la' "$outputname"
6602 name
=$func_stripname_result
6603 eval shared_ext
=\"$shrext_cmds\"
6604 eval libname
=\"$libname_spec\"
6606 func_stripname
'' '.la' "$outputname"
6607 libname
=$func_stripname_result
6612 if test -n "$objs"; then
6613 if test "$deplibs_check_method" != pass_all
; then
6614 func_fatal_error
"cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
6617 $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
6618 $ECHO "*** objects $objs is not portable!"
6619 libobjs
="$libobjs $objs"
6623 test "$dlself" != no
&& \
6624 func_warning
"\`-dlopen self' is ignored for libtool libraries"
6628 test "$#" -gt 1 && \
6629 func_warning
"ignoring multiple \`-rpath's for a libtool library"
6634 if test -z "$rpath"; then
6635 if test "$build_libtool_libs" = yes; then
6636 # Building a libtool convenience library.
6637 # Some compilers have problems with a `.al' extension so
6638 # convenience libraries should have the same extension an
6639 # archive normally would.
6640 oldlibs
="$output_objdir/$libname.$libext $oldlibs"
6641 build_libtool_libs
=convenience
6645 test -n "$vinfo" && \
6646 func_warning
"\`-version-info/-version-number' is ignored for convenience libraries"
6648 test -n "$release" && \
6649 func_warning
"\`-release' is ignored for convenience libraries"
6652 # Parse the version information argument.
6653 save_ifs
="$IFS"; IFS
=':'
6654 set dummy
$vinfo 0 0 0
6659 func_fatal_help
"too many parameters to \`-version-info'"
6661 # convert absolute version numbers to libtool ages
6662 # this retains compatibility with .la files and attempts
6663 # to make the code below a bit more comprehensible
6665 case $vinfo_number in
6669 number_revision
="$3"
6671 # There are really only two kinds -- those that
6672 # use the current revision as the major version
6673 # and those that subtract age and use age as
6674 # a minor version. But, then there is irix
6675 # which has an extra 1 added just for fun
6677 case $version_type in
6678 darwin|linux|osf|windows|none
)
6679 func_arith
$number_major + $number_minor
6680 current
=$func_arith_result
6682 revision
="$number_revision"
6684 freebsd-aout|freebsd-elf|sunos
)
6685 current
="$number_major"
6686 revision
="$number_minor"
6690 func_arith
$number_major + $number_minor
6691 current
=$func_arith_result
6693 revision
="$number_minor"
6694 lt_irix_increment
=no
6705 # Check that each of the things are valid numbers.
6707 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]) ;;
6709 func_error
"CURRENT \`$current' must be a nonnegative integer"
6710 func_fatal_error
"\`$vinfo' is not valid version information"
6715 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]) ;;
6717 func_error
"REVISION \`$revision' must be a nonnegative integer"
6718 func_fatal_error
"\`$vinfo' is not valid version information"
6723 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]) ;;
6725 func_error
"AGE \`$age' must be a nonnegative integer"
6726 func_fatal_error
"\`$vinfo' is not valid version information"
6730 if test "$age" -gt "$current"; then
6731 func_error
"AGE \`$age' is greater than the current interface number \`$current'"
6732 func_fatal_error
"\`$vinfo' is not valid version information"
6735 # Calculate the version variables.
6739 case $version_type in
6743 # Like Linux, but with the current version available in
6744 # verstring for coding it into the library header
6745 func_arith
$current - $age
6746 major
=.
$func_arith_result
6747 versuffix
="$major.$age.$revision"
6748 # Darwin ld doesn't like 0 for these options...
6749 func_arith
$current + 1
6750 minor_current
=$func_arith_result
6751 xlcverstring
="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
6752 verstring
="-compatibility_version $minor_current -current_version $minor_current.$revision"
6757 versuffix
=".$current.$revision";
6762 versuffix
=".$current"
6766 if test "X$lt_irix_increment" = "Xno"; then
6767 func_arith
$current - $age
6769 func_arith
$current - $age + 1
6771 major
=$func_arith_result
6773 case $version_type in
6774 nonstopux
) verstring_prefix
=nonstopux
;;
6775 *) verstring_prefix
=sgi
;;
6777 verstring
="$verstring_prefix$major.$revision"
6779 # Add in all the interfaces that we are compatible with.
6781 while test "$loop" -ne 0; do
6782 func_arith
$revision - $loop
6783 iface
=$func_arith_result
6784 func_arith
$loop - 1
6785 loop
=$func_arith_result
6786 verstring
="$verstring_prefix$major.$iface:$verstring"
6789 # Before this point, $major must not contain `.'.
6791 versuffix
="$major.$revision"
6795 func_arith
$current - $age
6796 major
=.
$func_arith_result
6797 versuffix
="$major.$age.$revision"
6801 func_arith
$current - $age
6802 major
=.
$func_arith_result
6803 versuffix
=".$current.$age.$revision"
6804 verstring
="$current.$age.$revision"
6806 # Add in all the interfaces that we are compatible with.
6808 while test "$loop" -ne 0; do
6809 func_arith
$current - $loop
6810 iface
=$func_arith_result
6811 func_arith
$loop - 1
6812 loop
=$func_arith_result
6813 verstring
="$verstring:${iface}.0"
6816 # Make executables depend on our current version.
6817 verstring
="$verstring:${current}.0"
6822 versuffix
=".$current"
6827 versuffix
=".$current.$revision"
6831 # Use '-' rather than '.', since we only want one
6832 # extension on DOS 8.3 filesystems.
6833 func_arith
$current - $age
6834 major
=$func_arith_result
6839 func_fatal_configuration
"unknown library version type \`$version_type'"
6843 # Clear the version info if we defaulted, and they specified a release.
6844 if test -z "$vinfo" && test -n "$release"; then
6846 case $version_type in
6848 # we can't check for "0.0" in archive_cmds due to quoting
6849 # problems, so we reset it completely
6856 if test "$need_version" = no
; then
6863 # Remove version info from name if versioning should be avoided
6864 if test "$avoid_version" = yes && test "$need_version" = no
; then
6870 # Check to see if the archive will have undefined symbols.
6871 if test "$allow_undefined" = yes; then
6872 if test "$allow_undefined_flag" = unsupported
; then
6873 func_warning
"undefined symbols not allowed in $host shared libraries"
6874 build_libtool_libs
=no
6878 # Don't allow undefined symbols.
6879 allow_undefined_flag
="$no_undefined_flag"
6884 func_generate_dlsyms
"$libname" "$libname" "yes"
6885 libobjs
="$libobjs $symfileobj"
6886 test "X$libobjs" = "X " && libobjs
=
6888 if test "$mode" != relink
; then
6889 # Remove our outputs, but don't remove object files since they
6890 # may have been created when compiling PIC objects.
6892 tempremovelist
=`$ECHO "$output_objdir/*"`
6893 for p
in $tempremovelist; do
6897 $output_objdir/$outputname |
$output_objdir/$libname.
* |
$output_objdir/${libname}${release}.
*)
6898 if test "X$precious_files_regex" != "X"; then
6899 if $ECHO "$p" |
$EGREP -e "$precious_files_regex" >/dev
/null
2>&1
6904 removelist
="$removelist $p"
6909 test -n "$removelist" && \
6910 func_show_eval
"${RM}r \$removelist"
6913 # Now set the variables for building old libraries.
6914 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience
; then
6915 oldlibs
="$oldlibs $output_objdir/$libname.$libext"
6917 # Transform .lo files to .o files.
6918 oldobjs
="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
6921 # Eliminate all temporary directories.
6922 #for path in $notinst_path; do
6923 # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
6924 # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
6925 # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
6928 if test -n "$xrpath"; then
6929 # If the user specified any rpath flags, then add them.
6931 for libdir
in $xrpath; do
6932 temp_xrpath
="$temp_xrpath -R$libdir"
6933 case "$finalize_rpath " in
6935 *) finalize_rpath
="$finalize_rpath $libdir" ;;
6938 if test "$hardcode_into_libs" != yes ||
test "$build_old_libs" = yes; then
6939 dependency_libs
="$temp_xrpath $dependency_libs"
6943 # Make sure dlfiles contains only unique files that won't be dlpreopened
6944 old_dlfiles
="$dlfiles"
6946 for lib
in $old_dlfiles; do
6947 case " $dlprefiles $dlfiles " in
6949 *) dlfiles
="$dlfiles $lib" ;;
6953 # Make sure dlprefiles contains only unique files
6954 old_dlprefiles
="$dlprefiles"
6956 for lib
in $old_dlprefiles; do
6957 case "$dlprefiles " in
6959 *) dlprefiles
="$dlprefiles $lib" ;;
6963 if test "$build_libtool_libs" = yes; then
6964 if test -n "$rpath"; then
6966 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-os2* |
*-*-beos* |
*-cegcc*)
6967 # these systems don't actually have a c library (as such)!
6969 *-*-rhapsody* |
*-*-darwin1.
[012])
6970 # Rhapsody C library is in the System framework
6971 deplibs
="$deplibs System.ltframework"
6974 # Don't link with libc until the a.out ld.so is fixed.
6976 *-*-openbsd* |
*-*-freebsd* |
*-*-dragonfly*)
6977 # Do not include libc due to us having libc/libc_r.
6979 *-*-sco3.2v5
* |
*-*-sco5v6*)
6980 # Causes problems with __ctype
6982 *-*-sysv4.2uw2
* |
*-*-sysv5* |
*-*-unixware* |
*-*-OpenUNIX*)
6983 # Compiler inserts libc in the correct place for threads to work
6986 # Add libc to deplibs on all other systems if necessary.
6987 if test "$build_libtool_need_lc" = "yes"; then
6988 deplibs
="$deplibs -lc"
6994 # Transform deplibs into only deplibs that can be linked in shared.
6996 libname_save
=$libname
6997 release_save
=$release
6998 versuffix_save
=$versuffix
7000 # I'm not sure if I'm treating the release correctly. I think
7001 # release should show up in the -l (ie -lgmp5) so we don't want to
7002 # add it in twice. Is that correct?
7008 case $deplibs_check_method in
7010 # Don't check for shared/static. Everything works.
7011 # This might be a little naive. We might want to check
7012 # whether the library exists or not. But this is on
7013 # osf3 & osf4 and I'm not really sure... Just
7014 # implementing what was already the behavior.
7018 # This code stresses the "libraries are programs" paradigm to its
7019 # limits. Maybe even breaks it. We compile a program, linking it
7020 # against the deplibs as a proxy for the library. Then we can check
7021 # whether they linked in statically or dynamically with ldd.
7022 $opt_dry_run ||
$RM conftest.c
7023 cat > conftest.c
<<EOF
7024 int main() { return 0; }
7026 $opt_dry_run ||
$RM conftest
7027 if $LTCC $LTCFLAGS -o conftest conftest.c
$deplibs; then
7028 ldd_output
=`ldd conftest`
7029 for i
in $deplibs; do
7032 func_stripname
-l '' "$i"
7033 name
=$func_stripname_result
7034 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7035 case " $predeps $postdeps " in
7037 newdeplibs
="$newdeplibs $i"
7042 if test -n "$i" ; then
7043 libname
=`eval "\\$ECHO \"$libname_spec\""`
7044 deplib_matches
=`eval "\\$ECHO \"$library_names_spec\""`
7045 set dummy
$deplib_matches; shift
7047 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
7048 newdeplibs
="$newdeplibs $i"
7052 $ECHO "*** Warning: dynamic linker does not accept needed library $i."
7053 $ECHO "*** I have the capability to make that library automatically link in when"
7054 $ECHO "*** you link to this library. But I can only do this if you have a"
7055 $ECHO "*** shared version of the library, which I believe you do not have"
7056 $ECHO "*** because a test_compile did reveal that the linker did not use it for"
7057 $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
7062 newdeplibs
="$newdeplibs $i"
7067 # Error occurred in the first compile. Let's try to salvage
7068 # the situation: Compile a separate program for each library.
7069 for i
in $deplibs; do
7072 func_stripname
-l '' "$i"
7073 name
=$func_stripname_result
7074 $opt_dry_run ||
$RM conftest
7075 if $LTCC $LTCFLAGS -o conftest conftest.c
$i; then
7076 ldd_output
=`ldd conftest`
7077 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7078 case " $predeps $postdeps " in
7080 newdeplibs
="$newdeplibs $i"
7085 if test -n "$i" ; then
7086 libname
=`eval "\\$ECHO \"$libname_spec\""`
7087 deplib_matches
=`eval "\\$ECHO \"$library_names_spec\""`
7088 set dummy
$deplib_matches; shift
7090 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
7091 newdeplibs
="$newdeplibs $i"
7095 $ECHO "*** Warning: dynamic linker does not accept needed library $i."
7096 $ECHO "*** I have the capability to make that library automatically link in when"
7097 $ECHO "*** you link to this library. But I can only do this if you have a"
7098 $ECHO "*** shared version of the library, which you do not appear to have"
7099 $ECHO "*** because a test_compile did reveal that the linker did not use this one"
7100 $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
7106 $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
7107 $ECHO "*** make it link in! You will probably need to install it or some"
7108 $ECHO "*** library that it depends on before this library will be fully"
7109 $ECHO "*** functional. Installing it before continuing would be even better."
7113 newdeplibs
="$newdeplibs $i"
7120 set dummy
$deplibs_check_method; shift
7121 file_magic_regex
=`expr "$deplibs_check_method" : "$1 \(.*\)"`
7122 for a_deplib
in $deplibs; do
7125 func_stripname
-l '' "$a_deplib"
7126 name
=$func_stripname_result
7127 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7128 case " $predeps $postdeps " in
7130 newdeplibs
="$newdeplibs $a_deplib"
7135 if test -n "$a_deplib" ; then
7136 libname
=`eval "\\$ECHO \"$libname_spec\""`
7137 for i
in $lib_search_path $sys_lib_search_path $shlib_search_path; do
7138 potential_libs
=`ls $i/$libname[.-]* 2>/dev/null`
7139 for potent_lib
in $potential_libs; do
7140 # Follow soft links.
7141 if ls -lLd "$potent_lib" 2>/dev
/null |
7142 $GREP " -> " >/dev
/null
; then
7145 # The statement above tries to avoid entering an
7146 # endless loop below, in case of cyclic links.
7147 # We might still enter an endless loop, since a link
7148 # loop can be closed while we follow links,
7150 potlib
="$potent_lib"
7151 while test -h "$potlib" 2>/dev
/null
; do
7152 potliblink
=`ls -ld $potlib | ${SED} 's/.* -> //'`
7154 [\\/]* |
[A-Za-z
]:[\\/]*) potlib
="$potliblink";;
7155 *) potlib
=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
7158 if eval $file_magic_cmd \"\
$potlib\" 2>/dev
/null |
7160 $EGREP "$file_magic_regex" > /dev
/null
; then
7161 newdeplibs
="$newdeplibs $a_deplib"
7168 if test -n "$a_deplib" ; then
7171 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
7172 $ECHO "*** I have the capability to make that library automatically link in when"
7173 $ECHO "*** you link to this library. But I can only do this if you have a"
7174 $ECHO "*** shared version of the library, which you do not appear to have"
7175 $ECHO "*** because I did check the linker path looking for a file starting"
7176 if test -z "$potlib" ; then
7177 $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
7179 $ECHO "*** with $libname and none of the candidates passed a file format test"
7180 $ECHO "*** using a file magic. Last file checked: $potlib"
7185 # Add a -L argument.
7186 newdeplibs
="$newdeplibs $a_deplib"
7189 done # Gone through all deplibs.
7192 set dummy
$deplibs_check_method; shift
7193 match_pattern_regex
=`expr "$deplibs_check_method" : "$1 \(.*\)"`
7194 for a_deplib
in $deplibs; do
7197 func_stripname
-l '' "$a_deplib"
7198 name
=$func_stripname_result
7199 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7200 case " $predeps $postdeps " in
7202 newdeplibs
="$newdeplibs $a_deplib"
7207 if test -n "$a_deplib" ; then
7208 libname
=`eval "\\$ECHO \"$libname_spec\""`
7209 for i
in $lib_search_path $sys_lib_search_path $shlib_search_path; do
7210 potential_libs
=`ls $i/$libname[.-]* 2>/dev/null`
7211 for potent_lib
in $potential_libs; do
7212 potlib
="$potent_lib" # see symlink-check above in file_magic test
7213 if eval "\$ECHO \"X$potent_lib\"" 2>/dev
/null |
$Xsed -e 10q | \
7214 $EGREP "$match_pattern_regex" > /dev
/null
; then
7215 newdeplibs
="$newdeplibs $a_deplib"
7222 if test -n "$a_deplib" ; then
7225 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
7226 $ECHO "*** I have the capability to make that library automatically link in when"
7227 $ECHO "*** you link to this library. But I can only do this if you have a"
7228 $ECHO "*** shared version of the library, which you do not appear to have"
7229 $ECHO "*** because I did check the linker path looking for a file starting"
7230 if test -z "$potlib" ; then
7231 $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
7233 $ECHO "*** with $libname and none of the candidates passed a file format test"
7234 $ECHO "*** using a regex pattern. Last file checked: $potlib"
7239 # Add a -L argument.
7240 newdeplibs
="$newdeplibs $a_deplib"
7243 done # Gone through all deplibs.
7247 tmp_deplibs
=`$ECHO "X $deplibs" | $Xsed \
7248 -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
7249 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7250 for i
in $predeps $postdeps ; do
7251 # can't use Xsed below, because $i might contain '/'
7252 tmp_deplibs
=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
7255 if $ECHO "X $tmp_deplibs" |
$Xsed -e 's/[ ]//g' |
7256 $GREP .
>/dev
/null
; then
7258 if test "X$deplibs_check_method" = "Xnone"; then
7259 $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
7261 $ECHO "*** Warning: inter-library dependencies are not known to be supported."
7263 $ECHO "*** All declared inter-library dependencies are being dropped."
7268 versuffix
=$versuffix_save
7270 release
=$release_save
7271 libname
=$libname_save
7275 *-*-rhapsody* |
*-*-darwin1.
[012])
7276 # On Rhapsody replace the C library with the System framework
7277 newdeplibs
=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
7281 if test "$droppeddeps" = yes; then
7282 if test "$module" = yes; then
7284 $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
7285 $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
7286 $ECHO "*** a static module, that should work as long as the dlopening"
7287 $ECHO "*** application is linked with the -dlopen flag."
7288 if test -z "$global_symbol_pipe"; then
7290 $ECHO "*** However, this would only work if libtool was able to extract symbol"
7291 $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
7292 $ECHO "*** not find such a program. So, this module is probably useless."
7293 $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
7295 if test "$build_old_libs" = no
; then
7296 oldlibs
="$output_objdir/$libname.$libext"
7297 build_libtool_libs
=module
7300 build_libtool_libs
=no
7303 $ECHO "*** The inter-library dependencies that have been dropped here will be"
7304 $ECHO "*** automatically added whenever a program is linked with this library"
7305 $ECHO "*** or is declared to -dlopen it."
7307 if test "$allow_undefined" = no
; then
7309 $ECHO "*** Since this library must not contain undefined symbols,"
7310 $ECHO "*** because either the platform does not support them or"
7311 $ECHO "*** it was explicitly requested with -no-undefined,"
7312 $ECHO "*** libtool will only create a static version of it."
7313 if test "$build_old_libs" = no
; then
7314 oldlibs
="$output_objdir/$libname.$libext"
7315 build_libtool_libs
=module
7318 build_libtool_libs
=no
7323 # Done checking deplibs!
7326 # Time to change all our "foo.ltframework" stuff back to "-framework foo"
7329 newdeplibs
=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
7330 new_inherited_linker_flags
=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
7331 deplibs
=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
7335 # move library search paths that coincide with paths to not yet
7336 # installed libraries to the beginning of the library search list
7338 for path
in $notinst_path; do
7339 case " $new_libs " in
7340 *" -L$path/$objdir "*) ;;
7342 case " $deplibs " in
7343 *" -L$path/$objdir "*)
7344 new_libs
="$new_libs -L$path/$objdir" ;;
7349 for deplib
in $deplibs; do
7352 case " $new_libs " in
7354 *) new_libs
="$new_libs $deplib" ;;
7357 *) new_libs
="$new_libs $deplib" ;;
7362 # All the library-specific variables (install_libdir is set above).
7367 # Test again, we may have decided not to build it any more
7368 if test "$build_libtool_libs" = yes; then
7369 if test "$hardcode_into_libs" = yes; then
7370 # Hardcode the library paths
7373 rpath
="$finalize_rpath"
7374 test "$mode" != relink
&& rpath
="$compile_rpath$rpath"
7375 for libdir
in $rpath; do
7376 if test -n "$hardcode_libdir_flag_spec"; then
7377 if test -n "$hardcode_libdir_separator"; then
7378 if test -z "$hardcode_libdirs"; then
7379 hardcode_libdirs
="$libdir"
7381 # Just accumulate the unique libdirs.
7382 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
7383 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
7386 hardcode_libdirs
="$hardcode_libdirs$hardcode_libdir_separator$libdir"
7391 eval flag
=\"$hardcode_libdir_flag_spec\"
7392 dep_rpath
="$dep_rpath $flag"
7394 elif test -n "$runpath_var"; then
7395 case "$perm_rpath " in
7397 *) perm_rpath
="$perm_rpath $libdir" ;;
7401 # Substitute the hardcoded libdirs into the rpath.
7402 if test -n "$hardcode_libdir_separator" &&
7403 test -n "$hardcode_libdirs"; then
7404 libdir
="$hardcode_libdirs"
7405 if test -n "$hardcode_libdir_flag_spec_ld"; then
7406 eval dep_rpath
=\"$hardcode_libdir_flag_spec_ld\"
7408 eval dep_rpath
=\"$hardcode_libdir_flag_spec\"
7411 if test -n "$runpath_var" && test -n "$perm_rpath"; then
7412 # We should set the runpath_var.
7414 for dir
in $perm_rpath; do
7417 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
7419 test -n "$dep_rpath" && deplibs
="$dep_rpath $deplibs"
7422 shlibpath
="$finalize_shlibpath"
7423 test "$mode" != relink
&& shlibpath
="$compile_shlibpath$shlibpath"
7424 if test -n "$shlibpath"; then
7425 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
7428 # Get the real and link names of the library.
7429 eval shared_ext
=\"$shrext_cmds\"
7430 eval library_names
=\"$library_names_spec\"
7431 set dummy
$library_names
7436 if test -n "$soname_spec"; then
7437 eval soname
=\"$soname_spec\"
7441 if test -z "$dlname"; then
7445 lib
="$output_objdir/$realname"
7449 linknames
="$linknames $link"
7452 # Use standard objects if they are pic
7453 test -z "$pic_flag" && libobjs
=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
7454 test "X$libobjs" = "X " && libobjs
=
7457 if test -n "$export_symbols" && test -n "$include_expsyms"; then
7458 $opt_dry_run ||
cp "$export_symbols" "$output_objdir/$libname.uexp"
7459 export_symbols
="$output_objdir/$libname.uexp"
7460 delfiles
="$delfiles $export_symbols"
7463 orig_export_symbols
=
7465 cygwin
* | mingw
* | cegcc
*)
7466 if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
7467 # exporting using user supplied symfile
7468 if test "x`$SED 1q $export_symbols`" != xEXPORTS
; then
7469 # and it's NOT already a .def file. Must figure out
7470 # which of the given symbols are data symbols and tag
7471 # them as such. So, trigger use of export_symbols_cmds.
7472 # export_symbols gets reassigned inside the "prepare
7473 # the list of exported symbols" if statement, so the
7474 # include_expsyms logic still works.
7475 orig_export_symbols
="$export_symbols"
7477 always_export_symbols
=yes
7483 # Prepare the list of exported symbols
7484 if test -z "$export_symbols"; then
7485 if test "$always_export_symbols" = yes ||
test -n "$export_symbols_regex"; then
7486 func_verbose
"generating symbol list for \`$libname.la'"
7487 export_symbols
="$output_objdir/$libname.exp"
7488 $opt_dry_run ||
$RM $export_symbols
7489 cmds
=$export_symbols_cmds
7490 save_ifs
="$IFS"; IFS
='~'
7491 for cmd
in $cmds; do
7495 len
=$func_len_result
7496 if test "$len" -lt "$max_cmd_len" ||
test "$max_cmd_len" -le -1; then
7497 func_show_eval
"$cmd" 'exit $?'
7498 skipped_export
=false
7500 # The command line is too long to execute in one step.
7501 func_verbose
"using reloadable object file for export list..."
7503 # Break out early, otherwise skipped_export may be
7504 # set to false by a later but shorter cmd.
7509 if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
7510 func_show_eval
'$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
7511 func_show_eval
'$MV "${export_symbols}T" "$export_symbols"'
7516 if test -n "$export_symbols" && test -n "$include_expsyms"; then
7517 tmp_export_symbols
="$export_symbols"
7518 test -n "$orig_export_symbols" && tmp_export_symbols
="$orig_export_symbols"
7519 $opt_dry_run ||
eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
7522 if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
7523 # The given exports_symbols file has to be filtered, so filter it.
7524 func_verbose
"filter symbol list for \`$libname.la' to tag DATA exports"
7525 # FIXME: $output_objdir/$libname.filter potentially contains lots of
7526 # 's' commands which not all seds can handle. GNU sed should be fine
7527 # though. Also, the filter scales superlinearly with the number of
7528 # global variables. join(1) would be nice here, but unfortunately
7529 # isn't a blessed tool.
7530 $opt_dry_run ||
$SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
7531 delfiles
="$delfiles $export_symbols $output_objdir/$libname.filter"
7532 export_symbols
=$output_objdir/$libname.def
7533 $opt_dry_run ||
$SED -f $output_objdir/$libname.filter
< $orig_export_symbols > $export_symbols
7537 for test_deplib
in $deplibs; do
7538 case " $convenience " in
7539 *" $test_deplib "*) ;;
7541 tmp_deplibs
="$tmp_deplibs $test_deplib"
7545 deplibs
="$tmp_deplibs"
7547 if test -n "$convenience"; then
7548 if test -n "$whole_archive_flag_spec" &&
7549 test "$compiler_needs_object" = yes &&
7550 test -z "$libobjs"; then
7551 # extract the archives, so we have objects to list.
7552 # TODO: could optimize this to just extract one archive.
7553 whole_archive_flag_spec
=
7555 if test -n "$whole_archive_flag_spec"; then
7556 save_libobjs
=$libobjs
7557 eval libobjs
=\"\
$libobjs $whole_archive_flag_spec\"
7558 test "X$libobjs" = "X " && libobjs
=
7560 gentop
="$output_objdir/${outputname}x"
7561 generated
="$generated $gentop"
7563 func_extract_archives
$gentop $convenience
7564 libobjs
="$libobjs $func_extract_archives_result"
7565 test "X$libobjs" = "X " && libobjs
=
7569 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
7570 eval flag
=\"$thread_safe_flag_spec\"
7571 linker_flags
="$linker_flags $flag"
7574 # Make a backup of the uninstalled library when relinking
7575 if test "$mode" = relink
; then
7576 $opt_dry_run ||
eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' ||
exit $?
7579 # Do each of the archive commands.
7580 if test "$module" = yes && test -n "$module_cmds" ; then
7581 if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
7582 eval test_cmds
=\"$module_expsym_cmds\"
7583 cmds
=$module_expsym_cmds
7585 eval test_cmds
=\"$module_cmds\"
7589 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
7590 eval test_cmds
=\"$archive_expsym_cmds\"
7591 cmds
=$archive_expsym_cmds
7593 eval test_cmds
=\"$archive_cmds\"
7598 if test "X$skipped_export" != "X:" &&
7599 func_len
" $test_cmds" &&
7600 len
=$func_len_result &&
7601 test "$len" -lt "$max_cmd_len" ||
test "$max_cmd_len" -le -1; then
7604 # The command line is too long to link in one step, link piecewise
7605 # or, if using GNU ld and skipped_export is not :, use a linker
7608 # Save the value of $output and $libobjs because we want to
7609 # use them later. If we have whole_archive_flag_spec, we
7610 # want to use save_libobjs as it was before
7611 # whole_archive_flag_spec was expanded, because we can't
7612 # assume the linker understands whole_archive_flag_spec.
7613 # This may have to be revisited, in case too many
7614 # convenience libraries get linked in and end up exceeding
7616 if test -z "$convenience" ||
test -z "$whole_archive_flag_spec"; then
7617 save_libobjs
=$libobjs
7620 output_la
=`$ECHO "X$output" | $Xsed -e "$basename"`
7622 # Clear the reloadable object creation command queue and
7623 # initialize k to one.
7630 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
7631 output
=${output_objdir}/${output_la}.lnkscript
7632 func_verbose
"creating GNU ld script: $output"
7633 $ECHO 'INPUT (' > $output
7634 for obj
in $save_libobjs
7636 $ECHO "$obj" >> $output
7638 $ECHO ')' >> $output
7639 delfiles
="$delfiles $output"
7640 elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X
; then
7641 output
=${output_objdir}/${output_la}.lnk
7642 func_verbose
"creating linker input file list: $output"
7647 if test "$compiler_needs_object" = yes; then
7653 $ECHO "$obj" >> $output
7655 delfiles
="$delfiles $output"
7656 output
=$firstobj\"$file_list_spec$output\"
7658 if test -n "$save_libobjs"; then
7659 func_verbose
"creating reloadable object files..."
7660 output
=$output_objdir/$output_la-${k}.
$objext
7661 eval test_cmds
=\"$reload_cmds\"
7662 func_len
" $test_cmds"
7663 len0
=$func_len_result
7666 # Loop over the list of objects to be linked.
7667 for obj
in $save_libobjs
7670 func_arith
$len + $func_len_result
7671 len
=$func_arith_result
7672 if test "X$objlist" = X ||
7673 test "$len" -lt "$max_cmd_len"; then
7674 func_append objlist
" $obj"
7676 # The command $test_cmds is almost too long, add a
7677 # command to the queue.
7678 if test "$k" -eq 1 ; then
7679 # The first file doesn't have a previous command to add.
7680 eval concat_cmds
=\"$reload_cmds $objlist $last_robj\"
7682 # All subsequent reloadable object files will link in
7683 # the last one created.
7684 eval concat_cmds
=\"\
$concat_cmds~
$reload_cmds $objlist $last_robj~\
$RM $last_robj\"
7686 last_robj
=$output_objdir/$output_la-${k}.
$objext
7688 k
=$func_arith_result
7689 output
=$output_objdir/$output_la-${k}.
$objext
7691 func_len
" $last_robj"
7692 func_arith
$len0 + $func_len_result
7693 len
=$func_arith_result
7696 # Handle the remaining objects by creating one last
7697 # reloadable object file. All subsequent reloadable object
7698 # files will link in the last one created.
7699 test -z "$concat_cmds" || concat_cmds
=$concat_cmds~
7700 eval concat_cmds
=\"\
${concat_cmds}$reload_cmds $objlist $last_robj\"
7701 if test -n "$last_robj"; then
7702 eval concat_cmds
=\"\
${concat_cmds}~\
$RM $last_robj\"
7704 delfiles
="$delfiles $output"
7710 if ${skipped_export-false}; then
7711 func_verbose
"generating symbol list for \`$libname.la'"
7712 export_symbols
="$output_objdir/$libname.exp"
7713 $opt_dry_run ||
$RM $export_symbols
7715 # Append the command to create the export file.
7716 test -z "$concat_cmds" || concat_cmds
=$concat_cmds~
7717 eval concat_cmds
=\"\
$concat_cmds$export_symbols_cmds\"
7718 if test -n "$last_robj"; then
7719 eval concat_cmds
=\"\
$concat_cmds~\
$RM $last_robj\"
7723 test -n "$save_libobjs" &&
7724 func_verbose
"creating a temporary reloadable object file: $output"
7726 # Loop through the commands generated above and execute them.
7727 save_ifs
="$IFS"; IFS
='~'
7728 for cmd
in $concat_cmds; do
7731 func_quote_for_expand
"$cmd"
7732 eval "func_echo $func_quote_for_expand_result"
7734 $opt_dry_run ||
eval "$cmd" ||
{
7737 # Restore the uninstalled library and exit
7738 if test "$mode" = relink
; then
7739 ( cd "$output_objdir" && \
7740 $RM "${realname}T" && \
7741 $MV "${realname}U" "$realname" )
7749 if test -n "$export_symbols_regex" && ${skipped_export-false}; then
7750 func_show_eval
'$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
7751 func_show_eval
'$MV "${export_symbols}T" "$export_symbols"'
7755 if ${skipped_export-false}; then
7756 if test -n "$export_symbols" && test -n "$include_expsyms"; then
7757 tmp_export_symbols
="$export_symbols"
7758 test -n "$orig_export_symbols" && tmp_export_symbols
="$orig_export_symbols"
7759 $opt_dry_run ||
eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
7762 if test -n "$orig_export_symbols"; then
7763 # The given exports_symbols file has to be filtered, so filter it.
7764 func_verbose
"filter symbol list for \`$libname.la' to tag DATA exports"
7765 # FIXME: $output_objdir/$libname.filter potentially contains lots of
7766 # 's' commands which not all seds can handle. GNU sed should be fine
7767 # though. Also, the filter scales superlinearly with the number of
7768 # global variables. join(1) would be nice here, but unfortunately
7769 # isn't a blessed tool.
7770 $opt_dry_run ||
$SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
7771 delfiles
="$delfiles $export_symbols $output_objdir/$libname.filter"
7772 export_symbols
=$output_objdir/$libname.def
7773 $opt_dry_run ||
$SED -f $output_objdir/$libname.filter
< $orig_export_symbols > $export_symbols
7778 # Restore the value of output.
7781 if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
7782 eval libobjs
=\"\
$libobjs $whole_archive_flag_spec\"
7783 test "X$libobjs" = "X " && libobjs
=
7785 # Expand the library linking commands again to reset the
7786 # value of $libobjs for piecewise linking.
7788 # Do each of the archive commands.
7789 if test "$module" = yes && test -n "$module_cmds" ; then
7790 if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
7791 cmds
=$module_expsym_cmds
7796 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
7797 cmds
=$archive_expsym_cmds
7804 if test -n "$delfiles"; then
7805 # Append the command to remove temporary files to $cmds.
7806 eval cmds
=\"\
$cmds~\
$RM $delfiles\"
7809 # Add any objects from preloaded convenience libraries
7810 if test -n "$dlprefiles"; then
7811 gentop
="$output_objdir/${outputname}x"
7812 generated
="$generated $gentop"
7814 func_extract_archives
$gentop $dlprefiles
7815 libobjs
="$libobjs $func_extract_archives_result"
7816 test "X$libobjs" = "X " && libobjs
=
7819 save_ifs
="$IFS"; IFS
='~'
7820 for cmd
in $cmds; do
7824 func_quote_for_expand
"$cmd"
7825 eval "func_echo $func_quote_for_expand_result"
7827 $opt_dry_run ||
eval "$cmd" ||
{
7830 # Restore the uninstalled library and exit
7831 if test "$mode" = relink
; then
7832 ( cd "$output_objdir" && \
7833 $RM "${realname}T" && \
7834 $MV "${realname}U" "$realname" )
7842 # Restore the uninstalled library and exit
7843 if test "$mode" = relink
; then
7844 $opt_dry_run ||
eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' ||
exit $?
7846 if test -n "$convenience"; then
7847 if test -z "$whole_archive_flag_spec"; then
7848 func_show_eval
'${RM}r "$gentop"'
7855 # Create links to the real library.
7856 for linkname
in $linknames; do
7857 if test "$realname" != "$linkname"; then
7858 func_show_eval
'(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
7862 # If -module or -export-dynamic was specified, set the dlname.
7863 if test "$module" = yes ||
test "$export_dynamic" = yes; then
7864 # On all known operating systems, these are identical.
7871 if test -n "$dlfiles$dlprefiles" ||
test "$dlself" != no
; then
7872 func_warning
"\`-dlopen' is ignored for objects"
7877 func_warning
"\`-l' and \`-L' are ignored for objects" ;;
7880 test -n "$rpath" && \
7881 func_warning
"\`-rpath' is ignored for objects"
7883 test -n "$xrpath" && \
7884 func_warning
"\`-R' is ignored for objects"
7886 test -n "$vinfo" && \
7887 func_warning
"\`-version-info' is ignored for objects"
7889 test -n "$release" && \
7890 func_warning
"\`-release' is ignored for objects"
7894 test -n "$objs$old_deplibs" && \
7895 func_fatal_error
"cannot build library object \`$output' from non-libtool objects"
7899 obj
=$func_lo2o_result
7907 # Delete the old objects.
7908 $opt_dry_run ||
$RM $obj $libobj
7910 # Objects from convenience libraries. This assumes
7911 # single-version convenience libraries. Whenever we create
7912 # different ones for PIC/non-PIC, this we'll have to duplicate
7916 # reload_cmds runs $LD directly, so let us get rid of
7917 # -Wl from whole_archive_flag_spec and hope we can get by with
7918 # turning comma into space..
7921 if test -n "$convenience"; then
7922 if test -n "$whole_archive_flag_spec"; then
7923 eval tmp_whole_archive_flags
=\"$whole_archive_flag_spec\"
7924 reload_conv_objs
=$reload_objs\
`$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
7926 gentop
="$output_objdir/${obj}x"
7927 generated
="$generated $gentop"
7929 func_extract_archives
$gentop $convenience
7930 reload_conv_objs
="$reload_objs $func_extract_archives_result"
7934 # Create the old-style object.
7935 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
7938 func_execute_cmds
"$reload_cmds" 'exit $?'
7940 # Exit if we aren't doing a library object file.
7941 if test -z "$libobj"; then
7942 if test -n "$gentop"; then
7943 func_show_eval
'${RM}r "$gentop"'
7949 if test "$build_libtool_libs" != yes; then
7950 if test -n "$gentop"; then
7951 func_show_eval
'${RM}r "$gentop"'
7954 # Create an invalid libtool object if no PIC, so that we don't
7955 # accidentally link it into a program.
7956 # $show "echo timestamp > $libobj"
7957 # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
7961 if test -n "$pic_flag" ||
test "$pic_mode" != default
; then
7962 # Only do commands if we really have different PIC objects.
7963 reload_objs
="$libobjs $reload_conv_objs"
7965 func_execute_cmds
"$reload_cmds" 'exit $?'
7968 if test -n "$gentop"; then
7969 func_show_eval
'${RM}r "$gentop"'
7977 *cygwin
*) func_stripname
'' '.exe' "$output"
7978 output
=$func_stripname_result.exe
;;
7980 test -n "$vinfo" && \
7981 func_warning
"\`-version-info' is ignored for programs"
7983 test -n "$release" && \
7984 func_warning
"\`-release' is ignored for programs"
7986 test "$preload" = yes \
7987 && test "$dlopen_support" = unknown \
7988 && test "$dlopen_self" = unknown \
7989 && test "$dlopen_self_static" = unknown
&& \
7990 func_warning
"\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
7993 *-*-rhapsody* |
*-*-darwin1.
[012])
7994 # On Rhapsody replace the C library is the System framework
7995 compile_deplibs
=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
7996 finalize_deplibs
=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
8002 # Don't allow lazy linking, it breaks C++ global constructors
8003 # But is supposedly fixed on 10.4 or later (yay!).
8004 if test "$tagname" = CXX
; then
8005 case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
8007 compile_command
="$compile_command ${wl}-bind_at_load"
8008 finalize_command
="$finalize_command ${wl}-bind_at_load"
8012 # Time to change all our "foo.ltframework" stuff back to "-framework foo"
8013 compile_deplibs
=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
8014 finalize_deplibs
=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
8019 # move library search paths that coincide with paths to not yet
8020 # installed libraries to the beginning of the library search list
8022 for path
in $notinst_path; do
8023 case " $new_libs " in
8024 *" -L$path/$objdir "*) ;;
8026 case " $compile_deplibs " in
8027 *" -L$path/$objdir "*)
8028 new_libs
="$new_libs -L$path/$objdir" ;;
8033 for deplib
in $compile_deplibs; do
8036 case " $new_libs " in
8038 *) new_libs
="$new_libs $deplib" ;;
8041 *) new_libs
="$new_libs $deplib" ;;
8044 compile_deplibs
="$new_libs"
8047 compile_command
="$compile_command $compile_deplibs"
8048 finalize_command
="$finalize_command $finalize_deplibs"
8050 if test -n "$rpath$xrpath"; then
8051 # If the user specified any rpath flags, then add them.
8052 for libdir
in $rpath $xrpath; do
8053 # This is the magic to use -rpath.
8054 case "$finalize_rpath " in
8056 *) finalize_rpath
="$finalize_rpath $libdir" ;;
8061 # Now hardcode the library paths
8064 for libdir
in $compile_rpath $finalize_rpath; do
8065 if test -n "$hardcode_libdir_flag_spec"; then
8066 if test -n "$hardcode_libdir_separator"; then
8067 if test -z "$hardcode_libdirs"; then
8068 hardcode_libdirs
="$libdir"
8070 # Just accumulate the unique libdirs.
8071 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
8072 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
8075 hardcode_libdirs
="$hardcode_libdirs$hardcode_libdir_separator$libdir"
8080 eval flag
=\"$hardcode_libdir_flag_spec\"
8081 rpath
="$rpath $flag"
8083 elif test -n "$runpath_var"; then
8084 case "$perm_rpath " in
8086 *) perm_rpath
="$perm_rpath $libdir" ;;
8090 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-os2* |
*-cegcc*)
8091 testbindir
=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
8092 case :$dllsearchpath: in
8094 ::) dllsearchpath
=$libdir;;
8095 *) dllsearchpath
="$dllsearchpath:$libdir";;
8097 case :$dllsearchpath: in
8098 *":$testbindir:"*) ;;
8099 ::) dllsearchpath
=$testbindir;;
8100 *) dllsearchpath
="$dllsearchpath:$testbindir";;
8105 # Substitute the hardcoded libdirs into the rpath.
8106 if test -n "$hardcode_libdir_separator" &&
8107 test -n "$hardcode_libdirs"; then
8108 libdir
="$hardcode_libdirs"
8109 eval rpath
=\" $hardcode_libdir_flag_spec\"
8111 compile_rpath
="$rpath"
8115 for libdir
in $finalize_rpath; do
8116 if test -n "$hardcode_libdir_flag_spec"; then
8117 if test -n "$hardcode_libdir_separator"; then
8118 if test -z "$hardcode_libdirs"; then
8119 hardcode_libdirs
="$libdir"
8121 # Just accumulate the unique libdirs.
8122 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
8123 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
8126 hardcode_libdirs
="$hardcode_libdirs$hardcode_libdir_separator$libdir"
8131 eval flag
=\"$hardcode_libdir_flag_spec\"
8132 rpath
="$rpath $flag"
8134 elif test -n "$runpath_var"; then
8135 case "$finalize_perm_rpath " in
8137 *) finalize_perm_rpath
="$finalize_perm_rpath $libdir" ;;
8141 # Substitute the hardcoded libdirs into the rpath.
8142 if test -n "$hardcode_libdir_separator" &&
8143 test -n "$hardcode_libdirs"; then
8144 libdir
="$hardcode_libdirs"
8145 eval rpath
=\" $hardcode_libdir_flag_spec\"
8147 finalize_rpath
="$rpath"
8149 if test -n "$libobjs" && test "$build_old_libs" = yes; then
8150 # Transform all the library objects into standard objects.
8151 compile_command
=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
8152 finalize_command
=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
8155 func_generate_dlsyms
"$outputname" "@PROGRAM@" "no"
8157 # template prelinking step
8158 if test -n "$prelink_cmds"; then
8159 func_execute_cmds
"$prelink_cmds" 'exit $?'
8162 wrappers_required
=yes
8164 *cygwin
* |
*mingw
* )
8165 if test "$build_libtool_libs" != yes; then
8166 wrappers_required
=no
8170 # Disable wrappers for cegcc, we are cross compiling anyway.
8171 wrappers_required
=no
8174 if test "$need_relink" = no ||
test "$build_libtool_libs" != yes; then
8175 wrappers_required
=no
8179 if test "$wrappers_required" = no
; then
8180 # Replace the output file specification.
8181 compile_command
=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
8182 link_command
="$compile_command$compile_rpath"
8184 # We have no uninstalled library dependencies, so finalize right now.
8186 func_show_eval
"$link_command" 'exit_status=$?'
8188 # Delete the generated files.
8189 if test -f "$output_objdir/${outputname}S.${objext}"; then
8190 func_show_eval
'$RM "$output_objdir/${outputname}S.${objext}"'
8196 if test -n "$compile_shlibpath$finalize_shlibpath"; then
8197 compile_command
="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
8199 if test -n "$finalize_shlibpath"; then
8200 finalize_command
="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
8205 if test -n "$runpath_var"; then
8206 if test -n "$perm_rpath"; then
8207 # We should set the runpath_var.
8209 for dir
in $perm_rpath; do
8212 compile_var
="$runpath_var=\"$rpath\$$runpath_var\" "
8214 if test -n "$finalize_perm_rpath"; then
8215 # We should set the runpath_var.
8217 for dir
in $finalize_perm_rpath; do
8220 finalize_var
="$runpath_var=\"$rpath\$$runpath_var\" "
8224 if test "$no_install" = yes; then
8225 # We don't need to create a wrapper script.
8226 link_command
="$compile_var$compile_command$compile_rpath"
8227 # Replace the output file specification.
8228 link_command
=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
8229 # Delete the old output file.
8230 $opt_dry_run ||
$RM $output
8231 # Link the executable and exit
8232 func_show_eval
"$link_command" 'exit $?'
8236 if test "$hardcode_action" = relink
; then
8237 # Fast installation is not supported
8238 link_command
="$compile_var$compile_command$compile_rpath"
8239 relink_command
="$finalize_var$finalize_command$finalize_rpath"
8241 func_warning
"this platform does not like uninstalled shared libraries"
8242 func_warning
"\`$output' will be relinked during installation"
8244 if test "$fast_install" != no
; then
8245 link_command
="$finalize_var$compile_command$finalize_rpath"
8246 if test "$fast_install" = yes; then
8247 relink_command
=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
8249 # fast_install is set to needless
8253 link_command
="$compile_var$compile_command$compile_rpath"
8254 relink_command
="$finalize_var$finalize_command$finalize_rpath"
8258 # Replace the output file specification.
8259 link_command
=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
8261 # Delete the old output files.
8262 $opt_dry_run ||
$RM $output $output_objdir/$outputname $output_objdir/lt-
$outputname
8264 func_show_eval
"$link_command" 'exit $?'
8266 # Now create the wrapper script.
8267 func_verbose
"creating $output"
8269 # Quote the relink command for shipping.
8270 if test -n "$relink_command"; then
8271 # Preserve any variables that may affect compiler behavior
8272 for var
in $variables_saved_for_relink; do
8273 if eval test -z \"\
${$var+set}\"; then
8274 relink_command
="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
8275 elif eval var_value
=\$
$var; test -z "$var_value"; then
8276 relink_command
="$var=; export $var; $relink_command"
8278 func_quote_for_eval
"$var_value"
8279 relink_command
="$var=$func_quote_for_eval_result; export $var; $relink_command"
8282 relink_command
="(cd `pwd`; $relink_command)"
8283 relink_command
=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
8286 # Quote $ECHO for shipping.
8287 if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
8289 [\\/]* |
[A-Za-z
]:[\\/]*) qecho
="$SHELL $progpath --fallback-echo";;
8290 *) qecho
="$SHELL `pwd`/$progpath --fallback-echo";;
8292 qecho
=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
8294 qecho
=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
8297 # Only actually do things if not in dry run mode.
8299 # win32 will think the script is a binary if it has
8300 # a .exe suffix, so we strip it off here.
8302 *.exe
) func_stripname
'' '.exe' "$output"
8303 output
=$func_stripname_result ;;
8305 # test for cygwin because mv fails w/o .exe extensions
8309 func_stripname
'' '.exe' "$outputname"
8310 outputname
=$func_stripname_result ;;
8314 *cygwin
* |
*mingw
* )
8315 func_dirname_and_basename
"$output" "" "."
8316 output_name
=$func_basename_result
8317 output_path
=$func_dirname_result
8318 cwrappersource
="$output_path/$objdir/lt-$output_name.c"
8319 cwrapper
="$output_path/$output_name.exe"
8320 $RM $cwrappersource $cwrapper
8321 trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
8323 func_emit_cwrapperexe_src
> $cwrappersource
8325 # The wrapper executable is built using the $host compiler,
8326 # because it contains $host paths and files. If cross-
8327 # compiling, it, like the target executable, must be
8328 # executed on the $host or under an emulation environment.
8330 $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
8334 # Now, create the wrapper script for func_source use:
8335 func_ltwrapper_scriptname
$cwrapper
8336 $RM $func_ltwrapper_scriptname_result
8337 trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
8339 # note: this script will not be executed, so do not chmod.
8340 if test "x$build" = "x$host" ; then
8341 $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
8343 func_emit_wrapper no
> $func_ltwrapper_scriptname_result
8349 trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
8351 func_emit_wrapper no
> $output
8360 # See if we need to build an old-fashioned archive.
8361 for oldlib
in $oldlibs; do
8363 if test "$build_libtool_libs" = convenience
; then
8364 oldobjs
="$libobjs_save $symfileobj"
8365 addlibs
="$convenience"
8366 build_libtool_libs
=no
8368 if test "$build_libtool_libs" = module
; then
8369 oldobjs
="$libobjs_save"
8370 build_libtool_libs
=no
8372 oldobjs
="$old_deplibs $non_pic_objects"
8373 if test "$preload" = yes && test -f "$symfileobj"; then
8374 oldobjs
="$oldobjs $symfileobj"
8377 addlibs
="$old_convenience"
8380 if test -n "$addlibs"; then
8381 gentop
="$output_objdir/${outputname}x"
8382 generated
="$generated $gentop"
8384 func_extract_archives
$gentop $addlibs
8385 oldobjs
="$oldobjs $func_extract_archives_result"
8388 # Do each command in the archive commands.
8389 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
8390 cmds
=$old_archive_from_new_cmds
8393 # Add any objects from preloaded convenience libraries
8394 if test -n "$dlprefiles"; then
8395 gentop
="$output_objdir/${outputname}x"
8396 generated
="$generated $gentop"
8398 func_extract_archives
$gentop $dlprefiles
8399 oldobjs
="$oldobjs $func_extract_archives_result"
8402 # POSIX demands no paths to be encoded in archives. We have
8403 # to avoid creating archives with duplicate basenames if we
8404 # might have to extract them afterwards, e.g., when creating a
8405 # static archive out of a convenience library, or when linking
8406 # the entirety of a libtool archive into another (currently
8407 # not supported by libtool).
8408 if (for obj
in $oldobjs
8410 func_basename
"$obj"
8411 $ECHO "$func_basename_result"
8412 done |
sort |
sort -uc >/dev
/null
2>&1); then
8415 $ECHO "copying selected object files to avoid basename conflicts..."
8416 gentop
="$output_objdir/${outputname}x"
8417 generated
="$generated $gentop"
8418 func_mkdir_p
"$gentop"
8419 save_oldobjs
=$oldobjs
8422 for obj
in $save_oldobjs
8424 func_basename
"$obj"
8425 objbase
="$func_basename_result"
8426 case " $oldobjs " in
8427 " ") oldobjs
=$obj ;;
8430 # Make sure we don't pick an alternate name that also
8432 newobj
=lt
$counter-$objbase
8433 func_arith
$counter + 1
8434 counter
=$func_arith_result
8435 case " $oldobjs " in
8436 *[\
/]"$newobj "*) ;;
8437 *) if test ! -f "$gentop/$newobj"; then break; fi ;;
8440 func_show_eval
"ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
8441 oldobjs
="$oldobjs $gentop/$newobj"
8443 *) oldobjs
="$oldobjs $obj" ;;
8447 eval cmds
=\"$old_archive_cmds\"
8450 len
=$func_len_result
8451 if test "$len" -lt "$max_cmd_len" ||
test "$max_cmd_len" -le -1; then
8452 cmds
=$old_archive_cmds
8454 # the command line is too long to link in one step, link in parts
8455 func_verbose
"using piecewise archive linking..."
8460 save_oldobjs
=$oldobjs
8462 # Is there a better way of finding the last object in the list?
8463 for obj
in $save_oldobjs
8467 eval test_cmds
=\"$old_archive_cmds\"
8468 func_len
" $test_cmds"
8469 len0
=$func_len_result
8471 for obj
in $save_oldobjs
8474 func_arith
$len + $func_len_result
8475 len
=$func_arith_result
8476 func_append objlist
" $obj"
8477 if test "$len" -lt "$max_cmd_len"; then
8480 # the above command should be used before it gets too long
8482 if test "$obj" = "$last_oldobj" ; then
8485 test -z "$concat_cmds" || concat_cmds
=$concat_cmds~
8486 eval concat_cmds
=\"\
${concat_cmds}$old_archive_cmds\"
8493 if test "X$oldobjs" = "X" ; then
8494 eval cmds
=\"\
$concat_cmds\"
8496 eval cmds
=\"\
$concat_cmds~\
$old_archive_cmds\"
8500 func_execute_cmds
"$cmds" 'exit $?'
8503 test -n "$generated" && \
8504 func_show_eval
"${RM}r$generated"
8506 # Now create the libtool archive.
8510 test "$build_old_libs" = yes && old_library
="$libname.$libext"
8511 func_verbose
"creating $output"
8513 # Preserve any variables that may affect compiler behavior
8514 for var
in $variables_saved_for_relink; do
8515 if eval test -z \"\
${$var+set}\"; then
8516 relink_command
="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
8517 elif eval var_value
=\$
$var; test -z "$var_value"; then
8518 relink_command
="$var=; export $var; $relink_command"
8520 func_quote_for_eval
"$var_value"
8521 relink_command
="$var=$func_quote_for_eval_result; export $var; $relink_command"
8524 # Quote the link command for shipping.
8525 relink_command
="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
8526 relink_command
=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
8527 if test "$hardcode_automatic" = yes ; then
8531 # Only create the output if not a dry run.
8533 for installed
in no
yes; do
8534 if test "$installed" = yes; then
8535 if test -z "$install_libdir"; then
8538 output
="$output_objdir/$outputname"i
8539 # Replace all uninstalled libtool libraries with the installed ones
8541 for deplib
in $dependency_libs; do
8544 func_basename
"$deplib"
8545 name
="$func_basename_result"
8546 eval libdir
=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
8547 test -z "$libdir" && \
8548 func_fatal_error
"\`$deplib' is not a valid libtool archive"
8549 newdependency_libs
="$newdependency_libs $libdir/$name"
8551 *) newdependency_libs
="$newdependency_libs $deplib" ;;
8554 dependency_libs
="$newdependency_libs"
8557 for lib
in $dlfiles; do
8560 func_basename
"$lib"
8561 name
="$func_basename_result"
8562 eval libdir
=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
8563 test -z "$libdir" && \
8564 func_fatal_error
"\`$lib' is not a valid libtool archive"
8565 newdlfiles
="$newdlfiles $libdir/$name"
8567 *) newdlfiles
="$newdlfiles $lib" ;;
8570 dlfiles
="$newdlfiles"
8572 for lib
in $dlprefiles; do
8575 # Only pass preopened files to the pseudo-archive (for
8576 # eventual linking with the app. that links it) if we
8577 # didn't already link the preopened objects directly into
8579 func_basename
"$lib"
8580 name
="$func_basename_result"
8581 eval libdir
=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
8582 test -z "$libdir" && \
8583 func_fatal_error
"\`$lib' is not a valid libtool archive"
8584 newdlprefiles
="$newdlprefiles $libdir/$name"
8588 dlprefiles
="$newdlprefiles"
8591 for lib
in $dlfiles; do
8593 [\\/]* |
[A-Za-z
]:[\\/]*) abs
="$lib" ;;
8594 *) abs
=`pwd`"/$lib" ;;
8596 newdlfiles
="$newdlfiles $abs"
8598 dlfiles
="$newdlfiles"
8600 for lib
in $dlprefiles; do
8602 [\\/]* |
[A-Za-z
]:[\\/]*) abs
="$lib" ;;
8603 *) abs
=`pwd`"/$lib" ;;
8605 newdlprefiles
="$newdlprefiles $abs"
8607 dlprefiles
="$newdlprefiles"
8610 # place dlname in correct position for cygwin
8612 case $host,$output,$installed,$module,$dlname in
8613 *cygwin
*,*lai
,yes,no
,*.dll |
*mingw
*,*lai
,yes,no
,*.dll |
*cegcc
*,*lai
,yes,no
,*.dll
) tdlname
=..
/bin
/$dlname ;;
8616 # $outputname - a libtool library file
8617 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
8619 # Please DO NOT delete this file!
8620 # It is necessary for linking the library.
8622 # The name that we can dlopen(3).
8625 # Names of this library.
8626 library_names='$library_names'
8628 # The name of the static archive.
8629 old_library='$old_library'
8631 # Linker flags that can not go in dependency_libs.
8632 inherited_linker_flags='$new_inherited_linker_flags'
8634 # Libraries that this one depends upon.
8635 dependency_libs='$dependency_libs'
8637 # Names of additional weak libraries provided by this library
8638 weak_library_names='$weak_libs'
8640 # Version information for $libname.
8645 # Is this an already installed library?
8646 installed=$installed
8648 # Should we warn about portability when linking against -modules?
8649 shouldnotlink=$module
8651 # Files to dlopen/dlpreopen
8653 dlpreopen='$dlprefiles'
8655 # Directory that this library needs to be installed in:
8656 libdir='$install_libdir'"
8657 if test "$installed" = no
&& test "$need_relink" = yes; then
8659 relink_command=\"$relink_command\""
8664 # Do a symbolic link so that the libtool archive can be found in
8665 # LD_LIBRARY_PATH before the program is installed.
8666 func_show_eval
'( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
8672 { test "$mode" = link ||
test "$mode" = relink
; } &&
8673 func_mode_link
${1+"$@"}
8676 # func_mode_uninstall arg...
8677 func_mode_uninstall
()
8685 # This variable tells wrapper scripts just to set variables rather
8686 # than running their programs.
8687 libtool_install_magic
="$magic"
8692 -f) RM
="$RM $arg"; rmforce
=yes ;;
8693 -*) RM
="$RM $arg" ;;
8694 *) files
="$files $arg" ;;
8699 func_fatal_help
"you must specify an RM program"
8703 origobjdir
="$objdir"
8704 for file in $files; do
8705 func_dirname
"$file" "" "."
8706 dir
="$func_dirname_result"
8707 if test "X$dir" = X.
; then
8708 objdir
="$origobjdir"
8710 objdir
="$dir/$origobjdir"
8712 func_basename
"$file"
8713 name
="$func_basename_result"
8714 test "$mode" = uninstall
&& objdir
="$dir"
8716 # Remember objdir for removal later, being careful to avoid duplicates
8717 if test "$mode" = clean
; then
8720 *) rmdirs
="$rmdirs $objdir" ;;
8724 # Don't error if the file doesn't exist and rm -f was used.
8725 if { test -L "$file"; } >/dev
/null
2>&1 ||
8726 { test -h "$file"; } >/dev
/null
2>&1 ||
8727 test -f "$file"; then
8729 elif test -d "$file"; then
8732 elif test "$rmforce" = yes; then
8740 # Possibly a libtool archive, so verify it.
8741 if func_lalib_p
"$file"; then
8742 func_source
$dir/$name
8744 # Delete the libtool libraries and symlinks.
8745 for n
in $library_names; do
8746 rmfiles
="$rmfiles $objdir/$n"
8748 test -n "$old_library" && rmfiles
="$rmfiles $objdir/$old_library"
8752 case " $library_names " in
8753 # " " in the beginning catches empty $dlname
8755 *) rmfiles
="$rmfiles $objdir/$dlname" ;;
8757 test -n "$libdir" && rmfiles
="$rmfiles $objdir/$name $objdir/${name}i"
8760 if test -n "$library_names"; then
8761 # Do each command in the postuninstall commands.
8762 func_execute_cmds
"$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
8765 if test -n "$old_library"; then
8766 # Do each command in the old_postuninstall commands.
8767 func_execute_cmds
"$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
8769 # FIXME: should reinstall the best remaining shared library.
8776 # Possibly a libtool object, so verify it.
8777 if func_lalib_p
"$file"; then
8780 func_source
$dir/$name
8782 # Add PIC object to the list of files to remove.
8783 if test -n "$pic_object" &&
8784 test "$pic_object" != none
; then
8785 rmfiles
="$rmfiles $dir/$pic_object"
8788 # Add non-PIC object to the list of files to remove.
8789 if test -n "$non_pic_object" &&
8790 test "$non_pic_object" != none
; then
8791 rmfiles
="$rmfiles $dir/$non_pic_object"
8797 if test "$mode" = clean
; then
8801 func_stripname
'' '.exe' "$file"
8802 file=$func_stripname_result
8803 func_stripname
'' '.exe' "$name"
8804 noexename
=$func_stripname_result
8805 # $file with .exe has already been added to rmfiles,
8806 # add $file without .exe
8807 rmfiles
="$rmfiles $file"
8810 # Do a test to see if this is a libtool program.
8811 if func_ltwrapper_p
"$file"; then
8812 if func_ltwrapper_executable_p
"$file"; then
8813 func_ltwrapper_scriptname
"$file"
8815 func_source
$func_ltwrapper_scriptname_result
8816 rmfiles
="$rmfiles $func_ltwrapper_scriptname_result"
8819 func_source
$dir/$noexename
8822 # note $name still contains .exe if it was in $file originally
8823 # as does the version of $file that was added into $rmfiles
8824 rmfiles
="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
8825 if test "$fast_install" = yes && test -n "$relink_command"; then
8826 rmfiles
="$rmfiles $objdir/lt-$name"
8828 if test "X$noexename" != "X$name" ; then
8829 rmfiles
="$rmfiles $objdir/lt-${noexename}.c"
8835 func_show_eval
"$RM $rmfiles" 'exit_status=1'
8837 objdir
="$origobjdir"
8839 # Try to remove the ${objdir}s in the directories where we deleted files
8840 for dir
in $rmdirs; do
8841 if test -d "$dir"; then
8842 func_show_eval
"rmdir $dir >/dev/null 2>&1"
8849 { test "$mode" = uninstall ||
test "$mode" = clean
; } &&
8850 func_mode_uninstall
${1+"$@"}
8852 test -z "$mode" && {
8853 help="$generic_help"
8854 func_fatal_help
"you must specify a MODE"
8857 test -z "$exec_cmd" && \
8858 func_fatal_help
"invalid operation mode \`$mode'"
8860 if test -n "$exec_cmd"; then
8861 eval exec "$exec_cmd"
8868 # The TAGs below are defined such that we never get into a situation
8869 # in which we disable both kinds of libraries. Given conflicting
8870 # choices, we go for a static library, that is the most portable,
8871 # since we can't tell whether shared libraries were disabled because
8872 # the user asked for that or because the platform doesn't support
8873 # them. This is particularly important on AIX, because we don't
8874 # support having both static and shared libraries enabled at the same
8875 # time on that platform, so we default to a shared-only configuration.
8876 # If a disable-shared tag is given, we'll fallback to a static-only
8877 # configuration. But we'll never go from static-only to shared-only.
8879 # ### BEGIN LIBTOOL TAG CONFIG: disable-shared
8880 build_libtool_libs
=no
8882 # ### END LIBTOOL TAG CONFIG: disable-shared
8884 # ### BEGIN LIBTOOL TAG CONFIG: disable-static
8885 build_old_libs
=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
8886 # ### END LIBTOOL TAG CONFIG: disable-static