1 # Generated from ltmain.m4sh.
3 # libtool (GNU libtool) 2.2.10
4 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
6 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
7 # 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
8 # This is free software; see the source for copying conditions. There is NO
9 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11 # GNU Libtool is free software; you can redistribute it and/or modify
12 # it under the terms of the GNU General Public License as published by
13 # the Free Software Foundation; either version 2 of the License, or
14 # (at your option) any later version.
16 # As a special exception to the GNU General Public License,
17 # if you distribute this file as part of a program or library that
18 # is built using GNU Libtool, you may include this file under the
19 # same distribution terms that you use for the rest of that program.
21 # GNU Libtool is distributed in the hope that it will be useful, but
22 # WITHOUT ANY WARRANTY; without even the implied warranty of
23 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24 # General Public License for more details.
26 # You should have received a copy of the GNU General Public License
27 # along with GNU Libtool; see the file COPYING. If not, a copy
28 # can be downloaded from http://www.gnu.org/licenses/gpl.html,
29 # or obtained by writing to the Free Software Foundation, Inc.,
30 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
32 # Usage: $progname [OPTION]... [MODE-ARG]...
34 # Provide generalized library-building support services.
36 # --config show all configuration variables
37 # --debug enable verbose shell tracing
38 # -n, --dry-run display commands without modifying any files
39 # --features display basic configuration information and exit
40 # --mode=MODE use operation mode MODE
41 # --preserve-dup-deps don't remove duplicate dependency libraries
42 # --quiet, --silent don't print informational messages
43 # --no-quiet, --no-silent
44 # print informational messages (default)
45 # --tag=TAG use configuration variables from tag TAG
46 # -v, --verbose print more informational messages than default
47 # --no-verbose don't print the extra informational messages
48 # --version print version information
49 # -h, --help, --help-all print short, long, or detailed help message
51 # MODE must be one of the following:
53 # clean remove files from the build directory
54 # compile compile a source file into a libtool object
55 # execute automatically set library path, then run a program
56 # finish complete the installation of libtool libraries
57 # install install libraries or executables
58 # link create a library or an executable
59 # uninstall remove libraries from an installed directory
61 # MODE-ARGS vary depending on the MODE. When passed as first option,
62 # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
63 # Try `$progname --help --mode=MODE' for a more detailed description of MODE.
65 # When reporting a bug, please describe a test case to reproduce it and
66 # include the following information:
71 # compiler flags: $LTCFLAGS
72 # linker: $LD (gnu? $with_gnu_ld)
73 # $progname: (GNU libtool) 2.2.10
74 # automake: $automake_version
75 # autoconf: $autoconf_version
77 # Report bugs to <bug-libtool@gnu.org>.
83 package_revision
=1.3175
85 # Be Bourne compatible
86 if test -n "${ZSH_VERSION+set}" && (emulate sh
) >/dev
/null
2>&1; then
89 # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
90 # is contrary to our usage. Disable this feature.
91 alias -g '${1+"$@"}'='"$@"'
94 case `(set -o) 2>/dev/null` in *posix
*) set -o posix
;; esac
96 BIN_SH
=xpg4
; export BIN_SH
# for Tru64
97 DUALCASE
=1; export DUALCASE
# for MKS sh
99 # A function that is used when there is no print builtin or printf.
100 func_fallback_echo
()
102 eval 'cat <<_LTECHO_EOF
107 # NLS nuisances: We save the old values to restore during execute mode.
110 for lt_var
in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
112 eval "if test \"\${$lt_var+set}\" = set; then
113 save_$lt_var=\$$lt_var
116 lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
117 lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
122 export LANGUAGE LC_ALL
127 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
128 # is ksh but when the shell is invoked as "sh" and the current value of
129 # the _XPG environment variable is not equal to 1 (one), the special
130 # positional parameter $0, within a function call, is the name of the
137 test "${ECHO+set}" = set || ECHO
=${as_echo-'printf %s\n'}
147 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
148 : ${Xsed="$SED -e 1s/^X//"}
153 EXIT_MISMATCH
=63 # $? = 63 is used to indicate version mismatch to missing.
154 EXIT_SKIP
=77 # $? = 77 is used to indicate a skipped test to automake.
156 exit_status
=$EXIT_SUCCESS
158 # Make sure IFS has a sensible default
163 dirname="s,/[^/]*$,,"
166 # func_dirname_and_basename file append nondir_replacement
167 # perform func_basename and func_dirname in a single function
169 # dirname: Compute the dirname of FILE. If nonempty,
170 # add APPEND to the result, otherwise set result
171 # to NONDIR_REPLACEMENT.
172 # value returned in "$func_dirname_result"
173 # basename: Compute filename of FILE.
174 # value retuned in "$func_basename_result"
175 # Implementation must be kept synchronized with func_dirname
176 # and func_basename. For efficiency, we do not delegate to
177 # those functions but instead duplicate the functionality here.
178 func_dirname_and_basename
()
180 # Extract subdirectory from the argument.
181 func_dirname_result
=`$ECHO "${1}" | $SED -e "$dirname"`
182 if test "X$func_dirname_result" = "X${1}"; then
183 func_dirname_result
="${3}"
185 func_dirname_result
="$func_dirname_result${2}"
187 func_basename_result
=`$ECHO "${1}" | $SED -e "$basename"`
190 # Generated shell functions inserted here.
192 # These SED scripts presuppose an absolute path with a trailing slash.
193 pathcar
='s,^/\([^/]*\).*$,\1,'
194 pathcdr
='s,^/[^/]*,,'
195 removedotparts
=':dotsl
199 collapseslashes
='s@/\{1,\}@/@g'
200 finalslash
='s,/*$,/,'
202 # func_normal_abspath PATH
203 # Remove doubled-up and trailing slashes, "." path components,
204 # and cancel out any ".." path components in PATH after making
205 # it an absolute path.
206 # value returned in "$func_normal_abspath_result"
207 func_normal_abspath
()
209 # Start from root dir and reassemble the path.
210 func_normal_abspath_result
=
211 func_normal_abspath_tpath
=$1
212 func_normal_abspath_altnamespace
=
213 case $func_normal_abspath_tpath in
215 # Empty path, that just means $cwd.
216 func_stripname
'' '/' "`pwd`"
217 func_normal_abspath_result
=$func_stripname_result
220 # The next three entries are used to spot a run of precisely
221 # two leading slashes without using negated character classes;
222 # we take advantage of case's first-match behaviour.
224 # Unusual form of absolute path, do nothing.
227 # Not necessarily an ordinary path; POSIX reserves leading '//'
228 # and for example Cygwin uses it to access remote file shares
229 # over CIFS/SMB, so we conserve a leading double slash if found.
230 func_normal_abspath_altnamespace
=/
233 # Absolute path, do nothing.
236 # Relative path, prepend $cwd.
237 func_normal_abspath_tpath
=`pwd`/$func_normal_abspath_tpath
240 # Cancel out all the simple stuff to save iterations. We also want
241 # the path to end with a slash for ease of parsing, so make sure
242 # there is one (and only one) here.
243 func_normal_abspath_tpath
=`$ECHO "$func_normal_abspath_tpath" | $SED \
244 -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
246 # Processed it all yet?
247 if test "$func_normal_abspath_tpath" = / ; then
248 # If we ascended to the root using ".." the result may be empty now.
249 if test -z "$func_normal_abspath_result" ; then
250 func_normal_abspath_result
=/
254 func_normal_abspath_tcomponent
=`$ECHO "$func_normal_abspath_tpath" | $SED \
256 func_normal_abspath_tpath
=`$ECHO "$func_normal_abspath_tpath" | $SED \
258 # Figure out what to do with it
259 case $func_normal_abspath_tcomponent in
261 # Trailing empty path component, ignore it.
264 # Parent dir; strip last assembled component from result.
265 func_dirname
"$func_normal_abspath_result"
266 func_normal_abspath_result
=$func_dirname_result
269 # Actual path component, append it.
270 func_normal_abspath_result
=$func_normal_abspath_result/$func_normal_abspath_tcomponent
274 # Restore leading double-slash if one was found on entry.
275 func_normal_abspath_result
=$func_normal_abspath_altnamespace$func_normal_abspath_result
278 # func_relative_path SRCDIR DSTDIR
279 # generates a relative path from SRCDIR to DSTDIR, with a trailing
280 # slash if non-empty, suitable for immediately appending a filename
281 # without needing to append a separator.
282 # value returned in "$func_relative_path_result"
283 func_relative_path
()
285 func_relative_path_result
=
286 func_normal_abspath
"$1"
287 func_relative_path_tlibdir
=$func_normal_abspath_result
288 func_normal_abspath
"$2"
289 func_relative_path_tbindir
=$func_normal_abspath_result
291 # Ascend the tree starting from libdir
293 # check if we have found a prefix of bindir
294 case $func_relative_path_tbindir in
295 $func_relative_path_tlibdir)
296 # found an exact match
297 func_relative_path_tcancelled
=
300 $func_relative_path_tlibdir*)
301 # found a matching prefix
302 func_stripname
"$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
303 func_relative_path_tcancelled
=$func_stripname_result
304 if test -z "$func_relative_path_result"; then
305 func_relative_path_result
=.
310 func_dirname
$func_relative_path_tlibdir
311 func_relative_path_tlibdir
=${func_dirname_result}
312 if test "x$func_relative_path_tlibdir" = x
; then
313 # Have to descend all the way to the root!
314 func_relative_path_result
=..
/$func_relative_path_result
315 func_relative_path_tcancelled
=$func_relative_path_tbindir
318 func_relative_path_result
=..
/$func_relative_path_result
323 # Now calculate path; take care to avoid doubling-up slashes.
324 func_stripname
'' '/' "$func_relative_path_result"
325 func_relative_path_result
=$func_stripname_result
326 func_stripname
'/' '/' "$func_relative_path_tcancelled"
327 if test "x$func_stripname_result" != x
; then
328 func_relative_path_result
=${func_relative_path_result}/${func_stripname_result}
331 # Normalisation. If bindir is libdir, return empty string,
332 # else relative path ending with a slash; either way, target
333 # file name can be directly appended.
334 if test ! -z "$func_relative_path_result"; then
335 func_stripname
'./' '' "$func_relative_path_result/"
336 func_relative_path_result
=$func_stripname_result
340 # The name of this program:
341 func_dirname_and_basename
"$progpath"
342 progname
=$func_basename_result
344 # Make sure we have an absolute path for reexecution:
346 [\\/]*|[A
-Za-z]:\\*) ;;
348 progdir
=$func_dirname_result
349 progdir
=`cd "$progdir" && pwd`
350 progpath
="$progdir/$progname"
355 for progdir
in $PATH; do
357 test -x "$progdir/$progname" && break
360 test -n "$progdir" || progdir
=`pwd`
361 progpath
="$progdir/$progname"
365 # Sed substitution that helps us do robust quoting. It backslashifies
366 # metacharacters that are still active within double-quoted strings.
367 Xsed
="${SED}"' -e 1s/^X//'
368 sed_quote_subst
='s/\([`"$\\]\)/\\\1/g'
370 # Same as above, but do not quote variable references.
371 double_quote_subst
='s/\(["`\\]\)/\\\1/g'
373 # Re-`\' parameter expansions in output of double_quote_subst that were
374 # `\'-ed in input to the same. If an odd number of `\' preceded a '$'
375 # in input to double_quote_subst, that '$' was protected from expansion.
376 # Since each input `\' is now two `\'s, look for any number of runs of
377 # four `\'s followed by two `\'s and then a '$'. `\' that '$'.
382 sed_double_backslash
="\
386 s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
397 # Echo program name prefixed message, along with the current mode
398 # name if it has been set yet.
401 $ECHO "$progname${mode+: }$mode: $*"
404 # func_verbose arg...
405 # Echo program name prefixed message in verbose mode only.
408 $opt_verbose && func_echo
${1+"$@"}
410 # A bug in bash halts the script if the last line of a function
411 # fails when set -e is in force, so we need another command to
416 # func_echo_all arg...
417 # Invoke $ECHO with all args, space-separated.
424 # Echo program name prefixed message to standard error.
427 $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
430 # func_warning arg...
431 # Echo program name prefixed warning message to standard error.
434 $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
440 # func_fatal_error arg...
441 # Echo program name prefixed message to standard error, and exit.
448 # func_fatal_help arg...
449 # Echo program name prefixed message to standard error, followed by
450 # a help hint, and exit.
454 func_fatal_error
"$help"
456 help="Try \`$progname --help' for more information." ## default
459 # func_grep expression filename
460 # Check whether EXPRESSION matches any line of FILENAME, without output.
463 $GREP "$1" "$2" >/dev
/null
2>&1
467 # func_mkdir_p directory-path
468 # Make sure the entire path to DIRECTORY-PATH is available.
471 my_directory_path
="$1"
474 if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
476 # Protect directory names starting with `-'
477 case $my_directory_path in
478 -*) my_directory_path
="./$my_directory_path" ;;
481 # While some portion of DIR does not yet exist...
482 while test ! -d "$my_directory_path"; do
483 # ...make a list in topmost first order. Use a colon delimited
484 # list incase some portion of path contains whitespace.
485 my_dir_list
="$my_directory_path:$my_dir_list"
487 # If the last portion added has no slash in it, the list is done
488 case $my_directory_path in */*) ;; *) break ;; esac
490 # ...otherwise throw away the child directory and loop
491 my_directory_path
=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
493 my_dir_list
=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
495 save_mkdir_p_IFS
="$IFS"; IFS
=':'
496 for my_dir
in $my_dir_list; do
497 IFS
="$save_mkdir_p_IFS"
498 # mkdir can fail with a `File exist' error if two processes
499 # try to create one of the directories concurrently. Don't
501 $MKDIR "$my_dir" 2>/dev
/null
|| :
503 IFS
="$save_mkdir_p_IFS"
505 # Bail out if we (or some other process) failed to create a directory.
506 test -d "$my_directory_path" || \
507 func_fatal_error
"Failed to create \`$1'"
512 # func_mktempdir [string]
513 # Make a temporary directory that won't clash with other running
514 # libtool processes, and avoids race conditions if possible. If
515 # given, STRING is the basename for that directory.
518 my_template
="${TMPDIR-/tmp}/${1-$progname}"
520 if test "$opt_dry_run" = ":"; then
521 # Return a directory name, but don't create it in dry-run mode
522 my_tmpdir
="${my_template}-$$"
525 # If mktemp works, use that first and foremost
526 my_tmpdir
=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
528 if test ! -d "$my_tmpdir"; then
529 # Failing that, at least try and use $RANDOM to avoid a race
530 my_tmpdir
="${my_template}-${RANDOM-0}$$"
532 save_mktempdir_umask
=`umask`
535 umask $save_mktempdir_umask
538 # If we're not in dry-run mode, bomb out on failure
539 test -d "$my_tmpdir" || \
540 func_fatal_error
"cannot create temporary directory \`$my_tmpdir'"
547 # func_quote_for_eval arg
548 # Aesthetically quote ARG to be evaled later.
549 # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
550 # is double-quoted, suitable for a subsequent eval, whereas
551 # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
552 # which are still active within double quotes backslashified.
553 func_quote_for_eval
()
557 func_quote_for_eval_unquoted_result
=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
559 func_quote_for_eval_unquoted_result
="$1" ;;
562 case $func_quote_for_eval_unquoted_result in
563 # Double-quote args containing shell metacharacters to delay
564 # word splitting, command substitution and and variable
565 # expansion for a subsequent eval.
566 # Many Bourne shells cannot handle close brackets correctly
567 # in scan sets, so we specify it separately.
568 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
569 func_quote_for_eval_result
="\"$func_quote_for_eval_unquoted_result\""
572 func_quote_for_eval_result
="$func_quote_for_eval_unquoted_result"
577 # func_quote_for_expand arg
578 # Aesthetically quote ARG to be evaled later; same as above,
579 # but do not quote variable references.
580 func_quote_for_expand
()
584 my_arg
=`$ECHO "$1" | $SED \
585 -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
591 # Double-quote args containing shell metacharacters to delay
592 # word splitting and command substitution for a subsequent eval.
593 # Many Bourne shells cannot handle close brackets correctly
594 # in scan sets, so we specify it separately.
595 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
600 func_quote_for_expand_result
="$my_arg"
604 # func_show_eval cmd [fail_exp]
605 # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
606 # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
607 # is given, then evaluate it.
613 ${opt_silent-false} || {
614 func_quote_for_expand
"$my_cmd"
615 eval "func_echo $func_quote_for_expand_result"
618 if ${opt_dry_run-false}; then :; else
621 if test "$my_status" -eq 0; then :; else
622 eval "(exit $my_status); $my_fail_exp"
628 # func_show_eval_locale cmd [fail_exp]
629 # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
630 # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
631 # is given, then evaluate it. Use the saved locale for evaluation.
632 func_show_eval_locale
()
637 ${opt_silent-false} || {
638 func_quote_for_expand
"$my_cmd"
639 eval "func_echo $func_quote_for_expand_result"
642 if ${opt_dry_run-false}; then :; else
643 eval "$lt_user_locale
646 eval "$lt_safe_locale"
647 if test "$my_status" -eq 0; then :; else
648 eval "(exit $my_status); $my_fail_exp"
655 # Echo version message to standard output and exit.
666 /^# '$PROGRAM' (GNU /,/# warranty; / {
669 s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
676 # Echo short help message to standard output and exit.
679 $SED -n '/^# Usage:/,/^# *.*--help/ {
682 s/\$progname/'$progname'/
686 $ECHO "run \`$progname --help | more' for full usage"
691 # Echo long help message to standard output and exit,
692 # unless 'noexit' is passed as argument.
695 $SED -n '/^# Usage:/,/# Report bugs to/ {
698 s*\$progname*'$progname'*
700 s*\$SHELL*'"$SHELL"'*
702 s*\$LTCFLAGS*'"$LTCFLAGS"'*
704 s/\$with_gnu_ld/'"$with_gnu_ld"'/
705 s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
706 s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
710 if test -z "$1"; then
715 # func_missing_arg argname
716 # Echo program name prefixed message to standard error and set global
720 func_error
"missing argument for $1."
731 magic
="%%%MAGIC variable%%%"
732 magic_exe
="%%%MAGIC EXE variable%%%"
739 lo2o
="s/\\.lo\$/.${objext}/"
740 o2lo
="s/\\.${objext}\$/.lo/"
745 opt_duplicate_deps
=false
749 # If this variable is set in any of the actions, the command in it
750 # will be execed at the end. This prevents here-documents from being
751 # left over by shells.
754 # func_fatal_configuration arg...
755 # Echo program name prefixed message to standard error, followed by
756 # a configuration failure hint, and exit.
757 func_fatal_configuration
()
760 func_error
"See the $PACKAGE documentation for more information."
761 func_fatal_error
"Fatal configuration error."
766 # Display the configuration for all the tags in this script.
769 re_begincf
='^# ### BEGIN LIBTOOL'
770 re_endcf
='^# ### END LIBTOOL'
772 # Default configuration.
773 $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
775 # Now print the configurations for the tags.
776 for tagname
in $taglist; do
777 $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
784 # Display the features supported by this script.
788 if test "$build_libtool_libs" = yes; then
789 echo "enable shared libraries"
791 echo "disable shared libraries"
793 if test "$build_old_libs" = yes; then
794 echo "enable static libraries"
796 echo "disable static libraries"
802 # func_enable_tag tagname
803 # Verify that TAGNAME is valid, and either flag an error and exit, or
804 # enable the TAGNAME tag. We also add TAGNAME to the global $taglist
811 re_begincf
="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
812 re_endcf
="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
813 sed_extractcf
="/$re_begincf/,/$re_endcf/p"
818 func_fatal_error
"invalid tag name: $tagname"
822 # Don't test for the "default" C tag, as we know it's
823 # there but not specially marked.
827 if $GREP "$re_begincf" "$progpath" >/dev
/null
2>&1; then
828 taglist
="$taglist $tagname"
830 # Evaluate the configuration. Be careful to quote the path
831 # and the sed script, to avoid splitting on whitespace, but
832 # also don't use non-portable quotes within backquotes within
833 # quotes we have to do it in 2 steps:
834 extractedcf
=`$SED -n -e "$sed_extractcf" < "$progpath"`
837 func_error
"ignoring unknown tag $tagname"
843 # Parse options once, thoroughly. This comes as soon as possible in
844 # the script to make things like `libtool --version' happen quickly.
847 # Shorthand for --mode=foo, only valid as the first argument
850 shift; set dummy
--mode clean
${1+"$@"}; shift
852 compile
|compil
|compi
|comp
|com
|co
|c
)
853 shift; set dummy
--mode compile
${1+"$@"}; shift
855 execute
|execut
|execu
|exec|exe
|ex
|e
)
856 shift; set dummy
--mode execute
${1+"$@"}; shift
858 finish
|finis
|fini
|fin
|fi|f
)
859 shift; set dummy
--mode finish
${1+"$@"}; shift
861 install|instal
|insta
|inst
|ins
|in|i
)
862 shift; set dummy
--mode install ${1+"$@"}; shift
865 shift; set dummy
--mode link
${1+"$@"}; shift
867 uninstall
|uninstal
|uninsta
|uninst
|unins
|unin
|uni
|un
|u
)
868 shift; set dummy
--mode uninstall
${1+"$@"}; shift
872 # Parse non-mode specific arguments:
873 while test "$#" -gt 0; do
878 --config) func_config
;;
880 --debug) preserve_args
="$preserve_args $opt"
881 func_echo
"enabling shell trace mode"
886 -dlopen) test "$#" -eq 0 && func_missing_arg
"$opt" && break
887 execute_dlfiles
="$execute_dlfiles $1"
891 --dry-run | -n) opt_dry_run
=: ;;
892 --features) func_features
;;
893 --finish) mode
="finish" ;;
895 --mode) test "$#" -eq 0 && func_missing_arg
"$opt" && break
897 # Valid mode arguments:
907 # Catch anything else as an error
908 *) func_error
"invalid argument for $opt"
919 opt_duplicate_deps
=: ;;
921 --quiet|--silent) preserve_args
="$preserve_args $opt"
926 --no-quiet|--no-silent)
927 preserve_args
="$preserve_args $opt"
931 --verbose| -v) preserve_args
="$preserve_args $opt"
936 --no-verbose) preserve_args
="$preserve_args $opt"
940 --tag) test "$#" -eq 0 && func_missing_arg
"$opt" && break
941 preserve_args
="$preserve_args $opt $1"
942 func_enable_tag
"$1" # tagname is set here
946 # Separate optargs to long options:
947 -dlopen=*|--mode=*|--tag=*)
948 func_opt_split
"$opt"
949 set dummy
"$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
953 -\?|-h) func_usage
;;
954 --help) opt_help
=: ;;
955 --help-all) opt_help
=': help-all' ;;
956 --version) func_version
;;
958 -*) func_fatal_help
"unrecognized option \`$opt'" ;;
968 *cygwin
* | *mingw
* | *pw32
* | *cegcc
*)
969 # don't eliminate duplications in $postdeps and $predeps
970 opt_duplicate_compiler_generated_deps
=:
973 opt_duplicate_compiler_generated_deps
=$opt_duplicate_deps
977 # Having warned about all mis-specified options, bail out if
978 # anything was wrong.
979 $exit_cmd $EXIT_FAILURE
982 # func_check_version_match
983 # Ensure that we are using m4 macros, and libtool script from the same
984 # release of libtool.
985 func_check_version_match
()
987 if test "$package_revision" != "$macro_revision"; then
988 if test "$VERSION" != "$macro_version"; then
989 if test -z "$macro_version"; then
991 $progname: Version mismatch error. This is $PACKAGE $VERSION, but the
992 $progname: definition of this LT_INIT comes from an older release.
993 $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
994 $progname: and run autoconf again.
998 $progname: Version mismatch error. This is $PACKAGE $VERSION, but the
999 $progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
1000 $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
1001 $progname: and run autoconf again.
1006 $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
1007 $progname: but the definition of this LT_INIT comes from revision $macro_revision.
1008 $progname: You should recreate aclocal.m4 with macros from revision $package_revision
1009 $progname: of $PACKAGE $VERSION and run autoconf again.
1023 # Sanity checks first:
1024 func_check_version_match
1026 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
1027 func_fatal_configuration
"not configured to build any kind of library"
1030 test -z "$mode" && func_fatal_error
"error: you must specify a MODE."
1034 eval std_shrext
=\"$shrext_cmds\"
1037 # Only execute mode is allowed to have -dlopen flags.
1038 if test -n "$execute_dlfiles" && test "$mode" != execute
; then
1039 func_error
"unrecognized option \`-dlopen'"
1044 # Change the help message to a mode-specific one.
1045 generic_help
="$help"
1046 help="Try \`$progname --help --mode=$mode' for more information."
1051 # True iff FILE is a libtool `.la' library or `.lo' object file.
1052 # This function is only a basic sanity check; it will hardly flush out
1053 # determined imposters.
1057 $SED -e 4q
"$1" 2>/dev
/null \
1058 | $GREP "^# Generated by .*$PACKAGE" > /dev
/null
2>&1
1061 # func_lalib_unsafe_p file
1062 # True iff FILE is a libtool `.la' library or `.lo' object file.
1063 # This function implements the same check as func_lalib_p without
1064 # resorting to external programs. To this end, it redirects stdin and
1065 # closes it afterwards, without saving the original file descriptor.
1066 # As a safety measure, use it only where a negative result would be
1067 # fatal anyway. Works if `file' does not exist.
1068 func_lalib_unsafe_p
()
1071 if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
1072 for lalib_p_l
in 1 2 3 4
1075 case "$lalib_p_line" in
1076 \
#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
1081 test "$lalib_p" = yes
1084 # func_ltwrapper_script_p file
1085 # True iff FILE is a libtool wrapper script
1086 # This function is only a basic sanity check; it will hardly flush out
1087 # determined imposters.
1088 func_ltwrapper_script_p
()
1093 # func_ltwrapper_executable_p file
1094 # True iff FILE is a libtool wrapper executable
1095 # This function is only a basic sanity check; it will hardly flush out
1096 # determined imposters.
1097 func_ltwrapper_executable_p
()
1099 func_ltwrapper_exec_suffix
=
1102 *) func_ltwrapper_exec_suffix
=.exe
;;
1104 $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev
/null
2>&1
1107 # func_ltwrapper_scriptname file
1108 # Assumes file is an ltwrapper_executable
1109 # uses $file to determine the appropriate filename for a
1110 # temporary ltwrapper_script.
1111 func_ltwrapper_scriptname
()
1113 func_ltwrapper_scriptname_result
=""
1114 if func_ltwrapper_executable_p
"$1"; then
1115 func_dirname_and_basename
"$1" "" "."
1116 func_stripname
'' '.exe' "$func_basename_result"
1117 func_ltwrapper_scriptname_result
="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
1121 # func_ltwrapper_p file
1122 # True iff FILE is a libtool wrapper script or wrapper executable
1123 # This function is only a basic sanity check; it will hardly flush out
1124 # determined imposters.
1127 func_ltwrapper_script_p
"$1" || func_ltwrapper_executable_p
"$1"
1131 # func_execute_cmds commands fail_cmd
1132 # Execute tilde-delimited COMMANDS.
1133 # If FAIL_CMD is given, eval that upon failure.
1134 # FAIL_CMD may read-access the current command in variable CMD!
1135 func_execute_cmds
()
1138 save_ifs
=$IFS; IFS
='~'
1142 func_show_eval
"$cmd" "${2-:}"
1149 # Source FILE, adding directory component if necessary.
1150 # Note that it is not necessary on cygwin/mingw to append a dot to
1151 # FILE even if both FILE and FILE.exe exist: automatic-append-.exe
1152 # behavior happens only for exec(3), not for open(2)! Also, sourcing
1153 # `FILE.' does not work on cygwin managed mounts.
1158 */* | *\\*) .
"$1" ;;
1164 # func_infer_tag arg
1165 # Infer tagged configuration to use if any are available and
1166 # if one wasn't chosen via the "--tag" command line option.
1167 # Only attempt this if the compiler in the base compile
1168 # command doesn't match the default compiler.
1169 # arg is usually of the form 'gcc ...'
1173 if test -n "$available_tags" && test -z "$tagname"; then
1176 func_quote_for_eval
"$arg"
1177 CC_quoted
="$CC_quoted $func_quote_for_eval_result"
1179 CC_expanded
=`func_echo_all $CC`
1180 CC_quoted_expanded
=`func_echo_all $CC_quoted`
1182 # Blanks in the command may have been stripped by the calling shell,
1183 # but not from the CC environment variable when configure was run.
1184 " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
1185 " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
1186 # Blanks at the start of $base_compile will cause this to fail
1187 # if we don't check for them as well.
1189 for z
in $available_tags; do
1190 if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev
/null
; then
1191 # Evaluate the configuration.
1192 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
1195 # Double-quote args containing other shell metacharacters.
1196 func_quote_for_eval
"$arg"
1197 CC_quoted
="$CC_quoted $func_quote_for_eval_result"
1199 CC_expanded
=`func_echo_all $CC`
1200 CC_quoted_expanded
=`func_echo_all $CC_quoted`
1202 " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
1203 " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
1204 # The compiler in the base compile command matches
1205 # the one in the tagged configuration.
1206 # Assume this is the tagged configuration we want.
1213 # If $tagname still isn't set, then no tagged configuration
1214 # was found and let the user know that the "--tag" command
1215 # line option must be used.
1216 if test -z "$tagname"; then
1217 func_echo
"unable to infer tagged configuration"
1218 func_fatal_error
"specify a tag with \`--tag'"
1220 # func_verbose "using $tagname tagged configuration"
1229 # func_write_libtool_object output_name pic_name nonpic_name
1230 # Create a libtool object file (analogous to a ".la" file),
1231 # but don't create it if we're doing a dry run.
1232 func_write_libtool_object
()
1235 if test "$build_libtool_libs" = yes; then
1241 if test "$build_old_libs" = yes; then
1242 write_oldobj
=\'${3}\'
1248 cat >${write_libobj}T
<<EOF
1249 # $write_libobj - a libtool object file
1250 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
1252 # Please DO NOT delete this file!
1253 # It is necessary for linking the library.
1255 # Name of the PIC object.
1256 pic_object=$write_lobj
1258 # Name of the non-PIC object
1259 non_pic_object=$write_oldobj
1262 $MV "${write_libobj}T" "${write_libobj}"
1266 # func_mode_compile arg...
1267 func_mode_compile
()
1270 # Get the compilation command and the source file.
1272 srcfile
="$nonopt" # always keep a non-empty value in "srcfile"
1284 # do not "continue". Instead, add this to base_compile
1296 # Accept any command-line options.
1299 test -n "$libobj" && \
1300 func_fatal_error
"you cannot specify \`-o' more than once"
1305 -pie | -fpie | -fPIE)
1306 pie_flag
="$pie_flag $arg"
1310 -shared | -static | -prefer-pic | -prefer-non-pic)
1321 arg_mode
=arg
# the next one goes into the "base_compile" arg list
1322 continue # The current "srcfile" will either be retained or
1323 ;; # replaced later. I would guess that would be a bug.
1326 func_stripname
'-Wc,' '' "$arg"
1327 args
=$func_stripname_result
1329 save_ifs
="$IFS"; IFS
=','
1330 for arg
in $args; do
1332 func_quote_for_eval
"$arg"
1333 lastarg
="$lastarg $func_quote_for_eval_result"
1336 func_stripname
' ' '' "$lastarg"
1337 lastarg
=$func_stripname_result
1339 # Add the arguments to base_compile.
1340 base_compile
="$base_compile $lastarg"
1345 # Accept the current argument as the source file.
1346 # The previous "srcfile" becomes the current argument.
1353 esac # case $arg_mode
1355 # Aesthetically quote the previous argument.
1356 func_quote_for_eval
"$lastarg"
1357 base_compile
="$base_compile $func_quote_for_eval_result"
1362 func_fatal_error
"you must specify an argument for -Xcompile"
1365 func_fatal_error
"you must specify a target with \`-o'"
1368 # Get the name of the library object.
1369 test -z "$libobj" && {
1370 func_basename
"$srcfile"
1371 libobj
="$func_basename_result"
1376 # Recognize several different file suffixes.
1377 # If the user specifies -o file.o, it is replaced with file.lo
1380 *.ada
| *.adb
| *.ads
| *.asm
| \
1381 *.c
++ | *.cc
| *.ii
| *.class
| *.cpp
| *.cxx
| \
1382 *.
[fF
][09]?
| *.
for | *.java
| *.obj
| *.sx
| *.cu
| *.cup
)
1383 func_xform
"$libobj"
1384 libobj
=$func_xform_result
1389 *.lo
) func_lo2o
"$libobj"; obj
=$func_lo2o_result ;;
1391 func_fatal_error
"cannot determine name of library object from \`$libobj'"
1395 func_infer_tag
$base_compile
1397 for arg
in $later; do
1400 test "$build_libtool_libs" != yes && \
1401 func_fatal_configuration
"can not build a shared library"
1407 build_libtool_libs
=no
1424 func_quote_for_eval
"$libobj"
1425 test "X$libobj" != "X$func_quote_for_eval_result" \
1426 && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
1427 && func_warning
"libobj name \`$libobj' may not contain shell special characters."
1428 func_dirname_and_basename
"$obj" "/" ""
1429 objname
="$func_basename_result"
1430 xdir
="$func_dirname_result"
1431 lobj
=${xdir}$objdir/$objname
1433 test -z "$base_compile" && \
1434 func_fatal_help
"you must specify a compilation command"
1436 # Delete any leftover library objects.
1437 if test "$build_old_libs" = yes; then
1438 removelist
="$obj $lobj $libobj ${libobj}T"
1440 removelist
="$lobj $libobj ${libobj}T"
1443 # On Cygwin there's no "real" PIC flag so we must build both object types
1445 cygwin
* | mingw
* | pw32
* | os2
* | cegcc
*)
1449 if test "$pic_mode" = no
&& test "$deplibs_check_method" != pass_all
; then
1450 # non-PIC code in shared libraries is not supported
1454 # Calculate the filename of the output object if compiler does
1455 # not support -o with -c
1456 if test "$compiler_c_o" = no
; then
1457 output_obj
=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.
${objext}
1458 lockfile
="$output_obj.lock"
1465 # Lock this critical section if it is needed
1466 # We use this script file to make the link, it avoids creating a new file
1467 if test "$need_locks" = yes; then
1468 until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev
/null
; do
1469 func_echo
"Waiting for $lockfile to be removed"
1472 elif test "$need_locks" = warn
; then
1473 if test -f "$lockfile"; then
1475 *** ERROR, $lockfile exists and contains:
1476 `cat $lockfile 2>/dev/null`
1478 This indicates that another process is trying to use the same
1479 temporary object file, and libtool could not work around it because
1480 your compiler does not support \`-c' and \`-o' together. If you
1481 repeat this compilation, it may succeed, by chance, but you had better
1482 avoid parallel builds (make -j) in this platform, or get a better
1485 $opt_dry_run || $RM $removelist
1488 removelist
="$removelist $output_obj"
1489 $ECHO "$srcfile" > "$lockfile"
1492 $opt_dry_run || $RM $removelist
1493 removelist
="$removelist $lockfile"
1494 trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
1496 if test -n "$fix_srcfile_path"; then
1497 eval srcfile
=\"$fix_srcfile_path\"
1499 func_quote_for_eval
"$srcfile"
1500 qsrcfile
=$func_quote_for_eval_result
1502 # Only build a PIC object if we are building libtool libraries.
1503 if test "$build_libtool_libs" = yes; then
1504 # Without this assignment, base_compile gets emptied.
1505 fbsd_hideous_sh_bug
=$base_compile
1507 if test "$pic_mode" != no
; then
1508 command="$base_compile $qsrcfile $pic_flag"
1510 # Don't build PIC code
1511 command="$base_compile $qsrcfile"
1514 func_mkdir_p
"$xdir$objdir"
1516 if test -z "$output_obj"; then
1517 # Place PIC objects in $objdir
1518 command="$command -o $lobj"
1521 func_show_eval_locale
"$command" \
1522 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
1524 if test "$need_locks" = warn
&&
1525 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1527 *** ERROR, $lockfile contains:
1528 `cat $lockfile 2>/dev/null`
1530 but it should contain:
1533 This indicates that another process is trying to use the same
1534 temporary object file, and libtool could not work around it because
1535 your compiler does not support \`-c' and \`-o' together. If you
1536 repeat this compilation, it may succeed, by chance, but you had better
1537 avoid parallel builds (make -j) in this platform, or get a better
1540 $opt_dry_run || $RM $removelist
1544 # Just move the object if needed, then go on to compile the next one
1545 if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
1546 func_show_eval
'$MV "$output_obj" "$lobj"' \
1547 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
1550 # Allow error messages only from the first compilation.
1551 if test "$suppress_opt" = yes; then
1552 suppress_output
=' >/dev/null 2>&1'
1556 # Only build a position-dependent object if we build old libraries.
1557 if test "$build_old_libs" = yes; then
1558 if test "$pic_mode" != yes; then
1559 # Don't build PIC code
1560 command="$base_compile $qsrcfile$pie_flag"
1562 command="$base_compile $qsrcfile $pic_flag"
1564 if test "$compiler_c_o" = yes; then
1565 command="$command -o $obj"
1568 # Suppress compiler output if we already did a PIC compilation.
1569 command="$command$suppress_output"
1570 func_show_eval_locale
"$command" \
1571 '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
1573 if test "$need_locks" = warn
&&
1574 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1576 *** ERROR, $lockfile contains:
1577 `cat $lockfile 2>/dev/null`
1579 but it should contain:
1582 This indicates that another process is trying to use the same
1583 temporary object file, and libtool could not work around it because
1584 your compiler does not support \`-c' and \`-o' together. If you
1585 repeat this compilation, it may succeed, by chance, but you had better
1586 avoid parallel builds (make -j) in this platform, or get a better
1589 $opt_dry_run || $RM $removelist
1593 # Just move the object if needed
1594 if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
1595 func_show_eval
'$MV "$output_obj" "$obj"' \
1596 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
1601 func_write_libtool_object
"$libobj" "$objdir/$objname" "$objname"
1603 # Unlock the critical section if it was locked
1604 if test "$need_locks" != no
; then
1605 removelist
=$lockfile
1614 test "$mode" = compile
&& func_mode_compile
${1+"$@"}
1619 # We need to display help for each of the modes.
1622 # Generic help is extracted from the usage comments
1623 # at the start of this file.
1629 "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
1631 Remove files from the build directory.
1633 RM is the name of the program to use to delete files associated with each FILE
1634 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
1637 If FILE is a libtool library, object or program, all the files associated
1638 with it are deleted. Otherwise, only FILE itself is deleted using RM."
1643 "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
1645 Compile a source file into a libtool library object.
1647 This mode accepts the following additional options:
1649 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
1650 -no-suppress do not suppress compiler output for multiple passes
1651 -prefer-pic try to build PIC objects only
1652 -prefer-non-pic try to build non-PIC objects only
1653 -shared do not build a \`.o' file suitable for static linking
1654 -static only build a \`.o' file suitable for static linking
1655 -Wc,FLAG pass FLAG directly to the compiler
1657 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
1658 from the given SOURCEFILE.
1660 The output file name is determined by removing the directory component from
1661 SOURCEFILE, then substituting the C source code suffix \`.c' with the
1662 library object suffix, \`.lo'."
1667 "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
1669 Automatically set library path, then run a program.
1671 This mode accepts the following additional options:
1673 -dlopen FILE add the directory containing FILE to the library path
1675 This mode sets the library path environment variable according to \`-dlopen'
1678 If any of the ARGS are libtool executable wrappers, then they are translated
1679 into their corresponding uninstalled binary, and any of their required library
1680 directories are added to the library path.
1682 Then, COMMAND is executed, with ARGS as arguments."
1687 "Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
1689 Complete the installation of libtool libraries.
1691 Each LIBDIR is a directory that contains libtool libraries.
1693 The commands that this mode executes may require superuser privileges. Use
1694 the \`--dry-run' option if you just want to see what would be executed."
1699 "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
1701 Install executables or libraries.
1703 INSTALL-COMMAND is the installation command. The first component should be
1704 either the \`install' or \`cp' program.
1706 The following components of INSTALL-COMMAND are treated specially:
1708 -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation
1710 The rest of the components are interpreted as arguments to that command (only
1711 BSD-compatible install options are recognized)."
1716 "Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
1718 Link object files or libraries together to form another library, or to
1719 create an executable program.
1721 LINK-COMMAND is a command using the C compiler that you would use to create
1722 a program from several object files.
1724 The following components of LINK-COMMAND are treated specially:
1726 -all-static do not do any dynamic linking at all
1727 -avoid-version do not add a version suffix if possible
1728 -bindir BINDIR specify path to binaries directory (for systems where
1729 libraries must be found in the PATH setting at runtime)
1730 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
1731 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
1732 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
1733 -export-symbols SYMFILE
1734 try to export only the symbols listed in SYMFILE
1735 -export-symbols-regex REGEX
1736 try to export only the symbols matching REGEX
1737 -LLIBDIR search LIBDIR for required installed libraries
1738 -lNAME OUTPUT-FILE requires the installed library libNAME
1739 -module build a library that can dlopened
1740 -no-fast-install disable the fast-install mode
1741 -no-install link a not-installable executable
1742 -no-undefined declare that a library does not refer to external symbols
1743 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
1744 -objectlist FILE Use a list of object files found in FILE to specify objects
1745 -precious-files-regex REGEX
1746 don't remove output files matching REGEX
1747 -release RELEASE specify package release information
1748 -rpath LIBDIR the created library will eventually be installed in LIBDIR
1749 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
1750 -shared only do dynamic linking of libtool libraries
1751 -shrext SUFFIX override the standard shared library file extension
1752 -static do not do any dynamic linking of uninstalled libtool libraries
1753 -static-libtool-libs
1754 do not do any dynamic linking of libtool libraries
1755 -version-info CURRENT[:REVISION[:AGE]]
1756 specify library version info [each variable defaults to 0]
1757 -weak LIBNAME declare that the target provides the LIBNAME interface
1759 -Xcompiler FLAG pass linker-specific FLAG directly to the compiler
1761 -Xlinker FLAG pass linker-specific FLAG directly to the linker
1762 -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC)
1764 All other options (arguments beginning with \`-') are ignored.
1766 Every other argument is treated as a filename. Files ending in \`.la' are
1767 treated as uninstalled libtool libraries, other files are standard or library
1770 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
1771 only library objects (\`.lo' files) may be specified, and \`-rpath' is
1772 required, except when creating a convenience library.
1774 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
1775 using \`ar' and \`ranlib', or on Windows using \`lib'.
1777 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
1778 is created, otherwise an executable program is created."
1783 "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
1785 Remove libraries from an installation directory.
1787 RM is the name of the program to use to delete files associated with each FILE
1788 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
1791 If FILE is a libtool library, all the files associated with it are deleted.
1792 Otherwise, only FILE itself is deleted using RM."
1796 func_fatal_help
"invalid operation mode \`$mode'"
1801 $ECHO "Try \`$progname --help' for more information about other modes."
1804 # Now that we've collected a possible --mode arg, show help if necessary
1806 if test "$opt_help" = :; then
1811 for mode
in compile link execute
install finish uninstall clean
; do
1814 } | sed -n '1p; 2,$s/^Usage:/ or: /p'
1817 for mode
in compile link execute
install finish uninstall clean
; do
1823 /^When reporting/,/^Report/{
1828 /information about other modes/d
1829 /more detailed .*MODE/d
1830 s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
1836 # func_mode_execute arg...
1837 func_mode_execute
()
1840 # The first argument is the command name.
1843 func_fatal_help
"you must specify a COMMAND"
1845 # Handle -dlopen flags immediately.
1846 for file in $execute_dlfiles; do
1848 || func_fatal_help
"\`$file' is not a file"
1853 # Check to see that this really is a libtool archive.
1854 func_lalib_unsafe_p
"$file" \
1855 || func_fatal_help
"\`$lib' is not a valid libtool archive"
1857 # Read the libtool library.
1862 # Skip this library if it cannot be dlopened.
1863 if test -z "$dlname"; then
1864 # Warn if it was a shared library.
1865 test -n "$library_names" && \
1866 func_warning
"\`$file' was not linked with \`-export-dynamic'"
1870 func_dirname
"$file" "" "."
1871 dir
="$func_dirname_result"
1873 if test -f "$dir/$objdir/$dlname"; then
1876 if test ! -f "$dir/$dlname"; then
1877 func_fatal_error
"cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
1883 # Just add the directory containing the .lo file.
1884 func_dirname
"$file" "" "."
1885 dir
="$func_dirname_result"
1889 func_warning
"\`-dlopen' is ignored for non-libtool libraries and objects"
1894 # Get the absolute pathname.
1895 absdir
=`cd "$dir" && pwd`
1896 test -n "$absdir" && dir
="$absdir"
1898 # Now add the directory to shlibpath_var.
1899 if eval "test -z \"\$$shlibpath_var\""; then
1900 eval "$shlibpath_var=\"\$dir\""
1902 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
1906 # This variable tells wrapper scripts just to set shlibpath_var
1907 # rather than running their programs.
1908 libtool_execute_magic
="$magic"
1910 # Check if any of the arguments is a wrapper script.
1915 -* | *.la
| *.lo
) ;;
1917 # Do a test to see if this is really a libtool program.
1918 if func_ltwrapper_script_p
"$file"; then
1920 # Transform arg to wrapped name.
1921 file="$progdir/$program"
1922 elif func_ltwrapper_executable_p
"$file"; then
1923 func_ltwrapper_scriptname
"$file"
1924 func_source
"$func_ltwrapper_scriptname_result"
1925 # Transform arg to wrapped name.
1926 file="$progdir/$program"
1930 # Quote arguments (to preserve shell metacharacters).
1931 func_quote_for_eval
"$file"
1932 args
="$args $func_quote_for_eval_result"
1935 if test "X$opt_dry_run" = Xfalse
; then
1936 if test -n "$shlibpath_var"; then
1937 # Export the shlibpath_var.
1938 eval "export $shlibpath_var"
1941 # Restore saved environment variables
1942 for lt_var
in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
1944 eval "if test \"\${save_$lt_var+set}\" = set; then
1945 $lt_var=\$save_$lt_var; export $lt_var
1951 # Now prepare to actually exec the command.
1952 exec_cmd
="\$cmd$args"
1954 # Display what would be done.
1955 if test -n "$shlibpath_var"; then
1956 eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
1957 echo "export $shlibpath_var"
1964 test "$mode" = execute
&& func_mode_execute
${1+"$@"}
1967 # func_mode_finish arg...
1974 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
1977 libdirs
="$libdirs $dir"
1980 for libdir
in $libdirs; do
1981 if test -n "$finish_cmds"; then
1982 # Do each command in the finish commands.
1983 func_execute_cmds
"$finish_cmds" 'admincmds="$admincmds
1986 if test -n "$finish_eval"; then
1987 # Do the single finish_eval.
1988 eval cmds
=\"$finish_eval\"
1989 $opt_dry_run || eval "$cmds" || admincmds
="$admincmds
1995 # Exit here if they wanted silent mode.
1996 $opt_silent && exit $EXIT_SUCCESS
1998 echo "----------------------------------------------------------------------"
1999 echo "Libraries have been installed in:"
2000 for libdir
in $libdirs; do
2004 echo "If you ever happen to want to link against installed libraries"
2005 echo "in a given directory, LIBDIR, you must either use libtool, and"
2006 echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
2007 echo "flag during linking and do at least one of the following:"
2008 if test -n "$shlibpath_var"; then
2009 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
2010 echo " during execution"
2012 if test -n "$runpath_var"; then
2013 echo " - add LIBDIR to the \`$runpath_var' environment variable"
2014 echo " during linking"
2016 if test -n "$hardcode_libdir_flag_spec"; then
2018 eval flag
=\"$hardcode_libdir_flag_spec\"
2020 $ECHO " - use the \`$flag' linker flag"
2022 if test -n "$admincmds"; then
2023 $ECHO " - have your system administrator run these commands:$admincmds"
2025 if test -f /etc
/ld.so.conf
; then
2026 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
2030 echo "See any operating system documentation about shared libraries for"
2032 solaris2.
[6789]|solaris2.1
[0-9])
2033 echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
2037 echo "more information, such as the ld(1) and ld.so(8) manual pages."
2040 echo "----------------------------------------------------------------------"
2044 test "$mode" = finish
&& func_mode_finish
${1+"$@"}
2047 # func_mode_install arg...
2048 func_mode_install
()
2051 # There may be an optional sh(1) argument at the beginning of
2052 # install_prog (especially on Windows NT).
2053 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin
/sh
||
2054 # Allow the use of GNU shtool's install command.
2055 case $nonopt in *shtool
*) :;; *) false
;; esac; then
2056 # Aesthetically quote it.
2057 func_quote_for_eval
"$nonopt"
2058 install_prog
="$func_quote_for_eval_result "
2066 # The real first argument should be the name of the installation program.
2067 # Aesthetically quote it.
2068 func_quote_for_eval
"$arg"
2069 install_prog
="$install_prog$func_quote_for_eval_result"
2070 install_shared_prog
=$install_prog
2071 case " $install_prog " in
2072 *[\\\
/]cp\
*) install_cp
=: ;;
2073 *) install_cp
=false
;;
2076 # We need to accept at least all the BSD install flags.
2088 if test -n "$dest"; then
2089 files
="$files $dest"
2097 if $install_cp; then :; else
2111 # If the previous option needed an argument, then skip it.
2112 if test -n "$prev"; then
2113 if test "x$prev" = x
-m && test -n "$install_override_mode"; then
2114 arg2
=$install_override_mode
2125 # Aesthetically quote the argument.
2126 func_quote_for_eval
"$arg"
2127 install_prog
="$install_prog $func_quote_for_eval_result"
2128 if test -n "$arg2"; then
2129 func_quote_for_eval
"$arg2"
2131 install_shared_prog
="$install_shared_prog $func_quote_for_eval_result"
2134 test -z "$install_prog" && \
2135 func_fatal_help
"you must specify an install program"
2137 test -n "$prev" && \
2138 func_fatal_help
"the \`$prev' option requires an argument"
2140 if test -n "$install_override_mode" && $no_mode; then
2141 if $install_cp; then :; else
2142 func_quote_for_eval
"$install_override_mode"
2143 install_shared_prog
="$install_shared_prog -m $func_quote_for_eval_result"
2147 if test -z "$files"; then
2148 if test -z "$dest"; then
2149 func_fatal_help
"no file or destination specified"
2151 func_fatal_help
"you must specify a destination"
2155 # Strip any trailing slash from the destination.
2156 func_stripname
'' '/' "$dest"
2157 dest
=$func_stripname_result
2159 # Check to see that the destination is a directory.
2160 test -d "$dest" && isdir
=yes
2161 if test "$isdir" = yes; then
2165 func_dirname_and_basename
"$dest" "" "."
2166 destdir
="$func_dirname_result"
2167 destname
="$func_basename_result"
2169 # Not a directory, so check to see that there is only one file specified.
2170 set dummy
$files; shift
2171 test "$#" -gt 1 && \
2172 func_fatal_help
"\`$dest' is not a directory"
2175 [\\/]* | [A
-Za-z]:[\\/]*) ;;
2177 for file in $files; do
2181 func_fatal_help
"\`$destdir' must be an absolute directory name"
2188 # This variable tells wrapper scripts just to set variables rather
2189 # than running their programs.
2190 libtool_install_magic
="$magic"
2195 for file in $files; do
2197 # Do each installation.
2200 # Do the static libraries later.
2201 staticlibs
="$staticlibs $file"
2205 # Check to see that this really is a libtool archive.
2206 func_lalib_unsafe_p
"$file" \
2207 || func_fatal_help
"\`$file' is not a valid libtool archive"
2214 # Add the libdir to current_libdirs if it is the destination.
2215 if test "X$destdir" = "X$libdir"; then
2216 case "$current_libdirs " in
2218 *) current_libdirs
="$current_libdirs $libdir" ;;
2221 # Note the libdir as a future libdir.
2222 case "$future_libdirs " in
2224 *) future_libdirs
="$future_libdirs $libdir" ;;
2228 func_dirname
"$file" "/" ""
2229 dir
="$func_dirname_result"
2232 if test -n "$relink_command"; then
2233 # Determine the prefix the user has applied to our future dir.
2234 inst_prefix_dir
=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
2236 # Don't allow the user to place us outside of our expected
2237 # location b/c this prevents finding dependent libraries that
2238 # are installed to the same prefix.
2239 # At present, this check doesn't affect windows .dll's that
2240 # are installed into $libdir/../bin (currently, that works fine)
2241 # but it's something to keep an eye on.
2242 test "$inst_prefix_dir" = "$destdir" && \
2243 func_fatal_error
"error: cannot install \`$file' to a directory not ending in $libdir"
2245 if test -n "$inst_prefix_dir"; then
2246 # Stick the inst_prefix_dir data into the link command.
2247 relink_command
=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
2249 relink_command
=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
2252 func_warning
"relinking \`$file'"
2253 func_show_eval
"$relink_command" \
2254 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
2257 # See the names of the shared library.
2258 set dummy
$library_names; shift
2259 if test -n "$1"; then
2264 test -n "$relink_command" && srcname
="$realname"T
2266 # Install the shared library and build the symlinks.
2267 func_show_eval
"$install_shared_prog $dir/$srcname $destdir/$realname" \
2271 cygwin
* | mingw
* | pw32
* | cegcc
*)
2279 if test -n "$tstripme" && test -n "$striplib"; then
2280 func_show_eval
"$striplib $destdir/$realname" 'exit $?'
2283 if test "$#" -gt 0; then
2284 # Delete the old symlinks, and create new ones.
2285 # Try `ln -sf' first, because the `ln' binary might depend on
2286 # the symlink we replace! Solaris /bin/ln does not understand -f,
2287 # so we also need to try rm && ln -s.
2290 test "$linkname" != "$realname" \
2291 && func_show_eval
"(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
2295 # Do each command in the postinstall commands.
2296 lib
="$destdir/$realname"
2297 func_execute_cmds
"$postinstall_cmds" 'exit $?'
2300 # Install the pseudo-library for information purposes.
2301 func_basename
"$file"
2302 name
="$func_basename_result"
2303 instname
="$dir/$name"i
2304 func_show_eval
"$install_prog $instname $destdir/$name" 'exit $?'
2306 # Maybe install the static library, too.
2307 test -n "$old_library" && staticlibs
="$staticlibs $dir/$old_library"
2311 # Install (i.e. copy) a libtool object.
2313 # Figure out destination file name, if it wasn't already specified.
2314 if test -n "$destname"; then
2315 destfile
="$destdir/$destname"
2317 func_basename
"$file"
2318 destfile
="$func_basename_result"
2319 destfile
="$destdir/$destfile"
2322 # Deduce the name of the destination old-style object file.
2325 func_lo2o
"$destfile"
2326 staticdest
=$func_lo2o_result
2329 staticdest
="$destfile"
2333 func_fatal_help
"cannot copy a libtool object to \`$destfile'"
2337 # Install the libtool object if requested.
2338 test -n "$destfile" && \
2339 func_show_eval
"$install_prog $file $destfile" 'exit $?'
2341 # Install the old object if enabled.
2342 if test "$build_old_libs" = yes; then
2343 # Deduce the name of the old-style object file.
2345 staticobj
=$func_lo2o_result
2346 func_show_eval
"$install_prog \$staticobj \$staticdest" 'exit $?'
2352 # Figure out destination file name, if it wasn't already specified.
2353 if test -n "$destname"; then
2354 destfile
="$destdir/$destname"
2356 func_basename
"$file"
2357 destfile
="$func_basename_result"
2358 destfile
="$destdir/$destfile"
2361 # If the file is missing, and there is a .exe on the end, strip it
2362 # because it is most likely a libtool script we actually want to
2367 if test ! -f "$file"; then
2368 func_stripname
'' '.exe' "$file"
2369 file=$func_stripname_result
2375 # Do a test to see if this is really a libtool program.
2378 if func_ltwrapper_executable_p
"$file"; then
2379 func_ltwrapper_scriptname
"$file"
2380 wrapper
=$func_ltwrapper_scriptname_result
2382 func_stripname
'' '.exe' "$file"
2383 wrapper
=$func_stripname_result
2390 if func_ltwrapper_script_p
"$wrapper"; then
2394 func_source
"$wrapper"
2396 # Check the variables that should have been set.
2397 test -z "$generated_by_libtool_version" && \
2398 func_fatal_error
"invalid libtool wrapper script \`$wrapper'"
2401 for lib
in $notinst_deplibs; do
2402 # Check to see that each library is installed.
2404 if test -f "$lib"; then
2407 libfile
="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
2408 if test -n "$libdir" && test ! -f "$libfile"; then
2409 func_warning
"\`$lib' has not been installed in \`$libdir'"
2415 func_source
"$wrapper"
2418 if test "$fast_install" = no
&& test -n "$relink_command"; then
2420 if test "$finalize" = yes; then
2421 tmpdir
=`func_mktempdir`
2422 func_basename
"$file$stripped_ext"
2423 file="$func_basename_result"
2424 outputname
="$tmpdir/$file"
2425 # Replace the output file specification.
2426 relink_command
=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
2429 func_quote_for_expand
"$relink_command"
2430 eval "func_echo $func_quote_for_expand_result"
2432 if eval "$relink_command"; then :
2434 func_error
"error: relink \`$file' with the above command before installing it"
2435 $opt_dry_run || ${RM}r
"$tmpdir"
2440 func_warning
"cannot relink \`$file'"
2444 # Install the binary that we compiled earlier.
2445 file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
2449 # remove .exe since cygwin /usr/bin/install will append another
2451 case $install_prog,$host in
2452 */usr
/bin
/install*,*cygwin
*)
2453 case $file:$destfile in
2458 destfile
=$destfile.exe
2461 func_stripname
'' '.exe' "$destfile"
2462 destfile
=$func_stripname_result
2467 func_show_eval
"$install_prog\$stripme \$file \$destfile" 'exit $?'
2468 $opt_dry_run || if test -n "$outputname"; then
2475 for file in $staticlibs; do
2476 func_basename
"$file"
2477 name
="$func_basename_result"
2479 # Set up the ranlib parameters.
2480 oldlib
="$destdir/$name"
2482 func_show_eval
"$install_prog \$file \$oldlib" 'exit $?'
2484 if test -n "$stripme" && test -n "$old_striplib"; then
2485 func_show_eval
"$old_striplib $oldlib" 'exit $?'
2488 # Do each command in the postinstall commands.
2489 func_execute_cmds
"$old_postinstall_cmds" 'exit $?'
2492 test -n "$future_libdirs" && \
2493 func_warning
"remember to run \`$progname --finish$future_libdirs'"
2495 if test -n "$current_libdirs"; then
2496 # Maybe just do a dry run.
2497 $opt_dry_run && current_libdirs
=" -n$current_libdirs"
2498 exec_cmd
='$SHELL $progpath $preserve_args --finish$current_libdirs'
2504 test "$mode" = install && func_mode_install
${1+"$@"}
2507 # func_generate_dlsyms outputname originator pic_p
2508 # Extract symbols from dlprefiles and create ${outputname}S.o with
2509 # a dlpreopen symbol table.
2510 func_generate_dlsyms
()
2516 my_prefix
=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
2519 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no
; then
2520 if test -n "$NM" && test -n "$global_symbol_pipe"; then
2521 my_dlsyms
="${my_outputname}S.c"
2523 func_error
"not configured to extract global symbols from dlpreopened files"
2527 if test -n "$my_dlsyms"; then
2531 # Discover the nlist of each of the dlfiles.
2532 nlist
="$output_objdir/${my_outputname}.nm"
2534 func_show_eval
"$RM $nlist ${nlist}S ${nlist}T"
2536 # Parse the name list into a source file.
2537 func_verbose
"creating $output_objdir/$my_dlsyms"
2539 $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
2540 /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
2541 /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
2547 #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
2548 #pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
2551 /* External symbol declarations for the compiler. */\
2554 if test "$dlself" = yes; then
2555 func_verbose
"generating symbol list for \`$output'"
2557 $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
2559 # Add our own program objects to the symbol list.
2560 progfiles
=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
2561 for progfile
in $progfiles; do
2562 func_verbose
"extracting global C symbols from \`$progfile'"
2563 $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
2566 if test -n "$exclude_expsyms"; then
2568 eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
2569 eval '$MV "$nlist"T "$nlist"'
2573 if test -n "$export_symbols_regex"; then
2575 eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
2576 eval '$MV "$nlist"T "$nlist"'
2580 # Prepare the list of exported symbols
2581 if test -z "$export_symbols"; then
2582 export_symbols
="$output_objdir/$outputname.exp"
2585 eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
2587 *cygwin
* | *mingw
* | *cegcc
* )
2588 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
2589 eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
2595 eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
2596 eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
2597 eval '$MV "$nlist"T "$nlist"'
2599 *cygwin
* | *mingw
* | *cegcc
* )
2600 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
2601 eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
2608 for dlprefile
in $dlprefiles; do
2609 func_verbose
"extracting global C symbols from \`$dlprefile'"
2610 func_basename
"$dlprefile"
2611 name
="$func_basename_result"
2613 eval '$ECHO ": $name " >> "$nlist"'
2614 eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
2619 # Make sure we have at least an empty file.
2620 test -f "$nlist" || : > "$nlist"
2622 if test -n "$exclude_expsyms"; then
2623 $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
2624 $MV "$nlist"T
"$nlist"
2627 # Try sorting and uniquifying the output.
2628 if $GREP -v "^: " < "$nlist" |
2629 if sort -k 3 </dev
/null
>/dev
/null
2>&1; then
2634 uniq > "$nlist"S
; then
2637 $GREP -v "^: " < "$nlist" > "$nlist"S
2640 if test -f "$nlist"S
; then
2641 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
2643 echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
2646 echo >> "$output_objdir/$my_dlsyms" "\
2648 /* The mapping between symbol names and symbols. */
2655 *cygwin
* | *mingw
* | *cegcc
* )
2656 echo >> "$output_objdir/$my_dlsyms" "\
2657 /* DATA imports from DLLs on WIN32 con't be const, because
2658 runtime relocations are performed -- see ld's documentation
2659 on pseudo-relocs. */"
2662 echo >> "$output_objdir/$my_dlsyms" "\
2663 /* This system does not cope well with relocations in const data */"
2666 lt_dlsym_const
=const
;;
2669 echo >> "$output_objdir/$my_dlsyms" "\
2670 extern $lt_dlsym_const lt_dlsymlist
2671 lt_${my_prefix}_LTX_preloaded_symbols[];
2672 $lt_dlsym_const lt_dlsymlist
2673 lt_${my_prefix}_LTX_preloaded_symbols[] =
2675 { \"$my_originator\", (void *) 0 },"
2677 case $need_lib_prefix in
2679 eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
2682 eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
2685 echo >> "$output_objdir/$my_dlsyms" "\
2689 /* This works around a problem in FreeBSD linker */
2690 #ifdef FREEBSD_WORKAROUND
2691 static const void *lt_preloaded_setup() {
2692 return lt_${my_prefix}_LTX_preloaded_symbols;
2702 pic_flag_for_symtable
=
2703 case "$compile_command " in
2707 # compiling the symbol table file with pic_flag works around
2708 # a FreeBSD bug that causes programs to crash when -lm is
2709 # linked before any other PIC object. But we must not use
2710 # pic_flag when linking with -static. The problem exists in
2711 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
2712 *-*-freebsd2*|*-*-freebsd3.0
*|*-*-freebsdelf3.0
*)
2713 pic_flag_for_symtable
=" $pic_flag -DFREEBSD_WORKAROUND" ;;
2715 pic_flag_for_symtable
=" $pic_flag" ;;
2717 if test "X$my_pic_p" != Xno
; then
2718 pic_flag_for_symtable
=" $pic_flag"
2725 for arg
in $LTCFLAGS; do
2727 -pie | -fpie | -fPIE) ;;
2728 *) symtab_cflags
="$symtab_cflags $arg" ;;
2732 # Now compile the dynamic symbol file.
2733 func_show_eval
'(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
2735 # Clean up the generated files.
2736 func_show_eval
'$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
2738 # Transform the symbol file into the correct name.
2739 symfileobj
="$output_objdir/${my_outputname}S.$objext"
2741 *cygwin
* | *mingw
* | *cegcc
* )
2742 if test -f "$output_objdir/$my_outputname.def"; then
2743 compile_command
=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
2744 finalize_command
=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
2746 compile_command
=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
2747 finalize_command
=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
2751 compile_command
=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
2752 finalize_command
=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
2757 func_fatal_error
"unknown suffix for \`$my_dlsyms'"
2761 # We keep going just in case the user didn't refer to
2762 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
2763 # really was required.
2765 # Nullify the symbol file.
2766 compile_command
=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
2767 finalize_command
=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
2771 # func_win32_libid arg
2772 # return the library type of file 'arg'
2774 # Need a lot of goo to handle *both* DLLs and import libs
2775 # Has to be a shell function in order to 'eat' the argument
2776 # that is supplied when $file_magic_command is called.
2777 # Despite the name, also deal with 64 bit binaries.
2781 win32_libid_type
="unknown"
2782 win32_fileres
=`file -L $1 2>/dev/null`
2783 case $win32_fileres in
2784 *ar\ archive\ import\ library
*) # definitely import
2785 win32_libid_type
="x86 archive import"
2787 *ar\ archive
*) # could be an import, or static
2788 # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
2789 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev
/null
|
2790 $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev
/null
; then
2791 win32_nmres
=`eval $NM -f posix -A $1 |
2800 case $win32_nmres in
2801 import
*) win32_libid_type
="x86 archive import";;
2802 *) win32_libid_type
="x86 archive static";;
2807 win32_libid_type
="x86 DLL"
2809 *executable
*) # but shell scripts are "executable" too...
2810 case $win32_fileres in
2811 *MS\ Windows\ PE\ Intel
*)
2812 win32_libid_type
="x86 DLL"
2817 $ECHO "$win32_libid_type"
2822 # func_extract_an_archive dir oldlib
2823 func_extract_an_archive
()
2826 f_ex_an_ar_dir
="$1"; shift
2827 f_ex_an_ar_oldlib
="$1"
2828 if test "$lock_old_archive_extraction" = yes; then
2829 lockfile
=$f_ex_an_ar_oldlib.lock
2830 until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev
/null
; do
2831 func_echo
"Waiting for $lockfile to be removed"
2835 func_show_eval
"(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
2836 'stat=$?; rm -f "$lockfile"; exit $stat'
2837 if test "$lock_old_archive_extraction" = yes; then
2838 $opt_dry_run || rm -f "$lockfile"
2840 if ($AR t
"$f_ex_an_ar_oldlib" | sort | sort -uc >/dev
/null
2>&1); then
2843 func_fatal_error
"object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
2848 # func_extract_archives gentop oldlib ...
2849 func_extract_archives
()
2852 my_gentop
="$1"; shift
2853 my_oldlibs
=${1+"$@"}
2859 for my_xlib
in $my_oldlibs; do
2860 # Extract the objects.
2862 [\\/]* | [A
-Za-z]:[\\/]*) my_xabs
="$my_xlib" ;;
2863 *) my_xabs
=`pwd`"/$my_xlib" ;;
2865 func_basename
"$my_xlib"
2866 my_xlib
="$func_basename_result"
2869 case " $extracted_archives " in
2871 func_arith
$extracted_serial + 1
2872 extracted_serial
=$func_arith_result
2873 my_xlib_u
=lt
$extracted_serial-$my_xlib ;;
2877 extracted_archives
="$extracted_archives $my_xlib_u"
2878 my_xdir
="$my_gentop/$my_xlib_u"
2880 func_mkdir_p
"$my_xdir"
2884 func_verbose
"Extracting $my_xabs"
2885 # Do not bother doing anything if just a dry run
2887 darwin_orig_dir
=`pwd`
2888 cd $my_xdir || exit $?
2889 darwin_archive
=$my_xabs
2891 darwin_base_archive
=`basename "$darwin_archive"`
2892 darwin_arches
=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
2893 if test -n "$darwin_arches"; then
2894 darwin_arches
=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
2896 func_verbose
"$darwin_base_archive has multiple architectures $darwin_arches"
2897 for darwin_arch
in $darwin_arches ; do
2898 func_mkdir_p
"unfat-$$/${darwin_base_archive}-${darwin_arch}"
2899 $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
2900 cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
2901 func_extract_an_archive
"`pwd`" "${darwin_base_archive}"
2903 $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
2904 done # $darwin_arches
2905 ## Okay now we've a bunch of thin objects, gotta fatten them up :)
2906 darwin_filelist
=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
2909 for darwin_file
in $darwin_filelist; do
2910 darwin_files
=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
2911 $LIPO -create -output "$darwin_file" $darwin_files
2912 done # $darwin_filelist
2914 cd "$darwin_orig_dir"
2917 func_extract_an_archive
"$my_xdir" "$my_xabs"
2922 func_extract_an_archive
"$my_xdir" "$my_xabs"
2925 my_oldobjs
="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
2928 func_extract_archives_result
="$my_oldobjs"
2932 # func_emit_wrapper [arg=no]
2934 # Emit a libtool wrapper script on stdout.
2935 # Don't directly open a file because we may want to
2936 # incorporate the script contents within a cygwin/mingw
2937 # wrapper executable. Must ONLY be called from within
2938 # func_mode_link because it depends on a number of variables
2941 # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
2942 # variable will take. If 'yes', then the emitted script
2943 # will assume that the directory in which it is stored is
2944 # the $objdir directory. This is a cygwin/mingw-specific
2946 func_emit_wrapper
()
2948 func_emit_wrapper_arg1
=${1-no}
2953 # $output - temporary wrapper script for $objdir/$outputname
2954 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
2956 # The $output program cannot be directly executed until all the libtool
2957 # libraries that it depends on are installed.
2959 # This wrapper script should never be moved out of the build directory.
2960 # If it is, it will not operate correctly.
2962 # Sed substitution that helps us do robust quoting. It backslashifies
2963 # metacharacters that are still active within double-quoted strings.
2964 sed_quote_subst='$sed_quote_subst'
2966 # Be Bourne compatible
2967 if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
2970 # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
2971 # is contrary to our usage. Disable this feature.
2972 alias -g '\${1+\"\$@\"}'='\"\$@\"'
2973 setopt NO_GLOB_SUBST
2975 case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
2977 BIN_SH=xpg4; export BIN_SH # for Tru64
2978 DUALCASE=1; export DUALCASE # for MKS sh
2980 # The HP-UX ksh and POSIX shell print the target directory to stdout
2982 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
2984 relink_command=\"$relink_command\"
2986 # This environment variable determines our operation mode.
2987 if test \"\$libtool_install_magic\" = \"$magic\"; then
2988 # install mode needs the following variables:
2989 generated_by_libtool_version='$macro_version'
2990 notinst_deplibs='$notinst_deplibs'
2992 # When we are sourced in execute mode, \$file and \$ECHO are already set.
2993 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2996 qECHO
=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
2999 # A function that is used when there is no print builtin or printf.
3000 func_fallback_echo ()
3002 eval 'cat <<_LTECHO_EOF
3009 # Very basic option parsing. These options are (a) specific to
3010 # the libtool wrapper, (b) are identical between the wrapper
3011 # /script/ and the wrapper /executable/ which is used only on
3012 # windows platforms, and (c) all begin with the string "--lt-"
3013 # (application programs are unlikely to have options which match
3016 # There are only two supported options: --lt-debug and
3017 # --lt-dump-script. There is, deliberately, no --lt-help.
3019 # The first argument to this parsing function should be the
3020 # script's $0 value, followed by "$@
".
3022 func_parse_lt_options ()
3028 case \"\$lt_opt\" in
3029 --lt-debug) lt_option_debug=1 ;;
3031 lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
3032 test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
3033 lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
3034 cat \"\$lt_dump_D/\$lt_dump_F\"
3038 \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
3044 # Print the debug banner immediately:
3045 if test -n \"\$lt_option_debug\"; then
3046 echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
3050 # Used when --lt-debug. Prints its arguments to stdout
3051 # (redirection is the responsibility of the caller)
3052 func_lt_dump_args ()
3057 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
3058 lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
3062 # Core function for launching the target application
3063 func_exec_program_core ()
3067 # Backslashes separate directories on plain windows
3068 *-*-mingw | *-*-os2* | *-cegcc*)
3070 if test -n \"\$lt_option_debug\"; then
3071 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
3072 func_lt_dump_args \${1+\"\$@\"} 1>&2
3074 exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
3080 if test -n \"\$lt_option_debug\"; then
3081 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
3082 func_lt_dump_args \${1+\"\$@\"} 1>&2
3084 exec \"\$progdir/\$program\" \${1+\"\$@\"}
3089 \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
3093 # A function to encapsulate launching the target application
3094 # Strips options in the --lt-* namespace from \$@ and
3095 # launches target application with the remaining arguments.
3096 func_exec_program ()
3102 *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
3106 func_exec_program_core \${1+\"\$@\"}
3110 func_parse_lt_options \"\$0\" \${1+\"\$@\"}
3112 # Find the directory that this script lives in.
3113 thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
3114 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
3116 # Follow symbolic links until we get to the real thisdir.
3117 file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
3118 while test -n \"\$file\"; do
3119 destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
3121 # If there was a directory component, then change thisdir.
3122 if test \"x\$destdir\" != \"x\$file\"; then
3123 case \"\$destdir\" in
3124 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
3125 *) thisdir=\"\$thisdir/\$destdir\" ;;
3129 file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
3130 file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
3133 # Usually 'no', except on cygwin/mingw when embedded into
3135 WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
3136 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
3137 # special case for '.'
3138 if test \"\$thisdir\" = \".\"; then
3141 # remove .libs from thisdir
3142 case \"\$thisdir\" in
3143 *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
3144 $objdir ) thisdir=. ;;
3148 # Try to get the absolute directory name.
3149 absdir=\`cd \"\$thisdir\" && pwd\`
3150 test -n \"\$absdir\" && thisdir=\"\$absdir\"
3153 if test "$fast_install" = yes; then
3155 program=lt-'$outputname'$exeext
3156 progdir=\"\$thisdir/$objdir\"
3158 if test ! -f \"\$progdir/\$program\" ||
3159 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
3160 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
3162 file=\"\$\$-\$program\"
3164 if test ! -d \"\$progdir\"; then
3165 $MKDIR \"\$progdir\"
3167 $RM \"\$progdir/\$file\"
3172 # relink executable if necessary
3173 if test -n \"\$relink_command\"; then
3174 if relink_command_output=\`eval \$relink_command 2>&1\`; then :
3176 $ECHO \"\$relink_command_output\" >&2
3177 $RM \"\$progdir/\$file\"
3182 $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
3183 { $RM \"\$progdir/\$program\";
3184 $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
3185 $RM \"\$progdir/\$file\"
3189 program='$outputname'
3190 progdir=\"\$thisdir/$objdir\"
3196 if test -f \"\$progdir/\$program\"; then"
3198 # Export our shlibpath_var if we have one.
3199 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
3201 # Add our own library path to $shlibpath_var
3202 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
3204 # Some systems cannot cope with colon-terminated $shlibpath_var
3205 # The second colon is a workaround for a bug in BeOS R4 sed
3206 $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
3208 export $shlibpath_var
3212 # fixup the dll searchpath if we need to.
3213 if test -n "$dllsearchpath"; then
3215 # Add the dll search path components to the executable PATH
3216 PATH=$dllsearchpath:\$PATH
3221 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3222 # Run the actual program with our arguments.
3223 func_exec_program \${1+\"\$@\"}
3226 # The program doesn't exist.
3227 \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
3228 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
3229 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
3237 # func_to_host_path arg
3239 # Convert paths to host format when used with build tools.
3240 # Intended for use with "native" mingw (where libtool itself
3241 # is running under the msys shell), or in the following cross-
3242 # build environments:
3244 # mingw (msys) mingw [e.g. native]
3247 # where wine is equipped with the `winepath' executable.
3248 # In the native mingw case, the (msys) shell automatically
3249 # converts paths for any non-msys applications it launches,
3250 # but that facility isn't available from inside the cwrapper.
3251 # Similar accommodations are necessary for $host mingw and
3252 # $build cygwin. Calling this function does no harm for other
3253 # $host/$build combinations not listed above.
3255 # ARG is the path (on $build) that should be converted to
3256 # the proper representation for $host. The result is stored
3257 # in $func_to_host_path_result.
3258 func_to_host_path
()
3260 func_to_host_path_result
="$1"
3261 if test -n "$1"; then
3264 lt_sed_naive_backslashify
='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
3266 *mingw
* ) # actually, msys
3267 # awkward: cmd appends spaces to result
3268 func_to_host_path_result
=`( cmd //c echo "$1" ) 2>/dev/null |
3269 $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
3272 func_to_host_path_result
=`cygpath -w "$1" |
3273 $SED -e "$lt_sed_naive_backslashify"`
3276 # Unfortunately, winepath does not exit with a non-zero
3277 # error code, so we are forced to check the contents of
3278 # stdout. On the other hand, if the command is not
3279 # found, the shell will set an exit code of 127 and print
3280 # *an error message* to stdout. So we must check for both
3281 # error code of zero AND non-empty stdout, which explains
3282 # the odd construction:
3283 func_to_host_path_tmp1
=`winepath -w "$1" 2>/dev/null`
3284 if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
3285 func_to_host_path_result
=`$ECHO "$func_to_host_path_tmp1" |
3286 $SED -e "$lt_sed_naive_backslashify"`
3288 # Allow warning below.
3289 func_to_host_path_result
=
3293 if test -z "$func_to_host_path_result" ; then
3294 func_error
"Could not determine host path corresponding to"
3296 func_error
"Continuing, but uninstalled executables may not work."
3298 func_to_host_path_result
="$1"
3304 # end: func_to_host_path
3306 # func_to_host_pathlist arg
3308 # Convert pathlists to host format when used with build tools.
3309 # See func_to_host_path(), above. This function supports the
3310 # following $build/$host combinations (but does no harm for
3311 # combinations not listed here):
3313 # mingw (msys) mingw [e.g. native]
3317 # Path separators are also converted from $build format to
3318 # $host format. If ARG begins or ends with a path separator
3319 # character, it is preserved (but converted to $host format)
3322 # ARG is a pathlist (on $build) that should be converted to
3323 # the proper representation on $host. The result is stored
3324 # in $func_to_host_pathlist_result.
3325 func_to_host_pathlist
()
3327 func_to_host_pathlist_result
="$1"
3328 if test -n "$1"; then
3331 lt_sed_naive_backslashify
='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
3332 # Remove leading and trailing path separator characters from
3333 # ARG. msys behavior is inconsistent here, cygpath turns them
3334 # into '.;' and ';.', and winepath ignores them completely.
3335 func_stripname
: : "$1"
3336 func_to_host_pathlist_tmp1
=$func_stripname_result
3338 *mingw
* ) # Actually, msys.
3339 # Awkward: cmd appends spaces to result.
3340 func_to_host_pathlist_result
=`
3341 ( cmd //c echo "$func_to_host_pathlist_tmp1" ) 2>/dev/null |
3342 $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
3345 func_to_host_pathlist_result
=`cygpath -w -p "$func_to_host_pathlist_tmp1" |
3346 $SED -e "$lt_sed_naive_backslashify"`
3349 # unfortunately, winepath doesn't convert pathlists
3350 func_to_host_pathlist_result
=""
3351 func_to_host_pathlist_oldIFS
=$IFS
3353 for func_to_host_pathlist_f
in $func_to_host_pathlist_tmp1 ; do
3354 IFS
=$func_to_host_pathlist_oldIFS
3355 if test -n "$func_to_host_pathlist_f" ; then
3356 func_to_host_path
"$func_to_host_pathlist_f"
3357 if test -n "$func_to_host_path_result" ; then
3358 if test -z "$func_to_host_pathlist_result" ; then
3359 func_to_host_pathlist_result
="$func_to_host_path_result"
3361 func_append func_to_host_pathlist_result
";$func_to_host_path_result"
3366 IFS
=$func_to_host_pathlist_oldIFS
3369 if test -z "$func_to_host_pathlist_result"; then
3370 func_error
"Could not determine the host path(s) corresponding to"
3372 func_error
"Continuing, but uninstalled executables may not work."
3373 # Fallback. This may break if $1 contains DOS-style drive
3374 # specifications. The fix is not to complicate the expression
3375 # below, but for the user to provide a working wine installation
3376 # with winepath so that path translation in the cross-to-mingw
3377 # case works properly.
3378 lt_replace_pathsep_nix_to_dos
="s|:|;|g"
3379 func_to_host_pathlist_result
=`echo "$func_to_host_pathlist_tmp1" |\
3380 $SED -e "$lt_replace_pathsep_nix_to_dos"`
3382 # Now, add the leading and trailing path separators back
3384 :* ) func_to_host_pathlist_result
=";$func_to_host_pathlist_result"
3388 *: ) func_append func_to_host_pathlist_result
";"
3395 # end: func_to_host_pathlist
3397 # func_emit_cwrapperexe_src
3398 # emit the source code for a wrapper executable on stdout
3399 # Must ONLY be called from within func_mode_link because
3400 # it depends on a number of variable set therein.
3401 func_emit_cwrapperexe_src
()
3405 /* $cwrappersource - temporary wrapper executable for $objdir/$outputname
3406 Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
3408 The $output program cannot be directly executed until all the libtool
3409 libraries that it depends on are installed.
3411 This wrapper executable should never be moved out of the build directory.
3412 If it is, it will not operate correctly.
3417 # define _CRT_SECURE_NO_DEPRECATE 1
3422 # include <direct.h>
3423 # include <process.h>
3426 # include <unistd.h>
3427 # include <stdint.h>
3439 #include <sys/stat.h>
3441 /* declarations of non-ANSI functions */
3442 #if defined(__MINGW32__)
3443 # ifdef __STRICT_ANSI__
3444 int _putenv (const char *);
3446 #elif defined(__CYGWIN__)
3447 # ifdef __STRICT_ANSI__
3448 char *realpath (const char *, char *);
3449 int putenv (char *);
3450 int setenv (const char *, const char *, int);
3452 /* #elif defined (other platforms) ... */
3455 /* portability defines, excluding path handling macros */
3456 #if defined(_MSC_VER)
3457 # define setmode _setmode
3459 # define chmod _chmod
3460 # define getcwd _getcwd
3461 # define putenv _putenv
3462 # define S_IXUSR _S_IEXEC
3463 # ifndef _INTPTR_T_DEFINED
3464 # define _INTPTR_T_DEFINED
3465 # define intptr_t int
3467 #elif defined(__MINGW32__)
3468 # define setmode _setmode
3470 # define chmod _chmod
3471 # define getcwd _getcwd
3472 # define putenv _putenv
3473 #elif defined(__CYGWIN__)
3474 # define HAVE_SETENV
3475 # define FOPEN_WB "wb"
3476 /* #elif defined (other platforms) ... */
3479 #if defined(PATH_MAX)
3480 # define LT_PATHMAX PATH_MAX
3481 #elif defined(MAXPATHLEN)
3482 # define LT_PATHMAX MAXPATHLEN
3484 # define LT_PATHMAX 1024
3494 /* path handling portability macros */
3495 #ifndef DIR_SEPARATOR
3496 # define DIR_SEPARATOR '/'
3497 # define PATH_SEPARATOR ':'
3500 #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
3502 # define HAVE_DOS_BASED_FILE_SYSTEM
3503 # define FOPEN_WB "wb"
3504 # ifndef DIR_SEPARATOR_2
3505 # define DIR_SEPARATOR_2 '\\'
3507 # ifndef PATH_SEPARATOR_2
3508 # define PATH_SEPARATOR_2 ';'
3512 #ifndef DIR_SEPARATOR_2
3513 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
3514 #else /* DIR_SEPARATOR_2 */
3515 # define IS_DIR_SEPARATOR(ch) \
3516 (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
3517 #endif /* DIR_SEPARATOR_2 */
3519 #ifndef PATH_SEPARATOR_2
3520 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
3521 #else /* PATH_SEPARATOR_2 */
3522 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
3523 #endif /* PATH_SEPARATOR_2 */
3526 # define FOPEN_WB "w"
3529 # define _O_BINARY 0
3532 #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
3533 #define XFREE(stale) do { \
3534 if (stale) { free ((void *) stale); stale = 0; } \
3537 #if defined(LT_DEBUGWRAPPER)
3538 static int lt_debug = 1;
3540 static int lt_debug = 0;
3543 const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
3545 void *xmalloc (size_t num);
3546 char *xstrdup (const char *string);
3547 const char *base_name (const char *name);
3548 char *find_executable (const char *wrapper);
3549 char *chase_symlinks (const char *pathspec);
3550 int make_executable (const char *path);
3551 int check_executable (const char *path);
3552 char *strendzap (char *str, const char *pat);
3553 void lt_debugprintf (const char *file, int line, const char *fmt, ...);
3554 void lt_fatal (const char *file, int line, const char *message, ...);
3555 static const char *nonnull (const char *s);
3556 static const char *nonempty (const char *s);
3557 void lt_setenv (const char *name, const char *value);
3558 char *lt_extend_str (const char *orig_value, const char *add, int to_end);
3559 void lt_update_exe_path (const char *name, const char *value);
3560 void lt_update_lib_path (const char *name, const char *value);
3561 char **prepare_spawn (char **argv);
3562 void lt_dump_script (FILE *f);
3566 const char * MAGIC_EXE = "$magic_exe";
3567 const char * LIB_PATH_VARNAME = "$shlibpath_var";
3570 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
3571 func_to_host_pathlist "$temp_rpath"
3573 const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result";
3577 const char
* LIB_PATH_VALUE
= "";
3581 if test -n "$dllsearchpath"; then
3582 func_to_host_pathlist
"$dllsearchpath:"
3584 const char * EXE_PATH_VARNAME = "PATH";
3585 const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result";
3589 const char * EXE_PATH_VARNAME = "";
3590 const char * EXE_PATH_VALUE = "";
3594 if test "$fast_install" = yes; then
3596 const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
3600 const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
3607 #define LTWRAPPER_OPTION_PREFIX "--lt-"
3609 static const char
*ltwrapper_option_prefix
= LTWRAPPER_OPTION_PREFIX
;
3610 static const char
*dumpscript_opt
= LTWRAPPER_OPTION_PREFIX
"dump-script";
3611 static const char
*debug_opt
= LTWRAPPER_OPTION_PREFIX
"debug";
3614 main
(int argc
, char
*argv
[])
3619 char
*actual_cwrapper_path
;
3620 char
*actual_cwrapper_name
;
3623 intptr_t rval
= 127;
3627 program_name
= (char
*) xstrdup
(base_name
(argv
[0]));
3628 newargz
= XMALLOC
(char
*, argc
+ 1);
3630 /* very simple arg parsing
; don
't want to rely on getopt
3631 * also, copy all non cwrapper options to newargz, except
3632 * argz[0], which is handled differently
3635 for (i = 1; i < argc; i++)
3637 if (strcmp (argv[i], dumpscript_opt) == 0)
3641 *mingw* | *cygwin* )
3642 # make stdout use "unix" line endings
3643 echo " setmode(1,_O_BINARY);"
3648 lt_dump_script (stdout);
3651 if (strcmp (argv[i], debug_opt) == 0)
3656 if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
3658 /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
3659 namespace, but it is not one of the ones we know about and
3660 have already dealt with, above (inluding dump-script), then
3661 report an error. Otherwise, targets might begin to believe
3662 they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
3663 namespace. The first time any user complains about this, we'll
3664 need to
make LTWRAPPER_OPTION_PREFIX a configure
-time option
3665 or a configure.ac
-settable value.
3667 lt_fatal
(__FILE__
, __LINE__
,
3668 "unrecognized %s option: '%s'",
3669 ltwrapper_option_prefix
, argv
[i
]);
3672 newargz
[++newargc
] = xstrdup
(argv
[i
]);
3674 newargz
[++newargc
] = NULL
;
3678 /* The GNU banner must be the first non-error debug message */
3679 lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
3682 lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
3683 lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
3685 tmp_pathspec = find_executable (argv[0]);
3686 if (tmp_pathspec == NULL)
3687 lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
3688 lt_debugprintf (__FILE__, __LINE__,
3689 "(main) found exe (before symlink chase) at: %s\n",
3692 actual_cwrapper_path = chase_symlinks (tmp_pathspec);
3693 lt_debugprintf (__FILE__, __LINE__,
3694 "(main) found exe (after symlink chase) at: %s\n",
3695 actual_cwrapper_path);
3696 XFREE (tmp_pathspec);
3698 actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
3699 strendzap (actual_cwrapper_path, actual_cwrapper_name);
3701 /* wrapper name transforms */
3702 strendzap (actual_cwrapper_name, ".exe");
3703 tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
3704 XFREE (actual_cwrapper_name);
3705 actual_cwrapper_name = tmp_pathspec;
3708 /* target_name transforms -- use actual target program name; might have lt- prefix */
3709 target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
3710 strendzap (target_name, ".exe");
3711 tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
3712 XFREE (target_name);
3713 target_name = tmp_pathspec;
3716 lt_debugprintf (__FILE__, __LINE__,
3717 "(main) libtool target name: %s\n",
3723 XMALLOC (char, (strlen (actual_cwrapper_path) +
3724 strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
3725 strcpy (newargz[0], actual_cwrapper_path);
3726 strcat (newargz[0], "$objdir");
3727 strcat (newargz[0], "/");
3731 /* stop here
, and copy so we don
't have to do this twice */
3732 tmp_pathspec = xstrdup (newargz[0]);
3734 /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
3735 strcat (newargz[0], actual_cwrapper_name);
3737 /* DO want the lt- prefix here if it exists, so use target_name */
3738 lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
3739 XFREE (tmp_pathspec);
3740 tmp_pathspec = NULL;
3748 while ((p = strchr (newargz[0], '\\')) != NULL)
3752 while ((p = strchr (lt_argv_zero, '\\')) != NULL)
3762 XFREE (target_name);
3763 XFREE (actual_cwrapper_path);
3764 XFREE (actual_cwrapper_name);
3766 lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
3767 lt_setenv ("DUALCASE", "1"); /* for MSK sh */
3768 lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
3769 lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
3771 lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
3772 nonnull (lt_argv_zero));
3773 for (i = 0; i < newargc; i++)
3775 lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
3776 i, nonnull (newargz[i]));
3784 /* execv doesn't actually work on mingw as expected on unix
*/
3785 newargz
= prepare_spawn
(newargz
);
3786 rval
= _spawnv
(_P_WAIT
, lt_argv_zero
, (const char
* const
*) newargz
);
3789 /* failed to start process
*/
3790 lt_debugprintf
(__FILE__
, __LINE__
,
3791 "(main) failed to launch target \"%s\": %s\n",
3792 lt_argv_zero
, nonnull
(strerror
(errno
)));
3800 execv (lt_argv_zero, newargz);
3801 return rval; /* =127, but avoids unused variable warning */
3810 xmalloc
(size_t num
)
3812 void
*p
= (void
*) malloc
(num
);
3814 lt_fatal
(__FILE__
, __LINE__
, "memory exhausted");
3820 xstrdup
(const char
*string
)
3822 return string ? strcpy
((char
*) xmalloc
(strlen
(string
) + 1),
3827 base_name
(const char
*name
)
3831 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
3832 /* Skip over the disk name
in MSDOS pathnames.
*/
3833 if (isalpha
((unsigned char
) name
[0]) && name
[1] == ':')
3837 for (base
= name
; *name
; name
++)
3838 if (IS_DIR_SEPARATOR
(*name
))
3844 check_executable
(const char
*path
)
3848 lt_debugprintf
(__FILE__
, __LINE__
, "(check_executable): %s\n",
3850 if ((!path
) || (!*path
))
3853 if ((stat
(path
, &st
) >= 0)
3854 && (st.st_mode
& (S_IXUSR
| S_IXGRP
| S_IXOTH
)))
3861 make_executable
(const char
*path
)
3866 lt_debugprintf
(__FILE__
, __LINE__
, "(make_executable): %s\n",
3868 if ((!path
) || (!*path
))
3871 if (stat
(path
, &st
) >= 0)
3873 rval
= chmod (path
, st.st_mode
| S_IXOTH
| S_IXGRP
| S_IXUSR
);
3878 /* Searches
for the full path of the wrapper. Returns
3879 newly allocated full path name
if found
, NULL otherwise
3880 Does not chase symlinks
, even on platforms that support them.
3883 find_executable
(const char
*wrapper
)
3888 /* static buffer
for getcwd
*/
3889 char tmp
[LT_PATHMAX
+ 1];
3893 lt_debugprintf
(__FILE__
, __LINE__
, "(find_executable): %s\n",
3894 nonempty
(wrapper
));
3896 if ((wrapper
== NULL
) || (*wrapper
== '\0'))
3899 /* Absolute path?
*/
3900 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
3901 if (isalpha
((unsigned char
) wrapper
[0]) && wrapper
[1] == ':')
3903 concat_name
= xstrdup
(wrapper
);
3904 if (check_executable
(concat_name
))
3906 XFREE
(concat_name
);
3911 if (IS_DIR_SEPARATOR
(wrapper
[0]))
3913 concat_name
= xstrdup
(wrapper
);
3914 if (check_executable
(concat_name
))
3916 XFREE
(concat_name
);
3918 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
3922 for (p
= wrapper
; *p
; p
++)
3930 /* no slashes
; search PATH
*/
3931 const char
*path
= getenv
("PATH");
3934 for (p
= path
; *p
; p
= p_next
)
3938 for (q
= p
; *q
; q
++)
3939 if (IS_PATH_SEPARATOR
(*q
))
3942 p_next
= (*q
== '\0' ? q
: q
+ 1);
3945 /* empty path
: current directory
*/
3946 if (getcwd
(tmp
, LT_PATHMAX
) == NULL
)
3947 lt_fatal
(__FILE__
, __LINE__
, "getcwd failed: %s",
3948 nonnull
(strerror
(errno
)));
3949 tmp_len
= strlen
(tmp
);
3951 XMALLOC
(char
, tmp_len
+ 1 + strlen
(wrapper
) + 1);
3952 memcpy
(concat_name
, tmp
, tmp_len
);
3953 concat_name
[tmp_len
] = '/';
3954 strcpy
(concat_name
+ tmp_len
+ 1, wrapper
);
3959 XMALLOC
(char
, p_len
+ 1 + strlen
(wrapper
) + 1);
3960 memcpy
(concat_name
, p
, p_len
);
3961 concat_name
[p_len
] = '/';
3962 strcpy
(concat_name
+ p_len
+ 1, wrapper
);
3964 if (check_executable
(concat_name
))
3966 XFREE
(concat_name
);
3969 /* not found
in PATH
; assume curdir
*/
3971 /* Relative path
| not found
in path
: prepend cwd
*/
3972 if (getcwd
(tmp
, LT_PATHMAX
) == NULL
)
3973 lt_fatal
(__FILE__
, __LINE__
, "getcwd failed: %s",
3974 nonnull
(strerror
(errno
)));
3975 tmp_len
= strlen
(tmp
);
3976 concat_name
= XMALLOC
(char
, tmp_len
+ 1 + strlen
(wrapper
) + 1);
3977 memcpy
(concat_name
, tmp
, tmp_len
);
3978 concat_name
[tmp_len
] = '/';
3979 strcpy
(concat_name
+ tmp_len
+ 1, wrapper
);
3981 if (check_executable
(concat_name
))
3983 XFREE
(concat_name
);
3988 chase_symlinks
(const char
*pathspec
)
3991 return xstrdup
(pathspec
);
3993 char buf
[LT_PATHMAX
];
3995 char
*tmp_pathspec
= xstrdup
(pathspec
);
3997 int has_symlinks
= 0;
3998 while (strlen
(tmp_pathspec
) && !has_symlinks
)
4000 lt_debugprintf
(__FILE__
, __LINE__
,
4001 "checking path component for symlinks: %s\n",
4003 if (lstat
(tmp_pathspec
, &s
) == 0)
4005 if (S_ISLNK
(s.st_mode
) != 0)
4011 /* search backwards
for last DIR_SEPARATOR
*/
4012 p
= tmp_pathspec
+ strlen
(tmp_pathspec
) - 1;
4013 while ((p
> tmp_pathspec
) && (!IS_DIR_SEPARATOR
(*p
)))
4015 if ((p
== tmp_pathspec
) && (!IS_DIR_SEPARATOR
(*p
)))
4017 /* no
more DIR_SEPARATORS left
*/
4024 lt_fatal
(__FILE__
, __LINE__
,
4025 "error accessing file \"%s\": %s",
4026 tmp_pathspec
, nonnull
(strerror
(errno
)));
4029 XFREE
(tmp_pathspec
);
4033 return xstrdup
(pathspec
);
4036 tmp_pathspec
= realpath
(pathspec
, buf
);
4037 if (tmp_pathspec
== 0)
4039 lt_fatal
(__FILE__
, __LINE__
,
4040 "could not follow symlinks for %s", pathspec
);
4042 return xstrdup
(tmp_pathspec
);
4047 strendzap
(char
*str
, const char
*pat
)
4051 assert
(str
!= NULL
);
4052 assert
(pat
!= NULL
);
4055 patlen
= strlen
(pat
);
4059 str
+= len
- patlen
;
4060 if (strcmp
(str
, pat
) == 0)
4067 lt_debugprintf
(const char
*file, int line
, const char
*fmt, ...
)
4072 (void
) fprintf
(stderr
, "%s:%s:%d: ", program_name
, file, line
);
4073 va_start
(args
, fmt);
4074 (void
) vfprintf
(stderr
, fmt, args
);
4080 lt_error_core
(int exit_status
, const char
*file,
4081 int line
, const char
*mode
,
4082 const char
*message
, va_list ap
)
4084 fprintf
(stderr
, "%s:%s:%d: %s: ", program_name
, file, line
, mode
);
4085 vfprintf
(stderr
, message
, ap
);
4086 fprintf
(stderr
, ".\n");
4088 if (exit_status
>= 0)
4093 lt_fatal
(const char
*file, int line
, const char
*message
, ...
)
4096 va_start
(ap
, message
);
4097 lt_error_core
(EXIT_FAILURE
, file, line
, "FATAL", message
, ap
);
4102 nonnull
(const char
*s
)
4104 return s ? s
: "(null)";
4108 nonempty
(const char
*s
)
4110 return (s
&& !*s
) ?
"(empty)" : nonnull
(s
);
4114 lt_setenv
(const char
*name
, const char
*value
)
4116 lt_debugprintf
(__FILE__
, __LINE__
,
4117 "(lt_setenv) setting '%s' to '%s'\n",
4118 nonnull
(name
), nonnull
(value
));
4121 /* always
make a copy
, for consistency with
!HAVE_SETENV
*/
4122 char
*str
= xstrdup
(value
);
4123 setenv
(name
, str
, 1);
4125 int len
= strlen
(name
) + 1 + strlen
(value
) + 1;
4126 char
*str
= XMALLOC
(char
, len
);
4127 sprintf
(str
, "%s=%s", name
, value
);
4128 if (putenv
(str
) != EXIT_SUCCESS
)
4137 lt_extend_str
(const char
*orig_value
, const char
*add
, int to_end
)
4140 if (orig_value
&& *orig_value
)
4142 int orig_value_len
= strlen
(orig_value
);
4143 int add_len
= strlen
(add
);
4144 new_value
= XMALLOC
(char
, add_len
+ orig_value_len
+ 1);
4147 strcpy
(new_value
, orig_value
);
4148 strcpy
(new_value
+ orig_value_len
, add
);
4152 strcpy
(new_value
, add
);
4153 strcpy
(new_value
+ add_len
, orig_value
);
4158 new_value
= xstrdup
(add
);
4164 lt_update_exe_path
(const char
*name
, const char
*value
)
4166 lt_debugprintf
(__FILE__
, __LINE__
,
4167 "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
4168 nonnull
(name
), nonnull
(value
));
4170 if (name
&& *name
&& value
&& *value
)
4172 char
*new_value
= lt_extend_str
(getenv
(name
), value
, 0);
4173 /* some systems can
't cope with a ':'-terminated path #' */
4174 int len
= strlen
(new_value
);
4175 while (((len
= strlen
(new_value
)) > 0) && IS_PATH_SEPARATOR
(new_value
[len
-1]))
4177 new_value
[len
-1] = '\0';
4179 lt_setenv
(name
, new_value
);
4185 lt_update_lib_path
(const char
*name
, const char
*value
)
4187 lt_debugprintf
(__FILE__
, __LINE__
,
4188 "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
4189 nonnull
(name
), nonnull
(value
));
4191 if (name
&& *name
&& value
&& *value
)
4193 char
*new_value
= lt_extend_str
(getenv
(name
), value
, 0);
4194 lt_setenv
(name
, new_value
);
4204 /* Prepares an argument vector before calling spawn().
4205 Note that spawn() does not by itself call the command interpreter
4206 (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
4207 ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
4209 v.dwPlatformId == VER_PLATFORM_WIN32_NT;
4210 }) ? "cmd.exe" : "command.com").
4211 Instead it simply concatenates the arguments, separated by ' ', and calls
4212 CreateProcess(). We must quote the arguments since Win32 CreateProcess()
4213 interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
4215 - Space and tab are interpreted as delimiters. They are not treated as
4216 delimiters if they are surrounded by double quotes: "...".
4217 - Unescaped double quotes are removed from the input. Their only effect is
4218 that within double quotes, space and tab are treated like normal
4220 - Backslashes not followed by double quotes are not special.
4221 - But 2*n+1 backslashes followed by a double quote become
4222 n backslashes followed by a double quote (n >= 0):
4227 #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
4228 #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
4230 prepare_spawn (char **argv)
4236 /* Count number of arguments. */
4237 for (argc = 0; argv[argc] != NULL; argc++)
4240 /* Allocate new argument vector. */
4241 new_argv = XMALLOC (char *, argc + 1);
4243 /* Put quoted arguments into the new argument vector. */
4244 for (i = 0; i < argc; i++)
4246 const char *string = argv[i];
4248 if (string[0] == '\0')
4249 new_argv[i] = xstrdup ("\"\"");
4250 else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
4252 int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
4254 unsigned int backslashes;
4256 char *quoted_string;
4263 for (s = string; *s != '\0'; s++)
4267 length += backslashes + 1;
4275 length += backslashes + 1;
4277 quoted_string = XMALLOC (char, length + 1);
4283 for (s = string; *s != '\0'; s++)
4289 for (j = backslashes + 1; j > 0; j--)
4301 for (j = backslashes; j > 0; j--)
4307 new_argv[i] = quoted_string;
4310 new_argv[i] = (char *) string;
4312 new_argv[argc] = NULL;
4321 void lt_dump_script
(FILE
* f
)
4324 func_emit_wrapper
yes |
4325 $SED -e 's/\([\\"]\)/\\\1/g' \
4326 -e 's/^/ fputs ("/' -e 's/$/\\n", f);/'
4332 # end: func_emit_cwrapperexe_src
4334 # func_win32_import_lib_p ARG
4335 # True if ARG is an import lib, as indicated by $file_magic_cmd
4336 func_win32_import_lib_p ()
4339 case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
4345 # func_mode_link arg...
4350 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
4351 # It is impossible to link a dll without this setting, and
4352 # we shouldn't force the makefile maintainer to figure out
4353 # which system we are compiling for in order to pass an extra
4354 # flag for every libtool invocation.
4355 # allow_undefined=no
4357 # FIXME: Unfortunately, there are problems with the above when trying
4358 # to make a dll which has undefined symbols, in which case not
4359 # even a static library is built. For now, we need to specify
4360 # -no-undefined on the libtool link line when we can be certain
4361 # that all symbols are satisfied, otherwise we get a static library.
4368 libtool_args=$nonopt
4369 base_compile="$nonopt $@"
4370 compile_command=$nonopt
4371 finalize_command=$nonopt
4384 lib_search_path=`pwd`
4386 new_inherited_linker_flags=
4395 export_symbols_regex=
4403 precious_files_regex=
4404 prefer_static_libs=no
4417 single_module="${wl}-single_module"
4418 func_infer_tag $base_compile
4420 # We need to know -static, to get the right output filenames.
4425 test "$build_libtool_libs" != yes && \
4426 func_fatal_configuration "can not build a shared library"
4430 -all-static | -static | -static-libtool-libs)
4433 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
4434 func_warning "complete static linking is impossible in this configuration"
4436 if test -n "$link_static_flag"; then
4437 dlopen_self=$dlopen_self_static
4439 prefer_static_libs=yes
4442 if test -z "$pic_flag" && test -n "$link_static_flag"; then
4443 dlopen_self=$dlopen_self_static
4445 prefer_static_libs=built
4447 -static-libtool-libs)
4448 if test -z "$pic_flag" && test -n "$link_static_flag"; then
4449 dlopen_self=$dlopen_self_static
4451 prefer_static_libs=yes
4454 build_libtool_libs=no
4461 # See if our shared archives depend on static archives.
4462 test -n "$old_archive_from_new_cmds" && build_old_libs=yes
4464 # Go through the arguments, transforming them on the way.
4465 while test "$#" -gt 0; do
4468 func_quote_for_eval "$arg"
4469 qarg=$func_quote_for_eval_unquoted_result
4470 func_append libtool_args " $func_quote_for_eval_result"
4472 # If the previous option needs an argument, assign it.
4473 if test -n "$prev"; then
4476 func_append compile_command " @OUTPUT@"
4477 func_append finalize_command " @OUTPUT@"
4488 if test "$preload" = no; then
4489 # Add the symbol object into the linking commands.
4490 func_append compile_command " @SYMFILE@"
4491 func_append finalize_command " @SYMFILE@"
4495 *.la | *.lo) ;; # We handle these cases below.
4497 if test "$dlself" = no; then
4505 if test "$prev" = dlprefiles; then
4507 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
4517 if test "$prev" = dlfiles; then
4518 dlfiles="$dlfiles $arg"
4520 dlprefiles="$dlprefiles $arg"
4528 export_symbols="$arg"
4530 || func_fatal_error "symbol file \`$arg' does not exist"
4535 export_symbols_regex="$arg"
4543 *" $qarg.ltframework "*) ;;
4544 *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
4553 inst_prefix_dir="$arg"
4558 if test -f "$arg"; then
4561 for fil in `cat "$save_arg"`
4563 # moreargs="$moreargs $fil"
4565 # A libtool-controlled object.
4567 # Check to see that this really is a libtool object.
4568 if func_lalib_unsafe_p "$arg"; then
4575 if test -z "$pic_object" ||
4576 test -z "$non_pic_object" ||
4577 test "$pic_object" = none &&
4578 test "$non_pic_object" = none; then
4579 func_fatal_error "cannot find name of object for \`$arg'"
4582 # Extract subdirectory from the argument.
4583 func_dirname "$arg" "/" ""
4584 xdir="$func_dirname_result"
4586 if test "$pic_object" != none; then
4587 # Prepend the subdirectory the object is found in.
4588 pic_object="$xdir$pic_object"
4590 if test "$prev" = dlfiles; then
4591 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
4592 dlfiles="$dlfiles $pic_object"
4596 # If libtool objects are unsupported, then we need to preload.
4601 # CHECK ME: I think I busted this. -Ossama
4602 if test "$prev" = dlprefiles; then
4603 # Preload the old-style object.
4604 dlprefiles="$dlprefiles $pic_object"
4609 func_append libobjs " $pic_object"
4614 if test "$non_pic_object" != none; then
4615 # Prepend the subdirectory the object is found in.
4616 non_pic_object="$xdir$non_pic_object"
4618 # A standard non-PIC object
4619 func_append non_pic_objects " $non_pic_object"
4620 if test -z "$pic_object" || test "$pic_object" = none ; then
4621 arg="$non_pic_object"
4624 # If the PIC object exists, use it instead.
4625 # $xdir was prepended to $pic_object above.
4626 non_pic_object="$pic_object"
4627 func_append non_pic_objects " $non_pic_object"
4630 # Only an error if not doing a dry-run.
4631 if $opt_dry_run; then
4632 # Extract subdirectory from the argument.
4633 func_dirname "$arg" "/" ""
4634 xdir="$func_dirname_result"
4637 pic_object=$xdir$objdir/$func_lo2o_result
4638 non_pic_object=$xdir$func_lo2o_result
4639 func_append libobjs " $pic_object"
4640 func_append non_pic_objects " $non_pic_object"
4642 func_fatal_error "\`$arg' is not a valid libtool object"
4647 func_fatal_error "link input file \`$arg' does not exist"
4654 precious_files_regex="$arg"
4664 # We need an absolute path.
4666 [\\/]* | [A-Za-z]:[\\/]*) ;;
4668 func_fatal_error "only absolute run-paths are allowed"
4671 if test "$prev" = rpath; then
4674 *) rpath="$rpath $arg" ;;
4679 *) xrpath="$xrpath $arg" ;;
4691 weak_libs="$weak_libs $arg"
4696 linker_flags="$linker_flags $qarg"
4697 compiler_flags="$compiler_flags $qarg"
4699 func_append compile_command " $qarg"
4700 func_append finalize_command " $qarg"
4704 compiler_flags="$compiler_flags $qarg"
4706 func_append compile_command " $qarg"
4707 func_append finalize_command " $qarg"
4711 linker_flags="$linker_flags $qarg"
4712 compiler_flags="$compiler_flags $wl$qarg"
4714 func_append compile_command " $wl$qarg"
4715 func_append finalize_command " $wl$qarg"
4719 eval "$prev=\"\$arg\""
4724 fi # test -n "$prev"
4730 if test -n "$link_static_flag"; then
4731 # See comment for -static flag below, for more details.
4732 func_append compile_command " $link_static_flag"
4733 func_append finalize_command " $link_static_flag"
4739 # FIXME: remove this flag sometime in the future.
4740 func_fatal_error "\`-allow-undefined' must not be used because it is the default"
4768 -export-symbols | -export-symbols-regex)
4769 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
4770 func_fatal_error "more than one -exported-symbols argument is not allowed"
4772 if test "X$arg" = "X-export-symbols"; then
4790 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
4791 # so, if we see these flags be careful not to treat them like -L
4793 case $with_gcc/$host in
4794 no/*-*-irix* | /*-*-irix*)
4795 func_append compile_command " $arg"
4796 func_append finalize_command " $arg"
4803 func_stripname '-L' '' "$arg"
4804 dir=$func_stripname_result
4805 if test -z "$dir"; then
4806 if test "$#" -gt 0; then
4807 func_fatal_error "require no space between \`-L' and \`$1'"
4809 func_fatal_error "need path for \`-L' option"
4812 # We need an absolute path.
4814 [\\/]* | [A-Za-z]:[\\/]*) ;;
4816 absdir=`cd "$dir" && pwd`
4817 test -z "$absdir" && \
4818 func_fatal_error "cannot determine absolute directory name of \`$dir'"
4825 deplibs="$deplibs -L$dir"
4826 lib_search_path="$lib_search_path $dir"
4830 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
4831 testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
4832 case :$dllsearchpath: in
4834 ::) dllsearchpath=$dir;;
4835 *) dllsearchpath="$dllsearchpath:$dir";;
4837 case :$dllsearchpath: in
4838 *":$testbindir:"*) ;;
4839 ::) dllsearchpath=$testbindir;;
4840 *) dllsearchpath="$dllsearchpath:$testbindir";;
4848 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
4850 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
4851 # These systems don't actually have a C or math library (as such)
4855 # These systems don't actually have a C library (as such)
4856 test "X$arg" = "X-lc" && continue
4858 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
4859 # Do not include libc due to us having libc/libc_r.
4860 test "X$arg" = "X-lc" && continue
4862 *-*-rhapsody* | *-*-darwin1.[012])
4863 # Rhapsody C and math libraries are in the System framework
4864 deplibs="$deplibs System.ltframework"
4867 *-*-sco3.2v5* | *-*-sco5v6*)
4868 # Causes problems with __ctype
4869 test "X$arg" = "X-lc" && continue
4871 *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
4872 # Compiler inserts libc in the correct place for threads to work
4873 test "X$arg" = "X-lc" && continue
4876 elif test "X$arg" = "X-lc_r"; then
4878 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
4879 # Do not include libc_r directly, use -pthread flag.
4884 deplibs="$deplibs $arg"
4893 # Tru64 UNIX uses -model [arg] to determine the layout of C++
4894 # classes, name mangling, and exception handling.
4895 # Darwin uses the -arch flag to determine output architecture.
4896 -model|-arch|-isysroot)
4897 compiler_flags="$compiler_flags $arg"
4898 func_append compile_command " $arg"
4899 func_append finalize_command " $arg"
4904 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
4905 compiler_flags="$compiler_flags $arg"
4906 func_append compile_command " $arg"
4907 func_append finalize_command " $arg"
4908 case "$new_inherited_linker_flags " in
4910 * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
4916 single_module="${wl}-multi_module"
4927 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
4928 # The PATH hackery in wrapper scripts is required on Windows
4929 # and Darwin in order for the loader to find any dlls it needs.
4930 func_warning "\`-no-install' is ignored for $host"
4931 func_warning "assuming \`-no-fast-install' instead"
4934 *) no_install=yes ;;
4951 -precious-files-regex)
4972 func_stripname '-R' '' "$arg"
4973 dir=$func_stripname_result
4974 # We need an absolute path.
4976 [\\/]* | [A-Za-z]:[\\/]*) ;;
4978 func_fatal_error "only absolute run-paths are allowed"
4983 *) xrpath="$xrpath $dir" ;;
4989 # The effects of -shared are defined in a previous loop.
4998 -static | -static-libtool-libs)
4999 # The effects of -static are defined in a previous loop.
5000 # We used to do the same as -all-static on platforms that
5001 # didn't have a PIC flag, but the assumption that the effects
5002 # would be equivalent was wrong. It would break on at least
5003 # Digital Unix and AIX.
5029 func_stripname '-Wc,' '' "$arg"
5030 args=$func_stripname_result
5032 save_ifs="$IFS"; IFS=','
5033 for flag in $args; do
5035 func_quote_for_eval "$flag"
5036 arg="$arg $func_quote_for_eval_result"
5037 compiler_flags="$compiler_flags $func_quote_for_eval_result"
5040 func_stripname ' ' '' "$arg"
5041 arg=$func_stripname_result
5045 func_stripname '-Wl,' '' "$arg"
5046 args=$func_stripname_result
5048 save_ifs="$IFS"; IFS=','
5049 for flag in $args; do
5051 func_quote_for_eval "$flag"
5052 arg="$arg $wl$func_quote_for_eval_result"
5053 compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
5054 linker_flags="$linker_flags $func_quote_for_eval_result"
5057 func_stripname ' ' '' "$arg"
5058 arg=$func_stripname_result
5078 func_quote_for_eval "$arg"
5079 arg="$func_quote_for_eval_result"
5082 # Flags to be passed through unchanged, with rationale:
5083 # -64, -mips[0-9] enable 64-bit mode for the SGI compiler
5084 # -r[0-9][0-9]* specify processor for the SGI compiler
5085 # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
5086 # +DA*, +DD* enable 64-bit mode for the HP compiler
5087 # -q* compiler args for the IBM compiler
5088 # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
5089 # -F/path path to uninstalled frameworks, gcc on darwin
5090 # -p, -pg, --coverage, -fprofile-* profiling flags for GCC
5091 # @file GCC response files
5092 # -tp=* Portland pgcc target processor selection
5093 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
5094 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*)
5095 func_quote_for_eval "$arg"
5096 arg="$func_quote_for_eval_result"
5097 func_append compile_command " $arg"
5098 func_append finalize_command " $arg"
5099 compiler_flags="$compiler_flags $arg"
5103 # Some other compiler flag.
5105 func_quote_for_eval "$arg"
5106 arg="$func_quote_for_eval_result"
5110 # A standard object.
5115 # A libtool-controlled object.
5117 # Check to see that this really is a libtool object.
5118 if func_lalib_unsafe_p "$arg"; then
5125 if test -z "$pic_object" ||
5126 test -z "$non_pic_object" ||
5127 test "$pic_object" = none &&
5128 test "$non_pic_object" = none; then
5129 func_fatal_error "cannot find name of object for \`$arg'"
5132 # Extract subdirectory from the argument.
5133 func_dirname "$arg" "/" ""
5134 xdir="$func_dirname_result"
5136 if test "$pic_object" != none; then
5137 # Prepend the subdirectory the object is found in.
5138 pic_object="$xdir$pic_object"
5140 if test "$prev" = dlfiles; then
5141 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
5142 dlfiles="$dlfiles $pic_object"
5146 # If libtool objects are unsupported, then we need to preload.
5151 # CHECK ME: I think I busted this. -Ossama
5152 if test "$prev" = dlprefiles; then
5153 # Preload the old-style object.
5154 dlprefiles="$dlprefiles $pic_object"
5159 func_append libobjs " $pic_object"
5164 if test "$non_pic_object" != none; then
5165 # Prepend the subdirectory the object is found in.
5166 non_pic_object="$xdir$non_pic_object"
5168 # A standard non-PIC object
5169 func_append non_pic_objects " $non_pic_object"
5170 if test -z "$pic_object" || test "$pic_object" = none ; then
5171 arg="$non_pic_object"
5174 # If the PIC object exists, use it instead.
5175 # $xdir was prepended to $pic_object above.
5176 non_pic_object="$pic_object"
5177 func_append non_pic_objects " $non_pic_object"
5180 # Only an error if not doing a dry-run.
5181 if $opt_dry_run; then
5182 # Extract subdirectory from the argument.
5183 func_dirname "$arg" "/" ""
5184 xdir="$func_dirname_result"
5187 pic_object=$xdir$objdir/$func_lo2o_result
5188 non_pic_object=$xdir$func_lo2o_result
5189 func_append libobjs " $pic_object"
5190 func_append non_pic_objects " $non_pic_object"
5192 func_fatal_error "\`$arg' is not a valid libtool object"
5199 deplibs="$deplibs $arg"
5200 old_deplibs="$old_deplibs $arg"
5205 # A libtool-controlled library.
5207 if test "$prev" = dlfiles; then
5208 # This library was specified with -dlopen.
5209 dlfiles="$dlfiles $arg"
5211 elif test "$prev" = dlprefiles; then
5212 # The library was specified with -dlpreopen.
5213 dlprefiles="$dlprefiles $arg"
5216 deplibs="$deplibs $arg"
5221 # Some other compiler argument.
5223 # Unknown arguments in both finalize_command and compile_command need
5224 # to be aesthetically quoted because they are evaled later.
5225 func_quote_for_eval "$arg"
5226 arg="$func_quote_for_eval_result"
5230 # Now actually substitute the argument into the commands.
5231 if test -n "$arg"; then
5232 func_append compile_command " $arg"
5233 func_append finalize_command " $arg"
5235 done # argument parsing loop
5237 test -n "$prev" && \
5238 func_fatal_help "the \`$prevarg' option requires an argument"
5240 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
5241 eval arg=\"$export_dynamic_flag_spec\"
5242 func_append compile_command " $arg"
5243 func_append finalize_command " $arg"
5247 # calculate the name of the file, without its directory
5248 func_basename "$output"
5249 outputname="$func_basename_result"
5250 libobjs_save="$libobjs"
5252 if test -n "$shlibpath_var"; then
5253 # get the directories listed in $shlibpath_var
5254 eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
5258 eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
5259 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
5261 func_dirname "$output" "/" ""
5262 output_objdir="$func_dirname_result$objdir"
5263 # Create the object directory.
5264 func_mkdir_p "$output_objdir"
5266 # Determine the type of output
5269 func_fatal_help "you must specify an output file"
5271 *.$libext) linkmode=oldlib ;;
5272 *.lo | *.$objext) linkmode=obj ;;
5273 *.la) linkmode=lib ;;
5274 *) linkmode=prog ;; # Anything else should be a program.
5280 # Find all interdependent deplibs by searching for libraries
5281 # that are linked more than once (e.g. -la -lb -la)
5282 for deplib in $deplibs; do
5283 if $opt_duplicate_deps ; then
5285 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
5288 libs="$libs $deplib"
5291 if test "$linkmode" = lib; then
5292 libs="$predeps $libs $compiler_lib_search_path $postdeps"
5294 # Compute libraries that are listed more than once in $predeps
5295 # $postdeps and mark them as special (i.e., whose duplicates are
5296 # not to be eliminated).
5298 if $opt_duplicate_compiler_generated_deps; then
5299 for pre_post_dep in $predeps $postdeps; do
5300 case "$pre_post_deps " in
5301 *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
5303 pre_post_deps="$pre_post_deps $pre_post_dep"
5312 need_relink=no # whether we're linking any uninstalled libtool libraries
5313 notinst_deplibs= # not-installed libtool libraries
5314 notinst_path= # paths that contain not-installed libtool libraries
5318 passes="conv dlpreopen link"
5319 for file in $dlfiles $dlprefiles; do
5323 func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
5334 passes="conv scan dlopen dlpreopen link"
5340 for pass in $passes; do
5341 # The preopen pass in lib mode reverses $deplibs; put it back here
5342 # so that -L comes before libs that need it for instance...
5343 if test "$linkmode,$pass" = "lib,link"; then
5344 ## FIXME: Find the place where the list is rebuilt in the wrong
5345 ## order, and fix it there properly
5347 for deplib in $deplibs; do
5348 tmp_deplibs="$deplib $tmp_deplibs"
5350 deplibs="$tmp_deplibs"
5353 if test "$linkmode,$pass" = "lib,link" ||
5354 test "$linkmode,$pass" = "prog,scan"; then
5358 if test "$linkmode" = prog; then
5360 dlopen) libs="$dlfiles" ;;
5361 dlpreopen) libs="$dlprefiles" ;;
5362 link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
5365 if test "$linkmode,$pass" = "lib,dlpreopen"; then
5366 # Collect and forward deplibs of preopened libtool libs
5367 for lib in $dlprefiles; do
5368 # Ignore non-libtool-libs
5371 *.la) func_source "$lib" ;;
5374 # Collect preopened libtool deplibs, except any this library
5375 # has declared as weak libs
5376 for deplib in $dependency_libs; do
5377 func_basename "$deplib"
5378 deplib_base=$func_basename_result
5379 case " $weak_libs " in
5380 *" $deplib_base "*) ;;
5381 *) deplibs="$deplibs $deplib" ;;
5387 if test "$pass" = dlopen; then
5388 # Collect dlpreopened libraries
5389 save_deplibs="$deplibs"
5393 for deplib in $libs; do
5397 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
5398 if test "$linkmode,$pass" = "prog,link"; then
5399 compile_deplibs="$deplib $compile_deplibs"
5400 finalize_deplibs="$deplib $finalize_deplibs"
5402 compiler_flags="$compiler_flags $deplib"
5403 if test "$linkmode" = lib ; then
5404 case "$new_inherited_linker_flags " in
5406 * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
5413 if test "$linkmode" != lib && test "$linkmode" != prog; then
5414 func_warning "\`-l' is ignored for archives/objects"
5417 func_stripname '-l' '' "$deplib"
5418 name=$func_stripname_result
5419 if test "$linkmode" = lib; then
5420 searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
5422 searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
5424 for searchdir in $searchdirs; do
5425 for search_ext in .la $std_shrext .so .a; do
5426 # Search the libtool library
5427 lib="$searchdir/lib${name}${search_ext}"
5428 if test -f "$lib"; then
5429 if test "$search_ext" = ".la"; then
5438 if test "$found" != yes; then
5439 # deplib doesn't seem to be a libtool library
5440 if test "$linkmode,$pass" = "prog,link"; then
5441 compile_deplibs="$deplib $compile_deplibs"
5442 finalize_deplibs="$deplib $finalize_deplibs"
5444 deplibs="$deplib $deplibs"
5445 test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
5448 else # deplib is a libtool library
5449 # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
5450 # We need to do some special things here, and not later.
5451 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
5452 case " $predeps $postdeps " in
5454 if func_lalib_p "$lib"; then
5458 for l in $old_library $library_names; do
5461 if test "X$ll" = "X$old_library" ; then # only static version available
5463 func_dirname "$lib" "" "."
5464 ladir="$func_dirname_result"
5465 lib=$ladir/$old_library
5466 if test "$linkmode,$pass" = "prog,link"; then
5467 compile_deplibs="$deplib $compile_deplibs"
5468 finalize_deplibs="$deplib $finalize_deplibs"
5470 deplibs="$deplib $deplibs"
5471 test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
5483 if test "$linkmode,$pass" = "prog,link"; then
5484 compile_deplibs="$deplib $compile_deplibs"
5485 finalize_deplibs="$deplib $finalize_deplibs"
5487 deplibs="$deplib $deplibs"
5488 if test "$linkmode" = lib ; then
5489 case "$new_inherited_linker_flags " in
5491 * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
5500 deplibs="$deplib $deplibs"
5501 test "$pass" = conv && continue
5502 newdependency_libs="$deplib $newdependency_libs"
5503 func_stripname '-L' '' "$deplib"
5504 newlib_search_path="$newlib_search_path $func_stripname_result"
5507 if test "$pass" = conv; then
5508 deplibs="$deplib $deplibs"
5511 if test "$pass" = scan; then
5512 deplibs="$deplib $deplibs"
5514 compile_deplibs="$deplib $compile_deplibs"
5515 finalize_deplibs="$deplib $finalize_deplibs"
5517 func_stripname '-L' '' "$deplib"
5518 newlib_search_path="$newlib_search_path $func_stripname_result"
5521 func_warning "\`-L' is ignored for archives/objects"
5527 if test "$pass" = link; then
5528 func_stripname '-R' '' "$deplib"
5529 dir=$func_stripname_result
5530 # Make sure the xrpath contains only unique directories.
5533 *) xrpath="$xrpath $dir" ;;
5536 deplibs="$deplib $deplibs"
5539 *.la) lib="$deplib" ;;
5541 if test "$pass" = conv; then
5542 deplibs="$deplib $deplibs"
5547 # Linking convenience modules into shared libraries is allowed,
5548 # but linking other static libraries is non-portable.
5549 case " $dlpreconveniencelibs " in
5553 case $deplibs_check_method in
5555 set dummy $deplibs_check_method; shift
5556 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
5557 if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
5558 | $EGREP "$match_pattern_regex" > /dev/null; then
5566 if test "$valid_a_lib" != yes; then
5568 $ECHO "*** Warning: Trying to link with static lib archive $deplib."
5569 echo "*** I have the capability to make that library automatically link in when"
5570 echo "*** you link to this library. But I can only do this if you have a"
5571 echo "*** shared version of the library, which you do not appear to have"
5572 echo "*** because the file extensions .$libext of this argument makes me believe"
5573 echo "*** that it is just a static archive that I should not use here."
5576 $ECHO "*** Warning: Linking the shared library $output against the"
5577 $ECHO "*** static library $deplib is not portable!"
5578 deplibs="$deplib $deplibs"
5585 if test "$pass" != link; then
5586 deplibs="$deplib $deplibs"
5588 compile_deplibs="$deplib $compile_deplibs"
5589 finalize_deplibs="$deplib $finalize_deplibs"
5596 if test "$pass" = conv; then
5597 deplibs="$deplib $deplibs"
5598 elif test "$linkmode" = prog; then
5599 if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
5600 # If there is no dlopen support or we're linking statically,
5601 # we need to preload.
5602 newdlprefiles="$newdlprefiles $deplib"
5603 compile_deplibs="$deplib $compile_deplibs"
5604 finalize_deplibs="$deplib $finalize_deplibs"
5606 newdlfiles="$newdlfiles $deplib"
5617 if test "$found" = yes || test -f "$lib"; then :
5619 func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
5622 # Check to see that this really is a libtool archive.
5623 func_lalib_unsafe_p "$lib" \
5624 || func_fatal_error "\`$lib' is not a valid libtool archive"
5626 func_dirname "$lib" "" "."
5627 ladir="$func_dirname_result"
5635 inherited_linker_flags=
5636 # If the library was installed with an old release of libtool,
5637 # it will not redefine variables installed, or shouldnotlink
5646 # Convert "-framework foo" to "foo.ltframework"
5647 if test -n "$inherited_linker_flags"; then
5648 tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
5649 for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
5650 case " $new_inherited_linker_flags " in
5651 *" $tmp_inherited_linker_flag "*) ;;
5652 *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
5656 dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
5657 if test "$linkmode,$pass" = "lib,link" ||
5658 test "$linkmode,$pass" = "prog,scan" ||
5659 { test "$linkmode" != prog && test "$linkmode" != lib; }; then
5660 test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
5661 test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
5664 if test "$pass" = conv; then
5665 # Only check for convenience libraries
5666 deplibs="$lib $deplibs"
5667 if test -z "$libdir"; then
5668 if test -z "$old_library"; then
5669 func_fatal_error "cannot find name of link library for \`$lib'"
5671 # It is a libtool convenience library, so add in its objects.
5672 convenience="$convenience $ladir/$objdir/$old_library"
5673 old_convenience="$old_convenience $ladir/$objdir/$old_library"
5674 elif test "$linkmode" != prog && test "$linkmode" != lib; then
5675 func_fatal_error "\`$lib' is not a convenience library"
5678 for deplib in $dependency_libs; do
5679 deplibs="$deplib $deplibs"
5680 if $opt_duplicate_deps ; then
5681 case "$tmp_libs " in
5682 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
5685 tmp_libs="$tmp_libs $deplib"
5691 # Get the name of the library we link against.
5693 for l in $old_library $library_names; do
5696 if test -z "$linklib"; then
5697 func_fatal_error "cannot find name of link library for \`$lib'"
5700 # This library was specified with -dlopen.
5701 if test "$pass" = dlopen; then
5702 if test -z "$libdir"; then
5703 func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
5705 if test -z "$dlname" ||
5706 test "$dlopen_support" != yes ||
5707 test "$build_libtool_libs" = no; then
5708 # If there is no dlname, no dlopen support or we're linking
5709 # statically, we need to preload. We also need to preload any
5710 # dependent libraries so libltdl's deplib preloader doesn't
5711 # bomb out in the load deplibs phase.
5712 dlprefiles="$dlprefiles $lib $dependency_libs"
5714 newdlfiles="$newdlfiles $lib"
5719 # We need an absolute path.
5721 [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
5723 abs_ladir=`cd "$ladir" && pwd`
5724 if test -z "$abs_ladir"; then
5725 func_warning "cannot determine absolute directory name of \`$ladir'"
5726 func_warning "passing it literally to the linker, although it might fail"
5731 func_basename "$lib"
5732 laname="$func_basename_result"
5734 # Find the relevant object directory and library name.
5735 if test "X$installed" = Xyes; then
5736 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
5737 func_warning "library \`$lib' was moved."
5745 test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
5747 if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
5750 # Remove this search path later
5751 notinst_path="$notinst_path $abs_ladir"
5753 dir="$ladir/$objdir"
5754 absdir="$abs_ladir/$objdir"
5755 # Remove this search path later
5756 notinst_path="$notinst_path $abs_ladir"
5758 fi # $installed = yes
5759 func_stripname 'lib' '.la' "$laname"
5760 name=$func_stripname_result
5762 # This library was specified with -dlpreopen.
5763 if test "$pass" = dlpreopen; then
5764 if test -z "$libdir" && test "$linkmode" = prog; then
5765 func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
5767 # Prefer using a static library (so that no silly _DYNAMIC symbols
5768 # are required to link).
5769 if test -n "$old_library"; then
5770 newdlprefiles="$newdlprefiles $dir/$old_library"
5771 # Keep a list of preopened convenience libraries to check
5772 # that they are being used correctly in the link pass.
5773 test -z "$libdir" && \
5774 dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
5775 # Otherwise, use the dlname, so that lt_dlopen finds it.
5776 elif test -n "$dlname"; then
5777 newdlprefiles="$newdlprefiles $dir/$dlname"
5779 newdlprefiles="$newdlprefiles $dir/$linklib"
5781 fi # $pass = dlpreopen
5783 if test -z "$libdir"; then
5784 # Link the convenience library
5785 if test "$linkmode" = lib; then
5786 deplibs="$dir/$old_library $deplibs"
5787 elif test "$linkmode,$pass" = "prog,link"; then
5788 compile_deplibs="$dir/$old_library $compile_deplibs"
5789 finalize_deplibs="$dir/$old_library $finalize_deplibs"
5791 deplibs="$lib $deplibs" # used for prog,scan pass
5797 if test "$linkmode" = prog && test "$pass" != link; then
5798 newlib_search_path="$newlib_search_path $ladir"
5799 deplibs="$lib $deplibs"
5802 if test "$link_all_deplibs" != no || test -z "$library_names" ||
5803 test "$build_libtool_libs" = no; then
5808 for deplib in $dependency_libs; do
5810 -L*) func_stripname '-L' '' "$deplib"
5811 newlib_search_path="$newlib_search_path $func_stripname_result"
5814 # Need to link against all dependency_libs?
5815 if test "$linkalldeplibs" = yes; then
5816 deplibs="$deplib $deplibs"
5818 # Need to hardcode shared library paths
5819 # or/and link against static libraries
5820 newdependency_libs="$deplib $newdependency_libs"
5822 if $opt_duplicate_deps ; then
5823 case "$tmp_libs " in
5824 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
5827 tmp_libs="$tmp_libs $deplib"
5830 fi # $linkmode = prog...
5832 if test "$linkmode,$pass" = "prog,link"; then
5833 if test -n "$library_names" &&
5834 { { test "$prefer_static_libs" = no ||
5835 test "$prefer_static_libs,$installed" = "built,yes"; } ||
5836 test -z "$old_library"; }; then
5837 # We need to hardcode the library path
5838 if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
5839 # Make sure the rpath contains only unique directories.
5840 case "$temp_rpath:" in
5842 *) temp_rpath="$temp_rpath$absdir:" ;;
5846 # Hardcode the library path.
5847 # Skip directories that are in the system default run-time
5849 case " $sys_lib_dlsearch_path " in
5852 case "$compile_rpath " in
5854 *) compile_rpath="$compile_rpath $absdir"
5858 case " $sys_lib_dlsearch_path " in
5861 case "$finalize_rpath " in
5863 *) finalize_rpath="$finalize_rpath $libdir"
5867 fi # $linkmode,$pass = prog,link...
5869 if test "$alldeplibs" = yes &&
5870 { test "$deplibs_check_method" = pass_all ||
5871 { test "$build_libtool_libs" = yes &&
5872 test -n "$library_names"; }; }; then
5873 # We only need to search for static libraries
5878 link_static=no # Whether the deplib will be linked statically
5879 use_static_libs=$prefer_static_libs
5880 if test "$use_static_libs" = built && test "$installed" = yes; then
5883 if test -n "$library_names" &&
5884 { test "$use_static_libs" = no || test -z "$old_library"; }; then
5886 *cygwin* | *mingw* | *cegcc*)
5887 # No point in relinking DLLs because paths are not encoded
5888 notinst_deplibs="$notinst_deplibs $lib"
5892 if test "$installed" = no; then
5893 notinst_deplibs="$notinst_deplibs $lib"
5898 # This is a shared library
5900 # Warn about portability, can't link against -module's on some
5901 # systems (darwin). Don't bleat about dlopened modules though!
5903 for dlpremoduletest in $dlprefiles; do
5904 if test "X$dlpremoduletest" = "X$lib"; then
5905 dlopenmodule="$dlpremoduletest"
5909 if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
5911 if test "$linkmode" = prog; then
5912 $ECHO "*** Warning: Linking the executable $output against the loadable module"
5914 $ECHO "*** Warning: Linking the shared library $output against the loadable module"
5916 $ECHO "*** $linklib is not portable!"
5918 if test "$linkmode" = lib &&
5919 test "$hardcode_into_libs" = yes; then
5920 # Hardcode the library path.
5921 # Skip directories that are in the system default run-time
5923 case " $sys_lib_dlsearch_path " in
5926 case "$compile_rpath " in
5928 *) compile_rpath="$compile_rpath $absdir"
5932 case " $sys_lib_dlsearch_path " in
5935 case "$finalize_rpath " in
5937 *) finalize_rpath="$finalize_rpath $libdir"
5943 if test -n "$old_archive_from_expsyms_cmds"; then
5944 # figure out the soname
5945 set dummy $library_names
5949 libname=`eval "\\$ECHO \"$libname_spec\""`
5950 # use dlname if we got it. it's perfectly good, no?
5951 if test -n "$dlname"; then
5953 elif test -n "$soname_spec"; then
5956 *cygwin* | mingw* | *cegcc*)
5957 func_arith $current - $age
5958 major=$func_arith_result
5962 eval soname=\"$soname_spec\"
5967 # Make a new name for the extract_expsyms_cmds to use
5969 func_basename "$soroot"
5970 soname="$func_basename_result"
5971 func_stripname 'lib' '.dll' "$soname"
5972 newlib=libimp-$func_stripname_result.a
5974 # If the library has no export list, then create one now
5975 if test -f "$output_objdir/$soname-def"; then :
5977 func_verbose "extracting exported symbol list from \`$soname'"
5978 func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
5982 if test -f "$output_objdir/$newlib"; then :; else
5983 func_verbose "generating import library for \`$soname'"
5984 func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
5986 # make sure the library variables are pointing to the new library
5989 fi # test -n "$old_archive_from_expsyms_cmds"
5991 if test "$linkmode" = prog || test "$mode" != relink; then
5996 case $hardcode_action in
5997 immediate | unsupported)
5998 if test "$hardcode_direct" = no; then
6001 *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
6002 *-*-sysv4*uw2*) add_dir="-L$dir" ;;
6003 *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
6004 *-*-unixware7*) add_dir="-L$dir" ;;
6006 # if the lib is a (non-dlopened) module then we can not
6007 # link against it, someone is ignoring the earlier warnings
6008 if /usr/bin/file -L $add 2> /dev/null |
6009 $GREP ": [^:]* bundle" >/dev/null ; then
6010 if test "X$dlopenmodule" != "X$lib"; then
6011 $ECHO "*** Warning: lib $linklib is a module, not a shared library"
6012 if test -z "$old_library" ; then
6014 echo "*** And there doesn't seem to be a static archive available"
6015 echo "*** The link will probably fail, sorry"
6017 add="$dir/$old_library"
6019 elif test -n "$old_library"; then
6020 add="$dir/$old_library"
6024 elif test "$hardcode_minus_L" = no; then
6026 *-*-sunos*) add_shlibpath="$dir" ;;
6030 elif test "$hardcode_shlibpath_var" = no; then
6031 add_shlibpath="$dir"
6038 if test "$hardcode_direct" = yes &&
6039 test "$hardcode_direct_absolute" = no; then
6041 elif test "$hardcode_minus_L" = yes; then
6043 # Try looking first in the location we're being installed to.
6044 if test -n "$inst_prefix_dir"; then
6047 add_dir="$add_dir -L$inst_prefix_dir$libdir"
6052 elif test "$hardcode_shlibpath_var" = yes; then
6053 add_shlibpath="$dir"
6062 if test "$lib_linked" != yes; then
6063 func_fatal_configuration "unsupported hardcode properties"
6066 if test -n "$add_shlibpath"; then
6067 case :$compile_shlibpath: in
6068 *":$add_shlibpath:"*) ;;
6069 *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
6072 if test "$linkmode" = prog; then
6073 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
6074 test -n "$add" && compile_deplibs="$add $compile_deplibs"
6076 test -n "$add_dir" && deplibs="$add_dir $deplibs"
6077 test -n "$add" && deplibs="$add $deplibs"
6078 if test "$hardcode_direct" != yes &&
6079 test "$hardcode_minus_L" != yes &&
6080 test "$hardcode_shlibpath_var" = yes; then
6081 case :$finalize_shlibpath: in
6083 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
6089 if test "$linkmode" = prog || test "$mode" = relink; then
6093 # Finalize command for both is simple: just hardcode it.
6094 if test "$hardcode_direct" = yes &&
6095 test "$hardcode_direct_absolute" = no; then
6096 add="$libdir/$linklib"
6097 elif test "$hardcode_minus_L" = yes; then
6100 elif test "$hardcode_shlibpath_var" = yes; then
6101 case :$finalize_shlibpath: in
6103 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
6106 elif test "$hardcode_automatic" = yes; then
6107 if test -n "$inst_prefix_dir" &&
6108 test -f "$inst_prefix_dir$libdir/$linklib" ; then
6109 add="$inst_prefix_dir$libdir/$linklib"
6111 add="$libdir/$linklib"
6114 # We cannot seem to hardcode it, guess we'll fake it.
6116 # Try looking first in the location we're being installed to.
6117 if test -n "$inst_prefix_dir"; then
6120 add_dir="$add_dir -L$inst_prefix_dir$libdir"
6127 if test "$linkmode" = prog; then
6128 test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
6129 test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
6131 test -n "$add_dir" && deplibs="$add_dir $deplibs"
6132 test -n "$add" && deplibs="$add $deplibs"
6135 elif test "$linkmode" = prog; then
6136 # Here we assume that one of hardcode_direct or hardcode_minus_L
6137 # is not unsupported. This is valid on all known static and
6139 if test "$hardcode_direct" != unsupported; then
6140 test -n "$old_library" && linklib="$old_library"
6141 compile_deplibs="$dir/$linklib $compile_deplibs"
6142 finalize_deplibs="$dir/$linklib $finalize_deplibs"
6144 compile_deplibs="-l$name -L$dir $compile_deplibs"
6145 finalize_deplibs="-l$name -L$dir $finalize_deplibs"
6147 elif test "$build_libtool_libs" = yes; then
6148 # Not a shared library
6149 if test "$deplibs_check_method" != pass_all; then
6150 # We're trying link a shared library against a static one
6151 # but the system doesn't support it.
6153 # Just print a warning and add the library to dependency_libs so
6154 # that the program can be linked against the static library.
6156 $ECHO "*** Warning: This system can not link to static lib archive $lib."
6157 echo "*** I have the capability to make that library automatically link in when"
6158 echo "*** you link to this library. But I can only do this if you have a"
6159 echo "*** shared version of the library, which you do not appear to have."
6160 if test "$module" = yes; then
6161 echo "*** But as you try to build a module library, libtool will still create "
6162 echo "*** a static module, that should work as long as the dlopening application"
6163 echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
6164 if test -z "$global_symbol_pipe"; then
6166 echo "*** However, this would only work if libtool was able to extract symbol"
6167 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
6168 echo "*** not find such a program. So, this module is probably useless."
6169 echo "*** \`nm' from GNU binutils and a full rebuild may help."
6171 if test "$build_old_libs" = no; then
6172 build_libtool_libs=module
6175 build_libtool_libs=no
6179 deplibs="$dir/$old_library $deplibs"
6182 fi # link shared/static library?
6184 if test "$linkmode" = lib; then
6185 if test -n "$dependency_libs" &&
6186 { test "$hardcode_into_libs" != yes ||
6187 test "$build_old_libs" = yes ||
6188 test "$link_static" = yes; }; then
6189 # Extract -R from dependency_libs
6191 for libdir in $dependency_libs; do
6193 -R*) func_stripname '-R' '' "$libdir"
6194 temp_xrpath=$func_stripname_result
6196 *" $temp_xrpath "*) ;;
6197 *) xrpath="$xrpath $temp_xrpath";;
6199 *) temp_deplibs="$temp_deplibs $libdir";;
6202 dependency_libs="$temp_deplibs"
6205 newlib_search_path="$newlib_search_path $absdir"
6206 # Link against this library
6207 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
6208 # ... and its dependency_libs
6210 for deplib in $dependency_libs; do
6211 newdependency_libs="$deplib $newdependency_libs"
6212 if $opt_duplicate_deps ; then
6213 case "$tmp_libs " in
6214 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
6217 tmp_libs="$tmp_libs $deplib"
6220 if test "$link_all_deplibs" != no; then
6221 # Add the search paths of all dependency libraries
6222 for deplib in $dependency_libs; do
6225 -L*) path="$deplib" ;;
6227 func_dirname "$deplib" "" "."
6228 dir="$func_dirname_result"
6229 # We need an absolute path.
6231 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
6233 absdir=`cd "$dir" && pwd`
6234 if test -z "$absdir"; then
6235 func_warning "cannot determine absolute directory name of \`$dir'"
6240 if $GREP "^installed=no" $deplib > /dev/null; then
6244 eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
6245 if test -n "$deplibrary_names" ; then
6246 for tmp in $deplibrary_names ; do
6249 if test -f "$absdir/$objdir/$depdepl" ; then
6250 depdepl="$absdir/$objdir/$depdepl"
6251 darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
6252 if test -z "$darwin_install_name"; then
6253 darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
6255 compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
6256 linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
6262 path="-L$absdir/$objdir"
6266 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
6267 test -z "$libdir" && \
6268 func_fatal_error "\`$deplib' is not a valid libtool archive"
6269 test "$absdir" != "$libdir" && \
6270 func_warning "\`$deplib' seems to be moved"
6276 case " $deplibs " in
6278 *) deplibs="$path $deplibs" ;;
6281 fi # link_all_deplibs != no
6283 done # for deplib in $libs
6284 if test "$pass" = link; then
6285 if test "$linkmode" = "prog"; then
6286 compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
6287 finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
6289 compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
6292 dependency_libs="$newdependency_libs"
6293 if test "$pass" = dlpreopen; then
6294 # Link the dlpreopened libraries before other libraries
6295 for deplib in $save_deplibs; do
6296 deplibs="$deplib $deplibs"
6299 if test "$pass" != dlopen; then
6300 if test "$pass" != conv; then
6301 # Make sure lib_search_path contains only unique directories.
6303 for dir in $newlib_search_path; do
6304 case "$lib_search_path " in
6306 *) lib_search_path="$lib_search_path $dir" ;;
6312 if test "$linkmode,$pass" != "prog,link"; then
6315 vars="compile_deplibs finalize_deplibs"
6317 for var in $vars dependency_libs; do
6318 # Add libraries to $var in reverse order
6319 eval tmp_libs=\"\$$var\"
6321 for deplib in $tmp_libs; do
6322 # FIXME: Pedantically, this is the right thing to do, so
6323 # that some nasty dependency loop isn't accidentally
6325 #new_libs="$deplib $new_libs"
6326 # Pragmatically, this seems to cause very few problems in
6329 -L*) new_libs="$deplib $new_libs" ;;
6332 # And here is the reason: when a library appears more
6333 # than once as an explicit dependence of a library, or
6334 # is implicitly linked in more than once by the
6335 # compiler, it is considered special, and multiple
6336 # occurrences thereof are not removed. Compare this
6337 # with having the same library being listed as a
6338 # dependency of multiple other libraries: in this case,
6339 # we know (pedantically, we assume) the library does not
6340 # need to be listed more than once, so we keep only the
6341 # last copy. This is not always right, but it is rare
6342 # enough that we require users that really mean to play
6343 # such unportable linking tricks to link the library
6344 # using -Wl,-lname, so that libtool does not consider it
6345 # for duplicate removal.
6346 case " $specialdeplibs " in
6347 *" $deplib "*) new_libs="$deplib $new_libs" ;;
6349 case " $new_libs " in
6351 *) new_libs="$deplib $new_libs" ;;
6359 for deplib in $new_libs; do
6362 case " $tmp_libs " in
6364 *) tmp_libs="$tmp_libs $deplib" ;;
6367 *) tmp_libs="$tmp_libs $deplib" ;;
6370 eval $var=\"$tmp_libs\"
6373 # Last step: remove runtime libs from dependency_libs
6374 # (they stay in deplibs)
6376 for i in $dependency_libs ; do
6377 case " $predeps $postdeps $compiler_lib_search_path " in
6382 if test -n "$i" ; then
6383 tmp_libs="$tmp_libs $i"
6386 dependency_libs=$tmp_libs
6388 if test "$linkmode" = prog; then
6389 dlfiles="$newdlfiles"
6391 if test "$linkmode" = prog || test "$linkmode" = lib; then
6392 dlprefiles="$newdlprefiles"
6397 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
6398 func_warning "\`-dlopen' is ignored for archives"
6403 func_warning "\`-l' and \`-L' are ignored for archives" ;;
6406 test -n "$rpath" && \
6407 func_warning "\`-rpath' is ignored for archives"
6409 test -n "$xrpath" && \
6410 func_warning "\`-R' is ignored for archives"
6412 test -n "$vinfo" && \
6413 func_warning "\`-version-info/-version-number' is ignored for archives"
6415 test -n "$release" && \
6416 func_warning "\`-release' is ignored for archives"
6418 test -n "$export_symbols$export_symbols_regex" && \
6419 func_warning "\`-export-symbols' is ignored for archives"
6421 # Now set the variables for building old libraries.
6422 build_libtool_libs=no
6424 objs="$objs$old_deplibs"
6428 # Make sure we only generate libraries of the form `libNAME.la'.
6431 func_stripname 'lib' '.la' "$outputname"
6432 name=$func_stripname_result
6433 eval shared_ext=\"$shrext_cmds\"
6434 eval libname=\"$libname_spec\"
6437 test "$module" = no && \
6438 func_fatal_help "libtool library \`$output' must begin with \`lib'"
6440 if test "$need_lib_prefix" != no; then
6441 # Add the "lib" prefix for modules if required
6442 func_stripname '' '.la' "$outputname"
6443 name=$func_stripname_result
6444 eval shared_ext=\"$shrext_cmds\"
6445 eval libname=\"$libname_spec\"
6447 func_stripname '' '.la' "$outputname"
6448 libname=$func_stripname_result
6453 if test -n "$objs"; then
6454 if test "$deplibs_check_method" != pass_all; then
6455 func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
6458 $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
6459 $ECHO "*** objects $objs is not portable!"
6460 libobjs="$libobjs $objs"
6464 test "$dlself" != no && \
6465 func_warning "\`-dlopen self' is ignored for libtool libraries"
6469 test "$#" -gt 1 && \
6470 func_warning "ignoring multiple \`-rpath's for a libtool library"
6475 if test -z "$rpath"; then
6476 if test "$build_libtool_libs" = yes; then
6477 # Building a libtool convenience library.
6478 # Some compilers have problems with a `.al' extension so
6479 # convenience libraries should have the same extension an
6480 # archive normally would.
6481 oldlibs="$output_objdir/$libname.$libext $oldlibs"
6482 build_libtool_libs=convenience
6486 test -n "$vinfo" && \
6487 func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
6489 test -n "$release" && \
6490 func_warning "\`-release' is ignored for convenience libraries"
6493 # Parse the version information argument.
6494 save_ifs="$IFS"; IFS=':'
6495 set dummy $vinfo 0 0 0
6500 func_fatal_help "too many parameters to \`-version-info'"
6502 # convert absolute version numbers to libtool ages
6503 # this retains compatibility with .la files and attempts
6504 # to make the code below a bit more comprehensible
6506 case $vinfo_number in
6510 number_revision="$3"
6512 # There are really only two kinds -- those that
6513 # use the current revision as the major version
6514 # and those that subtract age and use age as
6515 # a minor version. But, then there is irix
6516 # which has an extra 1 added just for fun
6518 case $version_type in
6519 darwin|linux|osf|windows|none)
6520 func_arith $number_major + $number_minor
6521 current=$func_arith_result
6523 revision="$number_revision"
6525 freebsd-aout|freebsd-elf|qnx|sunos)
6526 current="$number_major"
6527 revision="$number_minor"
6531 func_arith $number_major + $number_minor
6532 current=$func_arith_result
6534 revision="$number_minor"
6535 lt_irix_increment=no
6546 # Check that each of the things are valid numbers.
6548 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]) ;;
6550 func_error "CURRENT \`$current' must be a nonnegative integer"
6551 func_fatal_error "\`$vinfo' is not valid version information"
6556 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]) ;;
6558 func_error "REVISION \`$revision' must be a nonnegative integer"
6559 func_fatal_error "\`$vinfo' is not valid version information"
6564 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]) ;;
6566 func_error "AGE \`$age' must be a nonnegative integer"
6567 func_fatal_error "\`$vinfo' is not valid version information"
6571 if test "$age" -gt "$current"; then
6572 func_error "AGE \`$age' is greater than the current interface number \`$current'"
6573 func_fatal_error "\`$vinfo' is not valid version information"
6576 # Calculate the version variables.
6580 case $version_type in
6584 # Like Linux, but with the current version available in
6585 # verstring for coding it into the library header
6586 func_arith $current - $age
6587 major=.$func_arith_result
6588 versuffix="$major.$age.$revision"
6589 # Darwin ld doesn't like 0 for these options...
6590 func_arith $current + 1
6591 minor_current=$func_arith_result
6592 xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
6593 verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
6598 versuffix=".$current.$revision";
6603 versuffix=".$current"
6607 if test "X$lt_irix_increment" = "Xno"; then
6608 func_arith $current - $age
6610 func_arith $current - $age + 1
6612 major=$func_arith_result
6614 case $version_type in
6615 nonstopux) verstring_prefix=nonstopux ;;
6616 *) verstring_prefix=sgi ;;
6618 verstring="$verstring_prefix$major.$revision"
6620 # Add in all the interfaces that we are compatible with.
6622 while test "$loop" -ne 0; do
6623 func_arith $revision - $loop
6624 iface=$func_arith_result
6625 func_arith $loop - 1
6626 loop=$func_arith_result
6627 verstring="$verstring_prefix$major.$iface:$verstring"
6630 # Before this point, $major must not contain `.'.
6632 versuffix="$major.$revision"
6636 func_arith $current - $age
6637 major=.$func_arith_result
6638 versuffix="$major.$age.$revision"
6642 func_arith $current - $age
6643 major=.$func_arith_result
6644 versuffix=".$current.$age.$revision"
6645 verstring="$current.$age.$revision"
6647 # Add in all the interfaces that we are compatible with.
6649 while test "$loop" -ne 0; do
6650 func_arith $current - $loop
6651 iface=$func_arith_result
6652 func_arith $loop - 1
6653 loop=$func_arith_result
6654 verstring="$verstring:${iface}.0"
6657 # Make executables depend on our current version.
6658 verstring="$verstring:${current}.0"
6663 versuffix=".$current"
6668 versuffix=".$current.$revision"
6672 # Use '-' rather than '.', since we only want one
6673 # extension on DOS 8.3 filesystems.
6674 func_arith $current - $age
6675 major=$func_arith_result
6680 func_fatal_configuration "unknown library version type \`$version_type'"
6684 # Clear the version info if we defaulted, and they specified a release.
6685 if test -z "$vinfo" && test -n "$release"; then
6687 case $version_type in
6689 # we can't check for "0.0" in archive_cmds due to quoting
6690 # problems, so we reset it completely
6697 if test "$need_version" = no; then
6704 # Remove version info from name if versioning should be avoided
6705 if test "$avoid_version" = yes && test "$need_version" = no; then
6711 # Check to see if the archive will have undefined symbols.
6712 if test "$allow_undefined" = yes; then
6713 if test "$allow_undefined_flag" = unsupported; then
6714 func_warning "undefined symbols not allowed in $host shared libraries"
6715 build_libtool_libs=no
6719 # Don't allow undefined symbols.
6720 allow_undefined_flag="$no_undefined_flag"
6725 func_generate_dlsyms "$libname" "$libname" "yes"
6726 libobjs="$libobjs $symfileobj"
6727 test "X$libobjs" = "X " && libobjs=
6729 if test "$mode" != relink; then
6730 # Remove our outputs, but don't remove object files since they
6731 # may have been created when compiling PIC objects.
6733 tempremovelist=`$ECHO "$output_objdir/*"`
6734 for p in $tempremovelist; do
6738 $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
6739 if test "X$precious_files_regex" != "X"; then
6740 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
6745 removelist="$removelist $p"
6750 test -n "$removelist" && \
6751 func_show_eval "${RM}r \$removelist"
6754 # Now set the variables for building old libraries.
6755 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
6756 oldlibs="$oldlibs $output_objdir/$libname.$libext"
6758 # Transform .lo files to .o files.
6759 oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
6762 # Eliminate all temporary directories.
6763 #for path in $notinst_path; do
6764 # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
6765 # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
6766 # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
6769 if test -n "$xrpath"; then
6770 # If the user specified any rpath flags, then add them.
6772 for libdir in $xrpath; do
6773 temp_xrpath="$temp_xrpath -R$libdir"
6774 case "$finalize_rpath " in
6776 *) finalize_rpath="$finalize_rpath $libdir" ;;
6779 if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
6780 dependency_libs="$temp_xrpath $dependency_libs"
6784 # Make sure dlfiles contains only unique files that won't be dlpreopened
6785 old_dlfiles="$dlfiles"
6787 for lib in $old_dlfiles; do
6788 case " $dlprefiles $dlfiles " in
6790 *) dlfiles="$dlfiles $lib" ;;
6794 # Make sure dlprefiles contains only unique files
6795 old_dlprefiles="$dlprefiles"
6797 for lib in $old_dlprefiles; do
6798 case "$dlprefiles " in
6800 *) dlprefiles="$dlprefiles $lib" ;;
6804 if test "$build_libtool_libs" = yes; then
6805 if test -n "$rpath"; then
6807 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
6808 # these systems don't actually have a c library (as such)!
6810 *-*-rhapsody* | *-*-darwin1.[012])
6811 # Rhapsody C library is in the System framework
6812 deplibs="$deplibs System.ltframework"
6815 # Don't link with libc until the a.out ld.so is fixed.
6817 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
6818 # Do not include libc due to us having libc/libc_r.
6820 *-*-sco3.2v5* | *-*-sco5v6*)
6821 # Causes problems with __ctype
6823 *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
6824 # Compiler inserts libc in the correct place for threads to work
6827 # Add libc to deplibs on all other systems if necessary.
6828 if test "$build_libtool_need_lc" = "yes"; then
6829 deplibs="$deplibs -lc"
6835 # Transform deplibs into only deplibs that can be linked in shared.
6837 libname_save=$libname
6838 release_save=$release
6839 versuffix_save=$versuffix
6841 # I'm not sure if I'm treating the release correctly. I think
6842 # release should show up in the -l (ie -lgmp5) so we don't want to
6843 # add it in twice. Is that correct?
6849 case $deplibs_check_method in
6851 # Don't check for shared/static. Everything works.
6852 # This might be a little naive. We might want to check
6853 # whether the library exists or not. But this is on
6854 # osf3 & osf4 and I'm not really sure... Just
6855 # implementing what was already the behavior.
6859 # This code stresses the "libraries are programs" paradigm to its
6860 # limits. Maybe even breaks it. We compile a program, linking it
6861 # against the deplibs as a proxy for the library. Then we can check
6862 # whether they linked in statically or dynamically with ldd.
6863 $opt_dry_run || $RM conftest.c
6864 cat > conftest.c <<EOF
6865 int main() { return 0; }
6867 $opt_dry_run || $RM conftest
6868 if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
6869 ldd_output=`ldd conftest`
6870 for i in $deplibs; do
6873 func_stripname -l '' "$i"
6874 name=$func_stripname_result
6875 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
6876 case " $predeps $postdeps " in
6878 newdeplibs="$newdeplibs $i"
6883 if test -n "$i" ; then
6884 libname=`eval "\\$ECHO \"$libname_spec\""`
6885 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
6886 set dummy $deplib_matches; shift
6888 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
6889 newdeplibs="$newdeplibs $i"
6893 $ECHO "*** Warning: dynamic linker does not accept needed library $i."
6894 echo "*** I have the capability to make that library automatically link in when"
6895 echo "*** you link to this library. But I can only do this if you have a"
6896 echo "*** shared version of the library, which I believe you do not have"
6897 echo "*** because a test_compile did reveal that the linker did not use it for"
6898 echo "*** its dynamic dependency list that programs get resolved with at runtime."
6903 newdeplibs="$newdeplibs $i"
6908 # Error occurred in the first compile. Let's try to salvage
6909 # the situation: Compile a separate program for each library.
6910 for i in $deplibs; do
6913 func_stripname -l '' "$i"
6914 name=$func_stripname_result
6915 $opt_dry_run || $RM conftest
6916 if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
6917 ldd_output=`ldd conftest`
6918 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
6919 case " $predeps $postdeps " in
6921 newdeplibs="$newdeplibs $i"
6926 if test -n "$i" ; then
6927 libname=`eval "\\$ECHO \"$libname_spec\""`
6928 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
6929 set dummy $deplib_matches; shift
6931 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
6932 newdeplibs="$newdeplibs $i"
6936 $ECHO "*** Warning: dynamic linker does not accept needed library $i."
6937 echo "*** I have the capability to make that library automatically link in when"
6938 echo "*** you link to this library. But I can only do this if you have a"
6939 echo "*** shared version of the library, which you do not appear to have"
6940 echo "*** because a test_compile did reveal that the linker did not use this one"
6941 echo "*** as a dynamic dependency that programs can get resolved with at runtime."
6947 $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
6948 echo "*** make it link in! You will probably need to install it or some"
6949 echo "*** library that it depends on before this library will be fully"
6950 echo "*** functional. Installing it before continuing would be even better."
6954 newdeplibs="$newdeplibs $i"
6961 set dummy $deplibs_check_method; shift
6962 file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
6963 for a_deplib in $deplibs; do
6966 func_stripname -l '' "$a_deplib"
6967 name=$func_stripname_result
6968 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
6969 case " $predeps $postdeps " in
6971 newdeplibs="$newdeplibs $a_deplib"
6976 if test -n "$a_deplib" ; then
6977 libname=`eval "\\$ECHO \"$libname_spec\""`
6978 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
6979 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
6980 for potent_lib in $potential_libs; do
6981 # Follow soft links.
6982 if ls -lLd "$potent_lib" 2>/dev/null |
6983 $GREP " -> " >/dev/null; then
6986 # The statement above tries to avoid entering an
6987 # endless loop below, in case of cyclic links.
6988 # We might still enter an endless loop, since a link
6989 # loop can be closed while we follow links,
6991 potlib="$potent_lib"
6992 while test -h "$potlib" 2>/dev/null; do
6993 potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
6995 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
6996 *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
6999 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
7001 $EGREP "$file_magic_regex" > /dev/null; then
7002 newdeplibs="$newdeplibs $a_deplib"
7009 if test -n "$a_deplib" ; then
7012 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
7013 echo "*** I have the capability to make that library automatically link in when"
7014 echo "*** you link to this library. But I can only do this if you have a"
7015 echo "*** shared version of the library, which you do not appear to have"
7016 echo "*** because I did check the linker path looking for a file starting"
7017 if test -z "$potlib" ; then
7018 $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
7020 $ECHO "*** with $libname and none of the candidates passed a file format test"
7021 $ECHO "*** using a file magic. Last file checked: $potlib"
7026 # Add a -L argument.
7027 newdeplibs="$newdeplibs $a_deplib"
7030 done # Gone through all deplibs.
7033 set dummy $deplibs_check_method; shift
7034 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
7035 for a_deplib in $deplibs; do
7038 func_stripname -l '' "$a_deplib"
7039 name=$func_stripname_result
7040 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7041 case " $predeps $postdeps " in
7043 newdeplibs="$newdeplibs $a_deplib"
7048 if test -n "$a_deplib" ; then
7049 libname=`eval "\\$ECHO \"$libname_spec\""`
7050 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
7051 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
7052 for potent_lib in $potential_libs; do
7053 potlib="$potent_lib" # see symlink-check above in file_magic test
7054 if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
7055 $EGREP "$match_pattern_regex" > /dev/null; then
7056 newdeplibs="$newdeplibs $a_deplib"
7063 if test -n "$a_deplib" ; then
7066 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
7067 echo "*** I have the capability to make that library automatically link in when"
7068 echo "*** you link to this library. But I can only do this if you have a"
7069 echo "*** shared version of the library, which you do not appear to have"
7070 echo "*** because I did check the linker path looking for a file starting"
7071 if test -z "$potlib" ; then
7072 $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
7074 $ECHO "*** with $libname and none of the candidates passed a file format test"
7075 $ECHO "*** using a regex pattern. Last file checked: $potlib"
7080 # Add a -L argument.
7081 newdeplibs="$newdeplibs $a_deplib"
7084 done # Gone through all deplibs.
7088 tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
7089 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7090 for i in $predeps $postdeps ; do
7091 # can't use Xsed below, because $i might contain '/'
7092 tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
7095 case $tmp_deplibs in
7098 if test "X$deplibs_check_method" = "Xnone"; then
7099 echo "*** Warning: inter-library dependencies are not supported in this platform."
7101 echo "*** Warning: inter-library dependencies are not known to be supported."
7103 echo "*** All declared inter-library dependencies are being dropped."
7109 versuffix=$versuffix_save
7111 release=$release_save
7112 libname=$libname_save
7116 *-*-rhapsody* | *-*-darwin1.[012])
7117 # On Rhapsody replace the C library with the System framework
7118 newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
7122 if test "$droppeddeps" = yes; then
7123 if test "$module" = yes; then
7125 echo "*** Warning: libtool could not satisfy all declared inter-library"
7126 $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
7127 echo "*** a static module, that should work as long as the dlopening"
7128 echo "*** application is linked with the -dlopen flag."
7129 if test -z "$global_symbol_pipe"; then
7131 echo "*** However, this would only work if libtool was able to extract symbol"
7132 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
7133 echo "*** not find such a program. So, this module is probably useless."
7134 echo "*** \`nm' from GNU binutils and a full rebuild may help."
7136 if test "$build_old_libs" = no; then
7137 oldlibs="$output_objdir/$libname.$libext"
7138 build_libtool_libs=module
7141 build_libtool_libs=no
7144 echo "*** The inter-library dependencies that have been dropped here will be"
7145 echo "*** automatically added whenever a program is linked with this library"
7146 echo "*** or is declared to -dlopen it."
7148 if test "$allow_undefined" = no; then
7150 echo "*** Since this library must not contain undefined symbols,"
7151 echo "*** because either the platform does not support them or"
7152 echo "*** it was explicitly requested with -no-undefined,"
7153 echo "*** libtool will only create a static version of it."
7154 if test "$build_old_libs" = no; then
7155 oldlibs="$output_objdir/$libname.$libext"
7156 build_libtool_libs=module
7159 build_libtool_libs=no
7164 # Done checking deplibs!
7167 # Time to change all our "foo.ltframework" stuff back to "-framework foo"
7170 newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7171 new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7172 deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7176 # move library search paths that coincide with paths to not yet
7177 # installed libraries to the beginning of the library search list
7179 for path in $notinst_path; do
7180 case " $new_libs " in
7181 *" -L$path/$objdir "*) ;;
7183 case " $deplibs " in
7184 *" -L$path/$objdir "*)
7185 new_libs="$new_libs -L$path/$objdir" ;;
7190 for deplib in $deplibs; do
7193 case " $new_libs " in
7195 *) new_libs="$new_libs $deplib" ;;
7198 *) new_libs="$new_libs $deplib" ;;
7203 # All the library-specific variables (install_libdir is set above).
7208 # Test again, we may have decided not to build it any more
7209 if test "$build_libtool_libs" = yes; then
7210 if test "$hardcode_into_libs" = yes; then
7211 # Hardcode the library paths
7214 rpath="$finalize_rpath"
7215 test "$mode" != relink && rpath="$compile_rpath$rpath"
7216 for libdir in $rpath; do
7217 if test -n "$hardcode_libdir_flag_spec"; then
7218 if test -n "$hardcode_libdir_separator"; then
7219 if test -z "$hardcode_libdirs"; then
7220 hardcode_libdirs="$libdir"
7222 # Just accumulate the unique libdirs.
7223 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
7224 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
7227 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
7232 eval flag=\"$hardcode_libdir_flag_spec\"
7233 dep_rpath="$dep_rpath $flag"
7235 elif test -n "$runpath_var"; then
7236 case "$perm_rpath " in
7238 *) perm_rpath="$perm_rpath $libdir" ;;
7242 # Substitute the hardcoded libdirs into the rpath.
7243 if test -n "$hardcode_libdir_separator" &&
7244 test -n "$hardcode_libdirs"; then
7245 libdir="$hardcode_libdirs"
7246 if test -n "$hardcode_libdir_flag_spec_ld"; then
7247 eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
7249 eval dep_rpath=\"$hardcode_libdir_flag_spec\"
7252 if test -n "$runpath_var" && test -n "$perm_rpath"; then
7253 # We should set the runpath_var.
7255 for dir in $perm_rpath; do
7258 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
7260 test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
7263 shlibpath="$finalize_shlibpath"
7264 test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
7265 if test -n "$shlibpath"; then
7266 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
7269 # Get the real and link names of the library.
7270 eval shared_ext=\"$shrext_cmds\"
7271 eval library_names=\"$library_names_spec\"
7272 set dummy $library_names
7277 if test -n "$soname_spec"; then
7278 eval soname=\"$soname_spec\"
7282 if test -z "$dlname"; then
7286 lib="$output_objdir/$realname"
7290 linknames="$linknames $link"
7293 # Use standard objects if they are pic
7294 test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
7295 test "X$libobjs" = "X " && libobjs=
7298 if test -n "$export_symbols" && test -n "$include_expsyms"; then
7299 $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
7300 export_symbols="$output_objdir/$libname.uexp"
7301 delfiles="$delfiles $export_symbols"
7304 orig_export_symbols=
7306 cygwin* | mingw* | cegcc*)
7307 if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
7308 # exporting using user supplied symfile
7309 if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
7310 # and it's NOT already a .def file. Must figure out
7311 # which of the given symbols are data symbols and tag
7312 # them as such. So, trigger use of export_symbols_cmds.
7313 # export_symbols gets reassigned inside the "prepare
7314 # the list of exported symbols" if statement, so the
7315 # include_expsyms logic still works.
7316 orig_export_symbols="$export_symbols"
7318 always_export_symbols=yes
7324 # Prepare the list of exported symbols
7325 if test -z "$export_symbols"; then
7326 if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
7327 func_verbose "generating symbol list for \`$libname.la'"
7328 export_symbols="$output_objdir/$libname.exp"
7329 $opt_dry_run || $RM $export_symbols
7330 cmds=$export_symbols_cmds
7331 save_ifs="$IFS"; IFS='~'
7332 for cmd in $cmds; do
7336 len=$func_len_result
7337 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
7338 func_show_eval "$cmd" 'exit $?'
7339 skipped_export=false
7341 # The command line is too long to execute in one step.
7342 func_verbose "using reloadable object file for export list..."
7344 # Break out early, otherwise skipped_export may be
7345 # set to false by a later but shorter cmd.
7350 if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
7351 func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
7352 func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
7357 if test -n "$export_symbols" && test -n "$include_expsyms"; then
7358 tmp_export_symbols="$export_symbols"
7359 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
7360 $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
7363 if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
7364 # The given exports_symbols file has to be filtered, so filter it.
7365 func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
7366 # FIXME: $output_objdir/$libname.filter potentially contains lots of
7367 # 's' commands which not all seds can handle. GNU sed should be fine
7368 # though. Also, the filter scales superlinearly with the number of
7369 # global variables. join(1) would be nice here, but unfortunately
7370 # isn't a blessed tool.
7371 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
7372 delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
7373 export_symbols=$output_objdir/$libname.def
7374 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
7378 for test_deplib in $deplibs; do
7379 case " $convenience " in
7380 *" $test_deplib "*) ;;
7382 tmp_deplibs="$tmp_deplibs $test_deplib"
7386 deplibs="$tmp_deplibs"
7388 if test -n "$convenience"; then
7389 if test -n "$whole_archive_flag_spec" &&
7390 test "$compiler_needs_object" = yes &&
7391 test -z "$libobjs"; then
7392 # extract the archives, so we have objects to list.
7393 # TODO: could optimize this to just extract one archive.
7394 whole_archive_flag_spec=
7396 if test -n "$whole_archive_flag_spec"; then
7397 save_libobjs=$libobjs
7398 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
7399 test "X$libobjs" = "X " && libobjs=
7401 gentop="$output_objdir/${outputname}x"
7402 generated="$generated $gentop"
7404 func_extract_archives $gentop $convenience
7405 libobjs="$libobjs $func_extract_archives_result"
7406 test "X$libobjs" = "X " && libobjs=
7410 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
7411 eval flag=\"$thread_safe_flag_spec\"
7412 linker_flags="$linker_flags $flag"
7415 # Make a backup of the uninstalled library when relinking
7416 if test "$mode" = relink; then
7417 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
7420 # Do each of the archive commands.
7421 if test "$module" = yes && test -n "$module_cmds" ; then
7422 if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
7423 eval test_cmds=\"$module_expsym_cmds\"
7424 cmds=$module_expsym_cmds
7426 eval test_cmds=\"$module_cmds\"
7430 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
7431 eval test_cmds=\"$archive_expsym_cmds\"
7432 cmds=$archive_expsym_cmds
7434 eval test_cmds=\"$archive_cmds\"
7439 if test "X$skipped_export" != "X:" &&
7440 func_len " $test_cmds" &&
7441 len=$func_len_result &&
7442 test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
7445 # The command line is too long to link in one step, link piecewise
7446 # or, if using GNU ld and skipped_export is not :, use a linker
7449 # Save the value of $output and $libobjs because we want to
7450 # use them later. If we have whole_archive_flag_spec, we
7451 # want to use save_libobjs as it was before
7452 # whole_archive_flag_spec was expanded, because we can't
7453 # assume the linker understands whole_archive_flag_spec.
7454 # This may have to be revisited, in case too many
7455 # convenience libraries get linked in and end up exceeding
7457 if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
7458 save_libobjs=$libobjs
7461 func_basename "$output"
7462 output_la=$func_basename_result
7464 # Clear the reloadable object creation command queue and
7465 # initialize k to one.
7472 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
7473 output=${output_objdir}/${output_la}.lnkscript
7474 func_verbose "creating GNU ld script: $output"
7475 echo 'INPUT (' > $output
7476 for obj in $save_libobjs
7478 $ECHO "$obj" >> $output
7481 delfiles="$delfiles $output"
7482 elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
7483 output=${output_objdir}/${output_la}.lnk
7484 func_verbose "creating linker input file list: $output"
7489 if test "$compiler_needs_object" = yes; then
7495 $ECHO "$obj" >> $output
7497 delfiles="$delfiles $output"
7498 output=$firstobj\"$file_list_spec$output\"
7500 if test -n "$save_libobjs"; then
7501 func_verbose "creating reloadable object files..."
7502 output=$output_objdir/$output_la-${k}.$objext
7503 eval test_cmds=\"$reload_cmds\"
7504 func_len " $test_cmds"
7505 len0=$func_len_result
7508 # Loop over the list of objects to be linked.
7509 for obj in $save_libobjs
7512 func_arith $len + $func_len_result
7513 len=$func_arith_result
7514 if test "X$objlist" = X ||
7515 test "$len" -lt "$max_cmd_len"; then
7516 func_append objlist " $obj"
7518 # The command $test_cmds is almost too long, add a
7519 # command to the queue.
7520 if test "$k" -eq 1 ; then
7521 # The first file doesn't have a previous command to add.
7522 reload_objs=$objlist
7523 eval concat_cmds=\"$reload_cmds\"
7525 # All subsequent reloadable object files will link in
7526 # the last one created.
7527 reload_objs="$objlist $last_robj"
7528 eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
7530 last_robj=$output_objdir/$output_la-${k}.$objext
7532 k=$func_arith_result
7533 output=$output_objdir/$output_la-${k}.$objext
7535 func_len " $last_robj"
7536 func_arith $len0 + $func_len_result
7537 len=$func_arith_result
7540 # Handle the remaining objects by creating one last
7541 # reloadable object file. All subsequent reloadable object
7542 # files will link in the last one created.
7543 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
7544 reload_objs="$objlist $last_robj"
7545 eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
7546 if test -n "$last_robj"; then
7547 eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
7549 delfiles="$delfiles $output"
7555 if ${skipped_export-false}; then
7556 func_verbose "generating symbol list for \`$libname.la'"
7557 export_symbols="$output_objdir/$libname.exp"
7558 $opt_dry_run || $RM $export_symbols
7560 # Append the command to create the export file.
7561 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
7562 eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
7563 if test -n "$last_robj"; then
7564 eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
7568 test -n "$save_libobjs" &&
7569 func_verbose "creating a temporary reloadable object file: $output"
7571 # Loop through the commands generated above and execute them.
7572 save_ifs="$IFS"; IFS='~'
7573 for cmd in $concat_cmds; do
7576 func_quote_for_expand "$cmd"
7577 eval "func_echo $func_quote_for_expand_result"
7579 $opt_dry_run || eval "$cmd" || {
7582 # Restore the uninstalled library and exit
7583 if test "$mode" = relink; then
7584 ( cd "$output_objdir" && \
7585 $RM "${realname}T" && \
7586 $MV "${realname}U" "$realname" )
7594 if test -n "$export_symbols_regex" && ${skipped_export-false}; then
7595 func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
7596 func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
7600 if ${skipped_export-false}; then
7601 if test -n "$export_symbols" && test -n "$include_expsyms"; then
7602 tmp_export_symbols="$export_symbols"
7603 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
7604 $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
7607 if test -n "$orig_export_symbols"; then
7608 # The given exports_symbols file has to be filtered, so filter it.
7609 func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
7610 # FIXME: $output_objdir/$libname.filter potentially contains lots of
7611 # 's' commands which not all seds can handle. GNU sed should be fine
7612 # though. Also, the filter scales superlinearly with the number of
7613 # global variables. join(1) would be nice here, but unfortunately
7614 # isn't a blessed tool.
7615 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
7616 delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
7617 export_symbols=$output_objdir/$libname.def
7618 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
7623 # Restore the value of output.
7626 if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
7627 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
7628 test "X$libobjs" = "X " && libobjs=
7630 # Expand the library linking commands again to reset the
7631 # value of $libobjs for piecewise linking.
7633 # Do each of the archive commands.
7634 if test "$module" = yes && test -n "$module_cmds" ; then
7635 if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
7636 cmds=$module_expsym_cmds
7641 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
7642 cmds=$archive_expsym_cmds
7649 if test -n "$delfiles"; then
7650 # Append the command to remove temporary files to $cmds.
7651 eval cmds=\"\$cmds~\$RM $delfiles\"
7654 # Add any objects from preloaded convenience libraries
7655 if test -n "$dlprefiles"; then
7656 gentop="$output_objdir/${outputname}x"
7657 generated="$generated $gentop"
7659 func_extract_archives $gentop $dlprefiles
7660 libobjs="$libobjs $func_extract_archives_result"
7661 test "X$libobjs" = "X " && libobjs=
7664 save_ifs="$IFS"; IFS='~'
7665 for cmd in $cmds; do
7669 func_quote_for_expand "$cmd"
7670 eval "func_echo $func_quote_for_expand_result"
7672 $opt_dry_run || eval "$cmd" || {
7675 # Restore the uninstalled library and exit
7676 if test "$mode" = relink; then
7677 ( cd "$output_objdir" && \
7678 $RM "${realname}T" && \
7679 $MV "${realname}U" "$realname" )
7687 # Restore the uninstalled library and exit
7688 if test "$mode" = relink; then
7689 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
7691 if test -n "$convenience"; then
7692 if test -z "$whole_archive_flag_spec"; then
7693 func_show_eval '${RM}r "$gentop"'
7700 # Create links to the real library.
7701 for linkname in $linknames; do
7702 if test "$realname" != "$linkname"; then
7703 func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
7707 # If -module or -export-dynamic was specified, set the dlname.
7708 if test "$module" = yes || test "$export_dynamic" = yes; then
7709 # On all known operating systems, these are identical.
7716 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
7717 func_warning "\`-dlopen' is ignored for objects"
7722 func_warning "\`-l' and \`-L' are ignored for objects" ;;
7725 test -n "$rpath" && \
7726 func_warning "\`-rpath' is ignored for objects"
7728 test -n "$xrpath" && \
7729 func_warning "\`-R' is ignored for objects"
7731 test -n "$vinfo" && \
7732 func_warning "\`-version-info' is ignored for objects"
7734 test -n "$release" && \
7735 func_warning "\`-release' is ignored for objects"
7739 test -n "$objs$old_deplibs" && \
7740 func_fatal_error "cannot build library object \`$output' from non-libtool objects"
7744 obj=$func_lo2o_result
7752 # Delete the old objects.
7753 $opt_dry_run || $RM $obj $libobj
7755 # Objects from convenience libraries. This assumes
7756 # single-version convenience libraries. Whenever we create
7757 # different ones for PIC/non-PIC, this we'll have to duplicate
7761 # reload_cmds runs $LD directly, so let us get rid of
7762 # -Wl from whole_archive_flag_spec and hope we can get by with
7763 # turning comma into space..
7766 if test -n "$convenience"; then
7767 if test -n "$whole_archive_flag_spec"; then
7768 eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
7769 reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
7771 gentop="$output_objdir/${obj}x"
7772 generated="$generated $gentop"
7774 func_extract_archives $gentop $convenience
7775 reload_conv_objs="$reload_objs $func_extract_archives_result"
7779 # Create the old-style object.
7780 reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
7783 func_execute_cmds "$reload_cmds" 'exit $?'
7785 # Exit if we aren't doing a library object file.
7786 if test -z "$libobj"; then
7787 if test -n "$gentop"; then
7788 func_show_eval '${RM}r "$gentop"'
7794 if test "$build_libtool_libs" != yes; then
7795 if test -n "$gentop"; then
7796 func_show_eval '${RM}r "$gentop"'
7799 # Create an invalid libtool object if no PIC, so that we don't
7800 # accidentally link it into a program.
7801 # $show "echo timestamp > $libobj"
7802 # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
7806 if test -n "$pic_flag" || test "$pic_mode" != default; then
7807 # Only do commands if we really have different PIC objects.
7808 reload_objs="$libobjs $reload_conv_objs"
7810 func_execute_cmds "$reload_cmds" 'exit $?'
7813 if test -n "$gentop"; then
7814 func_show_eval '${RM}r "$gentop"'
7822 *cygwin*) func_stripname '' '.exe' "$output"
7823 output=$func_stripname_result.exe;;
7825 test -n "$vinfo" && \
7826 func_warning "\`-version-info' is ignored for programs"
7828 test -n "$release" && \
7829 func_warning "\`-release' is ignored for programs"
7831 test "$preload" = yes \
7832 && test "$dlopen_support" = unknown \
7833 && test "$dlopen_self" = unknown \
7834 && test "$dlopen_self_static" = unknown && \
7835 func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
7838 *-*-rhapsody* | *-*-darwin1.[012])
7839 # On Rhapsody replace the C library is the System framework
7840 compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
7841 finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
7847 # Don't allow lazy linking, it breaks C++ global constructors
7848 # But is supposedly fixed on 10.4 or later (yay!).
7849 if test "$tagname" = CXX ; then
7850 case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
7852 compile_command="$compile_command ${wl}-bind_at_load"
7853 finalize_command="$finalize_command ${wl}-bind_at_load"
7857 # Time to change all our "foo.ltframework" stuff back to "-framework foo"
7858 compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7859 finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7864 # move library search paths that coincide with paths to not yet
7865 # installed libraries to the beginning of the library search list
7867 for path in $notinst_path; do
7868 case " $new_libs " in
7869 *" -L$path/$objdir "*) ;;
7871 case " $compile_deplibs " in
7872 *" -L$path/$objdir "*)
7873 new_libs="$new_libs -L$path/$objdir" ;;
7878 for deplib in $compile_deplibs; do
7881 case " $new_libs " in
7883 *) new_libs="$new_libs $deplib" ;;
7886 *) new_libs="$new_libs $deplib" ;;
7889 compile_deplibs="$new_libs"
7892 compile_command="$compile_command $compile_deplibs"
7893 finalize_command="$finalize_command $finalize_deplibs"
7895 if test -n "$rpath$xrpath"; then
7896 # If the user specified any rpath flags, then add them.
7897 for libdir in $rpath $xrpath; do
7898 # This is the magic to use -rpath.
7899 case "$finalize_rpath " in
7901 *) finalize_rpath="$finalize_rpath $libdir" ;;
7906 # Now hardcode the library paths
7909 for libdir in $compile_rpath $finalize_rpath; do
7910 if test -n "$hardcode_libdir_flag_spec"; then
7911 if test -n "$hardcode_libdir_separator"; then
7912 if test -z "$hardcode_libdirs"; then
7913 hardcode_libdirs="$libdir"
7915 # Just accumulate the unique libdirs.
7916 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
7917 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
7920 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
7925 eval flag=\"$hardcode_libdir_flag_spec\"
7926 rpath="$rpath $flag"
7928 elif test -n "$runpath_var"; then
7929 case "$perm_rpath " in
7931 *) perm_rpath="$perm_rpath $libdir" ;;
7935 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
7936 testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
7937 case :$dllsearchpath: in
7939 ::) dllsearchpath=$libdir;;
7940 *) dllsearchpath="$dllsearchpath:$libdir";;
7942 case :$dllsearchpath: in
7943 *":$testbindir:"*) ;;
7944 ::) dllsearchpath=$testbindir;;
7945 *) dllsearchpath="$dllsearchpath:$testbindir";;
7950 # Substitute the hardcoded libdirs into the rpath.
7951 if test -n "$hardcode_libdir_separator" &&
7952 test -n "$hardcode_libdirs"; then
7953 libdir="$hardcode_libdirs"
7954 eval rpath=\" $hardcode_libdir_flag_spec\"
7956 compile_rpath="$rpath"
7960 for libdir in $finalize_rpath; do
7961 if test -n "$hardcode_libdir_flag_spec"; then
7962 if test -n "$hardcode_libdir_separator"; then
7963 if test -z "$hardcode_libdirs"; then
7964 hardcode_libdirs="$libdir"
7966 # Just accumulate the unique libdirs.
7967 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
7968 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
7971 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
7976 eval flag=\"$hardcode_libdir_flag_spec\"
7977 rpath="$rpath $flag"
7979 elif test -n "$runpath_var"; then
7980 case "$finalize_perm_rpath " in
7982 *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
7986 # Substitute the hardcoded libdirs into the rpath.
7987 if test -n "$hardcode_libdir_separator" &&
7988 test -n "$hardcode_libdirs"; then
7989 libdir="$hardcode_libdirs"
7990 eval rpath=\" $hardcode_libdir_flag_spec\"
7992 finalize_rpath="$rpath"
7994 if test -n "$libobjs" && test "$build_old_libs" = yes; then
7995 # Transform all the library objects into standard objects.
7996 compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
7997 finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
8000 func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
8002 # template prelinking step
8003 if test -n "$prelink_cmds"; then
8004 func_execute_cmds "$prelink_cmds" 'exit $?'
8007 wrappers_required=yes
8009 *cegcc* | *mingw32ce*)
8010 # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
8011 wrappers_required=no
8013 *cygwin* | *mingw* )
8014 if test "$build_libtool_libs" != yes; then
8015 wrappers_required=no
8019 if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
8020 wrappers_required=no
8024 if test "$wrappers_required" = no; then
8025 # Replace the output file specification.
8026 compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
8027 link_command="$compile_command$compile_rpath"
8029 # We have no uninstalled library dependencies, so finalize right now.
8031 func_show_eval "$link_command" 'exit_status=$?'
8033 # Delete the generated files.
8034 if test -f "$output_objdir/${outputname}S.${objext}"; then
8035 func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
8041 if test -n "$compile_shlibpath$finalize_shlibpath"; then
8042 compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
8044 if test -n "$finalize_shlibpath"; then
8045 finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
8050 if test -n "$runpath_var"; then
8051 if test -n "$perm_rpath"; then
8052 # We should set the runpath_var.
8054 for dir in $perm_rpath; do
8057 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
8059 if test -n "$finalize_perm_rpath"; then
8060 # We should set the runpath_var.
8062 for dir in $finalize_perm_rpath; do
8065 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
8069 if test "$no_install" = yes; then
8070 # We don't need to create a wrapper script.
8071 link_command="$compile_var$compile_command$compile_rpath"
8072 # Replace the output file specification.
8073 link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
8074 # Delete the old output file.
8075 $opt_dry_run || $RM $output
8076 # Link the executable and exit
8077 func_show_eval "$link_command" 'exit $?'
8081 if test "$hardcode_action" = relink; then
8082 # Fast installation is not supported
8083 link_command="$compile_var$compile_command$compile_rpath"
8084 relink_command="$finalize_var$finalize_command$finalize_rpath"
8086 func_warning "this platform does not like uninstalled shared libraries"
8087 func_warning "\`$output' will be relinked during installation"
8089 if test "$fast_install" != no; then
8090 link_command="$finalize_var$compile_command$finalize_rpath"
8091 if test "$fast_install" = yes; then
8092 relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
8094 # fast_install is set to needless
8098 link_command="$compile_var$compile_command$compile_rpath"
8099 relink_command="$finalize_var$finalize_command$finalize_rpath"
8103 # Replace the output file specification.
8104 link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
8106 # Delete the old output files.
8107 $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
8109 func_show_eval "$link_command" 'exit $?'
8111 # Now create the wrapper script.
8112 func_verbose "creating $output"
8114 # Quote the relink command for shipping.
8115 if test -n "$relink_command"; then
8116 # Preserve any variables that may affect compiler behavior
8117 for var in $variables_saved_for_relink; do
8118 if eval test -z \"\${$var+set}\"; then
8119 relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
8120 elif eval var_value=\$$var; test -z "$var_value"; then
8121 relink_command="$var=; export $var; $relink_command"
8123 func_quote_for_eval "$var_value"
8124 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
8127 relink_command="(cd `pwd`; $relink_command)"
8128 relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
8131 # Only actually do things if not in dry run mode.
8133 # win32 will think the script is a binary if it has
8134 # a .exe suffix, so we strip it off here.
8136 *.exe) func_stripname '' '.exe' "$output"
8137 output=$func_stripname_result ;;
8139 # test for cygwin because mv fails w/o .exe extensions
8143 func_stripname '' '.exe' "$outputname"
8144 outputname=$func_stripname_result ;;
8148 *cygwin* | *mingw* )
8149 func_dirname_and_basename "$output" "" "."
8150 output_name=$func_basename_result
8151 output_path=$func_dirname_result
8152 cwrappersource="$output_path/$objdir/lt-$output_name.c"
8153 cwrapper="$output_path/$output_name.exe"
8154 $RM $cwrappersource $cwrapper
8155 trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
8157 func_emit_cwrapperexe_src > $cwrappersource
8159 # The wrapper executable is built using the $host compiler,
8160 # because it contains $host paths and files. If cross-
8161 # compiling, it, like the target executable, must be
8162 # executed on the $host or under an emulation environment.
8164 $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
8168 # Now, create the wrapper script for func_source use:
8169 func_ltwrapper_scriptname $cwrapper
8170 $RM $func_ltwrapper_scriptname_result
8171 trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
8173 # note: this script will not be executed, so do not chmod.
8174 if test "x$build" = "x$host" ; then
8175 $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
8177 func_emit_wrapper no > $func_ltwrapper_scriptname_result
8183 trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
8185 func_emit_wrapper no > $output
8194 # See if we need to build an old-fashioned archive.
8195 for oldlib in $oldlibs; do
8197 if test "$build_libtool_libs" = convenience; then
8198 oldobjs="$libobjs_save $symfileobj"
8199 addlibs="$convenience"
8200 build_libtool_libs=no
8202 if test "$build_libtool_libs" = module; then
8203 oldobjs="$libobjs_save"
8204 build_libtool_libs=no
8206 oldobjs="$old_deplibs $non_pic_objects"
8207 if test "$preload" = yes && test -f "$symfileobj"; then
8208 oldobjs="$oldobjs $symfileobj"
8211 addlibs="$old_convenience"
8214 if test -n "$addlibs"; then
8215 gentop="$output_objdir/${outputname}x"
8216 generated="$generated $gentop"
8218 func_extract_archives $gentop $addlibs
8219 oldobjs="$oldobjs $func_extract_archives_result"
8222 # Do each command in the archive commands.
8223 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
8224 cmds=$old_archive_from_new_cmds
8227 # Add any objects from preloaded convenience libraries
8228 if test -n "$dlprefiles"; then
8229 gentop="$output_objdir/${outputname}x"
8230 generated="$generated $gentop"
8232 func_extract_archives $gentop $dlprefiles
8233 oldobjs="$oldobjs $func_extract_archives_result"
8236 # POSIX demands no paths to be encoded in archives. We have
8237 # to avoid creating archives with duplicate basenames if we
8238 # might have to extract them afterwards, e.g., when creating a
8239 # static archive out of a convenience library, or when linking
8240 # the entirety of a libtool archive into another (currently
8241 # not supported by libtool).
8242 if (for obj in $oldobjs
8244 func_basename "$obj"
8245 $ECHO "$func_basename_result"
8246 done | sort | sort -uc >/dev/null 2>&1); then
8249 echo "copying selected object files to avoid basename conflicts..."
8250 gentop="$output_objdir/${outputname}x"
8251 generated="$generated $gentop"
8252 func_mkdir_p "$gentop"
8253 save_oldobjs=$oldobjs
8256 for obj in $save_oldobjs
8258 func_basename "$obj"
8259 objbase="$func_basename_result"
8260 case " $oldobjs " in
8261 " ") oldobjs=$obj ;;
8264 # Make sure we don't pick an alternate name that also
8266 newobj=lt$counter-$objbase
8267 func_arith $counter + 1
8268 counter=$func_arith_result
8269 case " $oldobjs " in
8270 *[\ /]"$newobj "*) ;;
8271 *) if test ! -f "$gentop/$newobj"; then break; fi ;;
8274 func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
8275 oldobjs="$oldobjs $gentop/$newobj"
8277 *) oldobjs="$oldobjs $obj" ;;
8281 eval cmds=\"$old_archive_cmds\"
8284 len=$func_len_result
8285 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
8286 cmds=$old_archive_cmds
8288 # the command line is too long to link in one step, link in parts
8289 func_verbose "using piecewise archive linking..."
8294 save_oldobjs=$oldobjs
8296 # Is there a better way of finding the last object in the list?
8297 for obj in $save_oldobjs
8301 eval test_cmds=\"$old_archive_cmds\"
8302 func_len " $test_cmds"
8303 len0=$func_len_result
8305 for obj in $save_oldobjs
8308 func_arith $len + $func_len_result
8309 len=$func_arith_result
8310 func_append objlist " $obj"
8311 if test "$len" -lt "$max_cmd_len"; then
8314 # the above command should be used before it gets too long
8316 if test "$obj" = "$last_oldobj" ; then
8319 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
8320 eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
8327 if test "X$oldobjs" = "X" ; then
8328 eval cmds=\"\$concat_cmds\"
8330 eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
8334 func_execute_cmds "$cmds" 'exit $?'
8337 test -n "$generated" && \
8338 func_show_eval "${RM}r$generated"
8340 # Now create the libtool archive.
8344 test "$build_old_libs" = yes && old_library="$libname.$libext"
8345 func_verbose "creating $output"
8347 # Preserve any variables that may affect compiler behavior
8348 for var in $variables_saved_for_relink; do
8349 if eval test -z \"\${$var+set}\"; then
8350 relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
8351 elif eval var_value=\$$var; test -z "$var_value"; then
8352 relink_command="$var=; export $var; $relink_command"
8354 func_quote_for_eval "$var_value"
8355 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
8358 # Quote the link command for shipping.
8359 relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
8360 relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
8361 if test "$hardcode_automatic" = yes ; then
8365 # Only create the output if not a dry run.
8367 for installed in no yes; do
8368 if test "$installed" = yes; then
8369 if test -z "$install_libdir"; then
8372 output="$output_objdir/$outputname"i
8373 # Replace all uninstalled libtool libraries with the installed ones
8375 for deplib in $dependency_libs; do
8378 func_basename "$deplib"
8379 name="$func_basename_result"
8380 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
8381 test -z "$libdir" && \
8382 func_fatal_error "\`$deplib' is not a valid libtool archive"
8383 newdependency_libs="$newdependency_libs $libdir/$name"
8385 *) newdependency_libs="$newdependency_libs $deplib" ;;
8388 dependency_libs="$newdependency_libs"
8391 for lib in $dlfiles; do
8394 func_basename "$lib"
8395 name="$func_basename_result"
8396 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
8397 test -z "$libdir" && \
8398 func_fatal_error "\`$lib' is not a valid libtool archive"
8399 newdlfiles="$newdlfiles $libdir/$name"
8401 *) newdlfiles="$newdlfiles $lib" ;;
8404 dlfiles="$newdlfiles"
8406 for lib in $dlprefiles; do
8409 # Only pass preopened files to the pseudo-archive (for
8410 # eventual linking with the app. that links it) if we
8411 # didn't already link the preopened objects directly into
8413 func_basename "$lib"
8414 name="$func_basename_result"
8415 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
8416 test -z "$libdir" && \
8417 func_fatal_error "\`$lib' is not a valid libtool archive"
8418 newdlprefiles="$newdlprefiles $libdir/$name"
8422 dlprefiles="$newdlprefiles"
8425 for lib in $dlfiles; do
8427 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
8428 *) abs=`pwd`"/$lib" ;;
8430 newdlfiles="$newdlfiles $abs"
8432 dlfiles="$newdlfiles"
8434 for lib in $dlprefiles; do
8436 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
8437 *) abs=`pwd`"/$lib" ;;
8439 newdlprefiles="$newdlprefiles $abs"
8441 dlprefiles="$newdlprefiles"
8444 # place dlname in correct position for cygwin
8445 # In fact, it would be nice if we could use this code for all target
8446 # systems that can't hard-code library paths into their executables
8447 # and that have no shared library path variable independent of PATH,
8448 # but it turns out we can't easily determine that from inspecting
8449 # libtool variables, so we have to hard-code the OSs to which it
8450 # applies here; at the moment, that means platforms that use the PE
8451 # object format with DLL files. See the long comment at the top of
8452 # tests/bindir.at for full details.
8454 case $host,$output,$installed,$module,$dlname in
8455 *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
8456 # If a -bindir argument was supplied, place the dll there.
8457 if test "x$bindir" != x ;
8459 func_relative_path "$install_libdir" "$bindir"
8460 tdlname=$func_relative_path_result$dlname
8462 # Otherwise fall back on heuristic.
8463 tdlname=../bin/$dlname
8468 # $outputname - a libtool library file
8469 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
8471 # Please DO NOT delete this file!
8472 # It is necessary for linking the library.
8474 # The name that we can dlopen(3).
8477 # Names of this library.
8478 library_names='$library_names'
8480 # The name of the static archive.
8481 old_library='$old_library'
8483 # Linker flags that can not go in dependency_libs.
8484 inherited_linker_flags='$new_inherited_linker_flags'
8486 # Libraries that this one depends upon.
8487 dependency_libs='$dependency_libs'
8489 # Names of additional weak libraries provided by this library
8490 weak_library_names='$weak_libs'
8492 # Version information for $libname.
8497 # Is this an already installed library?
8498 installed=$installed
8500 # Should we warn about portability when linking against -modules?
8501 shouldnotlink=$module
8503 # Files to dlopen/dlpreopen
8505 dlpreopen='$dlprefiles'
8507 # Directory that this library needs to be installed in:
8508 libdir='$install_libdir'"
8509 if test "$installed" = no && test "$need_relink" = yes; then
8511 relink_command=\"$relink_command\""
8516 # Do a symbolic link so that the libtool archive can be found in
8517 # LD_LIBRARY_PATH before the program is installed.
8518 func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
8524 { test "$mode" = link || test "$mode" = relink; } &&
8525 func_mode_link ${1+"$@"}
8528 # func_mode_uninstall arg...
8529 func_mode_uninstall ()
8537 # This variable tells wrapper scripts just to set variables rather
8538 # than running their programs.
8539 libtool_install_magic="$magic"
8544 -f) RM="$RM $arg"; rmforce=yes ;;
8545 -*) RM="$RM $arg" ;;
8546 *) files="$files $arg" ;;
8551 func_fatal_help "you must specify an RM program"
8555 origobjdir="$objdir"
8556 for file in $files; do
8557 func_dirname "$file" "" "."
8558 dir="$func_dirname_result"
8559 if test "X$dir" = X.; then
8560 objdir="$origobjdir"
8562 objdir="$dir/$origobjdir"
8564 func_basename "$file"
8565 name="$func_basename_result"
8566 test "$mode" = uninstall && objdir="$dir"
8568 # Remember objdir for removal later, being careful to avoid duplicates
8569 if test "$mode" = clean; then
8572 *) rmdirs="$rmdirs $objdir" ;;
8576 # Don't error if the file doesn't exist and rm -f was used.
8577 if { test -L "$file"; } >/dev/null 2>&1 ||
8578 { test -h "$file"; } >/dev/null 2>&1 ||
8579 test -f "$file"; then
8581 elif test -d "$file"; then
8584 elif test "$rmforce" = yes; then
8592 # Possibly a libtool archive, so verify it.
8593 if func_lalib_p "$file"; then
8594 func_source $dir/$name
8596 # Delete the libtool libraries and symlinks.
8597 for n in $library_names; do
8598 rmfiles="$rmfiles $objdir/$n"
8600 test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
8604 case " $library_names " in
8605 # " " in the beginning catches empty $dlname
8607 *) rmfiles="$rmfiles $objdir/$dlname" ;;
8609 test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
8612 if test -n "$library_names"; then
8613 # Do each command in the postuninstall commands.
8614 func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
8617 if test -n "$old_library"; then
8618 # Do each command in the old_postuninstall commands.
8619 func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
8621 # FIXME: should reinstall the best remaining shared library.
8628 # Possibly a libtool object, so verify it.
8629 if func_lalib_p "$file"; then
8632 func_source $dir/$name
8634 # Add PIC object to the list of files to remove.
8635 if test -n "$pic_object" &&
8636 test "$pic_object" != none; then
8637 rmfiles="$rmfiles $dir/$pic_object"
8640 # Add non-PIC object to the list of files to remove.
8641 if test -n "$non_pic_object" &&
8642 test "$non_pic_object" != none; then
8643 rmfiles="$rmfiles $dir/$non_pic_object"
8649 if test "$mode" = clean ; then
8653 func_stripname '' '.exe' "$file"
8654 file=$func_stripname_result
8655 func_stripname '' '.exe' "$name"
8656 noexename=$func_stripname_result
8657 # $file with .exe has already been added to rmfiles,
8658 # add $file without .exe
8659 rmfiles="$rmfiles $file"
8662 # Do a test to see if this is a libtool program.
8663 if func_ltwrapper_p "$file"; then
8664 if func_ltwrapper_executable_p "$file"; then
8665 func_ltwrapper_scriptname "$file"
8667 func_source $func_ltwrapper_scriptname_result
8668 rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
8671 func_source $dir/$noexename
8674 # note $name still contains .exe if it was in $file originally
8675 # as does the version of $file that was added into $rmfiles
8676 rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
8677 if test "$fast_install" = yes && test -n "$relink_command"; then
8678 rmfiles="$rmfiles $objdir/lt-$name"
8680 if test "X$noexename" != "X$name" ; then
8681 rmfiles="$rmfiles $objdir/lt-${noexename}.c"
8687 func_show_eval "$RM $rmfiles" 'exit_status=1'
8689 objdir="$origobjdir"
8691 # Try to remove the ${objdir}s in the directories where we deleted files
8692 for dir in $rmdirs; do
8693 if test -d "$dir"; then
8694 func_show_eval "rmdir $dir >/dev/null 2>&1"
8701 { test "$mode" = uninstall || test "$mode" = clean; } &&
8702 func_mode_uninstall ${1+"$@"}
8704 test -z "$mode" && {
8705 help="$generic_help"
8706 func_fatal_help "you must specify a MODE"
8709 test -z "$exec_cmd" && \
8710 func_fatal_help "invalid operation mode \`$mode'"
8712 if test -n "$exec_cmd"; then
8713 eval exec "$exec_cmd"
8720 # The TAGs below are defined such that we never get into a situation
8721 # in which we disable both kinds of libraries. Given conflicting
8722 # choices, we go for a static library, that is the most portable,
8723 # since we can't tell whether shared libraries were disabled because
8724 # the user asked for that or because the platform doesn't support
8725 # them. This is particularly important on AIX, because we don't
8726 # support having both static and shared libraries enabled at the same
8727 # time on that platform, so we default to a shared-only configuration.
8728 # If a disable-shared tag is given, we'll fallback to a static-only
8729 # configuration. But we'll never go from static-only to shared-only.
8731 # ### BEGIN LIBTOOL TAG CONFIG: disable-shared
8732 build_libtool_libs=no
8734 # ### END LIBTOOL TAG CONFIG: disable-shared
8736 # ### BEGIN LIBTOOL TAG CONFIG: disable-static
8737 build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
8738 # ### END LIBTOOL TAG CONFIG: disable-static