summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-x[-rw-r--r--]build-aux/ltmain.sh8452
-rw-r--r--gl/m4/libtool.m47377
-rw-r--r--gl/m4/ltoptions.m4368
-rw-r--r--gl/m4/ltsugar.m4123
-rw-r--r--gl/m4/ltversion.m423
-rw-r--r--gl/m4/lt~obsolete.m492
6 files changed, 12980 insertions, 3455 deletions
diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh
index c715b594..7ed280bc 100644..100755
--- a/build-aux/ltmain.sh
+++ b/build-aux/ltmain.sh
@@ -1,30 +1,174 @@
1# ltmain.sh - Provide generalized library-building support services. 1# Generated from ltmain.m4sh.
2# NOTE: Changing this file will not affect anything until you rerun configure. 2
3# 3# ltmain.sh (GNU libtool) 2.2.6b
4# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 4# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
5# Free Software Foundation, Inc. 5
6# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 6# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc.
7# 7# This is free software; see the source for copying conditions. There is NO
8# This program is free software; you can redistribute it and/or modify 8# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9
10# GNU Libtool is free software; you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by 11# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation; either version 2 of the License, or 12# the Free Software Foundation; either version 2 of the License, or
11# (at your option) any later version. 13# (at your option) any later version.
12# 14#
13# This program is distributed in the hope that it will be useful, but 15# As a special exception to the GNU General Public License,
16# if you distribute this file as part of a program or library that
17# is built using GNU Libtool, you may include this file under the
18# same distribution terms that you use for the rest of that program.
19#
20# GNU Libtool is distributed in the hope that it will be useful, but
14# WITHOUT ANY WARRANTY; without even the implied warranty of 21# WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 22# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16# General Public License for more details. 23# General Public License for more details.
17# 24#
18# You should have received a copy of the GNU General Public License 25# You should have received a copy of the GNU General Public License
19# along with this program; if not, write to the Free Software 26# along with GNU Libtool; see the file COPYING. If not, a copy
20# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 27# can be downloaded from http://www.gnu.org/licenses/gpl.html,
28# or obtained by writing to the Free Software Foundation, Inc.,
29# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
30
31# Usage: $progname [OPTION]... [MODE-ARG]...
32#
33# Provide generalized library-building support services.
21# 34#
22# As a special exception to the GNU General Public License, if you 35# --config show all configuration variables
23# distribute this file as part of a program that contains a 36# --debug enable verbose shell tracing
24# configuration script generated by Autoconf, you may include it under 37# -n, --dry-run display commands without modifying any files
25# the same distribution terms that you use for the rest of that program. 38# --features display basic configuration information and exit
39# --mode=MODE use operation mode MODE
40# --preserve-dup-deps don't remove duplicate dependency libraries
41# --quiet, --silent don't print informational messages
42# --tag=TAG use configuration variables from tag TAG
43# -v, --verbose print informational messages (default)
44# --version print version information
45# -h, --help print short or long help message
46#
47# MODE must be one of the following:
48#
49# clean remove files from the build directory
50# compile compile a source file into a libtool object
51# execute automatically set library path, then run a program
52# finish complete the installation of libtool libraries
53# install install libraries or executables
54# link create a library or an executable
55# uninstall remove libraries from an installed directory
56#
57# MODE-ARGS vary depending on the MODE.
58# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
59#
60# When reporting a bug, please describe a test case to reproduce it and
61# include the following information:
62#
63# host-triplet: $host
64# shell: $SHELL
65# compiler: $LTCC
66# compiler flags: $LTCFLAGS
67# linker: $LD (gnu? $with_gnu_ld)
68# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
69# automake: $automake_version
70# autoconf: $autoconf_version
71#
72# Report bugs to <bug-libtool@gnu.org>.
73
74PROGRAM=ltmain.sh
75PACKAGE=libtool
76VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"
77TIMESTAMP=""
78package_revision=1.3017
79
80# Be Bourne compatible
81if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
82 emulate sh
83 NULLCMD=:
84 # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
85 # is contrary to our usage. Disable this feature.
86 alias -g '${1+"$@"}'='"$@"'
87 setopt NO_GLOB_SUBST
88else
89 case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
90fi
91BIN_SH=xpg4; export BIN_SH # for Tru64
92DUALCASE=1; export DUALCASE # for MKS sh
93
94# NLS nuisances: We save the old values to restore during execute mode.
95# Only set LANG and LC_ALL to C if already set.
96# These must not be set unconditionally because not all systems understand
97# e.g. LANG=C (notably SCO).
98lt_user_locale=
99lt_safe_locale=
100for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
101do
102 eval "if test \"\${$lt_var+set}\" = set; then
103 save_$lt_var=\$$lt_var
104 $lt_var=C
105 export $lt_var
106 lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
107 lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
108 fi"
109done
110
111$lt_unset CDPATH
112
113
26 114
27basename="s,^.*/,,g" 115
116
117: ${CP="cp -f"}
118: ${ECHO="echo"}
119: ${EGREP="/bin/grep -E"}
120: ${FGREP="/bin/grep -F"}
121: ${GREP="/bin/grep"}
122: ${LN_S="ln -s"}
123: ${MAKE="make"}
124: ${MKDIR="mkdir"}
125: ${MV="mv -f"}
126: ${RM="rm -f"}
127: ${SED="/bin/sed"}
128: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
129: ${Xsed="$SED -e 1s/^X//"}
130
131# Global variables:
132EXIT_SUCCESS=0
133EXIT_FAILURE=1
134EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing.
135EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
136
137exit_status=$EXIT_SUCCESS
138
139# Make sure IFS has a sensible default
140lt_nl='
141'
142IFS=" $lt_nl"
143
144dirname="s,/[^/]*$,,"
145basename="s,^.*/,,"
146
147# func_dirname_and_basename file append nondir_replacement
148# perform func_basename and func_dirname in a single function
149# call:
150# dirname: Compute the dirname of FILE. If nonempty,
151# add APPEND to the result, otherwise set result
152# to NONDIR_REPLACEMENT.
153# value returned in "$func_dirname_result"
154# basename: Compute filename of FILE.
155# value retuned in "$func_basename_result"
156# Implementation must be kept synchronized with func_dirname
157# and func_basename. For efficiency, we do not delegate to
158# those functions but instead duplicate the functionality here.
159func_dirname_and_basename ()
160{
161 # Extract subdirectory from the argument.
162 func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
163 if test "X$func_dirname_result" = "X${1}"; then
164 func_dirname_result="${3}"
165 else
166 func_dirname_result="$func_dirname_result${2}"
167 fi
168 func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
169}
170
171# Generated shell functions inserted here.
28 172
29# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh 173# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
30# is ksh but when the shell is invoked as "sh" and the current value of 174# is ksh but when the shell is invoked as "sh" and the current value of
@@ -34,36 +178,396 @@ basename="s,^.*/,,g"
34progpath="$0" 178progpath="$0"
35 179
36# The name of this program: 180# The name of this program:
37progname=`echo "$progpath" | $SED $basename` 181# In the unlikely event $progname began with a '-', it would play havoc with
38modename="$progname" 182# func_echo (imagine progname=-n), so we prepend ./ in that case:
183func_dirname_and_basename "$progpath"
184progname=$func_basename_result
185case $progname in
186 -*) progname=./$progname ;;
187esac
39 188
40# Global variables: 189# Make sure we have an absolute path for reexecution:
41EXIT_SUCCESS=0 190case $progpath in
42EXIT_FAILURE=1 191 [\\/]*|[A-Za-z]:\\*) ;;
192 *[\\/]*)
193 progdir=$func_dirname_result
194 progdir=`cd "$progdir" && pwd`
195 progpath="$progdir/$progname"
196 ;;
197 *)
198 save_IFS="$IFS"
199 IFS=:
200 for progdir in $PATH; do
201 IFS="$save_IFS"
202 test -x "$progdir/$progname" && break
203 done
204 IFS="$save_IFS"
205 test -n "$progdir" || progdir=`pwd`
206 progpath="$progdir/$progname"
207 ;;
208esac
43 209
44PROGRAM=ltmain.sh 210# Sed substitution that helps us do robust quoting. It backslashifies
45PACKAGE=libtool 211# metacharacters that are still active within double-quoted strings.
46VERSION="1.5.22 Debian 1.5.22-4" 212Xsed="${SED}"' -e 1s/^X//'
47TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" 213sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
214
215# Same as above, but do not quote variable references.
216double_quote_subst='s/\(["`\\]\)/\\\1/g'
217
218# Re-`\' parameter expansions in output of double_quote_subst that were
219# `\'-ed in input to the same. If an odd number of `\' preceded a '$'
220# in input to double_quote_subst, that '$' was protected from expansion.
221# Since each input `\' is now two `\'s, look for any number of runs of
222# four `\'s followed by two `\'s and then a '$'. `\' that '$'.
223bs='\\'
224bs2='\\\\'
225bs4='\\\\\\\\'
226dollar='\$'
227sed_double_backslash="\
228 s/$bs4/&\\
229/g
230 s/^$bs2$dollar/$bs&/
231 s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
232 s/\n//g"
233
234# Standard options:
235opt_dry_run=false
236opt_help=false
237opt_quiet=false
238opt_verbose=false
239opt_warning=:
240
241# func_echo arg...
242# Echo program name prefixed message, along with the current mode
243# name if it has been set yet.
244func_echo ()
245{
246 $ECHO "$progname${mode+: }$mode: $*"
247}
48 248
49# See if we are running on zsh, and set the options which allow our 249# func_verbose arg...
50# commands through without removal of \ escapes. 250# Echo program name prefixed message in verbose mode only.
51if test -n "${ZSH_VERSION+set}" ; then 251func_verbose ()
52 setopt NO_GLOB_SUBST 252{
53fi 253 $opt_verbose && func_echo ${1+"$@"}
254
255 # A bug in bash halts the script if the last line of a function
256 # fails when set -e is in force, so we need another command to
257 # work around that:
258 :
259}
260
261# func_error arg...
262# Echo program name prefixed message to standard error.
263func_error ()
264{
265 $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
266}
267
268# func_warning arg...
269# Echo program name prefixed warning message to standard error.
270func_warning ()
271{
272 $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
273
274 # bash bug again:
275 :
276}
277
278# func_fatal_error arg...
279# Echo program name prefixed message to standard error, and exit.
280func_fatal_error ()
281{
282 func_error ${1+"$@"}
283 exit $EXIT_FAILURE
284}
285
286# func_fatal_help arg...
287# Echo program name prefixed message to standard error, followed by
288# a help hint, and exit.
289func_fatal_help ()
290{
291 func_error ${1+"$@"}
292 func_fatal_error "$help"
293}
294help="Try \`$progname --help' for more information." ## default
295
296
297# func_grep expression filename
298# Check whether EXPRESSION matches any line of FILENAME, without output.
299func_grep ()
300{
301 $GREP "$1" "$2" >/dev/null 2>&1
302}
303
304
305# func_mkdir_p directory-path
306# Make sure the entire path to DIRECTORY-PATH is available.
307func_mkdir_p ()
308{
309 my_directory_path="$1"
310 my_dir_list=
311
312 if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
313
314 # Protect directory names starting with `-'
315 case $my_directory_path in
316 -*) my_directory_path="./$my_directory_path" ;;
317 esac
318
319 # While some portion of DIR does not yet exist...
320 while test ! -d "$my_directory_path"; do
321 # ...make a list in topmost first order. Use a colon delimited
322 # list incase some portion of path contains whitespace.
323 my_dir_list="$my_directory_path:$my_dir_list"
324
325 # If the last portion added has no slash in it, the list is done
326 case $my_directory_path in */*) ;; *) break ;; esac
327
328 # ...otherwise throw away the child directory and loop
329 my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
330 done
331 my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
332
333 save_mkdir_p_IFS="$IFS"; IFS=':'
334 for my_dir in $my_dir_list; do
335 IFS="$save_mkdir_p_IFS"
336 # mkdir can fail with a `File exist' error if two processes
337 # try to create one of the directories concurrently. Don't
338 # stop in that case!
339 $MKDIR "$my_dir" 2>/dev/null || :
340 done
341 IFS="$save_mkdir_p_IFS"
342
343 # Bail out if we (or some other process) failed to create a directory.
344 test -d "$my_directory_path" || \
345 func_fatal_error "Failed to create \`$1'"
346 fi
347}
348
349
350# func_mktempdir [string]
351# Make a temporary directory that won't clash with other running
352# libtool processes, and avoids race conditions if possible. If
353# given, STRING is the basename for that directory.
354func_mktempdir ()
355{
356 my_template="${TMPDIR-/tmp}/${1-$progname}"
357
358 if test "$opt_dry_run" = ":"; then
359 # Return a directory name, but don't create it in dry-run mode
360 my_tmpdir="${my_template}-$$"
361 else
362
363 # If mktemp works, use that first and foremost
364 my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
54 365
55# Check that we have a working $echo. 366 if test ! -d "$my_tmpdir"; then
367 # Failing that, at least try and use $RANDOM to avoid a race
368 my_tmpdir="${my_template}-${RANDOM-0}$$"
369
370 save_mktempdir_umask=`umask`
371 umask 0077
372 $MKDIR "$my_tmpdir"
373 umask $save_mktempdir_umask
374 fi
375
376 # If we're not in dry-run mode, bomb out on failure
377 test -d "$my_tmpdir" || \
378 func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
379 fi
380
381 $ECHO "X$my_tmpdir" | $Xsed
382}
383
384
385# func_quote_for_eval arg
386# Aesthetically quote ARG to be evaled later.
387# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
388# is double-quoted, suitable for a subsequent eval, whereas
389# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
390# which are still active within double quotes backslashified.
391func_quote_for_eval ()
392{
393 case $1 in
394 *[\\\`\"\$]*)
395 func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
396 *)
397 func_quote_for_eval_unquoted_result="$1" ;;
398 esac
399
400 case $func_quote_for_eval_unquoted_result in
401 # Double-quote args containing shell metacharacters to delay
402 # word splitting, command substitution and and variable
403 # expansion for a subsequent eval.
404 # Many Bourne shells cannot handle close brackets correctly
405 # in scan sets, so we specify it separately.
406 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
407 func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
408 ;;
409 *)
410 func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
411 esac
412}
413
414
415# func_quote_for_expand arg
416# Aesthetically quote ARG to be evaled later; same as above,
417# but do not quote variable references.
418func_quote_for_expand ()
419{
420 case $1 in
421 *[\\\`\"]*)
422 my_arg=`$ECHO "X$1" | $Xsed \
423 -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
424 *)
425 my_arg="$1" ;;
426 esac
427
428 case $my_arg in
429 # Double-quote args containing shell metacharacters to delay
430 # word splitting and command substitution for a subsequent eval.
431 # Many Bourne shells cannot handle close brackets correctly
432 # in scan sets, so we specify it separately.
433 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
434 my_arg="\"$my_arg\""
435 ;;
436 esac
437
438 func_quote_for_expand_result="$my_arg"
439}
440
441
442# func_show_eval cmd [fail_exp]
443# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
444# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
445# is given, then evaluate it.
446func_show_eval ()
447{
448 my_cmd="$1"
449 my_fail_exp="${2-:}"
450
451 ${opt_silent-false} || {
452 func_quote_for_expand "$my_cmd"
453 eval "func_echo $func_quote_for_expand_result"
454 }
455
456 if ${opt_dry_run-false}; then :; else
457 eval "$my_cmd"
458 my_status=$?
459 if test "$my_status" -eq 0; then :; else
460 eval "(exit $my_status); $my_fail_exp"
461 fi
462 fi
463}
464
465
466# func_show_eval_locale cmd [fail_exp]
467# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
468# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
469# is given, then evaluate it. Use the saved locale for evaluation.
470func_show_eval_locale ()
471{
472 my_cmd="$1"
473 my_fail_exp="${2-:}"
474
475 ${opt_silent-false} || {
476 func_quote_for_expand "$my_cmd"
477 eval "func_echo $func_quote_for_expand_result"
478 }
479
480 if ${opt_dry_run-false}; then :; else
481 eval "$lt_user_locale
482 $my_cmd"
483 my_status=$?
484 eval "$lt_safe_locale"
485 if test "$my_status" -eq 0; then :; else
486 eval "(exit $my_status); $my_fail_exp"
487 fi
488 fi
489}
490
491
492
493
494
495# func_version
496# Echo version message to standard output and exit.
497func_version ()
498{
499 $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
500 s/^# //
501 s/^# *$//
502 s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
503 p
504 }' < "$progpath"
505 exit $?
506}
507
508# func_usage
509# Echo short help message to standard output and exit.
510func_usage ()
511{
512 $SED -n '/^# Usage:/,/# -h/ {
513 s/^# //
514 s/^# *$//
515 s/\$progname/'$progname'/
516 p
517 }' < "$progpath"
518 $ECHO
519 $ECHO "run \`$progname --help | more' for full usage"
520 exit $?
521}
522
523# func_help
524# Echo long help message to standard output and exit.
525func_help ()
526{
527 $SED -n '/^# Usage:/,/# Report bugs to/ {
528 s/^# //
529 s/^# *$//
530 s*\$progname*'$progname'*
531 s*\$host*'"$host"'*
532 s*\$SHELL*'"$SHELL"'*
533 s*\$LTCC*'"$LTCC"'*
534 s*\$LTCFLAGS*'"$LTCFLAGS"'*
535 s*\$LD*'"$LD"'*
536 s/\$with_gnu_ld/'"$with_gnu_ld"'/
537 s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
538 s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
539 p
540 }' < "$progpath"
541 exit $?
542}
543
544# func_missing_arg argname
545# Echo program name prefixed message to standard error and set global
546# exit_cmd.
547func_missing_arg ()
548{
549 func_error "missing argument for $1"
550 exit_cmd=exit
551}
552
553exit_cmd=:
554
555
556
557
558
559# Check that we have a working $ECHO.
56if test "X$1" = X--no-reexec; then 560if test "X$1" = X--no-reexec; then
57 # Discard the --no-reexec flag, and continue. 561 # Discard the --no-reexec flag, and continue.
58 shift 562 shift
59elif test "X$1" = X--fallback-echo; then 563elif test "X$1" = X--fallback-echo; then
60 # Avoid inline document here, it may be left over 564 # Avoid inline document here, it may be left over
61 : 565 :
62elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then 566elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
63 # Yippee, $echo works! 567 # Yippee, $ECHO works!
64 : 568 :
65else 569else
66 # Restart under the correct shell, and then maybe $echo will work. 570 # Restart under the correct shell, and then maybe $ECHO will work.
67 exec $SHELL "$progpath" --no-reexec ${1+"$@"} 571 exec $SHELL "$progpath" --no-reexec ${1+"$@"}
68fi 572fi
69 573
@@ -76,145 +580,424 @@ EOF
76 exit $EXIT_SUCCESS 580 exit $EXIT_SUCCESS
77fi 581fi
78 582
79default_mode=
80help="Try \`$progname --help' for more information."
81magic="%%%MAGIC variable%%%" 583magic="%%%MAGIC variable%%%"
82mkdir="mkdir" 584magic_exe="%%%MAGIC EXE variable%%%"
83mv="mv -f"
84rm="rm -f"
85
86# Sed substitution that helps us do robust quoting. It backslashifies
87# metacharacters that are still active within double-quoted strings.
88Xsed="${SED}"' -e 1s/^X//'
89sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
90# test EBCDIC or ASCII
91case `echo X|tr X '\101'` in
92 A) # ASCII based system
93 # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
94 SP2NL='tr \040 \012'
95 NL2SP='tr \015\012 \040\040'
96 ;;
97 *) # EBCDIC based system
98 SP2NL='tr \100 \n'
99 NL2SP='tr \r\n \100\100'
100 ;;
101esac
102
103# NLS nuisances.
104# Only set LANG and LC_ALL to C if already set.
105# These must not be set unconditionally because not all systems understand
106# e.g. LANG=C (notably SCO).
107# We save the old values to restore during execute mode.
108if test "${LC_ALL+set}" = set; then
109 save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
110fi
111if test "${LANG+set}" = set; then
112 save_LANG="$LANG"; LANG=C; export LANG
113fi
114
115# Make sure IFS has a sensible default
116lt_nl='
117'
118IFS=" $lt_nl"
119
120if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
121 $echo "$modename: not configured to build any kind of library" 1>&2
122 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
123 exit $EXIT_FAILURE
124fi
125 585
126# Global variables. 586# Global variables.
127mode=$default_mode 587# $mode is unset
128nonopt= 588nonopt=
129prev=
130prevopt=
131run=
132show="$echo"
133show_help=
134execute_dlfiles= 589execute_dlfiles=
135duplicate_deps=no
136preserve_args= 590preserve_args=
137lo2o="s/\\.lo\$/.${objext}/" 591lo2o="s/\\.lo\$/.${objext}/"
138o2lo="s/\\.${objext}\$/.lo/" 592o2lo="s/\\.${objext}\$/.lo/"
593extracted_archives=
594extracted_serial=0
139 595
140##################################### 596opt_dry_run=false
141# Shell function definitions: 597opt_duplicate_deps=false
142# This seems to be the best place for them 598opt_silent=false
599opt_debug=:
143 600
144# func_mktempdir [string] 601# If this variable is set in any of the actions, the command in it
145# Make a temporary directory that won't clash with other running 602# will be execed at the end. This prevents here-documents from being
146# libtool processes, and avoids race conditions if possible. If 603# left over by shells.
147# given, STRING is the basename for that directory. 604exec_cmd=
148func_mktempdir () 605
606# func_fatal_configuration arg...
607# Echo program name prefixed message to standard error, followed by
608# a configuration failure hint, and exit.
609func_fatal_configuration ()
149{ 610{
150 my_template="${TMPDIR-/tmp}/${1-$progname}" 611 func_error ${1+"$@"}
612 func_error "See the $PACKAGE documentation for more information."
613 func_fatal_error "Fatal configuration error."
614}
151 615
152 if test "$run" = ":"; then
153 # Return a directory name, but don't create it in dry-run mode
154 my_tmpdir="${my_template}-$$"
155 else
156 616
157 # If mktemp works, use that first and foremost 617# func_config
158 my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` 618# Display the configuration for all the tags in this script.
619func_config ()
620{
621 re_begincf='^# ### BEGIN LIBTOOL'
622 re_endcf='^# ### END LIBTOOL'
159 623
160 if test ! -d "$my_tmpdir"; then 624 # Default configuration.
161 # Failing that, at least try and use $RANDOM to avoid a race 625 $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
162 my_tmpdir="${my_template}-${RANDOM-0}$$"
163 626
164 save_mktempdir_umask=`umask` 627 # Now print the configurations for the tags.
165 umask 0077 628 for tagname in $taglist; do
166 $mkdir "$my_tmpdir" 629 $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
167 umask $save_mktempdir_umask 630 done
168 fi
169 631
170 # If we're not in dry-run mode, bomb out on failure 632 exit $?
171 test -d "$my_tmpdir" || { 633}
172 $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 634
173 exit $EXIT_FAILURE 635# func_features
174 } 636# Display the features supported by this script.
637func_features ()
638{
639 $ECHO "host: $host"
640 if test "$build_libtool_libs" = yes; then
641 $ECHO "enable shared libraries"
642 else
643 $ECHO "disable shared libraries"
644 fi
645 if test "$build_old_libs" = yes; then
646 $ECHO "enable static libraries"
647 else
648 $ECHO "disable static libraries"
175 fi 649 fi
176 650
177 $echo "X$my_tmpdir" | $Xsed 651 exit $?
178} 652}
179 653
654# func_enable_tag tagname
655# Verify that TAGNAME is valid, and either flag an error and exit, or
656# enable the TAGNAME tag. We also add TAGNAME to the global $taglist
657# variable here.
658func_enable_tag ()
659{
660 # Global variable:
661 tagname="$1"
180 662
181# func_win32_libid arg 663 re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
182# return the library type of file 'arg' 664 re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
183# 665 sed_extractcf="/$re_begincf/,/$re_endcf/p"
184# Need a lot of goo to handle *both* DLLs and import libs 666
185# Has to be a shell function in order to 'eat' the argument 667 # Validate tagname.
186# that is supplied when $file_magic_command is called. 668 case $tagname in
187func_win32_libid () 669 *[!-_A-Za-z0-9,/]*)
670 func_fatal_error "invalid tag name: $tagname"
671 ;;
672 esac
673
674 # Don't test for the "default" C tag, as we know it's
675 # there but not specially marked.
676 case $tagname in
677 CC) ;;
678 *)
679 if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
680 taglist="$taglist $tagname"
681
682 # Evaluate the configuration. Be careful to quote the path
683 # and the sed script, to avoid splitting on whitespace, but
684 # also don't use non-portable quotes within backquotes within
685 # quotes we have to do it in 2 steps:
686 extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
687 eval "$extractedcf"
688 else
689 func_error "ignoring unknown tag $tagname"
690 fi
691 ;;
692 esac
693}
694
695# Parse options once, thoroughly. This comes as soon as possible in
696# the script to make things like `libtool --version' happen quickly.
188{ 697{
189 win32_libid_type="unknown" 698
190 win32_fileres=`file -L $1 2>/dev/null` 699 # Shorthand for --mode=foo, only valid as the first argument
191 case $win32_fileres in 700 case $1 in
192 *ar\ archive\ import\ library*) # definitely import 701 clean|clea|cle|cl)
193 win32_libid_type="x86 archive import" 702 shift; set dummy --mode clean ${1+"$@"}; shift
194 ;; 703 ;;
195 *ar\ archive*) # could be an import, or static 704 compile|compil|compi|comp|com|co|c)
196 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ 705 shift; set dummy --mode compile ${1+"$@"}; shift
197 $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
198 win32_nmres=`eval $NM -f posix -A $1 | \
199 $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
200 case $win32_nmres in
201 import*) win32_libid_type="x86 archive import";;
202 *) win32_libid_type="x86 archive static";;
203 esac
204 fi
205 ;; 706 ;;
206 *DLL*) 707 execute|execut|execu|exec|exe|ex|e)
207 win32_libid_type="x86 DLL" 708 shift; set dummy --mode execute ${1+"$@"}; shift
208 ;; 709 ;;
209 *executable*) # but shell scripts are "executable" too... 710 finish|finis|fini|fin|fi|f)
210 case $win32_fileres in 711 shift; set dummy --mode finish ${1+"$@"}; shift
211 *MS\ Windows\ PE\ Intel*) 712 ;;
212 win32_libid_type="x86 DLL" 713 install|instal|insta|inst|ins|in|i)
213 ;; 714 shift; set dummy --mode install ${1+"$@"}; shift
214 esac
215 ;; 715 ;;
716 link|lin|li|l)
717 shift; set dummy --mode link ${1+"$@"}; shift
718 ;;
719 uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
720 shift; set dummy --mode uninstall ${1+"$@"}; shift
721 ;;
722 esac
723
724 # Parse non-mode specific arguments:
725 while test "$#" -gt 0; do
726 opt="$1"
727 shift
728
729 case $opt in
730 --config) func_config ;;
731
732 --debug) preserve_args="$preserve_args $opt"
733 func_echo "enabling shell trace mode"
734 opt_debug='set -x'
735 $opt_debug
736 ;;
737
738 -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break
739 execute_dlfiles="$execute_dlfiles $1"
740 shift
741 ;;
742
743 --dry-run | -n) opt_dry_run=: ;;
744 --features) func_features ;;
745 --finish) mode="finish" ;;
746
747 --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break
748 case $1 in
749 # Valid mode arguments:
750 clean) ;;
751 compile) ;;
752 execute) ;;
753 finish) ;;
754 install) ;;
755 link) ;;
756 relink) ;;
757 uninstall) ;;
758
759 # Catch anything else as an error
760 *) func_error "invalid argument for $opt"
761 exit_cmd=exit
762 break
763 ;;
764 esac
765
766 mode="$1"
767 shift
768 ;;
769
770 --preserve-dup-deps)
771 opt_duplicate_deps=: ;;
772
773 --quiet|--silent) preserve_args="$preserve_args $opt"
774 opt_silent=:
775 ;;
776
777 --verbose| -v) preserve_args="$preserve_args $opt"
778 opt_silent=false
779 ;;
780
781 --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break
782 preserve_args="$preserve_args $opt $1"
783 func_enable_tag "$1" # tagname is set here
784 shift
785 ;;
786
787 # Separate optargs to long options:
788 -dlopen=*|--mode=*|--tag=*)
789 func_opt_split "$opt"
790 set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
791 shift
792 ;;
793
794 -\?|-h) func_usage ;;
795 --help) opt_help=: ;;
796 --version) func_version ;;
797
798 -*) func_fatal_help "unrecognized option \`$opt'" ;;
799
800 *) nonopt="$opt"
801 break
802 ;;
803 esac
804 done
805
806
807 case $host in
808 *cygwin* | *mingw* | *pw32* | *cegcc*)
809 # don't eliminate duplications in $postdeps and $predeps
810 opt_duplicate_compiler_generated_deps=:
811 ;;
812 *)
813 opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
814 ;;
216 esac 815 esac
217 $echo $win32_libid_type 816
817 # Having warned about all mis-specified options, bail out if
818 # anything was wrong.
819 $exit_cmd $EXIT_FAILURE
820}
821
822# func_check_version_match
823# Ensure that we are using m4 macros, and libtool script from the same
824# release of libtool.
825func_check_version_match ()
826{
827 if test "$package_revision" != "$macro_revision"; then
828 if test "$VERSION" != "$macro_version"; then
829 if test -z "$macro_version"; then
830 cat >&2 <<_LT_EOF
831$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
832$progname: definition of this LT_INIT comes from an older release.
833$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
834$progname: and run autoconf again.
835_LT_EOF
836 else
837 cat >&2 <<_LT_EOF
838$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
839$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
840$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
841$progname: and run autoconf again.
842_LT_EOF
843 fi
844 else
845 cat >&2 <<_LT_EOF
846$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
847$progname: but the definition of this LT_INIT comes from revision $macro_revision.
848$progname: You should recreate aclocal.m4 with macros from revision $package_revision
849$progname: of $PACKAGE $VERSION and run autoconf again.
850_LT_EOF
851 fi
852
853 exit $EXIT_MISMATCH
854 fi
855}
856
857
858## ----------- ##
859## Main. ##
860## ----------- ##
861
862$opt_help || {
863 # Sanity checks first:
864 func_check_version_match
865
866 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
867 func_fatal_configuration "not configured to build any kind of library"
868 fi
869
870 test -z "$mode" && func_fatal_error "error: you must specify a MODE."
871
872
873 # Darwin sucks
874 eval std_shrext=\"$shrext_cmds\"
875
876
877 # Only execute mode is allowed to have -dlopen flags.
878 if test -n "$execute_dlfiles" && test "$mode" != execute; then
879 func_error "unrecognized option \`-dlopen'"
880 $ECHO "$help" 1>&2
881 exit $EXIT_FAILURE
882 fi
883
884 # Change the help message to a mode-specific one.
885 generic_help="$help"
886 help="Try \`$progname --help --mode=$mode' for more information."
887}
888
889
890# func_lalib_p file
891# True iff FILE is a libtool `.la' library or `.lo' object file.
892# This function is only a basic sanity check; it will hardly flush out
893# determined imposters.
894func_lalib_p ()
895{
896 test -f "$1" &&
897 $SED -e 4q "$1" 2>/dev/null \
898 | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
899}
900
901# func_lalib_unsafe_p file
902# True iff FILE is a libtool `.la' library or `.lo' object file.
903# This function implements the same check as func_lalib_p without
904# resorting to external programs. To this end, it redirects stdin and
905# closes it afterwards, without saving the original file descriptor.
906# As a safety measure, use it only where a negative result would be
907# fatal anyway. Works if `file' does not exist.
908func_lalib_unsafe_p ()
909{
910 lalib_p=no
911 if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
912 for lalib_p_l in 1 2 3 4
913 do
914 read lalib_p_line
915 case "$lalib_p_line" in
916 \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
917 esac
918 done
919 exec 0<&5 5<&-
920 fi
921 test "$lalib_p" = yes
922}
923
924# func_ltwrapper_script_p file
925# True iff FILE is a libtool wrapper script
926# This function is only a basic sanity check; it will hardly flush out
927# determined imposters.
928func_ltwrapper_script_p ()
929{
930 func_lalib_p "$1"
931}
932
933# func_ltwrapper_executable_p file
934# True iff FILE is a libtool wrapper executable
935# This function is only a basic sanity check; it will hardly flush out
936# determined imposters.
937func_ltwrapper_executable_p ()
938{
939 func_ltwrapper_exec_suffix=
940 case $1 in
941 *.exe) ;;
942 *) func_ltwrapper_exec_suffix=.exe ;;
943 esac
944 $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
945}
946
947# func_ltwrapper_scriptname file
948# Assumes file is an ltwrapper_executable
949# uses $file to determine the appropriate filename for a
950# temporary ltwrapper_script.
951func_ltwrapper_scriptname ()
952{
953 func_ltwrapper_scriptname_result=""
954 if func_ltwrapper_executable_p "$1"; then
955 func_dirname_and_basename "$1" "" "."
956 func_stripname '' '.exe' "$func_basename_result"
957 func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
958 fi
959}
960
961# func_ltwrapper_p file
962# True iff FILE is a libtool wrapper script or wrapper executable
963# This function is only a basic sanity check; it will hardly flush out
964# determined imposters.
965func_ltwrapper_p ()
966{
967 func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
968}
969
970
971# func_execute_cmds commands fail_cmd
972# Execute tilde-delimited COMMANDS.
973# If FAIL_CMD is given, eval that upon failure.
974# FAIL_CMD may read-access the current command in variable CMD!
975func_execute_cmds ()
976{
977 $opt_debug
978 save_ifs=$IFS; IFS='~'
979 for cmd in $1; do
980 IFS=$save_ifs
981 eval cmd=\"$cmd\"
982 func_show_eval "$cmd" "${2-:}"
983 done
984 IFS=$save_ifs
985}
986
987
988# func_source file
989# Source FILE, adding directory component if necessary.
990# Note that it is not necessary on cygwin/mingw to append a dot to
991# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
992# behavior happens only for exec(3), not for open(2)! Also, sourcing
993# `FILE.' does not work on cygwin managed mounts.
994func_source ()
995{
996 $opt_debug
997 case $1 in
998 */* | *\\*) . "$1" ;;
999 *) . "./$1" ;;
1000 esac
218} 1001}
219 1002
220 1003
@@ -226,39 +1009,32 @@ func_win32_libid ()
226# arg is usually of the form 'gcc ...' 1009# arg is usually of the form 'gcc ...'
227func_infer_tag () 1010func_infer_tag ()
228{ 1011{
1012 $opt_debug
229 if test -n "$available_tags" && test -z "$tagname"; then 1013 if test -n "$available_tags" && test -z "$tagname"; then
230 CC_quoted= 1014 CC_quoted=
231 for arg in $CC; do 1015 for arg in $CC; do
232 case $arg in 1016 func_quote_for_eval "$arg"
233 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1017 CC_quoted="$CC_quoted $func_quote_for_eval_result"
234 arg="\"$arg\""
235 ;;
236 esac
237 CC_quoted="$CC_quoted $arg"
238 done 1018 done
239 case $@ in 1019 case $@ in
240 # Blanks in the command may have been stripped by the calling shell, 1020 # Blanks in the command may have been stripped by the calling shell,
241 # but not from the CC environment variable when configure was run. 1021 # but not from the CC environment variable when configure was run.
242 " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; 1022 " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
243 # Blanks at the start of $base_compile will cause this to fail 1023 # Blanks at the start of $base_compile will cause this to fail
244 # if we don't check for them as well. 1024 # if we don't check for them as well.
245 *) 1025 *)
246 for z in $available_tags; do 1026 for z in $available_tags; do
247 if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then 1027 if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
248 # Evaluate the configuration. 1028 # Evaluate the configuration.
249 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" 1029 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
250 CC_quoted= 1030 CC_quoted=
251 for arg in $CC; do 1031 for arg in $CC; do
252 # Double-quote args containing other shell metacharacters. 1032 # Double-quote args containing other shell metacharacters.
253 case $arg in 1033 func_quote_for_eval "$arg"
254 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1034 CC_quoted="$CC_quoted $func_quote_for_eval_result"
255 arg="\"$arg\"" 1035 done
256 ;;
257 esac
258 CC_quoted="$CC_quoted $arg"
259 done
260 case "$@ " in 1036 case "$@ " in
261 " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) 1037 " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
262 # The compiler in the base compile command matches 1038 # The compiler in the base compile command matches
263 # the one in the tagged configuration. 1039 # the one in the tagged configuration.
264 # Assume this is the tagged configuration we want. 1040 # Assume this is the tagged configuration we want.
@@ -272,11 +1048,10 @@ func_infer_tag ()
272 # was found and let the user know that the "--tag" command 1048 # was found and let the user know that the "--tag" command
273 # line option must be used. 1049 # line option must be used.
274 if test -z "$tagname"; then 1050 if test -z "$tagname"; then
275 $echo "$modename: unable to infer tagged configuration" 1051 func_echo "unable to infer tagged configuration"
276 $echo "$modename: specify a tag with \`--tag'" 1>&2 1052 func_fatal_error "specify a tag with \`--tag'"
277 exit $EXIT_FAILURE 1053# else
278# else 1054# func_verbose "using $tagname tagged configuration"
279# $echo "$modename: using $tagname tagged configuration"
280 fi 1055 fi
281 ;; 1056 ;;
282 esac 1057 esac
@@ -284,343 +1059,48 @@ func_infer_tag ()
284} 1059}
285 1060
286 1061
287# func_extract_an_archive dir oldlib
288func_extract_an_archive ()
289{
290 f_ex_an_ar_dir="$1"; shift
291 f_ex_an_ar_oldlib="$1"
292
293 $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
294 $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
295 if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
296 :
297 else
298 $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
299 exit $EXIT_FAILURE
300 fi
301}
302 1062
303# func_extract_archives gentop oldlib ... 1063# func_write_libtool_object output_name pic_name nonpic_name
304func_extract_archives () 1064# Create a libtool object file (analogous to a ".la" file),
1065# but don't create it if we're doing a dry run.
1066func_write_libtool_object ()
305{ 1067{
306 my_gentop="$1"; shift 1068 write_libobj=${1}
307 my_oldlibs=${1+"$@"}
308 my_oldobjs=""
309 my_xlib=""
310 my_xabs=""
311 my_xdir=""
312 my_status=""
313
314 $show "${rm}r $my_gentop"
315 $run ${rm}r "$my_gentop"
316 $show "$mkdir $my_gentop"
317 $run $mkdir "$my_gentop"
318 my_status=$?
319 if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
320 exit $my_status
321 fi
322
323 for my_xlib in $my_oldlibs; do
324 # Extract the objects.
325 case $my_xlib in
326 [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
327 *) my_xabs=`pwd`"/$my_xlib" ;;
328 esac
329 my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
330 my_xdir="$my_gentop/$my_xlib"
331
332 $show "${rm}r $my_xdir"
333 $run ${rm}r "$my_xdir"
334 $show "$mkdir $my_xdir"
335 $run $mkdir "$my_xdir"
336 exit_status=$?
337 if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
338 exit $exit_status
339 fi
340 case $host in
341 *-darwin*)
342 $show "Extracting $my_xabs"
343 # Do not bother doing anything if just a dry run
344 if test -z "$run"; then
345 darwin_orig_dir=`pwd`
346 cd $my_xdir || exit $?
347 darwin_archive=$my_xabs
348 darwin_curdir=`pwd`
349 darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
350 darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
351 if test -n "$darwin_arches"; then
352 darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
353 darwin_arch=
354 $show "$darwin_base_archive has multiple architectures $darwin_arches"
355 for darwin_arch in $darwin_arches ; do
356 mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
357 lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
358 cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
359 func_extract_an_archive "`pwd`" "${darwin_base_archive}"
360 cd "$darwin_curdir"
361 $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
362 done # $darwin_arches
363 ## Okay now we have a bunch of thin objects, gotta fatten them up :)
364 darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
365 darwin_file=
366 darwin_files=
367 for darwin_file in $darwin_filelist; do
368 darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
369 lipo -create -output "$darwin_file" $darwin_files
370 done # $darwin_filelist
371 ${rm}r unfat-$$
372 cd "$darwin_orig_dir"
373 else
374 cd "$darwin_orig_dir"
375 func_extract_an_archive "$my_xdir" "$my_xabs"
376 fi # $darwin_arches
377 fi # $run
378 ;;
379 *)
380 func_extract_an_archive "$my_xdir" "$my_xabs"
381 ;;
382 esac
383 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
384 done
385 func_extract_archives_result="$my_oldobjs"
386}
387# End of Shell function definitions
388#####################################
389
390# Darwin sucks
391eval std_shrext=\"$shrext_cmds\"
392
393disable_libs=no
394
395# Parse our command line options once, thoroughly.
396while test "$#" -gt 0
397do
398 arg="$1"
399 shift
400
401 case $arg in
402 -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
403 *) optarg= ;;
404 esac
405
406 # If the previous option needs an argument, assign it.
407 if test -n "$prev"; then
408 case $prev in
409 execute_dlfiles)
410 execute_dlfiles="$execute_dlfiles $arg"
411 ;;
412 tag)
413 tagname="$arg"
414 preserve_args="${preserve_args}=$arg"
415
416 # Check whether tagname contains only valid characters
417 case $tagname in
418 *[!-_A-Za-z0-9,/]*)
419 $echo "$progname: invalid tag name: $tagname" 1>&2
420 exit $EXIT_FAILURE
421 ;;
422 esac
423
424 case $tagname in
425 CC)
426 # Don't test for the "default" C tag, as we know, it's there, but
427 # not specially marked.
428 ;;
429 *)
430 if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
431 taglist="$taglist $tagname"
432 # Evaluate the configuration.
433 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
434 else
435 $echo "$progname: ignoring unknown tag $tagname" 1>&2
436 fi
437 ;;
438 esac
439 ;;
440 *)
441 eval "$prev=\$arg"
442 ;;
443 esac
444
445 prev=
446 prevopt=
447 continue
448 fi
449
450 # Have we seen a non-optional argument yet?
451 case $arg in
452 --help)
453 show_help=yes
454 ;;
455
456 --version)
457 $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
458 $echo
459 $echo "Copyright (C) 2005 Free Software Foundation, Inc."
460 $echo "This is free software; see the source for copying conditions. There is NO"
461 $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
462 exit $?
463 ;;
464
465 --config)
466 ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
467 # Now print the configurations for the tags.
468 for tagname in $taglist; do
469 ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
470 done
471 exit $?
472 ;;
473
474 --debug)
475 $echo "$progname: enabling shell trace mode"
476 set -x
477 preserve_args="$preserve_args $arg"
478 ;;
479
480 --dry-run | -n)
481 run=:
482 ;;
483
484 --features)
485 $echo "host: $host"
486 if test "$build_libtool_libs" = yes; then 1069 if test "$build_libtool_libs" = yes; then
487 $echo "enable shared libraries" 1070 write_lobj=\'${2}\'
488 else 1071 else
489 $echo "disable shared libraries" 1072 write_lobj=none
490 fi 1073 fi
1074
491 if test "$build_old_libs" = yes; then 1075 if test "$build_old_libs" = yes; then
492 $echo "enable static libraries" 1076 write_oldobj=\'${3}\'
493 else 1077 else
494 $echo "disable static libraries" 1078 write_oldobj=none
495 fi 1079 fi
496 exit $?
497 ;;
498
499 --finish) mode="finish" ;;
500
501 --mode) prevopt="--mode" prev=mode ;;
502 --mode=*) mode="$optarg" ;;
503
504 --preserve-dup-deps) duplicate_deps="yes" ;;
505 1080
506 --quiet | --silent) 1081 $opt_dry_run || {
507 show=: 1082 cat >${write_libobj}T <<EOF
508 preserve_args="$preserve_args $arg" 1083# $write_libobj - a libtool object file
509 ;; 1084# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
510 1085#
511 --tag) 1086# Please DO NOT delete this file!
512 prevopt="--tag" 1087# It is necessary for linking the library.
513 prev=tag
514 preserve_args="$preserve_args --tag"
515 ;;
516 --tag=*)
517 set tag "$optarg" ${1+"$@"}
518 shift
519 prev=tag
520 preserve_args="$preserve_args --tag"
521 ;;
522
523 -dlopen)
524 prevopt="-dlopen"
525 prev=execute_dlfiles
526 ;;
527
528 -*)
529 $echo "$modename: unrecognized option \`$arg'" 1>&2
530 $echo "$help" 1>&2
531 exit $EXIT_FAILURE
532 ;;
533
534 *)
535 nonopt="$arg"
536 break
537 ;;
538 esac
539done
540
541if test -n "$prevopt"; then
542 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
543 $echo "$help" 1>&2
544 exit $EXIT_FAILURE
545fi
546
547case $disable_libs in
548no)
549 ;;
550shared)
551 build_libtool_libs=no
552 build_old_libs=yes
553 ;;
554static)
555 build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
556 ;;
557esac
558
559# If this variable is set in any of the actions, the command in it
560# will be execed at the end. This prevents here-documents from being
561# left over by shells.
562exec_cmd=
563
564if test -z "$show_help"; then
565
566 # Infer the operation mode.
567 if test -z "$mode"; then
568 $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
569 $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
570 case $nonopt in
571 *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
572 mode=link
573 for arg
574 do
575 case $arg in
576 -c)
577 mode=compile
578 break
579 ;;
580 esac
581 done
582 ;;
583 *db | *dbx | *strace | *truss)
584 mode=execute
585 ;;
586 *install*|cp|mv)
587 mode=install
588 ;;
589 *rm)
590 mode=uninstall
591 ;;
592 *)
593 # If we have no mode, but dlfiles were specified, then do execute mode.
594 test -n "$execute_dlfiles" && mode=execute
595 1088
596 # Just use the default operation mode. 1089# Name of the PIC object.
597 if test -z "$mode"; then 1090pic_object=$write_lobj
598 if test -n "$nonopt"; then
599 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
600 else
601 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
602 fi
603 fi
604 ;;
605 esac
606 fi
607 1091
608 # Only execute mode is allowed to have -dlopen flags. 1092# Name of the non-PIC object
609 if test -n "$execute_dlfiles" && test "$mode" != execute; then 1093non_pic_object=$write_oldobj
610 $echo "$modename: unrecognized option \`-dlopen'" 1>&2
611 $echo "$help" 1>&2
612 exit $EXIT_FAILURE
613 fi
614 1094
615 # Change the help message to a mode-specific one. 1095EOF
616 generic_help="$help" 1096 $MV "${write_libobj}T" "${write_libobj}"
617 help="Try \`$modename --help --mode=$mode' for more information." 1097 }
1098}
618 1099
619 # These modes are in order of execution frequency so that they run quickly. 1100# func_mode_compile arg...
620 case $mode in 1101func_mode_compile ()
621 # libtool compile mode 1102{
622 compile) 1103 $opt_debug
623 modename="$modename: compile"
624 # Get the compilation command and the source file. 1104 # Get the compilation command and the source file.
625 base_compile= 1105 base_compile=
626 srcfile="$nonopt" # always keep a non-empty value in "srcfile" 1106 srcfile="$nonopt" # always keep a non-empty value in "srcfile"
@@ -629,6 +1109,7 @@ if test -z "$show_help"; then
629 arg_mode=normal 1109 arg_mode=normal
630 libobj= 1110 libobj=
631 later= 1111 later=
1112 pie_flag=
632 1113
633 for arg 1114 for arg
634 do 1115 do
@@ -649,15 +1130,18 @@ if test -z "$show_help"; then
649 # Accept any command-line options. 1130 # Accept any command-line options.
650 case $arg in 1131 case $arg in
651 -o) 1132 -o)
652 if test -n "$libobj" ; then 1133 test -n "$libobj" && \
653 $echo "$modename: you cannot specify \`-o' more than once" 1>&2 1134 func_fatal_error "you cannot specify \`-o' more than once"
654 exit $EXIT_FAILURE
655 fi
656 arg_mode=target 1135 arg_mode=target
657 continue 1136 continue
658 ;; 1137 ;;
659 1138
660 -static | -prefer-pic | -prefer-non-pic) 1139 -pie | -fpie | -fPIE)
1140 pie_flag="$pie_flag $arg"
1141 continue
1142 ;;
1143
1144 -shared | -static | -prefer-pic | -prefer-non-pic)
661 later="$later $arg" 1145 later="$later $arg"
662 continue 1146 continue
663 ;; 1147 ;;
@@ -673,31 +1157,25 @@ if test -z "$show_help"; then
673 ;; # replaced later. I would guess that would be a bug. 1157 ;; # replaced later. I would guess that would be a bug.
674 1158
675 -Wc,*) 1159 -Wc,*)
676 args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` 1160 func_stripname '-Wc,' '' "$arg"
1161 args=$func_stripname_result
677 lastarg= 1162 lastarg=
678 save_ifs="$IFS"; IFS=',' 1163 save_ifs="$IFS"; IFS=','
679 for arg in $args; do 1164 for arg in $args; do
680 IFS="$save_ifs" 1165 IFS="$save_ifs"
681 1166 func_quote_for_eval "$arg"
682 # Double-quote args containing other shell metacharacters. 1167 lastarg="$lastarg $func_quote_for_eval_result"
683 # Many Bourne shells cannot handle close brackets correctly
684 # in scan sets, so we specify it separately.
685 case $arg in
686 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
687 arg="\"$arg\""
688 ;;
689 esac
690 lastarg="$lastarg $arg"
691 done 1168 done
692 IFS="$save_ifs" 1169 IFS="$save_ifs"
693 lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` 1170 func_stripname ' ' '' "$lastarg"
1171 lastarg=$func_stripname_result
694 1172
695 # Add the arguments to base_compile. 1173 # Add the arguments to base_compile.
696 base_compile="$base_compile $lastarg" 1174 base_compile="$base_compile $lastarg"
697 continue 1175 continue
698 ;; 1176 ;;
699 1177
700 * ) 1178 *)
701 # Accept the current argument as the source file. 1179 # Accept the current argument as the source file.
702 # The previous "srcfile" becomes the current argument. 1180 # The previous "srcfile" becomes the current argument.
703 # 1181 #
@@ -709,64 +1187,42 @@ if test -z "$show_help"; then
709 esac # case $arg_mode 1187 esac # case $arg_mode
710 1188
711 # Aesthetically quote the previous argument. 1189 # Aesthetically quote the previous argument.
712 lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` 1190 func_quote_for_eval "$lastarg"
713 1191 base_compile="$base_compile $func_quote_for_eval_result"
714 case $lastarg in
715 # Double-quote args containing other shell metacharacters.
716 # Many Bourne shells cannot handle close brackets correctly
717 # in scan sets, and some SunOS ksh mistreat backslash-escaping
718 # in scan sets (worked around with variable expansion),
719 # and furthermore cannot handle '|' '&' '(' ')' in scan sets
720 # at all, so we specify them separately.
721 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
722 lastarg="\"$lastarg\""
723 ;;
724 esac
725
726 base_compile="$base_compile $lastarg"
727 done # for arg 1192 done # for arg
728 1193
729 case $arg_mode in 1194 case $arg_mode in
730 arg) 1195 arg)
731 $echo "$modename: you must specify an argument for -Xcompile" 1196 func_fatal_error "you must specify an argument for -Xcompile"
732 exit $EXIT_FAILURE
733 ;; 1197 ;;
734 target) 1198 target)
735 $echo "$modename: you must specify a target with \`-o'" 1>&2 1199 func_fatal_error "you must specify a target with \`-o'"
736 exit $EXIT_FAILURE
737 ;; 1200 ;;
738 *) 1201 *)
739 # Get the name of the library object. 1202 # Get the name of the library object.
740 [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` 1203 test -z "$libobj" && {
1204 func_basename "$srcfile"
1205 libobj="$func_basename_result"
1206 }
741 ;; 1207 ;;
742 esac 1208 esac
743 1209
744 # Recognize several different file suffixes. 1210 # Recognize several different file suffixes.
745 # If the user specifies -o file.o, it is replaced with file.lo 1211 # If the user specifies -o file.o, it is replaced with file.lo
746 xform='[cCFSifmso]'
747 case $libobj in 1212 case $libobj in
748 *.ada) xform=ada ;; 1213 *.[cCFSifmso] | \
749 *.adb) xform=adb ;; 1214 *.ada | *.adb | *.ads | *.asm | \
750 *.ads) xform=ads ;; 1215 *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
751 *.asm) xform=asm ;; 1216 *.[fF][09]? | *.for | *.java | *.obj | *.sx)
752 *.c++) xform=c++ ;; 1217 func_xform "$libobj"
753 *.cc) xform=cc ;; 1218 libobj=$func_xform_result
754 *.ii) xform=ii ;; 1219 ;;
755 *.class) xform=class ;;
756 *.cpp) xform=cpp ;;
757 *.cxx) xform=cxx ;;
758 *.f90) xform=f90 ;;
759 *.for) xform=for ;;
760 *.java) xform=java ;;
761 esac 1220 esac
762 1221
763 libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
764
765 case $libobj in 1222 case $libobj in
766 *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; 1223 *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
767 *) 1224 *)
768 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 1225 func_fatal_error "cannot determine name of library object from \`$libobj'"
769 exit $EXIT_FAILURE
770 ;; 1226 ;;
771 esac 1227 esac
772 1228
@@ -774,7 +1230,15 @@ if test -z "$show_help"; then
774 1230
775 for arg in $later; do 1231 for arg in $later; do
776 case $arg in 1232 case $arg in
1233 -shared)
1234 test "$build_libtool_libs" != yes && \
1235 func_fatal_configuration "can not build a shared library"
1236 build_old_libs=no
1237 continue
1238 ;;
1239
777 -static) 1240 -static)
1241 build_libtool_libs=no
778 build_old_libs=yes 1242 build_old_libs=yes
779 continue 1243 continue
780 ;; 1244 ;;
@@ -791,28 +1255,17 @@ if test -z "$show_help"; then
791 esac 1255 esac
792 done 1256 done
793 1257
794 qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` 1258 func_quote_for_eval "$libobj"
795 case $qlibobj in 1259 test "X$libobj" != "X$func_quote_for_eval_result" \
796 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1260 && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
797 qlibobj="\"$qlibobj\"" ;; 1261 && func_warning "libobj name \`$libobj' may not contain shell special characters."
798 esac 1262 func_dirname_and_basename "$obj" "/" ""
799 test "X$libobj" != "X$qlibobj" \ 1263 objname="$func_basename_result"
800 && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ 1264 xdir="$func_dirname_result"
801 && $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
802 objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
803 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
804 if test "X$xdir" = "X$obj"; then
805 xdir=
806 else
807 xdir=$xdir/
808 fi
809 lobj=${xdir}$objdir/$objname 1265 lobj=${xdir}$objdir/$objname
810 1266
811 if test -z "$base_compile"; then 1267 test -z "$base_compile" && \
812 $echo "$modename: you must specify a compilation command" 1>&2 1268 func_fatal_help "you must specify a compilation command"
813 $echo "$help" 1>&2
814 exit $EXIT_FAILURE
815 fi
816 1269
817 # Delete any leftover library objects. 1270 # Delete any leftover library objects.
818 if test "$build_old_libs" = yes; then 1271 if test "$build_old_libs" = yes; then
@@ -821,12 +1274,9 @@ if test -z "$show_help"; then
821 removelist="$lobj $libobj ${libobj}T" 1274 removelist="$lobj $libobj ${libobj}T"
822 fi 1275 fi
823 1276
824 $run $rm $removelist
825 trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
826
827 # On Cygwin there's no "real" PIC flag so we must build both object types 1277 # On Cygwin there's no "real" PIC flag so we must build both object types
828 case $host_os in 1278 case $host_os in
829 cygwin* | mingw* | pw32* | os2*) 1279 cygwin* | mingw* | pw32* | os2* | cegcc*)
830 pic_mode=default 1280 pic_mode=default
831 ;; 1281 ;;
832 esac 1282 esac
@@ -838,10 +1288,8 @@ if test -z "$show_help"; then
838 # Calculate the filename of the output object if compiler does 1288 # Calculate the filename of the output object if compiler does
839 # not support -o with -c 1289 # not support -o with -c
840 if test "$compiler_c_o" = no; then 1290 if test "$compiler_c_o" = no; then
841 output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} 1291 output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
842 lockfile="$output_obj.lock" 1292 lockfile="$output_obj.lock"
843 removelist="$removelist $output_obj $lockfile"
844 trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
845 else 1293 else
846 output_obj= 1294 output_obj=
847 need_locks=no 1295 need_locks=no
@@ -851,13 +1299,13 @@ if test -z "$show_help"; then
851 # Lock this critical section if it is needed 1299 # Lock this critical section if it is needed
852 # We use this script file to make the link, it avoids creating a new file 1300 # We use this script file to make the link, it avoids creating a new file
853 if test "$need_locks" = yes; then 1301 if test "$need_locks" = yes; then
854 until $run ln "$progpath" "$lockfile" 2>/dev/null; do 1302 until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
855 $show "Waiting for $lockfile to be removed" 1303 func_echo "Waiting for $lockfile to be removed"
856 sleep 2 1304 sleep 2
857 done 1305 done
858 elif test "$need_locks" = warn; then 1306 elif test "$need_locks" = warn; then
859 if test -f "$lockfile"; then 1307 if test -f "$lockfile"; then
860 $echo "\ 1308 $ECHO "\
861*** ERROR, $lockfile exists and contains: 1309*** ERROR, $lockfile exists and contains:
862`cat $lockfile 2>/dev/null` 1310`cat $lockfile 2>/dev/null`
863 1311
@@ -868,34 +1316,22 @@ repeat this compilation, it may succeed, by chance, but you had better
868avoid parallel builds (make -j) in this platform, or get a better 1316avoid parallel builds (make -j) in this platform, or get a better
869compiler." 1317compiler."
870 1318
871 $run $rm $removelist 1319 $opt_dry_run || $RM $removelist
872 exit $EXIT_FAILURE 1320 exit $EXIT_FAILURE
873 fi 1321 fi
874 $echo "$srcfile" > "$lockfile" 1322 removelist="$removelist $output_obj"
1323 $ECHO "$srcfile" > "$lockfile"
875 fi 1324 fi
876 1325
1326 $opt_dry_run || $RM $removelist
1327 removelist="$removelist $lockfile"
1328 trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
1329
877 if test -n "$fix_srcfile_path"; then 1330 if test -n "$fix_srcfile_path"; then
878 eval srcfile=\"$fix_srcfile_path\" 1331 eval srcfile=\"$fix_srcfile_path\"
879 fi 1332 fi
880 qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` 1333 func_quote_for_eval "$srcfile"
881 case $qsrcfile in 1334 qsrcfile=$func_quote_for_eval_result
882 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
883 qsrcfile="\"$qsrcfile\"" ;;
884 esac
885
886 $run $rm "$libobj" "${libobj}T"
887
888 # Create a libtool object file (analogous to a ".la" file),
889 # but don't create it if we're doing a dry run.
890 test -z "$run" && cat > ${libobj}T <<EOF
891# $libobj - a libtool object file
892# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
893#
894# Please DO NOT delete this file!
895# It is necessary for linking the library.
896
897# Name of the PIC object.
898EOF
899 1335
900 # Only build a PIC object if we are building libtool libraries. 1336 # Only build a PIC object if we are building libtool libraries.
901 if test "$build_libtool_libs" = yes; then 1337 if test "$build_libtool_libs" = yes; then
@@ -909,32 +1345,19 @@ EOF
909 command="$base_compile $qsrcfile" 1345 command="$base_compile $qsrcfile"
910 fi 1346 fi
911 1347
912 if test ! -d "${xdir}$objdir"; then 1348 func_mkdir_p "$xdir$objdir"
913 $show "$mkdir ${xdir}$objdir"
914 $run $mkdir ${xdir}$objdir
915 exit_status=$?
916 if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
917 exit $exit_status
918 fi
919 fi
920 1349
921 if test -z "$output_obj"; then 1350 if test -z "$output_obj"; then
922 # Place PIC objects in $objdir 1351 # Place PIC objects in $objdir
923 command="$command -o $lobj" 1352 command="$command -o $lobj"
924 fi 1353 fi
925 1354
926 $run $rm "$lobj" "$output_obj" 1355 func_show_eval_locale "$command" \
927 1356 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
928 $show "$command"
929 if $run eval "$command"; then :
930 else
931 test -n "$output_obj" && $run $rm $removelist
932 exit $EXIT_FAILURE
933 fi
934 1357
935 if test "$need_locks" = warn && 1358 if test "$need_locks" = warn &&
936 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 1359 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
937 $echo "\ 1360 $ECHO "\
938*** ERROR, $lockfile contains: 1361*** ERROR, $lockfile contains:
939`cat $lockfile 2>/dev/null` 1362`cat $lockfile 2>/dev/null`
940 1363
@@ -948,45 +1371,27 @@ repeat this compilation, it may succeed, by chance, but you had better
948avoid parallel builds (make -j) in this platform, or get a better 1371avoid parallel builds (make -j) in this platform, or get a better
949compiler." 1372compiler."
950 1373
951 $run $rm $removelist 1374 $opt_dry_run || $RM $removelist
952 exit $EXIT_FAILURE 1375 exit $EXIT_FAILURE
953 fi 1376 fi
954 1377
955 # Just move the object if needed, then go on to compile the next one 1378 # Just move the object if needed, then go on to compile the next one
956 if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then 1379 if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
957 $show "$mv $output_obj $lobj" 1380 func_show_eval '$MV "$output_obj" "$lobj"' \
958 if $run $mv $output_obj $lobj; then : 1381 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
959 else
960 error=$?
961 $run $rm $removelist
962 exit $error
963 fi
964 fi 1382 fi
965 1383
966 # Append the name of the PIC object to the libtool object file.
967 test -z "$run" && cat >> ${libobj}T <<EOF
968pic_object='$objdir/$objname'
969
970EOF
971
972 # Allow error messages only from the first compilation. 1384 # Allow error messages only from the first compilation.
973 if test "$suppress_opt" = yes; then 1385 if test "$suppress_opt" = yes; then
974 suppress_output=' >/dev/null 2>&1' 1386 suppress_output=' >/dev/null 2>&1'
975 fi 1387 fi
976 else
977 # No PIC object so indicate it doesn't exist in the libtool
978 # object file.
979 test -z "$run" && cat >> ${libobj}T <<EOF
980pic_object=none
981
982EOF
983 fi 1388 fi
984 1389
985 # Only build a position-dependent object if we build old libraries. 1390 # Only build a position-dependent object if we build old libraries.
986 if test "$build_old_libs" = yes; then 1391 if test "$build_old_libs" = yes; then
987 if test "$pic_mode" != yes; then 1392 if test "$pic_mode" != yes; then
988 # Don't build PIC code 1393 # Don't build PIC code
989 command="$base_compile $qsrcfile" 1394 command="$base_compile $qsrcfile$pie_flag"
990 else 1395 else
991 command="$base_compile $qsrcfile $pic_flag" 1396 command="$base_compile $qsrcfile $pic_flag"
992 fi 1397 fi
@@ -996,17 +1401,12 @@ EOF
996 1401
997 # Suppress compiler output if we already did a PIC compilation. 1402 # Suppress compiler output if we already did a PIC compilation.
998 command="$command$suppress_output" 1403 command="$command$suppress_output"
999 $run $rm "$obj" "$output_obj" 1404 func_show_eval_locale "$command" \
1000 $show "$command" 1405 '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
1001 if $run eval "$command"; then :
1002 else
1003 $run $rm $removelist
1004 exit $EXIT_FAILURE
1005 fi
1006 1406
1007 if test "$need_locks" = warn && 1407 if test "$need_locks" = warn &&
1008 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 1408 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1009 $echo "\ 1409 $ECHO "\
1010*** ERROR, $lockfile contains: 1410*** ERROR, $lockfile contains:
1011`cat $lockfile 2>/dev/null` 1411`cat $lockfile 2>/dev/null`
1012 1412
@@ -1020,53 +1420,2620 @@ repeat this compilation, it may succeed, by chance, but you had better
1020avoid parallel builds (make -j) in this platform, or get a better 1420avoid parallel builds (make -j) in this platform, or get a better
1021compiler." 1421compiler."
1022 1422
1023 $run $rm $removelist 1423 $opt_dry_run || $RM $removelist
1024 exit $EXIT_FAILURE 1424 exit $EXIT_FAILURE
1025 fi 1425 fi
1026 1426
1027 # Just move the object if needed 1427 # Just move the object if needed
1028 if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then 1428 if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
1029 $show "$mv $output_obj $obj" 1429 func_show_eval '$MV "$output_obj" "$obj"' \
1030 if $run $mv $output_obj $obj; then : 1430 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
1431 fi
1432 fi
1433
1434 $opt_dry_run || {
1435 func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
1436
1437 # Unlock the critical section if it was locked
1438 if test "$need_locks" != no; then
1439 removelist=$lockfile
1440 $RM "$lockfile"
1441 fi
1442 }
1443
1444 exit $EXIT_SUCCESS
1445}
1446
1447$opt_help || {
1448test "$mode" = compile && func_mode_compile ${1+"$@"}
1449}
1450
1451func_mode_help ()
1452{
1453 # We need to display help for each of the modes.
1454 case $mode in
1455 "")
1456 # Generic help is extracted from the usage comments
1457 # at the start of this file.
1458 func_help
1459 ;;
1460
1461 clean)
1462 $ECHO \
1463"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
1464
1465Remove files from the build directory.
1466
1467RM is the name of the program to use to delete files associated with each FILE
1468(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
1469to RM.
1470
1471If FILE is a libtool library, object or program, all the files associated
1472with it are deleted. Otherwise, only FILE itself is deleted using RM."
1473 ;;
1474
1475 compile)
1476 $ECHO \
1477"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
1478
1479Compile a source file into a libtool library object.
1480
1481This mode accepts the following additional options:
1482
1483 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
1484 -no-suppress do not suppress compiler output for multiple passes
1485 -prefer-pic try to building PIC objects only
1486 -prefer-non-pic try to building non-PIC objects only
1487 -shared do not build a \`.o' file suitable for static linking
1488 -static only build a \`.o' file suitable for static linking
1489
1490COMPILE-COMMAND is a command to be used in creating a \`standard' object file
1491from the given SOURCEFILE.
1492
1493The output file name is determined by removing the directory component from
1494SOURCEFILE, then substituting the C source code suffix \`.c' with the
1495library object suffix, \`.lo'."
1496 ;;
1497
1498 execute)
1499 $ECHO \
1500"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
1501
1502Automatically set library path, then run a program.
1503
1504This mode accepts the following additional options:
1505
1506 -dlopen FILE add the directory containing FILE to the library path
1507
1508This mode sets the library path environment variable according to \`-dlopen'
1509flags.
1510
1511If any of the ARGS are libtool executable wrappers, then they are translated
1512into their corresponding uninstalled binary, and any of their required library
1513directories are added to the library path.
1514
1515Then, COMMAND is executed, with ARGS as arguments."
1516 ;;
1517
1518 finish)
1519 $ECHO \
1520"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
1521
1522Complete the installation of libtool libraries.
1523
1524Each LIBDIR is a directory that contains libtool libraries.
1525
1526The commands that this mode executes may require superuser privileges. Use
1527the \`--dry-run' option if you just want to see what would be executed."
1528 ;;
1529
1530 install)
1531 $ECHO \
1532"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
1533
1534Install executables or libraries.
1535
1536INSTALL-COMMAND is the installation command. The first component should be
1537either the \`install' or \`cp' program.
1538
1539The following components of INSTALL-COMMAND are treated specially:
1540
1541 -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation
1542
1543The rest of the components are interpreted as arguments to that command (only
1544BSD-compatible install options are recognized)."
1545 ;;
1546
1547 link)
1548 $ECHO \
1549"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
1550
1551Link object files or libraries together to form another library, or to
1552create an executable program.
1553
1554LINK-COMMAND is a command using the C compiler that you would use to create
1555a program from several object files.
1556
1557The following components of LINK-COMMAND are treated specially:
1558
1559 -all-static do not do any dynamic linking at all
1560 -avoid-version do not add a version suffix if possible
1561 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
1562 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
1563 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
1564 -export-symbols SYMFILE
1565 try to export only the symbols listed in SYMFILE
1566 -export-symbols-regex REGEX
1567 try to export only the symbols matching REGEX
1568 -LLIBDIR search LIBDIR for required installed libraries
1569 -lNAME OUTPUT-FILE requires the installed library libNAME
1570 -module build a library that can dlopened
1571 -no-fast-install disable the fast-install mode
1572 -no-install link a not-installable executable
1573 -no-undefined declare that a library does not refer to external symbols
1574 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
1575 -objectlist FILE Use a list of object files found in FILE to specify objects
1576 -precious-files-regex REGEX
1577 don't remove output files matching REGEX
1578 -release RELEASE specify package release information
1579 -rpath LIBDIR the created library will eventually be installed in LIBDIR
1580 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
1581 -shared only do dynamic linking of libtool libraries
1582 -shrext SUFFIX override the standard shared library file extension
1583 -static do not do any dynamic linking of uninstalled libtool libraries
1584 -static-libtool-libs
1585 do not do any dynamic linking of libtool libraries
1586 -version-info CURRENT[:REVISION[:AGE]]
1587 specify library version info [each variable defaults to 0]
1588 -weak LIBNAME declare that the target provides the LIBNAME interface
1589
1590All other options (arguments beginning with \`-') are ignored.
1591
1592Every other argument is treated as a filename. Files ending in \`.la' are
1593treated as uninstalled libtool libraries, other files are standard or library
1594object files.
1595
1596If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
1597only library objects (\`.lo' files) may be specified, and \`-rpath' is
1598required, except when creating a convenience library.
1599
1600If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
1601using \`ar' and \`ranlib', or on Windows using \`lib'.
1602
1603If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
1604is created, otherwise an executable program is created."
1605 ;;
1606
1607 uninstall)
1608 $ECHO \
1609"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
1610
1611Remove libraries from an installation directory.
1612
1613RM is the name of the program to use to delete files associated with each FILE
1614(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
1615to RM.
1616
1617If FILE is a libtool library, all the files associated with it are deleted.
1618Otherwise, only FILE itself is deleted using RM."
1619 ;;
1620
1621 *)
1622 func_fatal_help "invalid operation mode \`$mode'"
1623 ;;
1624 esac
1625
1626 $ECHO
1627 $ECHO "Try \`$progname --help' for more information about other modes."
1628
1629 exit $?
1630}
1631
1632 # Now that we've collected a possible --mode arg, show help if necessary
1633 $opt_help && func_mode_help
1634
1635
1636# func_mode_execute arg...
1637func_mode_execute ()
1638{
1639 $opt_debug
1640 # The first argument is the command name.
1641 cmd="$nonopt"
1642 test -z "$cmd" && \
1643 func_fatal_help "you must specify a COMMAND"
1644
1645 # Handle -dlopen flags immediately.
1646 for file in $execute_dlfiles; do
1647 test -f "$file" \
1648 || func_fatal_help "\`$file' is not a file"
1649
1650 dir=
1651 case $file in
1652 *.la)
1653 # Check to see that this really is a libtool archive.
1654 func_lalib_unsafe_p "$file" \
1655 || func_fatal_help "\`$lib' is not a valid libtool archive"
1656
1657 # Read the libtool library.
1658 dlname=
1659 library_names=
1660 func_source "$file"
1661
1662 # Skip this library if it cannot be dlopened.
1663 if test -z "$dlname"; then
1664 # Warn if it was a shared library.
1665 test -n "$library_names" && \
1666 func_warning "\`$file' was not linked with \`-export-dynamic'"
1667 continue
1668 fi
1669
1670 func_dirname "$file" "" "."
1671 dir="$func_dirname_result"
1672
1673 if test -f "$dir/$objdir/$dlname"; then
1674 dir="$dir/$objdir"
1031 else 1675 else
1032 error=$? 1676 if test ! -f "$dir/$dlname"; then
1033 $run $rm $removelist 1677 func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
1034 exit $error 1678 fi
1035 fi 1679 fi
1680 ;;
1681
1682 *.lo)
1683 # Just add the directory containing the .lo file.
1684 func_dirname "$file" "" "."
1685 dir="$func_dirname_result"
1686 ;;
1687
1688 *)
1689 func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
1690 continue
1691 ;;
1692 esac
1693
1694 # Get the absolute pathname.
1695 absdir=`cd "$dir" && pwd`
1696 test -n "$absdir" && dir="$absdir"
1697
1698 # Now add the directory to shlibpath_var.
1699 if eval "test -z \"\$$shlibpath_var\""; then
1700 eval "$shlibpath_var=\"\$dir\""
1701 else
1702 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
1036 fi 1703 fi
1704 done
1037 1705
1038 # Append the name of the non-PIC object the libtool object file. 1706 # This variable tells wrapper scripts just to set shlibpath_var
1039 # Only append if the libtool object file exists. 1707 # rather than running their programs.
1040 test -z "$run" && cat >> ${libobj}T <<EOF 1708 libtool_execute_magic="$magic"
1041# Name of the non-PIC object.
1042non_pic_object='$objname'
1043 1709
1044EOF 1710 # Check if any of the arguments is a wrapper script.
1711 args=
1712 for file
1713 do
1714 case $file in
1715 -*) ;;
1716 *)
1717 # Do a test to see if this is really a libtool program.
1718 if func_ltwrapper_script_p "$file"; then
1719 func_source "$file"
1720 # Transform arg to wrapped name.
1721 file="$progdir/$program"
1722 elif func_ltwrapper_executable_p "$file"; then
1723 func_ltwrapper_scriptname "$file"
1724 func_source "$func_ltwrapper_scriptname_result"
1725 # Transform arg to wrapped name.
1726 file="$progdir/$program"
1727 fi
1728 ;;
1729 esac
1730 # Quote arguments (to preserve shell metacharacters).
1731 func_quote_for_eval "$file"
1732 args="$args $func_quote_for_eval_result"
1733 done
1734
1735 if test "X$opt_dry_run" = Xfalse; then
1736 if test -n "$shlibpath_var"; then
1737 # Export the shlibpath_var.
1738 eval "export $shlibpath_var"
1739 fi
1740
1741 # Restore saved environment variables
1742 for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
1743 do
1744 eval "if test \"\${save_$lt_var+set}\" = set; then
1745 $lt_var=\$save_$lt_var; export $lt_var
1746 else
1747 $lt_unset $lt_var
1748 fi"
1749 done
1750
1751 # Now prepare to actually exec the command.
1752 exec_cmd="\$cmd$args"
1045 else 1753 else
1046 # Append the name of the non-PIC object the libtool object file. 1754 # Display what would be done.
1047 # Only append if the libtool object file exists. 1755 if test -n "$shlibpath_var"; then
1048 test -z "$run" && cat >> ${libobj}T <<EOF 1756 eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
1049# Name of the non-PIC object. 1757 $ECHO "export $shlibpath_var"
1050non_pic_object=none 1758 fi
1759 $ECHO "$cmd$args"
1760 exit $EXIT_SUCCESS
1761 fi
1762}
1051 1763
1052EOF 1764test "$mode" = execute && func_mode_execute ${1+"$@"}
1765
1766
1767# func_mode_finish arg...
1768func_mode_finish ()
1769{
1770 $opt_debug
1771 libdirs="$nonopt"
1772 admincmds=
1773
1774 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
1775 for dir
1776 do
1777 libdirs="$libdirs $dir"
1778 done
1779
1780 for libdir in $libdirs; do
1781 if test -n "$finish_cmds"; then
1782 # Do each command in the finish commands.
1783 func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
1784'"$cmd"'"'
1785 fi
1786 if test -n "$finish_eval"; then
1787 # Do the single finish_eval.
1788 eval cmds=\"$finish_eval\"
1789 $opt_dry_run || eval "$cmds" || admincmds="$admincmds
1790 $cmds"
1791 fi
1792 done
1053 fi 1793 fi
1054 1794
1055 $run $mv "${libobj}T" "${libobj}" 1795 # Exit here if they wanted silent mode.
1796 $opt_silent && exit $EXIT_SUCCESS
1797
1798 $ECHO "X----------------------------------------------------------------------" | $Xsed
1799 $ECHO "Libraries have been installed in:"
1800 for libdir in $libdirs; do
1801 $ECHO " $libdir"
1802 done
1803 $ECHO
1804 $ECHO "If you ever happen to want to link against installed libraries"
1805 $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
1806 $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
1807 $ECHO "flag during linking and do at least one of the following:"
1808 if test -n "$shlibpath_var"; then
1809 $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable"
1810 $ECHO " during execution"
1811 fi
1812 if test -n "$runpath_var"; then
1813 $ECHO " - add LIBDIR to the \`$runpath_var' environment variable"
1814 $ECHO " during linking"
1815 fi
1816 if test -n "$hardcode_libdir_flag_spec"; then
1817 libdir=LIBDIR
1818 eval flag=\"$hardcode_libdir_flag_spec\"
1056 1819
1057 # Unlock the critical section if it was locked 1820 $ECHO " - use the \`$flag' linker flag"
1058 if test "$need_locks" != no; then 1821 fi
1059 $run $rm "$lockfile" 1822 if test -n "$admincmds"; then
1823 $ECHO " - have your system administrator run these commands:$admincmds"
1060 fi 1824 fi
1825 if test -f /etc/ld.so.conf; then
1826 $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
1827 fi
1828 $ECHO
1061 1829
1830 $ECHO "See any operating system documentation about shared libraries for"
1831 case $host in
1832 solaris2.[6789]|solaris2.1[0-9])
1833 $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
1834 $ECHO "pages."
1835 ;;
1836 *)
1837 $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
1838 ;;
1839 esac
1840 $ECHO "X----------------------------------------------------------------------" | $Xsed
1062 exit $EXIT_SUCCESS 1841 exit $EXIT_SUCCESS
1842}
1843
1844test "$mode" = finish && func_mode_finish ${1+"$@"}
1845
1846
1847# func_mode_install arg...
1848func_mode_install ()
1849{
1850 $opt_debug
1851 # There may be an optional sh(1) argument at the beginning of
1852 # install_prog (especially on Windows NT).
1853 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
1854 # Allow the use of GNU shtool's install command.
1855 $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
1856 # Aesthetically quote it.
1857 func_quote_for_eval "$nonopt"
1858 install_prog="$func_quote_for_eval_result "
1859 arg=$1
1860 shift
1861 else
1862 install_prog=
1863 arg=$nonopt
1864 fi
1865
1866 # The real first argument should be the name of the installation program.
1867 # Aesthetically quote it.
1868 func_quote_for_eval "$arg"
1869 install_prog="$install_prog$func_quote_for_eval_result"
1870
1871 # We need to accept at least all the BSD install flags.
1872 dest=
1873 files=
1874 opts=
1875 prev=
1876 install_type=
1877 isdir=no
1878 stripme=
1879 for arg
1880 do
1881 if test -n "$dest"; then
1882 files="$files $dest"
1883 dest=$arg
1884 continue
1885 fi
1886
1887 case $arg in
1888 -d) isdir=yes ;;
1889 -f)
1890 case " $install_prog " in
1891 *[\\\ /]cp\ *) ;;
1892 *) prev=$arg ;;
1893 esac
1894 ;;
1895 -g | -m | -o)
1896 prev=$arg
1897 ;;
1898 -s)
1899 stripme=" -s"
1900 continue
1901 ;;
1902 -*)
1903 ;;
1904 *)
1905 # If the previous option needed an argument, then skip it.
1906 if test -n "$prev"; then
1907 prev=
1908 else
1909 dest=$arg
1910 continue
1911 fi
1912 ;;
1913 esac
1914
1915 # Aesthetically quote the argument.
1916 func_quote_for_eval "$arg"
1917 install_prog="$install_prog $func_quote_for_eval_result"
1918 done
1919
1920 test -z "$install_prog" && \
1921 func_fatal_help "you must specify an install program"
1922
1923 test -n "$prev" && \
1924 func_fatal_help "the \`$prev' option requires an argument"
1925
1926 if test -z "$files"; then
1927 if test -z "$dest"; then
1928 func_fatal_help "no file or destination specified"
1929 else
1930 func_fatal_help "you must specify a destination"
1931 fi
1932 fi
1933
1934 # Strip any trailing slash from the destination.
1935 func_stripname '' '/' "$dest"
1936 dest=$func_stripname_result
1937
1938 # Check to see that the destination is a directory.
1939 test -d "$dest" && isdir=yes
1940 if test "$isdir" = yes; then
1941 destdir="$dest"
1942 destname=
1943 else
1944 func_dirname_and_basename "$dest" "" "."
1945 destdir="$func_dirname_result"
1946 destname="$func_basename_result"
1947
1948 # Not a directory, so check to see that there is only one file specified.
1949 set dummy $files; shift
1950 test "$#" -gt 1 && \
1951 func_fatal_help "\`$dest' is not a directory"
1952 fi
1953 case $destdir in
1954 [\\/]* | [A-Za-z]:[\\/]*) ;;
1955 *)
1956 for file in $files; do
1957 case $file in
1958 *.lo) ;;
1959 *)
1960 func_fatal_help "\`$destdir' must be an absolute directory name"
1961 ;;
1962 esac
1963 done
1964 ;;
1965 esac
1966
1967 # This variable tells wrapper scripts just to set variables rather
1968 # than running their programs.
1969 libtool_install_magic="$magic"
1970
1971 staticlibs=
1972 future_libdirs=
1973 current_libdirs=
1974 for file in $files; do
1975
1976 # Do each installation.
1977 case $file in
1978 *.$libext)
1979 # Do the static libraries later.
1980 staticlibs="$staticlibs $file"
1981 ;;
1982
1983 *.la)
1984 # Check to see that this really is a libtool archive.
1985 func_lalib_unsafe_p "$file" \
1986 || func_fatal_help "\`$file' is not a valid libtool archive"
1987
1988 library_names=
1989 old_library=
1990 relink_command=
1991 func_source "$file"
1992
1993 # Add the libdir to current_libdirs if it is the destination.
1994 if test "X$destdir" = "X$libdir"; then
1995 case "$current_libdirs " in
1996 *" $libdir "*) ;;
1997 *) current_libdirs="$current_libdirs $libdir" ;;
1998 esac
1999 else
2000 # Note the libdir as a future libdir.
2001 case "$future_libdirs " in
2002 *" $libdir "*) ;;
2003 *) future_libdirs="$future_libdirs $libdir" ;;
2004 esac
2005 fi
2006
2007 func_dirname "$file" "/" ""
2008 dir="$func_dirname_result"
2009 dir="$dir$objdir"
2010
2011 if test -n "$relink_command"; then
2012 # Determine the prefix the user has applied to our future dir.
2013 inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
2014
2015 # Don't allow the user to place us outside of our expected
2016 # location b/c this prevents finding dependent libraries that
2017 # are installed to the same prefix.
2018 # At present, this check doesn't affect windows .dll's that
2019 # are installed into $libdir/../bin (currently, that works fine)
2020 # but it's something to keep an eye on.
2021 test "$inst_prefix_dir" = "$destdir" && \
2022 func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
2023
2024 if test -n "$inst_prefix_dir"; then
2025 # Stick the inst_prefix_dir data into the link command.
2026 relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
2027 else
2028 relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
2029 fi
2030
2031 func_warning "relinking \`$file'"
2032 func_show_eval "$relink_command" \
2033 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
2034 fi
2035
2036 # See the names of the shared library.
2037 set dummy $library_names; shift
2038 if test -n "$1"; then
2039 realname="$1"
2040 shift
2041
2042 srcname="$realname"
2043 test -n "$relink_command" && srcname="$realname"T
2044
2045 # Install the shared library and build the symlinks.
2046 func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
2047 'exit $?'
2048 tstripme="$stripme"
2049 case $host_os in
2050 cygwin* | mingw* | pw32* | cegcc*)
2051 case $realname in
2052 *.dll.a)
2053 tstripme=""
2054 ;;
2055 esac
2056 ;;
2057 esac
2058 if test -n "$tstripme" && test -n "$striplib"; then
2059 func_show_eval "$striplib $destdir/$realname" 'exit $?'
2060 fi
2061
2062 if test "$#" -gt 0; then
2063 # Delete the old symlinks, and create new ones.
2064 # Try `ln -sf' first, because the `ln' binary might depend on
2065 # the symlink we replace! Solaris /bin/ln does not understand -f,
2066 # so we also need to try rm && ln -s.
2067 for linkname
2068 do
2069 test "$linkname" != "$realname" \
2070 && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
2071 done
2072 fi
2073
2074 # Do each command in the postinstall commands.
2075 lib="$destdir/$realname"
2076 func_execute_cmds "$postinstall_cmds" 'exit $?'
2077 fi
2078
2079 # Install the pseudo-library for information purposes.
2080 func_basename "$file"
2081 name="$func_basename_result"
2082 instname="$dir/$name"i
2083 func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
2084
2085 # Maybe install the static library, too.
2086 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
2087 ;;
2088
2089 *.lo)
2090 # Install (i.e. copy) a libtool object.
2091
2092 # Figure out destination file name, if it wasn't already specified.
2093 if test -n "$destname"; then
2094 destfile="$destdir/$destname"
2095 else
2096 func_basename "$file"
2097 destfile="$func_basename_result"
2098 destfile="$destdir/$destfile"
2099 fi
2100
2101 # Deduce the name of the destination old-style object file.
2102 case $destfile in
2103 *.lo)
2104 func_lo2o "$destfile"
2105 staticdest=$func_lo2o_result
2106 ;;
2107 *.$objext)
2108 staticdest="$destfile"
2109 destfile=
2110 ;;
2111 *)
2112 func_fatal_help "cannot copy a libtool object to \`$destfile'"
2113 ;;
2114 esac
2115
2116 # Install the libtool object if requested.
2117 test -n "$destfile" && \
2118 func_show_eval "$install_prog $file $destfile" 'exit $?'
2119
2120 # Install the old object if enabled.
2121 if test "$build_old_libs" = yes; then
2122 # Deduce the name of the old-style object file.
2123 func_lo2o "$file"
2124 staticobj=$func_lo2o_result
2125 func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
2126 fi
2127 exit $EXIT_SUCCESS
2128 ;;
2129
2130 *)
2131 # Figure out destination file name, if it wasn't already specified.
2132 if test -n "$destname"; then
2133 destfile="$destdir/$destname"
2134 else
2135 func_basename "$file"
2136 destfile="$func_basename_result"
2137 destfile="$destdir/$destfile"
2138 fi
2139
2140 # If the file is missing, and there is a .exe on the end, strip it
2141 # because it is most likely a libtool script we actually want to
2142 # install
2143 stripped_ext=""
2144 case $file in
2145 *.exe)
2146 if test ! -f "$file"; then
2147 func_stripname '' '.exe' "$file"
2148 file=$func_stripname_result
2149 stripped_ext=".exe"
2150 fi
2151 ;;
2152 esac
2153
2154 # Do a test to see if this is really a libtool program.
2155 case $host in
2156 *cygwin* | *mingw*)
2157 if func_ltwrapper_executable_p "$file"; then
2158 func_ltwrapper_scriptname "$file"
2159 wrapper=$func_ltwrapper_scriptname_result
2160 else
2161 func_stripname '' '.exe' "$file"
2162 wrapper=$func_stripname_result
2163 fi
2164 ;;
2165 *)
2166 wrapper=$file
2167 ;;
2168 esac
2169 if func_ltwrapper_script_p "$wrapper"; then
2170 notinst_deplibs=
2171 relink_command=
2172
2173 func_source "$wrapper"
2174
2175 # Check the variables that should have been set.
2176 test -z "$generated_by_libtool_version" && \
2177 func_fatal_error "invalid libtool wrapper script \`$wrapper'"
2178
2179 finalize=yes
2180 for lib in $notinst_deplibs; do
2181 # Check to see that each library is installed.
2182 libdir=
2183 if test -f "$lib"; then
2184 func_source "$lib"
2185 fi
2186 libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
2187 if test -n "$libdir" && test ! -f "$libfile"; then
2188 func_warning "\`$lib' has not been installed in \`$libdir'"
2189 finalize=no
2190 fi
2191 done
2192
2193 relink_command=
2194 func_source "$wrapper"
2195
2196 outputname=
2197 if test "$fast_install" = no && test -n "$relink_command"; then
2198 $opt_dry_run || {
2199 if test "$finalize" = yes; then
2200 tmpdir=`func_mktempdir`
2201 func_basename "$file$stripped_ext"
2202 file="$func_basename_result"
2203 outputname="$tmpdir/$file"
2204 # Replace the output file specification.
2205 relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
2206
2207 $opt_silent || {
2208 func_quote_for_expand "$relink_command"
2209 eval "func_echo $func_quote_for_expand_result"
2210 }
2211 if eval "$relink_command"; then :
2212 else
2213 func_error "error: relink \`$file' with the above command before installing it"
2214 $opt_dry_run || ${RM}r "$tmpdir"
2215 continue
2216 fi
2217 file="$outputname"
2218 else
2219 func_warning "cannot relink \`$file'"
2220 fi
2221 }
2222 else
2223 # Install the binary that we compiled earlier.
2224 file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
2225 fi
2226 fi
2227
2228 # remove .exe since cygwin /usr/bin/install will append another
2229 # one anyway
2230 case $install_prog,$host in
2231 */usr/bin/install*,*cygwin*)
2232 case $file:$destfile in
2233 *.exe:*.exe)
2234 # this is ok
2235 ;;
2236 *.exe:*)
2237 destfile=$destfile.exe
2238 ;;
2239 *:*.exe)
2240 func_stripname '' '.exe' "$destfile"
2241 destfile=$func_stripname_result
2242 ;;
2243 esac
2244 ;;
2245 esac
2246 func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
2247 $opt_dry_run || if test -n "$outputname"; then
2248 ${RM}r "$tmpdir"
2249 fi
2250 ;;
2251 esac
2252 done
2253
2254 for file in $staticlibs; do
2255 func_basename "$file"
2256 name="$func_basename_result"
2257
2258 # Set up the ranlib parameters.
2259 oldlib="$destdir/$name"
2260
2261 func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
2262
2263 if test -n "$stripme" && test -n "$old_striplib"; then
2264 func_show_eval "$old_striplib $oldlib" 'exit $?'
2265 fi
2266
2267 # Do each command in the postinstall commands.
2268 func_execute_cmds "$old_postinstall_cmds" 'exit $?'
2269 done
2270
2271 test -n "$future_libdirs" && \
2272 func_warning "remember to run \`$progname --finish$future_libdirs'"
2273
2274 if test -n "$current_libdirs"; then
2275 # Maybe just do a dry run.
2276 $opt_dry_run && current_libdirs=" -n$current_libdirs"
2277 exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
2278 else
2279 exit $EXIT_SUCCESS
2280 fi
2281}
2282
2283test "$mode" = install && func_mode_install ${1+"$@"}
2284
2285
2286# func_generate_dlsyms outputname originator pic_p
2287# Extract symbols from dlprefiles and create ${outputname}S.o with
2288# a dlpreopen symbol table.
2289func_generate_dlsyms ()
2290{
2291 $opt_debug
2292 my_outputname="$1"
2293 my_originator="$2"
2294 my_pic_p="${3-no}"
2295 my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
2296 my_dlsyms=
2297
2298 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2299 if test -n "$NM" && test -n "$global_symbol_pipe"; then
2300 my_dlsyms="${my_outputname}S.c"
2301 else
2302 func_error "not configured to extract global symbols from dlpreopened files"
2303 fi
2304 fi
2305
2306 if test -n "$my_dlsyms"; then
2307 case $my_dlsyms in
2308 "") ;;
2309 *.c)
2310 # Discover the nlist of each of the dlfiles.
2311 nlist="$output_objdir/${my_outputname}.nm"
2312
2313 func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
2314
2315 # Parse the name list into a source file.
2316 func_verbose "creating $output_objdir/$my_dlsyms"
2317
2318 $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
2319/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
2320/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
2321
2322#ifdef __cplusplus
2323extern \"C\" {
2324#endif
2325
2326/* External symbol declarations for the compiler. */\
2327"
2328
2329 if test "$dlself" = yes; then
2330 func_verbose "generating symbol list for \`$output'"
2331
2332 $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
2333
2334 # Add our own program objects to the symbol list.
2335 progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2336 for progfile in $progfiles; do
2337 func_verbose "extracting global C symbols from \`$progfile'"
2338 $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
2339 done
2340
2341 if test -n "$exclude_expsyms"; then
2342 $opt_dry_run || {
2343 eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
2344 eval '$MV "$nlist"T "$nlist"'
2345 }
2346 fi
2347
2348 if test -n "$export_symbols_regex"; then
2349 $opt_dry_run || {
2350 eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
2351 eval '$MV "$nlist"T "$nlist"'
2352 }
2353 fi
2354
2355 # Prepare the list of exported symbols
2356 if test -z "$export_symbols"; then
2357 export_symbols="$output_objdir/$outputname.exp"
2358 $opt_dry_run || {
2359 $RM $export_symbols
2360 eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
2361 case $host in
2362 *cygwin* | *mingw* | *cegcc* )
2363 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
2364 eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
2365 ;;
2366 esac
2367 }
2368 else
2369 $opt_dry_run || {
2370 eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
2371 eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
2372 eval '$MV "$nlist"T "$nlist"'
2373 case $host in
2374 *cygwin | *mingw* | *cegcc* )
2375 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
2376 eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
2377 ;;
2378 esac
2379 }
2380 fi
2381 fi
2382
2383 for dlprefile in $dlprefiles; do
2384 func_verbose "extracting global C symbols from \`$dlprefile'"
2385 func_basename "$dlprefile"
2386 name="$func_basename_result"
2387 $opt_dry_run || {
2388 eval '$ECHO ": $name " >> "$nlist"'
2389 eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
2390 }
2391 done
2392
2393 $opt_dry_run || {
2394 # Make sure we have at least an empty file.
2395 test -f "$nlist" || : > "$nlist"
2396
2397 if test -n "$exclude_expsyms"; then
2398 $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
2399 $MV "$nlist"T "$nlist"
2400 fi
2401
2402 # Try sorting and uniquifying the output.
2403 if $GREP -v "^: " < "$nlist" |
2404 if sort -k 3 </dev/null >/dev/null 2>&1; then
2405 sort -k 3
2406 else
2407 sort +2
2408 fi |
2409 uniq > "$nlist"S; then
2410 :
2411 else
2412 $GREP -v "^: " < "$nlist" > "$nlist"S
2413 fi
2414
2415 if test -f "$nlist"S; then
2416 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
2417 else
2418 $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
2419 fi
2420
2421 $ECHO >> "$output_objdir/$my_dlsyms" "\
2422
2423/* The mapping between symbol names and symbols. */
2424typedef struct {
2425 const char *name;
2426 void *address;
2427} lt_dlsymlist;
2428"
2429 case $host in
2430 *cygwin* | *mingw* | *cegcc* )
2431 $ECHO >> "$output_objdir/$my_dlsyms" "\
2432/* DATA imports from DLLs on WIN32 con't be const, because
2433 runtime relocations are performed -- see ld's documentation
2434 on pseudo-relocs. */"
2435 lt_dlsym_const= ;;
2436 *osf5*)
2437 echo >> "$output_objdir/$my_dlsyms" "\
2438/* This system does not cope well with relocations in const data */"
2439 lt_dlsym_const= ;;
2440 *)
2441 lt_dlsym_const=const ;;
2442 esac
2443
2444 $ECHO >> "$output_objdir/$my_dlsyms" "\
2445extern $lt_dlsym_const lt_dlsymlist
2446lt_${my_prefix}_LTX_preloaded_symbols[];
2447$lt_dlsym_const lt_dlsymlist
2448lt_${my_prefix}_LTX_preloaded_symbols[] =
2449{\
2450 { \"$my_originator\", (void *) 0 },"
2451
2452 case $need_lib_prefix in
2453 no)
2454 eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
2455 ;;
2456 *)
2457 eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
2458 ;;
2459 esac
2460 $ECHO >> "$output_objdir/$my_dlsyms" "\
2461 {0, (void *) 0}
2462};
2463
2464/* This works around a problem in FreeBSD linker */
2465#ifdef FREEBSD_WORKAROUND
2466static const void *lt_preloaded_setup() {
2467 return lt_${my_prefix}_LTX_preloaded_symbols;
2468}
2469#endif
2470
2471#ifdef __cplusplus
2472}
2473#endif\
2474"
2475 } # !$opt_dry_run
2476
2477 pic_flag_for_symtable=
2478 case "$compile_command " in
2479 *" -static "*) ;;
2480 *)
2481 case $host in
2482 # compiling the symbol table file with pic_flag works around
2483 # a FreeBSD bug that causes programs to crash when -lm is
2484 # linked before any other PIC object. But we must not use
2485 # pic_flag when linking with -static. The problem exists in
2486 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
2487 *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
2488 pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
2489 *-*-hpux*)
2490 pic_flag_for_symtable=" $pic_flag" ;;
2491 *)
2492 if test "X$my_pic_p" != Xno; then
2493 pic_flag_for_symtable=" $pic_flag"
2494 fi
2495 ;;
2496 esac
2497 ;;
2498 esac
2499 symtab_cflags=
2500 for arg in $LTCFLAGS; do
2501 case $arg in
2502 -pie | -fpie | -fPIE) ;;
2503 *) symtab_cflags="$symtab_cflags $arg" ;;
2504 esac
2505 done
2506
2507 # Now compile the dynamic symbol file.
2508 func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
2509
2510 # Clean up the generated files.
2511 func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
2512
2513 # Transform the symbol file into the correct name.
2514 symfileobj="$output_objdir/${my_outputname}S.$objext"
2515 case $host in
2516 *cygwin* | *mingw* | *cegcc* )
2517 if test -f "$output_objdir/$my_outputname.def"; then
2518 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
2519 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
2520 else
2521 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
2522 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
2523 fi
2524 ;;
2525 *)
2526 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
2527 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
2528 ;;
2529 esac
2530 ;;
2531 *)
2532 func_fatal_error "unknown suffix for \`$my_dlsyms'"
2533 ;;
2534 esac
2535 else
2536 # We keep going just in case the user didn't refer to
2537 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
2538 # really was required.
2539
2540 # Nullify the symbol file.
2541 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
2542 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
2543 fi
2544}
2545
2546# func_win32_libid arg
2547# return the library type of file 'arg'
2548#
2549# Need a lot of goo to handle *both* DLLs and import libs
2550# Has to be a shell function in order to 'eat' the argument
2551# that is supplied when $file_magic_command is called.
2552func_win32_libid ()
2553{
2554 $opt_debug
2555 win32_libid_type="unknown"
2556 win32_fileres=`file -L $1 2>/dev/null`
2557 case $win32_fileres in
2558 *ar\ archive\ import\ library*) # definitely import
2559 win32_libid_type="x86 archive import"
2560 ;;
2561 *ar\ archive*) # could be an import, or static
2562 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
2563 $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
2564 win32_nmres=`eval $NM -f posix -A $1 |
2565 $SED -n -e '
2566 1,100{
2567 / I /{
2568 s,.*,import,
2569 p
2570 q
2571 }
2572 }'`
2573 case $win32_nmres in
2574 import*) win32_libid_type="x86 archive import";;
2575 *) win32_libid_type="x86 archive static";;
2576 esac
2577 fi
2578 ;;
2579 *DLL*)
2580 win32_libid_type="x86 DLL"
2581 ;;
2582 *executable*) # but shell scripts are "executable" too...
2583 case $win32_fileres in
2584 *MS\ Windows\ PE\ Intel*)
2585 win32_libid_type="x86 DLL"
2586 ;;
2587 esac
1063 ;; 2588 ;;
2589 esac
2590 $ECHO "$win32_libid_type"
2591}
2592
1064 2593
1065 # libtool link mode 2594
1066 link | relink) 2595# func_extract_an_archive dir oldlib
1067 modename="$modename: link" 2596func_extract_an_archive ()
2597{
2598 $opt_debug
2599 f_ex_an_ar_dir="$1"; shift
2600 f_ex_an_ar_oldlib="$1"
2601 func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?'
2602 if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
2603 :
2604 else
2605 func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
2606 fi
2607}
2608
2609
2610# func_extract_archives gentop oldlib ...
2611func_extract_archives ()
2612{
2613 $opt_debug
2614 my_gentop="$1"; shift
2615 my_oldlibs=${1+"$@"}
2616 my_oldobjs=""
2617 my_xlib=""
2618 my_xabs=""
2619 my_xdir=""
2620
2621 for my_xlib in $my_oldlibs; do
2622 # Extract the objects.
2623 case $my_xlib in
2624 [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
2625 *) my_xabs=`pwd`"/$my_xlib" ;;
2626 esac
2627 func_basename "$my_xlib"
2628 my_xlib="$func_basename_result"
2629 my_xlib_u=$my_xlib
2630 while :; do
2631 case " $extracted_archives " in
2632 *" $my_xlib_u "*)
2633 func_arith $extracted_serial + 1
2634 extracted_serial=$func_arith_result
2635 my_xlib_u=lt$extracted_serial-$my_xlib ;;
2636 *) break ;;
2637 esac
2638 done
2639 extracted_archives="$extracted_archives $my_xlib_u"
2640 my_xdir="$my_gentop/$my_xlib_u"
2641
2642 func_mkdir_p "$my_xdir"
2643
2644 case $host in
2645 *-darwin*)
2646 func_verbose "Extracting $my_xabs"
2647 # Do not bother doing anything if just a dry run
2648 $opt_dry_run || {
2649 darwin_orig_dir=`pwd`
2650 cd $my_xdir || exit $?
2651 darwin_archive=$my_xabs
2652 darwin_curdir=`pwd`
2653 darwin_base_archive=`basename "$darwin_archive"`
2654 darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
2655 if test -n "$darwin_arches"; then
2656 darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
2657 darwin_arch=
2658 func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
2659 for darwin_arch in $darwin_arches ; do
2660 func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
2661 $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
2662 cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
2663 func_extract_an_archive "`pwd`" "${darwin_base_archive}"
2664 cd "$darwin_curdir"
2665 $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
2666 done # $darwin_arches
2667 ## Okay now we've a bunch of thin objects, gotta fatten them up :)
2668 darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
2669 darwin_file=
2670 darwin_files=
2671 for darwin_file in $darwin_filelist; do
2672 darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
2673 $LIPO -create -output "$darwin_file" $darwin_files
2674 done # $darwin_filelist
2675 $RM -rf unfat-$$
2676 cd "$darwin_orig_dir"
2677 else
2678 cd $darwin_orig_dir
2679 func_extract_an_archive "$my_xdir" "$my_xabs"
2680 fi # $darwin_arches
2681 } # !$opt_dry_run
2682 ;;
2683 *)
2684 func_extract_an_archive "$my_xdir" "$my_xabs"
2685 ;;
2686 esac
2687 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
2688 done
2689
2690 func_extract_archives_result="$my_oldobjs"
2691}
2692
2693
2694
2695# func_emit_wrapper_part1 [arg=no]
2696#
2697# Emit the first part of a libtool wrapper script on stdout.
2698# For more information, see the description associated with
2699# func_emit_wrapper(), below.
2700func_emit_wrapper_part1 ()
2701{
2702 func_emit_wrapper_part1_arg1=no
2703 if test -n "$1" ; then
2704 func_emit_wrapper_part1_arg1=$1
2705 fi
2706
2707 $ECHO "\
2708#! $SHELL
2709
2710# $output - temporary wrapper script for $objdir/$outputname
2711# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
2712#
2713# The $output program cannot be directly executed until all the libtool
2714# libraries that it depends on are installed.
2715#
2716# This wrapper script should never be moved out of the build directory.
2717# If it is, it will not operate correctly.
2718
2719# Sed substitution that helps us do robust quoting. It backslashifies
2720# metacharacters that are still active within double-quoted strings.
2721Xsed='${SED} -e 1s/^X//'
2722sed_quote_subst='$sed_quote_subst'
2723
2724# Be Bourne compatible
2725if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
2726 emulate sh
2727 NULLCMD=:
2728 # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
2729 # is contrary to our usage. Disable this feature.
2730 alias -g '\${1+\"\$@\"}'='\"\$@\"'
2731 setopt NO_GLOB_SUBST
2732else
2733 case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
2734fi
2735BIN_SH=xpg4; export BIN_SH # for Tru64
2736DUALCASE=1; export DUALCASE # for MKS sh
2737
2738# The HP-UX ksh and POSIX shell print the target directory to stdout
2739# if CDPATH is set.
2740(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
2741
2742relink_command=\"$relink_command\"
2743
2744# This environment variable determines our operation mode.
2745if test \"\$libtool_install_magic\" = \"$magic\"; then
2746 # install mode needs the following variables:
2747 generated_by_libtool_version='$macro_version'
2748 notinst_deplibs='$notinst_deplibs'
2749else
2750 # When we are sourced in execute mode, \$file and \$ECHO are already set.
2751 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2752 ECHO=\"$qecho\"
2753 file=\"\$0\"
2754 # Make sure echo works.
2755 if test \"X\$1\" = X--no-reexec; then
2756 # Discard the --no-reexec flag, and continue.
2757 shift
2758 elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
2759 # Yippee, \$ECHO works!
2760 :
2761 else
2762 # Restart under the correct shell, and then maybe \$ECHO will work.
2763 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
2764 fi
2765 fi\
2766"
2767 $ECHO "\
2768
2769 # Find the directory that this script lives in.
2770 thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
2771 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
2772
2773 # Follow symbolic links until we get to the real thisdir.
2774 file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
2775 while test -n \"\$file\"; do
2776 destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
2777
2778 # If there was a directory component, then change thisdir.
2779 if test \"x\$destdir\" != \"x\$file\"; then
2780 case \"\$destdir\" in
2781 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
2782 *) thisdir=\"\$thisdir/\$destdir\" ;;
2783 esac
2784 fi
2785
2786 file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
2787 file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
2788 done
2789"
2790}
2791# end: func_emit_wrapper_part1
2792
2793# func_emit_wrapper_part2 [arg=no]
2794#
2795# Emit the second part of a libtool wrapper script on stdout.
2796# For more information, see the description associated with
2797# func_emit_wrapper(), below.
2798func_emit_wrapper_part2 ()
2799{
2800 func_emit_wrapper_part2_arg1=no
2801 if test -n "$1" ; then
2802 func_emit_wrapper_part2_arg1=$1
2803 fi
2804
2805 $ECHO "\
2806
2807 # Usually 'no', except on cygwin/mingw when embedded into
2808 # the cwrapper.
2809 WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1
2810 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
2811 # special case for '.'
2812 if test \"\$thisdir\" = \".\"; then
2813 thisdir=\`pwd\`
2814 fi
2815 # remove .libs from thisdir
2816 case \"\$thisdir\" in
2817 *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
2818 $objdir ) thisdir=. ;;
2819 esac
2820 fi
2821
2822 # Try to get the absolute directory name.
2823 absdir=\`cd \"\$thisdir\" && pwd\`
2824 test -n \"\$absdir\" && thisdir=\"\$absdir\"
2825"
2826
2827 if test "$fast_install" = yes; then
2828 $ECHO "\
2829 program=lt-'$outputname'$exeext
2830 progdir=\"\$thisdir/$objdir\"
2831
2832 if test ! -f \"\$progdir/\$program\" ||
2833 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
2834 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
2835
2836 file=\"\$\$-\$program\"
2837
2838 if test ! -d \"\$progdir\"; then
2839 $MKDIR \"\$progdir\"
2840 else
2841 $RM \"\$progdir/\$file\"
2842 fi"
2843
2844 $ECHO "\
2845
2846 # relink executable if necessary
2847 if test -n \"\$relink_command\"; then
2848 if relink_command_output=\`eval \$relink_command 2>&1\`; then :
2849 else
2850 $ECHO \"\$relink_command_output\" >&2
2851 $RM \"\$progdir/\$file\"
2852 exit 1
2853 fi
2854 fi
2855
2856 $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
2857 { $RM \"\$progdir/\$program\";
2858 $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
2859 $RM \"\$progdir/\$file\"
2860 fi"
2861 else
2862 $ECHO "\
2863 program='$outputname'
2864 progdir=\"\$thisdir/$objdir\"
2865"
2866 fi
2867
2868 $ECHO "\
2869
2870 if test -f \"\$progdir/\$program\"; then"
2871
2872 # Export our shlibpath_var if we have one.
2873 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
2874 $ECHO "\
2875 # Add our own library path to $shlibpath_var
2876 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
2877
2878 # Some systems cannot cope with colon-terminated $shlibpath_var
2879 # The second colon is a workaround for a bug in BeOS R4 sed
2880 $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
2881
2882 export $shlibpath_var
2883"
2884 fi
2885
2886 # fixup the dll searchpath if we need to.
2887 if test -n "$dllsearchpath"; then
2888 $ECHO "\
2889 # Add the dll search path components to the executable PATH
2890 PATH=$dllsearchpath:\$PATH
2891"
2892 fi
2893
2894 $ECHO "\
2895 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2896 # Run the actual program with our arguments.
2897"
2898 case $host in
2899 # Backslashes separate directories on plain windows
2900 *-*-mingw | *-*-os2* | *-cegcc*)
2901 $ECHO "\
2902 exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
2903"
2904 ;;
2905
2906 *)
2907 $ECHO "\
2908 exec \"\$progdir/\$program\" \${1+\"\$@\"}
2909"
2910 ;;
2911 esac
2912 $ECHO "\
2913 \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
2914 exit 1
2915 fi
2916 else
2917 # The program doesn't exist.
2918 \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
2919 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
2920 $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
2921 exit 1
2922 fi
2923fi\
2924"
2925}
2926# end: func_emit_wrapper_part2
2927
2928
2929# func_emit_wrapper [arg=no]
2930#
2931# Emit a libtool wrapper script on stdout.
2932# Don't directly open a file because we may want to
2933# incorporate the script contents within a cygwin/mingw
2934# wrapper executable. Must ONLY be called from within
2935# func_mode_link because it depends on a number of variables
2936# set therein.
2937#
2938# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
2939# variable will take. If 'yes', then the emitted script
2940# will assume that the directory in which it is stored is
2941# the $objdir directory. This is a cygwin/mingw-specific
2942# behavior.
2943func_emit_wrapper ()
2944{
2945 func_emit_wrapper_arg1=no
2946 if test -n "$1" ; then
2947 func_emit_wrapper_arg1=$1
2948 fi
2949
2950 # split this up so that func_emit_cwrapperexe_src
2951 # can call each part independently.
2952 func_emit_wrapper_part1 "${func_emit_wrapper_arg1}"
2953 func_emit_wrapper_part2 "${func_emit_wrapper_arg1}"
2954}
2955
2956
2957# func_to_host_path arg
2958#
2959# Convert paths to host format when used with build tools.
2960# Intended for use with "native" mingw (where libtool itself
2961# is running under the msys shell), or in the following cross-
2962# build environments:
2963# $build $host
2964# mingw (msys) mingw [e.g. native]
2965# cygwin mingw
2966# *nix + wine mingw
2967# where wine is equipped with the `winepath' executable.
2968# In the native mingw case, the (msys) shell automatically
2969# converts paths for any non-msys applications it launches,
2970# but that facility isn't available from inside the cwrapper.
2971# Similar accommodations are necessary for $host mingw and
2972# $build cygwin. Calling this function does no harm for other
2973# $host/$build combinations not listed above.
2974#
2975# ARG is the path (on $build) that should be converted to
2976# the proper representation for $host. The result is stored
2977# in $func_to_host_path_result.
2978func_to_host_path ()
2979{
2980 func_to_host_path_result="$1"
2981 if test -n "$1" ; then
1068 case $host in 2982 case $host in
1069 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 2983 *mingw* )
2984 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
2985 case $build in
2986 *mingw* ) # actually, msys
2987 # awkward: cmd appends spaces to result
2988 lt_sed_strip_trailing_spaces="s/[ ]*\$//"
2989 func_to_host_path_tmp1=`( cmd //c echo "$1" |\
2990 $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
2991 func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
2992 $SED -e "$lt_sed_naive_backslashify"`
2993 ;;
2994 *cygwin* )
2995 func_to_host_path_tmp1=`cygpath -w "$1"`
2996 func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
2997 $SED -e "$lt_sed_naive_backslashify"`
2998 ;;
2999 * )
3000 # Unfortunately, winepath does not exit with a non-zero
3001 # error code, so we are forced to check the contents of
3002 # stdout. On the other hand, if the command is not
3003 # found, the shell will set an exit code of 127 and print
3004 # *an error message* to stdout. So we must check for both
3005 # error code of zero AND non-empty stdout, which explains
3006 # the odd construction:
3007 func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
3008 if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
3009 func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
3010 $SED -e "$lt_sed_naive_backslashify"`
3011 else
3012 # Allow warning below.
3013 func_to_host_path_result=""
3014 fi
3015 ;;
3016 esac
3017 if test -z "$func_to_host_path_result" ; then
3018 func_error "Could not determine host path corresponding to"
3019 func_error " '$1'"
3020 func_error "Continuing, but uninstalled executables may not work."
3021 # Fallback:
3022 func_to_host_path_result="$1"
3023 fi
3024 ;;
3025 esac
3026 fi
3027}
3028# end: func_to_host_path
3029
3030# func_to_host_pathlist arg
3031#
3032# Convert pathlists to host format when used with build tools.
3033# See func_to_host_path(), above. This function supports the
3034# following $build/$host combinations (but does no harm for
3035# combinations not listed here):
3036# $build $host
3037# mingw (msys) mingw [e.g. native]
3038# cygwin mingw
3039# *nix + wine mingw
3040#
3041# Path separators are also converted from $build format to
3042# $host format. If ARG begins or ends with a path separator
3043# character, it is preserved (but converted to $host format)
3044# on output.
3045#
3046# ARG is a pathlist (on $build) that should be converted to
3047# the proper representation on $host. The result is stored
3048# in $func_to_host_pathlist_result.
3049func_to_host_pathlist ()
3050{
3051 func_to_host_pathlist_result="$1"
3052 if test -n "$1" ; then
3053 case $host in
3054 *mingw* )
3055 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
3056 # Remove leading and trailing path separator characters from
3057 # ARG. msys behavior is inconsistent here, cygpath turns them
3058 # into '.;' and ';.', and winepath ignores them completely.
3059 func_to_host_pathlist_tmp2="$1"
3060 # Once set for this call, this variable should not be
3061 # reassigned. It is used in tha fallback case.
3062 func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\
3063 $SED -e 's|^:*||' -e 's|:*$||'`
3064 case $build in
3065 *mingw* ) # Actually, msys.
3066 # Awkward: cmd appends spaces to result.
3067 lt_sed_strip_trailing_spaces="s/[ ]*\$//"
3068 func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
3069 $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
3070 func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
3071 $SED -e "$lt_sed_naive_backslashify"`
3072 ;;
3073 *cygwin* )
3074 func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
3075 func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
3076 $SED -e "$lt_sed_naive_backslashify"`
3077 ;;
3078 * )
3079 # unfortunately, winepath doesn't convert pathlists
3080 func_to_host_pathlist_result=""
3081 func_to_host_pathlist_oldIFS=$IFS
3082 IFS=:
3083 for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
3084 IFS=$func_to_host_pathlist_oldIFS
3085 if test -n "$func_to_host_pathlist_f" ; then
3086 func_to_host_path "$func_to_host_pathlist_f"
3087 if test -n "$func_to_host_path_result" ; then
3088 if test -z "$func_to_host_pathlist_result" ; then
3089 func_to_host_pathlist_result="$func_to_host_path_result"
3090 else
3091 func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"
3092 fi
3093 fi
3094 fi
3095 IFS=:
3096 done
3097 IFS=$func_to_host_pathlist_oldIFS
3098 ;;
3099 esac
3100 if test -z "$func_to_host_pathlist_result" ; then
3101 func_error "Could not determine the host path(s) corresponding to"
3102 func_error " '$1'"
3103 func_error "Continuing, but uninstalled executables may not work."
3104 # Fallback. This may break if $1 contains DOS-style drive
3105 # specifications. The fix is not to complicate the expression
3106 # below, but for the user to provide a working wine installation
3107 # with winepath so that path translation in the cross-to-mingw
3108 # case works properly.
3109 lt_replace_pathsep_nix_to_dos="s|:|;|g"
3110 func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
3111 $SED -e "$lt_replace_pathsep_nix_to_dos"`
3112 fi
3113 # Now, add the leading and trailing path separators back
3114 case "$1" in
3115 :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
3116 ;;
3117 esac
3118 case "$1" in
3119 *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"
3120 ;;
3121 esac
3122 ;;
3123 esac
3124 fi
3125}
3126# end: func_to_host_pathlist
3127
3128# func_emit_cwrapperexe_src
3129# emit the source code for a wrapper executable on stdout
3130# Must ONLY be called from within func_mode_link because
3131# it depends on a number of variable set therein.
3132func_emit_cwrapperexe_src ()
3133{
3134 cat <<EOF
3135
3136/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
3137 Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
3138
3139 The $output program cannot be directly executed until all the libtool
3140 libraries that it depends on are installed.
3141
3142 This wrapper executable should never be moved out of the build directory.
3143 If it is, it will not operate correctly.
3144
3145 Currently, it simply execs the wrapper *script* "$SHELL $output",
3146 but could eventually absorb all of the scripts functionality and
3147 exec $objdir/$outputname directly.
3148*/
3149EOF
3150 cat <<"EOF"
3151#include <stdio.h>
3152#include <stdlib.h>
3153#ifdef _MSC_VER
3154# include <direct.h>
3155# include <process.h>
3156# include <io.h>
3157# define setmode _setmode
3158#else
3159# include <unistd.h>
3160# include <stdint.h>
3161# ifdef __CYGWIN__
3162# include <io.h>
3163# define HAVE_SETENV
3164# ifdef __STRICT_ANSI__
3165char *realpath (const char *, char *);
3166int putenv (char *);
3167int setenv (const char *, const char *, int);
3168# endif
3169# endif
3170#endif
3171#include <malloc.h>
3172#include <stdarg.h>
3173#include <assert.h>
3174#include <string.h>
3175#include <ctype.h>
3176#include <errno.h>
3177#include <fcntl.h>
3178#include <sys/stat.h>
3179
3180#if defined(PATH_MAX)
3181# define LT_PATHMAX PATH_MAX
3182#elif defined(MAXPATHLEN)
3183# define LT_PATHMAX MAXPATHLEN
3184#else
3185# define LT_PATHMAX 1024
3186#endif
3187
3188#ifndef S_IXOTH
3189# define S_IXOTH 0
3190#endif
3191#ifndef S_IXGRP
3192# define S_IXGRP 0
3193#endif
3194
3195#ifdef _MSC_VER
3196# define S_IXUSR _S_IEXEC
3197# define stat _stat
3198# ifndef _INTPTR_T_DEFINED
3199# define intptr_t int
3200# endif
3201#endif
3202
3203#ifndef DIR_SEPARATOR
3204# define DIR_SEPARATOR '/'
3205# define PATH_SEPARATOR ':'
3206#endif
3207
3208#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
3209 defined (__OS2__)
3210# define HAVE_DOS_BASED_FILE_SYSTEM
3211# define FOPEN_WB "wb"
3212# ifndef DIR_SEPARATOR_2
3213# define DIR_SEPARATOR_2 '\\'
3214# endif
3215# ifndef PATH_SEPARATOR_2
3216# define PATH_SEPARATOR_2 ';'
3217# endif
3218#endif
3219
3220#ifndef DIR_SEPARATOR_2
3221# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
3222#else /* DIR_SEPARATOR_2 */
3223# define IS_DIR_SEPARATOR(ch) \
3224 (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
3225#endif /* DIR_SEPARATOR_2 */
3226
3227#ifndef PATH_SEPARATOR_2
3228# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
3229#else /* PATH_SEPARATOR_2 */
3230# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
3231#endif /* PATH_SEPARATOR_2 */
3232
3233#ifdef __CYGWIN__
3234# define FOPEN_WB "wb"
3235#endif
3236
3237#ifndef FOPEN_WB
3238# define FOPEN_WB "w"
3239#endif
3240#ifndef _O_BINARY
3241# define _O_BINARY 0
3242#endif
3243
3244#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
3245#define XFREE(stale) do { \
3246 if (stale) { free ((void *) stale); stale = 0; } \
3247} while (0)
3248
3249#undef LTWRAPPER_DEBUGPRINTF
3250#if defined DEBUGWRAPPER
3251# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
3252static void
3253ltwrapper_debugprintf (const char *fmt, ...)
3254{
3255 va_list args;
3256 va_start (args, fmt);
3257 (void) vfprintf (stderr, fmt, args);
3258 va_end (args);
3259}
3260#else
3261# define LTWRAPPER_DEBUGPRINTF(args)
3262#endif
3263
3264const char *program_name = NULL;
3265
3266void *xmalloc (size_t num);
3267char *xstrdup (const char *string);
3268const char *base_name (const char *name);
3269char *find_executable (const char *wrapper);
3270char *chase_symlinks (const char *pathspec);
3271int make_executable (const char *path);
3272int check_executable (const char *path);
3273char *strendzap (char *str, const char *pat);
3274void lt_fatal (const char *message, ...);
3275void lt_setenv (const char *name, const char *value);
3276char *lt_extend_str (const char *orig_value, const char *add, int to_end);
3277void lt_opt_process_env_set (const char *arg);
3278void lt_opt_process_env_prepend (const char *arg);
3279void lt_opt_process_env_append (const char *arg);
3280int lt_split_name_value (const char *arg, char** name, char** value);
3281void lt_update_exe_path (const char *name, const char *value);
3282void lt_update_lib_path (const char *name, const char *value);
3283
3284static const char *script_text_part1 =
3285EOF
3286
3287 func_emit_wrapper_part1 yes |
3288 $SED -e 's/\([\\"]\)/\\\1/g' \
3289 -e 's/^/ "/' -e 's/$/\\n"/'
3290 echo ";"
3291 cat <<EOF
3292
3293static const char *script_text_part2 =
3294EOF
3295 func_emit_wrapper_part2 yes |
3296 $SED -e 's/\([\\"]\)/\\\1/g' \
3297 -e 's/^/ "/' -e 's/$/\\n"/'
3298 echo ";"
3299
3300 cat <<EOF
3301const char * MAGIC_EXE = "$magic_exe";
3302const char * LIB_PATH_VARNAME = "$shlibpath_var";
3303EOF
3304
3305 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
3306 func_to_host_pathlist "$temp_rpath"
3307 cat <<EOF
3308const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result";
3309EOF
3310 else
3311 cat <<"EOF"
3312const char * LIB_PATH_VALUE = "";
3313EOF
3314 fi
3315
3316 if test -n "$dllsearchpath"; then
3317 func_to_host_pathlist "$dllsearchpath:"
3318 cat <<EOF
3319const char * EXE_PATH_VARNAME = "PATH";
3320const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result";
3321EOF
3322 else
3323 cat <<"EOF"
3324const char * EXE_PATH_VARNAME = "";
3325const char * EXE_PATH_VALUE = "";
3326EOF
3327 fi
3328
3329 if test "$fast_install" = yes; then
3330 cat <<EOF
3331const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
3332EOF
3333 else
3334 cat <<EOF
3335const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
3336EOF
3337 fi
3338
3339
3340 cat <<"EOF"
3341
3342#define LTWRAPPER_OPTION_PREFIX "--lt-"
3343#define LTWRAPPER_OPTION_PREFIX_LENGTH 5
3344
3345static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH;
3346static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
3347
3348static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
3349
3350static const size_t env_set_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
3351static const char *env_set_opt = LTWRAPPER_OPTION_PREFIX "env-set";
3352 /* argument is putenv-style "foo=bar", value of foo is set to bar */
3353
3354static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
3355static const char *env_prepend_opt = LTWRAPPER_OPTION_PREFIX "env-prepend";
3356 /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */
3357
3358static const size_t env_append_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
3359static const char *env_append_opt = LTWRAPPER_OPTION_PREFIX "env-append";
3360 /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */
3361
3362int
3363main (int argc, char *argv[])
3364{
3365 char **newargz;
3366 int newargc;
3367 char *tmp_pathspec;
3368 char *actual_cwrapper_path;
3369 char *actual_cwrapper_name;
3370 char *target_name;
3371 char *lt_argv_zero;
3372 intptr_t rval = 127;
3373
3374 int i;
3375
3376 program_name = (char *) xstrdup (base_name (argv[0]));
3377 LTWRAPPER_DEBUGPRINTF (("(main) argv[0] : %s\n", argv[0]));
3378 LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
3379
3380 /* very simple arg parsing; don't want to rely on getopt */
3381 for (i = 1; i < argc; i++)
3382 {
3383 if (strcmp (argv[i], dumpscript_opt) == 0)
3384 {
3385EOF
3386 case "$host" in
3387 *mingw* | *cygwin* )
3388 # make stdout use "unix" line endings
3389 echo " setmode(1,_O_BINARY);"
3390 ;;
3391 esac
3392
3393 cat <<"EOF"
3394 printf ("%s", script_text_part1);
3395 printf ("%s", script_text_part2);
3396 return 0;
3397 }
3398 }
3399
3400 newargz = XMALLOC (char *, argc + 1);
3401 tmp_pathspec = find_executable (argv[0]);
3402 if (tmp_pathspec == NULL)
3403 lt_fatal ("Couldn't find %s", argv[0]);
3404 LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
3405 tmp_pathspec));
3406
3407 actual_cwrapper_path = chase_symlinks (tmp_pathspec);
3408 LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
3409 actual_cwrapper_path));
3410 XFREE (tmp_pathspec);
3411
3412 actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
3413 strendzap (actual_cwrapper_path, actual_cwrapper_name);
3414
3415 /* wrapper name transforms */
3416 strendzap (actual_cwrapper_name, ".exe");
3417 tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
3418 XFREE (actual_cwrapper_name);
3419 actual_cwrapper_name = tmp_pathspec;
3420 tmp_pathspec = 0;
3421
3422 /* target_name transforms -- use actual target program name; might have lt- prefix */
3423 target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
3424 strendzap (target_name, ".exe");
3425 tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
3426 XFREE (target_name);
3427 target_name = tmp_pathspec;
3428 tmp_pathspec = 0;
3429
3430 LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
3431 target_name));
3432EOF
3433
3434 cat <<EOF
3435 newargz[0] =
3436 XMALLOC (char, (strlen (actual_cwrapper_path) +
3437 strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
3438 strcpy (newargz[0], actual_cwrapper_path);
3439 strcat (newargz[0], "$objdir");
3440 strcat (newargz[0], "/");
3441EOF
3442
3443 cat <<"EOF"
3444 /* stop here, and copy so we don't have to do this twice */
3445 tmp_pathspec = xstrdup (newargz[0]);
3446
3447 /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
3448 strcat (newargz[0], actual_cwrapper_name);
3449
3450 /* DO want the lt- prefix here if it exists, so use target_name */
3451 lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
3452 XFREE (tmp_pathspec);
3453 tmp_pathspec = NULL;
3454EOF
3455
3456 case $host_os in
3457 mingw*)
3458 cat <<"EOF"
3459 {
3460 char* p;
3461 while ((p = strchr (newargz[0], '\\')) != NULL)
3462 {
3463 *p = '/';
3464 }
3465 while ((p = strchr (lt_argv_zero, '\\')) != NULL)
3466 {
3467 *p = '/';
3468 }
3469 }
3470EOF
3471 ;;
3472 esac
3473
3474 cat <<"EOF"
3475 XFREE (target_name);
3476 XFREE (actual_cwrapper_path);
3477 XFREE (actual_cwrapper_name);
3478
3479 lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
3480 lt_setenv ("DUALCASE", "1"); /* for MSK sh */
3481 lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
3482 lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
3483
3484 newargc=0;
3485 for (i = 1; i < argc; i++)
3486 {
3487 if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)
3488 {
3489 if (argv[i][env_set_opt_len] == '=')
3490 {
3491 const char *p = argv[i] + env_set_opt_len + 1;
3492 lt_opt_process_env_set (p);
3493 }
3494 else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc)
3495 {
3496 lt_opt_process_env_set (argv[++i]); /* don't copy */
3497 }
3498 else
3499 lt_fatal ("%s missing required argument", env_set_opt);
3500 continue;
3501 }
3502 if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)
3503 {
3504 if (argv[i][env_prepend_opt_len] == '=')
3505 {
3506 const char *p = argv[i] + env_prepend_opt_len + 1;
3507 lt_opt_process_env_prepend (p);
3508 }
3509 else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc)
3510 {
3511 lt_opt_process_env_prepend (argv[++i]); /* don't copy */
3512 }
3513 else
3514 lt_fatal ("%s missing required argument", env_prepend_opt);
3515 continue;
3516 }
3517 if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)
3518 {
3519 if (argv[i][env_append_opt_len] == '=')
3520 {
3521 const char *p = argv[i] + env_append_opt_len + 1;
3522 lt_opt_process_env_append (p);
3523 }
3524 else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc)
3525 {
3526 lt_opt_process_env_append (argv[++i]); /* don't copy */
3527 }
3528 else
3529 lt_fatal ("%s missing required argument", env_append_opt);
3530 continue;
3531 }
3532 if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
3533 {
3534 /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
3535 namespace, but it is not one of the ones we know about and
3536 have already dealt with, above (inluding dump-script), then
3537 report an error. Otherwise, targets might begin to believe
3538 they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
3539 namespace. The first time any user complains about this, we'll
3540 need to make LTWRAPPER_OPTION_PREFIX a configure-time option
3541 or a configure.ac-settable value.
3542 */
3543 lt_fatal ("Unrecognized option in %s namespace: '%s'",
3544 ltwrapper_option_prefix, argv[i]);
3545 }
3546 /* otherwise ... */
3547 newargz[++newargc] = xstrdup (argv[i]);
3548 }
3549 newargz[++newargc] = NULL;
3550
3551 LTWRAPPER_DEBUGPRINTF (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
3552 for (i = 0; i < newargc; i++)
3553 {
3554 LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
3555 }
3556
3557EOF
3558
3559 case $host_os in
3560 mingw*)
3561 cat <<"EOF"
3562 /* execv doesn't actually work on mingw as expected on unix */
3563 rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
3564 if (rval == -1)
3565 {
3566 /* failed to start process */
3567 LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
3568 return 127;
3569 }
3570 return rval;
3571EOF
3572 ;;
3573 *)
3574 cat <<"EOF"
3575 execv (lt_argv_zero, newargz);
3576 return rval; /* =127, but avoids unused variable warning */
3577EOF
3578 ;;
3579 esac
3580
3581 cat <<"EOF"
3582}
3583
3584void *
3585xmalloc (size_t num)
3586{
3587 void *p = (void *) malloc (num);
3588 if (!p)
3589 lt_fatal ("Memory exhausted");
3590
3591 return p;
3592}
3593
3594char *
3595xstrdup (const char *string)
3596{
3597 return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
3598 string) : NULL;
3599}
3600
3601const char *
3602base_name (const char *name)
3603{
3604 const char *base;
3605
3606#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
3607 /* Skip over the disk name in MSDOS pathnames. */
3608 if (isalpha ((unsigned char) name[0]) && name[1] == ':')
3609 name += 2;
3610#endif
3611
3612 for (base = name; *name; name++)
3613 if (IS_DIR_SEPARATOR (*name))
3614 base = name + 1;
3615 return base;
3616}
3617
3618int
3619check_executable (const char *path)
3620{
3621 struct stat st;
3622
3623 LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n",
3624 path ? (*path ? path : "EMPTY!") : "NULL!"));
3625 if ((!path) || (!*path))
3626 return 0;
3627
3628 if ((stat (path, &st) >= 0)
3629 && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
3630 return 1;
3631 else
3632 return 0;
3633}
3634
3635int
3636make_executable (const char *path)
3637{
3638 int rval = 0;
3639 struct stat st;
3640
3641 LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n",
3642 path ? (*path ? path : "EMPTY!") : "NULL!"));
3643 if ((!path) || (!*path))
3644 return 0;
3645
3646 if (stat (path, &st) >= 0)
3647 {
3648 rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
3649 }
3650 return rval;
3651}
3652
3653/* Searches for the full path of the wrapper. Returns
3654 newly allocated full path name if found, NULL otherwise
3655 Does not chase symlinks, even on platforms that support them.
3656*/
3657char *
3658find_executable (const char *wrapper)
3659{
3660 int has_slash = 0;
3661 const char *p;
3662 const char *p_next;
3663 /* static buffer for getcwd */
3664 char tmp[LT_PATHMAX + 1];
3665 int tmp_len;
3666 char *concat_name;
3667
3668 LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n",
3669 wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
3670
3671 if ((wrapper == NULL) || (*wrapper == '\0'))
3672 return NULL;
3673
3674 /* Absolute path? */
3675#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
3676 if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
3677 {
3678 concat_name = xstrdup (wrapper);
3679 if (check_executable (concat_name))
3680 return concat_name;
3681 XFREE (concat_name);
3682 }
3683 else
3684 {
3685#endif
3686 if (IS_DIR_SEPARATOR (wrapper[0]))
3687 {
3688 concat_name = xstrdup (wrapper);
3689 if (check_executable (concat_name))
3690 return concat_name;
3691 XFREE (concat_name);
3692 }
3693#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
3694 }
3695#endif
3696
3697 for (p = wrapper; *p; p++)
3698 if (*p == '/')
3699 {
3700 has_slash = 1;
3701 break;
3702 }
3703 if (!has_slash)
3704 {
3705 /* no slashes; search PATH */
3706 const char *path = getenv ("PATH");
3707 if (path != NULL)
3708 {
3709 for (p = path; *p; p = p_next)
3710 {
3711 const char *q;
3712 size_t p_len;
3713 for (q = p; *q; q++)
3714 if (IS_PATH_SEPARATOR (*q))
3715 break;
3716 p_len = q - p;
3717 p_next = (*q == '\0' ? q : q + 1);
3718 if (p_len == 0)
3719 {
3720 /* empty path: current directory */
3721 if (getcwd (tmp, LT_PATHMAX) == NULL)
3722 lt_fatal ("getcwd failed");
3723 tmp_len = strlen (tmp);
3724 concat_name =
3725 XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
3726 memcpy (concat_name, tmp, tmp_len);
3727 concat_name[tmp_len] = '/';
3728 strcpy (concat_name + tmp_len + 1, wrapper);
3729 }
3730 else
3731 {
3732 concat_name =
3733 XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
3734 memcpy (concat_name, p, p_len);
3735 concat_name[p_len] = '/';
3736 strcpy (concat_name + p_len + 1, wrapper);
3737 }
3738 if (check_executable (concat_name))
3739 return concat_name;
3740 XFREE (concat_name);
3741 }
3742 }
3743 /* not found in PATH; assume curdir */
3744 }
3745 /* Relative path | not found in path: prepend cwd */
3746 if (getcwd (tmp, LT_PATHMAX) == NULL)
3747 lt_fatal ("getcwd failed");
3748 tmp_len = strlen (tmp);
3749 concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
3750 memcpy (concat_name, tmp, tmp_len);
3751 concat_name[tmp_len] = '/';
3752 strcpy (concat_name + tmp_len + 1, wrapper);
3753
3754 if (check_executable (concat_name))
3755 return concat_name;
3756 XFREE (concat_name);
3757 return NULL;
3758}
3759
3760char *
3761chase_symlinks (const char *pathspec)
3762{
3763#ifndef S_ISLNK
3764 return xstrdup (pathspec);
3765#else
3766 char buf[LT_PATHMAX];
3767 struct stat s;
3768 char *tmp_pathspec = xstrdup (pathspec);
3769 char *p;
3770 int has_symlinks = 0;
3771 while (strlen (tmp_pathspec) && !has_symlinks)
3772 {
3773 LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
3774 tmp_pathspec));
3775 if (lstat (tmp_pathspec, &s) == 0)
3776 {
3777 if (S_ISLNK (s.st_mode) != 0)
3778 {
3779 has_symlinks = 1;
3780 break;
3781 }
3782
3783 /* search backwards for last DIR_SEPARATOR */
3784 p = tmp_pathspec + strlen (tmp_pathspec) - 1;
3785 while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
3786 p--;
3787 if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
3788 {
3789 /* no more DIR_SEPARATORS left */
3790 break;
3791 }
3792 *p = '\0';
3793 }
3794 else
3795 {
3796 char *errstr = strerror (errno);
3797 lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
3798 }
3799 }
3800 XFREE (tmp_pathspec);
3801
3802 if (!has_symlinks)
3803 {
3804 return xstrdup (pathspec);
3805 }
3806
3807 tmp_pathspec = realpath (pathspec, buf);
3808 if (tmp_pathspec == 0)
3809 {
3810 lt_fatal ("Could not follow symlinks for %s", pathspec);
3811 }
3812 return xstrdup (tmp_pathspec);
3813#endif
3814}
3815
3816char *
3817strendzap (char *str, const char *pat)
3818{
3819 size_t len, patlen;
3820
3821 assert (str != NULL);
3822 assert (pat != NULL);
3823
3824 len = strlen (str);
3825 patlen = strlen (pat);
3826
3827 if (patlen <= len)
3828 {
3829 str += len - patlen;
3830 if (strcmp (str, pat) == 0)
3831 *str = '\0';
3832 }
3833 return str;
3834}
3835
3836static void
3837lt_error_core (int exit_status, const char *mode,
3838 const char *message, va_list ap)
3839{
3840 fprintf (stderr, "%s: %s: ", program_name, mode);
3841 vfprintf (stderr, message, ap);
3842 fprintf (stderr, ".\n");
3843
3844 if (exit_status >= 0)
3845 exit (exit_status);
3846}
3847
3848void
3849lt_fatal (const char *message, ...)
3850{
3851 va_list ap;
3852 va_start (ap, message);
3853 lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
3854 va_end (ap);
3855}
3856
3857void
3858lt_setenv (const char *name, const char *value)
3859{
3860 LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
3861 (name ? name : "<NULL>"),
3862 (value ? value : "<NULL>")));
3863 {
3864#ifdef HAVE_SETENV
3865 /* always make a copy, for consistency with !HAVE_SETENV */
3866 char *str = xstrdup (value);
3867 setenv (name, str, 1);
3868#else
3869 int len = strlen (name) + 1 + strlen (value) + 1;
3870 char *str = XMALLOC (char, len);
3871 sprintf (str, "%s=%s", name, value);
3872 if (putenv (str) != EXIT_SUCCESS)
3873 {
3874 XFREE (str);
3875 }
3876#endif
3877 }
3878}
3879
3880char *
3881lt_extend_str (const char *orig_value, const char *add, int to_end)
3882{
3883 char *new_value;
3884 if (orig_value && *orig_value)
3885 {
3886 int orig_value_len = strlen (orig_value);
3887 int add_len = strlen (add);
3888 new_value = XMALLOC (char, add_len + orig_value_len + 1);
3889 if (to_end)
3890 {
3891 strcpy (new_value, orig_value);
3892 strcpy (new_value + orig_value_len, add);
3893 }
3894 else
3895 {
3896 strcpy (new_value, add);
3897 strcpy (new_value + add_len, orig_value);
3898 }
3899 }
3900 else
3901 {
3902 new_value = xstrdup (add);
3903 }
3904 return new_value;
3905}
3906
3907int
3908lt_split_name_value (const char *arg, char** name, char** value)
3909{
3910 const char *p;
3911 int len;
3912 if (!arg || !*arg)
3913 return 1;
3914
3915 p = strchr (arg, (int)'=');
3916
3917 if (!p)
3918 return 1;
3919
3920 *value = xstrdup (++p);
3921
3922 len = strlen (arg) - strlen (*value);
3923 *name = XMALLOC (char, len);
3924 strncpy (*name, arg, len-1);
3925 (*name)[len - 1] = '\0';
3926
3927 return 0;
3928}
3929
3930void
3931lt_opt_process_env_set (const char *arg)
3932{
3933 char *name = NULL;
3934 char *value = NULL;
3935
3936 if (lt_split_name_value (arg, &name, &value) != 0)
3937 {
3938 XFREE (name);
3939 XFREE (value);
3940 lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg);
3941 }
3942
3943 lt_setenv (name, value);
3944 XFREE (name);
3945 XFREE (value);
3946}
3947
3948void
3949lt_opt_process_env_prepend (const char *arg)
3950{
3951 char *name = NULL;
3952 char *value = NULL;
3953 char *new_value = NULL;
3954
3955 if (lt_split_name_value (arg, &name, &value) != 0)
3956 {
3957 XFREE (name);
3958 XFREE (value);
3959 lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg);
3960 }
3961
3962 new_value = lt_extend_str (getenv (name), value, 0);
3963 lt_setenv (name, new_value);
3964 XFREE (new_value);
3965 XFREE (name);
3966 XFREE (value);
3967}
3968
3969void
3970lt_opt_process_env_append (const char *arg)
3971{
3972 char *name = NULL;
3973 char *value = NULL;
3974 char *new_value = NULL;
3975
3976 if (lt_split_name_value (arg, &name, &value) != 0)
3977 {
3978 XFREE (name);
3979 XFREE (value);
3980 lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg);
3981 }
3982
3983 new_value = lt_extend_str (getenv (name), value, 1);
3984 lt_setenv (name, new_value);
3985 XFREE (new_value);
3986 XFREE (name);
3987 XFREE (value);
3988}
3989
3990void
3991lt_update_exe_path (const char *name, const char *value)
3992{
3993 LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
3994 (name ? name : "<NULL>"),
3995 (value ? value : "<NULL>")));
3996
3997 if (name && *name && value && *value)
3998 {
3999 char *new_value = lt_extend_str (getenv (name), value, 0);
4000 /* some systems can't cope with a ':'-terminated path #' */
4001 int len = strlen (new_value);
4002 while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
4003 {
4004 new_value[len-1] = '\0';
4005 }
4006 lt_setenv (name, new_value);
4007 XFREE (new_value);
4008 }
4009}
4010
4011void
4012lt_update_lib_path (const char *name, const char *value)
4013{
4014 LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
4015 (name ? name : "<NULL>"),
4016 (value ? value : "<NULL>")));
4017
4018 if (name && *name && value && *value)
4019 {
4020 char *new_value = lt_extend_str (getenv (name), value, 0);
4021 lt_setenv (name, new_value);
4022 XFREE (new_value);
4023 }
4024}
4025
4026
4027EOF
4028}
4029# end: func_emit_cwrapperexe_src
4030
4031# func_mode_link arg...
4032func_mode_link ()
4033{
4034 $opt_debug
4035 case $host in
4036 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
1070 # It is impossible to link a dll without this setting, and 4037 # It is impossible to link a dll without this setting, and
1071 # we shouldn't force the makefile maintainer to figure out 4038 # we shouldn't force the makefile maintainer to figure out
1072 # which system we are compiling for in order to pass an extra 4039 # which system we are compiling for in order to pass an extra
@@ -1084,10 +4051,10 @@ EOF
1084 allow_undefined=yes 4051 allow_undefined=yes
1085 ;; 4052 ;;
1086 esac 4053 esac
1087 libtool_args="$nonopt" 4054 libtool_args=$nonopt
1088 base_compile="$nonopt $@" 4055 base_compile="$nonopt $@"
1089 compile_command="$nonopt" 4056 compile_command=$nonopt
1090 finalize_command="$nonopt" 4057 finalize_command=$nonopt
1091 4058
1092 compile_rpath= 4059 compile_rpath=
1093 finalize_rpath= 4060 finalize_rpath=
@@ -1102,6 +4069,7 @@ EOF
1102 dllsearchpath= 4069 dllsearchpath=
1103 lib_search_path=`pwd` 4070 lib_search_path=`pwd`
1104 inst_prefix_dir= 4071 inst_prefix_dir=
4072 new_inherited_linker_flags=
1105 4073
1106 avoid_version=no 4074 avoid_version=no
1107 dlfiles= 4075 dlfiles=
@@ -1117,7 +4085,6 @@ EOF
1117 no_install=no 4085 no_install=no
1118 objs= 4086 objs=
1119 non_pic_objects= 4087 non_pic_objects=
1120 notinst_path= # paths that contain not-installed libtool libraries
1121 precious_files_regex= 4088 precious_files_regex=
1122 prefer_static_libs=no 4089 prefer_static_libs=no
1123 preload=no 4090 preload=no
@@ -1131,28 +4098,44 @@ EOF
1131 thread_safe=no 4098 thread_safe=no
1132 vinfo= 4099 vinfo=
1133 vinfo_number=no 4100 vinfo_number=no
1134 4101 weak_libs=
4102 single_module="${wl}-single_module"
1135 func_infer_tag $base_compile 4103 func_infer_tag $base_compile
1136 4104
1137 # We need to know -static, to get the right output filenames. 4105 # We need to know -static, to get the right output filenames.
1138 for arg 4106 for arg
1139 do 4107 do
1140 case $arg in 4108 case $arg in
1141 -all-static | -static) 4109 -shared)
1142 if test "X$arg" = "X-all-static"; then 4110 test "$build_libtool_libs" != yes && \
4111 func_fatal_configuration "can not build a shared library"
4112 build_old_libs=no
4113 break
4114 ;;
4115 -all-static | -static | -static-libtool-libs)
4116 case $arg in
4117 -all-static)
1143 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then 4118 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
1144 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 4119 func_warning "complete static linking is impossible in this configuration"
1145 fi 4120 fi
1146 if test -n "$link_static_flag"; then 4121 if test -n "$link_static_flag"; then
1147 dlopen_self=$dlopen_self_static 4122 dlopen_self=$dlopen_self_static
1148 fi 4123 fi
1149 prefer_static_libs=yes 4124 prefer_static_libs=yes
1150 else 4125 ;;
4126 -static)
1151 if test -z "$pic_flag" && test -n "$link_static_flag"; then 4127 if test -z "$pic_flag" && test -n "$link_static_flag"; then
1152 dlopen_self=$dlopen_self_static 4128 dlopen_self=$dlopen_self_static
1153 fi 4129 fi
1154 prefer_static_libs=built 4130 prefer_static_libs=built
1155 fi 4131 ;;
4132 -static-libtool-libs)
4133 if test -z "$pic_flag" && test -n "$link_static_flag"; then
4134 dlopen_self=$dlopen_self_static
4135 fi
4136 prefer_static_libs=yes
4137 ;;
4138 esac
1156 build_libtool_libs=no 4139 build_libtool_libs=no
1157 build_old_libs=yes 4140 build_old_libs=yes
1158 break 4141 break
@@ -1167,20 +4150,16 @@ EOF
1167 while test "$#" -gt 0; do 4150 while test "$#" -gt 0; do
1168 arg="$1" 4151 arg="$1"
1169 shift 4152 shift
1170 case $arg in 4153 func_quote_for_eval "$arg"
1171 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 4154 qarg=$func_quote_for_eval_unquoted_result
1172 qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test 4155 func_append libtool_args " $func_quote_for_eval_result"
1173 ;;
1174 *) qarg=$arg ;;
1175 esac
1176 libtool_args="$libtool_args $qarg"
1177 4156
1178 # If the previous option needs an argument, assign it. 4157 # If the previous option needs an argument, assign it.
1179 if test -n "$prev"; then 4158 if test -n "$prev"; then
1180 case $prev in 4159 case $prev in
1181 output) 4160 output)
1182 compile_command="$compile_command @OUTPUT@" 4161 func_append compile_command " @OUTPUT@"
1183 finalize_command="$finalize_command @OUTPUT@" 4162 func_append finalize_command " @OUTPUT@"
1184 ;; 4163 ;;
1185 esac 4164 esac
1186 4165
@@ -1188,8 +4167,8 @@ EOF
1188 dlfiles|dlprefiles) 4167 dlfiles|dlprefiles)
1189 if test "$preload" = no; then 4168 if test "$preload" = no; then
1190 # Add the symbol object into the linking commands. 4169 # Add the symbol object into the linking commands.
1191 compile_command="$compile_command @SYMFILE@" 4170 func_append compile_command " @SYMFILE@"
1192 finalize_command="$finalize_command @SYMFILE@" 4171 func_append finalize_command " @SYMFILE@"
1193 preload=yes 4172 preload=yes
1194 fi 4173 fi
1195 case $arg in 4174 case $arg in
@@ -1227,10 +4206,8 @@ EOF
1227 ;; 4206 ;;
1228 expsyms) 4207 expsyms)
1229 export_symbols="$arg" 4208 export_symbols="$arg"
1230 if test ! -f "$arg"; then 4209 test -f "$arg" \
1231 $echo "$modename: symbol file \`$arg' does not exist" 4210 || func_fatal_error "symbol file \`$arg' does not exist"
1232 exit $EXIT_FAILURE
1233 fi
1234 prev= 4211 prev=
1235 continue 4212 continue
1236 ;; 4213 ;;
@@ -1239,18 +4216,21 @@ EOF
1239 prev= 4216 prev=
1240 continue 4217 continue
1241 ;; 4218 ;;
1242 inst_prefix) 4219 framework)
1243 inst_prefix_dir="$arg" 4220 case $host in
1244 prev= 4221 *-*-darwin*)
1245 continue 4222 case "$deplibs " in
1246 ;; 4223 *" $qarg.ltframework "*) ;;
1247 precious_regex) 4224 *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
1248 precious_files_regex="$arg" 4225 ;;
4226 esac
4227 ;;
4228 esac
1249 prev= 4229 prev=
1250 continue 4230 continue
1251 ;; 4231 ;;
1252 release) 4232 inst_prefix)
1253 release="-$arg" 4233 inst_prefix_dir="$arg"
1254 prev= 4234 prev=
1255 continue 4235 continue
1256 ;; 4236 ;;
@@ -1258,39 +4238,30 @@ EOF
1258 if test -f "$arg"; then 4238 if test -f "$arg"; then
1259 save_arg=$arg 4239 save_arg=$arg
1260 moreargs= 4240 moreargs=
1261 for fil in `cat $save_arg` 4241 for fil in `cat "$save_arg"`
1262 do 4242 do
1263# moreargs="$moreargs $fil" 4243# moreargs="$moreargs $fil"
1264 arg=$fil 4244 arg=$fil
1265 # A libtool-controlled object. 4245 # A libtool-controlled object.
1266 4246
1267 # Check to see that this really is a libtool object. 4247 # Check to see that this really is a libtool object.
1268 if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 4248 if func_lalib_unsafe_p "$arg"; then
1269 pic_object= 4249 pic_object=
1270 non_pic_object= 4250 non_pic_object=
1271 4251
1272 # Read the .lo file 4252 # Read the .lo file
1273 # If there is no directory component, then add one. 4253 func_source "$arg"
1274 case $arg in
1275 */* | *\\*) . $arg ;;
1276 *) . ./$arg ;;
1277 esac
1278 4254
1279 if test -z "$pic_object" || \ 4255 if test -z "$pic_object" ||
1280 test -z "$non_pic_object" || 4256 test -z "$non_pic_object" ||
1281 test "$pic_object" = none && \ 4257 test "$pic_object" = none &&
1282 test "$non_pic_object" = none; then 4258 test "$non_pic_object" = none; then
1283 $echo "$modename: cannot find name of object for \`$arg'" 1>&2 4259 func_fatal_error "cannot find name of object for \`$arg'"
1284 exit $EXIT_FAILURE
1285 fi 4260 fi
1286 4261
1287 # Extract subdirectory from the argument. 4262 # Extract subdirectory from the argument.
1288 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 4263 func_dirname "$arg" "/" ""
1289 if test "X$xdir" = "X$arg"; then 4264 xdir="$func_dirname_result"
1290 xdir=
1291 else
1292 xdir="$xdir/"
1293 fi
1294 4265
1295 if test "$pic_object" != none; then 4266 if test "$pic_object" != none; then
1296 # Prepend the subdirectory the object is found in. 4267 # Prepend the subdirectory the object is found in.
@@ -1315,7 +4286,7 @@ EOF
1315 fi 4286 fi
1316 4287
1317 # A PIC object. 4288 # A PIC object.
1318 libobjs="$libobjs $pic_object" 4289 func_append libobjs " $pic_object"
1319 arg="$pic_object" 4290 arg="$pic_object"
1320 fi 4291 fi
1321 4292
@@ -1325,7 +4296,7 @@ EOF
1325 non_pic_object="$xdir$non_pic_object" 4296 non_pic_object="$xdir$non_pic_object"
1326 4297
1327 # A standard non-PIC object 4298 # A standard non-PIC object
1328 non_pic_objects="$non_pic_objects $non_pic_object" 4299 func_append non_pic_objects " $non_pic_object"
1329 if test -z "$pic_object" || test "$pic_object" = none ; then 4300 if test -z "$pic_object" || test "$pic_object" = none ; then
1330 arg="$non_pic_object" 4301 arg="$non_pic_object"
1331 fi 4302 fi
@@ -1333,46 +4304,48 @@ EOF
1333 # If the PIC object exists, use it instead. 4304 # If the PIC object exists, use it instead.
1334 # $xdir was prepended to $pic_object above. 4305 # $xdir was prepended to $pic_object above.
1335 non_pic_object="$pic_object" 4306 non_pic_object="$pic_object"
1336 non_pic_objects="$non_pic_objects $non_pic_object" 4307 func_append non_pic_objects " $non_pic_object"
1337 fi 4308 fi
1338 else 4309 else
1339 # Only an error if not doing a dry-run. 4310 # Only an error if not doing a dry-run.
1340 if test -z "$run"; then 4311 if $opt_dry_run; then
1341 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1342 exit $EXIT_FAILURE
1343 else
1344 # Dry-run case.
1345
1346 # Extract subdirectory from the argument. 4312 # Extract subdirectory from the argument.
1347 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 4313 func_dirname "$arg" "/" ""
1348 if test "X$xdir" = "X$arg"; then 4314 xdir="$func_dirname_result"
1349 xdir= 4315
1350 else 4316 func_lo2o "$arg"
1351 xdir="$xdir/" 4317 pic_object=$xdir$objdir/$func_lo2o_result
1352 fi 4318 non_pic_object=$xdir$func_lo2o_result
1353 4319 func_append libobjs " $pic_object"
1354 pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` 4320 func_append non_pic_objects " $non_pic_object"
1355 non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` 4321 else
1356 libobjs="$libobjs $pic_object" 4322 func_fatal_error "\`$arg' is not a valid libtool object"
1357 non_pic_objects="$non_pic_objects $non_pic_object"
1358 fi 4323 fi
1359 fi 4324 fi
1360 done 4325 done
1361 else 4326 else
1362 $echo "$modename: link input file \`$save_arg' does not exist" 4327 func_fatal_error "link input file \`$arg' does not exist"
1363 exit $EXIT_FAILURE
1364 fi 4328 fi
1365 arg=$save_arg 4329 arg=$save_arg
1366 prev= 4330 prev=
1367 continue 4331 continue
1368 ;; 4332 ;;
4333 precious_regex)
4334 precious_files_regex="$arg"
4335 prev=
4336 continue
4337 ;;
4338 release)
4339 release="-$arg"
4340 prev=
4341 continue
4342 ;;
1369 rpath | xrpath) 4343 rpath | xrpath)
1370 # We need an absolute path. 4344 # We need an absolute path.
1371 case $arg in 4345 case $arg in
1372 [\\/]* | [A-Za-z]:[\\/]*) ;; 4346 [\\/]* | [A-Za-z]:[\\/]*) ;;
1373 *) 4347 *)
1374 $echo "$modename: only absolute run-paths are allowed" 1>&2 4348 func_fatal_error "only absolute run-paths are allowed"
1375 exit $EXIT_FAILURE
1376 ;; 4349 ;;
1377 esac 4350 esac
1378 if test "$prev" = rpath; then 4351 if test "$prev" = rpath; then
@@ -1389,39 +4362,37 @@ EOF
1389 prev= 4362 prev=
1390 continue 4363 continue
1391 ;; 4364 ;;
1392 xcompiler) 4365 shrext)
1393 compiler_flags="$compiler_flags $qarg" 4366 shrext_cmds="$arg"
1394 prev= 4367 prev=
1395 compile_command="$compile_command $qarg"
1396 finalize_command="$finalize_command $qarg"
1397 continue 4368 continue
1398 ;; 4369 ;;
1399 xlinker) 4370 weak)
1400 linker_flags="$linker_flags $qarg" 4371 weak_libs="$weak_libs $arg"
1401 compiler_flags="$compiler_flags $wl$qarg"
1402 prev= 4372 prev=
1403 compile_command="$compile_command $wl$qarg"
1404 finalize_command="$finalize_command $wl$qarg"
1405 continue 4373 continue
1406 ;; 4374 ;;
1407 xcclinker) 4375 xcclinker)
1408 linker_flags="$linker_flags $qarg" 4376 linker_flags="$linker_flags $qarg"
1409 compiler_flags="$compiler_flags $qarg" 4377 compiler_flags="$compiler_flags $qarg"
1410 prev= 4378 prev=
1411 compile_command="$compile_command $qarg" 4379 func_append compile_command " $qarg"
1412 finalize_command="$finalize_command $qarg" 4380 func_append finalize_command " $qarg"
1413 continue 4381 continue
1414 ;; 4382 ;;
1415 shrext) 4383 xcompiler)
1416 shrext_cmds="$arg" 4384 compiler_flags="$compiler_flags $qarg"
1417 prev= 4385 prev=
4386 func_append compile_command " $qarg"
4387 func_append finalize_command " $qarg"
1418 continue 4388 continue
1419 ;; 4389 ;;
1420 darwin_framework|darwin_framework_skip) 4390 xlinker)
1421 test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" 4391 linker_flags="$linker_flags $qarg"
1422 compile_command="$compile_command $arg" 4392 compiler_flags="$compiler_flags $wl$qarg"
1423 finalize_command="$finalize_command $arg"
1424 prev= 4393 prev=
4394 func_append compile_command " $wl$qarg"
4395 func_append finalize_command " $wl$qarg"
1425 continue 4396 continue
1426 ;; 4397 ;;
1427 *) 4398 *)
@@ -1437,16 +4408,16 @@ EOF
1437 case $arg in 4408 case $arg in
1438 -all-static) 4409 -all-static)
1439 if test -n "$link_static_flag"; then 4410 if test -n "$link_static_flag"; then
1440 compile_command="$compile_command $link_static_flag" 4411 # See comment for -static flag below, for more details.
1441 finalize_command="$finalize_command $link_static_flag" 4412 func_append compile_command " $link_static_flag"
4413 func_append finalize_command " $link_static_flag"
1442 fi 4414 fi
1443 continue 4415 continue
1444 ;; 4416 ;;
1445 4417
1446 -allow-undefined) 4418 -allow-undefined)
1447 # FIXME: remove this flag sometime in the future. 4419 # FIXME: remove this flag sometime in the future.
1448 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 4420 func_fatal_error "\`-allow-undefined' must not be used because it is the default"
1449 continue
1450 ;; 4421 ;;
1451 4422
1452 -avoid-version) 4423 -avoid-version)
@@ -1471,8 +4442,7 @@ EOF
1471 4442
1472 -export-symbols | -export-symbols-regex) 4443 -export-symbols | -export-symbols-regex)
1473 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then 4444 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1474 $echo "$modename: more than one -exported-symbols argument is not allowed" 4445 func_fatal_error "more than one -exported-symbols argument is not allowed"
1475 exit $EXIT_FAILURE
1476 fi 4446 fi
1477 if test "X$arg" = "X-export-symbols"; then 4447 if test "X$arg" = "X-export-symbols"; then
1478 prev=expsyms 4448 prev=expsyms
@@ -1482,15 +4452,8 @@ EOF
1482 continue 4452 continue
1483 ;; 4453 ;;
1484 4454
1485 -framework|-arch|-isysroot) 4455 -framework)
1486 case " $CC " in 4456 prev=framework
1487 *" ${arg} ${1} "* | *" ${arg} ${1} "*)
1488 prev=darwin_framework_skip ;;
1489 *) compiler_flags="$compiler_flags $arg"
1490 prev=darwin_framework ;;
1491 esac
1492 compile_command="$compile_command $arg"
1493 finalize_command="$finalize_command $arg"
1494 continue 4457 continue
1495 ;; 4458 ;;
1496 4459
@@ -1504,25 +4467,30 @@ EOF
1504 -L[A-Z][A-Z]*:*) 4467 -L[A-Z][A-Z]*:*)
1505 case $with_gcc/$host in 4468 case $with_gcc/$host in
1506 no/*-*-irix* | /*-*-irix*) 4469 no/*-*-irix* | /*-*-irix*)
1507 compile_command="$compile_command $arg" 4470 func_append compile_command " $arg"
1508 finalize_command="$finalize_command $arg" 4471 func_append finalize_command " $arg"
1509 ;; 4472 ;;
1510 esac 4473 esac
1511 continue 4474 continue
1512 ;; 4475 ;;
1513 4476
1514 -L*) 4477 -L*)
1515 dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` 4478 func_stripname '-L' '' "$arg"
4479 dir=$func_stripname_result
4480 if test -z "$dir"; then
4481 if test "$#" -gt 0; then
4482 func_fatal_error "require no space between \`-L' and \`$1'"
4483 else
4484 func_fatal_error "need path for \`-L' option"
4485 fi
4486 fi
1516 # We need an absolute path. 4487 # We need an absolute path.
1517 case $dir in 4488 case $dir in
1518 [\\/]* | [A-Za-z]:[\\/]*) ;; 4489 [\\/]* | [A-Za-z]:[\\/]*) ;;
1519 *) 4490 *)
1520 absdir=`cd "$dir" && pwd` 4491 absdir=`cd "$dir" && pwd`
1521 if test -z "$absdir"; then 4492 test -z "$absdir" && \
1522 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 4493 func_fatal_error "cannot determine absolute directory name of \`$dir'"
1523 absdir="$dir"
1524 notinst_path="$notinst_path $dir"
1525 fi
1526 dir="$absdir" 4494 dir="$absdir"
1527 ;; 4495 ;;
1528 esac 4496 esac
@@ -1534,14 +4502,16 @@ EOF
1534 ;; 4502 ;;
1535 esac 4503 esac
1536 case $host in 4504 case $host in
1537 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 4505 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
1538 testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` 4506 testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
1539 case :$dllsearchpath: in 4507 case :$dllsearchpath: in
1540 *":$dir:"*) ;; 4508 *":$dir:"*) ;;
4509 ::) dllsearchpath=$dir;;
1541 *) dllsearchpath="$dllsearchpath:$dir";; 4510 *) dllsearchpath="$dllsearchpath:$dir";;
1542 esac 4511 esac
1543 case :$dllsearchpath: in 4512 case :$dllsearchpath: in
1544 *":$testbindir:"*) ;; 4513 *":$testbindir:"*) ;;
4514 ::) dllsearchpath=$testbindir;;
1545 *) dllsearchpath="$dllsearchpath:$testbindir";; 4515 *) dllsearchpath="$dllsearchpath:$testbindir";;
1546 esac 4516 esac
1547 ;; 4517 ;;
@@ -1552,7 +4522,7 @@ EOF
1552 -l*) 4522 -l*)
1553 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then 4523 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1554 case $host in 4524 case $host in
1555 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) 4525 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*)
1556 # These systems don't actually have a C or math library (as such) 4526 # These systems don't actually have a C or math library (as such)
1557 continue 4527 continue
1558 ;; 4528 ;;
@@ -1566,7 +4536,7 @@ EOF
1566 ;; 4536 ;;
1567 *-*-rhapsody* | *-*-darwin1.[012]) 4537 *-*-rhapsody* | *-*-darwin1.[012])
1568 # Rhapsody C and math libraries are in the System framework 4538 # Rhapsody C and math libraries are in the System framework
1569 deplibs="$deplibs -framework System" 4539 deplibs="$deplibs System.ltframework"
1570 continue 4540 continue
1571 ;; 4541 ;;
1572 *-*-sco3.2v5* | *-*-sco5v6*) 4542 *-*-sco3.2v5* | *-*-sco5v6*)
@@ -1590,57 +4560,35 @@ EOF
1590 continue 4560 continue
1591 ;; 4561 ;;
1592 4562
4563 -module)
4564 module=yes
4565 continue
4566 ;;
4567
1593 # Tru64 UNIX uses -model [arg] to determine the layout of C++ 4568 # Tru64 UNIX uses -model [arg] to determine the layout of C++
1594 # classes, name mangling, and exception handling. 4569 # classes, name mangling, and exception handling.
1595 -model) 4570 # Darwin uses the -arch flag to determine output architecture.
1596 compile_command="$compile_command $arg" 4571 -model|-arch|-isysroot)
1597 compiler_flags="$compiler_flags $arg" 4572 compiler_flags="$compiler_flags $arg"
1598 finalize_command="$finalize_command $arg" 4573 func_append compile_command " $arg"
4574 func_append finalize_command " $arg"
1599 prev=xcompiler 4575 prev=xcompiler
1600 continue 4576 continue
1601 ;; 4577 ;;
1602 4578
1603 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) 4579 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
1604 compiler_flags="$compiler_flags $arg" 4580 compiler_flags="$compiler_flags $arg"
1605 compile_command="$compile_command $arg" 4581 func_append compile_command " $arg"
1606 finalize_command="$finalize_command $arg" 4582 func_append finalize_command " $arg"
1607 continue 4583 case "$new_inherited_linker_flags " in
1608 ;; 4584 *" $arg "*) ;;
1609 4585 * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
1610 -module) 4586 esac
1611 module=yes
1612 continue 4587 continue
1613 ;; 4588 ;;
1614 4589
1615 # -64, -mips[0-9] enable 64-bit mode on the SGI compiler 4590 -multi_module)
1616 # -r[0-9][0-9]* specifies the processor on the SGI compiler 4591 single_module="${wl}-multi_module"
1617 # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
1618 # +DA*, +DD* enable 64-bit mode on the HP compiler
1619 # -q* pass through compiler args for the IBM compiler
1620 # -m* pass through architecture-specific compiler args for GCC
1621 # -m*, -t[45]*, -txscale* pass through architecture-specific
1622 # compiler args for GCC
1623 # -pg pass through profiling flag for GCC
1624 # @file GCC response files
1625 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \
1626 -t[45]*|-txscale*|@*)
1627
1628 # Unknown arguments in both finalize_command and compile_command need
1629 # to be aesthetically quoted because they are evaled later.
1630 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1631 case $arg in
1632 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1633 arg="\"$arg\""
1634 ;;
1635 esac
1636 compile_command="$compile_command $arg"
1637 finalize_command="$finalize_command $arg"
1638 compiler_flags="$compiler_flags $arg"
1639 continue
1640 ;;
1641
1642 -shrext)
1643 prev=shrext
1644 continue 4592 continue
1645 ;; 4593 ;;
1646 4594
@@ -1651,11 +4599,11 @@ EOF
1651 4599
1652 -no-install) 4600 -no-install)
1653 case $host in 4601 case $host in
1654 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 4602 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
1655 # The PATH hackery in wrapper scripts is required on Windows 4603 # The PATH hackery in wrapper scripts is required on Windows
1656 # in order for the loader to find any dlls it needs. 4604 # and Darwin in order for the loader to find any dlls it needs.
1657 $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 4605 func_warning "\`-no-install' is ignored for $host"
1658 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 4606 func_warning "assuming \`-no-fast-install' instead"
1659 fast_install=no 4607 fast_install=no
1660 ;; 4608 ;;
1661 *) no_install=yes ;; 4609 *) no_install=yes ;;
@@ -1696,13 +4644,13 @@ EOF
1696 ;; 4644 ;;
1697 4645
1698 -R*) 4646 -R*)
1699 dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` 4647 func_stripname '-R' '' "$arg"
4648 dir=$func_stripname_result
1700 # We need an absolute path. 4649 # We need an absolute path.
1701 case $dir in 4650 case $dir in
1702 [\\/]* | [A-Za-z]:[\\/]*) ;; 4651 [\\/]* | [A-Za-z]:[\\/]*) ;;
1703 *) 4652 *)
1704 $echo "$modename: only absolute run-paths are allowed" 1>&2 4653 func_fatal_error "only absolute run-paths are allowed"
1705 exit $EXIT_FAILURE
1706 ;; 4654 ;;
1707 esac 4655 esac
1708 case "$xrpath " in 4656 case "$xrpath " in
@@ -1712,7 +4660,17 @@ EOF
1712 continue 4660 continue
1713 ;; 4661 ;;
1714 4662
1715 -static) 4663 -shared)
4664 # The effects of -shared are defined in a previous loop.
4665 continue
4666 ;;
4667
4668 -shrext)
4669 prev=shrext
4670 continue
4671 ;;
4672
4673 -static | -static-libtool-libs)
1716 # The effects of -static are defined in a previous loop. 4674 # The effects of -static are defined in a previous loop.
1717 # We used to do the same as -all-static on platforms that 4675 # We used to do the same as -all-static on platforms that
1718 # didn't have a PIC flag, but the assumption that the effects 4676 # didn't have a PIC flag, but the assumption that the effects
@@ -1730,47 +4688,49 @@ EOF
1730 prev=vinfo 4688 prev=vinfo
1731 continue 4689 continue
1732 ;; 4690 ;;
4691
1733 -version-number) 4692 -version-number)
1734 prev=vinfo 4693 prev=vinfo
1735 vinfo_number=yes 4694 vinfo_number=yes
1736 continue 4695 continue
1737 ;; 4696 ;;
1738 4697
4698 -weak)
4699 prev=weak
4700 continue
4701 ;;
4702
1739 -Wc,*) 4703 -Wc,*)
1740 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` 4704 func_stripname '-Wc,' '' "$arg"
4705 args=$func_stripname_result
1741 arg= 4706 arg=
1742 save_ifs="$IFS"; IFS=',' 4707 save_ifs="$IFS"; IFS=','
1743 for flag in $args; do 4708 for flag in $args; do
1744 IFS="$save_ifs" 4709 IFS="$save_ifs"
1745 case $flag in 4710 func_quote_for_eval "$flag"
1746 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 4711 arg="$arg $wl$func_quote_for_eval_result"
1747 flag="\"$flag\"" 4712 compiler_flags="$compiler_flags $func_quote_for_eval_result"
1748 ;;
1749 esac
1750 arg="$arg $wl$flag"
1751 compiler_flags="$compiler_flags $flag"
1752 done 4713 done
1753 IFS="$save_ifs" 4714 IFS="$save_ifs"
1754 arg=`$echo "X$arg" | $Xsed -e "s/^ //"` 4715 func_stripname ' ' '' "$arg"
4716 arg=$func_stripname_result
1755 ;; 4717 ;;
1756 4718
1757 -Wl,*) 4719 -Wl,*)
1758 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` 4720 func_stripname '-Wl,' '' "$arg"
4721 args=$func_stripname_result
1759 arg= 4722 arg=
1760 save_ifs="$IFS"; IFS=',' 4723 save_ifs="$IFS"; IFS=','
1761 for flag in $args; do 4724 for flag in $args; do
1762 IFS="$save_ifs" 4725 IFS="$save_ifs"
1763 case $flag in 4726 func_quote_for_eval "$flag"
1764 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 4727 arg="$arg $wl$func_quote_for_eval_result"
1765 flag="\"$flag\"" 4728 compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
1766 ;; 4729 linker_flags="$linker_flags $func_quote_for_eval_result"
1767 esac
1768 arg="$arg $wl$flag"
1769 compiler_flags="$compiler_flags $wl$flag"
1770 linker_flags="$linker_flags $flag"
1771 done 4730 done
1772 IFS="$save_ifs" 4731 IFS="$save_ifs"
1773 arg=`$echo "X$arg" | $Xsed -e "s/^ //"` 4732 func_stripname ' ' '' "$arg"
4733 arg=$func_stripname_result
1774 ;; 4734 ;;
1775 4735
1776 -Xcompiler) 4736 -Xcompiler)
@@ -1788,16 +4748,36 @@ EOF
1788 continue 4748 continue
1789 ;; 4749 ;;
1790 4750
4751 # -msg_* for osf cc
4752 -msg_*)
4753 func_quote_for_eval "$arg"
4754 arg="$func_quote_for_eval_result"
4755 ;;
4756
4757 # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
4758 # -r[0-9][0-9]* specifies the processor on the SGI compiler
4759 # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
4760 # +DA*, +DD* enable 64-bit mode on the HP compiler
4761 # -q* pass through compiler args for the IBM compiler
4762 # -m*, -t[45]*, -txscale* pass through architecture-specific
4763 # compiler args for GCC
4764 # -F/path gives path to uninstalled frameworks, gcc on darwin
4765 # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
4766 # @file GCC response files
4767 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
4768 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
4769 func_quote_for_eval "$arg"
4770 arg="$func_quote_for_eval_result"
4771 func_append compile_command " $arg"
4772 func_append finalize_command " $arg"
4773 compiler_flags="$compiler_flags $arg"
4774 continue
4775 ;;
4776
1791 # Some other compiler flag. 4777 # Some other compiler flag.
1792 -* | +*) 4778 -* | +*)
1793 # Unknown arguments in both finalize_command and compile_command need 4779 func_quote_for_eval "$arg"
1794 # to be aesthetically quoted because they are evaled later. 4780 arg="$func_quote_for_eval_result"
1795 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1796 case $arg in
1797 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1798 arg="\"$arg\""
1799 ;;
1800 esac
1801 ;; 4781 ;;
1802 4782
1803 *.$objext) 4783 *.$objext)
@@ -1809,32 +4789,23 @@ EOF
1809 # A libtool-controlled object. 4789 # A libtool-controlled object.
1810 4790
1811 # Check to see that this really is a libtool object. 4791 # Check to see that this really is a libtool object.
1812 if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 4792 if func_lalib_unsafe_p "$arg"; then
1813 pic_object= 4793 pic_object=
1814 non_pic_object= 4794 non_pic_object=
1815 4795
1816 # Read the .lo file 4796 # Read the .lo file
1817 # If there is no directory component, then add one. 4797 func_source "$arg"
1818 case $arg in
1819 */* | *\\*) . $arg ;;
1820 *) . ./$arg ;;
1821 esac
1822 4798
1823 if test -z "$pic_object" || \ 4799 if test -z "$pic_object" ||
1824 test -z "$non_pic_object" || 4800 test -z "$non_pic_object" ||
1825 test "$pic_object" = none && \ 4801 test "$pic_object" = none &&
1826 test "$non_pic_object" = none; then 4802 test "$non_pic_object" = none; then
1827 $echo "$modename: cannot find name of object for \`$arg'" 1>&2 4803 func_fatal_error "cannot find name of object for \`$arg'"
1828 exit $EXIT_FAILURE
1829 fi 4804 fi
1830 4805
1831 # Extract subdirectory from the argument. 4806 # Extract subdirectory from the argument.
1832 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 4807 func_dirname "$arg" "/" ""
1833 if test "X$xdir" = "X$arg"; then 4808 xdir="$func_dirname_result"
1834 xdir=
1835 else
1836 xdir="$xdir/"
1837 fi
1838 4809
1839 if test "$pic_object" != none; then 4810 if test "$pic_object" != none; then
1840 # Prepend the subdirectory the object is found in. 4811 # Prepend the subdirectory the object is found in.
@@ -1859,7 +4830,7 @@ EOF
1859 fi 4830 fi
1860 4831
1861 # A PIC object. 4832 # A PIC object.
1862 libobjs="$libobjs $pic_object" 4833 func_append libobjs " $pic_object"
1863 arg="$pic_object" 4834 arg="$pic_object"
1864 fi 4835 fi
1865 4836
@@ -1869,7 +4840,7 @@ EOF
1869 non_pic_object="$xdir$non_pic_object" 4840 non_pic_object="$xdir$non_pic_object"
1870 4841
1871 # A standard non-PIC object 4842 # A standard non-PIC object
1872 non_pic_objects="$non_pic_objects $non_pic_object" 4843 func_append non_pic_objects " $non_pic_object"
1873 if test -z "$pic_object" || test "$pic_object" = none ; then 4844 if test -z "$pic_object" || test "$pic_object" = none ; then
1874 arg="$non_pic_object" 4845 arg="$non_pic_object"
1875 fi 4846 fi
@@ -1877,28 +4848,22 @@ EOF
1877 # If the PIC object exists, use it instead. 4848 # If the PIC object exists, use it instead.
1878 # $xdir was prepended to $pic_object above. 4849 # $xdir was prepended to $pic_object above.
1879 non_pic_object="$pic_object" 4850 non_pic_object="$pic_object"
1880 non_pic_objects="$non_pic_objects $non_pic_object" 4851 func_append non_pic_objects " $non_pic_object"
1881 fi 4852 fi
1882 else 4853 else
1883 # Only an error if not doing a dry-run. 4854 # Only an error if not doing a dry-run.
1884 if test -z "$run"; then 4855 if $opt_dry_run; then
1885 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1886 exit $EXIT_FAILURE
1887 else
1888 # Dry-run case.
1889
1890 # Extract subdirectory from the argument. 4856 # Extract subdirectory from the argument.
1891 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 4857 func_dirname "$arg" "/" ""
1892 if test "X$xdir" = "X$arg"; then 4858 xdir="$func_dirname_result"
1893 xdir= 4859
1894 else 4860 func_lo2o "$arg"
1895 xdir="$xdir/" 4861 pic_object=$xdir$objdir/$func_lo2o_result
1896 fi 4862 non_pic_object=$xdir$func_lo2o_result
1897 4863 func_append libobjs " $pic_object"
1898 pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` 4864 func_append non_pic_objects " $non_pic_object"
1899 non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` 4865 else
1900 libobjs="$libobjs $pic_object" 4866 func_fatal_error "\`$arg' is not a valid libtool object"
1901 non_pic_objects="$non_pic_objects $non_pic_object"
1902 fi 4867 fi
1903 fi 4868 fi
1904 ;; 4869 ;;
@@ -1931,70 +4896,51 @@ EOF
1931 *) 4896 *)
1932 # Unknown arguments in both finalize_command and compile_command need 4897 # Unknown arguments in both finalize_command and compile_command need
1933 # to be aesthetically quoted because they are evaled later. 4898 # to be aesthetically quoted because they are evaled later.
1934 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 4899 func_quote_for_eval "$arg"
1935 case $arg in 4900 arg="$func_quote_for_eval_result"
1936 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1937 arg="\"$arg\""
1938 ;;
1939 esac
1940 ;; 4901 ;;
1941 esac # arg 4902 esac # arg
1942 4903
1943 # Now actually substitute the argument into the commands. 4904 # Now actually substitute the argument into the commands.
1944 if test -n "$arg"; then 4905 if test -n "$arg"; then
1945 compile_command="$compile_command $arg" 4906 func_append compile_command " $arg"
1946 finalize_command="$finalize_command $arg" 4907 func_append finalize_command " $arg"
1947 fi 4908 fi
1948 done # argument parsing loop 4909 done # argument parsing loop
1949 4910
1950 if test -n "$prev"; then 4911 test -n "$prev" && \
1951 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 4912 func_fatal_help "the \`$prevarg' option requires an argument"
1952 $echo "$help" 1>&2
1953 exit $EXIT_FAILURE
1954 fi
1955 4913
1956 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then 4914 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1957 eval arg=\"$export_dynamic_flag_spec\" 4915 eval arg=\"$export_dynamic_flag_spec\"
1958 compile_command="$compile_command $arg" 4916 func_append compile_command " $arg"
1959 finalize_command="$finalize_command $arg" 4917 func_append finalize_command " $arg"
1960 fi 4918 fi
1961 4919
1962 oldlibs= 4920 oldlibs=
1963 # calculate the name of the file, without its directory 4921 # calculate the name of the file, without its directory
1964 outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` 4922 func_basename "$output"
4923 outputname="$func_basename_result"
1965 libobjs_save="$libobjs" 4924 libobjs_save="$libobjs"
1966 4925
1967 if test -n "$shlibpath_var"; then 4926 if test -n "$shlibpath_var"; then
1968 # get the directories listed in $shlibpath_var 4927 # get the directories listed in $shlibpath_var
1969 eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` 4928 eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1970 else 4929 else
1971 shlib_search_path= 4930 shlib_search_path=
1972 fi 4931 fi
1973 eval sys_lib_search_path=\"$sys_lib_search_path_spec\" 4932 eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
1974 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" 4933 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
1975 4934
1976 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` 4935 func_dirname "$output" "/" ""
1977 if test "X$output_objdir" = "X$output"; then 4936 output_objdir="$func_dirname_result$objdir"
1978 output_objdir="$objdir"
1979 else
1980 output_objdir="$output_objdir/$objdir"
1981 fi
1982 # Create the object directory. 4937 # Create the object directory.
1983 if test ! -d "$output_objdir"; then 4938 func_mkdir_p "$output_objdir"
1984 $show "$mkdir $output_objdir"
1985 $run $mkdir $output_objdir
1986 exit_status=$?
1987 if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
1988 exit $exit_status
1989 fi
1990 fi
1991 4939
1992 # Determine the type of output 4940 # Determine the type of output
1993 case $output in 4941 case $output in
1994 "") 4942 "")
1995 $echo "$modename: you must specify an output file" 1>&2 4943 func_fatal_help "you must specify an output file"
1996 $echo "$help" 1>&2
1997 exit $EXIT_FAILURE
1998 ;; 4944 ;;
1999 *.$libext) linkmode=oldlib ;; 4945 *.$libext) linkmode=oldlib ;;
2000 *.lo | *.$objext) linkmode=obj ;; 4946 *.lo | *.$objext) linkmode=obj ;;
@@ -2002,22 +4948,13 @@ EOF
2002 *) linkmode=prog ;; # Anything else should be a program. 4948 *) linkmode=prog ;; # Anything else should be a program.
2003 esac 4949 esac
2004 4950
2005 case $host in
2006 *cygwin* | *mingw* | *pw32*)
2007 # don't eliminate duplications in $postdeps and $predeps
2008 duplicate_compiler_generated_deps=yes
2009 ;;
2010 *)
2011 duplicate_compiler_generated_deps=$duplicate_deps
2012 ;;
2013 esac
2014 specialdeplibs= 4951 specialdeplibs=
2015 4952
2016 libs= 4953 libs=
2017 # Find all interdependent deplibs by searching for libraries 4954 # Find all interdependent deplibs by searching for libraries
2018 # that are linked more than once (e.g. -la -lb -la) 4955 # that are linked more than once (e.g. -la -lb -la)
2019 for deplib in $deplibs; do 4956 for deplib in $deplibs; do
2020 if test "X$duplicate_deps" = "Xyes" ; then 4957 if $opt_duplicate_deps ; then
2021 case "$libs " in 4958 case "$libs " in
2022 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 4959 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2023 esac 4960 esac
@@ -2032,7 +4969,7 @@ EOF
2032 # $postdeps and mark them as special (i.e., whose duplicates are 4969 # $postdeps and mark them as special (i.e., whose duplicates are
2033 # not to be eliminated). 4970 # not to be eliminated).
2034 pre_post_deps= 4971 pre_post_deps=
2035 if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then 4972 if $opt_duplicate_compiler_generated_deps; then
2036 for pre_post_dep in $predeps $postdeps; do 4973 for pre_post_dep in $predeps $postdeps; do
2037 case "$pre_post_deps " in 4974 case "$pre_post_deps " in
2038 *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; 4975 *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
@@ -2048,15 +4985,16 @@ EOF
2048 newlib_search_path= 4985 newlib_search_path=
2049 need_relink=no # whether we're linking any uninstalled libtool libraries 4986 need_relink=no # whether we're linking any uninstalled libtool libraries
2050 notinst_deplibs= # not-installed libtool libraries 4987 notinst_deplibs= # not-installed libtool libraries
4988 notinst_path= # paths that contain not-installed libtool libraries
4989
2051 case $linkmode in 4990 case $linkmode in
2052 lib) 4991 lib)
2053 passes="conv link" 4992 passes="conv dlpreopen link"
2054 for file in $dlfiles $dlprefiles; do 4993 for file in $dlfiles $dlprefiles; do
2055 case $file in 4994 case $file in
2056 *.la) ;; 4995 *.la) ;;
2057 *) 4996 *)
2058 $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 4997 func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
2059 exit $EXIT_FAILURE
2060 ;; 4998 ;;
2061 esac 4999 esac
2062 done 5000 done
@@ -2072,7 +5010,20 @@ EOF
2072 *) passes="conv" 5010 *) passes="conv"
2073 ;; 5011 ;;
2074 esac 5012 esac
5013
2075 for pass in $passes; do 5014 for pass in $passes; do
5015 # The preopen pass in lib mode reverses $deplibs; put it back here
5016 # so that -L comes before libs that need it for instance...
5017 if test "$linkmode,$pass" = "lib,link"; then
5018 ## FIXME: Find the place where the list is rebuilt in the wrong
5019 ## order, and fix it there properly
5020 tmp_deplibs=
5021 for deplib in $deplibs; do
5022 tmp_deplibs="$deplib $tmp_deplibs"
5023 done
5024 deplibs="$tmp_deplibs"
5025 fi
5026
2076 if test "$linkmode,$pass" = "lib,link" || 5027 if test "$linkmode,$pass" = "lib,link" ||
2077 test "$linkmode,$pass" = "prog,scan"; then 5028 test "$linkmode,$pass" = "prog,scan"; then
2078 libs="$deplibs" 5029 libs="$deplibs"
@@ -2088,31 +5039,65 @@ EOF
2088 ;; 5039 ;;
2089 esac 5040 esac
2090 fi 5041 fi
5042 if test "$linkmode,$pass" = "lib,dlpreopen"; then
5043 # Collect and forward deplibs of preopened libtool libs
5044 for lib in $dlprefiles; do
5045 # Ignore non-libtool-libs
5046 dependency_libs=
5047 case $lib in
5048 *.la) func_source "$lib" ;;
5049 esac
5050
5051 # Collect preopened libtool deplibs, except any this library
5052 # has declared as weak libs
5053 for deplib in $dependency_libs; do
5054 deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
5055 case " $weak_libs " in
5056 *" $deplib_base "*) ;;
5057 *) deplibs="$deplibs $deplib" ;;
5058 esac
5059 done
5060 done
5061 libs="$dlprefiles"
5062 fi
2091 if test "$pass" = dlopen; then 5063 if test "$pass" = dlopen; then
2092 # Collect dlpreopened libraries 5064 # Collect dlpreopened libraries
2093 save_deplibs="$deplibs" 5065 save_deplibs="$deplibs"
2094 deplibs= 5066 deplibs=
2095 fi 5067 fi
5068
2096 for deplib in $libs; do 5069 for deplib in $libs; do
2097 lib= 5070 lib=
2098 found=no 5071 found=no
2099 case $deplib in 5072 case $deplib in
2100 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) 5073 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
2101 if test "$linkmode,$pass" = "prog,link"; then 5074 if test "$linkmode,$pass" = "prog,link"; then
2102 compile_deplibs="$deplib $compile_deplibs" 5075 compile_deplibs="$deplib $compile_deplibs"
2103 finalize_deplibs="$deplib $finalize_deplibs" 5076 finalize_deplibs="$deplib $finalize_deplibs"
2104 else 5077 else
2105 compiler_flags="$compiler_flags $deplib" 5078 compiler_flags="$compiler_flags $deplib"
5079 if test "$linkmode" = lib ; then
5080 case "$new_inherited_linker_flags " in
5081 *" $deplib "*) ;;
5082 * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
5083 esac
5084 fi
2106 fi 5085 fi
2107 continue 5086 continue
2108 ;; 5087 ;;
2109 -l*) 5088 -l*)
2110 if test "$linkmode" != lib && test "$linkmode" != prog; then 5089 if test "$linkmode" != lib && test "$linkmode" != prog; then
2111 $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 5090 func_warning "\`-l' is ignored for archives/objects"
2112 continue 5091 continue
2113 fi 5092 fi
2114 name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` 5093 func_stripname '-l' '' "$deplib"
2115 for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do 5094 name=$func_stripname_result
5095 if test "$linkmode" = lib; then
5096 searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
5097 else
5098 searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
5099 fi
5100 for searchdir in $searchdirs; do
2116 for search_ext in .la $std_shrext .so .a; do 5101 for search_ext in .la $std_shrext .so .a; do
2117 # Search the libtool library 5102 # Search the libtool library
2118 lib="$searchdir/lib${name}${search_ext}" 5103 lib="$searchdir/lib${name}${search_ext}"
@@ -2142,21 +5127,17 @@ EOF
2142 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 5127 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2143 case " $predeps $postdeps " in 5128 case " $predeps $postdeps " in
2144 *" $deplib "*) 5129 *" $deplib "*)
2145 if (${SED} -e '2q' $lib | 5130 if func_lalib_p "$lib"; then
2146 grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2147 library_names= 5131 library_names=
2148 old_library= 5132 old_library=
2149 case $lib in 5133 func_source "$lib"
2150 */* | *\\*) . $lib ;;
2151 *) . ./$lib ;;
2152 esac
2153 for l in $old_library $library_names; do 5134 for l in $old_library $library_names; do
2154 ll="$l" 5135 ll="$l"
2155 done 5136 done
2156 if test "X$ll" = "X$old_library" ; then # only static version available 5137 if test "X$ll" = "X$old_library" ; then # only static version available
2157 found=no 5138 found=no
2158 ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` 5139 func_dirname "$lib" "" "."
2159 test "X$ladir" = "X$lib" && ladir="." 5140 ladir="$func_dirname_result"
2160 lib=$ladir/$old_library 5141 lib=$ladir/$old_library
2161 if test "$linkmode,$pass" = "prog,link"; then 5142 if test "$linkmode,$pass" = "prog,link"; then
2162 compile_deplibs="$deplib $compile_deplibs" 5143 compile_deplibs="$deplib $compile_deplibs"
@@ -2168,19 +5149,35 @@ EOF
2168 continue 5149 continue
2169 fi 5150 fi
2170 fi 5151 fi
2171 ;; 5152 ;;
2172 *) ;; 5153 *) ;;
2173 esac 5154 esac
2174 fi 5155 fi
2175 fi 5156 fi
2176 ;; # -l 5157 ;; # -l
5158 *.ltframework)
5159 if test "$linkmode,$pass" = "prog,link"; then
5160 compile_deplibs="$deplib $compile_deplibs"
5161 finalize_deplibs="$deplib $finalize_deplibs"
5162 else
5163 deplibs="$deplib $deplibs"
5164 if test "$linkmode" = lib ; then
5165 case "$new_inherited_linker_flags " in
5166 *" $deplib "*) ;;
5167 * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
5168 esac
5169 fi
5170 fi
5171 continue
5172 ;;
2177 -L*) 5173 -L*)
2178 case $linkmode in 5174 case $linkmode in
2179 lib) 5175 lib)
2180 deplibs="$deplib $deplibs" 5176 deplibs="$deplib $deplibs"
2181 test "$pass" = conv && continue 5177 test "$pass" = conv && continue
2182 newdependency_libs="$deplib $newdependency_libs" 5178 newdependency_libs="$deplib $newdependency_libs"
2183 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` 5179 func_stripname '-L' '' "$deplib"
5180 newlib_search_path="$newlib_search_path $func_stripname_result"
2184 ;; 5181 ;;
2185 prog) 5182 prog)
2186 if test "$pass" = conv; then 5183 if test "$pass" = conv; then
@@ -2193,17 +5190,19 @@ EOF
2193 compile_deplibs="$deplib $compile_deplibs" 5190 compile_deplibs="$deplib $compile_deplibs"
2194 finalize_deplibs="$deplib $finalize_deplibs" 5191 finalize_deplibs="$deplib $finalize_deplibs"
2195 fi 5192 fi
2196 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` 5193 func_stripname '-L' '' "$deplib"
5194 newlib_search_path="$newlib_search_path $func_stripname_result"
2197 ;; 5195 ;;
2198 *) 5196 *)
2199 $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 5197 func_warning "\`-L' is ignored for archives/objects"
2200 ;; 5198 ;;
2201 esac # linkmode 5199 esac # linkmode
2202 continue 5200 continue
2203 ;; # -L 5201 ;; # -L
2204 -R*) 5202 -R*)
2205 if test "$pass" = link; then 5203 if test "$pass" = link; then
2206 dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` 5204 func_stripname '-R' '' "$deplib"
5205 dir=$func_stripname_result
2207 # Make sure the xrpath contains only unique directories. 5206 # Make sure the xrpath contains only unique directories.
2208 case "$xrpath " in 5207 case "$xrpath " in
2209 *" $dir "*) ;; 5208 *" $dir "*) ;;
@@ -2221,35 +5220,41 @@ EOF
2221 fi 5220 fi
2222 case $linkmode in 5221 case $linkmode in
2223 lib) 5222 lib)
2224 valid_a_lib=no 5223 # Linking convenience modules into shared libraries is allowed,
2225 case $deplibs_check_method in 5224 # but linking other static libraries is non-portable.
2226 match_pattern*) 5225 case " $dlpreconveniencelibs " in
2227 set dummy $deplibs_check_method 5226 *" $deplib "*) ;;
2228 match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 5227 *)
2229 if eval $echo \"$deplib\" 2>/dev/null \ 5228 valid_a_lib=no
2230 | $SED 10q \ 5229 case $deplibs_check_method in
5230 match_pattern*)
5231 set dummy $deplibs_check_method; shift
5232 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
5233 if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
2231 | $EGREP "$match_pattern_regex" > /dev/null; then 5234 | $EGREP "$match_pattern_regex" > /dev/null; then
2232 valid_a_lib=yes 5235 valid_a_lib=yes
2233 fi 5236 fi
2234 ;; 5237 ;;
2235 pass_all) 5238 pass_all)
2236 valid_a_lib=yes 5239 valid_a_lib=yes
2237 ;; 5240 ;;
2238 esac 5241 esac
2239 if test "$valid_a_lib" != yes; then 5242 if test "$valid_a_lib" != yes; then
2240 $echo 5243 $ECHO
2241 $echo "*** Warning: Trying to link with static lib archive $deplib." 5244 $ECHO "*** Warning: Trying to link with static lib archive $deplib."
2242 $echo "*** I have the capability to make that library automatically link in when" 5245 $ECHO "*** I have the capability to make that library automatically link in when"
2243 $echo "*** you link to this library. But I can only do this if you have a" 5246 $ECHO "*** you link to this library. But I can only do this if you have a"
2244 $echo "*** shared version of the library, which you do not appear to have" 5247 $ECHO "*** shared version of the library, which you do not appear to have"
2245 $echo "*** because the file extensions .$libext of this argument makes me believe" 5248 $ECHO "*** because the file extensions .$libext of this argument makes me believe"
2246 $echo "*** that it is just a static archive that I should not used here." 5249 $ECHO "*** that it is just a static archive that I should not use here."
2247 else 5250 else
2248 $echo 5251 $ECHO
2249 $echo "*** Warning: Linking the shared library $output against the" 5252 $ECHO "*** Warning: Linking the shared library $output against the"
2250 $echo "*** static library $deplib is not portable!" 5253 $ECHO "*** static library $deplib is not portable!"
2251 deplibs="$deplib $deplibs" 5254 deplibs="$deplib $deplibs"
2252 fi 5255 fi
5256 ;;
5257 esac
2253 continue 5258 continue
2254 ;; 5259 ;;
2255 prog) 5260 prog)
@@ -2284,21 +5289,18 @@ EOF
2284 continue 5289 continue
2285 ;; 5290 ;;
2286 esac # case $deplib 5291 esac # case $deplib
5292
2287 if test "$found" = yes || test -f "$lib"; then : 5293 if test "$found" = yes || test -f "$lib"; then :
2288 else 5294 else
2289 $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 5295 func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
2290 exit $EXIT_FAILURE
2291 fi 5296 fi
2292 5297
2293 # Check to see that this really is a libtool archive. 5298 # Check to see that this really is a libtool archive.
2294 if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : 5299 func_lalib_unsafe_p "$lib" \
2295 else 5300 || func_fatal_error "\`$lib' is not a valid libtool archive"
2296 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2297 exit $EXIT_FAILURE
2298 fi
2299 5301
2300 ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` 5302 func_dirname "$lib" "" "."
2301 test "X$ladir" = "X$lib" && ladir="." 5303 ladir="$func_dirname_result"
2302 5304
2303 dlname= 5305 dlname=
2304 dlopen= 5306 dlopen=
@@ -2306,6 +5308,7 @@ EOF
2306 libdir= 5308 libdir=
2307 library_names= 5309 library_names=
2308 old_library= 5310 old_library=
5311 inherited_linker_flags=
2309 # If the library was installed with an old release of libtool, 5312 # If the library was installed with an old release of libtool,
2310 # it will not redefine variables installed, or shouldnotlink 5313 # it will not redefine variables installed, or shouldnotlink
2311 installed=yes 5314 installed=yes
@@ -2314,11 +5317,19 @@ EOF
2314 5317
2315 5318
2316 # Read the .la file 5319 # Read the .la file
2317 case $lib in 5320 func_source "$lib"
2318 */* | *\\*) . $lib ;; 5321
2319 *) . ./$lib ;; 5322 # Convert "-framework foo" to "foo.ltframework"
2320 esac 5323 if test -n "$inherited_linker_flags"; then
2321 5324 tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
5325 for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
5326 case " $new_inherited_linker_flags " in
5327 *" $tmp_inherited_linker_flag "*) ;;
5328 *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
5329 esac
5330 done
5331 fi
5332 dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
2322 if test "$linkmode,$pass" = "lib,link" || 5333 if test "$linkmode,$pass" = "lib,link" ||
2323 test "$linkmode,$pass" = "prog,scan" || 5334 test "$linkmode,$pass" = "prog,scan" ||
2324 { test "$linkmode" != prog && test "$linkmode" != lib; }; then 5335 { test "$linkmode" != prog && test "$linkmode" != lib; }; then
@@ -2331,8 +5342,7 @@ EOF
2331 deplibs="$lib $deplibs" 5342 deplibs="$lib $deplibs"
2332 if test -z "$libdir"; then 5343 if test -z "$libdir"; then
2333 if test -z "$old_library"; then 5344 if test -z "$old_library"; then
2334 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 5345 func_fatal_error "cannot find name of link library for \`$lib'"
2335 exit $EXIT_FAILURE
2336 fi 5346 fi
2337 # It is a libtool convenience library, so add in its objects. 5347 # It is a libtool convenience library, so add in its objects.
2338 convenience="$convenience $ladir/$objdir/$old_library" 5348 convenience="$convenience $ladir/$objdir/$old_library"
@@ -2340,16 +5350,15 @@ EOF
2340 tmp_libs= 5350 tmp_libs=
2341 for deplib in $dependency_libs; do 5351 for deplib in $dependency_libs; do
2342 deplibs="$deplib $deplibs" 5352 deplibs="$deplib $deplibs"
2343 if test "X$duplicate_deps" = "Xyes" ; then 5353 if $opt_duplicate_deps ; then
2344 case "$tmp_libs " in 5354 case "$tmp_libs " in
2345 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 5355 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2346 esac 5356 esac
2347 fi 5357 fi
2348 tmp_libs="$tmp_libs $deplib" 5358 tmp_libs="$tmp_libs $deplib"
2349 done 5359 done
2350 elif test "$linkmode" != prog && test "$linkmode" != lib; then 5360 elif test "$linkmode" != prog && test "$linkmode" != lib; then
2351 $echo "$modename: \`$lib' is not a convenience library" 1>&2 5361 func_fatal_error "\`$lib' is not a convenience library"
2352 exit $EXIT_FAILURE
2353 fi 5362 fi
2354 continue 5363 continue
2355 fi # $pass = conv 5364 fi # $pass = conv
@@ -2361,15 +5370,13 @@ EOF
2361 linklib="$l" 5370 linklib="$l"
2362 done 5371 done
2363 if test -z "$linklib"; then 5372 if test -z "$linklib"; then
2364 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 5373 func_fatal_error "cannot find name of link library for \`$lib'"
2365 exit $EXIT_FAILURE
2366 fi 5374 fi
2367 5375
2368 # This library was specified with -dlopen. 5376 # This library was specified with -dlopen.
2369 if test "$pass" = dlopen; then 5377 if test "$pass" = dlopen; then
2370 if test -z "$libdir"; then 5378 if test -z "$libdir"; then
2371 $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 5379 func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
2372 exit $EXIT_FAILURE
2373 fi 5380 fi
2374 if test -z "$dlname" || 5381 if test -z "$dlname" ||
2375 test "$dlopen_support" != yes || 5382 test "$dlopen_support" != yes ||
@@ -2391,18 +5398,19 @@ EOF
2391 *) 5398 *)
2392 abs_ladir=`cd "$ladir" && pwd` 5399 abs_ladir=`cd "$ladir" && pwd`
2393 if test -z "$abs_ladir"; then 5400 if test -z "$abs_ladir"; then
2394 $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 5401 func_warning "cannot determine absolute directory name of \`$ladir'"
2395 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 5402 func_warning "passing it literally to the linker, although it might fail"
2396 abs_ladir="$ladir" 5403 abs_ladir="$ladir"
2397 fi 5404 fi
2398 ;; 5405 ;;
2399 esac 5406 esac
2400 laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 5407 func_basename "$lib"
5408 laname="$func_basename_result"
2401 5409
2402 # Find the relevant object directory and library name. 5410 # Find the relevant object directory and library name.
2403 if test "X$installed" = Xyes; then 5411 if test "X$installed" = Xyes; then
2404 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then 5412 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2405 $echo "$modename: warning: library \`$lib' was moved." 1>&2 5413 func_warning "library \`$lib' was moved."
2406 dir="$ladir" 5414 dir="$ladir"
2407 absdir="$abs_ladir" 5415 absdir="$abs_ladir"
2408 libdir="$abs_ladir" 5416 libdir="$abs_ladir"
@@ -2424,18 +5432,22 @@ EOF
2424 notinst_path="$notinst_path $abs_ladir" 5432 notinst_path="$notinst_path $abs_ladir"
2425 fi 5433 fi
2426 fi # $installed = yes 5434 fi # $installed = yes
2427 name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` 5435 func_stripname 'lib' '.la' "$laname"
5436 name=$func_stripname_result
2428 5437
2429 # This library was specified with -dlpreopen. 5438 # This library was specified with -dlpreopen.
2430 if test "$pass" = dlpreopen; then 5439 if test "$pass" = dlpreopen; then
2431 if test -z "$libdir"; then 5440 if test -z "$libdir" && test "$linkmode" = prog; then
2432 $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 5441 func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
2433 exit $EXIT_FAILURE
2434 fi 5442 fi
2435 # Prefer using a static library (so that no silly _DYNAMIC symbols 5443 # Prefer using a static library (so that no silly _DYNAMIC symbols
2436 # are required to link). 5444 # are required to link).
2437 if test -n "$old_library"; then 5445 if test -n "$old_library"; then
2438 newdlprefiles="$newdlprefiles $dir/$old_library" 5446 newdlprefiles="$newdlprefiles $dir/$old_library"
5447 # Keep a list of preopened convenience libraries to check
5448 # that they are being used correctly in the link pass.
5449 test -z "$libdir" && \
5450 dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
2439 # Otherwise, use the dlname, so that lt_dlopen finds it. 5451 # Otherwise, use the dlname, so that lt_dlopen finds it.
2440 elif test -n "$dlname"; then 5452 elif test -n "$dlname"; then
2441 newdlprefiles="$newdlprefiles $dir/$dlname" 5453 newdlprefiles="$newdlprefiles $dir/$dlname"
@@ -2471,7 +5483,9 @@ EOF
2471 tmp_libs= 5483 tmp_libs=
2472 for deplib in $dependency_libs; do 5484 for deplib in $dependency_libs; do
2473 case $deplib in 5485 case $deplib in
2474 -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test 5486 -L*) func_stripname '-L' '' "$deplib"
5487 newlib_search_path="$newlib_search_path $func_stripname_result"
5488 ;;
2475 esac 5489 esac
2476 # Need to link against all dependency_libs? 5490 # Need to link against all dependency_libs?
2477 if test "$linkalldeplibs" = yes; then 5491 if test "$linkalldeplibs" = yes; then
@@ -2481,7 +5495,7 @@ EOF
2481 # or/and link against static libraries 5495 # or/and link against static libraries
2482 newdependency_libs="$deplib $newdependency_libs" 5496 newdependency_libs="$deplib $newdependency_libs"
2483 fi 5497 fi
2484 if test "X$duplicate_deps" = "Xyes" ; then 5498 if $opt_duplicate_deps ; then
2485 case "$tmp_libs " in 5499 case "$tmp_libs " in
2486 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 5500 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2487 esac 5501 esac
@@ -2493,14 +5507,15 @@ EOF
2493 5507
2494 if test "$linkmode,$pass" = "prog,link"; then 5508 if test "$linkmode,$pass" = "prog,link"; then
2495 if test -n "$library_names" && 5509 if test -n "$library_names" &&
2496 { test "$prefer_static_libs" = no || test -z "$old_library"; }; then 5510 { { test "$prefer_static_libs" = no ||
5511 test "$prefer_static_libs,$installed" = "built,yes"; } ||
5512 test -z "$old_library"; }; then
2497 # We need to hardcode the library path 5513 # We need to hardcode the library path
2498 if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then 5514 if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
2499 # Make sure the rpath contains only unique directories. 5515 # Make sure the rpath contains only unique directories.
2500 case "$temp_rpath " in 5516 case "$temp_rpath:" in
2501 *" $dir "*) ;; 5517 *"$absdir:"*) ;;
2502 *" $absdir "*) ;; 5518 *) temp_rpath="$temp_rpath$absdir:" ;;
2503 *) temp_rpath="$temp_rpath $absdir" ;;
2504 esac 5519 esac
2505 fi 5520 fi
2506 5521
@@ -2538,27 +5553,43 @@ EOF
2538 5553
2539 link_static=no # Whether the deplib will be linked statically 5554 link_static=no # Whether the deplib will be linked statically
2540 use_static_libs=$prefer_static_libs 5555 use_static_libs=$prefer_static_libs
2541 if test "$use_static_libs" = built && test "$installed" = yes ; then 5556 if test "$use_static_libs" = built && test "$installed" = yes; then
2542 use_static_libs=no 5557 use_static_libs=no
2543 fi 5558 fi
2544 if test -n "$library_names" && 5559 if test -n "$library_names" &&
2545 { test "$use_static_libs" = no || test -z "$old_library"; }; then 5560 { test "$use_static_libs" = no || test -z "$old_library"; }; then
2546 if test "$installed" = no; then 5561 case $host in
2547 notinst_deplibs="$notinst_deplibs $lib" 5562 *cygwin* | *mingw* | *cegcc*)
2548 need_relink=yes 5563 # No point in relinking DLLs because paths are not encoded
2549 fi 5564 notinst_deplibs="$notinst_deplibs $lib"
5565 need_relink=no
5566 ;;
5567 *)
5568 if test "$installed" = no; then
5569 notinst_deplibs="$notinst_deplibs $lib"
5570 need_relink=yes
5571 fi
5572 ;;
5573 esac
2550 # This is a shared library 5574 # This is a shared library
2551 5575
2552 # Warn about portability, can't link against -module's on 5576 # Warn about portability, can't link against -module's on some
2553 # some systems (darwin) 5577 # systems (darwin). Don't bleat about dlopened modules though!
2554 if test "$shouldnotlink" = yes && test "$pass" = link ; then 5578 dlopenmodule=""
2555 $echo 5579 for dlpremoduletest in $dlprefiles; do
5580 if test "X$dlpremoduletest" = "X$lib"; then
5581 dlopenmodule="$dlpremoduletest"
5582 break
5583 fi
5584 done
5585 if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
5586 $ECHO
2556 if test "$linkmode" = prog; then 5587 if test "$linkmode" = prog; then
2557 $echo "*** Warning: Linking the executable $output against the loadable module" 5588 $ECHO "*** Warning: Linking the executable $output against the loadable module"
2558 else 5589 else
2559 $echo "*** Warning: Linking the shared library $output against the loadable module" 5590 $ECHO "*** Warning: Linking the shared library $output against the loadable module"
2560 fi 5591 fi
2561 $echo "*** $linklib is not portable!" 5592 $ECHO "*** $linklib is not portable!"
2562 fi 5593 fi
2563 if test "$linkmode" = lib && 5594 if test "$linkmode" = lib &&
2564 test "$hardcode_into_libs" = yes; then 5595 test "$hardcode_into_libs" = yes; then
@@ -2588,17 +5619,19 @@ EOF
2588 if test -n "$old_archive_from_expsyms_cmds"; then 5619 if test -n "$old_archive_from_expsyms_cmds"; then
2589 # figure out the soname 5620 # figure out the soname
2590 set dummy $library_names 5621 set dummy $library_names
2591 realname="$2" 5622 shift
2592 shift; shift 5623 realname="$1"
2593 libname=`eval \\$echo \"$libname_spec\"` 5624 shift
5625 libname=`eval "\\$ECHO \"$libname_spec\""`
2594 # use dlname if we got it. it's perfectly good, no? 5626 # use dlname if we got it. it's perfectly good, no?
2595 if test -n "$dlname"; then 5627 if test -n "$dlname"; then
2596 soname="$dlname" 5628 soname="$dlname"
2597 elif test -n "$soname_spec"; then 5629 elif test -n "$soname_spec"; then
2598 # bleh windows 5630 # bleh windows
2599 case $host in 5631 case $host in
2600 *cygwin* | mingw*) 5632 *cygwin* | mingw* | *cegcc*)
2601 major=`expr $current - $age` 5633 func_arith $current - $age
5634 major=$func_arith_result
2602 versuffix="-$major" 5635 versuffix="-$major"
2603 ;; 5636 ;;
2604 esac 5637 esac
@@ -2609,36 +5642,22 @@ EOF
2609 5642
2610 # Make a new name for the extract_expsyms_cmds to use 5643 # Make a new name for the extract_expsyms_cmds to use
2611 soroot="$soname" 5644 soroot="$soname"
2612 soname=`$echo $soroot | ${SED} -e 's/^.*\///'` 5645 func_basename "$soroot"
2613 newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" 5646 soname="$func_basename_result"
5647 func_stripname 'lib' '.dll' "$soname"
5648 newlib=libimp-$func_stripname_result.a
2614 5649
2615 # If the library has no export list, then create one now 5650 # If the library has no export list, then create one now
2616 if test -f "$output_objdir/$soname-def"; then : 5651 if test -f "$output_objdir/$soname-def"; then :
2617 else 5652 else
2618 $show "extracting exported symbol list from \`$soname'" 5653 func_verbose "extracting exported symbol list from \`$soname'"
2619 save_ifs="$IFS"; IFS='~' 5654 func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
2620 cmds=$extract_expsyms_cmds
2621 for cmd in $cmds; do
2622 IFS="$save_ifs"
2623 eval cmd=\"$cmd\"
2624 $show "$cmd"
2625 $run eval "$cmd" || exit $?
2626 done
2627 IFS="$save_ifs"
2628 fi 5655 fi
2629 5656
2630 # Create $newlib 5657 # Create $newlib
2631 if test -f "$output_objdir/$newlib"; then :; else 5658 if test -f "$output_objdir/$newlib"; then :; else
2632 $show "generating import library for \`$soname'" 5659 func_verbose "generating import library for \`$soname'"
2633 save_ifs="$IFS"; IFS='~' 5660 func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
2634 cmds=$old_archive_from_expsyms_cmds
2635 for cmd in $cmds; do
2636 IFS="$save_ifs"
2637 eval cmd=\"$cmd\"
2638 $show "$cmd"
2639 $run eval "$cmd" || exit $?
2640 done
2641 IFS="$save_ifs"
2642 fi 5661 fi
2643 # make sure the library variables are pointing to the new library 5662 # make sure the library variables are pointing to the new library
2644 dir=$output_objdir 5663 dir=$output_objdir
@@ -2660,17 +5679,21 @@ EOF
2660 *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ 5679 *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
2661 *-*-unixware7*) add_dir="-L$dir" ;; 5680 *-*-unixware7*) add_dir="-L$dir" ;;
2662 *-*-darwin* ) 5681 *-*-darwin* )
2663 # if the lib is a module then we can not link against 5682 # if the lib is a (non-dlopened) module then we can not
2664 # it, someone is ignoring the new warnings I added 5683 # link against it, someone is ignoring the earlier warnings
2665 if /usr/bin/file -L $add 2> /dev/null | 5684 if /usr/bin/file -L $add 2> /dev/null |
2666 $EGREP ": [^:]* bundle" >/dev/null ; then 5685 $GREP ": [^:]* bundle" >/dev/null ; then
2667 $echo "** Warning, lib $linklib is a module, not a shared library" 5686 if test "X$dlopenmodule" != "X$lib"; then
2668 if test -z "$old_library" ; then 5687 $ECHO "*** Warning: lib $linklib is a module, not a shared library"
2669 $echo 5688 if test -z "$old_library" ; then
2670 $echo "** And there doesn't seem to be a static archive available" 5689 $ECHO
2671 $echo "** The link will probably fail, sorry" 5690 $ECHO "*** And there doesn't seem to be a static archive available"
2672 else 5691 $ECHO "*** The link will probably fail, sorry"
2673 add="$dir/$old_library" 5692 else
5693 add="$dir/$old_library"
5694 fi
5695 elif test -n "$old_library"; then
5696 add="$dir/$old_library"
2674 fi 5697 fi
2675 fi 5698 fi
2676 esac 5699 esac
@@ -2688,7 +5711,8 @@ EOF
2688 fi 5711 fi
2689 ;; 5712 ;;
2690 relink) 5713 relink)
2691 if test "$hardcode_direct" = yes; then 5714 if test "$hardcode_direct" = yes &&
5715 test "$hardcode_direct_absolute" = no; then
2692 add="$dir/$linklib" 5716 add="$dir/$linklib"
2693 elif test "$hardcode_minus_L" = yes; then 5717 elif test "$hardcode_minus_L" = yes; then
2694 add_dir="-L$dir" 5718 add_dir="-L$dir"
@@ -2712,8 +5736,7 @@ EOF
2712 esac 5736 esac
2713 5737
2714 if test "$lib_linked" != yes; then 5738 if test "$lib_linked" != yes; then
2715 $echo "$modename: configuration error: unsupported hardcode properties" 5739 func_fatal_configuration "unsupported hardcode properties"
2716 exit $EXIT_FAILURE
2717 fi 5740 fi
2718 5741
2719 if test -n "$add_shlibpath"; then 5742 if test -n "$add_shlibpath"; then
@@ -2728,8 +5751,8 @@ EOF
2728 else 5751 else
2729 test -n "$add_dir" && deplibs="$add_dir $deplibs" 5752 test -n "$add_dir" && deplibs="$add_dir $deplibs"
2730 test -n "$add" && deplibs="$add $deplibs" 5753 test -n "$add" && deplibs="$add $deplibs"
2731 if test "$hardcode_direct" != yes && \ 5754 if test "$hardcode_direct" != yes &&
2732 test "$hardcode_minus_L" != yes && \ 5755 test "$hardcode_minus_L" != yes &&
2733 test "$hardcode_shlibpath_var" = yes; then 5756 test "$hardcode_shlibpath_var" = yes; then
2734 case :$finalize_shlibpath: in 5757 case :$finalize_shlibpath: in
2735 *":$libdir:"*) ;; 5758 *":$libdir:"*) ;;
@@ -2744,7 +5767,8 @@ EOF
2744 add_dir= 5767 add_dir=
2745 add= 5768 add=
2746 # Finalize command for both is simple: just hardcode it. 5769 # Finalize command for both is simple: just hardcode it.
2747 if test "$hardcode_direct" = yes; then 5770 if test "$hardcode_direct" = yes &&
5771 test "$hardcode_direct_absolute" = no; then
2748 add="$libdir/$linklib" 5772 add="$libdir/$linklib"
2749 elif test "$hardcode_minus_L" = yes; then 5773 elif test "$hardcode_minus_L" = yes; then
2750 add_dir="-L$libdir" 5774 add_dir="-L$libdir"
@@ -2758,9 +5782,9 @@ EOF
2758 elif test "$hardcode_automatic" = yes; then 5782 elif test "$hardcode_automatic" = yes; then
2759 if test -n "$inst_prefix_dir" && 5783 if test -n "$inst_prefix_dir" &&
2760 test -f "$inst_prefix_dir$libdir/$linklib" ; then 5784 test -f "$inst_prefix_dir$libdir/$linklib" ; then
2761 add="$inst_prefix_dir$libdir/$linklib" 5785 add="$inst_prefix_dir$libdir/$linklib"
2762 else 5786 else
2763 add="$libdir/$linklib" 5787 add="$libdir/$linklib"
2764 fi 5788 fi
2765 else 5789 else
2766 # We cannot seem to hardcode it, guess we'll fake it. 5790 # We cannot seem to hardcode it, guess we'll fake it.
@@ -2804,21 +5828,21 @@ EOF
2804 5828
2805 # Just print a warning and add the library to dependency_libs so 5829 # Just print a warning and add the library to dependency_libs so
2806 # that the program can be linked against the static library. 5830 # that the program can be linked against the static library.
2807 $echo 5831 $ECHO
2808 $echo "*** Warning: This system can not link to static lib archive $lib." 5832 $ECHO "*** Warning: This system can not link to static lib archive $lib."
2809 $echo "*** I have the capability to make that library automatically link in when" 5833 $ECHO "*** I have the capability to make that library automatically link in when"
2810 $echo "*** you link to this library. But I can only do this if you have a" 5834 $ECHO "*** you link to this library. But I can only do this if you have a"
2811 $echo "*** shared version of the library, which you do not appear to have." 5835 $ECHO "*** shared version of the library, which you do not appear to have."
2812 if test "$module" = yes; then 5836 if test "$module" = yes; then
2813 $echo "*** But as you try to build a module library, libtool will still create " 5837 $ECHO "*** But as you try to build a module library, libtool will still create "
2814 $echo "*** a static module, that should work as long as the dlopening application" 5838 $ECHO "*** a static module, that should work as long as the dlopening application"
2815 $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." 5839 $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
2816 if test -z "$global_symbol_pipe"; then 5840 if test -z "$global_symbol_pipe"; then
2817 $echo 5841 $ECHO
2818 $echo "*** However, this would only work if libtool was able to extract symbol" 5842 $ECHO "*** However, this would only work if libtool was able to extract symbol"
2819 $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 5843 $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
2820 $echo "*** not find such a program. So, this module is probably useless." 5844 $ECHO "*** not find such a program. So, this module is probably useless."
2821 $echo "*** \`nm' from GNU binutils and a full rebuild may help." 5845 $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
2822 fi 5846 fi
2823 if test "$build_old_libs" = no; then 5847 if test "$build_old_libs" = no; then
2824 build_libtool_libs=module 5848 build_libtool_libs=module
@@ -2842,7 +5866,8 @@ EOF
2842 temp_deplibs= 5866 temp_deplibs=
2843 for libdir in $dependency_libs; do 5867 for libdir in $dependency_libs; do
2844 case $libdir in 5868 case $libdir in
2845 -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` 5869 -R*) func_stripname '-R' '' "$libdir"
5870 temp_xrpath=$func_stripname_result
2846 case " $xrpath " in 5871 case " $xrpath " in
2847 *" $temp_xrpath "*) ;; 5872 *" $temp_xrpath "*) ;;
2848 *) xrpath="$xrpath $temp_xrpath";; 5873 *) xrpath="$xrpath $temp_xrpath";;
@@ -2860,7 +5885,7 @@ EOF
2860 tmp_libs= 5885 tmp_libs=
2861 for deplib in $dependency_libs; do 5886 for deplib in $dependency_libs; do
2862 newdependency_libs="$deplib $newdependency_libs" 5887 newdependency_libs="$deplib $newdependency_libs"
2863 if test "X$duplicate_deps" = "Xyes" ; then 5888 if $opt_duplicate_deps ; then
2864 case "$tmp_libs " in 5889 case "$tmp_libs " in
2865 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 5890 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2866 esac 5891 esac
@@ -2871,91 +5896,75 @@ EOF
2871 if test "$link_all_deplibs" != no; then 5896 if test "$link_all_deplibs" != no; then
2872 # Add the search paths of all dependency libraries 5897 # Add the search paths of all dependency libraries
2873 for deplib in $dependency_libs; do 5898 for deplib in $dependency_libs; do
5899 path=
2874 case $deplib in 5900 case $deplib in
2875 -L*) path="$deplib" ;; 5901 -L*) path="$deplib" ;;
2876 *.la) 5902 *.la)
2877 dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` 5903 func_dirname "$deplib" "" "."
2878 test "X$dir" = "X$deplib" && dir="." 5904 dir="$func_dirname_result"
2879 # We need an absolute path. 5905 # We need an absolute path.
2880 case $dir in 5906 case $dir in
2881 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; 5907 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
2882 *) 5908 *)
2883 absdir=`cd "$dir" && pwd` 5909 absdir=`cd "$dir" && pwd`
2884 if test -z "$absdir"; then 5910 if test -z "$absdir"; then
2885 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 5911 func_warning "cannot determine absolute directory name of \`$dir'"
2886 absdir="$dir" 5912 absdir="$dir"
2887 fi 5913 fi
2888 ;; 5914 ;;
2889 esac 5915 esac
2890 if grep "^installed=no" $deplib > /dev/null; then 5916 if $GREP "^installed=no" $deplib > /dev/null; then
2891 path="$absdir/$objdir"
2892 else
2893 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2894 if test -z "$libdir"; then
2895 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2896 exit $EXIT_FAILURE
2897 fi
2898 if test "$absdir" != "$libdir"; then
2899 $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2900 fi
2901 path="$absdir"
2902 fi
2903 depdepl=
2904 case $host in 5917 case $host in
2905 *-*-darwin*) 5918 *-*-darwin*)
2906 # we do not want to link against static libs, 5919 depdepl=
2907 # but need to link against shared
2908 eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` 5920 eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
2909 if test -n "$deplibrary_names" ; then 5921 if test -n "$deplibrary_names" ; then
2910 for tmp in $deplibrary_names ; do 5922 for tmp in $deplibrary_names ; do
2911 depdepl=$tmp 5923 depdepl=$tmp
2912 done 5924 done
2913 if test -f "$path/$depdepl" ; then 5925 if test -f "$absdir/$objdir/$depdepl" ; then
2914 depdepl="$path/$depdepl" 5926 depdepl="$absdir/$objdir/$depdepl"
5927 darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
5928 if test -z "$darwin_install_name"; then
5929 darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
5930 fi
5931 compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
5932 linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
5933 path=
2915 fi 5934 fi
2916 # do not add paths which are already there
2917 case " $newlib_search_path " in
2918 *" $path "*) ;;
2919 *) newlib_search_path="$newlib_search_path $path";;
2920 esac
2921 fi 5935 fi
2922 path=""
2923 ;; 5936 ;;
2924 *) 5937 *)
2925 path="-L$path" 5938 path="-L$absdir/$objdir"
2926 ;;
2927 esac
2928 ;;
2929 -l*)
2930 case $host in
2931 *-*-darwin*)
2932 # Again, we only want to link against shared libraries
2933 eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
2934 for tmp in $newlib_search_path ; do
2935 if test -f "$tmp/lib$tmp_libs.dylib" ; then
2936 eval depdepl="$tmp/lib$tmp_libs.dylib"
2937 break
2938 fi
2939 done
2940 path=""
2941 ;; 5939 ;;
2942 *) continue ;;
2943 esac 5940 esac
5941 else
5942 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
5943 test -z "$libdir" && \
5944 func_fatal_error "\`$deplib' is not a valid libtool archive"
5945 test "$absdir" != "$libdir" && \
5946 func_warning "\`$deplib' seems to be moved"
5947
5948 path="-L$absdir"
5949 fi
2944 ;; 5950 ;;
2945 *) continue ;;
2946 esac 5951 esac
2947 case " $deplibs " in 5952 case " $deplibs " in
2948 *" $path "*) ;; 5953 *" $path "*) ;;
2949 *) deplibs="$path $deplibs" ;; 5954 *) deplibs="$path $deplibs" ;;
2950 esac 5955 esac
2951 case " $deplibs " in
2952 *" $depdepl "*) ;;
2953 *) deplibs="$depdepl $deplibs" ;;
2954 esac
2955 done 5956 done
2956 fi # link_all_deplibs != no 5957 fi # link_all_deplibs != no
2957 fi # linkmode = lib 5958 fi # linkmode = lib
2958 done # for deplib in $libs 5959 done # for deplib in $libs
5960 if test "$pass" = link; then
5961 if test "$linkmode" = "prog"; then
5962 compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
5963 finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
5964 else
5965 compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
5966 fi
5967 fi
2959 dependency_libs="$newdependency_libs" 5968 dependency_libs="$newdependency_libs"
2960 if test "$pass" = dlpreopen; then 5969 if test "$pass" = dlpreopen; then
2961 # Link the dlpreopened libraries before other libraries 5970 # Link the dlpreopened libraries before other libraries
@@ -3054,38 +6063,36 @@ EOF
3054 done # for pass 6063 done # for pass
3055 if test "$linkmode" = prog; then 6064 if test "$linkmode" = prog; then
3056 dlfiles="$newdlfiles" 6065 dlfiles="$newdlfiles"
6066 fi
6067 if test "$linkmode" = prog || test "$linkmode" = lib; then
3057 dlprefiles="$newdlprefiles" 6068 dlprefiles="$newdlprefiles"
3058 fi 6069 fi
3059 6070
3060 case $linkmode in 6071 case $linkmode in
3061 oldlib) 6072 oldlib)
3062 if test -n "$deplibs"; then
3063 $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
3064 fi
3065
3066 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 6073 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3067 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 6074 func_warning "\`-dlopen' is ignored for archives"
3068 fi 6075 fi
3069 6076
3070 if test -n "$rpath"; then 6077 case " $deplibs" in
3071 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 6078 *\ -l* | *\ -L*)
3072 fi 6079 func_warning "\`-l' and \`-L' are ignored for archives" ;;
6080 esac
3073 6081
3074 if test -n "$xrpath"; then 6082 test -n "$rpath" && \
3075 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 6083 func_warning "\`-rpath' is ignored for archives"
3076 fi
3077 6084
3078 if test -n "$vinfo"; then 6085 test -n "$xrpath" && \
3079 $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 6086 func_warning "\`-R' is ignored for archives"
3080 fi
3081 6087
3082 if test -n "$release"; then 6088 test -n "$vinfo" && \
3083 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 6089 func_warning "\`-version-info/-version-number' is ignored for archives"
3084 fi
3085 6090
3086 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then 6091 test -n "$release" && \
3087 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 6092 func_warning "\`-release' is ignored for archives"
3088 fi 6093
6094 test -n "$export_symbols$export_symbols_regex" && \
6095 func_warning "\`-export-symbols' is ignored for archives"
3089 6096
3090 # Now set the variables for building old libraries. 6097 # Now set the variables for building old libraries.
3091 build_libtool_libs=no 6098 build_libtool_libs=no
@@ -3097,48 +6104,48 @@ EOF
3097 # Make sure we only generate libraries of the form `libNAME.la'. 6104 # Make sure we only generate libraries of the form `libNAME.la'.
3098 case $outputname in 6105 case $outputname in
3099 lib*) 6106 lib*)
3100 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` 6107 func_stripname 'lib' '.la' "$outputname"
6108 name=$func_stripname_result
3101 eval shared_ext=\"$shrext_cmds\" 6109 eval shared_ext=\"$shrext_cmds\"
3102 eval libname=\"$libname_spec\" 6110 eval libname=\"$libname_spec\"
3103 ;; 6111 ;;
3104 *) 6112 *)
3105 if test "$module" = no; then 6113 test "$module" = no && \
3106 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 6114 func_fatal_help "libtool library \`$output' must begin with \`lib'"
3107 $echo "$help" 1>&2 6115
3108 exit $EXIT_FAILURE
3109 fi
3110 if test "$need_lib_prefix" != no; then 6116 if test "$need_lib_prefix" != no; then
3111 # Add the "lib" prefix for modules if required 6117 # Add the "lib" prefix for modules if required
3112 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` 6118 func_stripname '' '.la' "$outputname"
6119 name=$func_stripname_result
3113 eval shared_ext=\"$shrext_cmds\" 6120 eval shared_ext=\"$shrext_cmds\"
3114 eval libname=\"$libname_spec\" 6121 eval libname=\"$libname_spec\"
3115 else 6122 else
3116 libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` 6123 func_stripname '' '.la' "$outputname"
6124 libname=$func_stripname_result
3117 fi 6125 fi
3118 ;; 6126 ;;
3119 esac 6127 esac
3120 6128
3121 if test -n "$objs"; then 6129 if test -n "$objs"; then
3122 if test "$deplibs_check_method" != pass_all; then 6130 if test "$deplibs_check_method" != pass_all; then
3123 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 6131 func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
3124 exit $EXIT_FAILURE
3125 else 6132 else
3126 $echo 6133 $ECHO
3127 $echo "*** Warning: Linking the shared library $output against the non-libtool" 6134 $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
3128 $echo "*** objects $objs is not portable!" 6135 $ECHO "*** objects $objs is not portable!"
3129 libobjs="$libobjs $objs" 6136 libobjs="$libobjs $objs"
3130 fi 6137 fi
3131 fi 6138 fi
3132 6139
3133 if test "$dlself" != no; then 6140 test "$dlself" != no && \
3134 $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 6141 func_warning "\`-dlopen self' is ignored for libtool libraries"
3135 fi
3136 6142
3137 set dummy $rpath 6143 set dummy $rpath
3138 if test "$#" -gt 2; then 6144 shift
3139 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 6145 test "$#" -gt 1 && \
3140 fi 6146 func_warning "ignoring multiple \`-rpath's for a libtool library"
3141 install_libdir="$2" 6147
6148 install_libdir="$1"
3142 6149
3143 oldlibs= 6150 oldlibs=
3144 if test -z "$rpath"; then 6151 if test -z "$rpath"; then
@@ -3152,25 +6159,21 @@ EOF
3152 build_old_libs=yes 6159 build_old_libs=yes
3153 fi 6160 fi
3154 6161
3155 if test -n "$vinfo"; then 6162 test -n "$vinfo" && \
3156 $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 6163 func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
3157 fi
3158 6164
3159 if test -n "$release"; then 6165 test -n "$release" && \
3160 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 6166 func_warning "\`-release' is ignored for convenience libraries"
3161 fi
3162 else 6167 else
3163 6168
3164 # Parse the version information argument. 6169 # Parse the version information argument.
3165 save_ifs="$IFS"; IFS=':' 6170 save_ifs="$IFS"; IFS=':'
3166 set dummy $vinfo 0 0 0 6171 set dummy $vinfo 0 0 0
6172 shift
3167 IFS="$save_ifs" 6173 IFS="$save_ifs"
3168 6174
3169 if test -n "$8"; then 6175 test -n "$7" && \
3170 $echo "$modename: too many parameters to \`-version-info'" 1>&2 6176 func_fatal_help "too many parameters to \`-version-info'"
3171 $echo "$help" 1>&2
3172 exit $EXIT_FAILURE
3173 fi
3174 6177
3175 # convert absolute version numbers to libtool ages 6178 # convert absolute version numbers to libtool ages
3176 # this retains compatibility with .la files and attempts 6179 # this retains compatibility with .la files and attempts
@@ -3178,9 +6181,9 @@ EOF
3178 6181
3179 case $vinfo_number in 6182 case $vinfo_number in
3180 yes) 6183 yes)
3181 number_major="$2" 6184 number_major="$1"
3182 number_minor="$3" 6185 number_minor="$2"
3183 number_revision="$4" 6186 number_revision="$3"
3184 # 6187 #
3185 # There are really only two kinds -- those that 6188 # There are really only two kinds -- those that
3186 # use the current revision as the major version 6189 # use the current revision as the major version
@@ -3189,8 +6192,9 @@ EOF
3189 # which has an extra 1 added just for fun 6192 # which has an extra 1 added just for fun
3190 # 6193 #
3191 case $version_type in 6194 case $version_type in
3192 darwin|linux|osf|windows) 6195 darwin|linux|osf|windows|none)
3193 current=`expr $number_major + $number_minor` 6196 func_arith $number_major + $number_minor
6197 current=$func_arith_result
3194 age="$number_minor" 6198 age="$number_minor"
3195 revision="$number_revision" 6199 revision="$number_revision"
3196 ;; 6200 ;;
@@ -3200,21 +6204,21 @@ EOF
3200 age="0" 6204 age="0"
3201 ;; 6205 ;;
3202 irix|nonstopux) 6206 irix|nonstopux)
3203 current=`expr $number_major + $number_minor - 1` 6207 func_arith $number_major + $number_minor
6208 current=$func_arith_result
3204 age="$number_minor" 6209 age="$number_minor"
3205 revision="$number_minor" 6210 revision="$number_minor"
6211 lt_irix_increment=no
3206 ;; 6212 ;;
3207 *) 6213 *)
3208 $echo "$modename: unknown library version type \`$version_type'" 1>&2 6214 func_fatal_configuration "$modename: unknown library version type \`$version_type'"
3209 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
3210 exit $EXIT_FAILURE
3211 ;; 6215 ;;
3212 esac 6216 esac
3213 ;; 6217 ;;
3214 no) 6218 no)
3215 current="$2" 6219 current="$1"
3216 revision="$3" 6220 revision="$2"
3217 age="$4" 6221 age="$3"
3218 ;; 6222 ;;
3219 esac 6223 esac
3220 6224
@@ -3222,34 +6226,30 @@ EOF
3222 case $current in 6226 case $current in
3223 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]) ;; 6227 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]) ;;
3224 *) 6228 *)
3225 $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 6229 func_error "CURRENT \`$current' must be a nonnegative integer"
3226 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 6230 func_fatal_error "\`$vinfo' is not valid version information"
3227 exit $EXIT_FAILURE
3228 ;; 6231 ;;
3229 esac 6232 esac
3230 6233
3231 case $revision in 6234 case $revision in
3232 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]) ;; 6235 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]) ;;
3233 *) 6236 *)
3234 $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 6237 func_error "REVISION \`$revision' must be a nonnegative integer"
3235 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 6238 func_fatal_error "\`$vinfo' is not valid version information"
3236 exit $EXIT_FAILURE
3237 ;; 6239 ;;
3238 esac 6240 esac
3239 6241
3240 case $age in 6242 case $age in
3241 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]) ;; 6243 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]) ;;
3242 *) 6244 *)
3243 $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 6245 func_error "AGE \`$age' must be a nonnegative integer"
3244 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 6246 func_fatal_error "\`$vinfo' is not valid version information"
3245 exit $EXIT_FAILURE
3246 ;; 6247 ;;
3247 esac 6248 esac
3248 6249
3249 if test "$age" -gt "$current"; then 6250 if test "$age" -gt "$current"; then
3250 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 6251 func_error "AGE \`$age' is greater than the current interface number \`$current'"
3251 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 6252 func_fatal_error "\`$vinfo' is not valid version information"
3252 exit $EXIT_FAILURE
3253 fi 6253 fi
3254 6254
3255 # Calculate the version variables. 6255 # Calculate the version variables.
@@ -3262,11 +6262,14 @@ EOF
3262 darwin) 6262 darwin)
3263 # Like Linux, but with the current version available in 6263 # Like Linux, but with the current version available in
3264 # verstring for coding it into the library header 6264 # verstring for coding it into the library header
3265 major=.`expr $current - $age` 6265 func_arith $current - $age
6266 major=.$func_arith_result
3266 versuffix="$major.$age.$revision" 6267 versuffix="$major.$age.$revision"
3267 # Darwin ld doesn't like 0 for these options... 6268 # Darwin ld doesn't like 0 for these options...
3268 minor_current=`expr $current + 1` 6269 func_arith $current + 1
3269 verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" 6270 minor_current=$func_arith_result
6271 xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
6272 verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
3270 ;; 6273 ;;
3271 6274
3272 freebsd-aout) 6275 freebsd-aout)
@@ -3276,11 +6279,16 @@ EOF
3276 6279
3277 freebsd-elf) 6280 freebsd-elf)
3278 major=".$current" 6281 major=".$current"
3279 versuffix=".$current"; 6282 versuffix=".$current"
3280 ;; 6283 ;;
3281 6284
3282 irix | nonstopux) 6285 irix | nonstopux)
3283 major=`expr $current - $age + 1` 6286 if test "X$lt_irix_increment" = "Xno"; then
6287 func_arith $current - $age
6288 else
6289 func_arith $current - $age + 1
6290 fi
6291 major=$func_arith_result
3284 6292
3285 case $version_type in 6293 case $version_type in
3286 nonstopux) verstring_prefix=nonstopux ;; 6294 nonstopux) verstring_prefix=nonstopux ;;
@@ -3291,8 +6299,10 @@ EOF
3291 # Add in all the interfaces that we are compatible with. 6299 # Add in all the interfaces that we are compatible with.
3292 loop=$revision 6300 loop=$revision
3293 while test "$loop" -ne 0; do 6301 while test "$loop" -ne 0; do
3294 iface=`expr $revision - $loop` 6302 func_arith $revision - $loop
3295 loop=`expr $loop - 1` 6303 iface=$func_arith_result
6304 func_arith $loop - 1
6305 loop=$func_arith_result
3296 verstring="$verstring_prefix$major.$iface:$verstring" 6306 verstring="$verstring_prefix$major.$iface:$verstring"
3297 done 6307 done
3298 6308
@@ -3302,20 +6312,24 @@ EOF
3302 ;; 6312 ;;
3303 6313
3304 linux) 6314 linux)
3305 major=.`expr $current - $age` 6315 func_arith $current - $age
6316 major=.$func_arith_result
3306 versuffix="$major.$age.$revision" 6317 versuffix="$major.$age.$revision"
3307 ;; 6318 ;;
3308 6319
3309 osf) 6320 osf)
3310 major=.`expr $current - $age` 6321 func_arith $current - $age
6322 major=.$func_arith_result
3311 versuffix=".$current.$age.$revision" 6323 versuffix=".$current.$age.$revision"
3312 verstring="$current.$age.$revision" 6324 verstring="$current.$age.$revision"
3313 6325
3314 # Add in all the interfaces that we are compatible with. 6326 # Add in all the interfaces that we are compatible with.
3315 loop=$age 6327 loop=$age
3316 while test "$loop" -ne 0; do 6328 while test "$loop" -ne 0; do
3317 iface=`expr $current - $loop` 6329 func_arith $current - $loop
3318 loop=`expr $loop - 1` 6330 iface=$func_arith_result
6331 func_arith $loop - 1
6332 loop=$func_arith_result
3319 verstring="$verstring:${iface}.0" 6333 verstring="$verstring:${iface}.0"
3320 done 6334 done
3321 6335
@@ -3323,6 +6337,11 @@ EOF
3323 verstring="$verstring:${current}.0" 6337 verstring="$verstring:${current}.0"
3324 ;; 6338 ;;
3325 6339
6340 qnx)
6341 major=".$current"
6342 versuffix=".$current"
6343 ;;
6344
3326 sunos) 6345 sunos)
3327 major=".$current" 6346 major=".$current"
3328 versuffix=".$current.$revision" 6347 versuffix=".$current.$revision"
@@ -3331,14 +6350,13 @@ EOF
3331 windows) 6350 windows)
3332 # Use '-' rather than '.', since we only want one 6351 # Use '-' rather than '.', since we only want one
3333 # extension on DOS 8.3 filesystems. 6352 # extension on DOS 8.3 filesystems.
3334 major=`expr $current - $age` 6353 func_arith $current - $age
6354 major=$func_arith_result
3335 versuffix="-$major" 6355 versuffix="-$major"
3336 ;; 6356 ;;
3337 6357
3338 *) 6358 *)
3339 $echo "$modename: unknown library version type \`$version_type'" 1>&2 6359 func_fatal_configuration "unknown library version type \`$version_type'"
3340 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
3341 exit $EXIT_FAILURE
3342 ;; 6360 ;;
3343 esac 6361 esac
3344 6362
@@ -3372,7 +6390,7 @@ EOF
3372 # Check to see if the archive will have undefined symbols. 6390 # Check to see if the archive will have undefined symbols.
3373 if test "$allow_undefined" = yes; then 6391 if test "$allow_undefined" = yes; then
3374 if test "$allow_undefined_flag" = unsupported; then 6392 if test "$allow_undefined_flag" = unsupported; then
3375 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 6393 func_warning "undefined symbols not allowed in $host shared libraries"
3376 build_libtool_libs=no 6394 build_libtool_libs=no
3377 build_old_libs=yes 6395 build_old_libs=yes
3378 fi 6396 fi
@@ -3380,21 +6398,26 @@ EOF
3380 # Don't allow undefined symbols. 6398 # Don't allow undefined symbols.
3381 allow_undefined_flag="$no_undefined_flag" 6399 allow_undefined_flag="$no_undefined_flag"
3382 fi 6400 fi
6401
3383 fi 6402 fi
3384 6403
6404 func_generate_dlsyms "$libname" "$libname" "yes"
6405 libobjs="$libobjs $symfileobj"
6406 test "X$libobjs" = "X " && libobjs=
6407
3385 if test "$mode" != relink; then 6408 if test "$mode" != relink; then
3386 # Remove our outputs, but don't remove object files since they 6409 # Remove our outputs, but don't remove object files since they
3387 # may have been created when compiling PIC objects. 6410 # may have been created when compiling PIC objects.
3388 removelist= 6411 removelist=
3389 tempremovelist=`$echo "$output_objdir/*"` 6412 tempremovelist=`$ECHO "$output_objdir/*"`
3390 for p in $tempremovelist; do 6413 for p in $tempremovelist; do
3391 case $p in 6414 case $p in
3392 *.$objext) 6415 *.$objext | *.gcno)
3393 ;; 6416 ;;
3394 $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) 6417 $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
3395 if test "X$precious_files_regex" != "X"; then 6418 if test "X$precious_files_regex" != "X"; then
3396 if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 6419 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
3397 then 6420 then
3398 continue 6421 continue
3399 fi 6422 fi
3400 fi 6423 fi
@@ -3403,10 +6426,8 @@ EOF
3403 *) ;; 6426 *) ;;
3404 esac 6427 esac
3405 done 6428 done
3406 if test -n "$removelist"; then 6429 test -n "$removelist" && \
3407 $show "${rm}r $removelist" 6430 func_show_eval "${RM}r \$removelist"
3408 $run ${rm}r $removelist
3409 fi
3410 fi 6431 fi
3411 6432
3412 # Now set the variables for building old libraries. 6433 # Now set the variables for building old libraries.
@@ -3414,15 +6435,15 @@ EOF
3414 oldlibs="$oldlibs $output_objdir/$libname.$libext" 6435 oldlibs="$oldlibs $output_objdir/$libname.$libext"
3415 6436
3416 # Transform .lo files to .o files. 6437 # Transform .lo files to .o files.
3417 oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` 6438 oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
3418 fi 6439 fi
3419 6440
3420 # Eliminate all temporary directories. 6441 # Eliminate all temporary directories.
3421 for path in $notinst_path; do 6442 #for path in $notinst_path; do
3422 lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` 6443 # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
3423 deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` 6444 # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
3424 dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` 6445 # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
3425 done 6446 #done
3426 6447
3427 if test -n "$xrpath"; then 6448 if test -n "$xrpath"; then
3428 # If the user specified any rpath flags, then add them. 6449 # If the user specified any rpath flags, then add them.
@@ -3462,12 +6483,12 @@ EOF
3462 if test "$build_libtool_libs" = yes; then 6483 if test "$build_libtool_libs" = yes; then
3463 if test -n "$rpath"; then 6484 if test -n "$rpath"; then
3464 case $host in 6485 case $host in
3465 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) 6486 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)
3466 # these systems don't actually have a c library (as such)! 6487 # these systems don't actually have a c library (as such)!
3467 ;; 6488 ;;
3468 *-*-rhapsody* | *-*-darwin1.[012]) 6489 *-*-rhapsody* | *-*-darwin1.[012])
3469 # Rhapsody C library is in the System framework 6490 # Rhapsody C library is in the System framework
3470 deplibs="$deplibs -framework System" 6491 deplibs="$deplibs System.ltframework"
3471 ;; 6492 ;;
3472 *-*-netbsd*) 6493 *-*-netbsd*)
3473 # Don't link with libc until the a.out ld.so is fixed. 6494 # Don't link with libc until the a.out ld.so is fixed.
@@ -3481,7 +6502,7 @@ EOF
3481 *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 6502 *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
3482 # Compiler inserts libc in the correct place for threads to work 6503 # Compiler inserts libc in the correct place for threads to work
3483 ;; 6504 ;;
3484 *) 6505 *)
3485 # Add libc to deplibs on all other systems if necessary. 6506 # Add libc to deplibs on all other systems if necessary.
3486 if test "$build_libtool_need_lc" = "yes"; then 6507 if test "$build_libtool_need_lc" = "yes"; then
3487 deplibs="$deplibs -lc" 6508 deplibs="$deplibs -lc"
@@ -3518,18 +6539,18 @@ EOF
3518 # limits. Maybe even breaks it. We compile a program, linking it 6539 # limits. Maybe even breaks it. We compile a program, linking it
3519 # against the deplibs as a proxy for the library. Then we can check 6540 # against the deplibs as a proxy for the library. Then we can check
3520 # whether they linked in statically or dynamically with ldd. 6541 # whether they linked in statically or dynamically with ldd.
3521 $rm conftest.c 6542 $opt_dry_run || $RM conftest.c
3522 cat > conftest.c <<EOF 6543 cat > conftest.c <<EOF
3523 int main() { return 0; } 6544 int main() { return 0; }
3524EOF 6545EOF
3525 $rm conftest 6546 $opt_dry_run || $RM conftest
3526 $LTCC $LTCFLAGS -o conftest conftest.c $deplibs 6547 if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
3527 if test "$?" -eq 0 ; then
3528 ldd_output=`ldd conftest` 6548 ldd_output=`ldd conftest`
3529 for i in $deplibs; do 6549 for i in $deplibs; do
3530 name=`expr $i : '-l\(.*\)'` 6550 case $i in
3531 # If $name is empty we are operating on a -L argument. 6551 -l*)
3532 if test "$name" != "" && test "$name" -ne "0"; then 6552 func_stripname -l '' "$i"
6553 name=$func_stripname_result
3533 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 6554 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3534 case " $predeps $postdeps " in 6555 case " $predeps $postdeps " in
3535 *" $i "*) 6556 *" $i "*)
@@ -3537,40 +6558,41 @@ EOF
3537 i="" 6558 i=""
3538 ;; 6559 ;;
3539 esac 6560 esac
3540 fi 6561 fi
3541 if test -n "$i" ; then 6562 if test -n "$i" ; then
3542 libname=`eval \\$echo \"$libname_spec\"` 6563 libname=`eval "\\$ECHO \"$libname_spec\""`
3543 deplib_matches=`eval \\$echo \"$library_names_spec\"` 6564 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
3544 set dummy $deplib_matches 6565 set dummy $deplib_matches; shift
3545 deplib_match=$2 6566 deplib_match=$1
3546 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 6567 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3547 newdeplibs="$newdeplibs $i" 6568 newdeplibs="$newdeplibs $i"
3548 else 6569 else
3549 droppeddeps=yes 6570 droppeddeps=yes
3550 $echo 6571 $ECHO
3551 $echo "*** Warning: dynamic linker does not accept needed library $i." 6572 $ECHO "*** Warning: dynamic linker does not accept needed library $i."
3552 $echo "*** I have the capability to make that library automatically link in when" 6573 $ECHO "*** I have the capability to make that library automatically link in when"
3553 $echo "*** you link to this library. But I can only do this if you have a" 6574 $ECHO "*** you link to this library. But I can only do this if you have a"
3554 $echo "*** shared version of the library, which I believe you do not have" 6575 $ECHO "*** shared version of the library, which I believe you do not have"
3555 $echo "*** because a test_compile did reveal that the linker did not use it for" 6576 $ECHO "*** because a test_compile did reveal that the linker did not use it for"
3556 $echo "*** its dynamic dependency list that programs get resolved with at runtime." 6577 $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
3557 fi 6578 fi
3558 fi 6579 fi
3559 else 6580 ;;
6581 *)
3560 newdeplibs="$newdeplibs $i" 6582 newdeplibs="$newdeplibs $i"
3561 fi 6583 ;;
6584 esac
3562 done 6585 done
3563 else 6586 else
3564 # Error occurred in the first compile. Let's try to salvage 6587 # Error occurred in the first compile. Let's try to salvage
3565 # the situation: Compile a separate program for each library. 6588 # the situation: Compile a separate program for each library.
3566 for i in $deplibs; do 6589 for i in $deplibs; do
3567 name=`expr $i : '-l\(.*\)'` 6590 case $i in
3568 # If $name is empty we are operating on a -L argument. 6591 -l*)
3569 if test "$name" != "" && test "$name" != "0"; then 6592 func_stripname -l '' "$i"
3570 $rm conftest 6593 name=$func_stripname_result
3571 $LTCC $LTCFLAGS -o conftest conftest.c $i 6594 $opt_dry_run || $RM conftest
3572 # Did it work? 6595 if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
3573 if test "$?" -eq 0 ; then
3574 ldd_output=`ldd conftest` 6596 ldd_output=`ldd conftest`
3575 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 6597 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3576 case " $predeps $postdeps " in 6598 case " $predeps $postdeps " in
@@ -3581,44 +6603,47 @@ EOF
3581 esac 6603 esac
3582 fi 6604 fi
3583 if test -n "$i" ; then 6605 if test -n "$i" ; then
3584 libname=`eval \\$echo \"$libname_spec\"` 6606 libname=`eval "\\$ECHO \"$libname_spec\""`
3585 deplib_matches=`eval \\$echo \"$library_names_spec\"` 6607 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
3586 set dummy $deplib_matches 6608 set dummy $deplib_matches; shift
3587 deplib_match=$2 6609 deplib_match=$1
3588 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 6610 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3589 newdeplibs="$newdeplibs $i" 6611 newdeplibs="$newdeplibs $i"
3590 else 6612 else
3591 droppeddeps=yes 6613 droppeddeps=yes
3592 $echo 6614 $ECHO
3593 $echo "*** Warning: dynamic linker does not accept needed library $i." 6615 $ECHO "*** Warning: dynamic linker does not accept needed library $i."
3594 $echo "*** I have the capability to make that library automatically link in when" 6616 $ECHO "*** I have the capability to make that library automatically link in when"
3595 $echo "*** you link to this library. But I can only do this if you have a" 6617 $ECHO "*** you link to this library. But I can only do this if you have a"
3596 $echo "*** shared version of the library, which you do not appear to have" 6618 $ECHO "*** shared version of the library, which you do not appear to have"
3597 $echo "*** because a test_compile did reveal that the linker did not use this one" 6619 $ECHO "*** because a test_compile did reveal that the linker did not use this one"
3598 $echo "*** as a dynamic dependency that programs can get resolved with at runtime." 6620 $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
3599 fi 6621 fi
3600 fi 6622 fi
3601 else 6623 else
3602 droppeddeps=yes 6624 droppeddeps=yes
3603 $echo 6625 $ECHO
3604 $echo "*** Warning! Library $i is needed by this library but I was not able to" 6626 $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
3605 $echo "*** make it link in! You will probably need to install it or some" 6627 $ECHO "*** make it link in! You will probably need to install it or some"
3606 $echo "*** library that it depends on before this library will be fully" 6628 $ECHO "*** library that it depends on before this library will be fully"
3607 $echo "*** functional. Installing it before continuing would be even better." 6629 $ECHO "*** functional. Installing it before continuing would be even better."
3608 fi 6630 fi
3609 else 6631 ;;
6632 *)
3610 newdeplibs="$newdeplibs $i" 6633 newdeplibs="$newdeplibs $i"
3611 fi 6634 ;;
6635 esac
3612 done 6636 done
3613 fi 6637 fi
3614 ;; 6638 ;;
3615 file_magic*) 6639 file_magic*)
3616 set dummy $deplibs_check_method 6640 set dummy $deplibs_check_method; shift
3617 file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 6641 file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
3618 for a_deplib in $deplibs; do 6642 for a_deplib in $deplibs; do
3619 name=`expr $a_deplib : '-l\(.*\)'` 6643 case $a_deplib in
3620 # If $name is empty we are operating on a -L argument. 6644 -l*)
3621 if test "$name" != "" && test "$name" != "0"; then 6645 func_stripname -l '' "$a_deplib"
6646 name=$func_stripname_result
3622 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 6647 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3623 case " $predeps $postdeps " in 6648 case " $predeps $postdeps " in
3624 *" $a_deplib "*) 6649 *" $a_deplib "*)
@@ -3628,13 +6653,13 @@ EOF
3628 esac 6653 esac
3629 fi 6654 fi
3630 if test -n "$a_deplib" ; then 6655 if test -n "$a_deplib" ; then
3631 libname=`eval \\$echo \"$libname_spec\"` 6656 libname=`eval "\\$ECHO \"$libname_spec\""`
3632 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 6657 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3633 potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 6658 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3634 for potent_lib in $potential_libs; do 6659 for potent_lib in $potential_libs; do
3635 # Follow soft links. 6660 # Follow soft links.
3636 if ls -lLd "$potent_lib" 2>/dev/null \ 6661 if ls -lLd "$potent_lib" 2>/dev/null |
3637 | grep " -> " >/dev/null; then 6662 $GREP " -> " >/dev/null; then
3638 continue 6663 continue
3639 fi 6664 fi
3640 # The statement above tries to avoid entering an 6665 # The statement above tries to avoid entering an
@@ -3647,12 +6672,12 @@ EOF
3647 potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` 6672 potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
3648 case $potliblink in 6673 case $potliblink in
3649 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; 6674 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
3650 *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; 6675 *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
3651 esac 6676 esac
3652 done 6677 done
3653 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ 6678 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
3654 | ${SED} 10q \ 6679 $SED -e 10q |
3655 | $EGREP "$file_magic_regex" > /dev/null; then 6680 $EGREP "$file_magic_regex" > /dev/null; then
3656 newdeplibs="$newdeplibs $a_deplib" 6681 newdeplibs="$newdeplibs $a_deplib"
3657 a_deplib="" 6682 a_deplib=""
3658 break 2 6683 break 2
@@ -3662,32 +6687,35 @@ EOF
3662 fi 6687 fi
3663 if test -n "$a_deplib" ; then 6688 if test -n "$a_deplib" ; then
3664 droppeddeps=yes 6689 droppeddeps=yes
3665 $echo 6690 $ECHO
3666 $echo "*** Warning: linker path does not have real file for library $a_deplib." 6691 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
3667 $echo "*** I have the capability to make that library automatically link in when" 6692 $ECHO "*** I have the capability to make that library automatically link in when"
3668 $echo "*** you link to this library. But I can only do this if you have a" 6693 $ECHO "*** you link to this library. But I can only do this if you have a"
3669 $echo "*** shared version of the library, which you do not appear to have" 6694 $ECHO "*** shared version of the library, which you do not appear to have"
3670 $echo "*** because I did check the linker path looking for a file starting" 6695 $ECHO "*** because I did check the linker path looking for a file starting"
3671 if test -z "$potlib" ; then 6696 if test -z "$potlib" ; then
3672 $echo "*** with $libname but no candidates were found. (...for file magic test)" 6697 $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
3673 else 6698 else
3674 $echo "*** with $libname and none of the candidates passed a file format test" 6699 $ECHO "*** with $libname and none of the candidates passed a file format test"
3675 $echo "*** using a file magic. Last file checked: $potlib" 6700 $ECHO "*** using a file magic. Last file checked: $potlib"
3676 fi 6701 fi
3677 fi 6702 fi
3678 else 6703 ;;
6704 *)
3679 # Add a -L argument. 6705 # Add a -L argument.
3680 newdeplibs="$newdeplibs $a_deplib" 6706 newdeplibs="$newdeplibs $a_deplib"
3681 fi 6707 ;;
6708 esac
3682 done # Gone through all deplibs. 6709 done # Gone through all deplibs.
3683 ;; 6710 ;;
3684 match_pattern*) 6711 match_pattern*)
3685 set dummy $deplibs_check_method 6712 set dummy $deplibs_check_method; shift
3686 match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 6713 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
3687 for a_deplib in $deplibs; do 6714 for a_deplib in $deplibs; do
3688 name=`expr $a_deplib : '-l\(.*\)'` 6715 case $a_deplib in
3689 # If $name is empty we are operating on a -L argument. 6716 -l*)
3690 if test -n "$name" && test "$name" != "0"; then 6717 func_stripname -l '' "$a_deplib"
6718 name=$func_stripname_result
3691 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 6719 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3692 case " $predeps $postdeps " in 6720 case " $predeps $postdeps " in
3693 *" $a_deplib "*) 6721 *" $a_deplib "*)
@@ -3697,14 +6725,13 @@ EOF
3697 esac 6725 esac
3698 fi 6726 fi
3699 if test -n "$a_deplib" ; then 6727 if test -n "$a_deplib" ; then
3700 libname=`eval \\$echo \"$libname_spec\"` 6728 libname=`eval "\\$ECHO \"$libname_spec\""`
3701 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 6729 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3702 potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 6730 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3703 for potent_lib in $potential_libs; do 6731 for potent_lib in $potential_libs; do
3704 potlib="$potent_lib" # see symlink-check above in file_magic test 6732 potlib="$potent_lib" # see symlink-check above in file_magic test
3705 if eval $echo \"$potent_lib\" 2>/dev/null \ 6733 if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
3706 | ${SED} 10q \ 6734 $EGREP "$match_pattern_regex" > /dev/null; then
3707 | $EGREP "$match_pattern_regex" > /dev/null; then
3708 newdeplibs="$newdeplibs $a_deplib" 6735 newdeplibs="$newdeplibs $a_deplib"
3709 a_deplib="" 6736 a_deplib=""
3710 break 2 6737 break 2
@@ -3714,44 +6741,46 @@ EOF
3714 fi 6741 fi
3715 if test -n "$a_deplib" ; then 6742 if test -n "$a_deplib" ; then
3716 droppeddeps=yes 6743 droppeddeps=yes
3717 $echo 6744 $ECHO
3718 $echo "*** Warning: linker path does not have real file for library $a_deplib." 6745 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
3719 $echo "*** I have the capability to make that library automatically link in when" 6746 $ECHO "*** I have the capability to make that library automatically link in when"
3720 $echo "*** you link to this library. But I can only do this if you have a" 6747 $ECHO "*** you link to this library. But I can only do this if you have a"
3721 $echo "*** shared version of the library, which you do not appear to have" 6748 $ECHO "*** shared version of the library, which you do not appear to have"
3722 $echo "*** because I did check the linker path looking for a file starting" 6749 $ECHO "*** because I did check the linker path looking for a file starting"
3723 if test -z "$potlib" ; then 6750 if test -z "$potlib" ; then
3724 $echo "*** with $libname but no candidates were found. (...for regex pattern test)" 6751 $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
3725 else 6752 else
3726 $echo "*** with $libname and none of the candidates passed a file format test" 6753 $ECHO "*** with $libname and none of the candidates passed a file format test"
3727 $echo "*** using a regex pattern. Last file checked: $potlib" 6754 $ECHO "*** using a regex pattern. Last file checked: $potlib"
3728 fi 6755 fi
3729 fi 6756 fi
3730 else 6757 ;;
6758 *)
3731 # Add a -L argument. 6759 # Add a -L argument.
3732 newdeplibs="$newdeplibs $a_deplib" 6760 newdeplibs="$newdeplibs $a_deplib"
3733 fi 6761 ;;
6762 esac
3734 done # Gone through all deplibs. 6763 done # Gone through all deplibs.
3735 ;; 6764 ;;
3736 none | unknown | *) 6765 none | unknown | *)
3737 newdeplibs="" 6766 newdeplibs=""
3738 tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ 6767 tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
3739 -e 's/ -[LR][^ ]*//g'` 6768 -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
3740 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 6769 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3741 for i in $predeps $postdeps ; do 6770 for i in $predeps $postdeps ; do
3742 # can't use Xsed below, because $i might contain '/' 6771 # can't use Xsed below, because $i might contain '/'
3743 tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` 6772 tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
3744 done 6773 done
3745 fi 6774 fi
3746 if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ 6775 if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' |
3747 | grep . >/dev/null; then 6776 $GREP . >/dev/null; then
3748 $echo 6777 $ECHO
3749 if test "X$deplibs_check_method" = "Xnone"; then 6778 if test "X$deplibs_check_method" = "Xnone"; then
3750 $echo "*** Warning: inter-library dependencies are not supported in this platform." 6779 $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
3751 else 6780 else
3752 $echo "*** Warning: inter-library dependencies are not known to be supported." 6781 $ECHO "*** Warning: inter-library dependencies are not known to be supported."
3753 fi 6782 fi
3754 $echo "*** All declared inter-library dependencies are being dropped." 6783 $ECHO "*** All declared inter-library dependencies are being dropped."
3755 droppeddeps=yes 6784 droppeddeps=yes
3756 fi 6785 fi
3757 ;; 6786 ;;
@@ -3764,24 +6793,24 @@ EOF
3764 6793
3765 case $host in 6794 case $host in
3766 *-*-rhapsody* | *-*-darwin1.[012]) 6795 *-*-rhapsody* | *-*-darwin1.[012])
3767 # On Rhapsody replace the C library is the System framework 6796 # On Rhapsody replace the C library with the System framework
3768 newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` 6797 newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
3769 ;; 6798 ;;
3770 esac 6799 esac
3771 6800
3772 if test "$droppeddeps" = yes; then 6801 if test "$droppeddeps" = yes; then
3773 if test "$module" = yes; then 6802 if test "$module" = yes; then
3774 $echo 6803 $ECHO
3775 $echo "*** Warning: libtool could not satisfy all declared inter-library" 6804 $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
3776 $echo "*** dependencies of module $libname. Therefore, libtool will create" 6805 $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
3777 $echo "*** a static module, that should work as long as the dlopening" 6806 $ECHO "*** a static module, that should work as long as the dlopening"
3778 $echo "*** application is linked with the -dlopen flag." 6807 $ECHO "*** application is linked with the -dlopen flag."
3779 if test -z "$global_symbol_pipe"; then 6808 if test -z "$global_symbol_pipe"; then
3780 $echo 6809 $ECHO
3781 $echo "*** However, this would only work if libtool was able to extract symbol" 6810 $ECHO "*** However, this would only work if libtool was able to extract symbol"
3782 $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 6811 $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
3783 $echo "*** not find such a program. So, this module is probably useless." 6812 $ECHO "*** not find such a program. So, this module is probably useless."
3784 $echo "*** \`nm' from GNU binutils and a full rebuild may help." 6813 $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
3785 fi 6814 fi
3786 if test "$build_old_libs" = no; then 6815 if test "$build_old_libs" = no; then
3787 oldlibs="$output_objdir/$libname.$libext" 6816 oldlibs="$output_objdir/$libname.$libext"
@@ -3791,16 +6820,16 @@ EOF
3791 build_libtool_libs=no 6820 build_libtool_libs=no
3792 fi 6821 fi
3793 else 6822 else
3794 $echo "*** The inter-library dependencies that have been dropped here will be" 6823 $ECHO "*** The inter-library dependencies that have been dropped here will be"
3795 $echo "*** automatically added whenever a program is linked with this library" 6824 $ECHO "*** automatically added whenever a program is linked with this library"
3796 $echo "*** or is declared to -dlopen it." 6825 $ECHO "*** or is declared to -dlopen it."
3797 6826
3798 if test "$allow_undefined" = no; then 6827 if test "$allow_undefined" = no; then
3799 $echo 6828 $ECHO
3800 $echo "*** Since this library must not contain undefined symbols," 6829 $ECHO "*** Since this library must not contain undefined symbols,"
3801 $echo "*** because either the platform does not support them or" 6830 $ECHO "*** because either the platform does not support them or"
3802 $echo "*** it was explicitly requested with -no-undefined," 6831 $ECHO "*** it was explicitly requested with -no-undefined,"
3803 $echo "*** libtool will only create a static version of it." 6832 $ECHO "*** libtool will only create a static version of it."
3804 if test "$build_old_libs" = no; then 6833 if test "$build_old_libs" = no; then
3805 oldlibs="$output_objdir/$libname.$libext" 6834 oldlibs="$output_objdir/$libname.$libext"
3806 build_libtool_libs=module 6835 build_libtool_libs=module
@@ -3814,7 +6843,14 @@ EOF
3814 # Done checking deplibs! 6843 # Done checking deplibs!
3815 deplibs=$newdeplibs 6844 deplibs=$newdeplibs
3816 fi 6845 fi
3817 6846 # Time to change all our "foo.ltframework" stuff back to "-framework foo"
6847 case $host in
6848 *-*-darwin*)
6849 newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
6850 new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
6851 deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
6852 ;;
6853 esac
3818 6854
3819 # move library search paths that coincide with paths to not yet 6855 # move library search paths that coincide with paths to not yet
3820 # installed libraries to the beginning of the library search list 6856 # installed libraries to the beginning of the library search list
@@ -3843,7 +6879,6 @@ EOF
3843 done 6879 done
3844 deplibs="$new_libs" 6880 deplibs="$new_libs"
3845 6881
3846
3847 # All the library-specific variables (install_libdir is set above). 6882 # All the library-specific variables (install_libdir is set above).
3848 library_names= 6883 library_names=
3849 old_library= 6884 old_library=
@@ -3914,8 +6949,9 @@ EOF
3914 eval shared_ext=\"$shrext_cmds\" 6949 eval shared_ext=\"$shrext_cmds\"
3915 eval library_names=\"$library_names_spec\" 6950 eval library_names=\"$library_names_spec\"
3916 set dummy $library_names 6951 set dummy $library_names
3917 realname="$2" 6952 shift
3918 shift; shift 6953 realname="$1"
6954 shift
3919 6955
3920 if test -n "$soname_spec"; then 6956 if test -n "$soname_spec"; then
3921 eval soname=\"$soname_spec\" 6957 eval soname=\"$soname_spec\"
@@ -3934,71 +6970,122 @@ EOF
3934 done 6970 done
3935 6971
3936 # Use standard objects if they are pic 6972 # Use standard objects if they are pic
3937 test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 6973 test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
6974 test "X$libobjs" = "X " && libobjs=
6975
6976 delfiles=
6977 if test -n "$export_symbols" && test -n "$include_expsyms"; then
6978 $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
6979 export_symbols="$output_objdir/$libname.uexp"
6980 delfiles="$delfiles $export_symbols"
6981 fi
6982
6983 orig_export_symbols=
6984 case $host_os in
6985 cygwin* | mingw* | cegcc*)
6986 if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
6987 # exporting using user supplied symfile
6988 if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
6989 # and it's NOT already a .def file. Must figure out
6990 # which of the given symbols are data symbols and tag
6991 # them as such. So, trigger use of export_symbols_cmds.
6992 # export_symbols gets reassigned inside the "prepare
6993 # the list of exported symbols" if statement, so the
6994 # include_expsyms logic still works.
6995 orig_export_symbols="$export_symbols"
6996 export_symbols=
6997 always_export_symbols=yes
6998 fi
6999 fi
7000 ;;
7001 esac
3938 7002
3939 # Prepare the list of exported symbols 7003 # Prepare the list of exported symbols
3940 if test -z "$export_symbols"; then 7004 if test -z "$export_symbols"; then
3941 if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then 7005 if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
3942 $show "generating symbol list for \`$libname.la'" 7006 func_verbose "generating symbol list for \`$libname.la'"
3943 export_symbols="$output_objdir/$libname.exp" 7007 export_symbols="$output_objdir/$libname.exp"
3944 $run $rm $export_symbols 7008 $opt_dry_run || $RM $export_symbols
3945 cmds=$export_symbols_cmds 7009 cmds=$export_symbols_cmds
3946 save_ifs="$IFS"; IFS='~' 7010 save_ifs="$IFS"; IFS='~'
3947 for cmd in $cmds; do 7011 for cmd in $cmds; do
3948 IFS="$save_ifs" 7012 IFS="$save_ifs"
3949 eval cmd=\"$cmd\" 7013 eval cmd=\"$cmd\"
3950 if len=`expr "X$cmd" : ".*"` && 7014 func_len " $cmd"
3951 test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 7015 len=$func_len_result
3952 $show "$cmd" 7016 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
3953 $run eval "$cmd" || exit $? 7017 func_show_eval "$cmd" 'exit $?'
3954 skipped_export=false 7018 skipped_export=false
3955 else 7019 else
3956 # The command line is too long to execute in one step. 7020 # The command line is too long to execute in one step.
3957 $show "using reloadable object file for export list..." 7021 func_verbose "using reloadable object file for export list..."
3958 skipped_export=: 7022 skipped_export=:
3959 # Break out early, otherwise skipped_export may be 7023 # Break out early, otherwise skipped_export may be
3960 # set to false by a later but shorter cmd. 7024 # set to false by a later but shorter cmd.
3961 break 7025 break
3962 fi 7026 fi
3963 done 7027 done
3964 IFS="$save_ifs" 7028 IFS="$save_ifs"
3965 if test -n "$export_symbols_regex"; then 7029 if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
3966 $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" 7030 func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
3967 $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' 7031 func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
3968 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
3969 $run eval '$mv "${export_symbols}T" "$export_symbols"'
3970 fi 7032 fi
3971 fi 7033 fi
3972 fi 7034 fi
3973 7035
3974 if test -n "$export_symbols" && test -n "$include_expsyms"; then 7036 if test -n "$export_symbols" && test -n "$include_expsyms"; then
3975 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' 7037 tmp_export_symbols="$export_symbols"
7038 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
7039 $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
7040 fi
7041
7042 if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
7043 # The given exports_symbols file has to be filtered, so filter it.
7044 func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
7045 # FIXME: $output_objdir/$libname.filter potentially contains lots of
7046 # 's' commands which not all seds can handle. GNU sed should be fine
7047 # though. Also, the filter scales superlinearly with the number of
7048 # global variables. join(1) would be nice here, but unfortunately
7049 # isn't a blessed tool.
7050 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
7051 delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
7052 export_symbols=$output_objdir/$libname.def
7053 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
3976 fi 7054 fi
3977 7055
3978 tmp_deplibs= 7056 tmp_deplibs=
3979 for test_deplib in $deplibs; do 7057 for test_deplib in $deplibs; do
3980 case " $convenience " in 7058 case " $convenience " in
3981 *" $test_deplib "*) ;; 7059 *" $test_deplib "*) ;;
3982 *) 7060 *)
3983 tmp_deplibs="$tmp_deplibs $test_deplib" 7061 tmp_deplibs="$tmp_deplibs $test_deplib"
3984 ;; 7062 ;;
3985 esac 7063 esac
3986 done 7064 done
3987 deplibs="$tmp_deplibs" 7065 deplibs="$tmp_deplibs"
3988 7066
3989 if test -n "$convenience"; then 7067 if test -n "$convenience"; then
7068 if test -n "$whole_archive_flag_spec" &&
7069 test "$compiler_needs_object" = yes &&
7070 test -z "$libobjs"; then
7071 # extract the archives, so we have objects to list.
7072 # TODO: could optimize this to just extract one archive.
7073 whole_archive_flag_spec=
7074 fi
3990 if test -n "$whole_archive_flag_spec"; then 7075 if test -n "$whole_archive_flag_spec"; then
3991 save_libobjs=$libobjs 7076 save_libobjs=$libobjs
3992 eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 7077 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
7078 test "X$libobjs" = "X " && libobjs=
3993 else 7079 else
3994 gentop="$output_objdir/${outputname}x" 7080 gentop="$output_objdir/${outputname}x"
3995 generated="$generated $gentop" 7081 generated="$generated $gentop"
3996 7082
3997 func_extract_archives $gentop $convenience 7083 func_extract_archives $gentop $convenience
3998 libobjs="$libobjs $func_extract_archives_result" 7084 libobjs="$libobjs $func_extract_archives_result"
7085 test "X$libobjs" = "X " && libobjs=
3999 fi 7086 fi
4000 fi 7087 fi
4001 7088
4002 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then 7089 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
4003 eval flag=\"$thread_safe_flag_spec\" 7090 eval flag=\"$thread_safe_flag_spec\"
4004 linker_flags="$linker_flags $flag" 7091 linker_flags="$linker_flags $flag"
@@ -4006,7 +7093,7 @@ EOF
4006 7093
4007 # Make a backup of the uninstalled library when relinking 7094 # Make a backup of the uninstalled library when relinking
4008 if test "$mode" = relink; then 7095 if test "$mode" = relink; then
4009 $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? 7096 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
4010 fi 7097 fi
4011 7098
4012 # Do each of the archive commands. 7099 # Do each of the archive commands.
@@ -4019,22 +7106,24 @@ EOF
4019 cmds=$module_cmds 7106 cmds=$module_cmds
4020 fi 7107 fi
4021 else 7108 else
4022 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 7109 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4023 eval test_cmds=\"$archive_expsym_cmds\" 7110 eval test_cmds=\"$archive_expsym_cmds\"
4024 cmds=$archive_expsym_cmds 7111 cmds=$archive_expsym_cmds
4025 else 7112 else
4026 eval test_cmds=\"$archive_cmds\" 7113 eval test_cmds=\"$archive_cmds\"
4027 cmds=$archive_cmds 7114 cmds=$archive_cmds
4028 fi 7115 fi
4029 fi 7116 fi
4030 7117
4031 if test "X$skipped_export" != "X:" && 7118 if test "X$skipped_export" != "X:" &&
4032 len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 7119 func_len " $test_cmds" &&
4033 test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 7120 len=$func_len_result &&
7121 test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
4034 : 7122 :
4035 else 7123 else
4036 # The command line is too long to link in one step, link piecewise. 7124 # The command line is too long to link in one step, link piecewise
4037 $echo "creating reloadable object files..." 7125 # or, if using GNU ld and skipped_export is not :, use a linker
7126 # script.
4038 7127
4039 # Save the value of $output and $libobjs because we want to 7128 # Save the value of $output and $libobjs because we want to
4040 # use them later. If we have whole_archive_flag_spec, we 7129 # use them later. If we have whole_archive_flag_spec, we
@@ -4048,77 +7137,162 @@ EOF
4048 save_libobjs=$libobjs 7137 save_libobjs=$libobjs
4049 fi 7138 fi
4050 save_output=$output 7139 save_output=$output
4051 output_la=`$echo "X$output" | $Xsed -e "$basename"` 7140 output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
4052 7141
4053 # Clear the reloadable object creation command queue and 7142 # Clear the reloadable object creation command queue and
4054 # initialize k to one. 7143 # initialize k to one.
4055 test_cmds= 7144 test_cmds=
4056 concat_cmds= 7145 concat_cmds=
4057 objlist= 7146 objlist=
4058 delfiles=
4059 last_robj= 7147 last_robj=
4060 k=1 7148 k=1
4061 output=$output_objdir/$output_la-${k}.$objext 7149
4062 # Loop over the list of objects to be linked. 7150 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
4063 for obj in $save_libobjs 7151 output=${output_objdir}/${output_la}.lnkscript
4064 do 7152 func_verbose "creating GNU ld script: $output"
4065 eval test_cmds=\"$reload_cmds $objlist $last_robj\" 7153 $ECHO 'INPUT (' > $output
4066 if test "X$objlist" = X || 7154 for obj in $save_libobjs
4067 { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 7155 do
4068 test "$len" -le "$max_cmd_len"; }; then 7156 $ECHO "$obj" >> $output
4069 objlist="$objlist $obj" 7157 done
7158 $ECHO ')' >> $output
7159 delfiles="$delfiles $output"
7160 elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
7161 output=${output_objdir}/${output_la}.lnk
7162 func_verbose "creating linker input file list: $output"
7163 : > $output
7164 set x $save_libobjs
7165 shift
7166 firstobj=
7167 if test "$compiler_needs_object" = yes; then
7168 firstobj="$1 "
7169 shift
7170 fi
7171 for obj
7172 do
7173 $ECHO "$obj" >> $output
7174 done
7175 delfiles="$delfiles $output"
7176 output=$firstobj\"$file_list_spec$output\"
7177 else
7178 if test -n "$save_libobjs"; then
7179 func_verbose "creating reloadable object files..."
7180 output=$output_objdir/$output_la-${k}.$objext
7181 eval test_cmds=\"$reload_cmds\"
7182 func_len " $test_cmds"
7183 len0=$func_len_result
7184 len=$len0
7185
7186 # Loop over the list of objects to be linked.
7187 for obj in $save_libobjs
7188 do
7189 func_len " $obj"
7190 func_arith $len + $func_len_result
7191 len=$func_arith_result
7192 if test "X$objlist" = X ||
7193 test "$len" -lt "$max_cmd_len"; then
7194 func_append objlist " $obj"
7195 else
7196 # The command $test_cmds is almost too long, add a
7197 # command to the queue.
7198 if test "$k" -eq 1 ; then
7199 # The first file doesn't have a previous command to add.
7200 eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
7201 else
7202 # All subsequent reloadable object files will link in
7203 # the last one created.
7204 eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
7205 fi
7206 last_robj=$output_objdir/$output_la-${k}.$objext
7207 func_arith $k + 1
7208 k=$func_arith_result
7209 output=$output_objdir/$output_la-${k}.$objext
7210 objlist=$obj
7211 func_len " $last_robj"
7212 func_arith $len0 + $func_len_result
7213 len=$func_arith_result
7214 fi
7215 done
7216 # Handle the remaining objects by creating one last
7217 # reloadable object file. All subsequent reloadable object
7218 # files will link in the last one created.
7219 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
7220 eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
7221 if test -n "$last_robj"; then
7222 eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
7223 fi
7224 delfiles="$delfiles $output"
7225
4070 else 7226 else
4071 # The command $test_cmds is almost too long, add a 7227 output=
4072 # command to the queue. 7228 fi
4073 if test "$k" -eq 1 ; then 7229
4074 # The first file doesn't have a previous command to add. 7230 if ${skipped_export-false}; then
4075 eval concat_cmds=\"$reload_cmds $objlist $last_robj\" 7231 func_verbose "generating symbol list for \`$libname.la'"
4076 else 7232 export_symbols="$output_objdir/$libname.exp"
4077 # All subsequent reloadable object files will link in 7233 $opt_dry_run || $RM $export_symbols
4078 # the last one created. 7234 libobjs=$output
4079 eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" 7235 # Append the command to create the export file.
7236 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
7237 eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
7238 if test -n "$last_robj"; then
7239 eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
4080 fi 7240 fi
4081 last_robj=$output_objdir/$output_la-${k}.$objext
4082 k=`expr $k + 1`
4083 output=$output_objdir/$output_la-${k}.$objext
4084 objlist=$obj
4085 len=1
4086 fi 7241 fi
4087 done
4088 # Handle the remaining objects by creating one last
4089 # reloadable object file. All subsequent reloadable object
4090 # files will link in the last one created.
4091 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
4092 eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
4093
4094 if ${skipped_export-false}; then
4095 $show "generating symbol list for \`$libname.la'"
4096 export_symbols="$output_objdir/$libname.exp"
4097 $run $rm $export_symbols
4098 libobjs=$output
4099 # Append the command to create the export file.
4100 eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
4101 fi
4102
4103 # Set up a command to remove the reloadable object files
4104 # after they are used.
4105 i=0
4106 while test "$i" -lt "$k"
4107 do
4108 i=`expr $i + 1`
4109 delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
4110 done
4111 7242
4112 $echo "creating a temporary reloadable object file: $output" 7243 test -n "$save_libobjs" &&
7244 func_verbose "creating a temporary reloadable object file: $output"
4113 7245
4114 # Loop through the commands generated above and execute them. 7246 # Loop through the commands generated above and execute them.
4115 save_ifs="$IFS"; IFS='~' 7247 save_ifs="$IFS"; IFS='~'
4116 for cmd in $concat_cmds; do 7248 for cmd in $concat_cmds; do
7249 IFS="$save_ifs"
7250 $opt_silent || {
7251 func_quote_for_expand "$cmd"
7252 eval "func_echo $func_quote_for_expand_result"
7253 }
7254 $opt_dry_run || eval "$cmd" || {
7255 lt_exit=$?
7256
7257 # Restore the uninstalled library and exit
7258 if test "$mode" = relink; then
7259 ( cd "$output_objdir" && \
7260 $RM "${realname}T" && \
7261 $MV "${realname}U" "$realname" )
7262 fi
7263
7264 exit $lt_exit
7265 }
7266 done
4117 IFS="$save_ifs" 7267 IFS="$save_ifs"
4118 $show "$cmd" 7268
4119 $run eval "$cmd" || exit $? 7269 if test -n "$export_symbols_regex" && ${skipped_export-false}; then
4120 done 7270 func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
4121 IFS="$save_ifs" 7271 func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
7272 fi
7273 fi
7274
7275 if ${skipped_export-false}; then
7276 if test -n "$export_symbols" && test -n "$include_expsyms"; then
7277 tmp_export_symbols="$export_symbols"
7278 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
7279 $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
7280 fi
7281
7282 if test -n "$orig_export_symbols"; then
7283 # The given exports_symbols file has to be filtered, so filter it.
7284 func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
7285 # FIXME: $output_objdir/$libname.filter potentially contains lots of
7286 # 's' commands which not all seds can handle. GNU sed should be fine
7287 # though. Also, the filter scales superlinearly with the number of
7288 # global variables. join(1) would be nice here, but unfortunately
7289 # isn't a blessed tool.
7290 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
7291 delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
7292 export_symbols=$output_objdir/$libname.def
7293 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
7294 fi
7295 fi
4122 7296
4123 libobjs=$output 7297 libobjs=$output
4124 # Restore the value of output. 7298 # Restore the value of output.
@@ -4126,6 +7300,7 @@ EOF
4126 7300
4127 if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then 7301 if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
4128 eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 7302 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
7303 test "X$libobjs" = "X " && libobjs=
4129 fi 7304 fi
4130 # Expand the library linking commands again to reset the 7305 # Expand the library linking commands again to reset the
4131 # value of $libobjs for piecewise linking. 7306 # value of $libobjs for piecewise linking.
@@ -4138,28 +7313,45 @@ EOF
4138 cmds=$module_cmds 7313 cmds=$module_cmds
4139 fi 7314 fi
4140 else 7315 else
4141 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 7316 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4142 cmds=$archive_expsym_cmds 7317 cmds=$archive_expsym_cmds
4143 else 7318 else
4144 cmds=$archive_cmds 7319 cmds=$archive_cmds
4145 fi 7320 fi
4146 fi 7321 fi
7322 fi
4147 7323
4148 # Append the command to remove the reloadable object files 7324 if test -n "$delfiles"; then
4149 # to the just-reset $cmds. 7325 # Append the command to remove temporary files to $cmds.
4150 eval cmds=\"\$cmds~\$rm $delfiles\" 7326 eval cmds=\"\$cmds~\$RM $delfiles\"
4151 fi 7327 fi
7328
7329 # Add any objects from preloaded convenience libraries
7330 if test -n "$dlprefiles"; then
7331 gentop="$output_objdir/${outputname}x"
7332 generated="$generated $gentop"
7333
7334 func_extract_archives $gentop $dlprefiles
7335 libobjs="$libobjs $func_extract_archives_result"
7336 test "X$libobjs" = "X " && libobjs=
7337 fi
7338
4152 save_ifs="$IFS"; IFS='~' 7339 save_ifs="$IFS"; IFS='~'
4153 for cmd in $cmds; do 7340 for cmd in $cmds; do
4154 IFS="$save_ifs" 7341 IFS="$save_ifs"
4155 eval cmd=\"$cmd\" 7342 eval cmd=\"$cmd\"
4156 $show "$cmd" 7343 $opt_silent || {
4157 $run eval "$cmd" || { 7344 func_quote_for_expand "$cmd"
7345 eval "func_echo $func_quote_for_expand_result"
7346 }
7347 $opt_dry_run || eval "$cmd" || {
4158 lt_exit=$? 7348 lt_exit=$?
4159 7349
4160 # Restore the uninstalled library and exit 7350 # Restore the uninstalled library and exit
4161 if test "$mode" = relink; then 7351 if test "$mode" = relink; then
4162 $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' 7352 ( cd "$output_objdir" && \
7353 $RM "${realname}T" && \
7354 $MV "${realname}U" "$realname" )
4163 fi 7355 fi
4164 7356
4165 exit $lt_exit 7357 exit $lt_exit
@@ -4169,12 +7361,11 @@ EOF
4169 7361
4170 # Restore the uninstalled library and exit 7362 # Restore the uninstalled library and exit
4171 if test "$mode" = relink; then 7363 if test "$mode" = relink; then
4172 $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? 7364 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
4173 7365
4174 if test -n "$convenience"; then 7366 if test -n "$convenience"; then
4175 if test -z "$whole_archive_flag_spec"; then 7367 if test -z "$whole_archive_flag_spec"; then
4176 $show "${rm}r $gentop" 7368 func_show_eval '${RM}r "$gentop"'
4177 $run ${rm}r "$gentop"
4178 fi 7369 fi
4179 fi 7370 fi
4180 7371
@@ -4184,8 +7375,7 @@ EOF
4184 # Create links to the real library. 7375 # Create links to the real library.
4185 for linkname in $linknames; do 7376 for linkname in $linknames; do
4186 if test "$realname" != "$linkname"; then 7377 if test "$realname" != "$linkname"; then
4187 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" 7378 func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
4188 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
4189 fi 7379 fi
4190 done 7380 done
4191 7381
@@ -4198,38 +7388,35 @@ EOF
4198 ;; 7388 ;;
4199 7389
4200 obj) 7390 obj)
4201 if test -n "$deplibs"; then
4202 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
4203 fi
4204
4205 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 7391 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4206 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 7392 func_warning "\`-dlopen' is ignored for objects"
4207 fi 7393 fi
4208 7394
4209 if test -n "$rpath"; then 7395 case " $deplibs" in
4210 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 7396 *\ -l* | *\ -L*)
4211 fi 7397 func_warning "\`-l' and \`-L' are ignored for objects" ;;
7398 esac
4212 7399
4213 if test -n "$xrpath"; then 7400 test -n "$rpath" && \
4214 $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 7401 func_warning "\`-rpath' is ignored for objects"
4215 fi
4216 7402
4217 if test -n "$vinfo"; then 7403 test -n "$xrpath" && \
4218 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 7404 func_warning "\`-R' is ignored for objects"
4219 fi
4220 7405
4221 if test -n "$release"; then 7406 test -n "$vinfo" && \
4222 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 7407 func_warning "\`-version-info' is ignored for objects"
4223 fi 7408
7409 test -n "$release" && \
7410 func_warning "\`-release' is ignored for objects"
4224 7411
4225 case $output in 7412 case $output in
4226 *.lo) 7413 *.lo)
4227 if test -n "$objs$old_deplibs"; then 7414 test -n "$objs$old_deplibs" && \
4228 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 7415 func_fatal_error "cannot build library object \`$output' from non-libtool objects"
4229 exit $EXIT_FAILURE 7416
4230 fi 7417 libobj=$output
4231 libobj="$output" 7418 func_lo2o "$libobj"
4232 obj=`$echo "X$output" | $Xsed -e "$lo2o"` 7419 obj=$func_lo2o_result
4233 ;; 7420 ;;
4234 *) 7421 *)
4235 libobj= 7422 libobj=
@@ -4238,7 +7425,7 @@ EOF
4238 esac 7425 esac
4239 7426
4240 # Delete the old objects. 7427 # Delete the old objects.
4241 $run $rm $obj $libobj 7428 $opt_dry_run || $RM $obj $libobj
4242 7429
4243 # Objects from convenience libraries. This assumes 7430 # Objects from convenience libraries. This assumes
4244 # single-version convenience libraries. Whenever we create 7431 # single-version convenience libraries. Whenever we create
@@ -4247,12 +7434,14 @@ EOF
4247 reload_conv_objs= 7434 reload_conv_objs=
4248 gentop= 7435 gentop=
4249 # reload_cmds runs $LD directly, so let us get rid of 7436 # reload_cmds runs $LD directly, so let us get rid of
4250 # -Wl from whole_archive_flag_spec 7437 # -Wl from whole_archive_flag_spec and hope we can get by with
7438 # turning comma into space..
4251 wl= 7439 wl=
4252 7440
4253 if test -n "$convenience"; then 7441 if test -n "$convenience"; then
4254 if test -n "$whole_archive_flag_spec"; then 7442 if test -n "$whole_archive_flag_spec"; then
4255 eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" 7443 eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
7444 reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
4256 else 7445 else
4257 gentop="$output_objdir/${obj}x" 7446 gentop="$output_objdir/${obj}x"
4258 generated="$generated $gentop" 7447 generated="$generated $gentop"
@@ -4263,24 +7452,15 @@ EOF
4263 fi 7452 fi
4264 7453
4265 # Create the old-style object. 7454 # Create the old-style object.
4266 reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test 7455 reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
4267 7456
4268 output="$obj" 7457 output="$obj"
4269 cmds=$reload_cmds 7458 func_execute_cmds "$reload_cmds" 'exit $?'
4270 save_ifs="$IFS"; IFS='~'
4271 for cmd in $cmds; do
4272 IFS="$save_ifs"
4273 eval cmd=\"$cmd\"
4274 $show "$cmd"
4275 $run eval "$cmd" || exit $?
4276 done
4277 IFS="$save_ifs"
4278 7459
4279 # Exit if we aren't doing a library object file. 7460 # Exit if we aren't doing a library object file.
4280 if test -z "$libobj"; then 7461 if test -z "$libobj"; then
4281 if test -n "$gentop"; then 7462 if test -n "$gentop"; then
4282 $show "${rm}r $gentop" 7463 func_show_eval '${RM}r "$gentop"'
4283 $run ${rm}r $gentop
4284 fi 7464 fi
4285 7465
4286 exit $EXIT_SUCCESS 7466 exit $EXIT_SUCCESS
@@ -4288,14 +7468,13 @@ EOF
4288 7468
4289 if test "$build_libtool_libs" != yes; then 7469 if test "$build_libtool_libs" != yes; then
4290 if test -n "$gentop"; then 7470 if test -n "$gentop"; then
4291 $show "${rm}r $gentop" 7471 func_show_eval '${RM}r "$gentop"'
4292 $run ${rm}r $gentop
4293 fi 7472 fi
4294 7473
4295 # Create an invalid libtool object if no PIC, so that we don't 7474 # Create an invalid libtool object if no PIC, so that we don't
4296 # accidentally link it into a program. 7475 # accidentally link it into a program.
4297 # $show "echo timestamp > $libobj" 7476 # $show "echo timestamp > $libobj"
4298 # $run eval "echo timestamp > $libobj" || exit $? 7477 # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
4299 exit $EXIT_SUCCESS 7478 exit $EXIT_SUCCESS
4300 fi 7479 fi
4301 7480
@@ -4303,20 +7482,11 @@ EOF
4303 # Only do commands if we really have different PIC objects. 7482 # Only do commands if we really have different PIC objects.
4304 reload_objs="$libobjs $reload_conv_objs" 7483 reload_objs="$libobjs $reload_conv_objs"
4305 output="$libobj" 7484 output="$libobj"
4306 cmds=$reload_cmds 7485 func_execute_cmds "$reload_cmds" 'exit $?'
4307 save_ifs="$IFS"; IFS='~'
4308 for cmd in $cmds; do
4309 IFS="$save_ifs"
4310 eval cmd=\"$cmd\"
4311 $show "$cmd"
4312 $run eval "$cmd" || exit $?
4313 done
4314 IFS="$save_ifs"
4315 fi 7486 fi
4316 7487
4317 if test -n "$gentop"; then 7488 if test -n "$gentop"; then
4318 $show "${rm}r $gentop" 7489 func_show_eval '${RM}r "$gentop"'
4319 $run ${rm}r $gentop
4320 fi 7490 fi
4321 7491
4322 exit $EXIT_SUCCESS 7492 exit $EXIT_SUCCESS
@@ -4324,39 +7494,45 @@ EOF
4324 7494
4325 prog) 7495 prog)
4326 case $host in 7496 case $host in
4327 *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; 7497 *cygwin*) func_stripname '' '.exe' "$output"
7498 output=$func_stripname_result.exe;;
4328 esac 7499 esac
4329 if test -n "$vinfo"; then 7500 test -n "$vinfo" && \
4330 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 7501 func_warning "\`-version-info' is ignored for programs"
4331 fi
4332 7502
4333 if test -n "$release"; then 7503 test -n "$release" && \
4334 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 7504 func_warning "\`-release' is ignored for programs"
4335 fi
4336 7505
4337 if test "$preload" = yes; then 7506 test "$preload" = yes \
4338 if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && 7507 && test "$dlopen_support" = unknown \
4339 test "$dlopen_self_static" = unknown; then 7508 && test "$dlopen_self" = unknown \
4340 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." 7509 && test "$dlopen_self_static" = unknown && \
4341 fi 7510 func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
4342 fi
4343 7511
4344 case $host in 7512 case $host in
4345 *-*-rhapsody* | *-*-darwin1.[012]) 7513 *-*-rhapsody* | *-*-darwin1.[012])
4346 # On Rhapsody replace the C library is the System framework 7514 # On Rhapsody replace the C library is the System framework
4347 compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` 7515 compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
4348 finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` 7516 finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
4349 ;; 7517 ;;
4350 esac 7518 esac
4351 7519
4352 case $host in 7520 case $host in
4353 *darwin*) 7521 *-*-darwin*)
4354 # Don't allow lazy linking, it breaks C++ global constructors 7522 # Don't allow lazy linking, it breaks C++ global constructors
4355 if test "$tagname" = CXX ; then 7523 # But is supposedly fixed on 10.4 or later (yay!).
4356 compile_command="$compile_command ${wl}-bind_at_load" 7524 if test "$tagname" = CXX ; then
4357 finalize_command="$finalize_command ${wl}-bind_at_load" 7525 case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
4358 fi 7526 10.[0123])
4359 ;; 7527 compile_command="$compile_command ${wl}-bind_at_load"
7528 finalize_command="$finalize_command ${wl}-bind_at_load"
7529 ;;
7530 esac
7531 fi
7532 # Time to change all our "foo.ltframework" stuff back to "-framework foo"
7533 compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
7534 finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
7535 ;;
4360 esac 7536 esac
4361 7537
4362 7538
@@ -4431,14 +7607,16 @@ EOF
4431 esac 7607 esac
4432 fi 7608 fi
4433 case $host in 7609 case $host in
4434 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 7610 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
4435 testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` 7611 testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
4436 case :$dllsearchpath: in 7612 case :$dllsearchpath: in
4437 *":$libdir:"*) ;; 7613 *":$libdir:"*) ;;
7614 ::) dllsearchpath=$libdir;;
4438 *) dllsearchpath="$dllsearchpath:$libdir";; 7615 *) dllsearchpath="$dllsearchpath:$libdir";;
4439 esac 7616 esac
4440 case :$dllsearchpath: in 7617 case :$dllsearchpath: in
4441 *":$testbindir:"*) ;; 7618 *":$testbindir:"*) ;;
7619 ::) dllsearchpath=$testbindir;;
4442 *) dllsearchpath="$dllsearchpath:$testbindir";; 7620 *) dllsearchpath="$dllsearchpath:$testbindir";;
4443 esac 7621 esac
4444 ;; 7622 ;;
@@ -4490,281 +7668,51 @@ EOF
4490 7668
4491 if test -n "$libobjs" && test "$build_old_libs" = yes; then 7669 if test -n "$libobjs" && test "$build_old_libs" = yes; then
4492 # Transform all the library objects into standard objects. 7670 # Transform all the library objects into standard objects.
4493 compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 7671 compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4494 finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 7672 finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4495 fi 7673 fi
4496 7674
4497 dlsyms= 7675 func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
4498 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4499 if test -n "$NM" && test -n "$global_symbol_pipe"; then
4500 dlsyms="${outputname}S.c"
4501 else
4502 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
4503 fi
4504 fi
4505
4506 if test -n "$dlsyms"; then
4507 case $dlsyms in
4508 "") ;;
4509 *.c)
4510 # Discover the nlist of each of the dlfiles.
4511 nlist="$output_objdir/${outputname}.nm"
4512
4513 $show "$rm $nlist ${nlist}S ${nlist}T"
4514 $run $rm "$nlist" "${nlist}S" "${nlist}T"
4515
4516 # Parse the name list into a source file.
4517 $show "creating $output_objdir/$dlsyms"
4518
4519 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
4520/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
4521/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
4522
4523#ifdef __cplusplus
4524extern \"C\" {
4525#endif
4526
4527/* Prevent the only kind of declaration conflicts we can make. */
4528#define lt_preloaded_symbols some_other_symbol
4529
4530/* External symbol declarations for the compiler. */\
4531"
4532
4533 if test "$dlself" = yes; then
4534 $show "generating symbol list for \`$output'"
4535
4536 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
4537
4538 # Add our own program objects to the symbol list.
4539 progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4540 for arg in $progfiles; do
4541 $show "extracting global C symbols from \`$arg'"
4542 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4543 done
4544
4545 if test -n "$exclude_expsyms"; then
4546 $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
4547 $run eval '$mv "$nlist"T "$nlist"'
4548 fi
4549
4550 if test -n "$export_symbols_regex"; then
4551 $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
4552 $run eval '$mv "$nlist"T "$nlist"'
4553 fi
4554
4555 # Prepare the list of exported symbols
4556 if test -z "$export_symbols"; then
4557 export_symbols="$output_objdir/$outputname.exp"
4558 $run $rm $export_symbols
4559 $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
4560 case $host in
4561 *cygwin* | *mingw* )
4562 $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4563 $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
4564 ;;
4565 esac
4566 else
4567 $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
4568 $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
4569 $run eval 'mv "$nlist"T "$nlist"'
4570 case $host in
4571 *cygwin* | *mingw* )
4572 $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4573 $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
4574 ;;
4575 esac
4576 fi
4577 fi
4578 7676
4579 for arg in $dlprefiles; do 7677 # template prelinking step
4580 $show "extracting global C symbols from \`$arg'" 7678 if test -n "$prelink_cmds"; then
4581 name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` 7679 func_execute_cmds "$prelink_cmds" 'exit $?'
4582 $run eval '$echo ": $name " >> "$nlist"'
4583 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4584 done
4585
4586 if test -z "$run"; then
4587 # Make sure we have at least an empty file.
4588 test -f "$nlist" || : > "$nlist"
4589
4590 if test -n "$exclude_expsyms"; then
4591 $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
4592 $mv "$nlist"T "$nlist"
4593 fi
4594
4595 # Try sorting and uniquifying the output.
4596 if grep -v "^: " < "$nlist" |
4597 if sort -k 3 </dev/null >/dev/null 2>&1; then
4598 sort -k 3
4599 else
4600 sort +2
4601 fi |
4602 uniq > "$nlist"S; then
4603 :
4604 else
4605 grep -v "^: " < "$nlist" > "$nlist"S
4606 fi
4607
4608 if test -f "$nlist"S; then
4609 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
4610 else
4611 $echo '/* NONE */' >> "$output_objdir/$dlsyms"
4612 fi
4613
4614 $echo >> "$output_objdir/$dlsyms" "\
4615
4616#undef lt_preloaded_symbols
4617
4618#if defined (__STDC__) && __STDC__
4619# define lt_ptr void *
4620#else
4621# define lt_ptr char *
4622# define const
4623#endif
4624
4625/* The mapping between symbol names and symbols. */
4626"
4627
4628 case $host in
4629 *cygwin* | *mingw* )
4630 $echo >> "$output_objdir/$dlsyms" "\
4631/* DATA imports from DLLs on WIN32 can't be const, because
4632 runtime relocations are performed -- see ld's documentation
4633 on pseudo-relocs */
4634struct {
4635"
4636 ;;
4637 * )
4638 $echo >> "$output_objdir/$dlsyms" "\
4639const struct {
4640"
4641 ;;
4642 esac
4643
4644
4645 $echo >> "$output_objdir/$dlsyms" "\
4646 const char *name;
4647 lt_ptr address;
4648}
4649lt_preloaded_symbols[] =
4650{\
4651"
4652
4653 eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
4654
4655 $echo >> "$output_objdir/$dlsyms" "\
4656 {0, (lt_ptr) 0}
4657};
4658
4659/* This works around a problem in FreeBSD linker */
4660#ifdef FREEBSD_WORKAROUND
4661static const void *lt_preloaded_setup() {
4662 return lt_preloaded_symbols;
4663}
4664#endif
4665
4666#ifdef __cplusplus
4667}
4668#endif\
4669"
4670 fi
4671
4672 pic_flag_for_symtable=
4673 case $host in
4674 # compiling the symbol table file with pic_flag works around
4675 # a FreeBSD bug that causes programs to crash when -lm is
4676 # linked before any other PIC object. But we must not use
4677 # pic_flag when linking with -static. The problem exists in
4678 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
4679 *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
4680 case "$compile_command " in
4681 *" -static "*) ;;
4682 *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
4683 esac;;
4684 *-*-hpux*)
4685 case "$compile_command " in
4686 *" -static "*) ;;
4687 *) pic_flag_for_symtable=" $pic_flag";;
4688 esac
4689 esac
4690
4691 # Now compile the dynamic symbol file.
4692 $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
4693 $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
4694
4695 # Clean up the generated files.
4696 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
4697 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
4698
4699 # Transform the symbol file into the correct name.
4700 case $host in
4701 *cygwin* | *mingw* )
4702 if test -f "$output_objdir/${outputname}.def" ; then
4703 compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
4704 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
4705 else
4706 compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4707 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4708 fi
4709 ;;
4710 * )
4711 compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4712 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4713 ;;
4714 esac
4715 ;;
4716 *)
4717 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
4718 exit $EXIT_FAILURE
4719 ;;
4720 esac
4721 else
4722 # We keep going just in case the user didn't refer to
4723 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
4724 # really was required.
4725
4726 # Nullify the symbol file.
4727 compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
4728 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
4729 fi 7680 fi
4730 7681
4731 if test "$need_relink" = no || test "$build_libtool_libs" != yes; then 7682 wrappers_required=yes
7683 case $host in
7684 *cygwin* | *mingw* )
7685 if test "$build_libtool_libs" != yes; then
7686 wrappers_required=no
7687 fi
7688 ;;
7689 *cegcc)
7690 # Disable wrappers for cegcc, we are cross compiling anyway.
7691 wrappers_required=no
7692 ;;
7693 *)
7694 if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
7695 wrappers_required=no
7696 fi
7697 ;;
7698 esac
7699 if test "$wrappers_required" = no; then
4732 # Replace the output file specification. 7700 # Replace the output file specification.
4733 compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` 7701 compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4734 link_command="$compile_command$compile_rpath" 7702 link_command="$compile_command$compile_rpath"
4735 7703
4736 # We have no uninstalled library dependencies, so finalize right now. 7704 # We have no uninstalled library dependencies, so finalize right now.
4737 $show "$link_command" 7705 exit_status=0
4738 $run eval "$link_command" 7706 func_show_eval "$link_command" 'exit_status=$?'
4739 exit_status=$?
4740 7707
4741 # Delete the generated files. 7708 # Delete the generated files.
4742 if test -n "$dlsyms"; then 7709 if test -f "$output_objdir/${outputname}S.${objext}"; then
4743 $show "$rm $output_objdir/${outputname}S.${objext}" 7710 func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
4744 $run $rm "$output_objdir/${outputname}S.${objext}"
4745 fi 7711 fi
4746 7712
4747 exit $exit_status 7713 exit $exit_status
4748 fi 7714 fi
4749 7715
4750 if test -n "$shlibpath_var"; then
4751 # We should set the shlibpath_var
4752 rpath=
4753 for dir in $temp_rpath; do
4754 case $dir in
4755 [\\/]* | [A-Za-z]:[\\/]*)
4756 # Absolute path.
4757 rpath="$rpath$dir:"
4758 ;;
4759 *)
4760 # Relative path: add a thisdir entry.
4761 rpath="$rpath\$thisdir/$dir:"
4762 ;;
4763 esac
4764 done
4765 temp_rpath="$rpath"
4766 fi
4767
4768 if test -n "$compile_shlibpath$finalize_shlibpath"; then 7716 if test -n "$compile_shlibpath$finalize_shlibpath"; then
4769 compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" 7717 compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
4770 fi 7718 fi
@@ -4797,12 +7745,11 @@ static const void *lt_preloaded_setup() {
4797 # We don't need to create a wrapper script. 7745 # We don't need to create a wrapper script.
4798 link_command="$compile_var$compile_command$compile_rpath" 7746 link_command="$compile_var$compile_command$compile_rpath"
4799 # Replace the output file specification. 7747 # Replace the output file specification.
4800 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` 7748 link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4801 # Delete the old output file. 7749 # Delete the old output file.
4802 $run $rm $output 7750 $opt_dry_run || $RM $output
4803 # Link the executable and exit 7751 # Link the executable and exit
4804 $show "$link_command" 7752 func_show_eval "$link_command" 'exit $?'
4805 $run eval "$link_command" || exit $?
4806 exit $EXIT_SUCCESS 7753 exit $EXIT_SUCCESS
4807 fi 7754 fi
4808 7755
@@ -4811,13 +7758,13 @@ static const void *lt_preloaded_setup() {
4811 link_command="$compile_var$compile_command$compile_rpath" 7758 link_command="$compile_var$compile_command$compile_rpath"
4812 relink_command="$finalize_var$finalize_command$finalize_rpath" 7759 relink_command="$finalize_var$finalize_command$finalize_rpath"
4813 7760
4814 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 7761 func_warning "this platform does not like uninstalled shared libraries"
4815 $echo "$modename: \`$output' will be relinked during installation" 1>&2 7762 func_warning "\`$output' will be relinked during installation"
4816 else 7763 else
4817 if test "$fast_install" != no; then 7764 if test "$fast_install" != no; then
4818 link_command="$finalize_var$compile_command$finalize_rpath" 7765 link_command="$finalize_var$compile_command$finalize_rpath"
4819 if test "$fast_install" = yes; then 7766 if test "$fast_install" = yes; then
4820 relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` 7767 relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
4821 else 7768 else
4822 # fast_install is set to needless 7769 # fast_install is set to needless
4823 relink_command= 7770 relink_command=
@@ -4829,594 +7776,103 @@ static const void *lt_preloaded_setup() {
4829 fi 7776 fi
4830 7777
4831 # Replace the output file specification. 7778 # Replace the output file specification.
4832 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` 7779 link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
4833 7780
4834 # Delete the old output files. 7781 # Delete the old output files.
4835 $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname 7782 $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
4836 7783
4837 $show "$link_command" 7784 func_show_eval "$link_command" 'exit $?'
4838 $run eval "$link_command" || exit $?
4839 7785
4840 # Now create the wrapper script. 7786 # Now create the wrapper script.
4841 $show "creating $output" 7787 func_verbose "creating $output"
4842 7788
4843 # Quote the relink command for shipping. 7789 # Quote the relink command for shipping.
4844 if test -n "$relink_command"; then 7790 if test -n "$relink_command"; then
4845 # Preserve any variables that may affect compiler behavior 7791 # Preserve any variables that may affect compiler behavior
4846 for var in $variables_saved_for_relink; do 7792 for var in $variables_saved_for_relink; do
4847 if eval test -z \"\${$var+set}\"; then 7793 if eval test -z \"\${$var+set}\"; then
4848 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" 7794 relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
4849 elif eval var_value=\$$var; test -z "$var_value"; then 7795 elif eval var_value=\$$var; test -z "$var_value"; then
4850 relink_command="$var=; export $var; $relink_command" 7796 relink_command="$var=; export $var; $relink_command"
4851 else 7797 else
4852 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` 7798 func_quote_for_eval "$var_value"
4853 relink_command="$var=\"$var_value\"; export $var; $relink_command" 7799 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
4854 fi 7800 fi
4855 done 7801 done
4856 relink_command="(cd `pwd`; $relink_command)" 7802 relink_command="(cd `pwd`; $relink_command)"
4857 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` 7803 relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
4858 fi 7804 fi
4859 7805
4860 # Quote $echo for shipping. 7806 # Quote $ECHO for shipping.
4861 if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then 7807 if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
4862 case $progpath in 7808 case $progpath in
4863 [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; 7809 [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
4864 *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; 7810 *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
4865 esac 7811 esac
4866 qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` 7812 qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
4867 else 7813 else
4868 qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` 7814 qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
4869 fi 7815 fi
4870 7816
4871 # Only actually do things if our run command is non-null. 7817 # Only actually do things if not in dry run mode.
4872 if test -z "$run"; then 7818 $opt_dry_run || {
4873 # win32 will think the script is a binary if it has 7819 # win32 will think the script is a binary if it has
4874 # a .exe suffix, so we strip it off here. 7820 # a .exe suffix, so we strip it off here.
4875 case $output in 7821 case $output in
4876 *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; 7822 *.exe) func_stripname '' '.exe' "$output"
7823 output=$func_stripname_result ;;
4877 esac 7824 esac
4878 # test for cygwin because mv fails w/o .exe extensions 7825 # test for cygwin because mv fails w/o .exe extensions
4879 case $host in 7826 case $host in
4880 *cygwin*) 7827 *cygwin*)
4881 exeext=.exe 7828 exeext=.exe
4882 outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; 7829 func_stripname '' '.exe' "$outputname"
7830 outputname=$func_stripname_result ;;
4883 *) exeext= ;; 7831 *) exeext= ;;
4884 esac 7832 esac
4885 case $host in 7833 case $host in
4886 *cygwin* | *mingw* ) 7834 *cygwin* | *mingw* )
4887 output_name=`basename $output` 7835 func_dirname_and_basename "$output" "" "."
4888 output_path=`dirname $output` 7836 output_name=$func_basename_result
4889 cwrappersource="$output_path/$objdir/lt-$output_name.c" 7837 output_path=$func_dirname_result
4890 cwrapper="$output_path/$output_name.exe" 7838 cwrappersource="$output_path/$objdir/lt-$output_name.c"
4891 $rm $cwrappersource $cwrapper 7839 cwrapper="$output_path/$output_name.exe"
4892 trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 7840 $RM $cwrappersource $cwrapper
4893 7841 trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
4894 cat > $cwrappersource <<EOF 7842
4895 7843 func_emit_cwrapperexe_src > $cwrappersource
4896/* $cwrappersource - temporary wrapper executable for $objdir/$outputname 7844
4897 Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 7845 # The wrapper executable is built using the $host compiler,
4898 7846 # because it contains $host paths and files. If cross-
4899 The $output program cannot be directly executed until all the libtool 7847 # compiling, it, like the target executable, must be
4900 libraries that it depends on are installed. 7848 # executed on the $host or under an emulation environment.
4901 7849 $opt_dry_run || {
4902 This wrapper executable should never be moved out of the build directory. 7850 $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
4903 If it is, it will not operate correctly. 7851 $STRIP $cwrapper
4904 7852 }
4905 Currently, it simply execs the wrapper *script* "/bin/sh $output",
4906 but could eventually absorb all of the scripts functionality and
4907 exec $objdir/$outputname directly.
4908*/
4909EOF
4910 cat >> $cwrappersource<<"EOF"
4911#include <stdio.h>
4912#include <stdlib.h>
4913#include <unistd.h>
4914#include <malloc.h>
4915#include <stdarg.h>
4916#include <assert.h>
4917#include <string.h>
4918#include <ctype.h>
4919#include <sys/stat.h>
4920
4921#if defined(PATH_MAX)
4922# define LT_PATHMAX PATH_MAX
4923#elif defined(MAXPATHLEN)
4924# define LT_PATHMAX MAXPATHLEN
4925#else
4926# define LT_PATHMAX 1024
4927#endif
4928
4929#ifndef DIR_SEPARATOR
4930# define DIR_SEPARATOR '/'
4931# define PATH_SEPARATOR ':'
4932#endif
4933
4934#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
4935 defined (__OS2__)
4936# define HAVE_DOS_BASED_FILE_SYSTEM
4937# ifndef DIR_SEPARATOR_2
4938# define DIR_SEPARATOR_2 '\\'
4939# endif
4940# ifndef PATH_SEPARATOR_2
4941# define PATH_SEPARATOR_2 ';'
4942# endif
4943#endif
4944
4945#ifndef DIR_SEPARATOR_2
4946# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
4947#else /* DIR_SEPARATOR_2 */
4948# define IS_DIR_SEPARATOR(ch) \
4949 (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
4950#endif /* DIR_SEPARATOR_2 */
4951
4952#ifndef PATH_SEPARATOR_2
4953# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
4954#else /* PATH_SEPARATOR_2 */
4955# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
4956#endif /* PATH_SEPARATOR_2 */
4957
4958#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
4959#define XFREE(stale) do { \
4960 if (stale) { free ((void *) stale); stale = 0; } \
4961} while (0)
4962
4963/* -DDEBUG is fairly common in CFLAGS. */
4964#undef DEBUG
4965#if defined DEBUGWRAPPER
4966# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
4967#else
4968# define DEBUG(format, ...)
4969#endif
4970
4971const char *program_name = NULL;
4972
4973void * xmalloc (size_t num);
4974char * xstrdup (const char *string);
4975const char * base_name (const char *name);
4976char * find_executable(const char *wrapper);
4977int check_executable(const char *path);
4978char * strendzap(char *str, const char *pat);
4979void lt_fatal (const char *message, ...);
4980
4981int
4982main (int argc, char *argv[])
4983{
4984 char **newargz;
4985 int i;
4986
4987 program_name = (char *) xstrdup (base_name (argv[0]));
4988 DEBUG("(main) argv[0] : %s\n",argv[0]);
4989 DEBUG("(main) program_name : %s\n",program_name);
4990 newargz = XMALLOC(char *, argc+2);
4991EOF
4992
4993 cat >> $cwrappersource <<EOF
4994 newargz[0] = (char *) xstrdup("$SHELL");
4995EOF
4996
4997 cat >> $cwrappersource <<"EOF"
4998 newargz[1] = find_executable(argv[0]);
4999 if (newargz[1] == NULL)
5000 lt_fatal("Couldn't find %s", argv[0]);
5001 DEBUG("(main) found exe at : %s\n",newargz[1]);
5002 /* we know the script has the same name, without the .exe */
5003 /* so make sure newargz[1] doesn't end in .exe */
5004 strendzap(newargz[1],".exe");
5005 for (i = 1; i < argc; i++)
5006 newargz[i+1] = xstrdup(argv[i]);
5007 newargz[argc+1] = NULL;
5008
5009 for (i=0; i<argc+1; i++)
5010 {
5011 DEBUG("(main) newargz[%d] : %s\n",i,newargz[i]);
5012 ;
5013 }
5014
5015EOF
5016
5017 case $host_os in
5018 mingw*)
5019 cat >> $cwrappersource <<EOF
5020 execv("$SHELL",(char const **)newargz);
5021EOF
5022 ;;
5023 *)
5024 cat >> $cwrappersource <<EOF
5025 execv("$SHELL",newargz);
5026EOF
5027 ;;
5028 esac
5029
5030 cat >> $cwrappersource <<"EOF"
5031 return 127;
5032}
5033
5034void *
5035xmalloc (size_t num)
5036{
5037 void * p = (void *) malloc (num);
5038 if (!p)
5039 lt_fatal ("Memory exhausted");
5040
5041 return p;
5042}
5043
5044char *
5045xstrdup (const char *string)
5046{
5047 return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
5048;
5049}
5050
5051const char *
5052base_name (const char *name)
5053{
5054 const char *base;
5055
5056#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5057 /* Skip over the disk name in MSDOS pathnames. */
5058 if (isalpha ((unsigned char)name[0]) && name[1] == ':')
5059 name += 2;
5060#endif
5061
5062 for (base = name; *name; name++)
5063 if (IS_DIR_SEPARATOR (*name))
5064 base = name + 1;
5065 return base;
5066}
5067
5068int
5069check_executable(const char * path)
5070{
5071 struct stat st;
5072
5073 DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
5074 if ((!path) || (!*path))
5075 return 0;
5076
5077 if ((stat (path, &st) >= 0) &&
5078 (
5079 /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
5080#if defined (S_IXOTH)
5081 ((st.st_mode & S_IXOTH) == S_IXOTH) ||
5082#endif
5083#if defined (S_IXGRP)
5084 ((st.st_mode & S_IXGRP) == S_IXGRP) ||
5085#endif
5086 ((st.st_mode & S_IXUSR) == S_IXUSR))
5087 )
5088 return 1;
5089 else
5090 return 0;
5091}
5092
5093/* Searches for the full path of the wrapper. Returns
5094 newly allocated full path name if found, NULL otherwise */
5095char *
5096find_executable (const char* wrapper)
5097{
5098 int has_slash = 0;
5099 const char* p;
5100 const char* p_next;
5101 /* static buffer for getcwd */
5102 char tmp[LT_PATHMAX + 1];
5103 int tmp_len;
5104 char* concat_name;
5105
5106 DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
5107
5108 if ((wrapper == NULL) || (*wrapper == '\0'))
5109 return NULL;
5110
5111 /* Absolute path? */
5112#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5113 if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
5114 {
5115 concat_name = xstrdup (wrapper);
5116 if (check_executable(concat_name))
5117 return concat_name;
5118 XFREE(concat_name);
5119 }
5120 else
5121 {
5122#endif
5123 if (IS_DIR_SEPARATOR (wrapper[0]))
5124 {
5125 concat_name = xstrdup (wrapper);
5126 if (check_executable(concat_name))
5127 return concat_name;
5128 XFREE(concat_name);
5129 }
5130#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5131 }
5132#endif
5133
5134 for (p = wrapper; *p; p++)
5135 if (*p == '/')
5136 {
5137 has_slash = 1;
5138 break;
5139 }
5140 if (!has_slash)
5141 {
5142 /* no slashes; search PATH */
5143 const char* path = getenv ("PATH");
5144 if (path != NULL)
5145 {
5146 for (p = path; *p; p = p_next)
5147 {
5148 const char* q;
5149 size_t p_len;
5150 for (q = p; *q; q++)
5151 if (IS_PATH_SEPARATOR(*q))
5152 break;
5153 p_len = q - p;
5154 p_next = (*q == '\0' ? q : q + 1);
5155 if (p_len == 0)
5156 {
5157 /* empty path: current directory */
5158 if (getcwd (tmp, LT_PATHMAX) == NULL)
5159 lt_fatal ("getcwd failed");
5160 tmp_len = strlen(tmp);
5161 concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5162 memcpy (concat_name, tmp, tmp_len);
5163 concat_name[tmp_len] = '/';
5164 strcpy (concat_name + tmp_len + 1, wrapper);
5165 }
5166 else
5167 {
5168 concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
5169 memcpy (concat_name, p, p_len);
5170 concat_name[p_len] = '/';
5171 strcpy (concat_name + p_len + 1, wrapper);
5172 }
5173 if (check_executable(concat_name))
5174 return concat_name;
5175 XFREE(concat_name);
5176 }
5177 }
5178 /* not found in PATH; assume curdir */
5179 }
5180 /* Relative path | not found in path: prepend cwd */
5181 if (getcwd (tmp, LT_PATHMAX) == NULL)
5182 lt_fatal ("getcwd failed");
5183 tmp_len = strlen(tmp);
5184 concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5185 memcpy (concat_name, tmp, tmp_len);
5186 concat_name[tmp_len] = '/';
5187 strcpy (concat_name + tmp_len + 1, wrapper);
5188
5189 if (check_executable(concat_name))
5190 return concat_name;
5191 XFREE(concat_name);
5192 return NULL;
5193}
5194
5195char *
5196strendzap(char *str, const char *pat)
5197{
5198 size_t len, patlen;
5199
5200 assert(str != NULL);
5201 assert(pat != NULL);
5202
5203 len = strlen(str);
5204 patlen = strlen(pat);
5205
5206 if (patlen <= len)
5207 {
5208 str += len - patlen;
5209 if (strcmp(str, pat) == 0)
5210 *str = '\0';
5211 }
5212 return str;
5213}
5214
5215static void
5216lt_error_core (int exit_status, const char * mode,
5217 const char * message, va_list ap)
5218{
5219 fprintf (stderr, "%s: %s: ", program_name, mode);
5220 vfprintf (stderr, message, ap);
5221 fprintf (stderr, ".\n");
5222
5223 if (exit_status >= 0)
5224 exit (exit_status);
5225}
5226
5227void
5228lt_fatal (const char *message, ...)
5229{
5230 va_list ap;
5231 va_start (ap, message);
5232 lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
5233 va_end (ap);
5234}
5235EOF
5236 # we should really use a build-platform specific compiler
5237 # here, but OTOH, the wrappers (shell script and this C one)
5238 # are only useful if you want to execute the "real" binary.
5239 # Since the "real" binary is built for $host, then this
5240 # wrapper might as well be built for $host, too.
5241 $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
5242 ;;
5243 esac
5244 $rm $output
5245 trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
5246
5247 $echo > $output "\
5248#! $SHELL
5249
5250# $output - temporary wrapper script for $objdir/$outputname
5251# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5252#
5253# The $output program cannot be directly executed until all the libtool
5254# libraries that it depends on are installed.
5255#
5256# This wrapper script should never be moved out of the build directory.
5257# If it is, it will not operate correctly.
5258
5259# Sed substitution that helps us do robust quoting. It backslashifies
5260# metacharacters that are still active within double-quoted strings.
5261Xsed='${SED} -e 1s/^X//'
5262sed_quote_subst='$sed_quote_subst'
5263
5264# The HP-UX ksh and POSIX shell print the target directory to stdout
5265# if CDPATH is set.
5266(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
5267
5268relink_command=\"$relink_command\"
5269
5270# This environment variable determines our operation mode.
5271if test \"\$libtool_install_magic\" = \"$magic\"; then
5272 # install mode needs the following variable:
5273 notinst_deplibs='$notinst_deplibs'
5274else
5275 # When we are sourced in execute mode, \$file and \$echo are already set.
5276 if test \"\$libtool_execute_magic\" != \"$magic\"; then
5277 echo=\"$qecho\"
5278 file=\"\$0\"
5279 # Make sure echo works.
5280 if test \"X\$1\" = X--no-reexec; then
5281 # Discard the --no-reexec flag, and continue.
5282 shift
5283 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
5284 # Yippee, \$echo works!
5285 :
5286 else
5287 # Restart under the correct shell, and then maybe \$echo will work.
5288 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
5289 fi
5290 fi\
5291"
5292 $echo >> $output "\
5293
5294 # Find the directory that this script lives in.
5295 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
5296 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
5297
5298 # Follow symbolic links until we get to the real thisdir.
5299 file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
5300 while test -n \"\$file\"; do
5301 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
5302
5303 # If there was a directory component, then change thisdir.
5304 if test \"x\$destdir\" != \"x\$file\"; then
5305 case \"\$destdir\" in
5306 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
5307 *) thisdir=\"\$thisdir/\$destdir\" ;;
5308 esac
5309 fi
5310
5311 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
5312 file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
5313 done
5314
5315 # Try to get the absolute directory name.
5316 absdir=\`cd \"\$thisdir\" && pwd\`
5317 test -n \"\$absdir\" && thisdir=\"\$absdir\"
5318"
5319
5320 if test "$fast_install" = yes; then
5321 $echo >> $output "\
5322 program=lt-'$outputname'$exeext
5323 progdir=\"\$thisdir/$objdir\"
5324
5325 if test ! -f \"\$progdir/\$program\" || \\
5326 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
5327 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
5328
5329 file=\"\$\$-\$program\"
5330
5331 if test ! -d \"\$progdir\"; then
5332 $mkdir \"\$progdir\"
5333 else
5334 $rm \"\$progdir/\$file\"
5335 fi"
5336
5337 $echo >> $output "\
5338
5339 # relink executable if necessary
5340 if test -n \"\$relink_command\"; then
5341 if relink_command_output=\`eval \$relink_command 2>&1\`; then :
5342 else
5343 $echo \"\$relink_command_output\" >&2
5344 $rm \"\$progdir/\$file\"
5345 exit $EXIT_FAILURE
5346 fi
5347 fi
5348
5349 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
5350 { $rm \"\$progdir/\$program\";
5351 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
5352 $rm \"\$progdir/\$file\"
5353 fi"
5354 else
5355 $echo >> $output "\
5356 program='$outputname'
5357 progdir=\"\$thisdir/$objdir\"
5358"
5359 fi
5360
5361 $echo >> $output "\
5362
5363 if test -f \"\$progdir/\$program\"; then"
5364
5365 # Export our shlibpath_var if we have one.
5366 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
5367 $echo >> $output "\
5368 # Add our own library path to $shlibpath_var
5369 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
5370
5371 # Some systems cannot cope with colon-terminated $shlibpath_var
5372 # The second colon is a workaround for a bug in BeOS R4 sed
5373 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
5374
5375 export $shlibpath_var
5376"
5377 fi
5378
5379 # fixup the dll searchpath if we need to.
5380 if test -n "$dllsearchpath"; then
5381 $echo >> $output "\
5382 # Add the dll search path components to the executable PATH
5383 PATH=$dllsearchpath:\$PATH
5384"
5385 fi
5386 7853
5387 $echo >> $output "\ 7854 # Now, create the wrapper script for func_source use:
5388 if test \"\$libtool_execute_magic\" != \"$magic\"; then 7855 func_ltwrapper_scriptname $cwrapper
5389 # Run the actual program with our arguments. 7856 $RM $func_ltwrapper_scriptname_result
5390" 7857 trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
5391 case $host in 7858 $opt_dry_run || {
5392 # Backslashes separate directories on plain windows 7859 # note: this script will not be executed, so do not chmod.
5393 *-*-mingw | *-*-os2*) 7860 if test "x$build" = "x$host" ; then
5394 $echo >> $output "\ 7861 $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
5395 exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} 7862 else
5396" 7863 func_emit_wrapper no > $func_ltwrapper_scriptname_result
7864 fi
7865 }
5397 ;; 7866 ;;
7867 * )
7868 $RM $output
7869 trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
5398 7870
5399 *) 7871 func_emit_wrapper no > $output
5400 $echo >> $output "\ 7872 chmod +x $output
5401 exec \"\$progdir/\$program\" \${1+\"\$@\"}
5402"
5403 ;; 7873 ;;
5404 esac 7874 esac
5405 $echo >> $output "\ 7875 }
5406 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
5407 exit $EXIT_FAILURE
5408 fi
5409 else
5410 # The program doesn't exist.
5411 \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
5412 \$echo \"This script is just a wrapper for \$program.\" 1>&2
5413 $echo \"See the $PACKAGE documentation for more information.\" 1>&2
5414 exit $EXIT_FAILURE
5415 fi
5416fi\
5417"
5418 chmod +x $output
5419 fi
5420 exit $EXIT_SUCCESS 7876 exit $EXIT_SUCCESS
5421 ;; 7877 ;;
5422 esac 7878 esac
@@ -5425,7 +7881,7 @@ fi\
5425 for oldlib in $oldlibs; do 7881 for oldlib in $oldlibs; do
5426 7882
5427 if test "$build_libtool_libs" = convenience; then 7883 if test "$build_libtool_libs" = convenience; then
5428 oldobjs="$libobjs_save" 7884 oldobjs="$libobjs_save $symfileobj"
5429 addlibs="$convenience" 7885 addlibs="$convenience"
5430 build_libtool_libs=no 7886 build_libtool_libs=no
5431 else 7887 else
@@ -5434,6 +7890,9 @@ fi\
5434 build_libtool_libs=no 7890 build_libtool_libs=no
5435 else 7891 else
5436 oldobjs="$old_deplibs $non_pic_objects" 7892 oldobjs="$old_deplibs $non_pic_objects"
7893 if test "$preload" = yes && test -f "$symfileobj"; then
7894 oldobjs="$oldobjs $symfileobj"
7895 fi
5437 fi 7896 fi
5438 addlibs="$old_convenience" 7897 addlibs="$old_convenience"
5439 fi 7898 fi
@@ -5448,8 +7907,18 @@ fi\
5448 7907
5449 # Do each command in the archive commands. 7908 # Do each command in the archive commands.
5450 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then 7909 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
5451 cmds=$old_archive_from_new_cmds 7910 cmds=$old_archive_from_new_cmds
5452 else 7911 else
7912
7913 # Add any objects from preloaded convenience libraries
7914 if test -n "$dlprefiles"; then
7915 gentop="$output_objdir/${outputname}x"
7916 generated="$generated $gentop"
7917
7918 func_extract_archives $gentop $dlprefiles
7919 oldobjs="$oldobjs $func_extract_archives_result"
7920 fi
7921
5453 # POSIX demands no paths to be encoded in archives. We have 7922 # POSIX demands no paths to be encoded in archives. We have
5454 # to avoid creating archives with duplicate basenames if we 7923 # to avoid creating archives with duplicate basenames if we
5455 # might have to extract them afterwards, e.g., when creating a 7924 # might have to extract them afterwards, e.g., when creating a
@@ -5458,32 +7927,22 @@ fi\
5458 # not supported by libtool). 7927 # not supported by libtool).
5459 if (for obj in $oldobjs 7928 if (for obj in $oldobjs
5460 do 7929 do
5461 $echo "X$obj" | $Xsed -e 's%^.*/%%' 7930 func_basename "$obj"
7931 $ECHO "$func_basename_result"
5462 done | sort | sort -uc >/dev/null 2>&1); then 7932 done | sort | sort -uc >/dev/null 2>&1); then
5463 : 7933 :
5464 else 7934 else
5465 $echo "copying selected object files to avoid basename conflicts..." 7935 $ECHO "copying selected object files to avoid basename conflicts..."
5466 7936 gentop="$output_objdir/${outputname}x"
5467 if test -z "$gentop"; then 7937 generated="$generated $gentop"
5468 gentop="$output_objdir/${outputname}x" 7938 func_mkdir_p "$gentop"
5469 generated="$generated $gentop"
5470
5471 $show "${rm}r $gentop"
5472 $run ${rm}r "$gentop"
5473 $show "$mkdir $gentop"
5474 $run $mkdir "$gentop"
5475 exit_status=$?
5476 if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
5477 exit $exit_status
5478 fi
5479 fi
5480
5481 save_oldobjs=$oldobjs 7939 save_oldobjs=$oldobjs
5482 oldobjs= 7940 oldobjs=
5483 counter=1 7941 counter=1
5484 for obj in $save_oldobjs 7942 for obj in $save_oldobjs
5485 do 7943 do
5486 objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` 7944 func_basename "$obj"
7945 objbase="$func_basename_result"
5487 case " $oldobjs " in 7946 case " $oldobjs " in
5488 " ") oldobjs=$obj ;; 7947 " ") oldobjs=$obj ;;
5489 *[\ /]"$objbase "*) 7948 *[\ /]"$objbase "*)
@@ -5491,58 +7950,62 @@ fi\
5491 # Make sure we don't pick an alternate name that also 7950 # Make sure we don't pick an alternate name that also
5492 # overlaps. 7951 # overlaps.
5493 newobj=lt$counter-$objbase 7952 newobj=lt$counter-$objbase
5494 counter=`expr $counter + 1` 7953 func_arith $counter + 1
7954 counter=$func_arith_result
5495 case " $oldobjs " in 7955 case " $oldobjs " in
5496 *[\ /]"$newobj "*) ;; 7956 *[\ /]"$newobj "*) ;;
5497 *) if test ! -f "$gentop/$newobj"; then break; fi ;; 7957 *) if test ! -f "$gentop/$newobj"; then break; fi ;;
5498 esac 7958 esac
5499 done 7959 done
5500 $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" 7960 func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
5501 $run ln "$obj" "$gentop/$newobj" ||
5502 $run cp "$obj" "$gentop/$newobj"
5503 oldobjs="$oldobjs $gentop/$newobj" 7961 oldobjs="$oldobjs $gentop/$newobj"
5504 ;; 7962 ;;
5505 *) oldobjs="$oldobjs $obj" ;; 7963 *) oldobjs="$oldobjs $obj" ;;
5506 esac 7964 esac
5507 done 7965 done
5508 fi 7966 fi
5509
5510 eval cmds=\"$old_archive_cmds\" 7967 eval cmds=\"$old_archive_cmds\"
5511 7968
5512 if len=`expr "X$cmds" : ".*"` && 7969 func_len " $cmds"
5513 test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 7970 len=$func_len_result
7971 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
5514 cmds=$old_archive_cmds 7972 cmds=$old_archive_cmds
5515 else 7973 else
5516 # the command line is too long to link in one step, link in parts 7974 # the command line is too long to link in one step, link in parts
5517 $echo "using piecewise archive linking..." 7975 func_verbose "using piecewise archive linking..."
5518 save_RANLIB=$RANLIB 7976 save_RANLIB=$RANLIB
5519 RANLIB=: 7977 RANLIB=:
5520 objlist= 7978 objlist=
5521 concat_cmds= 7979 concat_cmds=
5522 save_oldobjs=$oldobjs 7980 save_oldobjs=$oldobjs
5523 7981 oldobjs=
5524 # Is there a better way of finding the last object in the list? 7982 # Is there a better way of finding the last object in the list?
5525 for obj in $save_oldobjs 7983 for obj in $save_oldobjs
5526 do 7984 do
5527 last_oldobj=$obj 7985 last_oldobj=$obj
5528 done 7986 done
7987 eval test_cmds=\"$old_archive_cmds\"
7988 func_len " $test_cmds"
7989 len0=$func_len_result
7990 len=$len0
5529 for obj in $save_oldobjs 7991 for obj in $save_oldobjs
5530 do 7992 do
5531 oldobjs="$objlist $obj" 7993 func_len " $obj"
5532 objlist="$objlist $obj" 7994 func_arith $len + $func_len_result
5533 eval test_cmds=\"$old_archive_cmds\" 7995 len=$func_arith_result
5534 if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 7996 func_append objlist " $obj"
5535 test "$len" -le "$max_cmd_len"; then 7997 if test "$len" -lt "$max_cmd_len"; then
5536 : 7998 :
5537 else 7999 else
5538 # the above command should be used before it gets too long 8000 # the above command should be used before it gets too long
5539 oldobjs=$objlist 8001 oldobjs=$objlist
5540 if test "$obj" = "$last_oldobj" ; then 8002 if test "$obj" = "$last_oldobj" ; then
5541 RANLIB=$save_RANLIB 8003 RANLIB=$save_RANLIB
5542 fi 8004 fi
5543 test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 8005 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
5544 eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" 8006 eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
5545 objlist= 8007 objlist=
8008 len=$len0
5546 fi 8009 fi
5547 done 8010 done
5548 RANLIB=$save_RANLIB 8011 RANLIB=$save_RANLIB
@@ -5554,49 +8017,39 @@ fi\
5554 fi 8017 fi
5555 fi 8018 fi
5556 fi 8019 fi
5557 save_ifs="$IFS"; IFS='~' 8020 func_execute_cmds "$cmds" 'exit $?'
5558 for cmd in $cmds; do
5559 eval cmd=\"$cmd\"
5560 IFS="$save_ifs"
5561 $show "$cmd"
5562 $run eval "$cmd" || exit $?
5563 done
5564 IFS="$save_ifs"
5565 done 8021 done
5566 8022
5567 if test -n "$generated"; then 8023 test -n "$generated" && \
5568 $show "${rm}r$generated" 8024 func_show_eval "${RM}r$generated"
5569 $run ${rm}r$generated
5570 fi
5571 8025
5572 # Now create the libtool archive. 8026 # Now create the libtool archive.
5573 case $output in 8027 case $output in
5574 *.la) 8028 *.la)
5575 old_library= 8029 old_library=
5576 test "$build_old_libs" = yes && old_library="$libname.$libext" 8030 test "$build_old_libs" = yes && old_library="$libname.$libext"
5577 $show "creating $output" 8031 func_verbose "creating $output"
5578 8032
5579 # Preserve any variables that may affect compiler behavior 8033 # Preserve any variables that may affect compiler behavior
5580 for var in $variables_saved_for_relink; do 8034 for var in $variables_saved_for_relink; do
5581 if eval test -z \"\${$var+set}\"; then 8035 if eval test -z \"\${$var+set}\"; then
5582 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" 8036 relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
5583 elif eval var_value=\$$var; test -z "$var_value"; then 8037 elif eval var_value=\$$var; test -z "$var_value"; then
5584 relink_command="$var=; export $var; $relink_command" 8038 relink_command="$var=; export $var; $relink_command"
5585 else 8039 else
5586 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` 8040 func_quote_for_eval "$var_value"
5587 relink_command="$var=\"$var_value\"; export $var; $relink_command" 8041 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
5588 fi 8042 fi
5589 done 8043 done
5590 # Quote the link command for shipping. 8044 # Quote the link command for shipping.
5591 relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" 8045 relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
5592 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` 8046 relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
5593 if test "$hardcode_automatic" = yes ; then 8047 if test "$hardcode_automatic" = yes ; then
5594 relink_command= 8048 relink_command=
5595 fi 8049 fi
5596 8050
5597
5598 # Only create the output if not a dry run. 8051 # Only create the output if not a dry run.
5599 if test -z "$run"; then 8052 $opt_dry_run || {
5600 for installed in no yes; do 8053 for installed in no yes; do
5601 if test "$installed" = yes; then 8054 if test "$installed" = yes; then
5602 if test -z "$install_libdir"; then 8055 if test -z "$install_libdir"; then
@@ -5608,12 +8061,11 @@ fi\
5608 for deplib in $dependency_libs; do 8061 for deplib in $dependency_libs; do
5609 case $deplib in 8062 case $deplib in
5610 *.la) 8063 *.la)
5611 name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` 8064 func_basename "$deplib"
8065 name="$func_basename_result"
5612 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 8066 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
5613 if test -z "$libdir"; then 8067 test -z "$libdir" && \
5614 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 8068 func_fatal_error "\`$deplib' is not a valid libtool archive"
5615 exit $EXIT_FAILURE
5616 fi
5617 newdependency_libs="$newdependency_libs $libdir/$name" 8069 newdependency_libs="$newdependency_libs $libdir/$name"
5618 ;; 8070 ;;
5619 *) newdependency_libs="$newdependency_libs $deplib" ;; 8071 *) newdependency_libs="$newdependency_libs $deplib" ;;
@@ -5621,25 +8073,37 @@ fi\
5621 done 8073 done
5622 dependency_libs="$newdependency_libs" 8074 dependency_libs="$newdependency_libs"
5623 newdlfiles= 8075 newdlfiles=
8076
5624 for lib in $dlfiles; do 8077 for lib in $dlfiles; do
5625 name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 8078 case $lib in
5626 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 8079 *.la)
5627 if test -z "$libdir"; then 8080 func_basename "$lib"
5628 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 8081 name="$func_basename_result"
5629 exit $EXIT_FAILURE 8082 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5630 fi 8083 test -z "$libdir" && \
5631 newdlfiles="$newdlfiles $libdir/$name" 8084 func_fatal_error "\`$lib' is not a valid libtool archive"
8085 newdlfiles="$newdlfiles $libdir/$name"
8086 ;;
8087 *) newdlfiles="$newdlfiles $lib" ;;
8088 esac
5632 done 8089 done
5633 dlfiles="$newdlfiles" 8090 dlfiles="$newdlfiles"
5634 newdlprefiles= 8091 newdlprefiles=
5635 for lib in $dlprefiles; do 8092 for lib in $dlprefiles; do
5636 name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 8093 case $lib in
5637 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 8094 *.la)
5638 if test -z "$libdir"; then 8095 # Only pass preopened files to the pseudo-archive (for
5639 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 8096 # eventual linking with the app. that links it) if we
5640 exit $EXIT_FAILURE 8097 # didn't already link the preopened objects directly into
5641 fi 8098 # the library:
5642 newdlprefiles="$newdlprefiles $libdir/$name" 8099 func_basename "$lib"
8100 name="$func_basename_result"
8101 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
8102 test -z "$libdir" && \
8103 func_fatal_error "\`$lib' is not a valid libtool archive"
8104 newdlprefiles="$newdlprefiles $libdir/$name"
8105 ;;
8106 esac
5643 done 8107 done
5644 dlprefiles="$newdlprefiles" 8108 dlprefiles="$newdlprefiles"
5645 else 8109 else
@@ -5662,15 +8126,15 @@ fi\
5662 done 8126 done
5663 dlprefiles="$newdlprefiles" 8127 dlprefiles="$newdlprefiles"
5664 fi 8128 fi
5665 $rm $output 8129 $RM $output
5666 # place dlname in correct position for cygwin 8130 # place dlname in correct position for cygwin
5667 tdlname=$dlname 8131 tdlname=$dlname
5668 case $host,$output,$installed,$module,$dlname in 8132 case $host,$output,$installed,$module,$dlname in
5669 *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; 8133 *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
5670 esac 8134 esac
5671 $echo > $output "\ 8135 $ECHO > $output "\
5672# $outputname - a libtool library file 8136# $outputname - a libtool library file
5673# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 8137# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
5674# 8138#
5675# Please DO NOT delete this file! 8139# Please DO NOT delete this file!
5676# It is necessary for linking the library. 8140# It is necessary for linking the library.
@@ -5684,9 +8148,15 @@ library_names='$library_names'
5684# The name of the static archive. 8148# The name of the static archive.
5685old_library='$old_library' 8149old_library='$old_library'
5686 8150
8151# Linker flags that can not go in dependency_libs.
8152inherited_linker_flags='$new_inherited_linker_flags'
8153
5687# Libraries that this one depends upon. 8154# Libraries that this one depends upon.
5688dependency_libs='$dependency_libs' 8155dependency_libs='$dependency_libs'
5689 8156
8157# Names of additional weak libraries provided by this library
8158weak_library_names='$weak_libs'
8159
5690# Version information for $libname. 8160# Version information for $libname.
5691current=$current 8161current=$current
5692age=$age 8162age=$age
@@ -5705,746 +8175,29 @@ dlpreopen='$dlprefiles'
5705# Directory that this library needs to be installed in: 8175# Directory that this library needs to be installed in:
5706libdir='$install_libdir'" 8176libdir='$install_libdir'"
5707 if test "$installed" = no && test "$need_relink" = yes; then 8177 if test "$installed" = no && test "$need_relink" = yes; then
5708 $echo >> $output "\ 8178 $ECHO >> $output "\
5709relink_command=\"$relink_command\"" 8179relink_command=\"$relink_command\""
5710 fi 8180 fi
5711 done 8181 done
5712 fi 8182 }
5713 8183
5714 # Do a symbolic link so that the libtool archive can be found in 8184 # Do a symbolic link so that the libtool archive can be found in
5715 # LD_LIBRARY_PATH before the program is installed. 8185 # LD_LIBRARY_PATH before the program is installed.
5716 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" 8186 func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
5717 $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
5718 ;; 8187 ;;
5719 esac 8188 esac
5720 exit $EXIT_SUCCESS 8189 exit $EXIT_SUCCESS
5721 ;; 8190}
5722
5723 # libtool install mode
5724 install)
5725 modename="$modename: install"
5726
5727 # There may be an optional sh(1) argument at the beginning of
5728 # install_prog (especially on Windows NT).
5729 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
5730 # Allow the use of GNU shtool's install command.
5731 $echo "X$nonopt" | grep shtool > /dev/null; then
5732 # Aesthetically quote it.
5733 arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
5734 case $arg in
5735 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
5736 arg="\"$arg\""
5737 ;;
5738 esac
5739 install_prog="$arg "
5740 arg="$1"
5741 shift
5742 else
5743 install_prog=
5744 arg=$nonopt
5745 fi
5746
5747 # The real first argument should be the name of the installation program.
5748 # Aesthetically quote it.
5749 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5750 case $arg in
5751 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
5752 arg="\"$arg\""
5753 ;;
5754 esac
5755 install_prog="$install_prog$arg"
5756
5757 # We need to accept at least all the BSD install flags.
5758 dest=
5759 files=
5760 opts=
5761 prev=
5762 install_type=
5763 isdir=no
5764 stripme=
5765 for arg
5766 do
5767 if test -n "$dest"; then
5768 files="$files $dest"
5769 dest=$arg
5770 continue
5771 fi
5772
5773 case $arg in
5774 -d) isdir=yes ;;
5775 -f)
5776 case " $install_prog " in
5777 *[\\\ /]cp\ *) ;;
5778 *) prev=$arg ;;
5779 esac
5780 ;;
5781 -g | -m | -o) prev=$arg ;;
5782 -s)
5783 stripme=" -s"
5784 continue
5785 ;;
5786 -*)
5787 ;;
5788 *)
5789 # If the previous option needed an argument, then skip it.
5790 if test -n "$prev"; then
5791 prev=
5792 else
5793 dest=$arg
5794 continue
5795 fi
5796 ;;
5797 esac
5798
5799 # Aesthetically quote the argument.
5800 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5801 case $arg in
5802 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
5803 arg="\"$arg\""
5804 ;;
5805 esac
5806 install_prog="$install_prog $arg"
5807 done
5808
5809 if test -z "$install_prog"; then
5810 $echo "$modename: you must specify an install program" 1>&2
5811 $echo "$help" 1>&2
5812 exit $EXIT_FAILURE
5813 fi
5814
5815 if test -n "$prev"; then
5816 $echo "$modename: the \`$prev' option requires an argument" 1>&2
5817 $echo "$help" 1>&2
5818 exit $EXIT_FAILURE
5819 fi
5820
5821 if test -z "$files"; then
5822 if test -z "$dest"; then
5823 $echo "$modename: no file or destination specified" 1>&2
5824 else
5825 $echo "$modename: you must specify a destination" 1>&2
5826 fi
5827 $echo "$help" 1>&2
5828 exit $EXIT_FAILURE
5829 fi
5830
5831 # Strip any trailing slash from the destination.
5832 dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
5833
5834 # Check to see that the destination is a directory.
5835 test -d "$dest" && isdir=yes
5836 if test "$isdir" = yes; then
5837 destdir="$dest"
5838 destname=
5839 else
5840 destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
5841 test "X$destdir" = "X$dest" && destdir=.
5842 destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
5843
5844 # Not a directory, so check to see that there is only one file specified.
5845 set dummy $files
5846 if test "$#" -gt 2; then
5847 $echo "$modename: \`$dest' is not a directory" 1>&2
5848 $echo "$help" 1>&2
5849 exit $EXIT_FAILURE
5850 fi
5851 fi
5852 case $destdir in
5853 [\\/]* | [A-Za-z]:[\\/]*) ;;
5854 *)
5855 for file in $files; do
5856 case $file in
5857 *.lo) ;;
5858 *)
5859 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
5860 $echo "$help" 1>&2
5861 exit $EXIT_FAILURE
5862 ;;
5863 esac
5864 done
5865 ;;
5866 esac
5867
5868 # This variable tells wrapper scripts just to set variables rather
5869 # than running their programs.
5870 libtool_install_magic="$magic"
5871
5872 staticlibs=
5873 future_libdirs=
5874 current_libdirs=
5875 for file in $files; do
5876
5877 # Do each installation.
5878 case $file in
5879 *.$libext)
5880 # Do the static libraries later.
5881 staticlibs="$staticlibs $file"
5882 ;;
5883
5884 *.la)
5885 # Check to see that this really is a libtool archive.
5886 if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
5887 else
5888 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
5889 $echo "$help" 1>&2
5890 exit $EXIT_FAILURE
5891 fi
5892
5893 library_names=
5894 old_library=
5895 relink_command=
5896 # If there is no directory component, then add one.
5897 case $file in
5898 */* | *\\*) . $file ;;
5899 *) . ./$file ;;
5900 esac
5901
5902 # Add the libdir to current_libdirs if it is the destination.
5903 if test "X$destdir" = "X$libdir"; then
5904 case "$current_libdirs " in
5905 *" $libdir "*) ;;
5906 *) current_libdirs="$current_libdirs $libdir" ;;
5907 esac
5908 else
5909 # Note the libdir as a future libdir.
5910 case "$future_libdirs " in
5911 *" $libdir "*) ;;
5912 *) future_libdirs="$future_libdirs $libdir" ;;
5913 esac
5914 fi
5915
5916 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
5917 test "X$dir" = "X$file/" && dir=
5918 dir="$dir$objdir"
5919
5920 if test -n "$relink_command"; then
5921 # Determine the prefix the user has applied to our future dir.
5922 inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
5923
5924 # Don't allow the user to place us outside of our expected
5925 # location b/c this prevents finding dependent libraries that
5926 # are installed to the same prefix.
5927 # At present, this check doesn't affect windows .dll's that
5928 # are installed into $libdir/../bin (currently, that works fine)
5929 # but it's something to keep an eye on.
5930 if test "$inst_prefix_dir" = "$destdir"; then
5931 $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
5932 exit $EXIT_FAILURE
5933 fi
5934
5935 if test -n "$inst_prefix_dir"; then
5936 # Stick the inst_prefix_dir data into the link command.
5937 relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
5938 else
5939 relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
5940 fi
5941
5942 $echo "$modename: warning: relinking \`$file'" 1>&2
5943 $show "$relink_command"
5944 if $run eval "$relink_command"; then :
5945 else
5946 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
5947 exit $EXIT_FAILURE
5948 fi
5949 fi
5950
5951 # See the names of the shared library.
5952 set dummy $library_names
5953 if test -n "$2"; then
5954 realname="$2"
5955 shift
5956 shift
5957
5958 srcname="$realname"
5959 test -n "$relink_command" && srcname="$realname"T
5960
5961 # Install the shared library and build the symlinks.
5962 $show "$install_prog $dir/$srcname $destdir/$realname"
5963 $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
5964 if test -n "$stripme" && test -n "$striplib"; then
5965 $show "$striplib $destdir/$realname"
5966 $run eval "$striplib $destdir/$realname" || exit $?
5967 fi
5968
5969 if test "$#" -gt 0; then
5970 # Delete the old symlinks, and create new ones.
5971 # Try `ln -sf' first, because the `ln' binary might depend on
5972 # the symlink we replace! Solaris /bin/ln does not understand -f,
5973 # so we also need to try rm && ln -s.
5974 for linkname
5975 do
5976 if test "$linkname" != "$realname"; then
5977 $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
5978 $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
5979 fi
5980 done
5981 fi
5982
5983 # Do each command in the postinstall commands.
5984 lib="$destdir/$realname"
5985 cmds=$postinstall_cmds
5986 save_ifs="$IFS"; IFS='~'
5987 for cmd in $cmds; do
5988 IFS="$save_ifs"
5989 eval cmd=\"$cmd\"
5990 $show "$cmd"
5991 $run eval "$cmd" || {
5992 lt_exit=$?
5993
5994 # Restore the uninstalled library and exit
5995 if test "$mode" = relink; then
5996 $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
5997 fi
5998
5999 exit $lt_exit
6000 }
6001 done
6002 IFS="$save_ifs"
6003 fi
6004
6005 # Install the pseudo-library for information purposes.
6006 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6007 instname="$dir/$name"i
6008 $show "$install_prog $instname $destdir/$name"
6009 $run eval "$install_prog $instname $destdir/$name" || exit $?
6010
6011 # Maybe install the static library, too.
6012 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
6013 ;;
6014
6015 *.lo)
6016 # Install (i.e. copy) a libtool object.
6017
6018 # Figure out destination file name, if it wasn't already specified.
6019 if test -n "$destname"; then
6020 destfile="$destdir/$destname"
6021 else
6022 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6023 destfile="$destdir/$destfile"
6024 fi
6025
6026 # Deduce the name of the destination old-style object file.
6027 case $destfile in
6028 *.lo)
6029 staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
6030 ;;
6031 *.$objext)
6032 staticdest="$destfile"
6033 destfile=
6034 ;;
6035 *)
6036 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
6037 $echo "$help" 1>&2
6038 exit $EXIT_FAILURE
6039 ;;
6040 esac
6041
6042 # Install the libtool object if requested.
6043 if test -n "$destfile"; then
6044 $show "$install_prog $file $destfile"
6045 $run eval "$install_prog $file $destfile" || exit $?
6046 fi
6047
6048 # Install the old object if enabled.
6049 if test "$build_old_libs" = yes; then
6050 # Deduce the name of the old-style object file.
6051 staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
6052
6053 $show "$install_prog $staticobj $staticdest"
6054 $run eval "$install_prog \$staticobj \$staticdest" || exit $?
6055 fi
6056 exit $EXIT_SUCCESS
6057 ;;
6058
6059 *)
6060 # Figure out destination file name, if it wasn't already specified.
6061 if test -n "$destname"; then
6062 destfile="$destdir/$destname"
6063 else
6064 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6065 destfile="$destdir/$destfile"
6066 fi
6067
6068 # If the file is missing, and there is a .exe on the end, strip it
6069 # because it is most likely a libtool script we actually want to
6070 # install
6071 stripped_ext=""
6072 case $file in
6073 *.exe)
6074 if test ! -f "$file"; then
6075 file=`$echo $file|${SED} 's,.exe$,,'`
6076 stripped_ext=".exe"
6077 fi
6078 ;;
6079 esac
6080
6081 # Do a test to see if this is really a libtool program.
6082 case $host in
6083 *cygwin*|*mingw*)
6084 wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
6085 ;;
6086 *)
6087 wrapper=$file
6088 ;;
6089 esac
6090 if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
6091 notinst_deplibs=
6092 relink_command=
6093
6094 # Note that it is not necessary on cygwin/mingw to append a dot to
6095 # foo even if both foo and FILE.exe exist: automatic-append-.exe
6096 # behavior happens only for exec(3), not for open(2)! Also, sourcing
6097 # `FILE.' does not work on cygwin managed mounts.
6098 #
6099 # If there is no directory component, then add one.
6100 case $wrapper in
6101 */* | *\\*) . ${wrapper} ;;
6102 *) . ./${wrapper} ;;
6103 esac
6104
6105 # Check the variables that should have been set.
6106 if test -z "$notinst_deplibs"; then
6107 $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
6108 exit $EXIT_FAILURE
6109 fi
6110
6111 finalize=yes
6112 for lib in $notinst_deplibs; do
6113 # Check to see that each library is installed.
6114 libdir=
6115 if test -f "$lib"; then
6116 # If there is no directory component, then add one.
6117 case $lib in
6118 */* | *\\*) . $lib ;;
6119 *) . ./$lib ;;
6120 esac
6121 fi
6122 libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
6123 if test -n "$libdir" && test ! -f "$libfile"; then
6124 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
6125 finalize=no
6126 fi
6127 done
6128
6129 relink_command=
6130 # Note that it is not necessary on cygwin/mingw to append a dot to
6131 # foo even if both foo and FILE.exe exist: automatic-append-.exe
6132 # behavior happens only for exec(3), not for open(2)! Also, sourcing
6133 # `FILE.' does not work on cygwin managed mounts.
6134 #
6135 # If there is no directory component, then add one.
6136 case $wrapper in
6137 */* | *\\*) . ${wrapper} ;;
6138 *) . ./${wrapper} ;;
6139 esac
6140
6141 outputname=
6142 if test "$fast_install" = no && test -n "$relink_command"; then
6143 if test "$finalize" = yes && test -z "$run"; then
6144 tmpdir=`func_mktempdir`
6145 file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
6146 outputname="$tmpdir/$file"
6147 # Replace the output file specification.
6148 relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
6149
6150 $show "$relink_command"
6151 if $run eval "$relink_command"; then :
6152 else
6153 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
6154 ${rm}r "$tmpdir"
6155 continue
6156 fi
6157 file="$outputname"
6158 else
6159 $echo "$modename: warning: cannot relink \`$file'" 1>&2
6160 fi
6161 else
6162 # Install the binary that we compiled earlier.
6163 file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
6164 fi
6165 fi
6166
6167 # remove .exe since cygwin /usr/bin/install will append another
6168 # one anyway
6169 case $install_prog,$host in
6170 */usr/bin/install*,*cygwin*)
6171 case $file:$destfile in
6172 *.exe:*.exe)
6173 # this is ok
6174 ;;
6175 *.exe:*)
6176 destfile=$destfile.exe
6177 ;;
6178 *:*.exe)
6179 destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
6180 ;;
6181 esac
6182 ;;
6183 esac
6184 $show "$install_prog$stripme $file $destfile"
6185 $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
6186 test -n "$outputname" && ${rm}r "$tmpdir"
6187 ;;
6188 esac
6189 done
6190
6191 for file in $staticlibs; do
6192 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6193
6194 # Set up the ranlib parameters.
6195 oldlib="$destdir/$name"
6196
6197 $show "$install_prog $file $oldlib"
6198 $run eval "$install_prog \$file \$oldlib" || exit $?
6199
6200 if test -n "$stripme" && test -n "$old_striplib"; then
6201 $show "$old_striplib $oldlib"
6202 $run eval "$old_striplib $oldlib" || exit $?
6203 fi
6204
6205 # Do each command in the postinstall commands.
6206 cmds=$old_postinstall_cmds
6207 save_ifs="$IFS"; IFS='~'
6208 for cmd in $cmds; do
6209 IFS="$save_ifs"
6210 eval cmd=\"$cmd\"
6211 $show "$cmd"
6212 $run eval "$cmd" || exit $?
6213 done
6214 IFS="$save_ifs"
6215 done
6216
6217 if test -n "$future_libdirs"; then
6218 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
6219 fi
6220
6221 if test -n "$current_libdirs"; then
6222 # Maybe just do a dry run.
6223 test -n "$run" && current_libdirs=" -n$current_libdirs"
6224 exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
6225 else
6226 exit $EXIT_SUCCESS
6227 fi
6228 ;;
6229
6230 # libtool finish mode
6231 finish)
6232 modename="$modename: finish"
6233 libdirs="$nonopt"
6234 admincmds=
6235
6236 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
6237 for dir
6238 do
6239 libdirs="$libdirs $dir"
6240 done
6241
6242 for libdir in $libdirs; do
6243 if test -n "$finish_cmds"; then
6244 # Do each command in the finish commands.
6245 cmds=$finish_cmds
6246 save_ifs="$IFS"; IFS='~'
6247 for cmd in $cmds; do
6248 IFS="$save_ifs"
6249 eval cmd=\"$cmd\"
6250 $show "$cmd"
6251 $run eval "$cmd" || admincmds="$admincmds
6252 $cmd"
6253 done
6254 IFS="$save_ifs"
6255 fi
6256 if test -n "$finish_eval"; then
6257 # Do the single finish_eval.
6258 eval cmds=\"$finish_eval\"
6259 $run eval "$cmds" || admincmds="$admincmds
6260 $cmds"
6261 fi
6262 done
6263 fi
6264
6265 # Exit here if they wanted silent mode.
6266 test "$show" = : && exit $EXIT_SUCCESS
6267
6268 $echo "X----------------------------------------------------------------------" | $Xsed
6269 $echo "Libraries have been installed in:"
6270 for libdir in $libdirs; do
6271 $echo " $libdir"
6272 done
6273 $echo
6274 $echo "If you ever happen to want to link against installed libraries"
6275 $echo "in a given directory, LIBDIR, you must either use libtool, and"
6276 $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
6277 $echo "flag during linking and do at least one of the following:"
6278 if test -n "$shlibpath_var"; then
6279 $echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
6280 $echo " during execution"
6281 fi
6282 if test -n "$runpath_var"; then
6283 $echo " - add LIBDIR to the \`$runpath_var' environment variable"
6284 $echo " during linking"
6285 fi
6286 if test -n "$hardcode_libdir_flag_spec"; then
6287 libdir=LIBDIR
6288 eval flag=\"$hardcode_libdir_flag_spec\"
6289
6290 $echo " - use the \`$flag' linker flag"
6291 fi
6292 if test -n "$admincmds"; then
6293 $echo " - have your system administrator run these commands:$admincmds"
6294 fi
6295 if test -f /etc/ld.so.conf; then
6296 $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
6297 fi
6298 $echo
6299 $echo "See any operating system documentation about shared libraries for"
6300 $echo "more information, such as the ld(1) and ld.so(8) manual pages."
6301 $echo "X----------------------------------------------------------------------" | $Xsed
6302 exit $EXIT_SUCCESS
6303 ;;
6304
6305 # libtool execute mode
6306 execute)
6307 modename="$modename: execute"
6308
6309 # The first argument is the command name.
6310 cmd="$nonopt"
6311 if test -z "$cmd"; then
6312 $echo "$modename: you must specify a COMMAND" 1>&2
6313 $echo "$help"
6314 exit $EXIT_FAILURE
6315 fi
6316
6317 # Handle -dlopen flags immediately.
6318 for file in $execute_dlfiles; do
6319 if test ! -f "$file"; then
6320 $echo "$modename: \`$file' is not a file" 1>&2
6321 $echo "$help" 1>&2
6322 exit $EXIT_FAILURE
6323 fi
6324
6325 dir=
6326 case $file in
6327 *.la)
6328 # Check to see that this really is a libtool archive.
6329 if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
6330 else
6331 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
6332 $echo "$help" 1>&2
6333 exit $EXIT_FAILURE
6334 fi
6335
6336 # Read the libtool library.
6337 dlname=
6338 library_names=
6339
6340 # If there is no directory component, then add one.
6341 case $file in
6342 */* | *\\*) . $file ;;
6343 *) . ./$file ;;
6344 esac
6345
6346 # Skip this library if it cannot be dlopened.
6347 if test -z "$dlname"; then
6348 # Warn if it was a shared library.
6349 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
6350 continue
6351 fi
6352
6353 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6354 test "X$dir" = "X$file" && dir=.
6355
6356 if test -f "$dir/$objdir/$dlname"; then
6357 dir="$dir/$objdir"
6358 else
6359 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
6360 exit $EXIT_FAILURE
6361 fi
6362 ;;
6363
6364 *.lo)
6365 # Just add the directory containing the .lo file.
6366 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6367 test "X$dir" = "X$file" && dir=.
6368 ;;
6369
6370 *)
6371 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
6372 continue
6373 ;;
6374 esac
6375
6376 # Get the absolute pathname.
6377 absdir=`cd "$dir" && pwd`
6378 test -n "$absdir" && dir="$absdir"
6379
6380 # Now add the directory to shlibpath_var.
6381 if eval "test -z \"\$$shlibpath_var\""; then
6382 eval "$shlibpath_var=\"\$dir\""
6383 else
6384 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
6385 fi
6386 done
6387
6388 # This variable tells wrapper scripts just to set shlibpath_var
6389 # rather than running their programs.
6390 libtool_execute_magic="$magic"
6391
6392 # Check if any of the arguments is a wrapper script.
6393 args=
6394 for file
6395 do
6396 case $file in
6397 -*) ;;
6398 *)
6399 # Do a test to see if this is really a libtool program.
6400 if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6401 # If there is no directory component, then add one.
6402 case $file in
6403 */* | *\\*) . $file ;;
6404 *) . ./$file ;;
6405 esac
6406
6407 # Transform arg to wrapped name.
6408 file="$progdir/$program"
6409 fi
6410 ;;
6411 esac
6412 # Quote arguments (to preserve shell metacharacters).
6413 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
6414 args="$args \"$file\""
6415 done
6416
6417 if test -z "$run"; then
6418 if test -n "$shlibpath_var"; then
6419 # Export the shlibpath_var.
6420 eval "export $shlibpath_var"
6421 fi
6422 8191
6423 # Restore saved environment variables 8192{ test "$mode" = link || test "$mode" = relink; } &&
6424 if test "${save_LC_ALL+set}" = set; then 8193 func_mode_link ${1+"$@"}
6425 LC_ALL="$save_LC_ALL"; export LC_ALL
6426 fi
6427 if test "${save_LANG+set}" = set; then
6428 LANG="$save_LANG"; export LANG
6429 fi
6430 8194
6431 # Now prepare to actually exec the command.
6432 exec_cmd="\$cmd$args"
6433 else
6434 # Display what would be done.
6435 if test -n "$shlibpath_var"; then
6436 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
6437 $echo "export $shlibpath_var"
6438 fi
6439 $echo "$cmd$args"
6440 exit $EXIT_SUCCESS
6441 fi
6442 ;;
6443 8195
6444 # libtool clean and uninstall mode 8196# func_mode_uninstall arg...
6445 clean | uninstall) 8197func_mode_uninstall ()
6446 modename="$modename: $mode" 8198{
6447 rm="$nonopt" 8199 $opt_debug
8200 RM="$nonopt"
6448 files= 8201 files=
6449 rmforce= 8202 rmforce=
6450 exit_status=0 8203 exit_status=0
@@ -6456,30 +8209,28 @@ relink_command=\"$relink_command\""
6456 for arg 8209 for arg
6457 do 8210 do
6458 case $arg in 8211 case $arg in
6459 -f) rm="$rm $arg"; rmforce=yes ;; 8212 -f) RM="$RM $arg"; rmforce=yes ;;
6460 -*) rm="$rm $arg" ;; 8213 -*) RM="$RM $arg" ;;
6461 *) files="$files $arg" ;; 8214 *) files="$files $arg" ;;
6462 esac 8215 esac
6463 done 8216 done
6464 8217
6465 if test -z "$rm"; then 8218 test -z "$RM" && \
6466 $echo "$modename: you must specify an RM program" 1>&2 8219 func_fatal_help "you must specify an RM program"
6467 $echo "$help" 1>&2
6468 exit $EXIT_FAILURE
6469 fi
6470 8220
6471 rmdirs= 8221 rmdirs=
6472 8222
6473 origobjdir="$objdir" 8223 origobjdir="$objdir"
6474 for file in $files; do 8224 for file in $files; do
6475 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 8225 func_dirname "$file" "" "."
6476 if test "X$dir" = "X$file"; then 8226 dir="$func_dirname_result"
6477 dir=. 8227 if test "X$dir" = X.; then
6478 objdir="$origobjdir" 8228 objdir="$origobjdir"
6479 else 8229 else
6480 objdir="$dir/$origobjdir" 8230 objdir="$dir/$origobjdir"
6481 fi 8231 fi
6482 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 8232 func_basename "$file"
8233 name="$func_basename_result"
6483 test "$mode" = uninstall && objdir="$dir" 8234 test "$mode" = uninstall && objdir="$dir"
6484 8235
6485 # Remember objdir for removal later, being careful to avoid duplicates 8236 # Remember objdir for removal later, being careful to avoid duplicates
@@ -6491,9 +8242,9 @@ relink_command=\"$relink_command\""
6491 fi 8242 fi
6492 8243
6493 # Don't error if the file doesn't exist and rm -f was used. 8244 # Don't error if the file doesn't exist and rm -f was used.
6494 if (test -L "$file") >/dev/null 2>&1 \ 8245 if { test -L "$file"; } >/dev/null 2>&1 ||
6495 || (test -h "$file") >/dev/null 2>&1 \ 8246 { test -h "$file"; } >/dev/null 2>&1 ||
6496 || test -f "$file"; then 8247 test -f "$file"; then
6497 : 8248 :
6498 elif test -d "$file"; then 8249 elif test -d "$file"; then
6499 exit_status=1 8250 exit_status=1
@@ -6507,8 +8258,8 @@ relink_command=\"$relink_command\""
6507 case $name in 8258 case $name in
6508 *.la) 8259 *.la)
6509 # Possibly a libtool archive, so verify it. 8260 # Possibly a libtool archive, so verify it.
6510 if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 8261 if func_lalib_p "$file"; then
6511 . $dir/$name 8262 func_source $dir/$name
6512 8263
6513 # Delete the libtool libraries and symlinks. 8264 # Delete the libtool libraries and symlinks.
6514 for n in $library_names; do 8265 for n in $library_names; do
@@ -6523,39 +8274,17 @@ relink_command=\"$relink_command\""
6523 *" $dlname "*) ;; 8274 *" $dlname "*) ;;
6524 *) rmfiles="$rmfiles $objdir/$dlname" ;; 8275 *) rmfiles="$rmfiles $objdir/$dlname" ;;
6525 esac 8276 esac
6526 test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" 8277 test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
6527 ;; 8278 ;;
6528 uninstall) 8279 uninstall)
6529 if test -n "$library_names"; then 8280 if test -n "$library_names"; then
6530 # Do each command in the postuninstall commands. 8281 # Do each command in the postuninstall commands.
6531 cmds=$postuninstall_cmds 8282 func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
6532 save_ifs="$IFS"; IFS='~'
6533 for cmd in $cmds; do
6534 IFS="$save_ifs"
6535 eval cmd=\"$cmd\"
6536 $show "$cmd"
6537 $run eval "$cmd"
6538 if test "$?" -ne 0 && test "$rmforce" != yes; then
6539 exit_status=1
6540 fi
6541 done
6542 IFS="$save_ifs"
6543 fi 8283 fi
6544 8284
6545 if test -n "$old_library"; then 8285 if test -n "$old_library"; then
6546 # Do each command in the old_postuninstall commands. 8286 # Do each command in the old_postuninstall commands.
6547 cmds=$old_postuninstall_cmds 8287 func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
6548 save_ifs="$IFS"; IFS='~'
6549 for cmd in $cmds; do
6550 IFS="$save_ifs"
6551 eval cmd=\"$cmd\"
6552 $show "$cmd"
6553 $run eval "$cmd"
6554 if test "$?" -ne 0 && test "$rmforce" != yes; then
6555 exit_status=1
6556 fi
6557 done
6558 IFS="$save_ifs"
6559 fi 8288 fi
6560 # FIXME: should reinstall the best remaining shared library. 8289 # FIXME: should reinstall the best remaining shared library.
6561 ;; 8290 ;;
@@ -6565,20 +8294,20 @@ relink_command=\"$relink_command\""
6565 8294
6566 *.lo) 8295 *.lo)
6567 # Possibly a libtool object, so verify it. 8296 # Possibly a libtool object, so verify it.
6568 if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 8297 if func_lalib_p "$file"; then
6569 8298
6570 # Read the .lo file 8299 # Read the .lo file
6571 . $dir/$name 8300 func_source $dir/$name
6572 8301
6573 # Add PIC object to the list of files to remove. 8302 # Add PIC object to the list of files to remove.
6574 if test -n "$pic_object" \ 8303 if test -n "$pic_object" &&
6575 && test "$pic_object" != none; then 8304 test "$pic_object" != none; then
6576 rmfiles="$rmfiles $dir/$pic_object" 8305 rmfiles="$rmfiles $dir/$pic_object"
6577 fi 8306 fi
6578 8307
6579 # Add non-PIC object to the list of files to remove. 8308 # Add non-PIC object to the list of files to remove.
6580 if test -n "$non_pic_object" \ 8309 if test -n "$non_pic_object" &&
6581 && test "$non_pic_object" != none; then 8310 test "$non_pic_object" != none; then
6582 rmfiles="$rmfiles $dir/$non_pic_object" 8311 rmfiles="$rmfiles $dir/$non_pic_object"
6583 fi 8312 fi
6584 fi 8313 fi
@@ -6589,17 +8318,26 @@ relink_command=\"$relink_command\""
6589 noexename=$name 8318 noexename=$name
6590 case $file in 8319 case $file in
6591 *.exe) 8320 *.exe)
6592 file=`$echo $file|${SED} 's,.exe$,,'` 8321 func_stripname '' '.exe' "$file"
6593 noexename=`$echo $name|${SED} 's,.exe$,,'` 8322 file=$func_stripname_result
8323 func_stripname '' '.exe' "$name"
8324 noexename=$func_stripname_result
6594 # $file with .exe has already been added to rmfiles, 8325 # $file with .exe has already been added to rmfiles,
6595 # add $file without .exe 8326 # add $file without .exe
6596 rmfiles="$rmfiles $file" 8327 rmfiles="$rmfiles $file"
6597 ;; 8328 ;;
6598 esac 8329 esac
6599 # Do a test to see if this is a libtool program. 8330 # Do a test to see if this is a libtool program.
6600 if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 8331 if func_ltwrapper_p "$file"; then
6601 relink_command= 8332 if func_ltwrapper_executable_p "$file"; then
6602 . $dir/$noexename 8333 func_ltwrapper_scriptname "$file"
8334 relink_command=
8335 func_source $func_ltwrapper_scriptname_result
8336 rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
8337 else
8338 relink_command=
8339 func_source $dir/$noexename
8340 fi
6603 8341
6604 # note $name still contains .exe if it was in $file originally 8342 # note $name still contains .exe if it was in $file originally
6605 # as does the version of $file that was added into $rmfiles 8343 # as does the version of $file that was added into $rmfiles
@@ -6614,237 +8352,38 @@ relink_command=\"$relink_command\""
6614 fi 8352 fi
6615 ;; 8353 ;;
6616 esac 8354 esac
6617 $show "$rm $rmfiles" 8355 func_show_eval "$RM $rmfiles" 'exit_status=1'
6618 $run $rm $rmfiles || exit_status=1
6619 done 8356 done
6620 objdir="$origobjdir" 8357 objdir="$origobjdir"
6621 8358
6622 # Try to remove the ${objdir}s in the directories where we deleted files 8359 # Try to remove the ${objdir}s in the directories where we deleted files
6623 for dir in $rmdirs; do 8360 for dir in $rmdirs; do
6624 if test -d "$dir"; then 8361 if test -d "$dir"; then
6625 $show "rmdir $dir" 8362 func_show_eval "rmdir $dir >/dev/null 2>&1"
6626 $run rmdir $dir >/dev/null 2>&1
6627 fi 8363 fi
6628 done 8364 done
6629 8365
6630 exit $exit_status 8366 exit $exit_status
6631 ;; 8367}
6632 8368
6633 "") 8369{ test "$mode" = uninstall || test "$mode" = clean; } &&
6634 $echo "$modename: you must specify a MODE" 1>&2 8370 func_mode_uninstall ${1+"$@"}
6635 $echo "$generic_help" 1>&2
6636 exit $EXIT_FAILURE
6637 ;;
6638 esac
6639 8371
6640 if test -z "$exec_cmd"; then 8372test -z "$mode" && {
6641 $echo "$modename: invalid operation mode \`$mode'" 1>&2 8373 help="$generic_help"
6642 $echo "$generic_help" 1>&2 8374 func_fatal_help "you must specify a MODE"
6643 exit $EXIT_FAILURE 8375}
6644 fi 8376
6645fi # test -z "$show_help" 8377test -z "$exec_cmd" && \
8378 func_fatal_help "invalid operation mode \`$mode'"
6646 8379
6647if test -n "$exec_cmd"; then 8380if test -n "$exec_cmd"; then
6648 eval exec $exec_cmd 8381 eval exec "$exec_cmd"
6649 exit $EXIT_FAILURE 8382 exit $EXIT_FAILURE
6650fi 8383fi
6651 8384
6652# We need to display help for each of the modes. 8385exit $exit_status
6653case $mode in
6654"") $echo \
6655"Usage: $modename [OPTION]... [MODE-ARG]...
6656
6657Provide generalized library-building support services.
6658
6659 --config show all configuration variables
6660 --debug enable verbose shell tracing
6661-n, --dry-run display commands without modifying any files
6662 --features display basic configuration information and exit
6663 --finish same as \`--mode=finish'
6664 --help display this help message and exit
6665 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
6666 --quiet same as \`--silent'
6667 --silent don't print informational messages
6668 --tag=TAG use configuration variables from tag TAG
6669 --version print version information
6670
6671MODE must be one of the following:
6672
6673 clean remove files from the build directory
6674 compile compile a source file into a libtool object
6675 execute automatically set library path, then run a program
6676 finish complete the installation of libtool libraries
6677 install install libraries or executables
6678 link create a library or an executable
6679 uninstall remove libraries from an installed directory
6680
6681MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
6682a more detailed description of MODE.
6683
6684Report bugs to <bug-libtool@gnu.org>."
6685 exit $EXIT_SUCCESS
6686 ;;
6687
6688clean)
6689 $echo \
6690"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
6691
6692Remove files from the build directory.
6693
6694RM is the name of the program to use to delete files associated with each FILE
6695(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
6696to RM.
6697
6698If FILE is a libtool library, object or program, all the files associated
6699with it are deleted. Otherwise, only FILE itself is deleted using RM."
6700 ;;
6701
6702compile)
6703 $echo \
6704"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
6705
6706Compile a source file into a libtool library object.
6707
6708This mode accepts the following additional options:
6709
6710 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
6711 -prefer-pic try to building PIC objects only
6712 -prefer-non-pic try to building non-PIC objects only
6713 -static always build a \`.o' file suitable for static linking
6714
6715COMPILE-COMMAND is a command to be used in creating a \`standard' object file
6716from the given SOURCEFILE.
6717
6718The output file name is determined by removing the directory component from
6719SOURCEFILE, then substituting the C source code suffix \`.c' with the
6720library object suffix, \`.lo'."
6721 ;;
6722
6723execute)
6724 $echo \
6725"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
6726
6727Automatically set library path, then run a program.
6728
6729This mode accepts the following additional options:
6730
6731 -dlopen FILE add the directory containing FILE to the library path
6732
6733This mode sets the library path environment variable according to \`-dlopen'
6734flags.
6735
6736If any of the ARGS are libtool executable wrappers, then they are translated
6737into their corresponding uninstalled binary, and any of their required library
6738directories are added to the library path.
6739
6740Then, COMMAND is executed, with ARGS as arguments."
6741 ;;
6742
6743finish)
6744 $echo \
6745"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
6746
6747Complete the installation of libtool libraries.
6748
6749Each LIBDIR is a directory that contains libtool libraries.
6750
6751The commands that this mode executes may require superuser privileges. Use
6752the \`--dry-run' option if you just want to see what would be executed."
6753 ;;
6754
6755install)
6756 $echo \
6757"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
6758
6759Install executables or libraries.
6760
6761INSTALL-COMMAND is the installation command. The first component should be
6762either the \`install' or \`cp' program.
6763
6764The rest of the components are interpreted as arguments to that command (only
6765BSD-compatible install options are recognized)."
6766 ;;
6767
6768link)
6769 $echo \
6770"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
6771
6772Link object files or libraries together to form another library, or to
6773create an executable program.
6774
6775LINK-COMMAND is a command using the C compiler that you would use to create
6776a program from several object files.
6777
6778The following components of LINK-COMMAND are treated specially:
6779
6780 -all-static do not do any dynamic linking at all
6781 -avoid-version do not add a version suffix if possible
6782 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
6783 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
6784 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
6785 -export-symbols SYMFILE
6786 try to export only the symbols listed in SYMFILE
6787 -export-symbols-regex REGEX
6788 try to export only the symbols matching REGEX
6789 -LLIBDIR search LIBDIR for required installed libraries
6790 -lNAME OUTPUT-FILE requires the installed library libNAME
6791 -module build a library that can dlopened
6792 -no-fast-install disable the fast-install mode
6793 -no-install link a not-installable executable
6794 -no-undefined declare that a library does not refer to external symbols
6795 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
6796 -objectlist FILE Use a list of object files found in FILE to specify objects
6797 -precious-files-regex REGEX
6798 don't remove output files matching REGEX
6799 -release RELEASE specify package release information
6800 -rpath LIBDIR the created library will eventually be installed in LIBDIR
6801 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
6802 -static do not do any dynamic linking of libtool libraries
6803 -version-info CURRENT[:REVISION[:AGE]]
6804 specify library version info [each variable defaults to 0]
6805
6806All other options (arguments beginning with \`-') are ignored.
6807
6808Every other argument is treated as a filename. Files ending in \`.la' are
6809treated as uninstalled libtool libraries, other files are standard or library
6810object files.
6811
6812If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
6813only library objects (\`.lo' files) may be specified, and \`-rpath' is
6814required, except when creating a convenience library.
6815
6816If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
6817using \`ar' and \`ranlib', or on Windows using \`lib'.
6818
6819If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
6820is created, otherwise an executable program is created."
6821 ;;
6822
6823uninstall)
6824 $echo \
6825"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
6826 8386
6827Remove libraries from an installation directory.
6828
6829RM is the name of the program to use to delete files associated with each FILE
6830(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
6831to RM.
6832
6833If FILE is a libtool library, all the files associated with it are deleted.
6834Otherwise, only FILE itself is deleted using RM."
6835 ;;
6836
6837*)
6838 $echo "$modename: invalid operation mode \`$mode'" 1>&2
6839 $echo "$help" 1>&2
6840 exit $EXIT_FAILURE
6841 ;;
6842esac
6843
6844$echo
6845$echo "Try \`$modename --help' for more information about other modes."
6846
6847exit $?
6848 8387
6849# The TAGs below are defined such that we never get into a situation 8388# The TAGs below are defined such that we never get into a situation
6850# in which we disable both kinds of libraries. Given conflicting 8389# in which we disable both kinds of libraries. Given conflicting
@@ -6858,14 +8397,17 @@ exit $?
6858# configuration. But we'll never go from static-only to shared-only. 8397# configuration. But we'll never go from static-only to shared-only.
6859 8398
6860# ### BEGIN LIBTOOL TAG CONFIG: disable-shared 8399# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
6861disable_libs=shared 8400build_libtool_libs=no
8401build_old_libs=yes
6862# ### END LIBTOOL TAG CONFIG: disable-shared 8402# ### END LIBTOOL TAG CONFIG: disable-shared
6863 8403
6864# ### BEGIN LIBTOOL TAG CONFIG: disable-static 8404# ### BEGIN LIBTOOL TAG CONFIG: disable-static
6865disable_libs=static 8405build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
6866# ### END LIBTOOL TAG CONFIG: disable-static 8406# ### END LIBTOOL TAG CONFIG: disable-static
6867 8407
6868# Local Variables: 8408# Local Variables:
6869# mode:shell-script 8409# mode:shell-script
6870# sh-indentation:2 8410# sh-indentation:2
6871# End: 8411# End:
8412# vi:sw=2
8413
diff --git a/gl/m4/libtool.m4 b/gl/m4/libtool.m4
new file mode 100644
index 00000000..a3fee536
--- /dev/null
+++ b/gl/m4/libtool.m4
@@ -0,0 +1,7377 @@
1# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
2#
3# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
4# 2006, 2007, 2008 Free Software Foundation, Inc.
5# Written by Gordon Matzigkeit, 1996
6#
7# This file is free software; the Free Software Foundation gives
8# unlimited permission to copy and/or distribute it, with or without
9# modifications, as long as this notice is preserved.
10
11m4_define([_LT_COPYING], [dnl
12# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
13# 2006, 2007, 2008 Free Software Foundation, Inc.
14# Written by Gordon Matzigkeit, 1996
15#
16# This file is part of GNU Libtool.
17#
18# GNU Libtool is free software; you can redistribute it and/or
19# modify it under the terms of the GNU General Public License as
20# published by the Free Software Foundation; either version 2 of
21# the License, or (at your option) any later version.
22#
23# As a special exception to the GNU General Public License,
24# if you distribute this file as part of a program or library that
25# is built using GNU Libtool, you may include this file under the
26# same distribution terms that you use for the rest of that program.
27#
28# GNU Libtool is distributed in the hope that it will be useful,
29# but WITHOUT ANY WARRANTY; without even the implied warranty of
30# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31# GNU General Public License for more details.
32#
33# You should have received a copy of the GNU General Public License
34# along with GNU Libtool; see the file COPYING. If not, a copy
35# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
36# obtained by writing to the Free Software Foundation, Inc.,
37# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
38])
39
40# serial 56 LT_INIT
41
42
43# LT_PREREQ(VERSION)
44# ------------------
45# Complain and exit if this libtool version is less that VERSION.
46m4_defun([LT_PREREQ],
47[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
48 [m4_default([$3],
49 [m4_fatal([Libtool version $1 or higher is required],
50 63)])],
51 [$2])])
52
53
54# _LT_CHECK_BUILDDIR
55# ------------------
56# Complain if the absolute build directory name contains unusual characters
57m4_defun([_LT_CHECK_BUILDDIR],
58[case `pwd` in
59 *\ * | *\ *)
60 AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
61esac
62])
63
64
65# LT_INIT([OPTIONS])
66# ------------------
67AC_DEFUN([LT_INIT],
68[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
69AC_BEFORE([$0], [LT_LANG])dnl
70AC_BEFORE([$0], [LT_OUTPUT])dnl
71AC_BEFORE([$0], [LTDL_INIT])dnl
72m4_require([_LT_CHECK_BUILDDIR])dnl
73
74dnl Autoconf doesn't catch unexpanded LT_ macros by default:
75m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
76m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
77dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
78dnl unless we require an AC_DEFUNed macro:
79AC_REQUIRE([LTOPTIONS_VERSION])dnl
80AC_REQUIRE([LTSUGAR_VERSION])dnl
81AC_REQUIRE([LTVERSION_VERSION])dnl
82AC_REQUIRE([LTOBSOLETE_VERSION])dnl
83m4_require([_LT_PROG_LTMAIN])dnl
84
85dnl Parse OPTIONS
86_LT_SET_OPTIONS([$0], [$1])
87
88# This can be used to rebuild libtool when needed
89LIBTOOL_DEPS="$ltmain"
90
91# Always use our own libtool.
92LIBTOOL='$(SHELL) $(top_builddir)/libtool'
93AC_SUBST(LIBTOOL)dnl
94
95_LT_SETUP
96
97# Only expand once:
98m4_define([LT_INIT])
99])# LT_INIT
100
101# Old names:
102AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
103AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
104dnl aclocal-1.4 backwards compatibility:
105dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
106dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
107
108
109# _LT_CC_BASENAME(CC)
110# -------------------
111# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
112m4_defun([_LT_CC_BASENAME],
113[for cc_temp in $1""; do
114 case $cc_temp in
115 compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
116 distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
117 \-*) ;;
118 *) break;;
119 esac
120done
121cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
122])
123
124
125# _LT_FILEUTILS_DEFAULTS
126# ----------------------
127# It is okay to use these file commands and assume they have been set
128# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
129m4_defun([_LT_FILEUTILS_DEFAULTS],
130[: ${CP="cp -f"}
131: ${MV="mv -f"}
132: ${RM="rm -f"}
133])# _LT_FILEUTILS_DEFAULTS
134
135
136# _LT_SETUP
137# ---------
138m4_defun([_LT_SETUP],
139[AC_REQUIRE([AC_CANONICAL_HOST])dnl
140AC_REQUIRE([AC_CANONICAL_BUILD])dnl
141_LT_DECL([], [host_alias], [0], [The host system])dnl
142_LT_DECL([], [host], [0])dnl
143_LT_DECL([], [host_os], [0])dnl
144dnl
145_LT_DECL([], [build_alias], [0], [The build system])dnl
146_LT_DECL([], [build], [0])dnl
147_LT_DECL([], [build_os], [0])dnl
148dnl
149AC_REQUIRE([AC_PROG_CC])dnl
150AC_REQUIRE([LT_PATH_LD])dnl
151AC_REQUIRE([LT_PATH_NM])dnl
152dnl
153AC_REQUIRE([AC_PROG_LN_S])dnl
154test -z "$LN_S" && LN_S="ln -s"
155_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
156dnl
157AC_REQUIRE([LT_CMD_MAX_LEN])dnl
158_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
159_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
160dnl
161m4_require([_LT_FILEUTILS_DEFAULTS])dnl
162m4_require([_LT_CHECK_SHELL_FEATURES])dnl
163m4_require([_LT_CMD_RELOAD])dnl
164m4_require([_LT_CHECK_MAGIC_METHOD])dnl
165m4_require([_LT_CMD_OLD_ARCHIVE])dnl
166m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
167
168_LT_CONFIG_LIBTOOL_INIT([
169# See if we are running on zsh, and set the options which allow our
170# commands through without removal of \ escapes INIT.
171if test -n "\${ZSH_VERSION+set}" ; then
172 setopt NO_GLOB_SUBST
173fi
174])
175if test -n "${ZSH_VERSION+set}" ; then
176 setopt NO_GLOB_SUBST
177fi
178
179_LT_CHECK_OBJDIR
180
181m4_require([_LT_TAG_COMPILER])dnl
182_LT_PROG_ECHO_BACKSLASH
183
184case $host_os in
185aix3*)
186 # AIX sometimes has problems with the GCC collect2 program. For some
187 # reason, if we set the COLLECT_NAMES environment variable, the problems
188 # vanish in a puff of smoke.
189 if test "X${COLLECT_NAMES+set}" != Xset; then
190 COLLECT_NAMES=
191 export COLLECT_NAMES
192 fi
193 ;;
194esac
195
196# Sed substitution that helps us do robust quoting. It backslashifies
197# metacharacters that are still active within double-quoted strings.
198sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
199
200# Same as above, but do not quote variable references.
201double_quote_subst='s/\([["`\\]]\)/\\\1/g'
202
203# Sed substitution to delay expansion of an escaped shell variable in a
204# double_quote_subst'ed string.
205delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
206
207# Sed substitution to delay expansion of an escaped single quote.
208delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
209
210# Sed substitution to avoid accidental globbing in evaled expressions
211no_glob_subst='s/\*/\\\*/g'
212
213# Global variables:
214ofile=libtool
215can_build_shared=yes
216
217# All known linkers require a `.a' archive for static linking (except MSVC,
218# which needs '.lib').
219libext=a
220
221with_gnu_ld="$lt_cv_prog_gnu_ld"
222
223old_CC="$CC"
224old_CFLAGS="$CFLAGS"
225
226# Set sane defaults for various variables
227test -z "$CC" && CC=cc
228test -z "$LTCC" && LTCC=$CC
229test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
230test -z "$LD" && LD=ld
231test -z "$ac_objext" && ac_objext=o
232
233_LT_CC_BASENAME([$compiler])
234
235# Only perform the check for file, if the check method requires it
236test -z "$MAGIC_CMD" && MAGIC_CMD=file
237case $deplibs_check_method in
238file_magic*)
239 if test "$file_magic_cmd" = '$MAGIC_CMD'; then
240 _LT_PATH_MAGIC
241 fi
242 ;;
243esac
244
245# Use C for the default configuration in the libtool script
246LT_SUPPORTED_TAG([CC])
247_LT_LANG_C_CONFIG
248_LT_LANG_DEFAULT_CONFIG
249_LT_CONFIG_COMMANDS
250])# _LT_SETUP
251
252
253# _LT_PROG_LTMAIN
254# ---------------
255# Note that this code is called both from `configure', and `config.status'
256# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably,
257# `config.status' has no value for ac_aux_dir unless we are using Automake,
258# so we pass a copy along to make sure it has a sensible value anyway.
259m4_defun([_LT_PROG_LTMAIN],
260[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
261_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
262ltmain="$ac_aux_dir/ltmain.sh"
263])# _LT_PROG_LTMAIN
264
265
266## ------------------------------------- ##
267## Accumulate code for creating libtool. ##
268## ------------------------------------- ##
269
270# So that we can recreate a full libtool script including additional
271# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
272# in macros and then make a single call at the end using the `libtool'
273# label.
274
275
276# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
277# ----------------------------------------
278# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
279m4_define([_LT_CONFIG_LIBTOOL_INIT],
280[m4_ifval([$1],
281 [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
282 [$1
283])])])
284
285# Initialize.
286m4_define([_LT_OUTPUT_LIBTOOL_INIT])
287
288
289# _LT_CONFIG_LIBTOOL([COMMANDS])
290# ------------------------------
291# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
292m4_define([_LT_CONFIG_LIBTOOL],
293[m4_ifval([$1],
294 [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
295 [$1
296])])])
297
298# Initialize.
299m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
300
301
302# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
303# -----------------------------------------------------
304m4_defun([_LT_CONFIG_SAVE_COMMANDS],
305[_LT_CONFIG_LIBTOOL([$1])
306_LT_CONFIG_LIBTOOL_INIT([$2])
307])
308
309
310# _LT_FORMAT_COMMENT([COMMENT])
311# -----------------------------
312# Add leading comment marks to the start of each line, and a trailing
313# full-stop to the whole comment if one is not present already.
314m4_define([_LT_FORMAT_COMMENT],
315[m4_ifval([$1], [
316m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
317 [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
318)])
319
320
321
322## ------------------------ ##
323## FIXME: Eliminate VARNAME ##
324## ------------------------ ##
325
326
327# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
328# -------------------------------------------------------------------
329# CONFIGNAME is the name given to the value in the libtool script.
330# VARNAME is the (base) name used in the configure script.
331# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
332# VARNAME. Any other value will be used directly.
333m4_define([_LT_DECL],
334[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
335 [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
336 [m4_ifval([$1], [$1], [$2])])
337 lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
338 m4_ifval([$4],
339 [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
340 lt_dict_add_subkey([lt_decl_dict], [$2],
341 [tagged?], [m4_ifval([$5], [yes], [no])])])
342])
343
344
345# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
346# --------------------------------------------------------
347m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
348
349
350# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
351# ------------------------------------------------
352m4_define([lt_decl_tag_varnames],
353[_lt_decl_filter([tagged?], [yes], $@)])
354
355
356# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
357# ---------------------------------------------------------
358m4_define([_lt_decl_filter],
359[m4_case([$#],
360 [0], [m4_fatal([$0: too few arguments: $#])],
361 [1], [m4_fatal([$0: too few arguments: $#: $1])],
362 [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
363 [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
364 [lt_dict_filter([lt_decl_dict], $@)])[]dnl
365])
366
367
368# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
369# --------------------------------------------------
370m4_define([lt_decl_quote_varnames],
371[_lt_decl_filter([value], [1], $@)])
372
373
374# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
375# ---------------------------------------------------
376m4_define([lt_decl_dquote_varnames],
377[_lt_decl_filter([value], [2], $@)])
378
379
380# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
381# ---------------------------------------------------
382m4_define([lt_decl_varnames_tagged],
383[m4_assert([$# <= 2])dnl
384_$0(m4_quote(m4_default([$1], [[, ]])),
385 m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
386 m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
387m4_define([_lt_decl_varnames_tagged],
388[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
389
390
391# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
392# ------------------------------------------------
393m4_define([lt_decl_all_varnames],
394[_$0(m4_quote(m4_default([$1], [[, ]])),
395 m4_if([$2], [],
396 m4_quote(lt_decl_varnames),
397 m4_quote(m4_shift($@))))[]dnl
398])
399m4_define([_lt_decl_all_varnames],
400[lt_join($@, lt_decl_varnames_tagged([$1],
401 lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
402])
403
404
405# _LT_CONFIG_STATUS_DECLARE([VARNAME])
406# ------------------------------------
407# Quote a variable value, and forward it to `config.status' so that its
408# declaration there will have the same value as in `configure'. VARNAME
409# must have a single quote delimited value for this to work.
410m4_define([_LT_CONFIG_STATUS_DECLARE],
411[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`'])
412
413
414# _LT_CONFIG_STATUS_DECLARATIONS
415# ------------------------------
416# We delimit libtool config variables with single quotes, so when
417# we write them to config.status, we have to be sure to quote all
418# embedded single quotes properly. In configure, this macro expands
419# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
420#
421# <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`'
422m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
423[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
424 [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
425
426
427# _LT_LIBTOOL_TAGS
428# ----------------
429# Output comment and list of tags supported by the script
430m4_defun([_LT_LIBTOOL_TAGS],
431[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
432available_tags="_LT_TAGS"dnl
433])
434
435
436# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
437# -----------------------------------
438# Extract the dictionary values for VARNAME (optionally with TAG) and
439# expand to a commented shell variable setting:
440#
441# # Some comment about what VAR is for.
442# visible_name=$lt_internal_name
443m4_define([_LT_LIBTOOL_DECLARE],
444[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
445 [description])))[]dnl
446m4_pushdef([_libtool_name],
447 m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
448m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
449 [0], [_libtool_name=[$]$1],
450 [1], [_libtool_name=$lt_[]$1],
451 [2], [_libtool_name=$lt_[]$1],
452 [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
453m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
454])
455
456
457# _LT_LIBTOOL_CONFIG_VARS
458# -----------------------
459# Produce commented declarations of non-tagged libtool config variables
460# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
461# script. Tagged libtool config variables (even for the LIBTOOL CONFIG
462# section) are produced by _LT_LIBTOOL_TAG_VARS.
463m4_defun([_LT_LIBTOOL_CONFIG_VARS],
464[m4_foreach([_lt_var],
465 m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
466 [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
467
468
469# _LT_LIBTOOL_TAG_VARS(TAG)
470# -------------------------
471m4_define([_LT_LIBTOOL_TAG_VARS],
472[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
473 [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
474
475
476# _LT_TAGVAR(VARNAME, [TAGNAME])
477# ------------------------------
478m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
479
480
481# _LT_CONFIG_COMMANDS
482# -------------------
483# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of
484# variables for single and double quote escaping we saved from calls
485# to _LT_DECL, we can put quote escaped variables declarations
486# into `config.status', and then the shell code to quote escape them in
487# for loops in `config.status'. Finally, any additional code accumulated
488# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
489m4_defun([_LT_CONFIG_COMMANDS],
490[AC_PROVIDE_IFELSE([LT_OUTPUT],
491 dnl If the libtool generation code has been placed in $CONFIG_LT,
492 dnl instead of duplicating it all over again into config.status,
493 dnl then we will have config.status run $CONFIG_LT later, so it
494 dnl needs to know what name is stored there:
495 [AC_CONFIG_COMMANDS([libtool],
496 [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
497 dnl If the libtool generation code is destined for config.status,
498 dnl expand the accumulated commands and init code now:
499 [AC_CONFIG_COMMANDS([libtool],
500 [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
501])#_LT_CONFIG_COMMANDS
502
503
504# Initialize.
505m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
506[
507
508# The HP-UX ksh and POSIX shell print the target directory to stdout
509# if CDPATH is set.
510(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
511
512sed_quote_subst='$sed_quote_subst'
513double_quote_subst='$double_quote_subst'
514delay_variable_subst='$delay_variable_subst'
515_LT_CONFIG_STATUS_DECLARATIONS
516LTCC='$LTCC'
517LTCFLAGS='$LTCFLAGS'
518compiler='$compiler_DEFAULT'
519
520# Quote evaled strings.
521for var in lt_decl_all_varnames([[ \
522]], lt_decl_quote_varnames); do
523 case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
524 *[[\\\\\\\`\\"\\\$]]*)
525 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
526 ;;
527 *)
528 eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
529 ;;
530 esac
531done
532
533# Double-quote double-evaled strings.
534for var in lt_decl_all_varnames([[ \
535]], lt_decl_dquote_varnames); do
536 case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
537 *[[\\\\\\\`\\"\\\$]]*)
538 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
539 ;;
540 *)
541 eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
542 ;;
543 esac
544done
545
546# Fix-up fallback echo if it was mangled by the above quoting rules.
547case \$lt_ECHO in
548*'\\\[$]0 --fallback-echo"')dnl "
549 lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\`
550 ;;
551esac
552
553_LT_OUTPUT_LIBTOOL_INIT
554])
555
556
557# LT_OUTPUT
558# ---------
559# This macro allows early generation of the libtool script (before
560# AC_OUTPUT is called), incase it is used in configure for compilation
561# tests.
562AC_DEFUN([LT_OUTPUT],
563[: ${CONFIG_LT=./config.lt}
564AC_MSG_NOTICE([creating $CONFIG_LT])
565cat >"$CONFIG_LT" <<_LTEOF
566#! $SHELL
567# Generated by $as_me.
568# Run this file to recreate a libtool stub with the current configuration.
569
570lt_cl_silent=false
571SHELL=\${CONFIG_SHELL-$SHELL}
572_LTEOF
573
574cat >>"$CONFIG_LT" <<\_LTEOF
575AS_SHELL_SANITIZE
576_AS_PREPARE
577
578exec AS_MESSAGE_FD>&1
579exec AS_MESSAGE_LOG_FD>>config.log
580{
581 echo
582 AS_BOX([Running $as_me.])
583} >&AS_MESSAGE_LOG_FD
584
585lt_cl_help="\
586\`$as_me' creates a local libtool stub from the current configuration,
587for use in further configure time tests before the real libtool is
588generated.
589
590Usage: $[0] [[OPTIONS]]
591
592 -h, --help print this help, then exit
593 -V, --version print version number, then exit
594 -q, --quiet do not print progress messages
595 -d, --debug don't remove temporary files
596
597Report bugs to <bug-libtool@gnu.org>."
598
599lt_cl_version="\
600m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
601m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
602configured by $[0], generated by m4_PACKAGE_STRING.
603
604Copyright (C) 2008 Free Software Foundation, Inc.
605This config.lt script is free software; the Free Software Foundation
606gives unlimited permision to copy, distribute and modify it."
607
608while test $[#] != 0
609do
610 case $[1] in
611 --version | --v* | -V )
612 echo "$lt_cl_version"; exit 0 ;;
613 --help | --h* | -h )
614 echo "$lt_cl_help"; exit 0 ;;
615 --debug | --d* | -d )
616 debug=: ;;
617 --quiet | --q* | --silent | --s* | -q )
618 lt_cl_silent=: ;;
619
620 -*) AC_MSG_ERROR([unrecognized option: $[1]
621Try \`$[0] --help' for more information.]) ;;
622
623 *) AC_MSG_ERROR([unrecognized argument: $[1]
624Try \`$[0] --help' for more information.]) ;;
625 esac
626 shift
627done
628
629if $lt_cl_silent; then
630 exec AS_MESSAGE_FD>/dev/null
631fi
632_LTEOF
633
634cat >>"$CONFIG_LT" <<_LTEOF
635_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
636_LTEOF
637
638cat >>"$CONFIG_LT" <<\_LTEOF
639AC_MSG_NOTICE([creating $ofile])
640_LT_OUTPUT_LIBTOOL_COMMANDS
641AS_EXIT(0)
642_LTEOF
643chmod +x "$CONFIG_LT"
644
645# configure is writing to config.log, but config.lt does its own redirection,
646# appending to config.log, which fails on DOS, as config.log is still kept
647# open by configure. Here we exec the FD to /dev/null, effectively closing
648# config.log, so it can be properly (re)opened and appended to by config.lt.
649if test "$no_create" != yes; then
650 lt_cl_success=:
651 test "$silent" = yes &&
652 lt_config_lt_args="$lt_config_lt_args --quiet"
653 exec AS_MESSAGE_LOG_FD>/dev/null
654 $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
655 exec AS_MESSAGE_LOG_FD>>config.log
656 $lt_cl_success || AS_EXIT(1)
657fi
658])# LT_OUTPUT
659
660
661# _LT_CONFIG(TAG)
662# ---------------
663# If TAG is the built-in tag, create an initial libtool script with a
664# default configuration from the untagged config vars. Otherwise add code
665# to config.status for appending the configuration named by TAG from the
666# matching tagged config vars.
667m4_defun([_LT_CONFIG],
668[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
669_LT_CONFIG_SAVE_COMMANDS([
670 m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
671 m4_if(_LT_TAG, [C], [
672 # See if we are running on zsh, and set the options which allow our
673 # commands through without removal of \ escapes.
674 if test -n "${ZSH_VERSION+set}" ; then
675 setopt NO_GLOB_SUBST
676 fi
677
678 cfgfile="${ofile}T"
679 trap "$RM \"$cfgfile\"; exit 1" 1 2 15
680 $RM "$cfgfile"
681
682 cat <<_LT_EOF >> "$cfgfile"
683#! $SHELL
684
685# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
686# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
687# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
688# NOTE: Changes made to this file will be lost: look at ltmain.sh.
689#
690_LT_COPYING
691_LT_LIBTOOL_TAGS
692
693# ### BEGIN LIBTOOL CONFIG
694_LT_LIBTOOL_CONFIG_VARS
695_LT_LIBTOOL_TAG_VARS
696# ### END LIBTOOL CONFIG
697
698_LT_EOF
699
700 case $host_os in
701 aix3*)
702 cat <<\_LT_EOF >> "$cfgfile"
703# AIX sometimes has problems with the GCC collect2 program. For some
704# reason, if we set the COLLECT_NAMES environment variable, the problems
705# vanish in a puff of smoke.
706if test "X${COLLECT_NAMES+set}" != Xset; then
707 COLLECT_NAMES=
708 export COLLECT_NAMES
709fi
710_LT_EOF
711 ;;
712 esac
713
714 _LT_PROG_LTMAIN
715
716 # We use sed instead of cat because bash on DJGPP gets confused if
717 # if finds mixed CR/LF and LF-only lines. Since sed operates in
718 # text mode, it properly converts lines to CR/LF. This bash problem
719 # is reportedly fixed, but why not run on old versions too?
720 sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
721 || (rm -f "$cfgfile"; exit 1)
722
723 _LT_PROG_XSI_SHELLFNS
724
725 sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
726 || (rm -f "$cfgfile"; exit 1)
727
728 mv -f "$cfgfile" "$ofile" ||
729 (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
730 chmod +x "$ofile"
731],
732[cat <<_LT_EOF >> "$ofile"
733
734dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
735dnl in a comment (ie after a #).
736# ### BEGIN LIBTOOL TAG CONFIG: $1
737_LT_LIBTOOL_TAG_VARS(_LT_TAG)
738# ### END LIBTOOL TAG CONFIG: $1
739_LT_EOF
740])dnl /m4_if
741],
742[m4_if([$1], [], [
743 PACKAGE='$PACKAGE'
744 VERSION='$VERSION'
745 TIMESTAMP='$TIMESTAMP'
746 RM='$RM'
747 ofile='$ofile'], [])
748])dnl /_LT_CONFIG_SAVE_COMMANDS
749])# _LT_CONFIG
750
751
752# LT_SUPPORTED_TAG(TAG)
753# ---------------------
754# Trace this macro to discover what tags are supported by the libtool
755# --tag option, using:
756# autoconf --trace 'LT_SUPPORTED_TAG:$1'
757AC_DEFUN([LT_SUPPORTED_TAG], [])
758
759
760# C support is built-in for now
761m4_define([_LT_LANG_C_enabled], [])
762m4_define([_LT_TAGS], [])
763
764
765# LT_LANG(LANG)
766# -------------
767# Enable libtool support for the given language if not already enabled.
768AC_DEFUN([LT_LANG],
769[AC_BEFORE([$0], [LT_OUTPUT])dnl
770m4_case([$1],
771 [C], [_LT_LANG(C)],
772 [C++], [_LT_LANG(CXX)],
773 [Java], [_LT_LANG(GCJ)],
774 [Fortran 77], [_LT_LANG(F77)],
775 [Fortran], [_LT_LANG(FC)],
776 [Windows Resource], [_LT_LANG(RC)],
777 [m4_ifdef([_LT_LANG_]$1[_CONFIG],
778 [_LT_LANG($1)],
779 [m4_fatal([$0: unsupported language: "$1"])])])dnl
780])# LT_LANG
781
782
783# _LT_LANG(LANGNAME)
784# ------------------
785m4_defun([_LT_LANG],
786[m4_ifdef([_LT_LANG_]$1[_enabled], [],
787 [LT_SUPPORTED_TAG([$1])dnl
788 m4_append([_LT_TAGS], [$1 ])dnl
789 m4_define([_LT_LANG_]$1[_enabled], [])dnl
790 _LT_LANG_$1_CONFIG($1)])dnl
791])# _LT_LANG
792
793
794# _LT_LANG_DEFAULT_CONFIG
795# -----------------------
796m4_defun([_LT_LANG_DEFAULT_CONFIG],
797[AC_PROVIDE_IFELSE([AC_PROG_CXX],
798 [LT_LANG(CXX)],
799 [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
800
801AC_PROVIDE_IFELSE([AC_PROG_F77],
802 [LT_LANG(F77)],
803 [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
804
805AC_PROVIDE_IFELSE([AC_PROG_FC],
806 [LT_LANG(FC)],
807 [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
808
809dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
810dnl pulling things in needlessly.
811AC_PROVIDE_IFELSE([AC_PROG_GCJ],
812 [LT_LANG(GCJ)],
813 [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
814 [LT_LANG(GCJ)],
815 [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
816 [LT_LANG(GCJ)],
817 [m4_ifdef([AC_PROG_GCJ],
818 [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
819 m4_ifdef([A][M_PROG_GCJ],
820 [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
821 m4_ifdef([LT_PROG_GCJ],
822 [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
823
824AC_PROVIDE_IFELSE([LT_PROG_RC],
825 [LT_LANG(RC)],
826 [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
827])# _LT_LANG_DEFAULT_CONFIG
828
829# Obsolete macros:
830AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
831AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
832AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
833AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
834dnl aclocal-1.4 backwards compatibility:
835dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
836dnl AC_DEFUN([AC_LIBTOOL_F77], [])
837dnl AC_DEFUN([AC_LIBTOOL_FC], [])
838dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
839
840
841# _LT_TAG_COMPILER
842# ----------------
843m4_defun([_LT_TAG_COMPILER],
844[AC_REQUIRE([AC_PROG_CC])dnl
845
846_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
847_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
848_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
849_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
850
851# If no C compiler was specified, use CC.
852LTCC=${LTCC-"$CC"}
853
854# If no C compiler flags were specified, use CFLAGS.
855LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
856
857# Allow CC to be a program name with arguments.
858compiler=$CC
859])# _LT_TAG_COMPILER
860
861
862# _LT_COMPILER_BOILERPLATE
863# ------------------------
864# Check for compiler boilerplate output or warnings with
865# the simple compiler test code.
866m4_defun([_LT_COMPILER_BOILERPLATE],
867[m4_require([_LT_DECL_SED])dnl
868ac_outfile=conftest.$ac_objext
869echo "$lt_simple_compile_test_code" >conftest.$ac_ext
870eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
871_lt_compiler_boilerplate=`cat conftest.err`
872$RM conftest*
873])# _LT_COMPILER_BOILERPLATE
874
875
876# _LT_LINKER_BOILERPLATE
877# ----------------------
878# Check for linker boilerplate output or warnings with
879# the simple link test code.
880m4_defun([_LT_LINKER_BOILERPLATE],
881[m4_require([_LT_DECL_SED])dnl
882ac_outfile=conftest.$ac_objext
883echo "$lt_simple_link_test_code" >conftest.$ac_ext
884eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
885_lt_linker_boilerplate=`cat conftest.err`
886$RM -r conftest*
887])# _LT_LINKER_BOILERPLATE
888
889# _LT_REQUIRED_DARWIN_CHECKS
890# -------------------------
891m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
892 case $host_os in
893 rhapsody* | darwin*)
894 AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
895 AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
896 AC_CHECK_TOOL([LIPO], [lipo], [:])
897 AC_CHECK_TOOL([OTOOL], [otool], [:])
898 AC_CHECK_TOOL([OTOOL64], [otool64], [:])
899 _LT_DECL([], [DSYMUTIL], [1],
900 [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
901 _LT_DECL([], [NMEDIT], [1],
902 [Tool to change global to local symbols on Mac OS X])
903 _LT_DECL([], [LIPO], [1],
904 [Tool to manipulate fat objects and archives on Mac OS X])
905 _LT_DECL([], [OTOOL], [1],
906 [ldd/readelf like tool for Mach-O binaries on Mac OS X])
907 _LT_DECL([], [OTOOL64], [1],
908 [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
909
910 AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
911 [lt_cv_apple_cc_single_mod=no
912 if test -z "${LT_MULTI_MODULE}"; then
913 # By default we will add the -single_module flag. You can override
914 # by either setting the environment variable LT_MULTI_MODULE
915 # non-empty at configure time, or by adding -multi_module to the
916 # link flags.
917 rm -rf libconftest.dylib*
918 echo "int foo(void){return 1;}" > conftest.c
919 echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
920-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
921 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
922 -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
923 _lt_result=$?
924 if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
925 lt_cv_apple_cc_single_mod=yes
926 else
927 cat conftest.err >&AS_MESSAGE_LOG_FD
928 fi
929 rm -rf libconftest.dylib*
930 rm -f conftest.*
931 fi])
932 AC_CACHE_CHECK([for -exported_symbols_list linker flag],
933 [lt_cv_ld_exported_symbols_list],
934 [lt_cv_ld_exported_symbols_list=no
935 save_LDFLAGS=$LDFLAGS
936 echo "_main" > conftest.sym
937 LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
938 AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
939 [lt_cv_ld_exported_symbols_list=yes],
940 [lt_cv_ld_exported_symbols_list=no])
941 LDFLAGS="$save_LDFLAGS"
942 ])
943 case $host_os in
944 rhapsody* | darwin1.[[012]])
945 _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
946 darwin1.*)
947 _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
948 darwin*) # darwin 5.x on
949 # if running on 10.5 or later, the deployment target defaults
950 # to the OS version, if on x86, and 10.4, the deployment
951 # target defaults to 10.4. Don't you love it?
952 case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
953 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
954 _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
955 10.[[012]]*)
956 _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
957 10.*)
958 _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
959 esac
960 ;;
961 esac
962 if test "$lt_cv_apple_cc_single_mod" = "yes"; then
963 _lt_dar_single_mod='$single_module'
964 fi
965 if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
966 _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
967 else
968 _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
969 fi
970 if test "$DSYMUTIL" != ":"; then
971 _lt_dsymutil='~$DSYMUTIL $lib || :'
972 else
973 _lt_dsymutil=
974 fi
975 ;;
976 esac
977])
978
979
980# _LT_DARWIN_LINKER_FEATURES
981# --------------------------
982# Checks for linker and compiler features on darwin
983m4_defun([_LT_DARWIN_LINKER_FEATURES],
984[
985 m4_require([_LT_REQUIRED_DARWIN_CHECKS])
986 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
987 _LT_TAGVAR(hardcode_direct, $1)=no
988 _LT_TAGVAR(hardcode_automatic, $1)=yes
989 _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
990 _LT_TAGVAR(whole_archive_flag_spec, $1)=''
991 _LT_TAGVAR(link_all_deplibs, $1)=yes
992 _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
993 case $cc_basename in
994 ifort*) _lt_dar_can_shared=yes ;;
995 *) _lt_dar_can_shared=$GCC ;;
996 esac
997 if test "$_lt_dar_can_shared" = "yes"; then
998 output_verbose_link_cmd=echo
999 _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
1000 _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
1001 _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
1002 _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
1003 m4_if([$1], [CXX],
1004[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
1005 _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
1006 _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
1007 fi
1008],[])
1009 else
1010 _LT_TAGVAR(ld_shlibs, $1)=no
1011 fi
1012])
1013
1014# _LT_SYS_MODULE_PATH_AIX
1015# -----------------------
1016# Links a minimal program and checks the executable
1017# for the system default hardcoded library path. In most cases,
1018# this is /usr/lib:/lib, but when the MPI compilers are used
1019# the location of the communication and MPI libs are included too.
1020# If we don't find anything, use the default library path according
1021# to the aix ld manual.
1022m4_defun([_LT_SYS_MODULE_PATH_AIX],
1023[m4_require([_LT_DECL_SED])dnl
1024AC_LINK_IFELSE(AC_LANG_PROGRAM,[
1025lt_aix_libpath_sed='
1026 /Import File Strings/,/^$/ {
1027 /^0/ {
1028 s/^0 *\(.*\)$/\1/
1029 p
1030 }
1031 }'
1032aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
1033# Check for a 64-bit object if we didn't find anything.
1034if test -z "$aix_libpath"; then
1035 aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
1036fi],[])
1037if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
1038])# _LT_SYS_MODULE_PATH_AIX
1039
1040
1041# _LT_SHELL_INIT(ARG)
1042# -------------------
1043m4_define([_LT_SHELL_INIT],
1044[ifdef([AC_DIVERSION_NOTICE],
1045 [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
1046 [AC_DIVERT_PUSH(NOTICE)])
1047$1
1048AC_DIVERT_POP
1049])# _LT_SHELL_INIT
1050
1051
1052# _LT_PROG_ECHO_BACKSLASH
1053# -----------------------
1054# Add some code to the start of the generated configure script which
1055# will find an echo command which doesn't interpret backslashes.
1056m4_defun([_LT_PROG_ECHO_BACKSLASH],
1057[_LT_SHELL_INIT([
1058# Check that we are running under the correct shell.
1059SHELL=${CONFIG_SHELL-/bin/sh}
1060
1061case X$lt_ECHO in
1062X*--fallback-echo)
1063 # Remove one level of quotation (which was required for Make).
1064 ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
1065 ;;
1066esac
1067
1068ECHO=${lt_ECHO-echo}
1069if test "X[$]1" = X--no-reexec; then
1070 # Discard the --no-reexec flag, and continue.
1071 shift
1072elif test "X[$]1" = X--fallback-echo; then
1073 # Avoid inline document here, it may be left over
1074 :
1075elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
1076 # Yippee, $ECHO works!
1077 :
1078else
1079 # Restart under the correct shell.
1080 exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
1081fi
1082
1083if test "X[$]1" = X--fallback-echo; then
1084 # used as fallback echo
1085 shift
1086 cat <<_LT_EOF
1087[$]*
1088_LT_EOF
1089 exit 0
1090fi
1091
1092# The HP-UX ksh and POSIX shell print the target directory to stdout
1093# if CDPATH is set.
1094(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
1095
1096if test -z "$lt_ECHO"; then
1097 if test "X${echo_test_string+set}" != Xset; then
1098 # find a string as large as possible, as long as the shell can cope with it
1099 for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
1100 # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
1101 if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
1102 { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
1103 then
1104 break
1105 fi
1106 done
1107 fi
1108
1109 if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
1110 echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
1111 test "X$echo_testing_string" = "X$echo_test_string"; then
1112 :
1113 else
1114 # The Solaris, AIX, and Digital Unix default echo programs unquote
1115 # backslashes. This makes it impossible to quote backslashes using
1116 # echo "$something" | sed 's/\\/\\\\/g'
1117 #
1118 # So, first we look for a working echo in the user's PATH.
1119
1120 lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
1121 for dir in $PATH /usr/ucb; do
1122 IFS="$lt_save_ifs"
1123 if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
1124 test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
1125 echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
1126 test "X$echo_testing_string" = "X$echo_test_string"; then
1127 ECHO="$dir/echo"
1128 break
1129 fi
1130 done
1131 IFS="$lt_save_ifs"
1132
1133 if test "X$ECHO" = Xecho; then
1134 # We didn't find a better echo, so look for alternatives.
1135 if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
1136 echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
1137 test "X$echo_testing_string" = "X$echo_test_string"; then
1138 # This shell has a builtin print -r that does the trick.
1139 ECHO='print -r'
1140 elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
1141 test "X$CONFIG_SHELL" != X/bin/ksh; then
1142 # If we have ksh, try running configure again with it.
1143 ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
1144 export ORIGINAL_CONFIG_SHELL
1145 CONFIG_SHELL=/bin/ksh
1146 export CONFIG_SHELL
1147 exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
1148 else
1149 # Try using printf.
1150 ECHO='printf %s\n'
1151 if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
1152 echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
1153 test "X$echo_testing_string" = "X$echo_test_string"; then
1154 # Cool, printf works
1155 :
1156 elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
1157 test "X$echo_testing_string" = 'X\t' &&
1158 echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
1159 test "X$echo_testing_string" = "X$echo_test_string"; then
1160 CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
1161 export CONFIG_SHELL
1162 SHELL="$CONFIG_SHELL"
1163 export SHELL
1164 ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
1165 elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
1166 test "X$echo_testing_string" = 'X\t' &&
1167 echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
1168 test "X$echo_testing_string" = "X$echo_test_string"; then
1169 ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
1170 else
1171 # maybe with a smaller string...
1172 prev=:
1173
1174 for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
1175 if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
1176 then
1177 break
1178 fi
1179 prev="$cmd"
1180 done
1181
1182 if test "$prev" != 'sed 50q "[$]0"'; then
1183 echo_test_string=`eval $prev`
1184 export echo_test_string
1185 exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
1186 else
1187 # Oops. We lost completely, so just stick with echo.
1188 ECHO=echo
1189 fi
1190 fi
1191 fi
1192 fi
1193 fi
1194fi
1195
1196# Copy echo and quote the copy suitably for passing to libtool from
1197# the Makefile, instead of quoting the original, which is used later.
1198lt_ECHO=$ECHO
1199if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
1200 lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
1201fi
1202
1203AC_SUBST(lt_ECHO)
1204])
1205_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
1206_LT_DECL([], [ECHO], [1],
1207 [An echo program that does not interpret backslashes])
1208])# _LT_PROG_ECHO_BACKSLASH
1209
1210
1211# _LT_ENABLE_LOCK
1212# ---------------
1213m4_defun([_LT_ENABLE_LOCK],
1214[AC_ARG_ENABLE([libtool-lock],
1215 [AS_HELP_STRING([--disable-libtool-lock],
1216 [avoid locking (might break parallel builds)])])
1217test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
1218
1219# Some flags need to be propagated to the compiler or linker for good
1220# libtool support.
1221case $host in
1222ia64-*-hpux*)
1223 # Find out which ABI we are using.
1224 echo 'int i;' > conftest.$ac_ext
1225 if AC_TRY_EVAL(ac_compile); then
1226 case `/usr/bin/file conftest.$ac_objext` in
1227 *ELF-32*)
1228 HPUX_IA64_MODE="32"
1229 ;;
1230 *ELF-64*)
1231 HPUX_IA64_MODE="64"
1232 ;;
1233 esac
1234 fi
1235 rm -rf conftest*
1236 ;;
1237*-*-irix6*)
1238 # Find out which ABI we are using.
1239 echo '[#]line __oline__ "configure"' > conftest.$ac_ext
1240 if AC_TRY_EVAL(ac_compile); then
1241 if test "$lt_cv_prog_gnu_ld" = yes; then
1242 case `/usr/bin/file conftest.$ac_objext` in
1243 *32-bit*)
1244 LD="${LD-ld} -melf32bsmip"
1245 ;;
1246 *N32*)
1247 LD="${LD-ld} -melf32bmipn32"
1248 ;;
1249 *64-bit*)
1250 LD="${LD-ld} -melf64bmip"
1251 ;;
1252 esac
1253 else
1254 case `/usr/bin/file conftest.$ac_objext` in
1255 *32-bit*)
1256 LD="${LD-ld} -32"
1257 ;;
1258 *N32*)
1259 LD="${LD-ld} -n32"
1260 ;;
1261 *64-bit*)
1262 LD="${LD-ld} -64"
1263 ;;
1264 esac
1265 fi
1266 fi
1267 rm -rf conftest*
1268 ;;
1269
1270x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
1271s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
1272 # Find out which ABI we are using.
1273 echo 'int i;' > conftest.$ac_ext
1274 if AC_TRY_EVAL(ac_compile); then
1275 case `/usr/bin/file conftest.o` in
1276 *32-bit*)
1277 case $host in
1278 x86_64-*kfreebsd*-gnu)
1279 LD="${LD-ld} -m elf_i386_fbsd"
1280 ;;
1281 x86_64-*linux*)
1282 LD="${LD-ld} -m elf_i386"
1283 ;;
1284 ppc64-*linux*|powerpc64-*linux*)
1285 LD="${LD-ld} -m elf32ppclinux"
1286 ;;
1287 s390x-*linux*)
1288 LD="${LD-ld} -m elf_s390"
1289 ;;
1290 sparc64-*linux*)
1291 LD="${LD-ld} -m elf32_sparc"
1292 ;;
1293 esac
1294 ;;
1295 *64-bit*)
1296 case $host in
1297 x86_64-*kfreebsd*-gnu)
1298 LD="${LD-ld} -m elf_x86_64_fbsd"
1299 ;;
1300 x86_64-*linux*)
1301 LD="${LD-ld} -m elf_x86_64"
1302 ;;
1303 ppc*-*linux*|powerpc*-*linux*)
1304 LD="${LD-ld} -m elf64ppc"
1305 ;;
1306 s390*-*linux*|s390*-*tpf*)
1307 LD="${LD-ld} -m elf64_s390"
1308 ;;
1309 sparc*-*linux*)
1310 LD="${LD-ld} -m elf64_sparc"
1311 ;;
1312 esac
1313 ;;
1314 esac
1315 fi
1316 rm -rf conftest*
1317 ;;
1318
1319*-*-sco3.2v5*)
1320 # On SCO OpenServer 5, we need -belf to get full-featured binaries.
1321 SAVE_CFLAGS="$CFLAGS"
1322 CFLAGS="$CFLAGS -belf"
1323 AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
1324 [AC_LANG_PUSH(C)
1325 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
1326 AC_LANG_POP])
1327 if test x"$lt_cv_cc_needs_belf" != x"yes"; then
1328 # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
1329 CFLAGS="$SAVE_CFLAGS"
1330 fi
1331 ;;
1332sparc*-*solaris*)
1333 # Find out which ABI we are using.
1334 echo 'int i;' > conftest.$ac_ext
1335 if AC_TRY_EVAL(ac_compile); then
1336 case `/usr/bin/file conftest.o` in
1337 *64-bit*)
1338 case $lt_cv_prog_gnu_ld in
1339 yes*) LD="${LD-ld} -m elf64_sparc" ;;
1340 *)
1341 if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
1342 LD="${LD-ld} -64"
1343 fi
1344 ;;
1345 esac
1346 ;;
1347 esac
1348 fi
1349 rm -rf conftest*
1350 ;;
1351esac
1352
1353need_locks="$enable_libtool_lock"
1354])# _LT_ENABLE_LOCK
1355
1356
1357# _LT_CMD_OLD_ARCHIVE
1358# -------------------
1359m4_defun([_LT_CMD_OLD_ARCHIVE],
1360[AC_CHECK_TOOL(AR, ar, false)
1361test -z "$AR" && AR=ar
1362test -z "$AR_FLAGS" && AR_FLAGS=cru
1363_LT_DECL([], [AR], [1], [The archiver])
1364_LT_DECL([], [AR_FLAGS], [1])
1365
1366AC_CHECK_TOOL(STRIP, strip, :)
1367test -z "$STRIP" && STRIP=:
1368_LT_DECL([], [STRIP], [1], [A symbol stripping program])
1369
1370AC_CHECK_TOOL(RANLIB, ranlib, :)
1371test -z "$RANLIB" && RANLIB=:
1372_LT_DECL([], [RANLIB], [1],
1373 [Commands used to install an old-style archive])
1374
1375# Determine commands to create old-style static archives.
1376old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
1377old_postinstall_cmds='chmod 644 $oldlib'
1378old_postuninstall_cmds=
1379
1380if test -n "$RANLIB"; then
1381 case $host_os in
1382 openbsd*)
1383 old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
1384 ;;
1385 *)
1386 old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
1387 ;;
1388 esac
1389 old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
1390fi
1391_LT_DECL([], [old_postinstall_cmds], [2])
1392_LT_DECL([], [old_postuninstall_cmds], [2])
1393_LT_TAGDECL([], [old_archive_cmds], [2],
1394 [Commands used to build an old-style archive])
1395])# _LT_CMD_OLD_ARCHIVE
1396
1397
1398# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
1399# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
1400# ----------------------------------------------------------------
1401# Check whether the given compiler option works
1402AC_DEFUN([_LT_COMPILER_OPTION],
1403[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
1404m4_require([_LT_DECL_SED])dnl
1405AC_CACHE_CHECK([$1], [$2],
1406 [$2=no
1407 m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
1408 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
1409 lt_compiler_flag="$3"
1410 # Insert the option either (1) after the last *FLAGS variable, or
1411 # (2) before a word containing "conftest.", or (3) at the end.
1412 # Note that $ac_compile itself does not contain backslashes and begins
1413 # with a dollar sign (not a hyphen), so the echo should work correctly.
1414 # The option is referenced via a variable to avoid confusing sed.
1415 lt_compile=`echo "$ac_compile" | $SED \
1416 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
1417 -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
1418 -e 's:$: $lt_compiler_flag:'`
1419 (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
1420 (eval "$lt_compile" 2>conftest.err)
1421 ac_status=$?
1422 cat conftest.err >&AS_MESSAGE_LOG_FD
1423 echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
1424 if (exit $ac_status) && test -s "$ac_outfile"; then
1425 # The compiler can only warn and ignore the option if not recognized
1426 # So say no if there are warnings other than the usual output.
1427 $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
1428 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
1429 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
1430 $2=yes
1431 fi
1432 fi
1433 $RM conftest*
1434])
1435
1436if test x"[$]$2" = xyes; then
1437 m4_if([$5], , :, [$5])
1438else
1439 m4_if([$6], , :, [$6])
1440fi
1441])# _LT_COMPILER_OPTION
1442
1443# Old name:
1444AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
1445dnl aclocal-1.4 backwards compatibility:
1446dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
1447
1448
1449# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
1450# [ACTION-SUCCESS], [ACTION-FAILURE])
1451# ----------------------------------------------------
1452# Check whether the given linker option works
1453AC_DEFUN([_LT_LINKER_OPTION],
1454[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
1455m4_require([_LT_DECL_SED])dnl
1456AC_CACHE_CHECK([$1], [$2],
1457 [$2=no
1458 save_LDFLAGS="$LDFLAGS"
1459 LDFLAGS="$LDFLAGS $3"
1460 echo "$lt_simple_link_test_code" > conftest.$ac_ext
1461 if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
1462 # The linker can only warn and ignore the option if not recognized
1463 # So say no if there are warnings
1464 if test -s conftest.err; then
1465 # Append any errors to the config.log.
1466 cat conftest.err 1>&AS_MESSAGE_LOG_FD
1467 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
1468 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
1469 if diff conftest.exp conftest.er2 >/dev/null; then
1470 $2=yes
1471 fi
1472 else
1473 $2=yes
1474 fi
1475 fi
1476 $RM -r conftest*
1477 LDFLAGS="$save_LDFLAGS"
1478])
1479
1480if test x"[$]$2" = xyes; then
1481 m4_if([$4], , :, [$4])
1482else
1483 m4_if([$5], , :, [$5])
1484fi
1485])# _LT_LINKER_OPTION
1486
1487# Old name:
1488AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
1489dnl aclocal-1.4 backwards compatibility:
1490dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
1491
1492
1493# LT_CMD_MAX_LEN
1494#---------------
1495AC_DEFUN([LT_CMD_MAX_LEN],
1496[AC_REQUIRE([AC_CANONICAL_HOST])dnl
1497# find the maximum length of command line arguments
1498AC_MSG_CHECKING([the maximum length of command line arguments])
1499AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
1500 i=0
1501 teststring="ABCD"
1502
1503 case $build_os in
1504 msdosdjgpp*)
1505 # On DJGPP, this test can blow up pretty badly due to problems in libc
1506 # (any single argument exceeding 2000 bytes causes a buffer overrun
1507 # during glob expansion). Even if it were fixed, the result of this
1508 # check would be larger than it should be.
1509 lt_cv_sys_max_cmd_len=12288; # 12K is about right
1510 ;;
1511
1512 gnu*)
1513 # Under GNU Hurd, this test is not required because there is
1514 # no limit to the length of command line arguments.
1515 # Libtool will interpret -1 as no limit whatsoever
1516 lt_cv_sys_max_cmd_len=-1;
1517 ;;
1518
1519 cygwin* | mingw* | cegcc*)
1520 # On Win9x/ME, this test blows up -- it succeeds, but takes
1521 # about 5 minutes as the teststring grows exponentially.
1522 # Worse, since 9x/ME are not pre-emptively multitasking,
1523 # you end up with a "frozen" computer, even though with patience
1524 # the test eventually succeeds (with a max line length of 256k).
1525 # Instead, let's just punt: use the minimum linelength reported by
1526 # all of the supported platforms: 8192 (on NT/2K/XP).
1527 lt_cv_sys_max_cmd_len=8192;
1528 ;;
1529
1530 amigaos*)
1531 # On AmigaOS with pdksh, this test takes hours, literally.
1532 # So we just punt and use a minimum line length of 8192.
1533 lt_cv_sys_max_cmd_len=8192;
1534 ;;
1535
1536 netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
1537 # This has been around since 386BSD, at least. Likely further.
1538 if test -x /sbin/sysctl; then
1539 lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
1540 elif test -x /usr/sbin/sysctl; then
1541 lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
1542 else
1543 lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
1544 fi
1545 # And add a safety zone
1546 lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
1547 lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
1548 ;;
1549
1550 interix*)
1551 # We know the value 262144 and hardcode it with a safety zone (like BSD)
1552 lt_cv_sys_max_cmd_len=196608
1553 ;;
1554
1555 osf*)
1556 # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
1557 # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
1558 # nice to cause kernel panics so lets avoid the loop below.
1559 # First set a reasonable default.
1560 lt_cv_sys_max_cmd_len=16384
1561 #
1562 if test -x /sbin/sysconfig; then
1563 case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
1564 *1*) lt_cv_sys_max_cmd_len=-1 ;;
1565 esac
1566 fi
1567 ;;
1568 sco3.2v5*)
1569 lt_cv_sys_max_cmd_len=102400
1570 ;;
1571 sysv5* | sco5v6* | sysv4.2uw2*)
1572 kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
1573 if test -n "$kargmax"; then
1574 lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'`
1575 else
1576 lt_cv_sys_max_cmd_len=32768
1577 fi
1578 ;;
1579 *)
1580 lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
1581 if test -n "$lt_cv_sys_max_cmd_len"; then
1582 lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
1583 lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
1584 else
1585 # Make teststring a little bigger before we do anything with it.
1586 # a 1K string should be a reasonable start.
1587 for i in 1 2 3 4 5 6 7 8 ; do
1588 teststring=$teststring$teststring
1589 done
1590 SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
1591 # If test is not a shell built-in, we'll probably end up computing a
1592 # maximum length that is only half of the actual maximum length, but
1593 # we can't tell.
1594 while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
1595 = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
1596 test $i != 17 # 1/2 MB should be enough
1597 do
1598 i=`expr $i + 1`
1599 teststring=$teststring$teststring
1600 done
1601 # Only check the string length outside the loop.
1602 lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
1603 teststring=
1604 # Add a significant safety factor because C++ compilers can tack on
1605 # massive amounts of additional arguments before passing them to the
1606 # linker. It appears as though 1/2 is a usable value.
1607 lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
1608 fi
1609 ;;
1610 esac
1611])
1612if test -n $lt_cv_sys_max_cmd_len ; then
1613 AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
1614else
1615 AC_MSG_RESULT(none)
1616fi
1617max_cmd_len=$lt_cv_sys_max_cmd_len
1618_LT_DECL([], [max_cmd_len], [0],
1619 [What is the maximum length of a command?])
1620])# LT_CMD_MAX_LEN
1621
1622# Old name:
1623AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
1624dnl aclocal-1.4 backwards compatibility:
1625dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
1626
1627
1628# _LT_HEADER_DLFCN
1629# ----------------
1630m4_defun([_LT_HEADER_DLFCN],
1631[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
1632])# _LT_HEADER_DLFCN
1633
1634
1635# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
1636# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
1637# ----------------------------------------------------------------
1638m4_defun([_LT_TRY_DLOPEN_SELF],
1639[m4_require([_LT_HEADER_DLFCN])dnl
1640if test "$cross_compiling" = yes; then :
1641 [$4]
1642else
1643 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
1644 lt_status=$lt_dlunknown
1645 cat > conftest.$ac_ext <<_LT_EOF
1646[#line __oline__ "configure"
1647#include "confdefs.h"
1648
1649#if HAVE_DLFCN_H
1650#include <dlfcn.h>
1651#endif
1652
1653#include <stdio.h>
1654
1655#ifdef RTLD_GLOBAL
1656# define LT_DLGLOBAL RTLD_GLOBAL
1657#else
1658# ifdef DL_GLOBAL
1659# define LT_DLGLOBAL DL_GLOBAL
1660# else
1661# define LT_DLGLOBAL 0
1662# endif
1663#endif
1664
1665/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
1666 find out it does not work in some platform. */
1667#ifndef LT_DLLAZY_OR_NOW
1668# ifdef RTLD_LAZY
1669# define LT_DLLAZY_OR_NOW RTLD_LAZY
1670# else
1671# ifdef DL_LAZY
1672# define LT_DLLAZY_OR_NOW DL_LAZY
1673# else
1674# ifdef RTLD_NOW
1675# define LT_DLLAZY_OR_NOW RTLD_NOW
1676# else
1677# ifdef DL_NOW
1678# define LT_DLLAZY_OR_NOW DL_NOW
1679# else
1680# define LT_DLLAZY_OR_NOW 0
1681# endif
1682# endif
1683# endif
1684# endif
1685#endif
1686
1687void fnord() { int i=42;}
1688int main ()
1689{
1690 void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
1691 int status = $lt_dlunknown;
1692
1693 if (self)
1694 {
1695 if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
1696 else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
1697 /* dlclose (self); */
1698 }
1699 else
1700 puts (dlerror ());
1701
1702 return status;
1703}]
1704_LT_EOF
1705 if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
1706 (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
1707 lt_status=$?
1708 case x$lt_status in
1709 x$lt_dlno_uscore) $1 ;;
1710 x$lt_dlneed_uscore) $2 ;;
1711 x$lt_dlunknown|x*) $3 ;;
1712 esac
1713 else :
1714 # compilation failed
1715 $3
1716 fi
1717fi
1718rm -fr conftest*
1719])# _LT_TRY_DLOPEN_SELF
1720
1721
1722# LT_SYS_DLOPEN_SELF
1723# ------------------
1724AC_DEFUN([LT_SYS_DLOPEN_SELF],
1725[m4_require([_LT_HEADER_DLFCN])dnl
1726if test "x$enable_dlopen" != xyes; then
1727 enable_dlopen=unknown
1728 enable_dlopen_self=unknown
1729 enable_dlopen_self_static=unknown
1730else
1731 lt_cv_dlopen=no
1732 lt_cv_dlopen_libs=
1733
1734 case $host_os in
1735 beos*)
1736 lt_cv_dlopen="load_add_on"
1737 lt_cv_dlopen_libs=
1738 lt_cv_dlopen_self=yes
1739 ;;
1740
1741 mingw* | pw32* | cegcc*)
1742 lt_cv_dlopen="LoadLibrary"
1743 lt_cv_dlopen_libs=
1744 ;;
1745
1746 cygwin*)
1747 lt_cv_dlopen="dlopen"
1748 lt_cv_dlopen_libs=
1749 ;;
1750
1751 darwin*)
1752 # if libdl is installed we need to link against it
1753 AC_CHECK_LIB([dl], [dlopen],
1754 [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
1755 lt_cv_dlopen="dyld"
1756 lt_cv_dlopen_libs=
1757 lt_cv_dlopen_self=yes
1758 ])
1759 ;;
1760
1761 *)
1762 AC_CHECK_FUNC([shl_load],
1763 [lt_cv_dlopen="shl_load"],
1764 [AC_CHECK_LIB([dld], [shl_load],
1765 [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
1766 [AC_CHECK_FUNC([dlopen],
1767 [lt_cv_dlopen="dlopen"],
1768 [AC_CHECK_LIB([dl], [dlopen],
1769 [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
1770 [AC_CHECK_LIB([svld], [dlopen],
1771 [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
1772 [AC_CHECK_LIB([dld], [dld_link],
1773 [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
1774 ])
1775 ])
1776 ])
1777 ])
1778 ])
1779 ;;
1780 esac
1781
1782 if test "x$lt_cv_dlopen" != xno; then
1783 enable_dlopen=yes
1784 else
1785 enable_dlopen=no
1786 fi
1787
1788 case $lt_cv_dlopen in
1789 dlopen)
1790 save_CPPFLAGS="$CPPFLAGS"
1791 test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
1792
1793 save_LDFLAGS="$LDFLAGS"
1794 wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
1795
1796 save_LIBS="$LIBS"
1797 LIBS="$lt_cv_dlopen_libs $LIBS"
1798
1799 AC_CACHE_CHECK([whether a program can dlopen itself],
1800 lt_cv_dlopen_self, [dnl
1801 _LT_TRY_DLOPEN_SELF(
1802 lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
1803 lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
1804 ])
1805
1806 if test "x$lt_cv_dlopen_self" = xyes; then
1807 wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
1808 AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
1809 lt_cv_dlopen_self_static, [dnl
1810 _LT_TRY_DLOPEN_SELF(
1811 lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
1812 lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
1813 ])
1814 fi
1815
1816 CPPFLAGS="$save_CPPFLAGS"
1817 LDFLAGS="$save_LDFLAGS"
1818 LIBS="$save_LIBS"
1819 ;;
1820 esac
1821
1822 case $lt_cv_dlopen_self in
1823 yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
1824 *) enable_dlopen_self=unknown ;;
1825 esac
1826
1827 case $lt_cv_dlopen_self_static in
1828 yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
1829 *) enable_dlopen_self_static=unknown ;;
1830 esac
1831fi
1832_LT_DECL([dlopen_support], [enable_dlopen], [0],
1833 [Whether dlopen is supported])
1834_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
1835 [Whether dlopen of programs is supported])
1836_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
1837 [Whether dlopen of statically linked programs is supported])
1838])# LT_SYS_DLOPEN_SELF
1839
1840# Old name:
1841AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
1842dnl aclocal-1.4 backwards compatibility:
1843dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
1844
1845
1846# _LT_COMPILER_C_O([TAGNAME])
1847# ---------------------------
1848# Check to see if options -c and -o are simultaneously supported by compiler.
1849# This macro does not hard code the compiler like AC_PROG_CC_C_O.
1850m4_defun([_LT_COMPILER_C_O],
1851[m4_require([_LT_DECL_SED])dnl
1852m4_require([_LT_FILEUTILS_DEFAULTS])dnl
1853m4_require([_LT_TAG_COMPILER])dnl
1854AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
1855 [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
1856 [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
1857 $RM -r conftest 2>/dev/null
1858 mkdir conftest
1859 cd conftest
1860 mkdir out
1861 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
1862
1863 lt_compiler_flag="-o out/conftest2.$ac_objext"
1864 # Insert the option either (1) after the last *FLAGS variable, or
1865 # (2) before a word containing "conftest.", or (3) at the end.
1866 # Note that $ac_compile itself does not contain backslashes and begins
1867 # with a dollar sign (not a hyphen), so the echo should work correctly.
1868 lt_compile=`echo "$ac_compile" | $SED \
1869 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
1870 -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
1871 -e 's:$: $lt_compiler_flag:'`
1872 (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
1873 (eval "$lt_compile" 2>out/conftest.err)
1874 ac_status=$?
1875 cat out/conftest.err >&AS_MESSAGE_LOG_FD
1876 echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
1877 if (exit $ac_status) && test -s out/conftest2.$ac_objext
1878 then
1879 # The compiler can only warn and ignore the option if not recognized
1880 # So say no if there are warnings
1881 $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
1882 $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
1883 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
1884 _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
1885 fi
1886 fi
1887 chmod u+w . 2>&AS_MESSAGE_LOG_FD
1888 $RM conftest*
1889 # SGI C++ compiler will create directory out/ii_files/ for
1890 # template instantiation
1891 test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
1892 $RM out/* && rmdir out
1893 cd ..
1894 $RM -r conftest
1895 $RM conftest*
1896])
1897_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
1898 [Does compiler simultaneously support -c and -o options?])
1899])# _LT_COMPILER_C_O
1900
1901
1902# _LT_COMPILER_FILE_LOCKS([TAGNAME])
1903# ----------------------------------
1904# Check to see if we can do hard links to lock some files if needed
1905m4_defun([_LT_COMPILER_FILE_LOCKS],
1906[m4_require([_LT_ENABLE_LOCK])dnl
1907m4_require([_LT_FILEUTILS_DEFAULTS])dnl
1908_LT_COMPILER_C_O([$1])
1909
1910hard_links="nottested"
1911if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
1912 # do not overwrite the value of need_locks provided by the user
1913 AC_MSG_CHECKING([if we can lock with hard links])
1914 hard_links=yes
1915 $RM conftest*
1916 ln conftest.a conftest.b 2>/dev/null && hard_links=no
1917 touch conftest.a
1918 ln conftest.a conftest.b 2>&5 || hard_links=no
1919 ln conftest.a conftest.b 2>/dev/null && hard_links=no
1920 AC_MSG_RESULT([$hard_links])
1921 if test "$hard_links" = no; then
1922 AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
1923 need_locks=warn
1924 fi
1925else
1926 need_locks=no
1927fi
1928_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
1929])# _LT_COMPILER_FILE_LOCKS
1930
1931
1932# _LT_CHECK_OBJDIR
1933# ----------------
1934m4_defun([_LT_CHECK_OBJDIR],
1935[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
1936[rm -f .libs 2>/dev/null
1937mkdir .libs 2>/dev/null
1938if test -d .libs; then
1939 lt_cv_objdir=.libs
1940else
1941 # MS-DOS does not allow filenames that begin with a dot.
1942 lt_cv_objdir=_libs
1943fi
1944rmdir .libs 2>/dev/null])
1945objdir=$lt_cv_objdir
1946_LT_DECL([], [objdir], [0],
1947 [The name of the directory that contains temporary libtool files])dnl
1948m4_pattern_allow([LT_OBJDIR])dnl
1949AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
1950 [Define to the sub-directory in which libtool stores uninstalled libraries.])
1951])# _LT_CHECK_OBJDIR
1952
1953
1954# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
1955# --------------------------------------
1956# Check hardcoding attributes.
1957m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
1958[AC_MSG_CHECKING([how to hardcode library paths into programs])
1959_LT_TAGVAR(hardcode_action, $1)=
1960if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
1961 test -n "$_LT_TAGVAR(runpath_var, $1)" ||
1962 test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
1963
1964 # We can hardcode non-existent directories.
1965 if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
1966 # If the only mechanism to avoid hardcoding is shlibpath_var, we
1967 # have to relink, otherwise we might link with an installed library
1968 # when we should be linking with a yet-to-be-installed one
1969 ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
1970 test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
1971 # Linking always hardcodes the temporary library directory.
1972 _LT_TAGVAR(hardcode_action, $1)=relink
1973 else
1974 # We can link without hardcoding, and we can hardcode nonexisting dirs.
1975 _LT_TAGVAR(hardcode_action, $1)=immediate
1976 fi
1977else
1978 # We cannot hardcode anything, or else we can only hardcode existing
1979 # directories.
1980 _LT_TAGVAR(hardcode_action, $1)=unsupported
1981fi
1982AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
1983
1984if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
1985 test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
1986 # Fast installation is not supported
1987 enable_fast_install=no
1988elif test "$shlibpath_overrides_runpath" = yes ||
1989 test "$enable_shared" = no; then
1990 # Fast installation is not necessary
1991 enable_fast_install=needless
1992fi
1993_LT_TAGDECL([], [hardcode_action], [0],
1994 [How to hardcode a shared library path into an executable])
1995])# _LT_LINKER_HARDCODE_LIBPATH
1996
1997
1998# _LT_CMD_STRIPLIB
1999# ----------------
2000m4_defun([_LT_CMD_STRIPLIB],
2001[m4_require([_LT_DECL_EGREP])
2002striplib=
2003old_striplib=
2004AC_MSG_CHECKING([whether stripping libraries is possible])
2005if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
2006 test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
2007 test -z "$striplib" && striplib="$STRIP --strip-unneeded"
2008 AC_MSG_RESULT([yes])
2009else
2010# FIXME - insert some real tests, host_os isn't really good enough
2011 case $host_os in
2012 darwin*)
2013 if test -n "$STRIP" ; then
2014 striplib="$STRIP -x"
2015 old_striplib="$STRIP -S"
2016 AC_MSG_RESULT([yes])
2017 else
2018 AC_MSG_RESULT([no])
2019 fi
2020 ;;
2021 *)
2022 AC_MSG_RESULT([no])
2023 ;;
2024 esac
2025fi
2026_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
2027_LT_DECL([], [striplib], [1])
2028])# _LT_CMD_STRIPLIB
2029
2030
2031# _LT_SYS_DYNAMIC_LINKER([TAG])
2032# -----------------------------
2033# PORTME Fill in your ld.so characteristics
2034m4_defun([_LT_SYS_DYNAMIC_LINKER],
2035[AC_REQUIRE([AC_CANONICAL_HOST])dnl
2036m4_require([_LT_DECL_EGREP])dnl
2037m4_require([_LT_FILEUTILS_DEFAULTS])dnl
2038m4_require([_LT_DECL_OBJDUMP])dnl
2039m4_require([_LT_DECL_SED])dnl
2040AC_MSG_CHECKING([dynamic linker characteristics])
2041m4_if([$1],
2042 [], [
2043if test "$GCC" = yes; then
2044 case $host_os in
2045 darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
2046 *) lt_awk_arg="/^libraries:/" ;;
2047 esac
2048 lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
2049 if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
2050 # if the path contains ";" then we assume it to be the separator
2051 # otherwise default to the standard path separator (i.e. ":") - it is
2052 # assumed that no part of a normal pathname contains ";" but that should
2053 # okay in the real world where ";" in dirpaths is itself problematic.
2054 lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
2055 else
2056 lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
2057 fi
2058 # Ok, now we have the path, separated by spaces, we can step through it
2059 # and add multilib dir if necessary.
2060 lt_tmp_lt_search_path_spec=
2061 lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
2062 for lt_sys_path in $lt_search_path_spec; do
2063 if test -d "$lt_sys_path/$lt_multi_os_dir"; then
2064 lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
2065 else
2066 test -d "$lt_sys_path" && \
2067 lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
2068 fi
2069 done
2070 lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
2071BEGIN {RS=" "; FS="/|\n";} {
2072 lt_foo="";
2073 lt_count=0;
2074 for (lt_i = NF; lt_i > 0; lt_i--) {
2075 if ($lt_i != "" && $lt_i != ".") {
2076 if ($lt_i == "..") {
2077 lt_count++;
2078 } else {
2079 if (lt_count == 0) {
2080 lt_foo="/" $lt_i lt_foo;
2081 } else {
2082 lt_count--;
2083 }
2084 }
2085 }
2086 }
2087 if (lt_foo != "") { lt_freq[[lt_foo]]++; }
2088 if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
2089}'`
2090 sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
2091else
2092 sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
2093fi])
2094library_names_spec=
2095libname_spec='lib$name'
2096soname_spec=
2097shrext_cmds=".so"
2098postinstall_cmds=
2099postuninstall_cmds=
2100finish_cmds=
2101finish_eval=
2102shlibpath_var=
2103shlibpath_overrides_runpath=unknown
2104version_type=none
2105dynamic_linker="$host_os ld.so"
2106sys_lib_dlsearch_path_spec="/lib /usr/lib"
2107need_lib_prefix=unknown
2108hardcode_into_libs=no
2109
2110# when you set need_version to no, make sure it does not cause -set_version
2111# flags to be left without arguments
2112need_version=unknown
2113
2114case $host_os in
2115aix3*)
2116 version_type=linux
2117 library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
2118 shlibpath_var=LIBPATH
2119
2120 # AIX 3 has no versioning support, so we append a major version to the name.
2121 soname_spec='${libname}${release}${shared_ext}$major'
2122 ;;
2123
2124aix[[4-9]]*)
2125 version_type=linux
2126 need_lib_prefix=no
2127 need_version=no
2128 hardcode_into_libs=yes
2129 if test "$host_cpu" = ia64; then
2130 # AIX 5 supports IA64
2131 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
2132 shlibpath_var=LD_LIBRARY_PATH
2133 else
2134 # With GCC up to 2.95.x, collect2 would create an import file
2135 # for dependence libraries. The import file would start with
2136 # the line `#! .'. This would cause the generated library to
2137 # depend on `.', always an invalid library. This was fixed in
2138 # development snapshots of GCC prior to 3.0.
2139 case $host_os in
2140 aix4 | aix4.[[01]] | aix4.[[01]].*)
2141 if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
2142 echo ' yes '
2143 echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
2144 :
2145 else
2146 can_build_shared=no
2147 fi
2148 ;;
2149 esac
2150 # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
2151 # soname into executable. Probably we can add versioning support to
2152 # collect2, so additional links can be useful in future.
2153 if test "$aix_use_runtimelinking" = yes; then
2154 # If using run time linking (on AIX 4.2 or later) use lib<name>.so
2155 # instead of lib<name>.a to let people know that these are not
2156 # typical AIX shared libraries.
2157 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2158 else
2159 # We preserve .a as extension for shared libraries through AIX4.2
2160 # and later when we are not doing run time linking.
2161 library_names_spec='${libname}${release}.a $libname.a'
2162 soname_spec='${libname}${release}${shared_ext}$major'
2163 fi
2164 shlibpath_var=LIBPATH
2165 fi
2166 ;;
2167
2168amigaos*)
2169 case $host_cpu in
2170 powerpc)
2171 # Since July 2007 AmigaOS4 officially supports .so libraries.
2172 # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
2173 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2174 ;;
2175 m68k)
2176 library_names_spec='$libname.ixlibrary $libname.a'
2177 # Create ${libname}_ixlibrary.a entries in /sys/libs.
2178 finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
2179 ;;
2180 esac
2181 ;;
2182
2183beos*)
2184 library_names_spec='${libname}${shared_ext}'
2185 dynamic_linker="$host_os ld.so"
2186 shlibpath_var=LIBRARY_PATH
2187 ;;
2188
2189bsdi[[45]]*)
2190 version_type=linux
2191 need_version=no
2192 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2193 soname_spec='${libname}${release}${shared_ext}$major'
2194 finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
2195 shlibpath_var=LD_LIBRARY_PATH
2196 sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
2197 sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
2198 # the default ld.so.conf also contains /usr/contrib/lib and
2199 # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
2200 # libtool to hard-code these into programs
2201 ;;
2202
2203cygwin* | mingw* | pw32* | cegcc*)
2204 version_type=windows
2205 shrext_cmds=".dll"
2206 need_version=no
2207 need_lib_prefix=no
2208
2209 case $GCC,$host_os in
2210 yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
2211 library_names_spec='$libname.dll.a'
2212 # DLL is installed to $(libdir)/../bin by postinstall_cmds
2213 postinstall_cmds='base_file=`basename \${file}`~
2214 dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
2215 dldir=$destdir/`dirname \$dlpath`~
2216 test -d \$dldir || mkdir -p \$dldir~
2217 $install_prog $dir/$dlname \$dldir/$dlname~
2218 chmod a+x \$dldir/$dlname~
2219 if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
2220 eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
2221 fi'
2222 postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
2223 dlpath=$dir/\$dldll~
2224 $RM \$dlpath'
2225 shlibpath_overrides_runpath=yes
2226
2227 case $host_os in
2228 cygwin*)
2229 # Cygwin DLLs use 'cyg' prefix rather than 'lib'
2230 soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
2231 sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
2232 ;;
2233 mingw* | cegcc*)
2234 # MinGW DLLs use traditional 'lib' prefix
2235 soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
2236 sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
2237 if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
2238 # It is most probably a Windows format PATH printed by
2239 # mingw gcc, but we are running on Cygwin. Gcc prints its search
2240 # path with ; separators, and with drive letters. We can handle the
2241 # drive letters (cygwin fileutils understands them), so leave them,
2242 # especially as we might pass files found there to a mingw objdump,
2243 # which wouldn't understand a cygwinified path. Ahh.
2244 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
2245 else
2246 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
2247 fi
2248 ;;
2249 pw32*)
2250 # pw32 DLLs use 'pw' prefix rather than 'lib'
2251 library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
2252 ;;
2253 esac
2254 ;;
2255
2256 *)
2257 library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
2258 ;;
2259 esac
2260 dynamic_linker='Win32 ld.exe'
2261 # FIXME: first we should search . and the directory the executable is in
2262 shlibpath_var=PATH
2263 ;;
2264
2265darwin* | rhapsody*)
2266 dynamic_linker="$host_os dyld"
2267 version_type=darwin
2268 need_lib_prefix=no
2269 need_version=no
2270 library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
2271 soname_spec='${libname}${release}${major}$shared_ext'
2272 shlibpath_overrides_runpath=yes
2273 shlibpath_var=DYLD_LIBRARY_PATH
2274 shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
2275m4_if([$1], [],[
2276 sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
2277 sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
2278 ;;
2279
2280dgux*)
2281 version_type=linux
2282 need_lib_prefix=no
2283 need_version=no
2284 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
2285 soname_spec='${libname}${release}${shared_ext}$major'
2286 shlibpath_var=LD_LIBRARY_PATH
2287 ;;
2288
2289freebsd1*)
2290 dynamic_linker=no
2291 ;;
2292
2293freebsd* | dragonfly*)
2294 # DragonFly does not have aout. When/if they implement a new
2295 # versioning mechanism, adjust this.
2296 if test -x /usr/bin/objformat; then
2297 objformat=`/usr/bin/objformat`
2298 else
2299 case $host_os in
2300 freebsd[[123]]*) objformat=aout ;;
2301 *) objformat=elf ;;
2302 esac
2303 fi
2304 version_type=freebsd-$objformat
2305 case $version_type in
2306 freebsd-elf*)
2307 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
2308 need_version=no
2309 need_lib_prefix=no
2310 ;;
2311 freebsd-*)
2312 library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
2313 need_version=yes
2314 ;;
2315 esac
2316 shlibpath_var=LD_LIBRARY_PATH
2317 case $host_os in
2318 freebsd2*)
2319 shlibpath_overrides_runpath=yes
2320 ;;
2321 freebsd3.[[01]]* | freebsdelf3.[[01]]*)
2322 shlibpath_overrides_runpath=yes
2323 hardcode_into_libs=yes
2324 ;;
2325 freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
2326 freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
2327 shlibpath_overrides_runpath=no
2328 hardcode_into_libs=yes
2329 ;;
2330 *) # from 4.6 on, and DragonFly
2331 shlibpath_overrides_runpath=yes
2332 hardcode_into_libs=yes
2333 ;;
2334 esac
2335 ;;
2336
2337gnu*)
2338 version_type=linux
2339 need_lib_prefix=no
2340 need_version=no
2341 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
2342 soname_spec='${libname}${release}${shared_ext}$major'
2343 shlibpath_var=LD_LIBRARY_PATH
2344 hardcode_into_libs=yes
2345 ;;
2346
2347hpux9* | hpux10* | hpux11*)
2348 # Give a soname corresponding to the major version so that dld.sl refuses to
2349 # link against other versions.
2350 version_type=sunos
2351 need_lib_prefix=no
2352 need_version=no
2353 case $host_cpu in
2354 ia64*)
2355 shrext_cmds='.so'
2356 hardcode_into_libs=yes
2357 dynamic_linker="$host_os dld.so"
2358 shlibpath_var=LD_LIBRARY_PATH
2359 shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
2360 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2361 soname_spec='${libname}${release}${shared_ext}$major'
2362 if test "X$HPUX_IA64_MODE" = X32; then
2363 sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
2364 else
2365 sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
2366 fi
2367 sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
2368 ;;
2369 hppa*64*)
2370 shrext_cmds='.sl'
2371 hardcode_into_libs=yes
2372 dynamic_linker="$host_os dld.sl"
2373 shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
2374 shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
2375 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2376 soname_spec='${libname}${release}${shared_ext}$major'
2377 sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
2378 sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
2379 ;;
2380 *)
2381 shrext_cmds='.sl'
2382 dynamic_linker="$host_os dld.sl"
2383 shlibpath_var=SHLIB_PATH
2384 shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
2385 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2386 soname_spec='${libname}${release}${shared_ext}$major'
2387 ;;
2388 esac
2389 # HP-UX runs *really* slowly unless shared libraries are mode 555.
2390 postinstall_cmds='chmod 555 $lib'
2391 ;;
2392
2393interix[[3-9]]*)
2394 version_type=linux
2395 need_lib_prefix=no
2396 need_version=no
2397 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
2398 soname_spec='${libname}${release}${shared_ext}$major'
2399 dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
2400 shlibpath_var=LD_LIBRARY_PATH
2401 shlibpath_overrides_runpath=no
2402 hardcode_into_libs=yes
2403 ;;
2404
2405irix5* | irix6* | nonstopux*)
2406 case $host_os in
2407 nonstopux*) version_type=nonstopux ;;
2408 *)
2409 if test "$lt_cv_prog_gnu_ld" = yes; then
2410 version_type=linux
2411 else
2412 version_type=irix
2413 fi ;;
2414 esac
2415 need_lib_prefix=no
2416 need_version=no
2417 soname_spec='${libname}${release}${shared_ext}$major'
2418 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
2419 case $host_os in
2420 irix5* | nonstopux*)
2421 libsuff= shlibsuff=
2422 ;;
2423 *)
2424 case $LD in # libtool.m4 will add one of these switches to LD
2425 *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
2426 libsuff= shlibsuff= libmagic=32-bit;;
2427 *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
2428 libsuff=32 shlibsuff=N32 libmagic=N32;;
2429 *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
2430 libsuff=64 shlibsuff=64 libmagic=64-bit;;
2431 *) libsuff= shlibsuff= libmagic=never-match;;
2432 esac
2433 ;;
2434 esac
2435 shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
2436 shlibpath_overrides_runpath=no
2437 sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
2438 sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
2439 hardcode_into_libs=yes
2440 ;;
2441
2442# No shared lib support for Linux oldld, aout, or coff.
2443linux*oldld* | linux*aout* | linux*coff*)
2444 dynamic_linker=no
2445 ;;
2446
2447# This must be Linux ELF.
2448linux* | k*bsd*-gnu | kopensolaris*-gnu)
2449 version_type=linux
2450 need_lib_prefix=no
2451 need_version=no
2452 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2453 soname_spec='${libname}${release}${shared_ext}$major'
2454 finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
2455 shlibpath_var=LD_LIBRARY_PATH
2456 shlibpath_overrides_runpath=no
2457 # Some binutils ld are patched to set DT_RUNPATH
2458 save_LDFLAGS=$LDFLAGS
2459 save_libdir=$libdir
2460 eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
2461 LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
2462 AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
2463 [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
2464 [shlibpath_overrides_runpath=yes])])
2465 LDFLAGS=$save_LDFLAGS
2466 libdir=$save_libdir
2467
2468 # This implies no fast_install, which is unacceptable.
2469 # Some rework will be needed to allow for fast_install
2470 # before this can be enabled.
2471 hardcode_into_libs=yes
2472
2473 # Append ld.so.conf contents to the search path
2474 if test -f /etc/ld.so.conf; then
2475 lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
2476 sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
2477 fi
2478
2479 # We used to test for /lib/ld.so.1 and disable shared libraries on
2480 # powerpc, because MkLinux only supported shared libraries with the
2481 # GNU dynamic linker. Since this was broken with cross compilers,
2482 # most powerpc-linux boxes support dynamic linking these days and
2483 # people can always --disable-shared, the test was removed, and we
2484 # assume the GNU/Linux dynamic linker is in use.
2485 dynamic_linker='GNU/Linux ld.so'
2486 ;;
2487
2488netbsdelf*-gnu)
2489 version_type=linux
2490 need_lib_prefix=no
2491 need_version=no
2492 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
2493 soname_spec='${libname}${release}${shared_ext}$major'
2494 shlibpath_var=LD_LIBRARY_PATH
2495 shlibpath_overrides_runpath=no
2496 hardcode_into_libs=yes
2497 dynamic_linker='NetBSD ld.elf_so'
2498 ;;
2499
2500netbsd*)
2501 version_type=sunos
2502 need_lib_prefix=no
2503 need_version=no
2504 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
2505 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
2506 finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
2507 dynamic_linker='NetBSD (a.out) ld.so'
2508 else
2509 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
2510 soname_spec='${libname}${release}${shared_ext}$major'
2511 dynamic_linker='NetBSD ld.elf_so'
2512 fi
2513 shlibpath_var=LD_LIBRARY_PATH
2514 shlibpath_overrides_runpath=yes
2515 hardcode_into_libs=yes
2516 ;;
2517
2518newsos6)
2519 version_type=linux
2520 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2521 shlibpath_var=LD_LIBRARY_PATH
2522 shlibpath_overrides_runpath=yes
2523 ;;
2524
2525*nto* | *qnx*)
2526 version_type=qnx
2527 need_lib_prefix=no
2528 need_version=no
2529 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2530 soname_spec='${libname}${release}${shared_ext}$major'
2531 shlibpath_var=LD_LIBRARY_PATH
2532 shlibpath_overrides_runpath=no
2533 hardcode_into_libs=yes
2534 dynamic_linker='ldqnx.so'
2535 ;;
2536
2537openbsd*)
2538 version_type=sunos
2539 sys_lib_dlsearch_path_spec="/usr/lib"
2540 need_lib_prefix=no
2541 # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
2542 case $host_os in
2543 openbsd3.3 | openbsd3.3.*) need_version=yes ;;
2544 *) need_version=no ;;
2545 esac
2546 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
2547 finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
2548 shlibpath_var=LD_LIBRARY_PATH
2549 if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
2550 case $host_os in
2551 openbsd2.[[89]] | openbsd2.[[89]].*)
2552 shlibpath_overrides_runpath=no
2553 ;;
2554 *)
2555 shlibpath_overrides_runpath=yes
2556 ;;
2557 esac
2558 else
2559 shlibpath_overrides_runpath=yes
2560 fi
2561 ;;
2562
2563os2*)
2564 libname_spec='$name'
2565 shrext_cmds=".dll"
2566 need_lib_prefix=no
2567 library_names_spec='$libname${shared_ext} $libname.a'
2568 dynamic_linker='OS/2 ld.exe'
2569 shlibpath_var=LIBPATH
2570 ;;
2571
2572osf3* | osf4* | osf5*)
2573 version_type=osf
2574 need_lib_prefix=no
2575 need_version=no
2576 soname_spec='${libname}${release}${shared_ext}$major'
2577 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2578 shlibpath_var=LD_LIBRARY_PATH
2579 sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
2580 sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
2581 ;;
2582
2583rdos*)
2584 dynamic_linker=no
2585 ;;
2586
2587solaris*)
2588 version_type=linux
2589 need_lib_prefix=no
2590 need_version=no
2591 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2592 soname_spec='${libname}${release}${shared_ext}$major'
2593 shlibpath_var=LD_LIBRARY_PATH
2594 shlibpath_overrides_runpath=yes
2595 hardcode_into_libs=yes
2596 # ldd complains unless libraries are executable
2597 postinstall_cmds='chmod +x $lib'
2598 ;;
2599
2600sunos4*)
2601 version_type=sunos
2602 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
2603 finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
2604 shlibpath_var=LD_LIBRARY_PATH
2605 shlibpath_overrides_runpath=yes
2606 if test "$with_gnu_ld" = yes; then
2607 need_lib_prefix=no
2608 fi
2609 need_version=yes
2610 ;;
2611
2612sysv4 | sysv4.3*)
2613 version_type=linux
2614 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2615 soname_spec='${libname}${release}${shared_ext}$major'
2616 shlibpath_var=LD_LIBRARY_PATH
2617 case $host_vendor in
2618 sni)
2619 shlibpath_overrides_runpath=no
2620 need_lib_prefix=no
2621 runpath_var=LD_RUN_PATH
2622 ;;
2623 siemens)
2624 need_lib_prefix=no
2625 ;;
2626 motorola)
2627 need_lib_prefix=no
2628 need_version=no
2629 shlibpath_overrides_runpath=no
2630 sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
2631 ;;
2632 esac
2633 ;;
2634
2635sysv4*MP*)
2636 if test -d /usr/nec ;then
2637 version_type=linux
2638 library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
2639 soname_spec='$libname${shared_ext}.$major'
2640 shlibpath_var=LD_LIBRARY_PATH
2641 fi
2642 ;;
2643
2644sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
2645 version_type=freebsd-elf
2646 need_lib_prefix=no
2647 need_version=no
2648 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
2649 soname_spec='${libname}${release}${shared_ext}$major'
2650 shlibpath_var=LD_LIBRARY_PATH
2651 shlibpath_overrides_runpath=yes
2652 hardcode_into_libs=yes
2653 if test "$with_gnu_ld" = yes; then
2654 sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
2655 else
2656 sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
2657 case $host_os in
2658 sco3.2v5*)
2659 sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
2660 ;;
2661 esac
2662 fi
2663 sys_lib_dlsearch_path_spec='/usr/lib'
2664 ;;
2665
2666tpf*)
2667 # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
2668 version_type=linux
2669 need_lib_prefix=no
2670 need_version=no
2671 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2672 shlibpath_var=LD_LIBRARY_PATH
2673 shlibpath_overrides_runpath=no
2674 hardcode_into_libs=yes
2675 ;;
2676
2677uts4*)
2678 version_type=linux
2679 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2680 soname_spec='${libname}${release}${shared_ext}$major'
2681 shlibpath_var=LD_LIBRARY_PATH
2682 ;;
2683
2684*)
2685 dynamic_linker=no
2686 ;;
2687esac
2688AC_MSG_RESULT([$dynamic_linker])
2689test "$dynamic_linker" = no && can_build_shared=no
2690
2691variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
2692if test "$GCC" = yes; then
2693 variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
2694fi
2695
2696if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
2697 sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
2698fi
2699if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
2700 sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
2701fi
2702
2703_LT_DECL([], [variables_saved_for_relink], [1],
2704 [Variables whose values should be saved in libtool wrapper scripts and
2705 restored at link time])
2706_LT_DECL([], [need_lib_prefix], [0],
2707 [Do we need the "lib" prefix for modules?])
2708_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
2709_LT_DECL([], [version_type], [0], [Library versioning type])
2710_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable])
2711_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
2712_LT_DECL([], [shlibpath_overrides_runpath], [0],
2713 [Is shlibpath searched before the hard-coded library search path?])
2714_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
2715_LT_DECL([], [library_names_spec], [1],
2716 [[List of archive names. First name is the real one, the rest are links.
2717 The last name is the one that the linker finds with -lNAME]])
2718_LT_DECL([], [soname_spec], [1],
2719 [[The coded name of the library, if different from the real name]])
2720_LT_DECL([], [postinstall_cmds], [2],
2721 [Command to use after installation of a shared archive])
2722_LT_DECL([], [postuninstall_cmds], [2],
2723 [Command to use after uninstallation of a shared archive])
2724_LT_DECL([], [finish_cmds], [2],
2725 [Commands used to finish a libtool library installation in a directory])
2726_LT_DECL([], [finish_eval], [1],
2727 [[As "finish_cmds", except a single script fragment to be evaled but
2728 not shown]])
2729_LT_DECL([], [hardcode_into_libs], [0],
2730 [Whether we should hardcode library paths into libraries])
2731_LT_DECL([], [sys_lib_search_path_spec], [2],
2732 [Compile-time system search path for libraries])
2733_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
2734 [Run-time system search path for libraries])
2735])# _LT_SYS_DYNAMIC_LINKER
2736
2737
2738# _LT_PATH_TOOL_PREFIX(TOOL)
2739# --------------------------
2740# find a file program which can recognize shared library
2741AC_DEFUN([_LT_PATH_TOOL_PREFIX],
2742[m4_require([_LT_DECL_EGREP])dnl
2743AC_MSG_CHECKING([for $1])
2744AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
2745[case $MAGIC_CMD in
2746[[\\/*] | ?:[\\/]*])
2747 lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
2748 ;;
2749*)
2750 lt_save_MAGIC_CMD="$MAGIC_CMD"
2751 lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
2752dnl $ac_dummy forces splitting on constant user-supplied paths.
2753dnl POSIX.2 word splitting is done only on the output of word expansions,
2754dnl not every word. This closes a longstanding sh security hole.
2755 ac_dummy="m4_if([$2], , $PATH, [$2])"
2756 for ac_dir in $ac_dummy; do
2757 IFS="$lt_save_ifs"
2758 test -z "$ac_dir" && ac_dir=.
2759 if test -f $ac_dir/$1; then
2760 lt_cv_path_MAGIC_CMD="$ac_dir/$1"
2761 if test -n "$file_magic_test_file"; then
2762 case $deplibs_check_method in
2763 "file_magic "*)
2764 file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
2765 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
2766 if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
2767 $EGREP "$file_magic_regex" > /dev/null; then
2768 :
2769 else
2770 cat <<_LT_EOF 1>&2
2771
2772*** Warning: the command libtool uses to detect shared libraries,
2773*** $file_magic_cmd, produces output that libtool cannot recognize.
2774*** The result is that libtool may fail to recognize shared libraries
2775*** as such. This will affect the creation of libtool libraries that
2776*** depend on shared libraries, but programs linked with such libtool
2777*** libraries will work regardless of this problem. Nevertheless, you
2778*** may want to report the problem to your system manager and/or to
2779*** bug-libtool@gnu.org
2780
2781_LT_EOF
2782 fi ;;
2783 esac
2784 fi
2785 break
2786 fi
2787 done
2788 IFS="$lt_save_ifs"
2789 MAGIC_CMD="$lt_save_MAGIC_CMD"
2790 ;;
2791esac])
2792MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
2793if test -n "$MAGIC_CMD"; then
2794 AC_MSG_RESULT($MAGIC_CMD)
2795else
2796 AC_MSG_RESULT(no)
2797fi
2798_LT_DECL([], [MAGIC_CMD], [0],
2799 [Used to examine libraries when file_magic_cmd begins with "file"])dnl
2800])# _LT_PATH_TOOL_PREFIX
2801
2802# Old name:
2803AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
2804dnl aclocal-1.4 backwards compatibility:
2805dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
2806
2807
2808# _LT_PATH_MAGIC
2809# --------------
2810# find a file program which can recognize a shared library
2811m4_defun([_LT_PATH_MAGIC],
2812[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
2813if test -z "$lt_cv_path_MAGIC_CMD"; then
2814 if test -n "$ac_tool_prefix"; then
2815 _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
2816 else
2817 MAGIC_CMD=:
2818 fi
2819fi
2820])# _LT_PATH_MAGIC
2821
2822
2823# LT_PATH_LD
2824# ----------
2825# find the pathname to the GNU or non-GNU linker
2826AC_DEFUN([LT_PATH_LD],
2827[AC_REQUIRE([AC_PROG_CC])dnl
2828AC_REQUIRE([AC_CANONICAL_HOST])dnl
2829AC_REQUIRE([AC_CANONICAL_BUILD])dnl
2830m4_require([_LT_DECL_SED])dnl
2831m4_require([_LT_DECL_EGREP])dnl
2832
2833AC_ARG_WITH([gnu-ld],
2834 [AS_HELP_STRING([--with-gnu-ld],
2835 [assume the C compiler uses GNU ld @<:@default=no@:>@])],
2836 [test "$withval" = no || with_gnu_ld=yes],
2837 [with_gnu_ld=no])dnl
2838
2839ac_prog=ld
2840if test "$GCC" = yes; then
2841 # Check if gcc -print-prog-name=ld gives a path.
2842 AC_MSG_CHECKING([for ld used by $CC])
2843 case $host in
2844 *-*-mingw*)
2845 # gcc leaves a trailing carriage return which upsets mingw
2846 ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
2847 *)
2848 ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
2849 esac
2850 case $ac_prog in
2851 # Accept absolute paths.
2852 [[\\/]]* | ?:[[\\/]]*)
2853 re_direlt='/[[^/]][[^/]]*/\.\./'
2854 # Canonicalize the pathname of ld
2855 ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
2856 while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
2857 ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
2858 done
2859 test -z "$LD" && LD="$ac_prog"
2860 ;;
2861 "")
2862 # If it fails, then pretend we aren't using GCC.
2863 ac_prog=ld
2864 ;;
2865 *)
2866 # If it is relative, then search for the first ld in PATH.
2867 with_gnu_ld=unknown
2868 ;;
2869 esac
2870elif test "$with_gnu_ld" = yes; then
2871 AC_MSG_CHECKING([for GNU ld])
2872else
2873 AC_MSG_CHECKING([for non-GNU ld])
2874fi
2875AC_CACHE_VAL(lt_cv_path_LD,
2876[if test -z "$LD"; then
2877 lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
2878 for ac_dir in $PATH; do
2879 IFS="$lt_save_ifs"
2880 test -z "$ac_dir" && ac_dir=.
2881 if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
2882 lt_cv_path_LD="$ac_dir/$ac_prog"
2883 # Check to see if the program is GNU ld. I'd rather use --version,
2884 # but apparently some variants of GNU ld only accept -v.
2885 # Break only if it was the GNU/non-GNU ld that we prefer.
2886 case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
2887 *GNU* | *'with BFD'*)
2888 test "$with_gnu_ld" != no && break
2889 ;;
2890 *)
2891 test "$with_gnu_ld" != yes && break
2892 ;;
2893 esac
2894 fi
2895 done
2896 IFS="$lt_save_ifs"
2897else
2898 lt_cv_path_LD="$LD" # Let the user override the test with a path.
2899fi])
2900LD="$lt_cv_path_LD"
2901if test -n "$LD"; then
2902 AC_MSG_RESULT($LD)
2903else
2904 AC_MSG_RESULT(no)
2905fi
2906test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
2907_LT_PATH_LD_GNU
2908AC_SUBST([LD])
2909
2910_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
2911])# LT_PATH_LD
2912
2913# Old names:
2914AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
2915AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
2916dnl aclocal-1.4 backwards compatibility:
2917dnl AC_DEFUN([AM_PROG_LD], [])
2918dnl AC_DEFUN([AC_PROG_LD], [])
2919
2920
2921# _LT_PATH_LD_GNU
2922#- --------------
2923m4_defun([_LT_PATH_LD_GNU],
2924[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
2925[# I'd rather use --version here, but apparently some GNU lds only accept -v.
2926case `$LD -v 2>&1 </dev/null` in
2927*GNU* | *'with BFD'*)
2928 lt_cv_prog_gnu_ld=yes
2929 ;;
2930*)
2931 lt_cv_prog_gnu_ld=no
2932 ;;
2933esac])
2934with_gnu_ld=$lt_cv_prog_gnu_ld
2935])# _LT_PATH_LD_GNU
2936
2937
2938# _LT_CMD_RELOAD
2939# --------------
2940# find reload flag for linker
2941# -- PORTME Some linkers may need a different reload flag.
2942m4_defun([_LT_CMD_RELOAD],
2943[AC_CACHE_CHECK([for $LD option to reload object files],
2944 lt_cv_ld_reload_flag,
2945 [lt_cv_ld_reload_flag='-r'])
2946reload_flag=$lt_cv_ld_reload_flag
2947case $reload_flag in
2948"" | " "*) ;;
2949*) reload_flag=" $reload_flag" ;;
2950esac
2951reload_cmds='$LD$reload_flag -o $output$reload_objs'
2952case $host_os in
2953 darwin*)
2954 if test "$GCC" = yes; then
2955 reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
2956 else
2957 reload_cmds='$LD$reload_flag -o $output$reload_objs'
2958 fi
2959 ;;
2960esac
2961_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl
2962_LT_DECL([], [reload_cmds], [2])dnl
2963])# _LT_CMD_RELOAD
2964
2965
2966# _LT_CHECK_MAGIC_METHOD
2967# ----------------------
2968# how to check for library dependencies
2969# -- PORTME fill in with the dynamic library characteristics
2970m4_defun([_LT_CHECK_MAGIC_METHOD],
2971[m4_require([_LT_DECL_EGREP])
2972m4_require([_LT_DECL_OBJDUMP])
2973AC_CACHE_CHECK([how to recognize dependent libraries],
2974lt_cv_deplibs_check_method,
2975[lt_cv_file_magic_cmd='$MAGIC_CMD'
2976lt_cv_file_magic_test_file=
2977lt_cv_deplibs_check_method='unknown'
2978# Need to set the preceding variable on all platforms that support
2979# interlibrary dependencies.
2980# 'none' -- dependencies not supported.
2981# `unknown' -- same as none, but documents that we really don't know.
2982# 'pass_all' -- all dependencies passed with no checks.
2983# 'test_compile' -- check by making test program.
2984# 'file_magic [[regex]]' -- check by looking for files in library path
2985# which responds to the $file_magic_cmd with a given extended regex.
2986# If you have `file' or equivalent on your system and you're not sure
2987# whether `pass_all' will *always* work, you probably want this one.
2988
2989case $host_os in
2990aix[[4-9]]*)
2991 lt_cv_deplibs_check_method=pass_all
2992 ;;
2993
2994beos*)
2995 lt_cv_deplibs_check_method=pass_all
2996 ;;
2997
2998bsdi[[45]]*)
2999 lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
3000 lt_cv_file_magic_cmd='/usr/bin/file -L'
3001 lt_cv_file_magic_test_file=/shlib/libc.so
3002 ;;
3003
3004cygwin*)
3005 # func_win32_libid is a shell function defined in ltmain.sh
3006 lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
3007 lt_cv_file_magic_cmd='func_win32_libid'
3008 ;;
3009
3010mingw* | pw32*)
3011 # Base MSYS/MinGW do not provide the 'file' command needed by
3012 # func_win32_libid shell function, so use a weaker test based on 'objdump',
3013 # unless we find 'file', for example because we are cross-compiling.
3014 if ( file / ) >/dev/null 2>&1; then
3015 lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
3016 lt_cv_file_magic_cmd='func_win32_libid'
3017 else
3018 lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
3019 lt_cv_file_magic_cmd='$OBJDUMP -f'
3020 fi
3021 ;;
3022
3023cegcc)
3024 # use the weaker test based on 'objdump'. See mingw*.
3025 lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
3026 lt_cv_file_magic_cmd='$OBJDUMP -f'
3027 ;;
3028
3029darwin* | rhapsody*)
3030 lt_cv_deplibs_check_method=pass_all
3031 ;;
3032
3033freebsd* | dragonfly*)
3034 if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
3035 case $host_cpu in
3036 i*86 )
3037 # Not sure whether the presence of OpenBSD here was a mistake.
3038 # Let's accept both of them until this is cleared up.
3039 lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
3040 lt_cv_file_magic_cmd=/usr/bin/file
3041 lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
3042 ;;
3043 esac
3044 else
3045 lt_cv_deplibs_check_method=pass_all
3046 fi
3047 ;;
3048
3049gnu*)
3050 lt_cv_deplibs_check_method=pass_all
3051 ;;
3052
3053hpux10.20* | hpux11*)
3054 lt_cv_file_magic_cmd=/usr/bin/file
3055 case $host_cpu in
3056 ia64*)
3057 lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
3058 lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
3059 ;;
3060 hppa*64*)
3061 [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
3062 lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
3063 ;;
3064 *)
3065 lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
3066 lt_cv_file_magic_test_file=/usr/lib/libc.sl
3067 ;;
3068 esac
3069 ;;
3070
3071interix[[3-9]]*)
3072 # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
3073 lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
3074 ;;
3075
3076irix5* | irix6* | nonstopux*)
3077 case $LD in
3078 *-32|*"-32 ") libmagic=32-bit;;
3079 *-n32|*"-n32 ") libmagic=N32;;
3080 *-64|*"-64 ") libmagic=64-bit;;
3081 *) libmagic=never-match;;
3082 esac
3083 lt_cv_deplibs_check_method=pass_all
3084 ;;
3085
3086# This must be Linux ELF.
3087linux* | k*bsd*-gnu | kopensolaris*-gnu)
3088 lt_cv_deplibs_check_method=pass_all
3089 ;;
3090
3091netbsd* | netbsdelf*-gnu)
3092 if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
3093 lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
3094 else
3095 lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
3096 fi
3097 ;;
3098
3099newos6*)
3100 lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
3101 lt_cv_file_magic_cmd=/usr/bin/file
3102 lt_cv_file_magic_test_file=/usr/lib/libnls.so
3103 ;;
3104
3105*nto* | *qnx*)
3106 lt_cv_deplibs_check_method=pass_all
3107 ;;
3108
3109openbsd*)
3110 if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
3111 lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
3112 else
3113 lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
3114 fi
3115 ;;
3116
3117osf3* | osf4* | osf5*)
3118 lt_cv_deplibs_check_method=pass_all
3119 ;;
3120
3121rdos*)
3122 lt_cv_deplibs_check_method=pass_all
3123 ;;
3124
3125solaris*)
3126 lt_cv_deplibs_check_method=pass_all
3127 ;;
3128
3129sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
3130 lt_cv_deplibs_check_method=pass_all
3131 ;;
3132
3133sysv4 | sysv4.3*)
3134 case $host_vendor in
3135 motorola)
3136 lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
3137 lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
3138 ;;
3139 ncr)
3140 lt_cv_deplibs_check_method=pass_all
3141 ;;
3142 sequent)
3143 lt_cv_file_magic_cmd='/bin/file'
3144 lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
3145 ;;
3146 sni)
3147 lt_cv_file_magic_cmd='/bin/file'
3148 lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
3149 lt_cv_file_magic_test_file=/lib/libc.so
3150 ;;
3151 siemens)
3152 lt_cv_deplibs_check_method=pass_all
3153 ;;
3154 pc)
3155 lt_cv_deplibs_check_method=pass_all
3156 ;;
3157 esac
3158 ;;
3159
3160tpf*)
3161 lt_cv_deplibs_check_method=pass_all
3162 ;;
3163esac
3164])
3165file_magic_cmd=$lt_cv_file_magic_cmd
3166deplibs_check_method=$lt_cv_deplibs_check_method
3167test -z "$deplibs_check_method" && deplibs_check_method=unknown
3168
3169_LT_DECL([], [deplibs_check_method], [1],
3170 [Method to check whether dependent libraries are shared objects])
3171_LT_DECL([], [file_magic_cmd], [1],
3172 [Command to use when deplibs_check_method == "file_magic"])
3173])# _LT_CHECK_MAGIC_METHOD
3174
3175
3176# LT_PATH_NM
3177# ----------
3178# find the pathname to a BSD- or MS-compatible name lister
3179AC_DEFUN([LT_PATH_NM],
3180[AC_REQUIRE([AC_PROG_CC])dnl
3181AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
3182[if test -n "$NM"; then
3183 # Let the user override the test.
3184 lt_cv_path_NM="$NM"
3185else
3186 lt_nm_to_check="${ac_tool_prefix}nm"
3187 if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
3188 lt_nm_to_check="$lt_nm_to_check nm"
3189 fi
3190 for lt_tmp_nm in $lt_nm_to_check; do
3191 lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
3192 for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
3193 IFS="$lt_save_ifs"
3194 test -z "$ac_dir" && ac_dir=.
3195 tmp_nm="$ac_dir/$lt_tmp_nm"
3196 if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
3197 # Check to see if the nm accepts a BSD-compat flag.
3198 # Adding the `sed 1q' prevents false positives on HP-UX, which says:
3199 # nm: unknown option "B" ignored
3200 # Tru64's nm complains that /dev/null is an invalid object file
3201 case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
3202 */dev/null* | *'Invalid file or object type'*)
3203 lt_cv_path_NM="$tmp_nm -B"
3204 break
3205 ;;
3206 *)
3207 case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
3208 */dev/null*)
3209 lt_cv_path_NM="$tmp_nm -p"
3210 break
3211 ;;
3212 *)
3213 lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
3214 continue # so that we can try to find one that supports BSD flags
3215 ;;
3216 esac
3217 ;;
3218 esac
3219 fi
3220 done
3221 IFS="$lt_save_ifs"
3222 done
3223 : ${lt_cv_path_NM=no}
3224fi])
3225if test "$lt_cv_path_NM" != "no"; then
3226 NM="$lt_cv_path_NM"
3227else
3228 # Didn't find any BSD compatible name lister, look for dumpbin.
3229 AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :)
3230 AC_SUBST([DUMPBIN])
3231 if test "$DUMPBIN" != ":"; then
3232 NM="$DUMPBIN"
3233 fi
3234fi
3235test -z "$NM" && NM=nm
3236AC_SUBST([NM])
3237_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
3238
3239AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
3240 [lt_cv_nm_interface="BSD nm"
3241 echo "int some_variable = 0;" > conftest.$ac_ext
3242 (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
3243 (eval "$ac_compile" 2>conftest.err)
3244 cat conftest.err >&AS_MESSAGE_LOG_FD
3245 (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
3246 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
3247 cat conftest.err >&AS_MESSAGE_LOG_FD
3248 (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD)
3249 cat conftest.out >&AS_MESSAGE_LOG_FD
3250 if $GREP 'External.*some_variable' conftest.out > /dev/null; then
3251 lt_cv_nm_interface="MS dumpbin"
3252 fi
3253 rm -f conftest*])
3254])# LT_PATH_NM
3255
3256# Old names:
3257AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
3258AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
3259dnl aclocal-1.4 backwards compatibility:
3260dnl AC_DEFUN([AM_PROG_NM], [])
3261dnl AC_DEFUN([AC_PROG_NM], [])
3262
3263
3264# LT_LIB_M
3265# --------
3266# check for math library
3267AC_DEFUN([LT_LIB_M],
3268[AC_REQUIRE([AC_CANONICAL_HOST])dnl
3269LIBM=
3270case $host in
3271*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
3272 # These system don't have libm, or don't need it
3273 ;;
3274*-ncr-sysv4.3*)
3275 AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
3276 AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
3277 ;;
3278*)
3279 AC_CHECK_LIB(m, cos, LIBM="-lm")
3280 ;;
3281esac
3282AC_SUBST([LIBM])
3283])# LT_LIB_M
3284
3285# Old name:
3286AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
3287dnl aclocal-1.4 backwards compatibility:
3288dnl AC_DEFUN([AC_CHECK_LIBM], [])
3289
3290
3291# _LT_COMPILER_NO_RTTI([TAGNAME])
3292# -------------------------------
3293m4_defun([_LT_COMPILER_NO_RTTI],
3294[m4_require([_LT_TAG_COMPILER])dnl
3295
3296_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
3297
3298if test "$GCC" = yes; then
3299 _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
3300
3301 _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
3302 lt_cv_prog_compiler_rtti_exceptions,
3303 [-fno-rtti -fno-exceptions], [],
3304 [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
3305fi
3306_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
3307 [Compiler flag to turn off builtin functions])
3308])# _LT_COMPILER_NO_RTTI
3309
3310
3311# _LT_CMD_GLOBAL_SYMBOLS
3312# ----------------------
3313m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
3314[AC_REQUIRE([AC_CANONICAL_HOST])dnl
3315AC_REQUIRE([AC_PROG_CC])dnl
3316AC_REQUIRE([LT_PATH_NM])dnl
3317AC_REQUIRE([LT_PATH_LD])dnl
3318m4_require([_LT_DECL_SED])dnl
3319m4_require([_LT_DECL_EGREP])dnl
3320m4_require([_LT_TAG_COMPILER])dnl
3321
3322# Check for command to grab the raw symbol name followed by C symbol from nm.
3323AC_MSG_CHECKING([command to parse $NM output from $compiler object])
3324AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
3325[
3326# These are sane defaults that work on at least a few old systems.
3327# [They come from Ultrix. What could be older than Ultrix?!! ;)]
3328
3329# Character class describing NM global symbol codes.
3330symcode='[[BCDEGRST]]'
3331
3332# Regexp to match symbols that can be accessed directly from C.
3333sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
3334
3335# Define system-specific variables.
3336case $host_os in
3337aix*)
3338 symcode='[[BCDT]]'
3339 ;;
3340cygwin* | mingw* | pw32* | cegcc*)
3341 symcode='[[ABCDGISTW]]'
3342 ;;
3343hpux*)
3344 if test "$host_cpu" = ia64; then
3345 symcode='[[ABCDEGRST]]'
3346 fi
3347 ;;
3348irix* | nonstopux*)
3349 symcode='[[BCDEGRST]]'
3350 ;;
3351osf*)
3352 symcode='[[BCDEGQRST]]'
3353 ;;
3354solaris*)
3355 symcode='[[BDRT]]'
3356 ;;
3357sco3.2v5*)
3358 symcode='[[DT]]'
3359 ;;
3360sysv4.2uw2*)
3361 symcode='[[DT]]'
3362 ;;
3363sysv5* | sco5v6* | unixware* | OpenUNIX*)
3364 symcode='[[ABDT]]'
3365 ;;
3366sysv4)
3367 symcode='[[DFNSTU]]'
3368 ;;
3369esac
3370
3371# If we're using GNU nm, then use its standard symbol codes.
3372case `$NM -V 2>&1` in
3373*GNU* | *'with BFD'*)
3374 symcode='[[ABCDGIRSTW]]' ;;
3375esac
3376
3377# Transform an extracted symbol line into a proper C declaration.
3378# Some systems (esp. on ia64) link data and code symbols differently,
3379# so use this general approach.
3380lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
3381
3382# Transform an extracted symbol line into symbol name and symbol address
3383lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'"
3384lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
3385
3386# Handle CRLF in mingw tool chain
3387opt_cr=
3388case $build_os in
3389mingw*)
3390 opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
3391 ;;
3392esac
3393
3394# Try without a prefix underscore, then with it.
3395for ac_symprfx in "" "_"; do
3396
3397 # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
3398 symxfrm="\\1 $ac_symprfx\\2 \\2"
3399
3400 # Write the raw and C identifiers.
3401 if test "$lt_cv_nm_interface" = "MS dumpbin"; then
3402 # Fake it for dumpbin and say T for any non-static function
3403 # and D for any global variable.
3404 # Also find C++ and __fastcall symbols from MSVC++,
3405 # which start with @ or ?.
3406 lt_cv_sys_global_symbol_pipe="$AWK ['"\
3407" {last_section=section; section=\$ 3};"\
3408" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
3409" \$ 0!~/External *\|/{next};"\
3410" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
3411" {if(hide[section]) next};"\
3412" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
3413" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
3414" s[1]~/^[@?]/{print s[1], s[1]; next};"\
3415" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
3416" ' prfx=^$ac_symprfx]"
3417 else
3418 lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
3419 fi
3420
3421 # Check to see that the pipe works correctly.
3422 pipe_works=no
3423
3424 rm -f conftest*
3425 cat > conftest.$ac_ext <<_LT_EOF
3426#ifdef __cplusplus
3427extern "C" {
3428#endif
3429char nm_test_var;
3430void nm_test_func(void);
3431void nm_test_func(void){}
3432#ifdef __cplusplus
3433}
3434#endif
3435int main(){nm_test_var='a';nm_test_func();return(0);}
3436_LT_EOF
3437
3438 if AC_TRY_EVAL(ac_compile); then
3439 # Now try to grab the symbols.
3440 nlist=conftest.nm
3441 if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
3442 # Try sorting and uniquifying the output.
3443 if sort "$nlist" | uniq > "$nlist"T; then
3444 mv -f "$nlist"T "$nlist"
3445 else
3446 rm -f "$nlist"T
3447 fi
3448
3449 # Make sure that we snagged all the symbols we need.
3450 if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
3451 if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
3452 cat <<_LT_EOF > conftest.$ac_ext
3453#ifdef __cplusplus
3454extern "C" {
3455#endif
3456
3457_LT_EOF
3458 # Now generate the symbol file.
3459 eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
3460
3461 cat <<_LT_EOF >> conftest.$ac_ext
3462
3463/* The mapping between symbol names and symbols. */
3464const struct {
3465 const char *name;
3466 void *address;
3467}
3468lt__PROGRAM__LTX_preloaded_symbols[[]] =
3469{
3470 { "@PROGRAM@", (void *) 0 },
3471_LT_EOF
3472 $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
3473 cat <<\_LT_EOF >> conftest.$ac_ext
3474 {0, (void *) 0}
3475};
3476
3477/* This works around a problem in FreeBSD linker */
3478#ifdef FREEBSD_WORKAROUND
3479static const void *lt_preloaded_setup() {
3480 return lt__PROGRAM__LTX_preloaded_symbols;
3481}
3482#endif
3483
3484#ifdef __cplusplus
3485}
3486#endif
3487_LT_EOF
3488 # Now try linking the two files.
3489 mv conftest.$ac_objext conftstm.$ac_objext
3490 lt_save_LIBS="$LIBS"
3491 lt_save_CFLAGS="$CFLAGS"
3492 LIBS="conftstm.$ac_objext"
3493 CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
3494 if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
3495 pipe_works=yes
3496 fi
3497 LIBS="$lt_save_LIBS"
3498 CFLAGS="$lt_save_CFLAGS"
3499 else
3500 echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
3501 fi
3502 else
3503 echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
3504 fi
3505 else
3506 echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
3507 fi
3508 else
3509 echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
3510 cat conftest.$ac_ext >&5
3511 fi
3512 rm -rf conftest* conftst*
3513
3514 # Do not use the global_symbol_pipe unless it works.
3515 if test "$pipe_works" = yes; then
3516 break
3517 else
3518 lt_cv_sys_global_symbol_pipe=
3519 fi
3520done
3521])
3522if test -z "$lt_cv_sys_global_symbol_pipe"; then
3523 lt_cv_sys_global_symbol_to_cdecl=
3524fi
3525if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
3526 AC_MSG_RESULT(failed)
3527else
3528 AC_MSG_RESULT(ok)
3529fi
3530
3531_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
3532 [Take the output of nm and produce a listing of raw symbols and C names])
3533_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
3534 [Transform the output of nm in a proper C declaration])
3535_LT_DECL([global_symbol_to_c_name_address],
3536 [lt_cv_sys_global_symbol_to_c_name_address], [1],
3537 [Transform the output of nm in a C name address pair])
3538_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
3539 [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
3540 [Transform the output of nm in a C name address pair when lib prefix is needed])
3541]) # _LT_CMD_GLOBAL_SYMBOLS
3542
3543
3544# _LT_COMPILER_PIC([TAGNAME])
3545# ---------------------------
3546m4_defun([_LT_COMPILER_PIC],
3547[m4_require([_LT_TAG_COMPILER])dnl
3548_LT_TAGVAR(lt_prog_compiler_wl, $1)=
3549_LT_TAGVAR(lt_prog_compiler_pic, $1)=
3550_LT_TAGVAR(lt_prog_compiler_static, $1)=
3551
3552AC_MSG_CHECKING([for $compiler option to produce PIC])
3553m4_if([$1], [CXX], [
3554 # C++ specific cases for pic, static, wl, etc.
3555 if test "$GXX" = yes; then
3556 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3557 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
3558
3559 case $host_os in
3560 aix*)
3561 # All AIX code is PIC.
3562 if test "$host_cpu" = ia64; then
3563 # AIX 5 now supports IA64 processor
3564 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
3565 fi
3566 ;;
3567
3568 amigaos*)
3569 case $host_cpu in
3570 powerpc)
3571 # see comment about AmigaOS4 .so support
3572 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
3573 ;;
3574 m68k)
3575 # FIXME: we need at least 68020 code to build shared libraries, but
3576 # adding the `-m68020' flag to GCC prevents building anything better,
3577 # like `-m68040'.
3578 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
3579 ;;
3580 esac
3581 ;;
3582
3583 beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
3584 # PIC is the default for these OSes.
3585 ;;
3586 mingw* | cygwin* | os2* | pw32* | cegcc*)
3587 # This hack is so that the source file can tell whether it is being
3588 # built for inclusion in a dll (and should export symbols for example).
3589 # Although the cygwin gcc ignores -fPIC, still need this for old-style
3590 # (--disable-auto-import) libraries
3591 m4_if([$1], [GCJ], [],
3592 [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
3593 ;;
3594 darwin* | rhapsody*)
3595 # PIC is the default on this platform
3596 # Common symbols not allowed in MH_DYLIB files
3597 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
3598 ;;
3599 *djgpp*)
3600 # DJGPP does not support shared libraries at all
3601 _LT_TAGVAR(lt_prog_compiler_pic, $1)=
3602 ;;
3603 interix[[3-9]]*)
3604 # Interix 3.x gcc -fpic/-fPIC options generate broken code.
3605 # Instead, we relocate shared libraries at runtime.
3606 ;;
3607 sysv4*MP*)
3608 if test -d /usr/nec; then
3609 _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
3610 fi
3611 ;;
3612 hpux*)
3613 # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
3614 # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
3615 # sets the default TLS model and affects inlining.
3616 case $host_cpu in
3617 hppa*64*)
3618 ;;
3619 *)
3620 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
3621 ;;
3622 esac
3623 ;;
3624 *qnx* | *nto*)
3625 # QNX uses GNU C++, but need to define -shared option too, otherwise
3626 # it will coredump.
3627 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
3628 ;;
3629 *)
3630 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
3631 ;;
3632 esac
3633 else
3634 case $host_os in
3635 aix[[4-9]]*)
3636 # All AIX code is PIC.
3637 if test "$host_cpu" = ia64; then
3638 # AIX 5 now supports IA64 processor
3639 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
3640 else
3641 _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
3642 fi
3643 ;;
3644 chorus*)
3645 case $cc_basename in
3646 cxch68*)
3647 # Green Hills C++ Compiler
3648 # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
3649 ;;
3650 esac
3651 ;;
3652 dgux*)
3653 case $cc_basename in
3654 ec++*)
3655 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
3656 ;;
3657 ghcx*)
3658 # Green Hills C++ Compiler
3659 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
3660 ;;
3661 *)
3662 ;;
3663 esac
3664 ;;
3665 freebsd* | dragonfly*)
3666 # FreeBSD uses GNU C++
3667 ;;
3668 hpux9* | hpux10* | hpux11*)
3669 case $cc_basename in
3670 CC*)
3671 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3672 _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
3673 if test "$host_cpu" != ia64; then
3674 _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
3675 fi
3676 ;;
3677 aCC*)
3678 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3679 _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
3680 case $host_cpu in
3681 hppa*64*|ia64*)
3682 # +Z the default
3683 ;;
3684 *)
3685 _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
3686 ;;
3687 esac
3688 ;;
3689 *)
3690 ;;
3691 esac
3692 ;;
3693 interix*)
3694 # This is c89, which is MS Visual C++ (no shared libs)
3695 # Anyone wants to do a port?
3696 ;;
3697 irix5* | irix6* | nonstopux*)
3698 case $cc_basename in
3699 CC*)
3700 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3701 _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
3702 # CC pic flag -KPIC is the default.
3703 ;;
3704 *)
3705 ;;
3706 esac
3707 ;;
3708 linux* | k*bsd*-gnu | kopensolaris*-gnu)
3709 case $cc_basename in
3710 KCC*)
3711 # KAI C++ Compiler
3712 _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
3713 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
3714 ;;
3715 ecpc* )
3716 # old Intel C++ for x86_64 which still supported -KPIC.
3717 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3718 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
3719 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
3720 ;;
3721 icpc* )
3722 # Intel C++, used to be incompatible with GCC.
3723 # ICC 10 doesn't accept -KPIC any more.
3724 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3725 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
3726 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
3727 ;;
3728 pgCC* | pgcpp*)
3729 # Portland Group C++ compiler
3730 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3731 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
3732 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
3733 ;;
3734 cxx*)
3735 # Compaq C++
3736 # Make sure the PIC flag is empty. It appears that all Alpha
3737 # Linux and Compaq Tru64 Unix objects are PIC.
3738 _LT_TAGVAR(lt_prog_compiler_pic, $1)=
3739 _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
3740 ;;
3741 xlc* | xlC*)
3742 # IBM XL 8.0 on PPC
3743 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3744 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
3745 _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
3746 ;;
3747 *)
3748 case `$CC -V 2>&1 | sed 5q` in
3749 *Sun\ C*)
3750 # Sun C++ 5.9
3751 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
3752 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
3753 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
3754 ;;
3755 esac
3756 ;;
3757 esac
3758 ;;
3759 lynxos*)
3760 ;;
3761 m88k*)
3762 ;;
3763 mvs*)
3764 case $cc_basename in
3765 cxx*)
3766 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
3767 ;;
3768 *)
3769 ;;
3770 esac
3771 ;;
3772 netbsd* | netbsdelf*-gnu)
3773 ;;
3774 *qnx* | *nto*)
3775 # QNX uses GNU C++, but need to define -shared option too, otherwise
3776 # it will coredump.
3777 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
3778 ;;
3779 osf3* | osf4* | osf5*)
3780 case $cc_basename in
3781 KCC*)
3782 _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
3783 ;;
3784 RCC*)
3785 # Rational C++ 2.4.1
3786 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
3787 ;;
3788 cxx*)
3789 # Digital/Compaq C++
3790 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3791 # Make sure the PIC flag is empty. It appears that all Alpha
3792 # Linux and Compaq Tru64 Unix objects are PIC.
3793 _LT_TAGVAR(lt_prog_compiler_pic, $1)=
3794 _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
3795 ;;
3796 *)
3797 ;;
3798 esac
3799 ;;
3800 psos*)
3801 ;;
3802 solaris*)
3803 case $cc_basename in
3804 CC*)
3805 # Sun C++ 4.2, 5.x and Centerline C++
3806 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
3807 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
3808 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
3809 ;;
3810 gcx*)
3811 # Green Hills C++ Compiler
3812 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
3813 ;;
3814 *)
3815 ;;
3816 esac
3817 ;;
3818 sunos4*)
3819 case $cc_basename in
3820 CC*)
3821 # Sun C++ 4.x
3822 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
3823 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
3824 ;;
3825 lcc*)
3826 # Lucid
3827 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
3828 ;;
3829 *)
3830 ;;
3831 esac
3832 ;;
3833 sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
3834 case $cc_basename in
3835 CC*)
3836 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3837 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
3838 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
3839 ;;
3840 esac
3841 ;;
3842 tandem*)
3843 case $cc_basename in
3844 NCC*)
3845 # NonStop-UX NCC 3.20
3846 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
3847 ;;
3848 *)
3849 ;;
3850 esac
3851 ;;
3852 vxworks*)
3853 ;;
3854 *)
3855 _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
3856 ;;
3857 esac
3858 fi
3859],
3860[
3861 if test "$GCC" = yes; then
3862 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3863 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
3864
3865 case $host_os in
3866 aix*)
3867 # All AIX code is PIC.
3868 if test "$host_cpu" = ia64; then
3869 # AIX 5 now supports IA64 processor
3870 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
3871 fi
3872 ;;
3873
3874 amigaos*)
3875 case $host_cpu in
3876 powerpc)
3877 # see comment about AmigaOS4 .so support
3878 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
3879 ;;
3880 m68k)
3881 # FIXME: we need at least 68020 code to build shared libraries, but
3882 # adding the `-m68020' flag to GCC prevents building anything better,
3883 # like `-m68040'.
3884 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
3885 ;;
3886 esac
3887 ;;
3888
3889 beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
3890 # PIC is the default for these OSes.
3891 ;;
3892
3893 mingw* | cygwin* | pw32* | os2* | cegcc*)
3894 # This hack is so that the source file can tell whether it is being
3895 # built for inclusion in a dll (and should export symbols for example).
3896 # Although the cygwin gcc ignores -fPIC, still need this for old-style
3897 # (--disable-auto-import) libraries
3898 m4_if([$1], [GCJ], [],
3899 [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
3900 ;;
3901
3902 darwin* | rhapsody*)
3903 # PIC is the default on this platform
3904 # Common symbols not allowed in MH_DYLIB files
3905 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
3906 ;;
3907
3908 hpux*)
3909 # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
3910 # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
3911 # sets the default TLS model and affects inlining.
3912 case $host_cpu in
3913 hppa*64*)
3914 # +Z the default
3915 ;;
3916 *)
3917 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
3918 ;;
3919 esac
3920 ;;
3921
3922 interix[[3-9]]*)
3923 # Interix 3.x gcc -fpic/-fPIC options generate broken code.
3924 # Instead, we relocate shared libraries at runtime.
3925 ;;
3926
3927 msdosdjgpp*)
3928 # Just because we use GCC doesn't mean we suddenly get shared libraries
3929 # on systems that don't support them.
3930 _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
3931 enable_shared=no
3932 ;;
3933
3934 *nto* | *qnx*)
3935 # QNX uses GNU C++, but need to define -shared option too, otherwise
3936 # it will coredump.
3937 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
3938 ;;
3939
3940 sysv4*MP*)
3941 if test -d /usr/nec; then
3942 _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
3943 fi
3944 ;;
3945
3946 *)
3947 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
3948 ;;
3949 esac
3950 else
3951 # PORTME Check for flag to pass linker flags through the system compiler.
3952 case $host_os in
3953 aix*)
3954 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3955 if test "$host_cpu" = ia64; then
3956 # AIX 5 now supports IA64 processor
3957 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
3958 else
3959 _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
3960 fi
3961 ;;
3962
3963 mingw* | cygwin* | pw32* | os2* | cegcc*)
3964 # This hack is so that the source file can tell whether it is being
3965 # built for inclusion in a dll (and should export symbols for example).
3966 m4_if([$1], [GCJ], [],
3967 [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
3968 ;;
3969
3970 hpux9* | hpux10* | hpux11*)
3971 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3972 # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
3973 # not for PA HP-UX.
3974 case $host_cpu in
3975 hppa*64*|ia64*)
3976 # +Z the default
3977 ;;
3978 *)
3979 _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
3980 ;;
3981 esac
3982 # Is there a better lt_prog_compiler_static that works with the bundled CC?
3983 _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
3984 ;;
3985
3986 irix5* | irix6* | nonstopux*)
3987 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3988 # PIC (with -KPIC) is the default.
3989 _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
3990 ;;
3991
3992 linux* | k*bsd*-gnu | kopensolaris*-gnu)
3993 case $cc_basename in
3994 # old Intel for x86_64 which still supported -KPIC.
3995 ecc*)
3996 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3997 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
3998 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
3999 ;;
4000 # icc used to be incompatible with GCC.
4001 # ICC 10 doesn't accept -KPIC any more.
4002 icc* | ifort*)
4003 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4004 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4005 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4006 ;;
4007 # Lahey Fortran 8.1.
4008 lf95*)
4009 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4010 _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
4011 _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
4012 ;;
4013 pgcc* | pgf77* | pgf90* | pgf95*)
4014 # Portland Group compilers (*not* the Pentium gcc compiler,
4015 # which looks to be a dead project)
4016 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4017 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
4018 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4019 ;;
4020 ccc*)
4021 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4022 # All Alpha code is PIC.
4023 _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
4024 ;;
4025 xl*)
4026 # IBM XL C 8.0/Fortran 10.1 on PPC
4027 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4028 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
4029 _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
4030 ;;
4031 *)
4032 case `$CC -V 2>&1 | sed 5q` in
4033 *Sun\ C*)
4034 # Sun C 5.9
4035 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4036 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4037 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4038 ;;
4039 *Sun\ F*)
4040 # Sun Fortran 8.3 passes all unrecognized flags to the linker
4041 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4042 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4043 _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
4044 ;;
4045 esac
4046 ;;
4047 esac
4048 ;;
4049
4050 newsos6)
4051 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4052 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4053 ;;
4054
4055 *nto* | *qnx*)
4056 # QNX uses GNU C++, but need to define -shared option too, otherwise
4057 # it will coredump.
4058 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
4059 ;;
4060
4061 osf3* | osf4* | osf5*)
4062 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4063 # All OSF/1 code is PIC.
4064 _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
4065 ;;
4066
4067 rdos*)
4068 _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
4069 ;;
4070
4071 solaris*)
4072 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4073 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4074 case $cc_basename in
4075 f77* | f90* | f95*)
4076 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
4077 *)
4078 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
4079 esac
4080 ;;
4081
4082 sunos4*)
4083 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
4084 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
4085 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4086 ;;
4087
4088 sysv4 | sysv4.2uw2* | sysv4.3*)
4089 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4090 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4091 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4092 ;;
4093
4094 sysv4*MP*)
4095 if test -d /usr/nec ;then
4096 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
4097 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4098 fi
4099 ;;
4100
4101 sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
4102 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4103 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4104 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4105 ;;
4106
4107 unicos*)
4108 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4109 _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
4110 ;;
4111
4112 uts4*)
4113 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
4114 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4115 ;;
4116
4117 *)
4118 _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
4119 ;;
4120 esac
4121 fi
4122])
4123case $host_os in
4124 # For platforms which do not support PIC, -DPIC is meaningless:
4125 *djgpp*)
4126 _LT_TAGVAR(lt_prog_compiler_pic, $1)=
4127 ;;
4128 *)
4129 _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
4130 ;;
4131esac
4132AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
4133_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
4134 [How to pass a linker flag through the compiler])
4135
4136#
4137# Check to make sure the PIC flag actually works.
4138#
4139if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
4140 _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
4141 [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
4142 [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
4143 [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
4144 "" | " "*) ;;
4145 *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
4146 esac],
4147 [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
4148 _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
4149fi
4150_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
4151 [Additional compiler flags for building library objects])
4152
4153#
4154# Check to make sure the static flag actually works.
4155#
4156wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
4157_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
4158 _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
4159 $lt_tmp_static_flag,
4160 [],
4161 [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
4162_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
4163 [Compiler flag to prevent dynamic linking])
4164])# _LT_COMPILER_PIC
4165
4166
4167# _LT_LINKER_SHLIBS([TAGNAME])
4168# ----------------------------
4169# See if the linker supports building shared libraries.
4170m4_defun([_LT_LINKER_SHLIBS],
4171[AC_REQUIRE([LT_PATH_LD])dnl
4172AC_REQUIRE([LT_PATH_NM])dnl
4173m4_require([_LT_FILEUTILS_DEFAULTS])dnl
4174m4_require([_LT_DECL_EGREP])dnl
4175m4_require([_LT_DECL_SED])dnl
4176m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
4177m4_require([_LT_TAG_COMPILER])dnl
4178AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
4179m4_if([$1], [CXX], [
4180 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
4181 case $host_os in
4182 aix[[4-9]]*)
4183 # If we're using GNU nm, then we don't want the "-C" option.
4184 # -C means demangle to AIX nm, but means don't demangle with GNU nm
4185 if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
4186 _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
4187 else
4188 _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
4189 fi
4190 ;;
4191 pw32*)
4192 _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
4193 ;;
4194 cygwin* | mingw* | cegcc*)
4195 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
4196 ;;
4197 linux* | k*bsd*-gnu)
4198 _LT_TAGVAR(link_all_deplibs, $1)=no
4199 ;;
4200 *)
4201 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
4202 ;;
4203 esac
4204 _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
4205], [
4206 runpath_var=
4207 _LT_TAGVAR(allow_undefined_flag, $1)=
4208 _LT_TAGVAR(always_export_symbols, $1)=no
4209 _LT_TAGVAR(archive_cmds, $1)=
4210 _LT_TAGVAR(archive_expsym_cmds, $1)=
4211 _LT_TAGVAR(compiler_needs_object, $1)=no
4212 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
4213 _LT_TAGVAR(export_dynamic_flag_spec, $1)=
4214 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
4215 _LT_TAGVAR(hardcode_automatic, $1)=no
4216 _LT_TAGVAR(hardcode_direct, $1)=no
4217 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
4218 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
4219 _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
4220 _LT_TAGVAR(hardcode_libdir_separator, $1)=
4221 _LT_TAGVAR(hardcode_minus_L, $1)=no
4222 _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
4223 _LT_TAGVAR(inherit_rpath, $1)=no
4224 _LT_TAGVAR(link_all_deplibs, $1)=unknown
4225 _LT_TAGVAR(module_cmds, $1)=
4226 _LT_TAGVAR(module_expsym_cmds, $1)=
4227 _LT_TAGVAR(old_archive_from_new_cmds, $1)=
4228 _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
4229 _LT_TAGVAR(thread_safe_flag_spec, $1)=
4230 _LT_TAGVAR(whole_archive_flag_spec, $1)=
4231 # include_expsyms should be a list of space-separated symbols to be *always*
4232 # included in the symbol list
4233 _LT_TAGVAR(include_expsyms, $1)=
4234 # exclude_expsyms can be an extended regexp of symbols to exclude
4235 # it will be wrapped by ` (' and `)$', so one must not match beginning or
4236 # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
4237 # as well as any symbol that contains `d'.
4238 _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
4239 # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
4240 # platforms (ab)use it in PIC code, but their linkers get confused if
4241 # the symbol is explicitly referenced. Since portable code cannot
4242 # rely on this symbol name, it's probably fine to never include it in
4243 # preloaded symbol tables.
4244 # Exclude shared library initialization/finalization symbols.
4245dnl Note also adjust exclude_expsyms for C++ above.
4246 extract_expsyms_cmds=
4247
4248 case $host_os in
4249 cygwin* | mingw* | pw32* | cegcc*)
4250 # FIXME: the MSVC++ port hasn't been tested in a loooong time
4251 # When not using gcc, we currently assume that we are using
4252 # Microsoft Visual C++.
4253 if test "$GCC" != yes; then
4254 with_gnu_ld=no
4255 fi
4256 ;;
4257 interix*)
4258 # we just hope/assume this is gcc and not c89 (= MSVC++)
4259 with_gnu_ld=yes
4260 ;;
4261 openbsd*)
4262 with_gnu_ld=no
4263 ;;
4264 linux* | k*bsd*-gnu)
4265 _LT_TAGVAR(link_all_deplibs, $1)=no
4266 ;;
4267 esac
4268
4269 _LT_TAGVAR(ld_shlibs, $1)=yes
4270 if test "$with_gnu_ld" = yes; then
4271 # If archive_cmds runs LD, not CC, wlarc should be empty
4272 wlarc='${wl}'
4273
4274 # Set some defaults for GNU ld with shared library support. These
4275 # are reset later if shared libraries are not supported. Putting them
4276 # here allows them to be overridden if necessary.
4277 runpath_var=LD_RUN_PATH
4278 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
4279 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
4280 # ancient GNU ld didn't support --whole-archive et. al.
4281 if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
4282 _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
4283 else
4284 _LT_TAGVAR(whole_archive_flag_spec, $1)=
4285 fi
4286 supports_anon_versioning=no
4287 case `$LD -v 2>&1` in
4288 *GNU\ gold*) supports_anon_versioning=yes ;;
4289 *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
4290 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
4291 *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
4292 *\ 2.11.*) ;; # other 2.11 versions
4293 *) supports_anon_versioning=yes ;;
4294 esac
4295
4296 # See if GNU ld supports shared libraries.
4297 case $host_os in
4298 aix[[3-9]]*)
4299 # On AIX/PPC, the GNU linker is very broken
4300 if test "$host_cpu" != ia64; then
4301 _LT_TAGVAR(ld_shlibs, $1)=no
4302 cat <<_LT_EOF 1>&2
4303
4304*** Warning: the GNU linker, at least up to release 2.9.1, is reported
4305*** to be unable to reliably create shared libraries on AIX.
4306*** Therefore, libtool is disabling shared libraries support. If you
4307*** really care for shared libraries, you may want to modify your PATH
4308*** so that a non-GNU linker is found, and then restart.
4309
4310_LT_EOF
4311 fi
4312 ;;
4313
4314 amigaos*)
4315 case $host_cpu in
4316 powerpc)
4317 # see comment about AmigaOS4 .so support
4318 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4319 _LT_TAGVAR(archive_expsym_cmds, $1)=''
4320 ;;
4321 m68k)
4322 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
4323 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
4324 _LT_TAGVAR(hardcode_minus_L, $1)=yes
4325 ;;
4326 esac
4327 ;;
4328
4329 beos*)
4330 if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
4331 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
4332 # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
4333 # support --undefined. This deserves some investigation. FIXME
4334 _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4335 else
4336 _LT_TAGVAR(ld_shlibs, $1)=no
4337 fi
4338 ;;
4339
4340 cygwin* | mingw* | pw32* | cegcc*)
4341 # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
4342 # as there is no search path for DLLs.
4343 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
4344 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
4345 _LT_TAGVAR(always_export_symbols, $1)=no
4346 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
4347 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
4348
4349 if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
4350 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
4351 # If the export-symbols file already is a .def file (1st line
4352 # is EXPORTS), use it as is; otherwise, prepend...
4353 _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
4354 cp $export_symbols $output_objdir/$soname.def;
4355 else
4356 echo EXPORTS > $output_objdir/$soname.def;
4357 cat $export_symbols >> $output_objdir/$soname.def;
4358 fi~
4359 $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
4360 else
4361 _LT_TAGVAR(ld_shlibs, $1)=no
4362 fi
4363 ;;
4364
4365 interix[[3-9]]*)
4366 _LT_TAGVAR(hardcode_direct, $1)=no
4367 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
4368 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
4369 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
4370 # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
4371 # Instead, shared libraries are loaded at an image base (0x10000000 by
4372 # default) and relocated if they conflict, which is a slow very memory
4373 # consuming and fragmenting process. To avoid this, we pick a random,
4374 # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
4375 # time. Moving up from 0x10000000 also allows more sbrk(2) space.
4376 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
4377 _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
4378 ;;
4379
4380 gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
4381 tmp_diet=no
4382 if test "$host_os" = linux-dietlibc; then
4383 case $cc_basename in
4384 diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
4385 esac
4386 fi
4387 if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
4388 && test "$tmp_diet" = no
4389 then
4390 tmp_addflag=
4391 tmp_sharedflag='-shared'
4392 case $cc_basename,$host_cpu in
4393 pgcc*) # Portland Group C compiler
4394 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
4395 tmp_addflag=' $pic_flag'
4396 ;;
4397 pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers
4398 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
4399 tmp_addflag=' $pic_flag -Mnomain' ;;
4400 ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
4401 tmp_addflag=' -i_dynamic' ;;
4402 efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
4403 tmp_addflag=' -i_dynamic -nofor_main' ;;
4404 ifc* | ifort*) # Intel Fortran compiler
4405 tmp_addflag=' -nofor_main' ;;
4406 lf95*) # Lahey Fortran 8.1
4407 _LT_TAGVAR(whole_archive_flag_spec, $1)=
4408 tmp_sharedflag='--shared' ;;
4409 xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
4410 tmp_sharedflag='-qmkshrobj'
4411 tmp_addflag= ;;
4412 esac
4413 case `$CC -V 2>&1 | sed 5q` in
4414 *Sun\ C*) # Sun C 5.9
4415 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
4416 _LT_TAGVAR(compiler_needs_object, $1)=yes
4417 tmp_sharedflag='-G' ;;
4418 *Sun\ F*) # Sun Fortran 8.3
4419 tmp_sharedflag='-G' ;;
4420 esac
4421 _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4422
4423 if test "x$supports_anon_versioning" = xyes; then
4424 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
4425 cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
4426 echo "local: *; };" >> $output_objdir/$libname.ver~
4427 $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
4428 fi
4429
4430 case $cc_basename in
4431 xlf*)
4432 # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
4433 _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
4434 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
4435 _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
4436 _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
4437 if test "x$supports_anon_versioning" = xyes; then
4438 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
4439 cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
4440 echo "local: *; };" >> $output_objdir/$libname.ver~
4441 $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
4442 fi
4443 ;;
4444 esac
4445 else
4446 _LT_TAGVAR(ld_shlibs, $1)=no
4447 fi
4448 ;;
4449
4450 netbsd* | netbsdelf*-gnu)
4451 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
4452 _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
4453 wlarc=
4454 else
4455 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4456 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
4457 fi
4458 ;;
4459
4460 solaris*)
4461 if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
4462 _LT_TAGVAR(ld_shlibs, $1)=no
4463 cat <<_LT_EOF 1>&2
4464
4465*** Warning: The releases 2.8.* of the GNU linker cannot reliably
4466*** create shared libraries on Solaris systems. Therefore, libtool
4467*** is disabling shared libraries support. We urge you to upgrade GNU
4468*** binutils to release 2.9.1 or newer. Another option is to modify
4469*** your PATH or compiler configuration so that the native linker is
4470*** used, and then restart.
4471
4472_LT_EOF
4473 elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
4474 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4475 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
4476 else
4477 _LT_TAGVAR(ld_shlibs, $1)=no
4478 fi
4479 ;;
4480
4481 sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
4482 case `$LD -v 2>&1` in
4483 *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
4484 _LT_TAGVAR(ld_shlibs, $1)=no
4485 cat <<_LT_EOF 1>&2
4486
4487*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
4488*** reliably create shared libraries on SCO systems. Therefore, libtool
4489*** is disabling shared libraries support. We urge you to upgrade GNU
4490*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
4491*** your PATH or compiler configuration so that the native linker is
4492*** used, and then restart.
4493
4494_LT_EOF
4495 ;;
4496 *)
4497 # For security reasons, it is highly recommended that you always
4498 # use absolute paths for naming shared libraries, and exclude the
4499 # DT_RUNPATH tag from executables and libraries. But doing so
4500 # requires that you compile everything twice, which is a pain.
4501 if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
4502 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
4503 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4504 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
4505 else
4506 _LT_TAGVAR(ld_shlibs, $1)=no
4507 fi
4508 ;;
4509 esac
4510 ;;
4511
4512 sunos4*)
4513 _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
4514 wlarc=
4515 _LT_TAGVAR(hardcode_direct, $1)=yes
4516 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
4517 ;;
4518
4519 *)
4520 if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
4521 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4522 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
4523 else
4524 _LT_TAGVAR(ld_shlibs, $1)=no
4525 fi
4526 ;;
4527 esac
4528
4529 if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
4530 runpath_var=
4531 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
4532 _LT_TAGVAR(export_dynamic_flag_spec, $1)=
4533 _LT_TAGVAR(whole_archive_flag_spec, $1)=
4534 fi
4535 else
4536 # PORTME fill in a description of your system's linker (not GNU ld)
4537 case $host_os in
4538 aix3*)
4539 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
4540 _LT_TAGVAR(always_export_symbols, $1)=yes
4541 _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
4542 # Note: this linker hardcodes the directories in LIBPATH if there
4543 # are no directories specified by -L.
4544 _LT_TAGVAR(hardcode_minus_L, $1)=yes
4545 if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
4546 # Neither direct hardcoding nor static linking is supported with a
4547 # broken collect2.
4548 _LT_TAGVAR(hardcode_direct, $1)=unsupported
4549 fi
4550 ;;
4551
4552 aix[[4-9]]*)
4553 if test "$host_cpu" = ia64; then
4554 # On IA64, the linker does run time linking by default, so we don't
4555 # have to do anything special.
4556 aix_use_runtimelinking=no
4557 exp_sym_flag='-Bexport'
4558 no_entry_flag=""
4559 else
4560 # If we're using GNU nm, then we don't want the "-C" option.
4561 # -C means demangle to AIX nm, but means don't demangle with GNU nm
4562 if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
4563 _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
4564 else
4565 _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
4566 fi
4567 aix_use_runtimelinking=no
4568
4569 # Test if we are trying to use run time linking or normal
4570 # AIX style linking. If -brtl is somewhere in LDFLAGS, we
4571 # need to do runtime linking.
4572 case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
4573 for ld_flag in $LDFLAGS; do
4574 if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
4575 aix_use_runtimelinking=yes
4576 break
4577 fi
4578 done
4579 ;;
4580 esac
4581
4582 exp_sym_flag='-bexport'
4583 no_entry_flag='-bnoentry'
4584 fi
4585
4586 # When large executables or shared objects are built, AIX ld can
4587 # have problems creating the table of contents. If linking a library
4588 # or program results in "error TOC overflow" add -mminimal-toc to
4589 # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
4590 # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
4591
4592 _LT_TAGVAR(archive_cmds, $1)=''
4593 _LT_TAGVAR(hardcode_direct, $1)=yes
4594 _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
4595 _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
4596 _LT_TAGVAR(link_all_deplibs, $1)=yes
4597 _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
4598
4599 if test "$GCC" = yes; then
4600 case $host_os in aix4.[[012]]|aix4.[[012]].*)
4601 # We only want to do this on AIX 4.2 and lower, the check
4602 # below for broken collect2 doesn't work under 4.3+
4603 collect2name=`${CC} -print-prog-name=collect2`
4604 if test -f "$collect2name" &&
4605 strings "$collect2name" | $GREP resolve_lib_name >/dev/null
4606 then
4607 # We have reworked collect2
4608 :
4609 else
4610 # We have old collect2
4611 _LT_TAGVAR(hardcode_direct, $1)=unsupported
4612 # It fails to find uninstalled libraries when the uninstalled
4613 # path is not listed in the libpath. Setting hardcode_minus_L
4614 # to unsupported forces relinking
4615 _LT_TAGVAR(hardcode_minus_L, $1)=yes
4616 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
4617 _LT_TAGVAR(hardcode_libdir_separator, $1)=
4618 fi
4619 ;;
4620 esac
4621 shared_flag='-shared'
4622 if test "$aix_use_runtimelinking" = yes; then
4623 shared_flag="$shared_flag "'${wl}-G'
4624 fi
4625 _LT_TAGVAR(link_all_deplibs, $1)=no
4626 else
4627 # not using gcc
4628 if test "$host_cpu" = ia64; then
4629 # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
4630 # chokes on -Wl,-G. The following line is correct:
4631 shared_flag='-G'
4632 else
4633 if test "$aix_use_runtimelinking" = yes; then
4634 shared_flag='${wl}-G'
4635 else
4636 shared_flag='${wl}-bM:SRE'
4637 fi
4638 fi
4639 fi
4640
4641 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
4642 # It seems that -bexpall does not export symbols beginning with
4643 # underscore (_), so it is better to generate a list of symbols to export.
4644 _LT_TAGVAR(always_export_symbols, $1)=yes
4645 if test "$aix_use_runtimelinking" = yes; then
4646 # Warning - without using the other runtime loading flags (-brtl),
4647 # -berok will link without error, but may produce a broken library.
4648 _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
4649 # Determine the default libpath from the value encoded in an
4650 # empty executable.
4651 _LT_SYS_MODULE_PATH_AIX
4652 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
4653 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
4654 else
4655 if test "$host_cpu" = ia64; then
4656 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
4657 _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
4658 _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
4659 else
4660 # Determine the default libpath from the value encoded in an
4661 # empty executable.
4662 _LT_SYS_MODULE_PATH_AIX
4663 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
4664 # Warning - without using the other run time loading flags,
4665 # -berok will link without error, but may produce a broken library.
4666 _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
4667 _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
4668 # Exported symbols can be pulled into shared objects from archives
4669 _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
4670 _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
4671 # This is similar to how AIX traditionally builds its shared libraries.
4672 _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
4673 fi
4674 fi
4675 ;;
4676
4677 amigaos*)
4678 case $host_cpu in
4679 powerpc)
4680 # see comment about AmigaOS4 .so support
4681 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4682 _LT_TAGVAR(archive_expsym_cmds, $1)=''
4683 ;;
4684 m68k)
4685 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
4686 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
4687 _LT_TAGVAR(hardcode_minus_L, $1)=yes
4688 ;;
4689 esac
4690 ;;
4691
4692 bsdi[[45]]*)
4693 _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
4694 ;;
4695
4696 cygwin* | mingw* | pw32* | cegcc*)
4697 # When not using gcc, we currently assume that we are using
4698 # Microsoft Visual C++.
4699 # hardcode_libdir_flag_spec is actually meaningless, as there is
4700 # no search path for DLLs.
4701 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
4702 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
4703 # Tell ltmain to make .lib files, not .a files.
4704 libext=lib
4705 # Tell ltmain to make .dll files, not .so files.
4706 shrext_cmds=".dll"
4707 # FIXME: Setting linknames here is a bad hack.
4708 _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
4709 # The linker will automatically build a .lib file if we build a DLL.
4710 _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
4711 # FIXME: Should let the user specify the lib program.
4712 _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
4713 _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
4714 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
4715 ;;
4716
4717 darwin* | rhapsody*)
4718 _LT_DARWIN_LINKER_FEATURES($1)
4719 ;;
4720
4721 dgux*)
4722 _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
4723 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
4724 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
4725 ;;
4726
4727 freebsd1*)
4728 _LT_TAGVAR(ld_shlibs, $1)=no
4729 ;;
4730
4731 # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
4732 # support. Future versions do this automatically, but an explicit c++rt0.o
4733 # does not break anything, and helps significantly (at the cost of a little
4734 # extra space).
4735 freebsd2.2*)
4736 _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
4737 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
4738 _LT_TAGVAR(hardcode_direct, $1)=yes
4739 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
4740 ;;
4741
4742 # Unfortunately, older versions of FreeBSD 2 do not have this feature.
4743 freebsd2*)
4744 _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
4745 _LT_TAGVAR(hardcode_direct, $1)=yes
4746 _LT_TAGVAR(hardcode_minus_L, $1)=yes
4747 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
4748 ;;
4749
4750 # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
4751 freebsd* | dragonfly*)
4752 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
4753 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
4754 _LT_TAGVAR(hardcode_direct, $1)=yes
4755 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
4756 ;;
4757
4758 hpux9*)
4759 if test "$GCC" = yes; then
4760 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
4761 else
4762 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
4763 fi
4764 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
4765 _LT_TAGVAR(hardcode_libdir_separator, $1)=:
4766 _LT_TAGVAR(hardcode_direct, $1)=yes
4767
4768 # hardcode_minus_L: Not really in the search PATH,
4769 # but as the default location of the library.
4770 _LT_TAGVAR(hardcode_minus_L, $1)=yes
4771 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
4772 ;;
4773
4774 hpux10*)
4775 if test "$GCC" = yes -a "$with_gnu_ld" = no; then
4776 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
4777 else
4778 _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
4779 fi
4780 if test "$with_gnu_ld" = no; then
4781 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
4782 _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
4783 _LT_TAGVAR(hardcode_libdir_separator, $1)=:
4784 _LT_TAGVAR(hardcode_direct, $1)=yes
4785 _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
4786 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
4787 # hardcode_minus_L: Not really in the search PATH,
4788 # but as the default location of the library.
4789 _LT_TAGVAR(hardcode_minus_L, $1)=yes
4790 fi
4791 ;;
4792
4793 hpux11*)
4794 if test "$GCC" = yes -a "$with_gnu_ld" = no; then
4795 case $host_cpu in
4796 hppa*64*)
4797 _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
4798 ;;
4799 ia64*)
4800 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
4801 ;;
4802 *)
4803 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
4804 ;;
4805 esac
4806 else
4807 case $host_cpu in
4808 hppa*64*)
4809 _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
4810 ;;
4811 ia64*)
4812 _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
4813 ;;
4814 *)
4815 _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
4816 ;;
4817 esac
4818 fi
4819 if test "$with_gnu_ld" = no; then
4820 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
4821 _LT_TAGVAR(hardcode_libdir_separator, $1)=:
4822
4823 case $host_cpu in
4824 hppa*64*|ia64*)
4825 _LT_TAGVAR(hardcode_direct, $1)=no
4826 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
4827 ;;
4828 *)
4829 _LT_TAGVAR(hardcode_direct, $1)=yes
4830 _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
4831 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
4832
4833 # hardcode_minus_L: Not really in the search PATH,
4834 # but as the default location of the library.
4835 _LT_TAGVAR(hardcode_minus_L, $1)=yes
4836 ;;
4837 esac
4838 fi
4839 ;;
4840
4841 irix5* | irix6* | nonstopux*)
4842 if test "$GCC" = yes; then
4843 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
4844 # Try to use the -exported_symbol ld option, if it does not
4845 # work, assume that -exports_file does not work either and
4846 # implicitly export all symbols.
4847 save_LDFLAGS="$LDFLAGS"
4848 LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
4849 AC_LINK_IFELSE(int foo(void) {},
4850 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
4851 )
4852 LDFLAGS="$save_LDFLAGS"
4853 else
4854 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
4855 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
4856 fi
4857 _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
4858 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
4859 _LT_TAGVAR(hardcode_libdir_separator, $1)=:
4860 _LT_TAGVAR(inherit_rpath, $1)=yes
4861 _LT_TAGVAR(link_all_deplibs, $1)=yes
4862 ;;
4863
4864 netbsd* | netbsdelf*-gnu)
4865 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
4866 _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
4867 else
4868 _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
4869 fi
4870 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
4871 _LT_TAGVAR(hardcode_direct, $1)=yes
4872 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
4873 ;;
4874
4875 newsos6)
4876 _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
4877 _LT_TAGVAR(hardcode_direct, $1)=yes
4878 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
4879 _LT_TAGVAR(hardcode_libdir_separator, $1)=:
4880 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
4881 ;;
4882
4883 *nto* | *qnx*)
4884 ;;
4885
4886 openbsd*)
4887 if test -f /usr/libexec/ld.so; then
4888 _LT_TAGVAR(hardcode_direct, $1)=yes
4889 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
4890 _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
4891 if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
4892 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
4893 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
4894 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
4895 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
4896 else
4897 case $host_os in
4898 openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
4899 _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
4900 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
4901 ;;
4902 *)
4903 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
4904 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
4905 ;;
4906 esac
4907 fi
4908 else
4909 _LT_TAGVAR(ld_shlibs, $1)=no
4910 fi
4911 ;;
4912
4913 os2*)
4914 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
4915 _LT_TAGVAR(hardcode_minus_L, $1)=yes
4916 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
4917 _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
4918 _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
4919 ;;
4920
4921 osf3*)
4922 if test "$GCC" = yes; then
4923 _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
4924 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
4925 else
4926 _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
4927 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
4928 fi
4929 _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
4930 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
4931 _LT_TAGVAR(hardcode_libdir_separator, $1)=:
4932 ;;
4933
4934 osf4* | osf5*) # as osf3* with the addition of -msym flag
4935 if test "$GCC" = yes; then
4936 _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
4937 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
4938 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
4939 else
4940 _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
4941 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
4942 _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
4943 $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
4944
4945 # Both c and cxx compiler support -rpath directly
4946 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
4947 fi
4948 _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
4949 _LT_TAGVAR(hardcode_libdir_separator, $1)=:
4950 ;;
4951
4952 solaris*)
4953 _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
4954 if test "$GCC" = yes; then
4955 wlarc='${wl}'
4956 _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
4957 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
4958 $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
4959 else
4960 case `$CC -V 2>&1` in
4961 *"Compilers 5.0"*)
4962 wlarc=''
4963 _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
4964 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
4965 $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
4966 ;;
4967 *)
4968 wlarc='${wl}'
4969 _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
4970 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
4971 $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
4972 ;;
4973 esac
4974 fi
4975 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
4976 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
4977 case $host_os in
4978 solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
4979 *)
4980 # The compiler driver will combine and reorder linker options,
4981 # but understands `-z linker_flag'. GCC discards it without `$wl',
4982 # but is careful enough not to reorder.
4983 # Supported since Solaris 2.6 (maybe 2.5.1?)
4984 if test "$GCC" = yes; then
4985 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
4986 else
4987 _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
4988 fi
4989 ;;
4990 esac
4991 _LT_TAGVAR(link_all_deplibs, $1)=yes
4992 ;;
4993
4994 sunos4*)
4995 if test "x$host_vendor" = xsequent; then
4996 # Use $CC to link under sequent, because it throws in some extra .o
4997 # files that make .init and .fini sections work.
4998 _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
4999 else
5000 _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
5001 fi
5002 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
5003 _LT_TAGVAR(hardcode_direct, $1)=yes
5004 _LT_TAGVAR(hardcode_minus_L, $1)=yes
5005 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5006 ;;
5007
5008 sysv4)
5009 case $host_vendor in
5010 sni)
5011 _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
5012 _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
5013 ;;
5014 siemens)
5015 ## LD is ld it makes a PLAMLIB
5016 ## CC just makes a GrossModule.
5017 _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
5018 _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
5019 _LT_TAGVAR(hardcode_direct, $1)=no
5020 ;;
5021 motorola)
5022 _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
5023 _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
5024 ;;
5025 esac
5026 runpath_var='LD_RUN_PATH'
5027 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5028 ;;
5029
5030 sysv4.3*)
5031 _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
5032 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5033 _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
5034 ;;
5035
5036 sysv4*MP*)
5037 if test -d /usr/nec; then
5038 _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
5039 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5040 runpath_var=LD_RUN_PATH
5041 hardcode_runpath_var=yes
5042 _LT_TAGVAR(ld_shlibs, $1)=yes
5043 fi
5044 ;;
5045
5046 sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
5047 _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
5048 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
5049 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5050 runpath_var='LD_RUN_PATH'
5051
5052 if test "$GCC" = yes; then
5053 _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
5054 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
5055 else
5056 _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
5057 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
5058 fi
5059 ;;
5060
5061 sysv5* | sco3.2v5* | sco5v6*)
5062 # Note: We can NOT use -z defs as we might desire, because we do not
5063 # link with -lc, and that would cause any symbols used from libc to
5064 # always be unresolved, which means just about no library would
5065 # ever link correctly. If we're not using GNU ld we use -z text
5066 # though, which does catch some bad symbols but isn't as heavy-handed
5067 # as -z defs.
5068 _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
5069 _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
5070 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
5071 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5072 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
5073 _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
5074 _LT_TAGVAR(link_all_deplibs, $1)=yes
5075 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
5076 runpath_var='LD_RUN_PATH'
5077
5078 if test "$GCC" = yes; then
5079 _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
5080 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
5081 else
5082 _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
5083 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
5084 fi
5085 ;;
5086
5087 uts4*)
5088 _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
5089 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
5090 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5091 ;;
5092
5093 *)
5094 _LT_TAGVAR(ld_shlibs, $1)=no
5095 ;;
5096 esac
5097
5098 if test x$host_vendor = xsni; then
5099 case $host in
5100 sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
5101 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
5102 ;;
5103 esac
5104 fi
5105 fi
5106])
5107AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
5108test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
5109
5110_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
5111
5112_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
5113_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
5114_LT_DECL([], [extract_expsyms_cmds], [2],
5115 [The commands to extract the exported symbol list from a shared archive])
5116
5117#
5118# Do we need to explicitly link libc?
5119#
5120case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
5121x|xyes)
5122 # Assume -lc should be added
5123 _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
5124
5125 if test "$enable_shared" = yes && test "$GCC" = yes; then
5126 case $_LT_TAGVAR(archive_cmds, $1) in
5127 *'~'*)
5128 # FIXME: we may have to deal with multi-command sequences.
5129 ;;
5130 '$CC '*)
5131 # Test whether the compiler implicitly links with -lc since on some
5132 # systems, -lgcc has to come before -lc. If gcc already passes -lc
5133 # to ld, don't add -lc before -lgcc.
5134 AC_MSG_CHECKING([whether -lc should be explicitly linked in])
5135 $RM conftest*
5136 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
5137
5138 if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
5139 soname=conftest
5140 lib=conftest
5141 libobjs=conftest.$ac_objext
5142 deplibs=
5143 wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
5144 pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
5145 compiler_flags=-v
5146 linker_flags=-v
5147 verstring=
5148 output_objdir=.
5149 libname=conftest
5150 lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
5151 _LT_TAGVAR(allow_undefined_flag, $1)=
5152 if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
5153 then
5154 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
5155 else
5156 _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
5157 fi
5158 _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
5159 else
5160 cat conftest.err 1>&5
5161 fi
5162 $RM conftest*
5163 AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)])
5164 ;;
5165 esac
5166 fi
5167 ;;
5168esac
5169
5170_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
5171 [Whether or not to add -lc for building shared libraries])
5172_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
5173 [enable_shared_with_static_runtimes], [0],
5174 [Whether or not to disallow shared libs when runtime libs are static])
5175_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
5176 [Compiler flag to allow reflexive dlopens])
5177_LT_TAGDECL([], [whole_archive_flag_spec], [1],
5178 [Compiler flag to generate shared objects directly from archives])
5179_LT_TAGDECL([], [compiler_needs_object], [1],
5180 [Whether the compiler copes with passing no objects directly])
5181_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
5182 [Create an old-style archive from a shared archive])
5183_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
5184 [Create a temporary old-style archive to link instead of a shared archive])
5185_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
5186_LT_TAGDECL([], [archive_expsym_cmds], [2])
5187_LT_TAGDECL([], [module_cmds], [2],
5188 [Commands used to build a loadable module if different from building
5189 a shared archive.])
5190_LT_TAGDECL([], [module_expsym_cmds], [2])
5191_LT_TAGDECL([], [with_gnu_ld], [1],
5192 [Whether we are building with GNU ld or not])
5193_LT_TAGDECL([], [allow_undefined_flag], [1],
5194 [Flag that allows shared libraries with undefined symbols to be built])
5195_LT_TAGDECL([], [no_undefined_flag], [1],
5196 [Flag that enforces no undefined symbols])
5197_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
5198 [Flag to hardcode $libdir into a binary during linking.
5199 This must work even if $libdir does not exist])
5200_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
5201 [[If ld is used when linking, flag to hardcode $libdir into a binary
5202 during linking. This must work even if $libdir does not exist]])
5203_LT_TAGDECL([], [hardcode_libdir_separator], [1],
5204 [Whether we need a single "-rpath" flag with a separated argument])
5205_LT_TAGDECL([], [hardcode_direct], [0],
5206 [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
5207 DIR into the resulting binary])
5208_LT_TAGDECL([], [hardcode_direct_absolute], [0],
5209 [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
5210 DIR into the resulting binary and the resulting library dependency is
5211 "absolute", i.e impossible to change by setting ${shlibpath_var} if the
5212 library is relocated])
5213_LT_TAGDECL([], [hardcode_minus_L], [0],
5214 [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
5215 into the resulting binary])
5216_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
5217 [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
5218 into the resulting binary])
5219_LT_TAGDECL([], [hardcode_automatic], [0],
5220 [Set to "yes" if building a shared library automatically hardcodes DIR
5221 into the library and all subsequent libraries and executables linked
5222 against it])
5223_LT_TAGDECL([], [inherit_rpath], [0],
5224 [Set to yes if linker adds runtime paths of dependent libraries
5225 to runtime path list])
5226_LT_TAGDECL([], [link_all_deplibs], [0],
5227 [Whether libtool must link a program against all its dependency libraries])
5228_LT_TAGDECL([], [fix_srcfile_path], [1],
5229 [Fix the shell variable $srcfile for the compiler])
5230_LT_TAGDECL([], [always_export_symbols], [0],
5231 [Set to "yes" if exported symbols are required])
5232_LT_TAGDECL([], [export_symbols_cmds], [2],
5233 [The commands to list exported symbols])
5234_LT_TAGDECL([], [exclude_expsyms], [1],
5235 [Symbols that should not be listed in the preloaded symbols])
5236_LT_TAGDECL([], [include_expsyms], [1],
5237 [Symbols that must always be exported])
5238_LT_TAGDECL([], [prelink_cmds], [2],
5239 [Commands necessary for linking programs (against libraries) with templates])
5240_LT_TAGDECL([], [file_list_spec], [1],
5241 [Specify filename containing input files])
5242dnl FIXME: Not yet implemented
5243dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
5244dnl [Compiler flag to generate thread safe objects])
5245])# _LT_LINKER_SHLIBS
5246
5247
5248# _LT_LANG_C_CONFIG([TAG])
5249# ------------------------
5250# Ensure that the configuration variables for a C compiler are suitably
5251# defined. These variables are subsequently used by _LT_CONFIG to write
5252# the compiler configuration to `libtool'.
5253m4_defun([_LT_LANG_C_CONFIG],
5254[m4_require([_LT_DECL_EGREP])dnl
5255lt_save_CC="$CC"
5256AC_LANG_PUSH(C)
5257
5258# Source file extension for C test sources.
5259ac_ext=c
5260
5261# Object file extension for compiled C test sources.
5262objext=o
5263_LT_TAGVAR(objext, $1)=$objext
5264
5265# Code to be used in simple compile tests
5266lt_simple_compile_test_code="int some_variable = 0;"
5267
5268# Code to be used in simple link tests
5269lt_simple_link_test_code='int main(){return(0);}'
5270
5271_LT_TAG_COMPILER
5272# Save the default compiler, since it gets overwritten when the other
5273# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
5274compiler_DEFAULT=$CC
5275
5276# save warnings/boilerplate of simple test code
5277_LT_COMPILER_BOILERPLATE
5278_LT_LINKER_BOILERPLATE
5279
5280## CAVEAT EMPTOR:
5281## There is no encapsulation within the following macros, do not change
5282## the running order or otherwise move them around unless you know exactly
5283## what you are doing...
5284if test -n "$compiler"; then
5285 _LT_COMPILER_NO_RTTI($1)
5286 _LT_COMPILER_PIC($1)
5287 _LT_COMPILER_C_O($1)
5288 _LT_COMPILER_FILE_LOCKS($1)
5289 _LT_LINKER_SHLIBS($1)
5290 _LT_SYS_DYNAMIC_LINKER($1)
5291 _LT_LINKER_HARDCODE_LIBPATH($1)
5292 LT_SYS_DLOPEN_SELF
5293 _LT_CMD_STRIPLIB
5294
5295 # Report which library types will actually be built
5296 AC_MSG_CHECKING([if libtool supports shared libraries])
5297 AC_MSG_RESULT([$can_build_shared])
5298
5299 AC_MSG_CHECKING([whether to build shared libraries])
5300 test "$can_build_shared" = "no" && enable_shared=no
5301
5302 # On AIX, shared libraries and static libraries use the same namespace, and
5303 # are all built from PIC.
5304 case $host_os in
5305 aix3*)
5306 test "$enable_shared" = yes && enable_static=no
5307 if test -n "$RANLIB"; then
5308 archive_cmds="$archive_cmds~\$RANLIB \$lib"
5309 postinstall_cmds='$RANLIB $lib'
5310 fi
5311 ;;
5312
5313 aix[[4-9]]*)
5314 if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
5315 test "$enable_shared" = yes && enable_static=no
5316 fi
5317 ;;
5318 esac
5319 AC_MSG_RESULT([$enable_shared])
5320
5321 AC_MSG_CHECKING([whether to build static libraries])
5322 # Make sure either enable_shared or enable_static is yes.
5323 test "$enable_shared" = yes || enable_static=yes
5324 AC_MSG_RESULT([$enable_static])
5325
5326 _LT_CONFIG($1)
5327fi
5328AC_LANG_POP
5329CC="$lt_save_CC"
5330])# _LT_LANG_C_CONFIG
5331
5332
5333# _LT_PROG_CXX
5334# ------------
5335# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++
5336# compiler, we have our own version here.
5337m4_defun([_LT_PROG_CXX],
5338[
5339pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes])
5340AC_PROG_CXX
5341if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
5342 ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
5343 (test "X$CXX" != "Xg++"))) ; then
5344 AC_PROG_CXXCPP
5345else
5346 _lt_caught_CXX_error=yes
5347fi
5348popdef([AC_MSG_ERROR])
5349])# _LT_PROG_CXX
5350
5351dnl aclocal-1.4 backwards compatibility:
5352dnl AC_DEFUN([_LT_PROG_CXX], [])
5353
5354
5355# _LT_LANG_CXX_CONFIG([TAG])
5356# --------------------------
5357# Ensure that the configuration variables for a C++ compiler are suitably
5358# defined. These variables are subsequently used by _LT_CONFIG to write
5359# the compiler configuration to `libtool'.
5360m4_defun([_LT_LANG_CXX_CONFIG],
5361[AC_REQUIRE([_LT_PROG_CXX])dnl
5362m4_require([_LT_FILEUTILS_DEFAULTS])dnl
5363m4_require([_LT_DECL_EGREP])dnl
5364
5365AC_LANG_PUSH(C++)
5366_LT_TAGVAR(archive_cmds_need_lc, $1)=no
5367_LT_TAGVAR(allow_undefined_flag, $1)=
5368_LT_TAGVAR(always_export_symbols, $1)=no
5369_LT_TAGVAR(archive_expsym_cmds, $1)=
5370_LT_TAGVAR(compiler_needs_object, $1)=no
5371_LT_TAGVAR(export_dynamic_flag_spec, $1)=
5372_LT_TAGVAR(hardcode_direct, $1)=no
5373_LT_TAGVAR(hardcode_direct_absolute, $1)=no
5374_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
5375_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
5376_LT_TAGVAR(hardcode_libdir_separator, $1)=
5377_LT_TAGVAR(hardcode_minus_L, $1)=no
5378_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
5379_LT_TAGVAR(hardcode_automatic, $1)=no
5380_LT_TAGVAR(inherit_rpath, $1)=no
5381_LT_TAGVAR(module_cmds, $1)=
5382_LT_TAGVAR(module_expsym_cmds, $1)=
5383_LT_TAGVAR(link_all_deplibs, $1)=unknown
5384_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
5385_LT_TAGVAR(no_undefined_flag, $1)=
5386_LT_TAGVAR(whole_archive_flag_spec, $1)=
5387_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
5388
5389# Source file extension for C++ test sources.
5390ac_ext=cpp
5391
5392# Object file extension for compiled C++ test sources.
5393objext=o
5394_LT_TAGVAR(objext, $1)=$objext
5395
5396# No sense in running all these tests if we already determined that
5397# the CXX compiler isn't working. Some variables (like enable_shared)
5398# are currently assumed to apply to all compilers on this platform,
5399# and will be corrupted by setting them based on a non-working compiler.
5400if test "$_lt_caught_CXX_error" != yes; then
5401 # Code to be used in simple compile tests
5402 lt_simple_compile_test_code="int some_variable = 0;"
5403
5404 # Code to be used in simple link tests
5405 lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
5406
5407 # ltmain only uses $CC for tagged configurations so make sure $CC is set.
5408 _LT_TAG_COMPILER
5409
5410 # save warnings/boilerplate of simple test code
5411 _LT_COMPILER_BOILERPLATE
5412 _LT_LINKER_BOILERPLATE
5413
5414 # Allow CC to be a program name with arguments.
5415 lt_save_CC=$CC
5416 lt_save_LD=$LD
5417 lt_save_GCC=$GCC
5418 GCC=$GXX
5419 lt_save_with_gnu_ld=$with_gnu_ld
5420 lt_save_path_LD=$lt_cv_path_LD
5421 if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
5422 lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
5423 else
5424 $as_unset lt_cv_prog_gnu_ld
5425 fi
5426 if test -n "${lt_cv_path_LDCXX+set}"; then
5427 lt_cv_path_LD=$lt_cv_path_LDCXX
5428 else
5429 $as_unset lt_cv_path_LD
5430 fi
5431 test -z "${LDCXX+set}" || LD=$LDCXX
5432 CC=${CXX-"c++"}
5433 compiler=$CC
5434 _LT_TAGVAR(compiler, $1)=$CC
5435 _LT_CC_BASENAME([$compiler])
5436
5437 if test -n "$compiler"; then
5438 # We don't want -fno-exception when compiling C++ code, so set the
5439 # no_builtin_flag separately
5440 if test "$GXX" = yes; then
5441 _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
5442 else
5443 _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
5444 fi
5445
5446 if test "$GXX" = yes; then
5447 # Set up default GNU C++ configuration
5448
5449 LT_PATH_LD
5450
5451 # Check if GNU C++ uses GNU ld as the underlying linker, since the
5452 # archiving commands below assume that GNU ld is being used.
5453 if test "$with_gnu_ld" = yes; then
5454 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
5455 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
5456
5457 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
5458 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
5459
5460 # If archive_cmds runs LD, not CC, wlarc should be empty
5461 # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
5462 # investigate it a little bit more. (MM)
5463 wlarc='${wl}'
5464
5465 # ancient GNU ld didn't support --whole-archive et. al.
5466 if eval "`$CC -print-prog-name=ld` --help 2>&1" |
5467 $GREP 'no-whole-archive' > /dev/null; then
5468 _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
5469 else
5470 _LT_TAGVAR(whole_archive_flag_spec, $1)=
5471 fi
5472 else
5473 with_gnu_ld=no
5474 wlarc=
5475
5476 # A generic and very simple default shared library creation
5477 # command for GNU C++ for the case where it uses the native
5478 # linker, instead of GNU ld. If possible, this setting should
5479 # overridden to take advantage of the native linker features on
5480 # the platform it is being used on.
5481 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
5482 fi
5483
5484 # Commands to make compiler produce verbose output that lists
5485 # what "hidden" libraries, object files and flags are used when
5486 # linking a shared library.
5487 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
5488
5489 else
5490 GXX=no
5491 with_gnu_ld=no
5492 wlarc=
5493 fi
5494
5495 # PORTME: fill in a description of your system's C++ link characteristics
5496 AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
5497 _LT_TAGVAR(ld_shlibs, $1)=yes
5498 case $host_os in
5499 aix3*)
5500 # FIXME: insert proper C++ library support
5501 _LT_TAGVAR(ld_shlibs, $1)=no
5502 ;;
5503 aix[[4-9]]*)
5504 if test "$host_cpu" = ia64; then
5505 # On IA64, the linker does run time linking by default, so we don't
5506 # have to do anything special.
5507 aix_use_runtimelinking=no
5508 exp_sym_flag='-Bexport'
5509 no_entry_flag=""
5510 else
5511 aix_use_runtimelinking=no
5512
5513 # Test if we are trying to use run time linking or normal
5514 # AIX style linking. If -brtl is somewhere in LDFLAGS, we
5515 # need to do runtime linking.
5516 case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
5517 for ld_flag in $LDFLAGS; do
5518 case $ld_flag in
5519 *-brtl*)
5520 aix_use_runtimelinking=yes
5521 break
5522 ;;
5523 esac
5524 done
5525 ;;
5526 esac
5527
5528 exp_sym_flag='-bexport'
5529 no_entry_flag='-bnoentry'
5530 fi
5531
5532 # When large executables or shared objects are built, AIX ld can
5533 # have problems creating the table of contents. If linking a library
5534 # or program results in "error TOC overflow" add -mminimal-toc to
5535 # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
5536 # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
5537
5538 _LT_TAGVAR(archive_cmds, $1)=''
5539 _LT_TAGVAR(hardcode_direct, $1)=yes
5540 _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
5541 _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
5542 _LT_TAGVAR(link_all_deplibs, $1)=yes
5543 _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
5544
5545 if test "$GXX" = yes; then
5546 case $host_os in aix4.[[012]]|aix4.[[012]].*)
5547 # We only want to do this on AIX 4.2 and lower, the check
5548 # below for broken collect2 doesn't work under 4.3+
5549 collect2name=`${CC} -print-prog-name=collect2`
5550 if test -f "$collect2name" &&
5551 strings "$collect2name" | $GREP resolve_lib_name >/dev/null
5552 then
5553 # We have reworked collect2
5554 :
5555 else
5556 # We have old collect2
5557 _LT_TAGVAR(hardcode_direct, $1)=unsupported
5558 # It fails to find uninstalled libraries when the uninstalled
5559 # path is not listed in the libpath. Setting hardcode_minus_L
5560 # to unsupported forces relinking
5561 _LT_TAGVAR(hardcode_minus_L, $1)=yes
5562 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
5563 _LT_TAGVAR(hardcode_libdir_separator, $1)=
5564 fi
5565 esac
5566 shared_flag='-shared'
5567 if test "$aix_use_runtimelinking" = yes; then
5568 shared_flag="$shared_flag "'${wl}-G'
5569 fi
5570 else
5571 # not using gcc
5572 if test "$host_cpu" = ia64; then
5573 # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
5574 # chokes on -Wl,-G. The following line is correct:
5575 shared_flag='-G'
5576 else
5577 if test "$aix_use_runtimelinking" = yes; then
5578 shared_flag='${wl}-G'
5579 else
5580 shared_flag='${wl}-bM:SRE'
5581 fi
5582 fi
5583 fi
5584
5585 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
5586 # It seems that -bexpall does not export symbols beginning with
5587 # underscore (_), so it is better to generate a list of symbols to
5588 # export.
5589 _LT_TAGVAR(always_export_symbols, $1)=yes
5590 if test "$aix_use_runtimelinking" = yes; then
5591 # Warning - without using the other runtime loading flags (-brtl),
5592 # -berok will link without error, but may produce a broken library.
5593 _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
5594 # Determine the default libpath from the value encoded in an empty
5595 # executable.
5596 _LT_SYS_MODULE_PATH_AIX
5597 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
5598
5599 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
5600 else
5601 if test "$host_cpu" = ia64; then
5602 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
5603 _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
5604 _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
5605 else
5606 # Determine the default libpath from the value encoded in an
5607 # empty executable.
5608 _LT_SYS_MODULE_PATH_AIX
5609 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
5610 # Warning - without using the other run time loading flags,
5611 # -berok will link without error, but may produce a broken library.
5612 _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
5613 _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
5614 # Exported symbols can be pulled into shared objects from archives
5615 _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
5616 _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
5617 # This is similar to how AIX traditionally builds its shared
5618 # libraries.
5619 _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
5620 fi
5621 fi
5622 ;;
5623
5624 beos*)
5625 if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
5626 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
5627 # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
5628 # support --undefined. This deserves some investigation. FIXME
5629 _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
5630 else
5631 _LT_TAGVAR(ld_shlibs, $1)=no
5632 fi
5633 ;;
5634
5635 chorus*)
5636 case $cc_basename in
5637 *)
5638 # FIXME: insert proper C++ library support
5639 _LT_TAGVAR(ld_shlibs, $1)=no
5640 ;;
5641 esac
5642 ;;
5643
5644 cygwin* | mingw* | pw32* | cegcc*)
5645 # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
5646 # as there is no search path for DLLs.
5647 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
5648 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
5649 _LT_TAGVAR(always_export_symbols, $1)=no
5650 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
5651
5652 if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
5653 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
5654 # If the export-symbols file already is a .def file (1st line
5655 # is EXPORTS), use it as is; otherwise, prepend...
5656 _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
5657 cp $export_symbols $output_objdir/$soname.def;
5658 else
5659 echo EXPORTS > $output_objdir/$soname.def;
5660 cat $export_symbols >> $output_objdir/$soname.def;
5661 fi~
5662 $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
5663 else
5664 _LT_TAGVAR(ld_shlibs, $1)=no
5665 fi
5666 ;;
5667 darwin* | rhapsody*)
5668 _LT_DARWIN_LINKER_FEATURES($1)
5669 ;;
5670
5671 dgux*)
5672 case $cc_basename in
5673 ec++*)
5674 # FIXME: insert proper C++ library support
5675 _LT_TAGVAR(ld_shlibs, $1)=no
5676 ;;
5677 ghcx*)
5678 # Green Hills C++ Compiler
5679 # FIXME: insert proper C++ library support
5680 _LT_TAGVAR(ld_shlibs, $1)=no
5681 ;;
5682 *)
5683 # FIXME: insert proper C++ library support
5684 _LT_TAGVAR(ld_shlibs, $1)=no
5685 ;;
5686 esac
5687 ;;
5688
5689 freebsd[[12]]*)
5690 # C++ shared libraries reported to be fairly broken before
5691 # switch to ELF
5692 _LT_TAGVAR(ld_shlibs, $1)=no
5693 ;;
5694
5695 freebsd-elf*)
5696 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
5697 ;;
5698
5699 freebsd* | dragonfly*)
5700 # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
5701 # conventions
5702 _LT_TAGVAR(ld_shlibs, $1)=yes
5703 ;;
5704
5705 gnu*)
5706 ;;
5707
5708 hpux9*)
5709 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
5710 _LT_TAGVAR(hardcode_libdir_separator, $1)=:
5711 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
5712 _LT_TAGVAR(hardcode_direct, $1)=yes
5713 _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
5714 # but as the default
5715 # location of the library.
5716
5717 case $cc_basename in
5718 CC*)
5719 # FIXME: insert proper C++ library support
5720 _LT_TAGVAR(ld_shlibs, $1)=no
5721 ;;
5722 aCC*)
5723 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
5724 # Commands to make compiler produce verbose output that lists
5725 # what "hidden" libraries, object files and flags are used when
5726 # linking a shared library.
5727 #
5728 # There doesn't appear to be a way to prevent this compiler from
5729 # explicitly linking system object files so we need to strip them
5730 # from the output so that they don't get included in the library
5731 # dependencies.
5732 output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
5733 ;;
5734 *)
5735 if test "$GXX" = yes; then
5736 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
5737 else
5738 # FIXME: insert proper C++ library support
5739 _LT_TAGVAR(ld_shlibs, $1)=no
5740 fi
5741 ;;
5742 esac
5743 ;;
5744
5745 hpux10*|hpux11*)
5746 if test $with_gnu_ld = no; then
5747 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
5748 _LT_TAGVAR(hardcode_libdir_separator, $1)=:
5749
5750 case $host_cpu in
5751 hppa*64*|ia64*)
5752 ;;
5753 *)
5754 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
5755 ;;
5756 esac
5757 fi
5758 case $host_cpu in
5759 hppa*64*|ia64*)
5760 _LT_TAGVAR(hardcode_direct, $1)=no
5761 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5762 ;;
5763 *)
5764 _LT_TAGVAR(hardcode_direct, $1)=yes
5765 _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
5766 _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
5767 # but as the default
5768 # location of the library.
5769 ;;
5770 esac
5771
5772 case $cc_basename in
5773 CC*)
5774 # FIXME: insert proper C++ library support
5775 _LT_TAGVAR(ld_shlibs, $1)=no
5776 ;;
5777 aCC*)
5778 case $host_cpu in
5779 hppa*64*)
5780 _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
5781 ;;
5782 ia64*)
5783 _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
5784 ;;
5785 *)
5786 _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
5787 ;;
5788 esac
5789 # Commands to make compiler produce verbose output that lists
5790 # what "hidden" libraries, object files and flags are used when
5791 # linking a shared library.
5792 #
5793 # There doesn't appear to be a way to prevent this compiler from
5794 # explicitly linking system object files so we need to strip them
5795 # from the output so that they don't get included in the library
5796 # dependencies.
5797 output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
5798 ;;
5799 *)
5800 if test "$GXX" = yes; then
5801 if test $with_gnu_ld = no; then
5802 case $host_cpu in
5803 hppa*64*)
5804 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
5805 ;;
5806 ia64*)
5807 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
5808 ;;
5809 *)
5810 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
5811 ;;
5812 esac
5813 fi
5814 else
5815 # FIXME: insert proper C++ library support
5816 _LT_TAGVAR(ld_shlibs, $1)=no
5817 fi
5818 ;;
5819 esac
5820 ;;
5821
5822 interix[[3-9]]*)
5823 _LT_TAGVAR(hardcode_direct, $1)=no
5824 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5825 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
5826 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
5827 # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
5828 # Instead, shared libraries are loaded at an image base (0x10000000 by
5829 # default) and relocated if they conflict, which is a slow very memory
5830 # consuming and fragmenting process. To avoid this, we pick a random,
5831 # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
5832 # time. Moving up from 0x10000000 also allows more sbrk(2) space.
5833 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
5834 _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
5835 ;;
5836 irix5* | irix6*)
5837 case $cc_basename in
5838 CC*)
5839 # SGI C++
5840 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
5841
5842 # Archives containing C++ object files must be created using
5843 # "CC -ar", where "CC" is the IRIX C++ compiler. This is
5844 # necessary to make sure instantiated templates are included
5845 # in the archive.
5846 _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
5847 ;;
5848 *)
5849 if test "$GXX" = yes; then
5850 if test "$with_gnu_ld" = no; then
5851 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
5852 else
5853 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
5854 fi
5855 fi
5856 _LT_TAGVAR(link_all_deplibs, $1)=yes
5857 ;;
5858 esac
5859 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
5860 _LT_TAGVAR(hardcode_libdir_separator, $1)=:
5861 _LT_TAGVAR(inherit_rpath, $1)=yes
5862 ;;
5863
5864 linux* | k*bsd*-gnu | kopensolaris*-gnu)
5865 case $cc_basename in
5866 KCC*)
5867 # Kuck and Associates, Inc. (KAI) C++ Compiler
5868
5869 # KCC will only create a shared library if the output file
5870 # ends with ".so" (or ".sl" for HP-UX), so rename the library
5871 # to its proper name (with version) after linking.
5872 _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
5873 _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
5874 # Commands to make compiler produce verbose output that lists
5875 # what "hidden" libraries, object files and flags are used when
5876 # linking a shared library.
5877 #
5878 # There doesn't appear to be a way to prevent this compiler from
5879 # explicitly linking system object files so we need to strip them
5880 # from the output so that they don't get included in the library
5881 # dependencies.
5882 output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
5883
5884 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
5885 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
5886
5887 # Archives containing C++ object files must be created using
5888 # "CC -Bstatic", where "CC" is the KAI C++ compiler.
5889 _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
5890 ;;
5891 icpc* | ecpc* )
5892 # Intel C++
5893 with_gnu_ld=yes
5894 # version 8.0 and above of icpc choke on multiply defined symbols
5895 # if we add $predep_objects and $postdep_objects, however 7.1 and
5896 # earlier do not add the objects themselves.
5897 case `$CC -V 2>&1` in
5898 *"Version 7."*)
5899 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
5900 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
5901 ;;
5902 *) # Version 8.0 or newer
5903 tmp_idyn=
5904 case $host_cpu in
5905 ia64*) tmp_idyn=' -i_dynamic';;
5906 esac
5907 _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
5908 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
5909 ;;
5910 esac
5911 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
5912 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
5913 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
5914 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
5915 ;;
5916 pgCC* | pgcpp*)
5917 # Portland Group C++ compiler
5918 case `$CC -V` in
5919 *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*)
5920 _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
5921 rm -rf $tpldir~
5922 $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
5923 compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
5924 _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
5925 rm -rf $tpldir~
5926 $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
5927 $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
5928 $RANLIB $oldlib'
5929 _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
5930 rm -rf $tpldir~
5931 $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
5932 $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
5933 _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
5934 rm -rf $tpldir~
5935 $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
5936 $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
5937 ;;
5938 *) # Version 6 will use weak symbols
5939 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
5940 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
5941 ;;
5942 esac
5943
5944 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
5945 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
5946 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
5947 ;;
5948 cxx*)
5949 # Compaq C++
5950 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
5951 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
5952
5953 runpath_var=LD_RUN_PATH
5954 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
5955 _LT_TAGVAR(hardcode_libdir_separator, $1)=:
5956
5957 # Commands to make compiler produce verbose output that lists
5958 # what "hidden" libraries, object files and flags are used when
5959 # linking a shared library.
5960 #
5961 # There doesn't appear to be a way to prevent this compiler from
5962 # explicitly linking system object files so we need to strip them
5963 # from the output so that they don't get included in the library
5964 # dependencies.
5965 output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
5966 ;;
5967 xl*)
5968 # IBM XL 8.0 on PPC, with GNU ld
5969 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
5970 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
5971 _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
5972 if test "x$supports_anon_versioning" = xyes; then
5973 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
5974 cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
5975 echo "local: *; };" >> $output_objdir/$libname.ver~
5976 $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
5977 fi
5978 ;;
5979 *)
5980 case `$CC -V 2>&1 | sed 5q` in
5981 *Sun\ C*)
5982 # Sun C++ 5.9
5983 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
5984 _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
5985 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
5986 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
5987 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
5988 _LT_TAGVAR(compiler_needs_object, $1)=yes
5989
5990 # Not sure whether something based on
5991 # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
5992 # would be better.
5993 output_verbose_link_cmd='echo'
5994
5995 # Archives containing C++ object files must be created using
5996 # "CC -xar", where "CC" is the Sun C++ compiler. This is
5997 # necessary to make sure instantiated templates are included
5998 # in the archive.
5999 _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
6000 ;;
6001 esac
6002 ;;
6003 esac
6004 ;;
6005
6006 lynxos*)
6007 # FIXME: insert proper C++ library support
6008 _LT_TAGVAR(ld_shlibs, $1)=no
6009 ;;
6010
6011 m88k*)
6012 # FIXME: insert proper C++ library support
6013 _LT_TAGVAR(ld_shlibs, $1)=no
6014 ;;
6015
6016 mvs*)
6017 case $cc_basename in
6018 cxx*)
6019 # FIXME: insert proper C++ library support
6020 _LT_TAGVAR(ld_shlibs, $1)=no
6021 ;;
6022 *)
6023 # FIXME: insert proper C++ library support
6024 _LT_TAGVAR(ld_shlibs, $1)=no
6025 ;;
6026 esac
6027 ;;
6028
6029 netbsd*)
6030 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
6031 _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
6032 wlarc=
6033 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
6034 _LT_TAGVAR(hardcode_direct, $1)=yes
6035 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
6036 fi
6037 # Workaround some broken pre-1.5 toolchains
6038 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
6039 ;;
6040
6041 *nto* | *qnx*)
6042 _LT_TAGVAR(ld_shlibs, $1)=yes
6043 ;;
6044
6045 openbsd2*)
6046 # C++ shared libraries are fairly broken
6047 _LT_TAGVAR(ld_shlibs, $1)=no
6048 ;;
6049
6050 openbsd*)
6051 if test -f /usr/libexec/ld.so; then
6052 _LT_TAGVAR(hardcode_direct, $1)=yes
6053 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
6054 _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
6055 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
6056 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
6057 if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
6058 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
6059 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
6060 _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
6061 fi
6062 output_verbose_link_cmd=echo
6063 else
6064 _LT_TAGVAR(ld_shlibs, $1)=no
6065 fi
6066 ;;
6067
6068 osf3* | osf4* | osf5*)
6069 case $cc_basename in
6070 KCC*)
6071 # Kuck and Associates, Inc. (KAI) C++ Compiler
6072
6073 # KCC will only create a shared library if the output file
6074 # ends with ".so" (or ".sl" for HP-UX), so rename the library
6075 # to its proper name (with version) after linking.
6076 _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
6077
6078 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
6079 _LT_TAGVAR(hardcode_libdir_separator, $1)=:
6080
6081 # Archives containing C++ object files must be created using
6082 # the KAI C++ compiler.
6083 case $host in
6084 osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
6085 *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
6086 esac
6087 ;;
6088 RCC*)
6089 # Rational C++ 2.4.1
6090 # FIXME: insert proper C++ library support
6091 _LT_TAGVAR(ld_shlibs, $1)=no
6092 ;;
6093 cxx*)
6094 case $host in
6095 osf3*)
6096 _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
6097 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
6098 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
6099 ;;
6100 *)
6101 _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
6102 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
6103 _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
6104 echo "-hidden">> $lib.exp~
6105 $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
6106 $RM $lib.exp'
6107 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
6108 ;;
6109 esac
6110
6111 _LT_TAGVAR(hardcode_libdir_separator, $1)=:
6112
6113 # Commands to make compiler produce verbose output that lists
6114 # what "hidden" libraries, object files and flags are used when
6115 # linking a shared library.
6116 #
6117 # There doesn't appear to be a way to prevent this compiler from
6118 # explicitly linking system object files so we need to strip them
6119 # from the output so that they don't get included in the library
6120 # dependencies.
6121 output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
6122 ;;
6123 *)
6124 if test "$GXX" = yes && test "$with_gnu_ld" = no; then
6125 _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
6126 case $host in
6127 osf3*)
6128 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
6129 ;;
6130 *)
6131 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
6132 ;;
6133 esac
6134
6135 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
6136 _LT_TAGVAR(hardcode_libdir_separator, $1)=:
6137
6138 # Commands to make compiler produce verbose output that lists
6139 # what "hidden" libraries, object files and flags are used when
6140 # linking a shared library.
6141 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
6142
6143 else
6144 # FIXME: insert proper C++ library support
6145 _LT_TAGVAR(ld_shlibs, $1)=no
6146 fi
6147 ;;
6148 esac
6149 ;;
6150
6151 psos*)
6152 # FIXME: insert proper C++ library support
6153 _LT_TAGVAR(ld_shlibs, $1)=no
6154 ;;
6155
6156 sunos4*)
6157 case $cc_basename in
6158 CC*)
6159 # Sun C++ 4.x
6160 # FIXME: insert proper C++ library support
6161 _LT_TAGVAR(ld_shlibs, $1)=no
6162 ;;
6163 lcc*)
6164 # Lucid
6165 # FIXME: insert proper C++ library support
6166 _LT_TAGVAR(ld_shlibs, $1)=no
6167 ;;
6168 *)
6169 # FIXME: insert proper C++ library support
6170 _LT_TAGVAR(ld_shlibs, $1)=no
6171 ;;
6172 esac
6173 ;;
6174
6175 solaris*)
6176 case $cc_basename in
6177 CC*)
6178 # Sun C++ 4.2, 5.x and Centerline C++
6179 _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
6180 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
6181 _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
6182 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
6183 $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
6184
6185 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
6186 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
6187 case $host_os in
6188 solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
6189 *)
6190 # The compiler driver will combine and reorder linker options,
6191 # but understands `-z linker_flag'.
6192 # Supported since Solaris 2.6 (maybe 2.5.1?)
6193 _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
6194 ;;
6195 esac
6196 _LT_TAGVAR(link_all_deplibs, $1)=yes
6197
6198 output_verbose_link_cmd='echo'
6199
6200 # Archives containing C++ object files must be created using
6201 # "CC -xar", where "CC" is the Sun C++ compiler. This is
6202 # necessary to make sure instantiated templates are included
6203 # in the archive.
6204 _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
6205 ;;
6206 gcx*)
6207 # Green Hills C++ Compiler
6208 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
6209
6210 # The C++ compiler must be used to create the archive.
6211 _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
6212 ;;
6213 *)
6214 # GNU C++ compiler with Solaris linker
6215 if test "$GXX" = yes && test "$with_gnu_ld" = no; then
6216 _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
6217 if $CC --version | $GREP -v '^2\.7' > /dev/null; then
6218 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
6219 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
6220 $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
6221
6222 # Commands to make compiler produce verbose output that lists
6223 # what "hidden" libraries, object files and flags are used when
6224 # linking a shared library.
6225 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
6226 else
6227 # g++ 2.7 appears to require `-G' NOT `-shared' on this
6228 # platform.
6229 _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
6230 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
6231 $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
6232
6233 # Commands to make compiler produce verbose output that lists
6234 # what "hidden" libraries, object files and flags are used when
6235 # linking a shared library.
6236 output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
6237 fi
6238
6239 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
6240 case $host_os in
6241 solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
6242 *)
6243 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
6244 ;;
6245 esac
6246 fi
6247 ;;
6248 esac
6249 ;;
6250
6251 sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
6252 _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
6253 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
6254 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
6255 runpath_var='LD_RUN_PATH'
6256
6257 case $cc_basename in
6258 CC*)
6259 _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6260 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6261 ;;
6262 *)
6263 _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6264 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6265 ;;
6266 esac
6267 ;;
6268
6269 sysv5* | sco3.2v5* | sco5v6*)
6270 # Note: We can NOT use -z defs as we might desire, because we do not
6271 # link with -lc, and that would cause any symbols used from libc to
6272 # always be unresolved, which means just about no library would
6273 # ever link correctly. If we're not using GNU ld we use -z text
6274 # though, which does catch some bad symbols but isn't as heavy-handed
6275 # as -z defs.
6276 _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
6277 _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
6278 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
6279 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
6280 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
6281 _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
6282 _LT_TAGVAR(link_all_deplibs, $1)=yes
6283 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
6284 runpath_var='LD_RUN_PATH'
6285
6286 case $cc_basename in
6287 CC*)
6288 _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6289 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6290 ;;
6291 *)
6292 _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6293 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6294 ;;
6295 esac
6296 ;;
6297
6298 tandem*)
6299 case $cc_basename in
6300 NCC*)
6301 # NonStop-UX NCC 3.20
6302 # FIXME: insert proper C++ library support
6303 _LT_TAGVAR(ld_shlibs, $1)=no
6304 ;;
6305 *)
6306 # FIXME: insert proper C++ library support
6307 _LT_TAGVAR(ld_shlibs, $1)=no
6308 ;;
6309 esac
6310 ;;
6311
6312 vxworks*)
6313 # FIXME: insert proper C++ library support
6314 _LT_TAGVAR(ld_shlibs, $1)=no
6315 ;;
6316
6317 *)
6318 # FIXME: insert proper C++ library support
6319 _LT_TAGVAR(ld_shlibs, $1)=no
6320 ;;
6321 esac
6322
6323 AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
6324 test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
6325
6326 _LT_TAGVAR(GCC, $1)="$GXX"
6327 _LT_TAGVAR(LD, $1)="$LD"
6328
6329 ## CAVEAT EMPTOR:
6330 ## There is no encapsulation within the following macros, do not change
6331 ## the running order or otherwise move them around unless you know exactly
6332 ## what you are doing...
6333 _LT_SYS_HIDDEN_LIBDEPS($1)
6334 _LT_COMPILER_PIC($1)
6335 _LT_COMPILER_C_O($1)
6336 _LT_COMPILER_FILE_LOCKS($1)
6337 _LT_LINKER_SHLIBS($1)
6338 _LT_SYS_DYNAMIC_LINKER($1)
6339 _LT_LINKER_HARDCODE_LIBPATH($1)
6340
6341 _LT_CONFIG($1)
6342 fi # test -n "$compiler"
6343
6344 CC=$lt_save_CC
6345 LDCXX=$LD
6346 LD=$lt_save_LD
6347 GCC=$lt_save_GCC
6348 with_gnu_ld=$lt_save_with_gnu_ld
6349 lt_cv_path_LDCXX=$lt_cv_path_LD
6350 lt_cv_path_LD=$lt_save_path_LD
6351 lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
6352 lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
6353fi # test "$_lt_caught_CXX_error" != yes
6354
6355AC_LANG_POP
6356])# _LT_LANG_CXX_CONFIG
6357
6358
6359# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
6360# ---------------------------------
6361# Figure out "hidden" library dependencies from verbose
6362# compiler output when linking a shared library.
6363# Parse the compiler output and extract the necessary
6364# objects, libraries and library flags.
6365m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
6366[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
6367# Dependencies to place before and after the object being linked:
6368_LT_TAGVAR(predep_objects, $1)=
6369_LT_TAGVAR(postdep_objects, $1)=
6370_LT_TAGVAR(predeps, $1)=
6371_LT_TAGVAR(postdeps, $1)=
6372_LT_TAGVAR(compiler_lib_search_path, $1)=
6373
6374dnl we can't use the lt_simple_compile_test_code here,
6375dnl because it contains code intended for an executable,
6376dnl not a library. It's possible we should let each
6377dnl tag define a new lt_????_link_test_code variable,
6378dnl but it's only used here...
6379m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
6380int a;
6381void foo (void) { a = 0; }
6382_LT_EOF
6383], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
6384class Foo
6385{
6386public:
6387 Foo (void) { a = 0; }
6388private:
6389 int a;
6390};
6391_LT_EOF
6392], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
6393 subroutine foo
6394 implicit none
6395 integer*4 a
6396 a=0
6397 return
6398 end
6399_LT_EOF
6400], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
6401 subroutine foo
6402 implicit none
6403 integer a
6404 a=0
6405 return
6406 end
6407_LT_EOF
6408], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
6409public class foo {
6410 private int a;
6411 public void bar (void) {
6412 a = 0;
6413 }
6414};
6415_LT_EOF
6416])
6417dnl Parse the compiler output and extract the necessary
6418dnl objects, libraries and library flags.
6419if AC_TRY_EVAL(ac_compile); then
6420 # Parse the compiler output and extract the necessary
6421 # objects, libraries and library flags.
6422
6423 # Sentinel used to keep track of whether or not we are before
6424 # the conftest object file.
6425 pre_test_object_deps_done=no
6426
6427 for p in `eval "$output_verbose_link_cmd"`; do
6428 case $p in
6429
6430 -L* | -R* | -l*)
6431 # Some compilers place space between "-{L,R}" and the path.
6432 # Remove the space.
6433 if test $p = "-L" ||
6434 test $p = "-R"; then
6435 prev=$p
6436 continue
6437 else
6438 prev=
6439 fi
6440
6441 if test "$pre_test_object_deps_done" = no; then
6442 case $p in
6443 -L* | -R*)
6444 # Internal compiler library paths should come after those
6445 # provided the user. The postdeps already come after the
6446 # user supplied libs so there is no need to process them.
6447 if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
6448 _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
6449 else
6450 _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
6451 fi
6452 ;;
6453 # The "-l" case would never come before the object being
6454 # linked, so don't bother handling this case.
6455 esac
6456 else
6457 if test -z "$_LT_TAGVAR(postdeps, $1)"; then
6458 _LT_TAGVAR(postdeps, $1)="${prev}${p}"
6459 else
6460 _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
6461 fi
6462 fi
6463 ;;
6464
6465 *.$objext)
6466 # This assumes that the test object file only shows up
6467 # once in the compiler output.
6468 if test "$p" = "conftest.$objext"; then
6469 pre_test_object_deps_done=yes
6470 continue
6471 fi
6472
6473 if test "$pre_test_object_deps_done" = no; then
6474 if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
6475 _LT_TAGVAR(predep_objects, $1)="$p"
6476 else
6477 _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
6478 fi
6479 else
6480 if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
6481 _LT_TAGVAR(postdep_objects, $1)="$p"
6482 else
6483 _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
6484 fi
6485 fi
6486 ;;
6487
6488 *) ;; # Ignore the rest.
6489
6490 esac
6491 done
6492
6493 # Clean up.
6494 rm -f a.out a.exe
6495else
6496 echo "libtool.m4: error: problem compiling $1 test program"
6497fi
6498
6499$RM -f confest.$objext
6500
6501# PORTME: override above test on systems where it is broken
6502m4_if([$1], [CXX],
6503[case $host_os in
6504interix[[3-9]]*)
6505 # Interix 3.5 installs completely hosed .la files for C++, so rather than
6506 # hack all around it, let's just trust "g++" to DTRT.
6507 _LT_TAGVAR(predep_objects,$1)=
6508 _LT_TAGVAR(postdep_objects,$1)=
6509 _LT_TAGVAR(postdeps,$1)=
6510 ;;
6511
6512linux*)
6513 case `$CC -V 2>&1 | sed 5q` in
6514 *Sun\ C*)
6515 # Sun C++ 5.9
6516
6517 # The more standards-conforming stlport4 library is
6518 # incompatible with the Cstd library. Avoid specifying
6519 # it if it's in CXXFLAGS. Ignore libCrun as
6520 # -library=stlport4 depends on it.
6521 case " $CXX $CXXFLAGS " in
6522 *" -library=stlport4 "*)
6523 solaris_use_stlport4=yes
6524 ;;
6525 esac
6526
6527 if test "$solaris_use_stlport4" != yes; then
6528 _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
6529 fi
6530 ;;
6531 esac
6532 ;;
6533
6534solaris*)
6535 case $cc_basename in
6536 CC*)
6537 # The more standards-conforming stlport4 library is
6538 # incompatible with the Cstd library. Avoid specifying
6539 # it if it's in CXXFLAGS. Ignore libCrun as
6540 # -library=stlport4 depends on it.
6541 case " $CXX $CXXFLAGS " in
6542 *" -library=stlport4 "*)
6543 solaris_use_stlport4=yes
6544 ;;
6545 esac
6546
6547 # Adding this requires a known-good setup of shared libraries for
6548 # Sun compiler versions before 5.6, else PIC objects from an old
6549 # archive will be linked into the output, leading to subtle bugs.
6550 if test "$solaris_use_stlport4" != yes; then
6551 _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
6552 fi
6553 ;;
6554 esac
6555 ;;
6556esac
6557])
6558
6559case " $_LT_TAGVAR(postdeps, $1) " in
6560*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
6561esac
6562 _LT_TAGVAR(compiler_lib_search_dirs, $1)=
6563if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
6564 _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
6565fi
6566_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
6567 [The directories searched by this compiler when creating a shared library])
6568_LT_TAGDECL([], [predep_objects], [1],
6569 [Dependencies to place before and after the objects being linked to
6570 create a shared library])
6571_LT_TAGDECL([], [postdep_objects], [1])
6572_LT_TAGDECL([], [predeps], [1])
6573_LT_TAGDECL([], [postdeps], [1])
6574_LT_TAGDECL([], [compiler_lib_search_path], [1],
6575 [The library search path used internally by the compiler when linking
6576 a shared library])
6577])# _LT_SYS_HIDDEN_LIBDEPS
6578
6579
6580# _LT_PROG_F77
6581# ------------
6582# Since AC_PROG_F77 is broken, in that it returns the empty string
6583# if there is no fortran compiler, we have our own version here.
6584m4_defun([_LT_PROG_F77],
6585[
6586pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes])
6587AC_PROG_F77
6588if test -z "$F77" || test "X$F77" = "Xno"; then
6589 _lt_disable_F77=yes
6590fi
6591popdef([AC_MSG_ERROR])
6592])# _LT_PROG_F77
6593
6594dnl aclocal-1.4 backwards compatibility:
6595dnl AC_DEFUN([_LT_PROG_F77], [])
6596
6597
6598# _LT_LANG_F77_CONFIG([TAG])
6599# --------------------------
6600# Ensure that the configuration variables for a Fortran 77 compiler are
6601# suitably defined. These variables are subsequently used by _LT_CONFIG
6602# to write the compiler configuration to `libtool'.
6603m4_defun([_LT_LANG_F77_CONFIG],
6604[AC_REQUIRE([_LT_PROG_F77])dnl
6605AC_LANG_PUSH(Fortran 77)
6606
6607_LT_TAGVAR(archive_cmds_need_lc, $1)=no
6608_LT_TAGVAR(allow_undefined_flag, $1)=
6609_LT_TAGVAR(always_export_symbols, $1)=no
6610_LT_TAGVAR(archive_expsym_cmds, $1)=
6611_LT_TAGVAR(export_dynamic_flag_spec, $1)=
6612_LT_TAGVAR(hardcode_direct, $1)=no
6613_LT_TAGVAR(hardcode_direct_absolute, $1)=no
6614_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
6615_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
6616_LT_TAGVAR(hardcode_libdir_separator, $1)=
6617_LT_TAGVAR(hardcode_minus_L, $1)=no
6618_LT_TAGVAR(hardcode_automatic, $1)=no
6619_LT_TAGVAR(inherit_rpath, $1)=no
6620_LT_TAGVAR(module_cmds, $1)=
6621_LT_TAGVAR(module_expsym_cmds, $1)=
6622_LT_TAGVAR(link_all_deplibs, $1)=unknown
6623_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
6624_LT_TAGVAR(no_undefined_flag, $1)=
6625_LT_TAGVAR(whole_archive_flag_spec, $1)=
6626_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
6627
6628# Source file extension for f77 test sources.
6629ac_ext=f
6630
6631# Object file extension for compiled f77 test sources.
6632objext=o
6633_LT_TAGVAR(objext, $1)=$objext
6634
6635# No sense in running all these tests if we already determined that
6636# the F77 compiler isn't working. Some variables (like enable_shared)
6637# are currently assumed to apply to all compilers on this platform,
6638# and will be corrupted by setting them based on a non-working compiler.
6639if test "$_lt_disable_F77" != yes; then
6640 # Code to be used in simple compile tests
6641 lt_simple_compile_test_code="\
6642 subroutine t
6643 return
6644 end
6645"
6646
6647 # Code to be used in simple link tests
6648 lt_simple_link_test_code="\
6649 program t
6650 end
6651"
6652
6653 # ltmain only uses $CC for tagged configurations so make sure $CC is set.
6654 _LT_TAG_COMPILER
6655
6656 # save warnings/boilerplate of simple test code
6657 _LT_COMPILER_BOILERPLATE
6658 _LT_LINKER_BOILERPLATE
6659
6660 # Allow CC to be a program name with arguments.
6661 lt_save_CC="$CC"
6662 lt_save_GCC=$GCC
6663 CC=${F77-"f77"}
6664 compiler=$CC
6665 _LT_TAGVAR(compiler, $1)=$CC
6666 _LT_CC_BASENAME([$compiler])
6667 GCC=$G77
6668 if test -n "$compiler"; then
6669 AC_MSG_CHECKING([if libtool supports shared libraries])
6670 AC_MSG_RESULT([$can_build_shared])
6671
6672 AC_MSG_CHECKING([whether to build shared libraries])
6673 test "$can_build_shared" = "no" && enable_shared=no
6674
6675 # On AIX, shared libraries and static libraries use the same namespace, and
6676 # are all built from PIC.
6677 case $host_os in
6678 aix3*)
6679 test "$enable_shared" = yes && enable_static=no
6680 if test -n "$RANLIB"; then
6681 archive_cmds="$archive_cmds~\$RANLIB \$lib"
6682 postinstall_cmds='$RANLIB $lib'
6683 fi
6684 ;;
6685 aix[[4-9]]*)
6686 if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
6687 test "$enable_shared" = yes && enable_static=no
6688 fi
6689 ;;
6690 esac
6691 AC_MSG_RESULT([$enable_shared])
6692
6693 AC_MSG_CHECKING([whether to build static libraries])
6694 # Make sure either enable_shared or enable_static is yes.
6695 test "$enable_shared" = yes || enable_static=yes
6696 AC_MSG_RESULT([$enable_static])
6697
6698 _LT_TAGVAR(GCC, $1)="$G77"
6699 _LT_TAGVAR(LD, $1)="$LD"
6700
6701 ## CAVEAT EMPTOR:
6702 ## There is no encapsulation within the following macros, do not change
6703 ## the running order or otherwise move them around unless you know exactly
6704 ## what you are doing...
6705 _LT_COMPILER_PIC($1)
6706 _LT_COMPILER_C_O($1)
6707 _LT_COMPILER_FILE_LOCKS($1)
6708 _LT_LINKER_SHLIBS($1)
6709 _LT_SYS_DYNAMIC_LINKER($1)
6710 _LT_LINKER_HARDCODE_LIBPATH($1)
6711
6712 _LT_CONFIG($1)
6713 fi # test -n "$compiler"
6714
6715 GCC=$lt_save_GCC
6716 CC="$lt_save_CC"
6717fi # test "$_lt_disable_F77" != yes
6718
6719AC_LANG_POP
6720])# _LT_LANG_F77_CONFIG
6721
6722
6723# _LT_PROG_FC
6724# -----------
6725# Since AC_PROG_FC is broken, in that it returns the empty string
6726# if there is no fortran compiler, we have our own version here.
6727m4_defun([_LT_PROG_FC],
6728[
6729pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes])
6730AC_PROG_FC
6731if test -z "$FC" || test "X$FC" = "Xno"; then
6732 _lt_disable_FC=yes
6733fi
6734popdef([AC_MSG_ERROR])
6735])# _LT_PROG_FC
6736
6737dnl aclocal-1.4 backwards compatibility:
6738dnl AC_DEFUN([_LT_PROG_FC], [])
6739
6740
6741# _LT_LANG_FC_CONFIG([TAG])
6742# -------------------------
6743# Ensure that the configuration variables for a Fortran compiler are
6744# suitably defined. These variables are subsequently used by _LT_CONFIG
6745# to write the compiler configuration to `libtool'.
6746m4_defun([_LT_LANG_FC_CONFIG],
6747[AC_REQUIRE([_LT_PROG_FC])dnl
6748AC_LANG_PUSH(Fortran)
6749
6750_LT_TAGVAR(archive_cmds_need_lc, $1)=no
6751_LT_TAGVAR(allow_undefined_flag, $1)=
6752_LT_TAGVAR(always_export_symbols, $1)=no
6753_LT_TAGVAR(archive_expsym_cmds, $1)=
6754_LT_TAGVAR(export_dynamic_flag_spec, $1)=
6755_LT_TAGVAR(hardcode_direct, $1)=no
6756_LT_TAGVAR(hardcode_direct_absolute, $1)=no
6757_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
6758_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
6759_LT_TAGVAR(hardcode_libdir_separator, $1)=
6760_LT_TAGVAR(hardcode_minus_L, $1)=no
6761_LT_TAGVAR(hardcode_automatic, $1)=no
6762_LT_TAGVAR(inherit_rpath, $1)=no
6763_LT_TAGVAR(module_cmds, $1)=
6764_LT_TAGVAR(module_expsym_cmds, $1)=
6765_LT_TAGVAR(link_all_deplibs, $1)=unknown
6766_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
6767_LT_TAGVAR(no_undefined_flag, $1)=
6768_LT_TAGVAR(whole_archive_flag_spec, $1)=
6769_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
6770
6771# Source file extension for fc test sources.
6772ac_ext=${ac_fc_srcext-f}
6773
6774# Object file extension for compiled fc test sources.
6775objext=o
6776_LT_TAGVAR(objext, $1)=$objext
6777
6778# No sense in running all these tests if we already determined that
6779# the FC compiler isn't working. Some variables (like enable_shared)
6780# are currently assumed to apply to all compilers on this platform,
6781# and will be corrupted by setting them based on a non-working compiler.
6782if test "$_lt_disable_FC" != yes; then
6783 # Code to be used in simple compile tests
6784 lt_simple_compile_test_code="\
6785 subroutine t
6786 return
6787 end
6788"
6789
6790 # Code to be used in simple link tests
6791 lt_simple_link_test_code="\
6792 program t
6793 end
6794"
6795
6796 # ltmain only uses $CC for tagged configurations so make sure $CC is set.
6797 _LT_TAG_COMPILER
6798
6799 # save warnings/boilerplate of simple test code
6800 _LT_COMPILER_BOILERPLATE
6801 _LT_LINKER_BOILERPLATE
6802
6803 # Allow CC to be a program name with arguments.
6804 lt_save_CC="$CC"
6805 lt_save_GCC=$GCC
6806 CC=${FC-"f95"}
6807 compiler=$CC
6808 GCC=$ac_cv_fc_compiler_gnu
6809
6810 _LT_TAGVAR(compiler, $1)=$CC
6811 _LT_CC_BASENAME([$compiler])
6812
6813 if test -n "$compiler"; then
6814 AC_MSG_CHECKING([if libtool supports shared libraries])
6815 AC_MSG_RESULT([$can_build_shared])
6816
6817 AC_MSG_CHECKING([whether to build shared libraries])
6818 test "$can_build_shared" = "no" && enable_shared=no
6819
6820 # On AIX, shared libraries and static libraries use the same namespace, and
6821 # are all built from PIC.
6822 case $host_os in
6823 aix3*)
6824 test "$enable_shared" = yes && enable_static=no
6825 if test -n "$RANLIB"; then
6826 archive_cmds="$archive_cmds~\$RANLIB \$lib"
6827 postinstall_cmds='$RANLIB $lib'
6828 fi
6829 ;;
6830 aix[[4-9]]*)
6831 if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
6832 test "$enable_shared" = yes && enable_static=no
6833 fi
6834 ;;
6835 esac
6836 AC_MSG_RESULT([$enable_shared])
6837
6838 AC_MSG_CHECKING([whether to build static libraries])
6839 # Make sure either enable_shared or enable_static is yes.
6840 test "$enable_shared" = yes || enable_static=yes
6841 AC_MSG_RESULT([$enable_static])
6842
6843 _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
6844 _LT_TAGVAR(LD, $1)="$LD"
6845
6846 ## CAVEAT EMPTOR:
6847 ## There is no encapsulation within the following macros, do not change
6848 ## the running order or otherwise move them around unless you know exactly
6849 ## what you are doing...
6850 _LT_SYS_HIDDEN_LIBDEPS($1)
6851 _LT_COMPILER_PIC($1)
6852 _LT_COMPILER_C_O($1)
6853 _LT_COMPILER_FILE_LOCKS($1)
6854 _LT_LINKER_SHLIBS($1)
6855 _LT_SYS_DYNAMIC_LINKER($1)
6856 _LT_LINKER_HARDCODE_LIBPATH($1)
6857
6858 _LT_CONFIG($1)
6859 fi # test -n "$compiler"
6860
6861 GCC=$lt_save_GCC
6862 CC="$lt_save_CC"
6863fi # test "$_lt_disable_FC" != yes
6864
6865AC_LANG_POP
6866])# _LT_LANG_FC_CONFIG
6867
6868
6869# _LT_LANG_GCJ_CONFIG([TAG])
6870# --------------------------
6871# Ensure that the configuration variables for the GNU Java Compiler compiler
6872# are suitably defined. These variables are subsequently used by _LT_CONFIG
6873# to write the compiler configuration to `libtool'.
6874m4_defun([_LT_LANG_GCJ_CONFIG],
6875[AC_REQUIRE([LT_PROG_GCJ])dnl
6876AC_LANG_SAVE
6877
6878# Source file extension for Java test sources.
6879ac_ext=java
6880
6881# Object file extension for compiled Java test sources.
6882objext=o
6883_LT_TAGVAR(objext, $1)=$objext
6884
6885# Code to be used in simple compile tests
6886lt_simple_compile_test_code="class foo {}"
6887
6888# Code to be used in simple link tests
6889lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
6890
6891# ltmain only uses $CC for tagged configurations so make sure $CC is set.
6892_LT_TAG_COMPILER
6893
6894# save warnings/boilerplate of simple test code
6895_LT_COMPILER_BOILERPLATE
6896_LT_LINKER_BOILERPLATE
6897
6898# Allow CC to be a program name with arguments.
6899lt_save_CC="$CC"
6900lt_save_GCC=$GCC
6901GCC=yes
6902CC=${GCJ-"gcj"}
6903compiler=$CC
6904_LT_TAGVAR(compiler, $1)=$CC
6905_LT_TAGVAR(LD, $1)="$LD"
6906_LT_CC_BASENAME([$compiler])
6907
6908# GCJ did not exist at the time GCC didn't implicitly link libc in.
6909_LT_TAGVAR(archive_cmds_need_lc, $1)=no
6910
6911_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
6912
6913## CAVEAT EMPTOR:
6914## There is no encapsulation within the following macros, do not change
6915## the running order or otherwise move them around unless you know exactly
6916## what you are doing...
6917if test -n "$compiler"; then
6918 _LT_COMPILER_NO_RTTI($1)
6919 _LT_COMPILER_PIC($1)
6920 _LT_COMPILER_C_O($1)
6921 _LT_COMPILER_FILE_LOCKS($1)
6922 _LT_LINKER_SHLIBS($1)
6923 _LT_LINKER_HARDCODE_LIBPATH($1)
6924
6925 _LT_CONFIG($1)
6926fi
6927
6928AC_LANG_RESTORE
6929
6930GCC=$lt_save_GCC
6931CC="$lt_save_CC"
6932])# _LT_LANG_GCJ_CONFIG
6933
6934
6935# _LT_LANG_RC_CONFIG([TAG])
6936# -------------------------
6937# Ensure that the configuration variables for the Windows resource compiler
6938# are suitably defined. These variables are subsequently used by _LT_CONFIG
6939# to write the compiler configuration to `libtool'.
6940m4_defun([_LT_LANG_RC_CONFIG],
6941[AC_REQUIRE([LT_PROG_RC])dnl
6942AC_LANG_SAVE
6943
6944# Source file extension for RC test sources.
6945ac_ext=rc
6946
6947# Object file extension for compiled RC test sources.
6948objext=o
6949_LT_TAGVAR(objext, $1)=$objext
6950
6951# Code to be used in simple compile tests
6952lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
6953
6954# Code to be used in simple link tests
6955lt_simple_link_test_code="$lt_simple_compile_test_code"
6956
6957# ltmain only uses $CC for tagged configurations so make sure $CC is set.
6958_LT_TAG_COMPILER
6959
6960# save warnings/boilerplate of simple test code
6961_LT_COMPILER_BOILERPLATE
6962_LT_LINKER_BOILERPLATE
6963
6964# Allow CC to be a program name with arguments.
6965lt_save_CC="$CC"
6966lt_save_GCC=$GCC
6967GCC=
6968CC=${RC-"windres"}
6969compiler=$CC
6970_LT_TAGVAR(compiler, $1)=$CC
6971_LT_CC_BASENAME([$compiler])
6972_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
6973
6974if test -n "$compiler"; then
6975 :
6976 _LT_CONFIG($1)
6977fi
6978
6979GCC=$lt_save_GCC
6980AC_LANG_RESTORE
6981CC="$lt_save_CC"
6982])# _LT_LANG_RC_CONFIG
6983
6984
6985# LT_PROG_GCJ
6986# -----------
6987AC_DEFUN([LT_PROG_GCJ],
6988[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
6989 [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
6990 [AC_CHECK_TOOL(GCJ, gcj,)
6991 test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
6992 AC_SUBST(GCJFLAGS)])])[]dnl
6993])
6994
6995# Old name:
6996AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
6997dnl aclocal-1.4 backwards compatibility:
6998dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
6999
7000
7001# LT_PROG_RC
7002# ----------
7003AC_DEFUN([LT_PROG_RC],
7004[AC_CHECK_TOOL(RC, windres,)
7005])
7006
7007# Old name:
7008AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
7009dnl aclocal-1.4 backwards compatibility:
7010dnl AC_DEFUN([LT_AC_PROG_RC], [])
7011
7012
7013# _LT_DECL_EGREP
7014# --------------
7015# If we don't have a new enough Autoconf to choose the best grep
7016# available, choose the one first in the user's PATH.
7017m4_defun([_LT_DECL_EGREP],
7018[AC_REQUIRE([AC_PROG_EGREP])dnl
7019AC_REQUIRE([AC_PROG_FGREP])dnl
7020test -z "$GREP" && GREP=grep
7021_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
7022_LT_DECL([], [EGREP], [1], [An ERE matcher])
7023_LT_DECL([], [FGREP], [1], [A literal string matcher])
7024dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
7025AC_SUBST([GREP])
7026])
7027
7028
7029# _LT_DECL_OBJDUMP
7030# --------------
7031# If we don't have a new enough Autoconf to choose the best objdump
7032# available, choose the one first in the user's PATH.
7033m4_defun([_LT_DECL_OBJDUMP],
7034[AC_CHECK_TOOL(OBJDUMP, objdump, false)
7035test -z "$OBJDUMP" && OBJDUMP=objdump
7036_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
7037AC_SUBST([OBJDUMP])
7038])
7039
7040
7041# _LT_DECL_SED
7042# ------------
7043# Check for a fully-functional sed program, that truncates
7044# as few characters as possible. Prefer GNU sed if found.
7045m4_defun([_LT_DECL_SED],
7046[AC_PROG_SED
7047test -z "$SED" && SED=sed
7048Xsed="$SED -e 1s/^X//"
7049_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
7050_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
7051 [Sed that helps us avoid accidentally triggering echo(1) options like -n])
7052])# _LT_DECL_SED
7053
7054m4_ifndef([AC_PROG_SED], [
7055############################################################
7056# NOTE: This macro has been submitted for inclusion into #
7057# GNU Autoconf as AC_PROG_SED. When it is available in #
7058# a released version of Autoconf we should remove this #
7059# macro and use it instead. #
7060############################################################
7061
7062m4_defun([AC_PROG_SED],
7063[AC_MSG_CHECKING([for a sed that does not truncate output])
7064AC_CACHE_VAL(lt_cv_path_SED,
7065[# Loop through the user's path and test for sed and gsed.
7066# Then use that list of sed's as ones to test for truncation.
7067as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
7068for as_dir in $PATH
7069do
7070 IFS=$as_save_IFS
7071 test -z "$as_dir" && as_dir=.
7072 for lt_ac_prog in sed gsed; do
7073 for ac_exec_ext in '' $ac_executable_extensions; do
7074 if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
7075 lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
7076 fi
7077 done
7078 done
7079done
7080IFS=$as_save_IFS
7081lt_ac_max=0
7082lt_ac_count=0
7083# Add /usr/xpg4/bin/sed as it is typically found on Solaris
7084# along with /bin/sed that truncates output.
7085for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
7086 test ! -f $lt_ac_sed && continue
7087 cat /dev/null > conftest.in
7088 lt_ac_count=0
7089 echo $ECHO_N "0123456789$ECHO_C" >conftest.in
7090 # Check for GNU sed and select it if it is found.
7091 if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
7092 lt_cv_path_SED=$lt_ac_sed
7093 break
7094 fi
7095 while true; do
7096 cat conftest.in conftest.in >conftest.tmp
7097 mv conftest.tmp conftest.in
7098 cp conftest.in conftest.nl
7099 echo >>conftest.nl
7100 $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
7101 cmp -s conftest.out conftest.nl || break
7102 # 10000 chars as input seems more than enough
7103 test $lt_ac_count -gt 10 && break
7104 lt_ac_count=`expr $lt_ac_count + 1`
7105 if test $lt_ac_count -gt $lt_ac_max; then
7106 lt_ac_max=$lt_ac_count
7107 lt_cv_path_SED=$lt_ac_sed
7108 fi
7109 done
7110done
7111])
7112SED=$lt_cv_path_SED
7113AC_SUBST([SED])
7114AC_MSG_RESULT([$SED])
7115])#AC_PROG_SED
7116])#m4_ifndef
7117
7118# Old name:
7119AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
7120dnl aclocal-1.4 backwards compatibility:
7121dnl AC_DEFUN([LT_AC_PROG_SED], [])
7122
7123
7124# _LT_CHECK_SHELL_FEATURES
7125# ------------------------
7126# Find out whether the shell is Bourne or XSI compatible,
7127# or has some other useful features.
7128m4_defun([_LT_CHECK_SHELL_FEATURES],
7129[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
7130# Try some XSI features
7131xsi_shell=no
7132( _lt_dummy="a/b/c"
7133 test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
7134 = c,a/b,, \
7135 && eval 'test $(( 1 + 1 )) -eq 2 \
7136 && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
7137 && xsi_shell=yes
7138AC_MSG_RESULT([$xsi_shell])
7139_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
7140
7141AC_MSG_CHECKING([whether the shell understands "+="])
7142lt_shell_append=no
7143( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
7144 >/dev/null 2>&1 \
7145 && lt_shell_append=yes
7146AC_MSG_RESULT([$lt_shell_append])
7147_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
7148
7149if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
7150 lt_unset=unset
7151else
7152 lt_unset=false
7153fi
7154_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
7155
7156# test EBCDIC or ASCII
7157case `echo X|tr X '\101'` in
7158 A) # ASCII based system
7159 # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
7160 lt_SP2NL='tr \040 \012'
7161 lt_NL2SP='tr \015\012 \040\040'
7162 ;;
7163 *) # EBCDIC based system
7164 lt_SP2NL='tr \100 \n'
7165 lt_NL2SP='tr \r\n \100\100'
7166 ;;
7167esac
7168_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
7169_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
7170])# _LT_CHECK_SHELL_FEATURES
7171
7172
7173# _LT_PROG_XSI_SHELLFNS
7174# ---------------------
7175# Bourne and XSI compatible variants of some useful shell functions.
7176m4_defun([_LT_PROG_XSI_SHELLFNS],
7177[case $xsi_shell in
7178 yes)
7179 cat << \_LT_EOF >> "$cfgfile"
7180
7181# func_dirname file append nondir_replacement
7182# Compute the dirname of FILE. If nonempty, add APPEND to the result,
7183# otherwise set result to NONDIR_REPLACEMENT.
7184func_dirname ()
7185{
7186 case ${1} in
7187 */*) func_dirname_result="${1%/*}${2}" ;;
7188 * ) func_dirname_result="${3}" ;;
7189 esac
7190}
7191
7192# func_basename file
7193func_basename ()
7194{
7195 func_basename_result="${1##*/}"
7196}
7197
7198# func_dirname_and_basename file append nondir_replacement
7199# perform func_basename and func_dirname in a single function
7200# call:
7201# dirname: Compute the dirname of FILE. If nonempty,
7202# add APPEND to the result, otherwise set result
7203# to NONDIR_REPLACEMENT.
7204# value returned in "$func_dirname_result"
7205# basename: Compute filename of FILE.
7206# value retuned in "$func_basename_result"
7207# Implementation must be kept synchronized with func_dirname
7208# and func_basename. For efficiency, we do not delegate to
7209# those functions but instead duplicate the functionality here.
7210func_dirname_and_basename ()
7211{
7212 case ${1} in
7213 */*) func_dirname_result="${1%/*}${2}" ;;
7214 * ) func_dirname_result="${3}" ;;
7215 esac
7216 func_basename_result="${1##*/}"
7217}
7218
7219# func_stripname prefix suffix name
7220# strip PREFIX and SUFFIX off of NAME.
7221# PREFIX and SUFFIX must not contain globbing or regex special
7222# characters, hashes, percent signs, but SUFFIX may contain a leading
7223# dot (in which case that matches only a dot).
7224func_stripname ()
7225{
7226 # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
7227 # positional parameters, so assign one to ordinary parameter first.
7228 func_stripname_result=${3}
7229 func_stripname_result=${func_stripname_result#"${1}"}
7230 func_stripname_result=${func_stripname_result%"${2}"}
7231}
7232
7233# func_opt_split
7234func_opt_split ()
7235{
7236 func_opt_split_opt=${1%%=*}
7237 func_opt_split_arg=${1#*=}
7238}
7239
7240# func_lo2o object
7241func_lo2o ()
7242{
7243 case ${1} in
7244 *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
7245 *) func_lo2o_result=${1} ;;
7246 esac
7247}
7248
7249# func_xform libobj-or-source
7250func_xform ()
7251{
7252 func_xform_result=${1%.*}.lo
7253}
7254
7255# func_arith arithmetic-term...
7256func_arith ()
7257{
7258 func_arith_result=$(( $[*] ))
7259}
7260
7261# func_len string
7262# STRING may not start with a hyphen.
7263func_len ()
7264{
7265 func_len_result=${#1}
7266}
7267
7268_LT_EOF
7269 ;;
7270 *) # Bourne compatible functions.
7271 cat << \_LT_EOF >> "$cfgfile"
7272
7273# func_dirname file append nondir_replacement
7274# Compute the dirname of FILE. If nonempty, add APPEND to the result,
7275# otherwise set result to NONDIR_REPLACEMENT.
7276func_dirname ()
7277{
7278 # Extract subdirectory from the argument.
7279 func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
7280 if test "X$func_dirname_result" = "X${1}"; then
7281 func_dirname_result="${3}"
7282 else
7283 func_dirname_result="$func_dirname_result${2}"
7284 fi
7285}
7286
7287# func_basename file
7288func_basename ()
7289{
7290 func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
7291}
7292
7293dnl func_dirname_and_basename
7294dnl A portable version of this function is already defined in general.m4sh
7295dnl so there is no need for it here.
7296
7297# func_stripname prefix suffix name
7298# strip PREFIX and SUFFIX off of NAME.
7299# PREFIX and SUFFIX must not contain globbing or regex special
7300# characters, hashes, percent signs, but SUFFIX may contain a leading
7301# dot (in which case that matches only a dot).
7302# func_strip_suffix prefix name
7303func_stripname ()
7304{
7305 case ${2} in
7306 .*) func_stripname_result=`$ECHO "X${3}" \
7307 | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
7308 *) func_stripname_result=`$ECHO "X${3}" \
7309 | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
7310 esac
7311}
7312
7313# sed scripts:
7314my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q'
7315my_sed_long_arg='1s/^-[[^=]]*=//'
7316
7317# func_opt_split
7318func_opt_split ()
7319{
7320 func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
7321 func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
7322}
7323
7324# func_lo2o object
7325func_lo2o ()
7326{
7327 func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
7328}
7329
7330# func_xform libobj-or-source
7331func_xform ()
7332{
7333 func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'`
7334}
7335
7336# func_arith arithmetic-term...
7337func_arith ()
7338{
7339 func_arith_result=`expr "$[@]"`
7340}
7341
7342# func_len string
7343# STRING may not start with a hyphen.
7344func_len ()
7345{
7346 func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
7347}
7348
7349_LT_EOF
7350esac
7351
7352case $lt_shell_append in
7353 yes)
7354 cat << \_LT_EOF >> "$cfgfile"
7355
7356# func_append var value
7357# Append VALUE to the end of shell variable VAR.
7358func_append ()
7359{
7360 eval "$[1]+=\$[2]"
7361}
7362_LT_EOF
7363 ;;
7364 *)
7365 cat << \_LT_EOF >> "$cfgfile"
7366
7367# func_append var value
7368# Append VALUE to the end of shell variable VAR.
7369func_append ()
7370{
7371 eval "$[1]=\$$[1]\$[2]"
7372}
7373
7374_LT_EOF
7375 ;;
7376 esac
7377])
diff --git a/gl/m4/ltoptions.m4 b/gl/m4/ltoptions.m4
new file mode 100644
index 00000000..34151a3b
--- /dev/null
+++ b/gl/m4/ltoptions.m4
@@ -0,0 +1,368 @@
1# Helper functions for option handling. -*- Autoconf -*-
2#
3# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
4# Written by Gary V. Vaughan, 2004
5#
6# This file is free software; the Free Software Foundation gives
7# unlimited permission to copy and/or distribute it, with or without
8# modifications, as long as this notice is preserved.
9
10# serial 6 ltoptions.m4
11
12# This is to help aclocal find these macros, as it can't see m4_define.
13AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
14
15
16# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
17# ------------------------------------------
18m4_define([_LT_MANGLE_OPTION],
19[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
20
21
22# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
23# ---------------------------------------
24# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
25# matching handler defined, dispatch to it. Other OPTION-NAMEs are
26# saved as a flag.
27m4_define([_LT_SET_OPTION],
28[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
29m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
30 _LT_MANGLE_DEFUN([$1], [$2]),
31 [m4_warning([Unknown $1 option `$2'])])[]dnl
32])
33
34
35# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
36# ------------------------------------------------------------
37# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
38m4_define([_LT_IF_OPTION],
39[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
40
41
42# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
43# -------------------------------------------------------
44# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
45# are set.
46m4_define([_LT_UNLESS_OPTIONS],
47[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
48 [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
49 [m4_define([$0_found])])])[]dnl
50m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
51])[]dnl
52])
53
54
55# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
56# ----------------------------------------
57# OPTION-LIST is a space-separated list of Libtool options associated
58# with MACRO-NAME. If any OPTION has a matching handler declared with
59# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
60# the unknown option and exit.
61m4_defun([_LT_SET_OPTIONS],
62[# Set options
63m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
64 [_LT_SET_OPTION([$1], _LT_Option)])
65
66m4_if([$1],[LT_INIT],[
67 dnl
68 dnl Simply set some default values (i.e off) if boolean options were not
69 dnl specified:
70 _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
71 ])
72 _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
73 ])
74 dnl
75 dnl If no reference was made to various pairs of opposing options, then
76 dnl we run the default mode handler for the pair. For example, if neither
77 dnl `shared' nor `disable-shared' was passed, we enable building of shared
78 dnl archives by default:
79 _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
80 _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
81 _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
82 _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
83 [_LT_ENABLE_FAST_INSTALL])
84 ])
85])# _LT_SET_OPTIONS
86
87
88## --------------------------------- ##
89## Macros to handle LT_INIT options. ##
90## --------------------------------- ##
91
92# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
93# -----------------------------------------
94m4_define([_LT_MANGLE_DEFUN],
95[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
96
97
98# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
99# -----------------------------------------------
100m4_define([LT_OPTION_DEFINE],
101[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
102])# LT_OPTION_DEFINE
103
104
105# dlopen
106# ------
107LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
108])
109
110AU_DEFUN([AC_LIBTOOL_DLOPEN],
111[_LT_SET_OPTION([LT_INIT], [dlopen])
112AC_DIAGNOSE([obsolete],
113[$0: Remove this warning and the call to _LT_SET_OPTION when you
114put the `dlopen' option into LT_INIT's first parameter.])
115])
116
117dnl aclocal-1.4 backwards compatibility:
118dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
119
120
121# win32-dll
122# ---------
123# Declare package support for building win32 dll's.
124LT_OPTION_DEFINE([LT_INIT], [win32-dll],
125[enable_win32_dll=yes
126
127case $host in
128*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
129 AC_CHECK_TOOL(AS, as, false)
130 AC_CHECK_TOOL(DLLTOOL, dlltool, false)
131 AC_CHECK_TOOL(OBJDUMP, objdump, false)
132 ;;
133esac
134
135test -z "$AS" && AS=as
136_LT_DECL([], [AS], [0], [Assembler program])dnl
137
138test -z "$DLLTOOL" && DLLTOOL=dlltool
139_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl
140
141test -z "$OBJDUMP" && OBJDUMP=objdump
142_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl
143])# win32-dll
144
145AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
146[AC_REQUIRE([AC_CANONICAL_HOST])dnl
147_LT_SET_OPTION([LT_INIT], [win32-dll])
148AC_DIAGNOSE([obsolete],
149[$0: Remove this warning and the call to _LT_SET_OPTION when you
150put the `win32-dll' option into LT_INIT's first parameter.])
151])
152
153dnl aclocal-1.4 backwards compatibility:
154dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
155
156
157# _LT_ENABLE_SHARED([DEFAULT])
158# ----------------------------
159# implement the --enable-shared flag, and supports the `shared' and
160# `disable-shared' LT_INIT options.
161# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
162m4_define([_LT_ENABLE_SHARED],
163[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
164AC_ARG_ENABLE([shared],
165 [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
166 [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
167 [p=${PACKAGE-default}
168 case $enableval in
169 yes) enable_shared=yes ;;
170 no) enable_shared=no ;;
171 *)
172 enable_shared=no
173 # Look at the argument we got. We use all the common list separators.
174 lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
175 for pkg in $enableval; do
176 IFS="$lt_save_ifs"
177 if test "X$pkg" = "X$p"; then
178 enable_shared=yes
179 fi
180 done
181 IFS="$lt_save_ifs"
182 ;;
183 esac],
184 [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
185
186 _LT_DECL([build_libtool_libs], [enable_shared], [0],
187 [Whether or not to build shared libraries])
188])# _LT_ENABLE_SHARED
189
190LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
191LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
192
193# Old names:
194AC_DEFUN([AC_ENABLE_SHARED],
195[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
196])
197
198AC_DEFUN([AC_DISABLE_SHARED],
199[_LT_SET_OPTION([LT_INIT], [disable-shared])
200])
201
202AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
203AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
204
205dnl aclocal-1.4 backwards compatibility:
206dnl AC_DEFUN([AM_ENABLE_SHARED], [])
207dnl AC_DEFUN([AM_DISABLE_SHARED], [])
208
209
210
211# _LT_ENABLE_STATIC([DEFAULT])
212# ----------------------------
213# implement the --enable-static flag, and support the `static' and
214# `disable-static' LT_INIT options.
215# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
216m4_define([_LT_ENABLE_STATIC],
217[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
218AC_ARG_ENABLE([static],
219 [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
220 [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
221 [p=${PACKAGE-default}
222 case $enableval in
223 yes) enable_static=yes ;;
224 no) enable_static=no ;;
225 *)
226 enable_static=no
227 # Look at the argument we got. We use all the common list separators.
228 lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
229 for pkg in $enableval; do
230 IFS="$lt_save_ifs"
231 if test "X$pkg" = "X$p"; then
232 enable_static=yes
233 fi
234 done
235 IFS="$lt_save_ifs"
236 ;;
237 esac],
238 [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
239
240 _LT_DECL([build_old_libs], [enable_static], [0],
241 [Whether or not to build static libraries])
242])# _LT_ENABLE_STATIC
243
244LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
245LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
246
247# Old names:
248AC_DEFUN([AC_ENABLE_STATIC],
249[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
250])
251
252AC_DEFUN([AC_DISABLE_STATIC],
253[_LT_SET_OPTION([LT_INIT], [disable-static])
254])
255
256AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
257AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
258
259dnl aclocal-1.4 backwards compatibility:
260dnl AC_DEFUN([AM_ENABLE_STATIC], [])
261dnl AC_DEFUN([AM_DISABLE_STATIC], [])
262
263
264
265# _LT_ENABLE_FAST_INSTALL([DEFAULT])
266# ----------------------------------
267# implement the --enable-fast-install flag, and support the `fast-install'
268# and `disable-fast-install' LT_INIT options.
269# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
270m4_define([_LT_ENABLE_FAST_INSTALL],
271[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
272AC_ARG_ENABLE([fast-install],
273 [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
274 [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
275 [p=${PACKAGE-default}
276 case $enableval in
277 yes) enable_fast_install=yes ;;
278 no) enable_fast_install=no ;;
279 *)
280 enable_fast_install=no
281 # Look at the argument we got. We use all the common list separators.
282 lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
283 for pkg in $enableval; do
284 IFS="$lt_save_ifs"
285 if test "X$pkg" = "X$p"; then
286 enable_fast_install=yes
287 fi
288 done
289 IFS="$lt_save_ifs"
290 ;;
291 esac],
292 [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
293
294_LT_DECL([fast_install], [enable_fast_install], [0],
295 [Whether or not to optimize for fast installation])dnl
296])# _LT_ENABLE_FAST_INSTALL
297
298LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
299LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
300
301# Old names:
302AU_DEFUN([AC_ENABLE_FAST_INSTALL],
303[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
304AC_DIAGNOSE([obsolete],
305[$0: Remove this warning and the call to _LT_SET_OPTION when you put
306the `fast-install' option into LT_INIT's first parameter.])
307])
308
309AU_DEFUN([AC_DISABLE_FAST_INSTALL],
310[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
311AC_DIAGNOSE([obsolete],
312[$0: Remove this warning and the call to _LT_SET_OPTION when you put
313the `disable-fast-install' option into LT_INIT's first parameter.])
314])
315
316dnl aclocal-1.4 backwards compatibility:
317dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
318dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
319
320
321# _LT_WITH_PIC([MODE])
322# --------------------
323# implement the --with-pic flag, and support the `pic-only' and `no-pic'
324# LT_INIT options.
325# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
326m4_define([_LT_WITH_PIC],
327[AC_ARG_WITH([pic],
328 [AS_HELP_STRING([--with-pic],
329 [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
330 [pic_mode="$withval"],
331 [pic_mode=default])
332
333test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
334
335_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
336])# _LT_WITH_PIC
337
338LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
339LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
340
341# Old name:
342AU_DEFUN([AC_LIBTOOL_PICMODE],
343[_LT_SET_OPTION([LT_INIT], [pic-only])
344AC_DIAGNOSE([obsolete],
345[$0: Remove this warning and the call to _LT_SET_OPTION when you
346put the `pic-only' option into LT_INIT's first parameter.])
347])
348
349dnl aclocal-1.4 backwards compatibility:
350dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
351
352## ----------------- ##
353## LTDL_INIT Options ##
354## ----------------- ##
355
356m4_define([_LTDL_MODE], [])
357LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
358 [m4_define([_LTDL_MODE], [nonrecursive])])
359LT_OPTION_DEFINE([LTDL_INIT], [recursive],
360 [m4_define([_LTDL_MODE], [recursive])])
361LT_OPTION_DEFINE([LTDL_INIT], [subproject],
362 [m4_define([_LTDL_MODE], [subproject])])
363
364m4_define([_LTDL_TYPE], [])
365LT_OPTION_DEFINE([LTDL_INIT], [installable],
366 [m4_define([_LTDL_TYPE], [installable])])
367LT_OPTION_DEFINE([LTDL_INIT], [convenience],
368 [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/gl/m4/ltsugar.m4 b/gl/m4/ltsugar.m4
new file mode 100644
index 00000000..9000a057
--- /dev/null
+++ b/gl/m4/ltsugar.m4
@@ -0,0 +1,123 @@
1# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
2#
3# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
4# Written by Gary V. Vaughan, 2004
5#
6# This file is free software; the Free Software Foundation gives
7# unlimited permission to copy and/or distribute it, with or without
8# modifications, as long as this notice is preserved.
9
10# serial 6 ltsugar.m4
11
12# This is to help aclocal find these macros, as it can't see m4_define.
13AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
14
15
16# lt_join(SEP, ARG1, [ARG2...])
17# -----------------------------
18# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
19# associated separator.
20# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
21# versions in m4sugar had bugs.
22m4_define([lt_join],
23[m4_if([$#], [1], [],
24 [$#], [2], [[$2]],
25 [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
26m4_define([_lt_join],
27[m4_if([$#$2], [2], [],
28 [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
29
30
31# lt_car(LIST)
32# lt_cdr(LIST)
33# ------------
34# Manipulate m4 lists.
35# These macros are necessary as long as will still need to support
36# Autoconf-2.59 which quotes differently.
37m4_define([lt_car], [[$1]])
38m4_define([lt_cdr],
39[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
40 [$#], 1, [],
41 [m4_dquote(m4_shift($@))])])
42m4_define([lt_unquote], $1)
43
44
45# lt_append(MACRO-NAME, STRING, [SEPARATOR])
46# ------------------------------------------
47# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
48# Note that neither SEPARATOR nor STRING are expanded; they are appended
49# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
50# No SEPARATOR is output if MACRO-NAME was previously undefined (different
51# than defined and empty).
52#
53# This macro is needed until we can rely on Autoconf 2.62, since earlier
54# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
55m4_define([lt_append],
56[m4_define([$1],
57 m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
58
59
60
61# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
62# ----------------------------------------------------------
63# Produce a SEP delimited list of all paired combinations of elements of
64# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
65# has the form PREFIXmINFIXSUFFIXn.
66# Needed until we can rely on m4_combine added in Autoconf 2.62.
67m4_define([lt_combine],
68[m4_if(m4_eval([$# > 3]), [1],
69 [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
70[[m4_foreach([_Lt_prefix], [$2],
71 [m4_foreach([_Lt_suffix],
72 ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
73 [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
74
75
76# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
77# -----------------------------------------------------------------------
78# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
79# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
80m4_define([lt_if_append_uniq],
81[m4_ifdef([$1],
82 [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
83 [lt_append([$1], [$2], [$3])$4],
84 [$5])],
85 [lt_append([$1], [$2], [$3])$4])])
86
87
88# lt_dict_add(DICT, KEY, VALUE)
89# -----------------------------
90m4_define([lt_dict_add],
91[m4_define([$1($2)], [$3])])
92
93
94# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
95# --------------------------------------------
96m4_define([lt_dict_add_subkey],
97[m4_define([$1($2:$3)], [$4])])
98
99
100# lt_dict_fetch(DICT, KEY, [SUBKEY])
101# ----------------------------------
102m4_define([lt_dict_fetch],
103[m4_ifval([$3],
104 m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
105 m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
106
107
108# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
109# -----------------------------------------------------------------
110m4_define([lt_if_dict_fetch],
111[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
112 [$5],
113 [$6])])
114
115
116# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
117# --------------------------------------------------------------
118m4_define([lt_dict_filter],
119[m4_if([$5], [], [],
120 [lt_join(m4_quote(m4_default([$4], [[, ]])),
121 lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
122 [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
123])
diff --git a/gl/m4/ltversion.m4 b/gl/m4/ltversion.m4
new file mode 100644
index 00000000..f3c53098
--- /dev/null
+++ b/gl/m4/ltversion.m4
@@ -0,0 +1,23 @@
1# ltversion.m4 -- version numbers -*- Autoconf -*-
2#
3# Copyright (C) 2004 Free Software Foundation, Inc.
4# Written by Scott James Remnant, 2004
5#
6# This file is free software; the Free Software Foundation gives
7# unlimited permission to copy and/or distribute it, with or without
8# modifications, as long as this notice is preserved.
9
10# Generated from ltversion.in.
11
12# serial 3017 ltversion.m4
13# This file is part of GNU Libtool
14
15m4_define([LT_PACKAGE_VERSION], [2.2.6b])
16m4_define([LT_PACKAGE_REVISION], [1.3017])
17
18AC_DEFUN([LTVERSION_VERSION],
19[macro_version='2.2.6b'
20macro_revision='1.3017'
21_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
22_LT_DECL(, macro_revision, 0)
23])
diff --git a/gl/m4/lt~obsolete.m4 b/gl/m4/lt~obsolete.m4
new file mode 100644
index 00000000..637bb206
--- /dev/null
+++ b/gl/m4/lt~obsolete.m4
@@ -0,0 +1,92 @@
1# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
2#
3# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
4# Written by Scott James Remnant, 2004.
5#
6# This file is free software; the Free Software Foundation gives
7# unlimited permission to copy and/or distribute it, with or without
8# modifications, as long as this notice is preserved.
9
10# serial 4 lt~obsolete.m4
11
12# These exist entirely to fool aclocal when bootstrapping libtool.
13#
14# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
15# which have later been changed to m4_define as they aren't part of the
16# exported API, or moved to Autoconf or Automake where they belong.
17#
18# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
19# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
20# using a macro with the same name in our local m4/libtool.m4 it'll
21# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
22# and doesn't know about Autoconf macros at all.)
23#
24# So we provide this file, which has a silly filename so it's always
25# included after everything else. This provides aclocal with the
26# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
27# because those macros already exist, or will be overwritten later.
28# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
29#
30# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
31# Yes, that means every name once taken will need to remain here until
32# we give up compatibility with versions before 1.7, at which point
33# we need to keep only those names which we still refer to.
34
35# This is to help aclocal find these macros, as it can't see m4_define.
36AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
37
38m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
39m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
40m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
41m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
42m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
43m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
44m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
45m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
46m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
47m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
48m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
49m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
50m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
51m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
52m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
53m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
54m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
55m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
56m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
57m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
58m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
59m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
60m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
61m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
62m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
63m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
64m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
65m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
66m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
67m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
68m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
69m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
70m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
71m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
72m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
73m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
74m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
75m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])])
76m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
77m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
78m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
79m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
80m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])])
81m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
82m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
83m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
84m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
85m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
86m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
87m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
88m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
89m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
90m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
91m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
92m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])