resetting manifest requested domain to floor
[platform/upstream/libexif.git] / auto-m4 / libtool.m4
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, 2009, 2010 Free Software Foundation,
5 #                 Inc.
6 #   Written by Gordon Matzigkeit, 1996
7 #
8 # This file is free software; the Free Software Foundation gives
9 # unlimited permission to copy and/or distribute it, with or without
10 # modifications, as long as this notice is preserved.
11
12 m4_define([_LT_COPYING], [dnl
13 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
14 #                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
15 #                 Inc.
16 #   Written by Gordon Matzigkeit, 1996
17 #
18 #   This file is part of GNU Libtool.
19 #
20 # GNU Libtool is free software; you can redistribute it and/or
21 # modify it under the terms of the GNU General Public License as
22 # published by the Free Software Foundation; either version 2 of
23 # the License, or (at your option) any later version.
24 #
25 # As a special exception to the GNU General Public License,
26 # if you distribute this file as part of a program or library that
27 # is built using GNU Libtool, you may include this file under the
28 # same distribution terms that you use for the rest of that program.
29 #
30 # GNU Libtool is distributed in the hope that it will be useful,
31 # but WITHOUT ANY WARRANTY; without even the implied warranty of
32 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
33 # GNU General Public License for more details.
34 #
35 # You should have received a copy of the GNU General Public License
36 # along with GNU Libtool; see the file COPYING.  If not, a copy
37 # can be downloaded from http://www.gnu.org/licenses/gpl.html, or
38 # obtained by writing to the Free Software Foundation, Inc.,
39 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
40 ])
41
42 # serial 57 LT_INIT
43
44
45 # LT_PREREQ(VERSION)
46 # ------------------
47 # Complain and exit if this libtool version is less that VERSION.
48 m4_defun([LT_PREREQ],
49 [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
50        [m4_default([$3],
51                    [m4_fatal([Libtool version $1 or higher is required],
52                              63)])],
53        [$2])])
54
55
56 # _LT_CHECK_BUILDDIR
57 # ------------------
58 # Complain if the absolute build directory name contains unusual characters
59 m4_defun([_LT_CHECK_BUILDDIR],
60 [case `pwd` in
61   *\ * | *\     *)
62     AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
63 esac
64 ])
65
66
67 # LT_INIT([OPTIONS])
68 # ------------------
69 AC_DEFUN([LT_INIT],
70 [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
71 AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
72 AC_BEFORE([$0], [LT_LANG])dnl
73 AC_BEFORE([$0], [LT_OUTPUT])dnl
74 AC_BEFORE([$0], [LTDL_INIT])dnl
75 m4_require([_LT_CHECK_BUILDDIR])dnl
76
77 dnl Autoconf doesn't catch unexpanded LT_ macros by default:
78 m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
79 m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
80 dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
81 dnl unless we require an AC_DEFUNed macro:
82 AC_REQUIRE([LTOPTIONS_VERSION])dnl
83 AC_REQUIRE([LTSUGAR_VERSION])dnl
84 AC_REQUIRE([LTVERSION_VERSION])dnl
85 AC_REQUIRE([LTOBSOLETE_VERSION])dnl
86 m4_require([_LT_PROG_LTMAIN])dnl
87
88 _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
89
90 dnl Parse OPTIONS
91 _LT_SET_OPTIONS([$0], [$1])
92
93 # This can be used to rebuild libtool when needed
94 LIBTOOL_DEPS="$ltmain"
95
96 # Always use our own libtool.
97 LIBTOOL='$(SHELL) $(top_builddir)/libtool'
98 AC_SUBST(LIBTOOL)dnl
99
100 _LT_SETUP
101
102 # Only expand once:
103 m4_define([LT_INIT])
104 ])# LT_INIT
105
106 # Old names:
107 AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
108 AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
109 dnl aclocal-1.4 backwards compatibility:
110 dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
111 dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
112
113
114 # _LT_CC_BASENAME(CC)
115 # -------------------
116 # Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
117 m4_defun([_LT_CC_BASENAME],
118 [for cc_temp in $1""; do
119   case $cc_temp in
120     compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
121     distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
122     \-*) ;;
123     *) break;;
124   esac
125 done
126 cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
127 ])
128
129
130 # _LT_FILEUTILS_DEFAULTS
131 # ----------------------
132 # It is okay to use these file commands and assume they have been set
133 # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
134 m4_defun([_LT_FILEUTILS_DEFAULTS],
135 [: ${CP="cp -f"}
136 : ${MV="mv -f"}
137 : ${RM="rm -f"}
138 ])# _LT_FILEUTILS_DEFAULTS
139
140
141 # _LT_SETUP
142 # ---------
143 m4_defun([_LT_SETUP],
144 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
145 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
146 AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
147 AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
148
149 _LT_DECL([], [host_alias], [0], [The host system])dnl
150 _LT_DECL([], [host], [0])dnl
151 _LT_DECL([], [host_os], [0])dnl
152 dnl
153 _LT_DECL([], [build_alias], [0], [The build system])dnl
154 _LT_DECL([], [build], [0])dnl
155 _LT_DECL([], [build_os], [0])dnl
156 dnl
157 AC_REQUIRE([AC_PROG_CC])dnl
158 AC_REQUIRE([LT_PATH_LD])dnl
159 AC_REQUIRE([LT_PATH_NM])dnl
160 dnl
161 AC_REQUIRE([AC_PROG_LN_S])dnl
162 test -z "$LN_S" && LN_S="ln -s"
163 _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
164 dnl
165 AC_REQUIRE([LT_CMD_MAX_LEN])dnl
166 _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
167 _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
168 dnl
169 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
170 m4_require([_LT_CHECK_SHELL_FEATURES])dnl
171 m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
172 m4_require([_LT_CMD_RELOAD])dnl
173 m4_require([_LT_CHECK_MAGIC_METHOD])dnl
174 m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
175 m4_require([_LT_CMD_OLD_ARCHIVE])dnl
176 m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
177 m4_require([_LT_WITH_SYSROOT])dnl
178
179 _LT_CONFIG_LIBTOOL_INIT([
180 # See if we are running on zsh, and set the options which allow our
181 # commands through without removal of \ escapes INIT.
182 if test -n "\${ZSH_VERSION+set}" ; then
183    setopt NO_GLOB_SUBST
184 fi
185 ])
186 if test -n "${ZSH_VERSION+set}" ; then
187    setopt NO_GLOB_SUBST
188 fi
189
190 _LT_CHECK_OBJDIR
191
192 m4_require([_LT_TAG_COMPILER])dnl
193
194 case $host_os in
195 aix3*)
196   # AIX sometimes has problems with the GCC collect2 program.  For some
197   # reason, if we set the COLLECT_NAMES environment variable, the problems
198   # vanish in a puff of smoke.
199   if test "X${COLLECT_NAMES+set}" != Xset; then
200     COLLECT_NAMES=
201     export COLLECT_NAMES
202   fi
203   ;;
204 esac
205
206 # Global variables:
207 ofile=libtool
208 can_build_shared=yes
209
210 # All known linkers require a `.a' archive for static linking (except MSVC,
211 # which needs '.lib').
212 libext=a
213
214 with_gnu_ld="$lt_cv_prog_gnu_ld"
215
216 old_CC="$CC"
217 old_CFLAGS="$CFLAGS"
218
219 # Set sane defaults for various variables
220 test -z "$CC" && CC=cc
221 test -z "$LTCC" && LTCC=$CC
222 test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
223 test -z "$LD" && LD=ld
224 test -z "$ac_objext" && ac_objext=o
225
226 _LT_CC_BASENAME([$compiler])
227
228 # Only perform the check for file, if the check method requires it
229 test -z "$MAGIC_CMD" && MAGIC_CMD=file
230 case $deplibs_check_method in
231 file_magic*)
232   if test "$file_magic_cmd" = '$MAGIC_CMD'; then
233     _LT_PATH_MAGIC
234   fi
235   ;;
236 esac
237
238 # Use C for the default configuration in the libtool script
239 LT_SUPPORTED_TAG([CC])
240 _LT_LANG_C_CONFIG
241 _LT_LANG_DEFAULT_CONFIG
242 _LT_CONFIG_COMMANDS
243 ])# _LT_SETUP
244
245
246 # _LT_PREPARE_SED_QUOTE_VARS
247 # --------------------------
248 # Define a few sed substitution that help us do robust quoting.
249 m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
250 [# Backslashify metacharacters that are still active within
251 # double-quoted strings.
252 sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
253
254 # Same as above, but do not quote variable references.
255 double_quote_subst='s/\([["`\\]]\)/\\\1/g'
256
257 # Sed substitution to delay expansion of an escaped shell variable in a
258 # double_quote_subst'ed string.
259 delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
260
261 # Sed substitution to delay expansion of an escaped single quote.
262 delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
263
264 # Sed substitution to avoid accidental globbing in evaled expressions
265 no_glob_subst='s/\*/\\\*/g'
266 ])
267
268 # _LT_PROG_LTMAIN
269 # ---------------
270 # Note that this code is called both from `configure', and `config.status'
271 # now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
272 # `config.status' has no value for ac_aux_dir unless we are using Automake,
273 # so we pass a copy along to make sure it has a sensible value anyway.
274 m4_defun([_LT_PROG_LTMAIN],
275 [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
276 _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
277 ltmain="$ac_aux_dir/ltmain.sh"
278 ])# _LT_PROG_LTMAIN
279
280
281 ## ------------------------------------- ##
282 ## Accumulate code for creating libtool. ##
283 ## ------------------------------------- ##
284
285 # So that we can recreate a full libtool script including additional
286 # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
287 # in macros and then make a single call at the end using the `libtool'
288 # label.
289
290
291 # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
292 # ----------------------------------------
293 # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
294 m4_define([_LT_CONFIG_LIBTOOL_INIT],
295 [m4_ifval([$1],
296           [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
297                      [$1
298 ])])])
299
300 # Initialize.
301 m4_define([_LT_OUTPUT_LIBTOOL_INIT])
302
303
304 # _LT_CONFIG_LIBTOOL([COMMANDS])
305 # ------------------------------
306 # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
307 m4_define([_LT_CONFIG_LIBTOOL],
308 [m4_ifval([$1],
309           [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
310                      [$1
311 ])])])
312
313 # Initialize.
314 m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
315
316
317 # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
318 # -----------------------------------------------------
319 m4_defun([_LT_CONFIG_SAVE_COMMANDS],
320 [_LT_CONFIG_LIBTOOL([$1])
321 _LT_CONFIG_LIBTOOL_INIT([$2])
322 ])
323
324
325 # _LT_FORMAT_COMMENT([COMMENT])
326 # -----------------------------
327 # Add leading comment marks to the start of each line, and a trailing
328 # full-stop to the whole comment if one is not present already.
329 m4_define([_LT_FORMAT_COMMENT],
330 [m4_ifval([$1], [
331 m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
332               [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
333 )])
334
335
336
337 ## ------------------------ ##
338 ## FIXME: Eliminate VARNAME ##
339 ## ------------------------ ##
340
341
342 # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
343 # -------------------------------------------------------------------
344 # CONFIGNAME is the name given to the value in the libtool script.
345 # VARNAME is the (base) name used in the configure script.
346 # VALUE may be 0, 1 or 2 for a computed quote escaped value based on
347 # VARNAME.  Any other value will be used directly.
348 m4_define([_LT_DECL],
349 [lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
350     [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
351         [m4_ifval([$1], [$1], [$2])])
352     lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
353     m4_ifval([$4],
354         [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
355     lt_dict_add_subkey([lt_decl_dict], [$2],
356         [tagged?], [m4_ifval([$5], [yes], [no])])])
357 ])
358
359
360 # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
361 # --------------------------------------------------------
362 m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
363
364
365 # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
366 # ------------------------------------------------
367 m4_define([lt_decl_tag_varnames],
368 [_lt_decl_filter([tagged?], [yes], $@)])
369
370
371 # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
372 # ---------------------------------------------------------
373 m4_define([_lt_decl_filter],
374 [m4_case([$#],
375   [0], [m4_fatal([$0: too few arguments: $#])],
376   [1], [m4_fatal([$0: too few arguments: $#: $1])],
377   [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
378   [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
379   [lt_dict_filter([lt_decl_dict], $@)])[]dnl
380 ])
381
382
383 # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
384 # --------------------------------------------------
385 m4_define([lt_decl_quote_varnames],
386 [_lt_decl_filter([value], [1], $@)])
387
388
389 # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
390 # ---------------------------------------------------
391 m4_define([lt_decl_dquote_varnames],
392 [_lt_decl_filter([value], [2], $@)])
393
394
395 # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
396 # ---------------------------------------------------
397 m4_define([lt_decl_varnames_tagged],
398 [m4_assert([$# <= 2])dnl
399 _$0(m4_quote(m4_default([$1], [[, ]])),
400     m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
401     m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
402 m4_define([_lt_decl_varnames_tagged],
403 [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
404
405
406 # lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
407 # ------------------------------------------------
408 m4_define([lt_decl_all_varnames],
409 [_$0(m4_quote(m4_default([$1], [[, ]])),
410      m4_if([$2], [],
411            m4_quote(lt_decl_varnames),
412         m4_quote(m4_shift($@))))[]dnl
413 ])
414 m4_define([_lt_decl_all_varnames],
415 [lt_join($@, lt_decl_varnames_tagged([$1],
416                         lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
417 ])
418
419
420 # _LT_CONFIG_STATUS_DECLARE([VARNAME])
421 # ------------------------------------
422 # Quote a variable value, and forward it to `config.status' so that its
423 # declaration there will have the same value as in `configure'.  VARNAME
424 # must have a single quote delimited value for this to work.
425 m4_define([_LT_CONFIG_STATUS_DECLARE],
426 [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
427
428
429 # _LT_CONFIG_STATUS_DECLARATIONS
430 # ------------------------------
431 # We delimit libtool config variables with single quotes, so when
432 # we write them to config.status, we have to be sure to quote all
433 # embedded single quotes properly.  In configure, this macro expands
434 # each variable declared with _LT_DECL (and _LT_TAGDECL) into:
435 #
436 #    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
437 m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
438 [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
439     [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
440
441
442 # _LT_LIBTOOL_TAGS
443 # ----------------
444 # Output comment and list of tags supported by the script
445 m4_defun([_LT_LIBTOOL_TAGS],
446 [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
447 available_tags="_LT_TAGS"dnl
448 ])
449
450
451 # _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
452 # -----------------------------------
453 # Extract the dictionary values for VARNAME (optionally with TAG) and
454 # expand to a commented shell variable setting:
455 #
456 #    # Some comment about what VAR is for.
457 #    visible_name=$lt_internal_name
458 m4_define([_LT_LIBTOOL_DECLARE],
459 [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
460                                            [description])))[]dnl
461 m4_pushdef([_libtool_name],
462     m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
463 m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
464     [0], [_libtool_name=[$]$1],
465     [1], [_libtool_name=$lt_[]$1],
466     [2], [_libtool_name=$lt_[]$1],
467     [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
468 m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
469 ])
470
471
472 # _LT_LIBTOOL_CONFIG_VARS
473 # -----------------------
474 # Produce commented declarations of non-tagged libtool config variables
475 # suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
476 # script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
477 # section) are produced by _LT_LIBTOOL_TAG_VARS.
478 m4_defun([_LT_LIBTOOL_CONFIG_VARS],
479 [m4_foreach([_lt_var],
480     m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
481     [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
482
483
484 # _LT_LIBTOOL_TAG_VARS(TAG)
485 # -------------------------
486 m4_define([_LT_LIBTOOL_TAG_VARS],
487 [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
488     [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
489
490
491 # _LT_TAGVAR(VARNAME, [TAGNAME])
492 # ------------------------------
493 m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
494
495
496 # _LT_CONFIG_COMMANDS
497 # -------------------
498 # Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
499 # variables for single and double quote escaping we saved from calls
500 # to _LT_DECL, we can put quote escaped variables declarations
501 # into `config.status', and then the shell code to quote escape them in
502 # for loops in `config.status'.  Finally, any additional code accumulated
503 # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
504 m4_defun([_LT_CONFIG_COMMANDS],
505 [AC_PROVIDE_IFELSE([LT_OUTPUT],
506         dnl If the libtool generation code has been placed in $CONFIG_LT,
507         dnl instead of duplicating it all over again into config.status,
508         dnl then we will have config.status run $CONFIG_LT later, so it
509         dnl needs to know what name is stored there:
510         [AC_CONFIG_COMMANDS([libtool],
511             [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
512     dnl If the libtool generation code is destined for config.status,
513     dnl expand the accumulated commands and init code now:
514     [AC_CONFIG_COMMANDS([libtool],
515         [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
516 ])#_LT_CONFIG_COMMANDS
517
518
519 # Initialize.
520 m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
521 [
522
523 # The HP-UX ksh and POSIX shell print the target directory to stdout
524 # if CDPATH is set.
525 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
526
527 sed_quote_subst='$sed_quote_subst'
528 double_quote_subst='$double_quote_subst'
529 delay_variable_subst='$delay_variable_subst'
530 _LT_CONFIG_STATUS_DECLARATIONS
531 LTCC='$LTCC'
532 LTCFLAGS='$LTCFLAGS'
533 compiler='$compiler_DEFAULT'
534
535 # A function that is used when there is no print builtin or printf.
536 func_fallback_echo ()
537 {
538   eval 'cat <<_LTECHO_EOF
539 \$[]1
540 _LTECHO_EOF'
541 }
542
543 # Quote evaled strings.
544 for var in lt_decl_all_varnames([[ \
545 ]], lt_decl_quote_varnames); do
546     case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
547     *[[\\\\\\\`\\"\\\$]]*)
548       eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
549       ;;
550     *)
551       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
552       ;;
553     esac
554 done
555
556 # Double-quote double-evaled strings.
557 for var in lt_decl_all_varnames([[ \
558 ]], lt_decl_dquote_varnames); do
559     case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
560     *[[\\\\\\\`\\"\\\$]]*)
561       eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
562       ;;
563     *)
564       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
565       ;;
566     esac
567 done
568
569 _LT_OUTPUT_LIBTOOL_INIT
570 ])
571
572 # _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
573 # ------------------------------------
574 # Generate a child script FILE with all initialization necessary to
575 # reuse the environment learned by the parent script, and make the
576 # file executable.  If COMMENT is supplied, it is inserted after the
577 # `#!' sequence but before initialization text begins.  After this
578 # macro, additional text can be appended to FILE to form the body of
579 # the child script.  The macro ends with non-zero status if the
580 # file could not be fully written (such as if the disk is full).
581 m4_ifdef([AS_INIT_GENERATED],
582 [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
583 [m4_defun([_LT_GENERATED_FILE_INIT],
584 [m4_require([AS_PREPARE])]dnl
585 [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
586 [lt_write_fail=0
587 cat >$1 <<_ASEOF || lt_write_fail=1
588 #! $SHELL
589 # Generated by $as_me.
590 $2
591 SHELL=\${CONFIG_SHELL-$SHELL}
592 export SHELL
593 _ASEOF
594 cat >>$1 <<\_ASEOF || lt_write_fail=1
595 AS_SHELL_SANITIZE
596 _AS_PREPARE
597 exec AS_MESSAGE_FD>&1
598 _ASEOF
599 test $lt_write_fail = 0 && chmod +x $1[]dnl
600 m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
601
602 # LT_OUTPUT
603 # ---------
604 # This macro allows early generation of the libtool script (before
605 # AC_OUTPUT is called), incase it is used in configure for compilation
606 # tests.
607 AC_DEFUN([LT_OUTPUT],
608 [: ${CONFIG_LT=./config.lt}
609 AC_MSG_NOTICE([creating $CONFIG_LT])
610 _LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
611 [# Run this file to recreate a libtool stub with the current configuration.])
612
613 cat >>"$CONFIG_LT" <<\_LTEOF
614 lt_cl_silent=false
615 exec AS_MESSAGE_LOG_FD>>config.log
616 {
617   echo
618   AS_BOX([Running $as_me.])
619 } >&AS_MESSAGE_LOG_FD
620
621 lt_cl_help="\
622 \`$as_me' creates a local libtool stub from the current configuration,
623 for use in further configure time tests before the real libtool is
624 generated.
625
626 Usage: $[0] [[OPTIONS]]
627
628   -h, --help      print this help, then exit
629   -V, --version   print version number, then exit
630   -q, --quiet     do not print progress messages
631   -d, --debug     don't remove temporary files
632
633 Report bugs to <bug-libtool@gnu.org>."
634
635 lt_cl_version="\
636 m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
637 m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
638 configured by $[0], generated by m4_PACKAGE_STRING.
639
640 Copyright (C) 2010 Free Software Foundation, Inc.
641 This config.lt script is free software; the Free Software Foundation
642 gives unlimited permision to copy, distribute and modify it."
643
644 while test $[#] != 0
645 do
646   case $[1] in
647     --version | --v* | -V )
648       echo "$lt_cl_version"; exit 0 ;;
649     --help | --h* | -h )
650       echo "$lt_cl_help"; exit 0 ;;
651     --debug | --d* | -d )
652       debug=: ;;
653     --quiet | --q* | --silent | --s* | -q )
654       lt_cl_silent=: ;;
655
656     -*) AC_MSG_ERROR([unrecognized option: $[1]
657 Try \`$[0] --help' for more information.]) ;;
658
659     *) AC_MSG_ERROR([unrecognized argument: $[1]
660 Try \`$[0] --help' for more information.]) ;;
661   esac
662   shift
663 done
664
665 if $lt_cl_silent; then
666   exec AS_MESSAGE_FD>/dev/null
667 fi
668 _LTEOF
669
670 cat >>"$CONFIG_LT" <<_LTEOF
671 _LT_OUTPUT_LIBTOOL_COMMANDS_INIT
672 _LTEOF
673
674 cat >>"$CONFIG_LT" <<\_LTEOF
675 AC_MSG_NOTICE([creating $ofile])
676 _LT_OUTPUT_LIBTOOL_COMMANDS
677 AS_EXIT(0)
678 _LTEOF
679 chmod +x "$CONFIG_LT"
680
681 # configure is writing to config.log, but config.lt does its own redirection,
682 # appending to config.log, which fails on DOS, as config.log is still kept
683 # open by configure.  Here we exec the FD to /dev/null, effectively closing
684 # config.log, so it can be properly (re)opened and appended to by config.lt.
685 lt_cl_success=:
686 test "$silent" = yes &&
687   lt_config_lt_args="$lt_config_lt_args --quiet"
688 exec AS_MESSAGE_LOG_FD>/dev/null
689 $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
690 exec AS_MESSAGE_LOG_FD>>config.log
691 $lt_cl_success || AS_EXIT(1)
692 ])# LT_OUTPUT
693
694
695 # _LT_CONFIG(TAG)
696 # ---------------
697 # If TAG is the built-in tag, create an initial libtool script with a
698 # default configuration from the untagged config vars.  Otherwise add code
699 # to config.status for appending the configuration named by TAG from the
700 # matching tagged config vars.
701 m4_defun([_LT_CONFIG],
702 [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
703 _LT_CONFIG_SAVE_COMMANDS([
704   m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
705   m4_if(_LT_TAG, [C], [
706     # See if we are running on zsh, and set the options which allow our
707     # commands through without removal of \ escapes.
708     if test -n "${ZSH_VERSION+set}" ; then
709       setopt NO_GLOB_SUBST
710     fi
711
712     cfgfile="${ofile}T"
713     trap "$RM \"$cfgfile\"; exit 1" 1 2 15
714     $RM "$cfgfile"
715
716     cat <<_LT_EOF >> "$cfgfile"
717 #! $SHELL
718
719 # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
720 # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
721 # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
722 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
723 #
724 _LT_COPYING
725 _LT_LIBTOOL_TAGS
726
727 # ### BEGIN LIBTOOL CONFIG
728 _LT_LIBTOOL_CONFIG_VARS
729 _LT_LIBTOOL_TAG_VARS
730 # ### END LIBTOOL CONFIG
731
732 _LT_EOF
733
734   case $host_os in
735   aix3*)
736     cat <<\_LT_EOF >> "$cfgfile"
737 # AIX sometimes has problems with the GCC collect2 program.  For some
738 # reason, if we set the COLLECT_NAMES environment variable, the problems
739 # vanish in a puff of smoke.
740 if test "X${COLLECT_NAMES+set}" != Xset; then
741   COLLECT_NAMES=
742   export COLLECT_NAMES
743 fi
744 _LT_EOF
745     ;;
746   esac
747
748   _LT_PROG_LTMAIN
749
750   # We use sed instead of cat because bash on DJGPP gets confused if
751   # if finds mixed CR/LF and LF-only lines.  Since sed operates in
752   # text mode, it properly converts lines to CR/LF.  This bash problem
753   # is reportedly fixed, but why not run on old versions too?
754   sed '$q' "$ltmain" >> "$cfgfile" \
755      || (rm -f "$cfgfile"; exit 1)
756
757   _LT_PROG_REPLACE_SHELLFNS
758
759    mv -f "$cfgfile" "$ofile" ||
760     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
761   chmod +x "$ofile"
762 ],
763 [cat <<_LT_EOF >> "$ofile"
764
765 dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
766 dnl in a comment (ie after a #).
767 # ### BEGIN LIBTOOL TAG CONFIG: $1
768 _LT_LIBTOOL_TAG_VARS(_LT_TAG)
769 # ### END LIBTOOL TAG CONFIG: $1
770 _LT_EOF
771 ])dnl /m4_if
772 ],
773 [m4_if([$1], [], [
774     PACKAGE='$PACKAGE'
775     VERSION='$VERSION'
776     TIMESTAMP='$TIMESTAMP'
777     RM='$RM'
778     ofile='$ofile'], [])
779 ])dnl /_LT_CONFIG_SAVE_COMMANDS
780 ])# _LT_CONFIG
781
782
783 # LT_SUPPORTED_TAG(TAG)
784 # ---------------------
785 # Trace this macro to discover what tags are supported by the libtool
786 # --tag option, using:
787 #    autoconf --trace 'LT_SUPPORTED_TAG:$1'
788 AC_DEFUN([LT_SUPPORTED_TAG], [])
789
790
791 # C support is built-in for now
792 m4_define([_LT_LANG_C_enabled], [])
793 m4_define([_LT_TAGS], [])
794
795
796 # LT_LANG(LANG)
797 # -------------
798 # Enable libtool support for the given language if not already enabled.
799 AC_DEFUN([LT_LANG],
800 [AC_BEFORE([$0], [LT_OUTPUT])dnl
801 m4_case([$1],
802   [C],                  [_LT_LANG(C)],
803   [C++],                [_LT_LANG(CXX)],
804   [Java],               [_LT_LANG(GCJ)],
805   [Fortran 77],         [_LT_LANG(F77)],
806   [Fortran],            [_LT_LANG(FC)],
807   [Windows Resource],   [_LT_LANG(RC)],
808   [m4_ifdef([_LT_LANG_]$1[_CONFIG],
809     [_LT_LANG($1)],
810     [m4_fatal([$0: unsupported language: "$1"])])])dnl
811 ])# LT_LANG
812
813
814 # _LT_LANG(LANGNAME)
815 # ------------------
816 m4_defun([_LT_LANG],
817 [m4_ifdef([_LT_LANG_]$1[_enabled], [],
818   [LT_SUPPORTED_TAG([$1])dnl
819   m4_append([_LT_TAGS], [$1 ])dnl
820   m4_define([_LT_LANG_]$1[_enabled], [])dnl
821   _LT_LANG_$1_CONFIG($1)])dnl
822 ])# _LT_LANG
823
824
825 # _LT_LANG_DEFAULT_CONFIG
826 # -----------------------
827 m4_defun([_LT_LANG_DEFAULT_CONFIG],
828 [AC_PROVIDE_IFELSE([AC_PROG_CXX],
829   [LT_LANG(CXX)],
830   [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
831
832 AC_PROVIDE_IFELSE([AC_PROG_F77],
833   [LT_LANG(F77)],
834   [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
835
836 AC_PROVIDE_IFELSE([AC_PROG_FC],
837   [LT_LANG(FC)],
838   [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
839
840 dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
841 dnl pulling things in needlessly.
842 AC_PROVIDE_IFELSE([AC_PROG_GCJ],
843   [LT_LANG(GCJ)],
844   [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
845     [LT_LANG(GCJ)],
846     [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
847       [LT_LANG(GCJ)],
848       [m4_ifdef([AC_PROG_GCJ],
849         [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
850        m4_ifdef([A][M_PROG_GCJ],
851         [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
852        m4_ifdef([LT_PROG_GCJ],
853         [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
854
855 AC_PROVIDE_IFELSE([LT_PROG_RC],
856   [LT_LANG(RC)],
857   [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
858 ])# _LT_LANG_DEFAULT_CONFIG
859
860 # Obsolete macros:
861 AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
862 AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
863 AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
864 AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
865 AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
866 dnl aclocal-1.4 backwards compatibility:
867 dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
868 dnl AC_DEFUN([AC_LIBTOOL_F77], [])
869 dnl AC_DEFUN([AC_LIBTOOL_FC], [])
870 dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
871 dnl AC_DEFUN([AC_LIBTOOL_RC], [])
872
873
874 # _LT_TAG_COMPILER
875 # ----------------
876 m4_defun([_LT_TAG_COMPILER],
877 [AC_REQUIRE([AC_PROG_CC])dnl
878
879 _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
880 _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
881 _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
882 _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
883
884 # If no C compiler was specified, use CC.
885 LTCC=${LTCC-"$CC"}
886
887 # If no C compiler flags were specified, use CFLAGS.
888 LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
889
890 # Allow CC to be a program name with arguments.
891 compiler=$CC
892 ])# _LT_TAG_COMPILER
893
894
895 # _LT_COMPILER_BOILERPLATE
896 # ------------------------
897 # Check for compiler boilerplate output or warnings with
898 # the simple compiler test code.
899 m4_defun([_LT_COMPILER_BOILERPLATE],
900 [m4_require([_LT_DECL_SED])dnl
901 ac_outfile=conftest.$ac_objext
902 echo "$lt_simple_compile_test_code" >conftest.$ac_ext
903 eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
904 _lt_compiler_boilerplate=`cat conftest.err`
905 $RM conftest*
906 ])# _LT_COMPILER_BOILERPLATE
907
908
909 # _LT_LINKER_BOILERPLATE
910 # ----------------------
911 # Check for linker boilerplate output or warnings with
912 # the simple link test code.
913 m4_defun([_LT_LINKER_BOILERPLATE],
914 [m4_require([_LT_DECL_SED])dnl
915 ac_outfile=conftest.$ac_objext
916 echo "$lt_simple_link_test_code" >conftest.$ac_ext
917 eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
918 _lt_linker_boilerplate=`cat conftest.err`
919 $RM -r conftest*
920 ])# _LT_LINKER_BOILERPLATE
921
922 # _LT_REQUIRED_DARWIN_CHECKS
923 # -------------------------
924 m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
925   case $host_os in
926     rhapsody* | darwin*)
927     AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
928     AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
929     AC_CHECK_TOOL([LIPO], [lipo], [:])
930     AC_CHECK_TOOL([OTOOL], [otool], [:])
931     AC_CHECK_TOOL([OTOOL64], [otool64], [:])
932     _LT_DECL([], [DSYMUTIL], [1],
933       [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
934     _LT_DECL([], [NMEDIT], [1],
935       [Tool to change global to local symbols on Mac OS X])
936     _LT_DECL([], [LIPO], [1],
937       [Tool to manipulate fat objects and archives on Mac OS X])
938     _LT_DECL([], [OTOOL], [1],
939       [ldd/readelf like tool for Mach-O binaries on Mac OS X])
940     _LT_DECL([], [OTOOL64], [1],
941       [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
942
943     AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
944       [lt_cv_apple_cc_single_mod=no
945       if test -z "${LT_MULTI_MODULE}"; then
946         # By default we will add the -single_module flag. You can override
947         # by either setting the environment variable LT_MULTI_MODULE
948         # non-empty at configure time, or by adding -multi_module to the
949         # link flags.
950         rm -rf libconftest.dylib*
951         echo "int foo(void){return 1;}" > conftest.c
952         echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
953 -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
954         $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
955           -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
956         _lt_result=$?
957         if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
958           lt_cv_apple_cc_single_mod=yes
959         else
960           cat conftest.err >&AS_MESSAGE_LOG_FD
961         fi
962         rm -rf libconftest.dylib*
963         rm -f conftest.*
964       fi])
965     AC_CACHE_CHECK([for -exported_symbols_list linker flag],
966       [lt_cv_ld_exported_symbols_list],
967       [lt_cv_ld_exported_symbols_list=no
968       save_LDFLAGS=$LDFLAGS
969       echo "_main" > conftest.sym
970       LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
971       AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
972         [lt_cv_ld_exported_symbols_list=yes],
973         [lt_cv_ld_exported_symbols_list=no])
974         LDFLAGS="$save_LDFLAGS"
975     ])
976     AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
977       [lt_cv_ld_force_load=no
978       cat > conftest.c << _LT_EOF
979 int forced_loaded() { return 2;}
980 _LT_EOF
981       echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
982       $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
983       echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
984       $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
985       echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
986       $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
987       cat > conftest.c << _LT_EOF
988 int main() { return 0;}
989 _LT_EOF
990       echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
991       $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
992       _lt_result=$?
993       if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
994         lt_cv_ld_force_load=yes
995       else
996         cat conftest.err >&AS_MESSAGE_LOG_FD
997       fi
998         rm -f conftest.err libconftest.a conftest conftest.c
999         rm -rf conftest.dSYM
1000     ])
1001     case $host_os in
1002     rhapsody* | darwin1.[[012]])
1003       _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
1004     darwin1.*)
1005       _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
1006     darwin*) # darwin 5.x on
1007       # if running on 10.5 or later, the deployment target defaults
1008       # to the OS version, if on x86, and 10.4, the deployment
1009       # target defaults to 10.4. Don't you love it?
1010       case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
1011         10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
1012           _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
1013         10.[[012]]*)
1014           _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
1015         10.*)
1016           _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
1017       esac
1018     ;;
1019   esac
1020     if test "$lt_cv_apple_cc_single_mod" = "yes"; then
1021       _lt_dar_single_mod='$single_module'
1022     fi
1023     if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
1024       _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
1025     else
1026       _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
1027     fi
1028     if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
1029       _lt_dsymutil='~$DSYMUTIL $lib || :'
1030     else
1031       _lt_dsymutil=
1032     fi
1033     ;;
1034   esac
1035 ])
1036
1037
1038 # _LT_DARWIN_LINKER_FEATURES
1039 # --------------------------
1040 # Checks for linker and compiler features on darwin
1041 m4_defun([_LT_DARWIN_LINKER_FEATURES],
1042 [
1043   m4_require([_LT_REQUIRED_DARWIN_CHECKS])
1044   _LT_TAGVAR(archive_cmds_need_lc, $1)=no
1045   _LT_TAGVAR(hardcode_direct, $1)=no
1046   _LT_TAGVAR(hardcode_automatic, $1)=yes
1047   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
1048   if test "$lt_cv_ld_force_load" = "yes"; then
1049     _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
1050   else
1051     _LT_TAGVAR(whole_archive_flag_spec, $1)=''
1052   fi
1053   _LT_TAGVAR(link_all_deplibs, $1)=yes
1054   _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
1055   case $cc_basename in
1056      ifort*) _lt_dar_can_shared=yes ;;
1057      *) _lt_dar_can_shared=$GCC ;;
1058   esac
1059   if test "$_lt_dar_can_shared" = "yes"; then
1060     output_verbose_link_cmd=func_echo_all
1061     _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}"
1062     _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
1063     _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}"
1064     _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}"
1065     m4_if([$1], [CXX],
1066 [   if test "$lt_cv_apple_cc_single_mod" != "yes"; then
1067       _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}"
1068       _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}"
1069     fi
1070 ],[])
1071   else
1072   _LT_TAGVAR(ld_shlibs, $1)=no
1073   fi
1074 ])
1075
1076 # _LT_SYS_MODULE_PATH_AIX([TAGNAME])
1077 # ----------------------------------
1078 # Links a minimal program and checks the executable
1079 # for the system default hardcoded library path. In most cases,
1080 # this is /usr/lib:/lib, but when the MPI compilers are used
1081 # the location of the communication and MPI libs are included too.
1082 # If we don't find anything, use the default library path according
1083 # to the aix ld manual.
1084 # Store the results from the different compilers for each TAGNAME.
1085 # Allow to override them for all tags through lt_cv_aix_libpath.
1086 m4_defun([_LT_SYS_MODULE_PATH_AIX],
1087 [m4_require([_LT_DECL_SED])dnl
1088 if test "${lt_cv_aix_libpath+set}" = set; then
1089   aix_libpath=$lt_cv_aix_libpath
1090 else
1091   AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
1092   [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
1093   lt_aix_libpath_sed='[
1094       /Import File Strings/,/^$/ {
1095           /^0/ {
1096               s/^0  *\([^ ]*\) *$/\1/
1097               p
1098           }
1099       }]'
1100   _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
1101   # Check for a 64-bit object if we didn't find anything.
1102   if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
1103     _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
1104   fi],[])
1105   if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
1106     _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
1107   fi
1108   ])
1109   aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
1110 fi
1111 ])# _LT_SYS_MODULE_PATH_AIX
1112
1113
1114 # _LT_SHELL_INIT(ARG)
1115 # -------------------
1116 m4_define([_LT_SHELL_INIT],
1117 [m4_divert_text([M4SH-INIT], [$1
1118 ])])# _LT_SHELL_INIT
1119
1120
1121
1122 # _LT_PROG_ECHO_BACKSLASH
1123 # -----------------------
1124 # Find how we can fake an echo command that does not interpret backslash.
1125 # In particular, with Autoconf 2.60 or later we add some code to the start
1126 # of the generated configure script which will find a shell with a builtin
1127 # printf (which we can use as an echo command).
1128 m4_defun([_LT_PROG_ECHO_BACKSLASH],
1129 [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
1130 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
1131 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
1132
1133 AC_MSG_CHECKING([how to print strings])
1134 # Test print first, because it will be a builtin if present.
1135 if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
1136    test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
1137   ECHO='print -r --'
1138 elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
1139   ECHO='printf %s\n'
1140 else
1141   # Use this function as a fallback that always works.
1142   func_fallback_echo ()
1143   {
1144     eval 'cat <<_LTECHO_EOF
1145 $[]1
1146 _LTECHO_EOF'
1147   }
1148   ECHO='func_fallback_echo'
1149 fi
1150
1151 # func_echo_all arg...
1152 # Invoke $ECHO with all args, space-separated.
1153 func_echo_all ()
1154 {
1155     $ECHO "$*" 
1156 }
1157
1158 case "$ECHO" in
1159   printf*) AC_MSG_RESULT([printf]) ;;
1160   print*) AC_MSG_RESULT([print -r]) ;;
1161   *) AC_MSG_RESULT([cat]) ;;
1162 esac
1163
1164 m4_ifdef([_AS_DETECT_SUGGESTED],
1165 [_AS_DETECT_SUGGESTED([
1166   test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
1167     ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
1168     ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
1169     ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
1170     PATH=/empty FPATH=/empty; export PATH FPATH
1171     test "X`printf %s $ECHO`" = "X$ECHO" \
1172       || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
1173
1174 _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
1175 _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
1176 ])# _LT_PROG_ECHO_BACKSLASH
1177
1178
1179 # _LT_WITH_SYSROOT
1180 # ----------------
1181 AC_DEFUN([_LT_WITH_SYSROOT],
1182 [AC_MSG_CHECKING([for sysroot])
1183 AC_ARG_WITH([sysroot],
1184 [  --with-sysroot[=DIR] Search for dependent libraries within DIR
1185                         (or the compiler's sysroot if not specified).],
1186 [], [with_sysroot=no])
1187
1188 dnl lt_sysroot will always be passed unquoted.  We quote it here
1189 dnl in case the user passed a directory name.
1190 lt_sysroot=
1191 case ${with_sysroot} in #(
1192  yes)
1193    if test "$GCC" = yes; then
1194      lt_sysroot=`$CC --print-sysroot 2>/dev/null`
1195    fi
1196    ;; #(
1197  /*)
1198    lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
1199    ;; #(
1200  no|'')
1201    ;; #(
1202  *)
1203    AC_MSG_RESULT([${with_sysroot}])
1204    AC_MSG_ERROR([The sysroot must be an absolute path.])
1205    ;;
1206 esac
1207
1208  AC_MSG_RESULT([${lt_sysroot:-no}])
1209 _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
1210 [dependent libraries, and in which our libraries should be installed.])])
1211
1212 # _LT_ENABLE_LOCK
1213 # ---------------
1214 m4_defun([_LT_ENABLE_LOCK],
1215 [AC_ARG_ENABLE([libtool-lock],
1216   [AS_HELP_STRING([--disable-libtool-lock],
1217     [avoid locking (might break parallel builds)])])
1218 test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
1219
1220 # Some flags need to be propagated to the compiler or linker for good
1221 # libtool support.
1222 case $host in
1223 ia64-*-hpux*)
1224   # Find out which ABI we are using.
1225   echo 'int i;' > conftest.$ac_ext
1226   if AC_TRY_EVAL(ac_compile); then
1227     case `/usr/bin/file conftest.$ac_objext` in
1228       *ELF-32*)
1229         HPUX_IA64_MODE="32"
1230         ;;
1231       *ELF-64*)
1232         HPUX_IA64_MODE="64"
1233         ;;
1234     esac
1235   fi
1236   rm -rf conftest*
1237   ;;
1238 *-*-irix6*)
1239   # Find out which ABI we are using.
1240   echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
1241   if AC_TRY_EVAL(ac_compile); then
1242     if test "$lt_cv_prog_gnu_ld" = yes; then
1243       case `/usr/bin/file conftest.$ac_objext` in
1244         *32-bit*)
1245           LD="${LD-ld} -melf32bsmip"
1246           ;;
1247         *N32*)
1248           LD="${LD-ld} -melf32bmipn32"
1249           ;;
1250         *64-bit*)
1251           LD="${LD-ld} -melf64bmip"
1252         ;;
1253       esac
1254     else
1255       case `/usr/bin/file conftest.$ac_objext` in
1256         *32-bit*)
1257           LD="${LD-ld} -32"
1258           ;;
1259         *N32*)
1260           LD="${LD-ld} -n32"
1261           ;;
1262         *64-bit*)
1263           LD="${LD-ld} -64"
1264           ;;
1265       esac
1266     fi
1267   fi
1268   rm -rf conftest*
1269   ;;
1270
1271 x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
1272 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
1273   # Find out which ABI we are using.
1274   echo 'int i;' > conftest.$ac_ext
1275   if AC_TRY_EVAL(ac_compile); then
1276     case `/usr/bin/file conftest.o` in
1277       *32-bit*)
1278         case $host in
1279           x86_64-*kfreebsd*-gnu)
1280             LD="${LD-ld} -m elf_i386_fbsd"
1281             ;;
1282           x86_64-*linux*)
1283             LD="${LD-ld} -m elf_i386"
1284             ;;
1285           ppc64-*linux*|powerpc64-*linux*)
1286             LD="${LD-ld} -m elf32ppclinux"
1287             ;;
1288           s390x-*linux*)
1289             LD="${LD-ld} -m elf_s390"
1290             ;;
1291           sparc64-*linux*)
1292             LD="${LD-ld} -m elf32_sparc"
1293             ;;
1294         esac
1295         ;;
1296       *64-bit*)
1297         case $host in
1298           x86_64-*kfreebsd*-gnu)
1299             LD="${LD-ld} -m elf_x86_64_fbsd"
1300             ;;
1301           x86_64-*linux*)
1302             LD="${LD-ld} -m elf_x86_64"
1303             ;;
1304           ppc*-*linux*|powerpc*-*linux*)
1305             LD="${LD-ld} -m elf64ppc"
1306             ;;
1307           s390*-*linux*|s390*-*tpf*)
1308             LD="${LD-ld} -m elf64_s390"
1309             ;;
1310           sparc*-*linux*)
1311             LD="${LD-ld} -m elf64_sparc"
1312             ;;
1313         esac
1314         ;;
1315     esac
1316   fi
1317   rm -rf conftest*
1318   ;;
1319
1320 *-*-sco3.2v5*)
1321   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
1322   SAVE_CFLAGS="$CFLAGS"
1323   CFLAGS="$CFLAGS -belf"
1324   AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
1325     [AC_LANG_PUSH(C)
1326      AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
1327      AC_LANG_POP])
1328   if test x"$lt_cv_cc_needs_belf" != x"yes"; then
1329     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
1330     CFLAGS="$SAVE_CFLAGS"
1331   fi
1332   ;;
1333 sparc*-*solaris*)
1334   # Find out which ABI we are using.
1335   echo 'int i;' > conftest.$ac_ext
1336   if AC_TRY_EVAL(ac_compile); then
1337     case `/usr/bin/file conftest.o` in
1338     *64-bit*)
1339       case $lt_cv_prog_gnu_ld in
1340       yes*) LD="${LD-ld} -m elf64_sparc" ;;
1341       *)
1342         if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
1343           LD="${LD-ld} -64"
1344         fi
1345         ;;
1346       esac
1347       ;;
1348     esac
1349   fi
1350   rm -rf conftest*
1351   ;;
1352 esac
1353
1354 need_locks="$enable_libtool_lock"
1355 ])# _LT_ENABLE_LOCK
1356
1357
1358 # _LT_PROG_AR
1359 # -----------
1360 m4_defun([_LT_PROG_AR],
1361 [AC_CHECK_TOOLS(AR, [ar], false)
1362 : ${AR=ar}
1363 : ${AR_FLAGS=cru}
1364 _LT_DECL([], [AR], [1], [The archiver])
1365 _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
1366
1367 AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
1368   [lt_cv_ar_at_file=no
1369    AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
1370      [echo conftest.$ac_objext > conftest.lst
1371       lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
1372       AC_TRY_EVAL([lt_ar_try])
1373       if test "$ac_status" -eq 0; then
1374         # Ensure the archiver fails upon bogus file names.
1375         rm -f conftest.$ac_objext libconftest.a
1376         AC_TRY_EVAL([lt_ar_try])
1377         if test "$ac_status" -ne 0; then
1378           lt_cv_ar_at_file=@
1379         fi
1380       fi
1381       rm -f conftest.* libconftest.a
1382      ])
1383   ])
1384
1385 if test "x$lt_cv_ar_at_file" = xno; then
1386   archiver_list_spec=
1387 else
1388   archiver_list_spec=$lt_cv_ar_at_file
1389 fi
1390 _LT_DECL([], [archiver_list_spec], [1],
1391   [How to feed a file listing to the archiver])
1392 ])# _LT_PROG_AR
1393
1394
1395 # _LT_CMD_OLD_ARCHIVE
1396 # -------------------
1397 m4_defun([_LT_CMD_OLD_ARCHIVE],
1398 [_LT_PROG_AR
1399
1400 AC_CHECK_TOOL(STRIP, strip, :)
1401 test -z "$STRIP" && STRIP=:
1402 _LT_DECL([], [STRIP], [1], [A symbol stripping program])
1403
1404 AC_CHECK_TOOL(RANLIB, ranlib, :)
1405 test -z "$RANLIB" && RANLIB=:
1406 _LT_DECL([], [RANLIB], [1],
1407     [Commands used to install an old-style archive])
1408
1409 # Determine commands to create old-style static archives.
1410 old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
1411 old_postinstall_cmds='chmod 644 $oldlib'
1412 old_postuninstall_cmds=
1413
1414 if test -n "$RANLIB"; then
1415   case $host_os in
1416   openbsd*)
1417     old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
1418     ;;
1419   *)
1420     old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
1421     ;;
1422   esac
1423   old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
1424 fi
1425
1426 case $host_os in
1427   darwin*)
1428     lock_old_archive_extraction=yes ;;
1429   *)
1430     lock_old_archive_extraction=no ;;
1431 esac
1432 _LT_DECL([], [old_postinstall_cmds], [2])
1433 _LT_DECL([], [old_postuninstall_cmds], [2])
1434 _LT_TAGDECL([], [old_archive_cmds], [2],
1435     [Commands used to build an old-style archive])
1436 _LT_DECL([], [lock_old_archive_extraction], [0],
1437     [Whether to use a lock for old archive extraction])
1438 ])# _LT_CMD_OLD_ARCHIVE
1439
1440
1441 # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
1442 #               [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
1443 # ----------------------------------------------------------------
1444 # Check whether the given compiler option works
1445 AC_DEFUN([_LT_COMPILER_OPTION],
1446 [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
1447 m4_require([_LT_DECL_SED])dnl
1448 AC_CACHE_CHECK([$1], [$2],
1449   [$2=no
1450    m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
1451    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
1452    lt_compiler_flag="$3"
1453    # Insert the option either (1) after the last *FLAGS variable, or
1454    # (2) before a word containing "conftest.", or (3) at the end.
1455    # Note that $ac_compile itself does not contain backslashes and begins
1456    # with a dollar sign (not a hyphen), so the echo should work correctly.
1457    # The option is referenced via a variable to avoid confusing sed.
1458    lt_compile=`echo "$ac_compile" | $SED \
1459    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
1460    -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
1461    -e 's:$: $lt_compiler_flag:'`
1462    (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
1463    (eval "$lt_compile" 2>conftest.err)
1464    ac_status=$?
1465    cat conftest.err >&AS_MESSAGE_LOG_FD
1466    echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
1467    if (exit $ac_status) && test -s "$ac_outfile"; then
1468      # The compiler can only warn and ignore the option if not recognized
1469      # So say no if there are warnings other than the usual output.
1470      $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
1471      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
1472      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
1473        $2=yes
1474      fi
1475    fi
1476    $RM conftest*
1477 ])
1478
1479 if test x"[$]$2" = xyes; then
1480     m4_if([$5], , :, [$5])
1481 else
1482     m4_if([$6], , :, [$6])
1483 fi
1484 ])# _LT_COMPILER_OPTION
1485
1486 # Old name:
1487 AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
1488 dnl aclocal-1.4 backwards compatibility:
1489 dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
1490
1491
1492 # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
1493 #                  [ACTION-SUCCESS], [ACTION-FAILURE])
1494 # ----------------------------------------------------
1495 # Check whether the given linker option works
1496 AC_DEFUN([_LT_LINKER_OPTION],
1497 [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
1498 m4_require([_LT_DECL_SED])dnl
1499 AC_CACHE_CHECK([$1], [$2],
1500   [$2=no
1501    save_LDFLAGS="$LDFLAGS"
1502    LDFLAGS="$LDFLAGS $3"
1503    echo "$lt_simple_link_test_code" > conftest.$ac_ext
1504    if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
1505      # The linker can only warn and ignore the option if not recognized
1506      # So say no if there are warnings
1507      if test -s conftest.err; then
1508        # Append any errors to the config.log.
1509        cat conftest.err 1>&AS_MESSAGE_LOG_FD
1510        $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
1511        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
1512        if diff conftest.exp conftest.er2 >/dev/null; then
1513          $2=yes
1514        fi
1515      else
1516        $2=yes
1517      fi
1518    fi
1519    $RM -r conftest*
1520    LDFLAGS="$save_LDFLAGS"
1521 ])
1522
1523 if test x"[$]$2" = xyes; then
1524     m4_if([$4], , :, [$4])
1525 else
1526     m4_if([$5], , :, [$5])
1527 fi
1528 ])# _LT_LINKER_OPTION
1529
1530 # Old name:
1531 AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
1532 dnl aclocal-1.4 backwards compatibility:
1533 dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
1534
1535
1536 # LT_CMD_MAX_LEN
1537 #---------------
1538 AC_DEFUN([LT_CMD_MAX_LEN],
1539 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
1540 # find the maximum length of command line arguments
1541 AC_MSG_CHECKING([the maximum length of command line arguments])
1542 AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
1543   i=0
1544   teststring="ABCD"
1545
1546   case $build_os in
1547   msdosdjgpp*)
1548     # On DJGPP, this test can blow up pretty badly due to problems in libc
1549     # (any single argument exceeding 2000 bytes causes a buffer overrun
1550     # during glob expansion).  Even if it were fixed, the result of this
1551     # check would be larger than it should be.
1552     lt_cv_sys_max_cmd_len=12288;    # 12K is about right
1553     ;;
1554
1555   gnu*)
1556     # Under GNU Hurd, this test is not required because there is
1557     # no limit to the length of command line arguments.
1558     # Libtool will interpret -1 as no limit whatsoever
1559     lt_cv_sys_max_cmd_len=-1;
1560     ;;
1561
1562   cygwin* | mingw* | cegcc*)
1563     # On Win9x/ME, this test blows up -- it succeeds, but takes
1564     # about 5 minutes as the teststring grows exponentially.
1565     # Worse, since 9x/ME are not pre-emptively multitasking,
1566     # you end up with a "frozen" computer, even though with patience
1567     # the test eventually succeeds (with a max line length of 256k).
1568     # Instead, let's just punt: use the minimum linelength reported by
1569     # all of the supported platforms: 8192 (on NT/2K/XP).
1570     lt_cv_sys_max_cmd_len=8192;
1571     ;;
1572
1573   mint*)
1574     # On MiNT this can take a long time and run out of memory.
1575     lt_cv_sys_max_cmd_len=8192;
1576     ;;
1577
1578   amigaos*)
1579     # On AmigaOS with pdksh, this test takes hours, literally.
1580     # So we just punt and use a minimum line length of 8192.
1581     lt_cv_sys_max_cmd_len=8192;
1582     ;;
1583
1584   netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
1585     # This has been around since 386BSD, at least.  Likely further.
1586     if test -x /sbin/sysctl; then
1587       lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
1588     elif test -x /usr/sbin/sysctl; then
1589       lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
1590     else
1591       lt_cv_sys_max_cmd_len=65536       # usable default for all BSDs
1592     fi
1593     # And add a safety zone
1594     lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
1595     lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
1596     ;;
1597
1598   interix*)
1599     # We know the value 262144 and hardcode it with a safety zone (like BSD)
1600     lt_cv_sys_max_cmd_len=196608
1601     ;;
1602
1603   osf*)
1604     # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
1605     # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
1606     # nice to cause kernel panics so lets avoid the loop below.
1607     # First set a reasonable default.
1608     lt_cv_sys_max_cmd_len=16384
1609     #
1610     if test -x /sbin/sysconfig; then
1611       case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
1612         *1*) lt_cv_sys_max_cmd_len=-1 ;;
1613       esac
1614     fi
1615     ;;
1616   sco3.2v5*)
1617     lt_cv_sys_max_cmd_len=102400
1618     ;;
1619   sysv5* | sco5v6* | sysv4.2uw2*)
1620     kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
1621     if test -n "$kargmax"; then
1622       lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[         ]]//'`
1623     else
1624       lt_cv_sys_max_cmd_len=32768
1625     fi
1626     ;;
1627   *)
1628     lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
1629     if test -n "$lt_cv_sys_max_cmd_len"; then
1630       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
1631       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
1632     else
1633       # Make teststring a little bigger before we do anything with it.
1634       # a 1K string should be a reasonable start.
1635       for i in 1 2 3 4 5 6 7 8 ; do
1636         teststring=$teststring$teststring
1637       done
1638       SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
1639       # If test is not a shell built-in, we'll probably end up computing a
1640       # maximum length that is only half of the actual maximum length, but
1641       # we can't tell.
1642       while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
1643                  = "X$teststring$teststring"; } >/dev/null 2>&1 &&
1644               test $i != 17 # 1/2 MB should be enough
1645       do
1646         i=`expr $i + 1`
1647         teststring=$teststring$teststring
1648       done
1649       # Only check the string length outside the loop.
1650       lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
1651       teststring=
1652       # Add a significant safety factor because C++ compilers can tack on
1653       # massive amounts of additional arguments before passing them to the
1654       # linker.  It appears as though 1/2 is a usable value.
1655       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
1656     fi
1657     ;;
1658   esac
1659 ])
1660 if test -n $lt_cv_sys_max_cmd_len ; then
1661   AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
1662 else
1663   AC_MSG_RESULT(none)
1664 fi
1665 max_cmd_len=$lt_cv_sys_max_cmd_len
1666 _LT_DECL([], [max_cmd_len], [0],
1667     [What is the maximum length of a command?])
1668 ])# LT_CMD_MAX_LEN
1669
1670 # Old name:
1671 AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
1672 dnl aclocal-1.4 backwards compatibility:
1673 dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
1674
1675
1676 # _LT_HEADER_DLFCN
1677 # ----------------
1678 m4_defun([_LT_HEADER_DLFCN],
1679 [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
1680 ])# _LT_HEADER_DLFCN
1681
1682
1683 # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
1684 #                      ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
1685 # ----------------------------------------------------------------
1686 m4_defun([_LT_TRY_DLOPEN_SELF],
1687 [m4_require([_LT_HEADER_DLFCN])dnl
1688 if test "$cross_compiling" = yes; then :
1689   [$4]
1690 else
1691   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
1692   lt_status=$lt_dlunknown
1693   cat > conftest.$ac_ext <<_LT_EOF
1694 [#line $LINENO "configure"
1695 #include "confdefs.h"
1696
1697 #if HAVE_DLFCN_H
1698 #include <dlfcn.h>
1699 #endif
1700
1701 #include <stdio.h>
1702
1703 #ifdef RTLD_GLOBAL
1704 #  define LT_DLGLOBAL           RTLD_GLOBAL
1705 #else
1706 #  ifdef DL_GLOBAL
1707 #    define LT_DLGLOBAL         DL_GLOBAL
1708 #  else
1709 #    define LT_DLGLOBAL         0
1710 #  endif
1711 #endif
1712
1713 /* We may have to define LT_DLLAZY_OR_NOW in the command line if we
1714    find out it does not work in some platform. */
1715 #ifndef LT_DLLAZY_OR_NOW
1716 #  ifdef RTLD_LAZY
1717 #    define LT_DLLAZY_OR_NOW            RTLD_LAZY
1718 #  else
1719 #    ifdef DL_LAZY
1720 #      define LT_DLLAZY_OR_NOW          DL_LAZY
1721 #    else
1722 #      ifdef RTLD_NOW
1723 #        define LT_DLLAZY_OR_NOW        RTLD_NOW
1724 #      else
1725 #        ifdef DL_NOW
1726 #          define LT_DLLAZY_OR_NOW      DL_NOW
1727 #        else
1728 #          define LT_DLLAZY_OR_NOW      0
1729 #        endif
1730 #      endif
1731 #    endif
1732 #  endif
1733 #endif
1734
1735 /* When -fvisbility=hidden is used, assume the code has been annotated
1736    correspondingly for the symbols needed.  */
1737 #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
1738 int fnord () __attribute__((visibility("default")));
1739 #endif
1740
1741 int fnord () { return 42; }
1742 int main ()
1743 {
1744   void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
1745   int status = $lt_dlunknown;
1746
1747   if (self)
1748     {
1749       if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
1750       else
1751         {
1752           if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
1753           else puts (dlerror ());
1754         }
1755       /* dlclose (self); */
1756     }
1757   else
1758     puts (dlerror ());
1759
1760   return status;
1761 }]
1762 _LT_EOF
1763   if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
1764     (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
1765     lt_status=$?
1766     case x$lt_status in
1767       x$lt_dlno_uscore) $1 ;;
1768       x$lt_dlneed_uscore) $2 ;;
1769       x$lt_dlunknown|x*) $3 ;;
1770     esac
1771   else :
1772     # compilation failed
1773     $3
1774   fi
1775 fi
1776 rm -fr conftest*
1777 ])# _LT_TRY_DLOPEN_SELF
1778
1779
1780 # LT_SYS_DLOPEN_SELF
1781 # ------------------
1782 AC_DEFUN([LT_SYS_DLOPEN_SELF],
1783 [m4_require([_LT_HEADER_DLFCN])dnl
1784 if test "x$enable_dlopen" != xyes; then
1785   enable_dlopen=unknown
1786   enable_dlopen_self=unknown
1787   enable_dlopen_self_static=unknown
1788 else
1789   lt_cv_dlopen=no
1790   lt_cv_dlopen_libs=
1791
1792   case $host_os in
1793   beos*)
1794     lt_cv_dlopen="load_add_on"
1795     lt_cv_dlopen_libs=
1796     lt_cv_dlopen_self=yes
1797     ;;
1798
1799   mingw* | pw32* | cegcc*)
1800     lt_cv_dlopen="LoadLibrary"
1801     lt_cv_dlopen_libs=
1802     ;;
1803
1804   cygwin*)
1805     lt_cv_dlopen="dlopen"
1806     lt_cv_dlopen_libs=
1807     ;;
1808
1809   darwin*)
1810   # if libdl is installed we need to link against it
1811     AC_CHECK_LIB([dl], [dlopen],
1812                 [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
1813     lt_cv_dlopen="dyld"
1814     lt_cv_dlopen_libs=
1815     lt_cv_dlopen_self=yes
1816     ])
1817     ;;
1818
1819   *)
1820     AC_CHECK_FUNC([shl_load],
1821           [lt_cv_dlopen="shl_load"],
1822       [AC_CHECK_LIB([dld], [shl_load],
1823             [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
1824         [AC_CHECK_FUNC([dlopen],
1825               [lt_cv_dlopen="dlopen"],
1826           [AC_CHECK_LIB([dl], [dlopen],
1827                 [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
1828             [AC_CHECK_LIB([svld], [dlopen],
1829                   [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
1830               [AC_CHECK_LIB([dld], [dld_link],
1831                     [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
1832               ])
1833             ])
1834           ])
1835         ])
1836       ])
1837     ;;
1838   esac
1839
1840   if test "x$lt_cv_dlopen" != xno; then
1841     enable_dlopen=yes
1842   else
1843     enable_dlopen=no
1844   fi
1845
1846   case $lt_cv_dlopen in
1847   dlopen)
1848     save_CPPFLAGS="$CPPFLAGS"
1849     test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
1850
1851     save_LDFLAGS="$LDFLAGS"
1852     wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
1853
1854     save_LIBS="$LIBS"
1855     LIBS="$lt_cv_dlopen_libs $LIBS"
1856
1857     AC_CACHE_CHECK([whether a program can dlopen itself],
1858           lt_cv_dlopen_self, [dnl
1859           _LT_TRY_DLOPEN_SELF(
1860             lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
1861             lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
1862     ])
1863
1864     if test "x$lt_cv_dlopen_self" = xyes; then
1865       wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
1866       AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
1867           lt_cv_dlopen_self_static, [dnl
1868           _LT_TRY_DLOPEN_SELF(
1869             lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
1870             lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
1871       ])
1872     fi
1873
1874     CPPFLAGS="$save_CPPFLAGS"
1875     LDFLAGS="$save_LDFLAGS"
1876     LIBS="$save_LIBS"
1877     ;;
1878   esac
1879
1880   case $lt_cv_dlopen_self in
1881   yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
1882   *) enable_dlopen_self=unknown ;;
1883   esac
1884
1885   case $lt_cv_dlopen_self_static in
1886   yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
1887   *) enable_dlopen_self_static=unknown ;;
1888   esac
1889 fi
1890 _LT_DECL([dlopen_support], [enable_dlopen], [0],
1891          [Whether dlopen is supported])
1892 _LT_DECL([dlopen_self], [enable_dlopen_self], [0],
1893          [Whether dlopen of programs is supported])
1894 _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
1895          [Whether dlopen of statically linked programs is supported])
1896 ])# LT_SYS_DLOPEN_SELF
1897
1898 # Old name:
1899 AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
1900 dnl aclocal-1.4 backwards compatibility:
1901 dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
1902
1903
1904 # _LT_COMPILER_C_O([TAGNAME])
1905 # ---------------------------
1906 # Check to see if options -c and -o are simultaneously supported by compiler.
1907 # This macro does not hard code the compiler like AC_PROG_CC_C_O.
1908 m4_defun([_LT_COMPILER_C_O],
1909 [m4_require([_LT_DECL_SED])dnl
1910 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
1911 m4_require([_LT_TAG_COMPILER])dnl
1912 AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
1913   [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
1914   [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
1915    $RM -r conftest 2>/dev/null
1916    mkdir conftest
1917    cd conftest
1918    mkdir out
1919    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
1920
1921    lt_compiler_flag="-o out/conftest2.$ac_objext"
1922    # Insert the option either (1) after the last *FLAGS variable, or
1923    # (2) before a word containing "conftest.", or (3) at the end.
1924    # Note that $ac_compile itself does not contain backslashes and begins
1925    # with a dollar sign (not a hyphen), so the echo should work correctly.
1926    lt_compile=`echo "$ac_compile" | $SED \
1927    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
1928    -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
1929    -e 's:$: $lt_compiler_flag:'`
1930    (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
1931    (eval "$lt_compile" 2>out/conftest.err)
1932    ac_status=$?
1933    cat out/conftest.err >&AS_MESSAGE_LOG_FD
1934    echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
1935    if (exit $ac_status) && test -s out/conftest2.$ac_objext
1936    then
1937      # The compiler can only warn and ignore the option if not recognized
1938      # So say no if there are warnings
1939      $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
1940      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
1941      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
1942        _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
1943      fi
1944    fi
1945    chmod u+w . 2>&AS_MESSAGE_LOG_FD
1946    $RM conftest*
1947    # SGI C++ compiler will create directory out/ii_files/ for
1948    # template instantiation
1949    test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
1950    $RM out/* && rmdir out
1951    cd ..
1952    $RM -r conftest
1953    $RM conftest*
1954 ])
1955 _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
1956         [Does compiler simultaneously support -c and -o options?])
1957 ])# _LT_COMPILER_C_O
1958
1959
1960 # _LT_COMPILER_FILE_LOCKS([TAGNAME])
1961 # ----------------------------------
1962 # Check to see if we can do hard links to lock some files if needed
1963 m4_defun([_LT_COMPILER_FILE_LOCKS],
1964 [m4_require([_LT_ENABLE_LOCK])dnl
1965 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
1966 _LT_COMPILER_C_O([$1])
1967
1968 hard_links="nottested"
1969 if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
1970   # do not overwrite the value of need_locks provided by the user
1971   AC_MSG_CHECKING([if we can lock with hard links])
1972   hard_links=yes
1973   $RM conftest*
1974   ln conftest.a conftest.b 2>/dev/null && hard_links=no
1975   touch conftest.a
1976   ln conftest.a conftest.b 2>&5 || hard_links=no
1977   ln conftest.a conftest.b 2>/dev/null && hard_links=no
1978   AC_MSG_RESULT([$hard_links])
1979   if test "$hard_links" = no; then
1980     AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
1981     need_locks=warn
1982   fi
1983 else
1984   need_locks=no
1985 fi
1986 _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
1987 ])# _LT_COMPILER_FILE_LOCKS
1988
1989
1990 # _LT_CHECK_OBJDIR
1991 # ----------------
1992 m4_defun([_LT_CHECK_OBJDIR],
1993 [AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
1994 [rm -f .libs 2>/dev/null
1995 mkdir .libs 2>/dev/null
1996 if test -d .libs; then
1997   lt_cv_objdir=.libs
1998 else
1999   # MS-DOS does not allow filenames that begin with a dot.
2000   lt_cv_objdir=_libs
2001 fi
2002 rmdir .libs 2>/dev/null])
2003 objdir=$lt_cv_objdir
2004 _LT_DECL([], [objdir], [0],
2005          [The name of the directory that contains temporary libtool files])dnl
2006 m4_pattern_allow([LT_OBJDIR])dnl
2007 AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
2008   [Define to the sub-directory in which libtool stores uninstalled libraries.])
2009 ])# _LT_CHECK_OBJDIR
2010
2011
2012 # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
2013 # --------------------------------------
2014 # Check hardcoding attributes.
2015 m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
2016 [AC_MSG_CHECKING([how to hardcode library paths into programs])
2017 _LT_TAGVAR(hardcode_action, $1)=
2018 if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
2019    test -n "$_LT_TAGVAR(runpath_var, $1)" ||
2020    test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
2021
2022   # We can hardcode non-existent directories.
2023   if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
2024      # If the only mechanism to avoid hardcoding is shlibpath_var, we
2025      # have to relink, otherwise we might link with an installed library
2026      # when we should be linking with a yet-to-be-installed one
2027      ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
2028      test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
2029     # Linking always hardcodes the temporary library directory.
2030     _LT_TAGVAR(hardcode_action, $1)=relink
2031   else
2032     # We can link without hardcoding, and we can hardcode nonexisting dirs.
2033     _LT_TAGVAR(hardcode_action, $1)=immediate
2034   fi
2035 else
2036   # We cannot hardcode anything, or else we can only hardcode existing
2037   # directories.
2038   _LT_TAGVAR(hardcode_action, $1)=unsupported
2039 fi
2040 AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
2041
2042 if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
2043    test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
2044   # Fast installation is not supported
2045   enable_fast_install=no
2046 elif test "$shlibpath_overrides_runpath" = yes ||
2047      test "$enable_shared" = no; then
2048   # Fast installation is not necessary
2049   enable_fast_install=needless
2050 fi
2051 _LT_TAGDECL([], [hardcode_action], [0],
2052     [How to hardcode a shared library path into an executable])
2053 ])# _LT_LINKER_HARDCODE_LIBPATH
2054
2055
2056 # _LT_CMD_STRIPLIB
2057 # ----------------
2058 m4_defun([_LT_CMD_STRIPLIB],
2059 [m4_require([_LT_DECL_EGREP])
2060 striplib=
2061 old_striplib=
2062 AC_MSG_CHECKING([whether stripping libraries is possible])
2063 if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
2064   test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
2065   test -z "$striplib" && striplib="$STRIP --strip-unneeded"
2066   AC_MSG_RESULT([yes])
2067 else
2068 # FIXME - insert some real tests, host_os isn't really good enough
2069   case $host_os in
2070   darwin*)
2071     if test -n "$STRIP" ; then
2072       striplib="$STRIP -x"
2073       old_striplib="$STRIP -S"
2074       AC_MSG_RESULT([yes])
2075     else
2076       AC_MSG_RESULT([no])
2077     fi
2078     ;;
2079   *)
2080     AC_MSG_RESULT([no])
2081     ;;
2082   esac
2083 fi
2084 _LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
2085 _LT_DECL([], [striplib], [1])
2086 ])# _LT_CMD_STRIPLIB
2087
2088
2089 # _LT_SYS_DYNAMIC_LINKER([TAG])
2090 # -----------------------------
2091 # PORTME Fill in your ld.so characteristics
2092 m4_defun([_LT_SYS_DYNAMIC_LINKER],
2093 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
2094 m4_require([_LT_DECL_EGREP])dnl
2095 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
2096 m4_require([_LT_DECL_OBJDUMP])dnl
2097 m4_require([_LT_DECL_SED])dnl
2098 m4_require([_LT_CHECK_SHELL_FEATURES])dnl
2099 AC_MSG_CHECKING([dynamic linker characteristics])
2100 m4_if([$1],
2101         [], [
2102 if test "$GCC" = yes; then
2103   case $host_os in
2104     darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
2105     *) lt_awk_arg="/^libraries:/" ;;
2106   esac
2107   case $host_os in
2108     mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
2109     *) lt_sed_strip_eq="s,=/,/,g" ;;
2110   esac
2111   lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
2112   case $lt_search_path_spec in
2113   *\;*)
2114     # if the path contains ";" then we assume it to be the separator
2115     # otherwise default to the standard path separator (i.e. ":") - it is
2116     # assumed that no part of a normal pathname contains ";" but that should
2117     # okay in the real world where ";" in dirpaths is itself problematic.
2118     lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
2119     ;;
2120   *)
2121     lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
2122     ;;
2123   esac
2124   # Ok, now we have the path, separated by spaces, we can step through it
2125   # and add multilib dir if necessary.
2126   lt_tmp_lt_search_path_spec=
2127   lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
2128   for lt_sys_path in $lt_search_path_spec; do
2129     if test -d "$lt_sys_path/$lt_multi_os_dir"; then
2130       lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
2131     else
2132       test -d "$lt_sys_path" && \
2133         lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
2134     fi
2135   done
2136   lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
2137 BEGIN {RS=" "; FS="/|\n";} {
2138   lt_foo="";
2139   lt_count=0;
2140   for (lt_i = NF; lt_i > 0; lt_i--) {
2141     if ($lt_i != "" && $lt_i != ".") {
2142       if ($lt_i == "..") {
2143         lt_count++;
2144       } else {
2145         if (lt_count == 0) {
2146           lt_foo="/" $lt_i lt_foo;
2147         } else {
2148           lt_count--;
2149         }
2150       }
2151     }
2152   }
2153   if (lt_foo != "") { lt_freq[[lt_foo]]++; }
2154   if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
2155 }'`
2156   # AWK program above erroneously prepends '/' to C:/dos/paths
2157   # for these hosts.
2158   case $host_os in
2159     mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
2160       $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
2161   esac
2162   sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
2163 else
2164   sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
2165 fi])
2166 library_names_spec=
2167 libname_spec='lib$name'
2168 soname_spec=
2169 shrext_cmds=".so"
2170 postinstall_cmds=
2171 postuninstall_cmds=
2172 finish_cmds=
2173 finish_eval=
2174 shlibpath_var=
2175 shlibpath_overrides_runpath=unknown
2176 version_type=none
2177 dynamic_linker="$host_os ld.so"
2178 sys_lib_dlsearch_path_spec="/lib /usr/lib"
2179 need_lib_prefix=unknown
2180 hardcode_into_libs=no
2181
2182 # when you set need_version to no, make sure it does not cause -set_version
2183 # flags to be left without arguments
2184 need_version=unknown
2185
2186 case $host_os in
2187 aix3*)
2188   version_type=linux
2189   library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
2190   shlibpath_var=LIBPATH
2191
2192   # AIX 3 has no versioning support, so we append a major version to the name.
2193   soname_spec='${libname}${release}${shared_ext}$major'
2194   ;;
2195
2196 aix[[4-9]]*)
2197   version_type=linux
2198   need_lib_prefix=no
2199   need_version=no
2200   hardcode_into_libs=yes
2201   if test "$host_cpu" = ia64; then
2202     # AIX 5 supports IA64
2203     library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
2204     shlibpath_var=LD_LIBRARY_PATH
2205   else
2206     # With GCC up to 2.95.x, collect2 would create an import file
2207     # for dependence libraries.  The import file would start with
2208     # the line `#! .'.  This would cause the generated library to
2209     # depend on `.', always an invalid library.  This was fixed in
2210     # development snapshots of GCC prior to 3.0.
2211     case $host_os in
2212       aix4 | aix4.[[01]] | aix4.[[01]].*)
2213       if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
2214            echo ' yes '
2215            echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
2216         :
2217       else
2218         can_build_shared=no
2219       fi
2220       ;;
2221     esac
2222     # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
2223     # soname into executable. Probably we can add versioning support to
2224     # collect2, so additional links can be useful in future.
2225     if test "$aix_use_runtimelinking" = yes; then
2226       # If using run time linking (on AIX 4.2 or later) use lib<name>.so
2227       # instead of lib<name>.a to let people know that these are not
2228       # typical AIX shared libraries.
2229       library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2230     else
2231       # We preserve .a as extension for shared libraries through AIX4.2
2232       # and later when we are not doing run time linking.
2233       library_names_spec='${libname}${release}.a $libname.a'
2234       soname_spec='${libname}${release}${shared_ext}$major'
2235     fi
2236     shlibpath_var=LIBPATH
2237   fi
2238   ;;
2239
2240 amigaos*)
2241   case $host_cpu in
2242   powerpc)
2243     # Since July 2007 AmigaOS4 officially supports .so libraries.
2244     # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
2245     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2246     ;;
2247   m68k)
2248     library_names_spec='$libname.ixlibrary $libname.a'
2249     # Create ${libname}_ixlibrary.a entries in /sys/libs.
2250     finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''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'
2251     ;;
2252   esac
2253   ;;
2254
2255 beos*)
2256   library_names_spec='${libname}${shared_ext}'
2257   dynamic_linker="$host_os ld.so"
2258   shlibpath_var=LIBRARY_PATH
2259   ;;
2260
2261 bsdi[[45]]*)
2262   version_type=linux
2263   need_version=no
2264   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2265   soname_spec='${libname}${release}${shared_ext}$major'
2266   finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
2267   shlibpath_var=LD_LIBRARY_PATH
2268   sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
2269   sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
2270   # the default ld.so.conf also contains /usr/contrib/lib and
2271   # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
2272   # libtool to hard-code these into programs
2273   ;;
2274
2275 cygwin* | mingw* | pw32* | cegcc*)
2276   version_type=windows
2277   shrext_cmds=".dll"
2278   need_version=no
2279   need_lib_prefix=no
2280
2281   case $GCC,$cc_basename in
2282   yes,*)
2283     # gcc
2284     library_names_spec='$libname.dll.a'
2285     # DLL is installed to $(libdir)/../bin by postinstall_cmds
2286     postinstall_cmds='base_file=`basename \${file}`~
2287       dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
2288       dldir=$destdir/`dirname \$dlpath`~
2289       test -d \$dldir || mkdir -p \$dldir~
2290       $install_prog $dir/$dlname \$dldir/$dlname~
2291       chmod a+x \$dldir/$dlname~
2292       if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
2293         eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
2294       fi'
2295     postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
2296       dlpath=$dir/\$dldll~
2297        $RM \$dlpath'
2298     shlibpath_overrides_runpath=yes
2299
2300     case $host_os in
2301     cygwin*)
2302       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
2303       soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
2304 m4_if([$1], [],[
2305       sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
2306       ;;
2307     mingw* | cegcc*)
2308       # MinGW DLLs use traditional 'lib' prefix
2309       soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
2310       ;;
2311     pw32*)
2312       # pw32 DLLs use 'pw' prefix rather than 'lib'
2313       library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
2314       ;;
2315     esac
2316     dynamic_linker='Win32 ld.exe'
2317     ;;
2318
2319   *,cl*)
2320     # Native MSVC
2321     libname_spec='$name'
2322     soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
2323     library_names_spec='${libname}.dll.lib'
2324
2325     case $build_os in
2326     mingw*)
2327       sys_lib_search_path_spec=
2328       lt_save_ifs=$IFS
2329       IFS=';'
2330       for lt_path in $LIB
2331       do
2332         IFS=$lt_save_ifs
2333         # Let DOS variable expansion print the short 8.3 style file name.
2334         lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
2335         sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
2336       done
2337       IFS=$lt_save_ifs
2338       # Convert to MSYS style.
2339       sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
2340       ;;
2341     cygwin*)
2342       # Convert to unix form, then to dos form, then back to unix form
2343       # but this time dos style (no spaces!) so that the unix form looks
2344       # like /cygdrive/c/PROGRA~1:/cygdr...
2345       sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
2346       sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
2347       sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
2348       ;;
2349     *)
2350       sys_lib_search_path_spec="$LIB"
2351       if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
2352         # It is most probably a Windows format PATH.
2353         sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
2354       else
2355         sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
2356       fi
2357       # FIXME: find the short name or the path components, as spaces are
2358       # common. (e.g. "Program Files" -> "PROGRA~1")
2359       ;;
2360     esac
2361
2362     # DLL is installed to $(libdir)/../bin by postinstall_cmds
2363     postinstall_cmds='base_file=`basename \${file}`~
2364       dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
2365       dldir=$destdir/`dirname \$dlpath`~
2366       test -d \$dldir || mkdir -p \$dldir~
2367       $install_prog $dir/$dlname \$dldir/$dlname'
2368     postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
2369       dlpath=$dir/\$dldll~
2370        $RM \$dlpath'
2371     shlibpath_overrides_runpath=yes
2372     dynamic_linker='Win32 link.exe'
2373     ;;
2374
2375   *)
2376     # Assume MSVC wrapper
2377     library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
2378     dynamic_linker='Win32 ld.exe'
2379     ;;
2380   esac
2381   # FIXME: first we should search . and the directory the executable is in
2382   shlibpath_var=PATH
2383   ;;
2384
2385 darwin* | rhapsody*)
2386   dynamic_linker="$host_os dyld"
2387   version_type=darwin
2388   need_lib_prefix=no
2389   need_version=no
2390   library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
2391   soname_spec='${libname}${release}${major}$shared_ext'
2392   shlibpath_overrides_runpath=yes
2393   shlibpath_var=DYLD_LIBRARY_PATH
2394   shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
2395 m4_if([$1], [],[
2396   sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
2397   sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
2398   ;;
2399
2400 dgux*)
2401   version_type=linux
2402   need_lib_prefix=no
2403   need_version=no
2404   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
2405   soname_spec='${libname}${release}${shared_ext}$major'
2406   shlibpath_var=LD_LIBRARY_PATH
2407   ;;
2408
2409 freebsd1*)
2410   dynamic_linker=no
2411   ;;
2412
2413 freebsd* | dragonfly*)
2414   # DragonFly does not have aout.  When/if they implement a new
2415   # versioning mechanism, adjust this.
2416   if test -x /usr/bin/objformat; then
2417     objformat=`/usr/bin/objformat`
2418   else
2419     case $host_os in
2420     freebsd[[123]]*) objformat=aout ;;
2421     *) objformat=elf ;;
2422     esac
2423   fi
2424   version_type=freebsd-$objformat
2425   case $version_type in
2426     freebsd-elf*)
2427       library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
2428       need_version=no
2429       need_lib_prefix=no
2430       ;;
2431     freebsd-*)
2432       library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
2433       need_version=yes
2434       ;;
2435   esac
2436   shlibpath_var=LD_LIBRARY_PATH
2437   case $host_os in
2438   freebsd2*)
2439     shlibpath_overrides_runpath=yes
2440     ;;
2441   freebsd3.[[01]]* | freebsdelf3.[[01]]*)
2442     shlibpath_overrides_runpath=yes
2443     hardcode_into_libs=yes
2444     ;;
2445   freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
2446   freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
2447     shlibpath_overrides_runpath=no
2448     hardcode_into_libs=yes
2449     ;;
2450   *) # from 4.6 on, and DragonFly
2451     shlibpath_overrides_runpath=yes
2452     hardcode_into_libs=yes
2453     ;;
2454   esac
2455   ;;
2456
2457 gnu*)
2458   version_type=linux
2459   need_lib_prefix=no
2460   need_version=no
2461   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
2462   soname_spec='${libname}${release}${shared_ext}$major'
2463   shlibpath_var=LD_LIBRARY_PATH
2464   hardcode_into_libs=yes
2465   ;;
2466
2467 haiku*)
2468   version_type=linux
2469   need_lib_prefix=no
2470   need_version=no
2471   dynamic_linker="$host_os runtime_loader"
2472   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
2473   soname_spec='${libname}${release}${shared_ext}$major'
2474   shlibpath_var=LIBRARY_PATH
2475   shlibpath_overrides_runpath=yes
2476   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
2477   hardcode_into_libs=yes
2478   ;;
2479
2480 hpux9* | hpux10* | hpux11*)
2481   # Give a soname corresponding to the major version so that dld.sl refuses to
2482   # link against other versions.
2483   version_type=sunos
2484   need_lib_prefix=no
2485   need_version=no
2486   case $host_cpu in
2487   ia64*)
2488     shrext_cmds='.so'
2489     hardcode_into_libs=yes
2490     dynamic_linker="$host_os dld.so"
2491     shlibpath_var=LD_LIBRARY_PATH
2492     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
2493     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2494     soname_spec='${libname}${release}${shared_ext}$major'
2495     if test "X$HPUX_IA64_MODE" = X32; then
2496       sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
2497     else
2498       sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
2499     fi
2500     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
2501     ;;
2502   hppa*64*)
2503     shrext_cmds='.sl'
2504     hardcode_into_libs=yes
2505     dynamic_linker="$host_os dld.sl"
2506     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
2507     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
2508     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2509     soname_spec='${libname}${release}${shared_ext}$major'
2510     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
2511     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
2512     ;;
2513   *)
2514     shrext_cmds='.sl'
2515     dynamic_linker="$host_os dld.sl"
2516     shlibpath_var=SHLIB_PATH
2517     shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
2518     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2519     soname_spec='${libname}${release}${shared_ext}$major'
2520     ;;
2521   esac
2522   # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
2523   postinstall_cmds='chmod 555 $lib'
2524   # or fails outright, so override atomically:
2525   install_override_mode=555
2526   ;;
2527
2528 interix[[3-9]]*)
2529   version_type=linux
2530   need_lib_prefix=no
2531   need_version=no
2532   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
2533   soname_spec='${libname}${release}${shared_ext}$major'
2534   dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
2535   shlibpath_var=LD_LIBRARY_PATH
2536   shlibpath_overrides_runpath=no
2537   hardcode_into_libs=yes
2538   ;;
2539
2540 irix5* | irix6* | nonstopux*)
2541   case $host_os in
2542     nonstopux*) version_type=nonstopux ;;
2543     *)
2544         if test "$lt_cv_prog_gnu_ld" = yes; then
2545                 version_type=linux
2546         else
2547                 version_type=irix
2548         fi ;;
2549   esac
2550   need_lib_prefix=no
2551   need_version=no
2552   soname_spec='${libname}${release}${shared_ext}$major'
2553   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
2554   case $host_os in
2555   irix5* | nonstopux*)
2556     libsuff= shlibsuff=
2557     ;;
2558   *)
2559     case $LD in # libtool.m4 will add one of these switches to LD
2560     *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
2561       libsuff= shlibsuff= libmagic=32-bit;;
2562     *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
2563       libsuff=32 shlibsuff=N32 libmagic=N32;;
2564     *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
2565       libsuff=64 shlibsuff=64 libmagic=64-bit;;
2566     *) libsuff= shlibsuff= libmagic=never-match;;
2567     esac
2568     ;;
2569   esac
2570   shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
2571   shlibpath_overrides_runpath=no
2572   sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
2573   sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
2574   hardcode_into_libs=yes
2575   ;;
2576
2577 # No shared lib support for Linux oldld, aout, or coff.
2578 linux*oldld* | linux*aout* | linux*coff*)
2579   dynamic_linker=no
2580   ;;
2581
2582 # This must be Linux ELF.
2583 linux* | k*bsd*-gnu | kopensolaris*-gnu)
2584   version_type=linux
2585   need_lib_prefix=no
2586   need_version=no
2587   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2588   soname_spec='${libname}${release}${shared_ext}$major'
2589   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
2590   shlibpath_var=LD_LIBRARY_PATH
2591   shlibpath_overrides_runpath=no
2592
2593   # Some binutils ld are patched to set DT_RUNPATH
2594   AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
2595     [lt_cv_shlibpath_overrides_runpath=no
2596     save_LDFLAGS=$LDFLAGS
2597     save_libdir=$libdir
2598     eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
2599          LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
2600     AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
2601       [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
2602          [lt_cv_shlibpath_overrides_runpath=yes])])
2603     LDFLAGS=$save_LDFLAGS
2604     libdir=$save_libdir
2605     ])
2606   shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
2607
2608   # This implies no fast_install, which is unacceptable.
2609   # Some rework will be needed to allow for fast_install
2610   # before this can be enabled.
2611   hardcode_into_libs=yes
2612
2613   # find out which ABI we are using
2614   libsuff=
2615   case "$host_cpu" in
2616   x86_64*|s390x*|powerpc64*)
2617     echo '[#]line __oline__ "configure"' > conftest.$ac_ext
2618     if AC_TRY_EVAL(ac_compile); then
2619       case `/usr/bin/file conftest.$ac_objext` in
2620       *64-bit*)
2621         libsuff=64
2622         ;;
2623       esac
2624     fi
2625     rm -rf conftest*
2626     ;;
2627   esac
2628
2629   sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
2630
2631   # Append ld.so.conf contents to the search path
2632   if test -f /etc/ld.so.conf; then
2633     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;s/"//g;/^$/d' | tr '\n' ' '`
2634     sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
2635   fi
2636
2637   # We used to test for /lib/ld.so.1 and disable shared libraries on
2638   # powerpc, because MkLinux only supported shared libraries with the
2639   # GNU dynamic linker.  Since this was broken with cross compilers,
2640   # most powerpc-linux boxes support dynamic linking these days and
2641   # people can always --disable-shared, the test was removed, and we
2642   # assume the GNU/Linux dynamic linker is in use.
2643   dynamic_linker='GNU/Linux ld.so'
2644   ;;
2645
2646 netbsd*)
2647   version_type=sunos
2648   need_lib_prefix=no
2649   need_version=no
2650   if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
2651     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
2652     finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
2653     dynamic_linker='NetBSD (a.out) ld.so'
2654   else
2655     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
2656     soname_spec='${libname}${release}${shared_ext}$major'
2657     dynamic_linker='NetBSD ld.elf_so'
2658   fi
2659   shlibpath_var=LD_LIBRARY_PATH
2660   shlibpath_overrides_runpath=yes
2661   hardcode_into_libs=yes
2662   ;;
2663
2664 newsos6)
2665   version_type=linux
2666   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2667   shlibpath_var=LD_LIBRARY_PATH
2668   shlibpath_overrides_runpath=yes
2669   ;;
2670
2671 *nto* | *qnx*)
2672   version_type=qnx
2673   need_lib_prefix=no
2674   need_version=no
2675   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2676   soname_spec='${libname}${release}${shared_ext}$major'
2677   shlibpath_var=LD_LIBRARY_PATH
2678   shlibpath_overrides_runpath=no
2679   hardcode_into_libs=yes
2680   dynamic_linker='ldqnx.so'
2681   ;;
2682
2683 openbsd*)
2684   version_type=sunos
2685   sys_lib_dlsearch_path_spec="/usr/lib"
2686   need_lib_prefix=no
2687   # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
2688   case $host_os in
2689     openbsd3.3 | openbsd3.3.*)  need_version=yes ;;
2690     *)                          need_version=no  ;;
2691   esac
2692   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
2693   finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
2694   shlibpath_var=LD_LIBRARY_PATH
2695   if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
2696     case $host_os in
2697       openbsd2.[[89]] | openbsd2.[[89]].*)
2698         shlibpath_overrides_runpath=no
2699         ;;
2700       *)
2701         shlibpath_overrides_runpath=yes
2702         ;;
2703       esac
2704   else
2705     shlibpath_overrides_runpath=yes
2706   fi
2707   ;;
2708
2709 os2*)
2710   libname_spec='$name'
2711   shrext_cmds=".dll"
2712   need_lib_prefix=no
2713   library_names_spec='$libname${shared_ext} $libname.a'
2714   dynamic_linker='OS/2 ld.exe'
2715   shlibpath_var=LIBPATH
2716   ;;
2717
2718 osf3* | osf4* | osf5*)
2719   version_type=osf
2720   need_lib_prefix=no
2721   need_version=no
2722   soname_spec='${libname}${release}${shared_ext}$major'
2723   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2724   shlibpath_var=LD_LIBRARY_PATH
2725   sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
2726   sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
2727   ;;
2728
2729 rdos*)
2730   dynamic_linker=no
2731   ;;
2732
2733 solaris*)
2734   version_type=linux
2735   need_lib_prefix=no
2736   need_version=no
2737   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2738   soname_spec='${libname}${release}${shared_ext}$major'
2739   shlibpath_var=LD_LIBRARY_PATH
2740   shlibpath_overrides_runpath=yes
2741   hardcode_into_libs=yes
2742   # ldd complains unless libraries are executable
2743   postinstall_cmds='chmod +x $lib'
2744   ;;
2745
2746 sunos4*)
2747   version_type=sunos
2748   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
2749   finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
2750   shlibpath_var=LD_LIBRARY_PATH
2751   shlibpath_overrides_runpath=yes
2752   if test "$with_gnu_ld" = yes; then
2753     need_lib_prefix=no
2754   fi
2755   need_version=yes
2756   ;;
2757
2758 sysv4 | sysv4.3*)
2759   version_type=linux
2760   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2761   soname_spec='${libname}${release}${shared_ext}$major'
2762   shlibpath_var=LD_LIBRARY_PATH
2763   case $host_vendor in
2764     sni)
2765       shlibpath_overrides_runpath=no
2766       need_lib_prefix=no
2767       runpath_var=LD_RUN_PATH
2768       ;;
2769     siemens)
2770       need_lib_prefix=no
2771       ;;
2772     motorola)
2773       need_lib_prefix=no
2774       need_version=no
2775       shlibpath_overrides_runpath=no
2776       sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
2777       ;;
2778   esac
2779   ;;
2780
2781 sysv4*MP*)
2782   if test -d /usr/nec ;then
2783     version_type=linux
2784     library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
2785     soname_spec='$libname${shared_ext}.$major'
2786     shlibpath_var=LD_LIBRARY_PATH
2787   fi
2788   ;;
2789
2790 sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
2791   version_type=freebsd-elf
2792   need_lib_prefix=no
2793   need_version=no
2794   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
2795   soname_spec='${libname}${release}${shared_ext}$major'
2796   shlibpath_var=LD_LIBRARY_PATH
2797   shlibpath_overrides_runpath=yes
2798   hardcode_into_libs=yes
2799   if test "$with_gnu_ld" = yes; then
2800     sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
2801   else
2802     sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
2803     case $host_os in
2804       sco3.2v5*)
2805         sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
2806         ;;
2807     esac
2808   fi
2809   sys_lib_dlsearch_path_spec='/usr/lib'
2810   ;;
2811
2812 tpf*)
2813   # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
2814   version_type=linux
2815   need_lib_prefix=no
2816   need_version=no
2817   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2818   shlibpath_var=LD_LIBRARY_PATH
2819   shlibpath_overrides_runpath=no
2820   hardcode_into_libs=yes
2821   ;;
2822
2823 uts4*)
2824   version_type=linux
2825   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2826   soname_spec='${libname}${release}${shared_ext}$major'
2827   shlibpath_var=LD_LIBRARY_PATH
2828   ;;
2829
2830 *)
2831   dynamic_linker=no
2832   ;;
2833 esac
2834 AC_MSG_RESULT([$dynamic_linker])
2835 test "$dynamic_linker" = no && can_build_shared=no
2836
2837 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
2838 if test "$GCC" = yes; then
2839   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
2840 fi
2841
2842 if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
2843   sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
2844 fi
2845 if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
2846   sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
2847 fi
2848
2849 _LT_DECL([], [variables_saved_for_relink], [1],
2850     [Variables whose values should be saved in libtool wrapper scripts and
2851     restored at link time])
2852 _LT_DECL([], [need_lib_prefix], [0],
2853     [Do we need the "lib" prefix for modules?])
2854 _LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
2855 _LT_DECL([], [version_type], [0], [Library versioning type])
2856 _LT_DECL([], [runpath_var], [0],  [Shared library runtime path variable])
2857 _LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
2858 _LT_DECL([], [shlibpath_overrides_runpath], [0],
2859     [Is shlibpath searched before the hard-coded library search path?])
2860 _LT_DECL([], [libname_spec], [1], [Format of library name prefix])
2861 _LT_DECL([], [library_names_spec], [1],
2862     [[List of archive names.  First name is the real one, the rest are links.
2863     The last name is the one that the linker finds with -lNAME]])
2864 _LT_DECL([], [soname_spec], [1],
2865     [[The coded name of the library, if different from the real name]])
2866 _LT_DECL([], [install_override_mode], [1],
2867     [Permission mode override for installation of shared libraries])
2868 _LT_DECL([], [postinstall_cmds], [2],
2869     [Command to use after installation of a shared archive])
2870 _LT_DECL([], [postuninstall_cmds], [2],
2871     [Command to use after uninstallation of a shared archive])
2872 _LT_DECL([], [finish_cmds], [2],
2873     [Commands used to finish a libtool library installation in a directory])
2874 _LT_DECL([], [finish_eval], [1],
2875     [[As "finish_cmds", except a single script fragment to be evaled but
2876     not shown]])
2877 _LT_DECL([], [hardcode_into_libs], [0],
2878     [Whether we should hardcode library paths into libraries])
2879 _LT_DECL([], [sys_lib_search_path_spec], [2],
2880     [Compile-time system search path for libraries])
2881 _LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
2882     [Run-time system search path for libraries])
2883 ])# _LT_SYS_DYNAMIC_LINKER
2884
2885
2886 # _LT_PATH_TOOL_PREFIX(TOOL)
2887 # --------------------------
2888 # find a file program which can recognize shared library
2889 AC_DEFUN([_LT_PATH_TOOL_PREFIX],
2890 [m4_require([_LT_DECL_EGREP])dnl
2891 AC_MSG_CHECKING([for $1])
2892 AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
2893 [case $MAGIC_CMD in
2894 [[\\/*] |  ?:[\\/]*])
2895   lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
2896   ;;
2897 *)
2898   lt_save_MAGIC_CMD="$MAGIC_CMD"
2899   lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
2900 dnl $ac_dummy forces splitting on constant user-supplied paths.
2901 dnl POSIX.2 word splitting is done only on the output of word expansions,
2902 dnl not every word.  This closes a longstanding sh security hole.
2903   ac_dummy="m4_if([$2], , $PATH, [$2])"
2904   for ac_dir in $ac_dummy; do
2905     IFS="$lt_save_ifs"
2906     test -z "$ac_dir" && ac_dir=.
2907     if test -f $ac_dir/$1; then
2908       lt_cv_path_MAGIC_CMD="$ac_dir/$1"
2909       if test -n "$file_magic_test_file"; then
2910         case $deplibs_check_method in
2911         "file_magic "*)
2912           file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
2913           MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
2914           if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
2915             $EGREP "$file_magic_regex" > /dev/null; then
2916             :
2917           else
2918             cat <<_LT_EOF 1>&2
2919
2920 *** Warning: the command libtool uses to detect shared libraries,
2921 *** $file_magic_cmd, produces output that libtool cannot recognize.
2922 *** The result is that libtool may fail to recognize shared libraries
2923 *** as such.  This will affect the creation of libtool libraries that
2924 *** depend on shared libraries, but programs linked with such libtool
2925 *** libraries will work regardless of this problem.  Nevertheless, you
2926 *** may want to report the problem to your system manager and/or to
2927 *** bug-libtool@gnu.org
2928
2929 _LT_EOF
2930           fi ;;
2931         esac
2932       fi
2933       break
2934     fi
2935   done
2936   IFS="$lt_save_ifs"
2937   MAGIC_CMD="$lt_save_MAGIC_CMD"
2938   ;;
2939 esac])
2940 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
2941 if test -n "$MAGIC_CMD"; then
2942   AC_MSG_RESULT($MAGIC_CMD)
2943 else
2944   AC_MSG_RESULT(no)
2945 fi
2946 _LT_DECL([], [MAGIC_CMD], [0],
2947          [Used to examine libraries when file_magic_cmd begins with "file"])dnl
2948 ])# _LT_PATH_TOOL_PREFIX
2949
2950 # Old name:
2951 AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
2952 dnl aclocal-1.4 backwards compatibility:
2953 dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
2954
2955
2956 # _LT_PATH_MAGIC
2957 # --------------
2958 # find a file program which can recognize a shared library
2959 m4_defun([_LT_PATH_MAGIC],
2960 [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
2961 if test -z "$lt_cv_path_MAGIC_CMD"; then
2962   if test -n "$ac_tool_prefix"; then
2963     _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
2964   else
2965     MAGIC_CMD=:
2966   fi
2967 fi
2968 ])# _LT_PATH_MAGIC
2969
2970
2971 # LT_PATH_LD
2972 # ----------
2973 # find the pathname to the GNU or non-GNU linker
2974 AC_DEFUN([LT_PATH_LD],
2975 [AC_REQUIRE([AC_PROG_CC])dnl
2976 AC_REQUIRE([AC_CANONICAL_HOST])dnl
2977 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
2978 m4_require([_LT_DECL_SED])dnl
2979 m4_require([_LT_DECL_EGREP])dnl
2980 m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
2981
2982 AC_ARG_WITH([gnu-ld],
2983     [AS_HELP_STRING([--with-gnu-ld],
2984         [assume the C compiler uses GNU ld @<:@default=no@:>@])],
2985     [test "$withval" = no || with_gnu_ld=yes],
2986     [with_gnu_ld=no])dnl
2987
2988 ac_prog=ld
2989 if test "$GCC" = yes; then
2990   # Check if gcc -print-prog-name=ld gives a path.
2991   AC_MSG_CHECKING([for ld used by $CC])
2992   case $host in
2993   *-*-mingw*)
2994     # gcc leaves a trailing carriage return which upsets mingw
2995     ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
2996   *)
2997     ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
2998   esac
2999   case $ac_prog in
3000     # Accept absolute paths.
3001     [[\\/]]* | ?:[[\\/]]*)
3002       re_direlt='/[[^/]][[^/]]*/\.\./'
3003       # Canonicalize the pathname of ld
3004       ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
3005       while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
3006         ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
3007       done
3008       test -z "$LD" && LD="$ac_prog"
3009       ;;
3010   "")
3011     # If it fails, then pretend we aren't using GCC.
3012     ac_prog=ld
3013     ;;
3014   *)
3015     # If it is relative, then search for the first ld in PATH.
3016     with_gnu_ld=unknown
3017     ;;
3018   esac
3019 elif test "$with_gnu_ld" = yes; then
3020   AC_MSG_CHECKING([for GNU ld])
3021 else
3022   AC_MSG_CHECKING([for non-GNU ld])
3023 fi
3024 AC_CACHE_VAL(lt_cv_path_LD,
3025 [if test -z "$LD"; then
3026   lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
3027   for ac_dir in $PATH; do
3028     IFS="$lt_save_ifs"
3029     test -z "$ac_dir" && ac_dir=.
3030     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
3031       lt_cv_path_LD="$ac_dir/$ac_prog"
3032       # Check to see if the program is GNU ld.  I'd rather use --version,
3033       # but apparently some variants of GNU ld only accept -v.
3034       # Break only if it was the GNU/non-GNU ld that we prefer.
3035       case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
3036       *GNU* | *'with BFD'*)
3037         test "$with_gnu_ld" != no && break
3038         ;;
3039       *)
3040         test "$with_gnu_ld" != yes && break
3041         ;;
3042       esac
3043     fi
3044   done
3045   IFS="$lt_save_ifs"
3046 else
3047   lt_cv_path_LD="$LD" # Let the user override the test with a path.
3048 fi])
3049 LD="$lt_cv_path_LD"
3050 if test -n "$LD"; then
3051   AC_MSG_RESULT($LD)
3052 else
3053   AC_MSG_RESULT(no)
3054 fi
3055 test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
3056 _LT_PATH_LD_GNU
3057 AC_SUBST([LD])
3058
3059 _LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
3060 ])# LT_PATH_LD
3061
3062 # Old names:
3063 AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
3064 AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
3065 dnl aclocal-1.4 backwards compatibility:
3066 dnl AC_DEFUN([AM_PROG_LD], [])
3067 dnl AC_DEFUN([AC_PROG_LD], [])
3068
3069
3070 # _LT_PATH_LD_GNU
3071 #- --------------
3072 m4_defun([_LT_PATH_LD_GNU],
3073 [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
3074 [# I'd rather use --version here, but apparently some GNU lds only accept -v.
3075 case `$LD -v 2>&1 </dev/null` in
3076 *GNU* | *'with BFD'*)
3077   lt_cv_prog_gnu_ld=yes
3078   ;;
3079 *)
3080   lt_cv_prog_gnu_ld=no
3081   ;;
3082 esac])
3083 with_gnu_ld=$lt_cv_prog_gnu_ld
3084 ])# _LT_PATH_LD_GNU
3085
3086
3087 # _LT_CMD_RELOAD
3088 # --------------
3089 # find reload flag for linker
3090 #   -- PORTME Some linkers may need a different reload flag.
3091 m4_defun([_LT_CMD_RELOAD],
3092 [AC_CACHE_CHECK([for $LD option to reload object files],
3093   lt_cv_ld_reload_flag,
3094   [lt_cv_ld_reload_flag='-r'])
3095 reload_flag=$lt_cv_ld_reload_flag
3096 case $reload_flag in
3097 "" | " "*) ;;
3098 *) reload_flag=" $reload_flag" ;;
3099 esac
3100 reload_cmds='$LD$reload_flag -o $output$reload_objs'
3101 case $host_os in
3102   cygwin* | mingw* | pw32* | cegcc*)
3103     if test "$GCC" != yes; then
3104       reload_cmds=false
3105     fi
3106     ;;
3107   darwin*)
3108     if test "$GCC" = yes; then
3109       reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
3110     else
3111       reload_cmds='$LD$reload_flag -o $output$reload_objs'
3112     fi
3113     ;;
3114 esac
3115 _LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
3116 _LT_TAGDECL([], [reload_cmds], [2])dnl
3117 ])# _LT_CMD_RELOAD
3118
3119
3120 # _LT_CHECK_MAGIC_METHOD
3121 # ----------------------
3122 # how to check for library dependencies
3123 #  -- PORTME fill in with the dynamic library characteristics
3124 m4_defun([_LT_CHECK_MAGIC_METHOD],
3125 [m4_require([_LT_DECL_EGREP])
3126 m4_require([_LT_DECL_OBJDUMP])
3127 AC_CACHE_CHECK([how to recognize dependent libraries],
3128 lt_cv_deplibs_check_method,
3129 [lt_cv_file_magic_cmd='$MAGIC_CMD'
3130 lt_cv_file_magic_test_file=
3131 lt_cv_deplibs_check_method='unknown'
3132 # Need to set the preceding variable on all platforms that support
3133 # interlibrary dependencies.
3134 # 'none' -- dependencies not supported.
3135 # `unknown' -- same as none, but documents that we really don't know.
3136 # 'pass_all' -- all dependencies passed with no checks.
3137 # 'test_compile' -- check by making test program.
3138 # 'file_magic [[regex]]' -- check by looking for files in library path
3139 # which responds to the $file_magic_cmd with a given extended regex.
3140 # If you have `file' or equivalent on your system and you're not sure
3141 # whether `pass_all' will *always* work, you probably want this one.
3142
3143 case $host_os in
3144 aix[[4-9]]*)
3145   lt_cv_deplibs_check_method=pass_all
3146   ;;
3147
3148 beos*)
3149   lt_cv_deplibs_check_method=pass_all
3150   ;;
3151
3152 bsdi[[45]]*)
3153   lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
3154   lt_cv_file_magic_cmd='/usr/bin/file -L'
3155   lt_cv_file_magic_test_file=/shlib/libc.so
3156   ;;
3157
3158 cygwin*)
3159   # func_win32_libid is a shell function defined in ltmain.sh
3160   lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
3161   lt_cv_file_magic_cmd='func_win32_libid'
3162   ;;
3163
3164 mingw* | pw32*)
3165   # Base MSYS/MinGW do not provide the 'file' command needed by
3166   # func_win32_libid shell function, so use a weaker test based on 'objdump',
3167   # unless we find 'file', for example because we are cross-compiling.
3168   # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
3169   if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
3170     lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
3171     lt_cv_file_magic_cmd='func_win32_libid'
3172   else
3173     # Keep this pattern in sync with the one in func_win32_libid.
3174     lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
3175     lt_cv_file_magic_cmd='$OBJDUMP -f'
3176   fi
3177   ;;
3178
3179 cegcc*)
3180   # use the weaker test based on 'objdump'. See mingw*.
3181   lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
3182   lt_cv_file_magic_cmd='$OBJDUMP -f'
3183   ;;
3184
3185 darwin* | rhapsody*)
3186   lt_cv_deplibs_check_method=pass_all
3187   ;;
3188
3189 freebsd* | dragonfly*)
3190   if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
3191     case $host_cpu in
3192     i*86 )
3193       # Not sure whether the presence of OpenBSD here was a mistake.
3194       # Let's accept both of them until this is cleared up.
3195       lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
3196       lt_cv_file_magic_cmd=/usr/bin/file
3197       lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
3198       ;;
3199     esac
3200   else
3201     lt_cv_deplibs_check_method=pass_all
3202   fi
3203   ;;
3204
3205 gnu*)
3206   lt_cv_deplibs_check_method=pass_all
3207   ;;
3208
3209 haiku*)
3210   lt_cv_deplibs_check_method=pass_all
3211   ;;
3212
3213 hpux10.20* | hpux11*)
3214   lt_cv_file_magic_cmd=/usr/bin/file
3215   case $host_cpu in
3216   ia64*)
3217     lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
3218     lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
3219     ;;
3220   hppa*64*)
3221     [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
3222     lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
3223     ;;
3224   *)
3225     lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
3226     lt_cv_file_magic_test_file=/usr/lib/libc.sl
3227     ;;
3228   esac
3229   ;;
3230
3231 interix[[3-9]]*)
3232   # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
3233   lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
3234   ;;
3235
3236 irix5* | irix6* | nonstopux*)
3237   case $LD in
3238   *-32|*"-32 ") libmagic=32-bit;;
3239   *-n32|*"-n32 ") libmagic=N32;;
3240   *-64|*"-64 ") libmagic=64-bit;;
3241   *) libmagic=never-match;;
3242   esac
3243   lt_cv_deplibs_check_method=pass_all
3244   ;;
3245
3246 # This must be Linux ELF.
3247 linux* | k*bsd*-gnu | kopensolaris*-gnu)
3248   lt_cv_deplibs_check_method=pass_all
3249   ;;
3250
3251 netbsd*)
3252   if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
3253     lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
3254   else
3255     lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
3256   fi
3257   ;;
3258
3259 newos6*)
3260   lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
3261   lt_cv_file_magic_cmd=/usr/bin/file
3262   lt_cv_file_magic_test_file=/usr/lib/libnls.so
3263   ;;
3264
3265 *nto* | *qnx*)
3266   lt_cv_deplibs_check_method=pass_all
3267   ;;
3268
3269 openbsd*)
3270   if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
3271     lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
3272   else
3273     lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
3274   fi
3275   ;;
3276
3277 osf3* | osf4* | osf5*)
3278   lt_cv_deplibs_check_method=pass_all
3279   ;;
3280
3281 rdos*)
3282   lt_cv_deplibs_check_method=pass_all
3283   ;;
3284
3285 solaris*)
3286   lt_cv_deplibs_check_method=pass_all
3287   ;;
3288
3289 sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
3290   lt_cv_deplibs_check_method=pass_all
3291   ;;
3292
3293 sysv4 | sysv4.3*)
3294   case $host_vendor in
3295   motorola)
3296     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]]'
3297     lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
3298     ;;
3299   ncr)
3300     lt_cv_deplibs_check_method=pass_all
3301     ;;
3302   sequent)
3303     lt_cv_file_magic_cmd='/bin/file'
3304     lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
3305     ;;
3306   sni)
3307     lt_cv_file_magic_cmd='/bin/file'
3308     lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
3309     lt_cv_file_magic_test_file=/lib/libc.so
3310     ;;
3311   siemens)
3312     lt_cv_deplibs_check_method=pass_all
3313     ;;
3314   pc)
3315     lt_cv_deplibs_check_method=pass_all
3316     ;;
3317   esac
3318   ;;
3319
3320 tpf*)
3321   lt_cv_deplibs_check_method=pass_all
3322   ;;
3323 esac
3324 ])
3325
3326 file_magic_glob=
3327 want_nocaseglob=no
3328 if test "$build" = "$host"; then
3329   case $host_os in
3330   mingw* | pw32*)
3331     if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
3332       want_nocaseglob=yes
3333     else
3334       file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
3335     fi
3336     ;;
3337   esac
3338 fi
3339
3340 file_magic_cmd=$lt_cv_file_magic_cmd
3341 deplibs_check_method=$lt_cv_deplibs_check_method
3342 test -z "$deplibs_check_method" && deplibs_check_method=unknown
3343
3344 _LT_DECL([], [deplibs_check_method], [1],
3345     [Method to check whether dependent libraries are shared objects])
3346 _LT_DECL([], [file_magic_cmd], [1],
3347     [Command to use when deplibs_check_method = "file_magic"])
3348 _LT_DECL([], [file_magic_glob], [1],
3349     [How to find potential files when deplibs_check_method = "file_magic"])
3350 _LT_DECL([], [want_nocaseglob], [1],
3351     [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
3352 ])# _LT_CHECK_MAGIC_METHOD
3353
3354
3355 # LT_PATH_NM
3356 # ----------
3357 # find the pathname to a BSD- or MS-compatible name lister
3358 AC_DEFUN([LT_PATH_NM],
3359 [AC_REQUIRE([AC_PROG_CC])dnl
3360 AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
3361 [if test -n "$NM"; then
3362   # Let the user override the test.
3363   lt_cv_path_NM="$NM"
3364 else
3365   lt_nm_to_check="${ac_tool_prefix}nm"
3366   if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
3367     lt_nm_to_check="$lt_nm_to_check nm"
3368   fi
3369   for lt_tmp_nm in $lt_nm_to_check; do
3370     lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
3371     for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
3372       IFS="$lt_save_ifs"
3373       test -z "$ac_dir" && ac_dir=.
3374       tmp_nm="$ac_dir/$lt_tmp_nm"
3375       if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
3376         # Check to see if the nm accepts a BSD-compat flag.
3377         # Adding the `sed 1q' prevents false positives on HP-UX, which says:
3378         #   nm: unknown option "B" ignored
3379         # Tru64's nm complains that /dev/null is an invalid object file
3380         case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
3381         */dev/null* | *'Invalid file or object type'*)
3382           lt_cv_path_NM="$tmp_nm -B"
3383           break
3384           ;;
3385         *)
3386           case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
3387           */dev/null*)
3388             lt_cv_path_NM="$tmp_nm -p"
3389             break
3390             ;;
3391           *)
3392             lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
3393             continue # so that we can try to find one that supports BSD flags
3394             ;;
3395           esac
3396           ;;
3397         esac
3398       fi
3399     done
3400     IFS="$lt_save_ifs"
3401   done
3402   : ${lt_cv_path_NM=no}
3403 fi])
3404 if test "$lt_cv_path_NM" != "no"; then
3405   NM="$lt_cv_path_NM"
3406 else
3407   # Didn't find any BSD compatible name lister, look for dumpbin.
3408   if test -n "$DUMPBIN"; then :
3409     # Let the user override the test.
3410   else
3411     AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
3412     case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
3413     *COFF*)
3414       DUMPBIN="$DUMPBIN -symbols"
3415       ;;
3416     *)
3417       DUMPBIN=:
3418       ;;
3419     esac
3420   fi
3421   AC_SUBST([DUMPBIN])
3422   if test "$DUMPBIN" != ":"; then
3423     NM="$DUMPBIN"
3424   fi
3425 fi
3426 test -z "$NM" && NM=nm
3427 AC_SUBST([NM])
3428 _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
3429
3430 AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
3431   [lt_cv_nm_interface="BSD nm"
3432   echo "int some_variable = 0;" > conftest.$ac_ext
3433   (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
3434   (eval "$ac_compile" 2>conftest.err)
3435   cat conftest.err >&AS_MESSAGE_LOG_FD
3436   (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
3437   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
3438   cat conftest.err >&AS_MESSAGE_LOG_FD
3439   (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
3440   cat conftest.out >&AS_MESSAGE_LOG_FD
3441   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
3442     lt_cv_nm_interface="MS dumpbin"
3443   fi
3444   rm -f conftest*])
3445 ])# LT_PATH_NM
3446
3447 # Old names:
3448 AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
3449 AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
3450 dnl aclocal-1.4 backwards compatibility:
3451 dnl AC_DEFUN([AM_PROG_NM], [])
3452 dnl AC_DEFUN([AC_PROG_NM], [])
3453
3454 # _LT_CHECK_SHAREDLIB_FROM_LINKLIB
3455 # --------------------------------
3456 # how to determine the name of the shared library
3457 # associated with a specific link library.
3458 #  -- PORTME fill in with the dynamic library characteristics
3459 m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
3460 [m4_require([_LT_DECL_EGREP])
3461 m4_require([_LT_DECL_OBJDUMP])
3462 m4_require([_LT_DECL_DLLTOOL])
3463 AC_CACHE_CHECK([how to associate runtime and link libraries],
3464 lt_cv_sharedlib_from_linklib_cmd,
3465 [lt_cv_sharedlib_from_linklib_cmd='unknown'
3466
3467 case $host_os in
3468 cygwin* | mingw* | pw32* | cegcc*)
3469   # two different shell functions defined in ltmain.sh
3470   # decide which to use based on capabilities of $DLLTOOL
3471   case `$DLLTOOL --help 2>&1` in
3472   *--identify-strict*)
3473     lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
3474     ;;
3475   *)
3476     lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
3477     ;;
3478   esac
3479   ;;
3480 *)
3481   # fallback: assume linklib IS sharedlib
3482   lt_cv_sharedlib_from_linklib_cmd="$ECHO"
3483   ;;
3484 esac
3485 ])
3486 sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
3487 test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
3488
3489 _LT_DECL([], [sharedlib_from_linklib_cmd], [1],
3490     [Command to associate shared and link libraries])
3491 ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
3492
3493
3494 # _LT_PATH_MANIFEST_TOOL
3495 # ----------------------
3496 # locate the manifest tool
3497 m4_defun([_LT_PATH_MANIFEST_TOOL],
3498 [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
3499 test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
3500 AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
3501   [lt_cv_path_mainfest_tool=no
3502   echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
3503   $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
3504   cat conftest.err >&AS_MESSAGE_LOG_FD
3505   if $GREP 'Manifest Tool' conftest.out > /dev/null; then
3506     lt_cv_path_mainfest_tool=yes
3507   fi
3508   rm -f conftest*])
3509 if test "x$lt_cv_path_mainfest_tool" != xyes; then
3510   MANIFEST_TOOL=:
3511 fi
3512 _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
3513 ])# _LT_PATH_MANIFEST_TOOL
3514
3515
3516 # LT_LIB_M
3517 # --------
3518 # check for math library
3519 AC_DEFUN([LT_LIB_M],
3520 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
3521 LIBM=
3522 case $host in
3523 *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
3524   # These system don't have libm, or don't need it
3525   ;;
3526 *-ncr-sysv4.3*)
3527   AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
3528   AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
3529   ;;
3530 *)
3531   AC_CHECK_LIB(m, cos, LIBM="-lm")
3532   ;;
3533 esac
3534 AC_SUBST([LIBM])
3535 ])# LT_LIB_M
3536
3537 # Old name:
3538 AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
3539 dnl aclocal-1.4 backwards compatibility:
3540 dnl AC_DEFUN([AC_CHECK_LIBM], [])
3541
3542
3543 # _LT_COMPILER_NO_RTTI([TAGNAME])
3544 # -------------------------------
3545 m4_defun([_LT_COMPILER_NO_RTTI],
3546 [m4_require([_LT_TAG_COMPILER])dnl
3547
3548 _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
3549
3550 if test "$GCC" = yes; then
3551   case $cc_basename in
3552   nvcc*)
3553     _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
3554   *)
3555     _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
3556   esac
3557
3558   _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
3559     lt_cv_prog_compiler_rtti_exceptions,
3560     [-fno-rtti -fno-exceptions], [],
3561     [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
3562 fi
3563 _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
3564         [Compiler flag to turn off builtin functions])
3565 ])# _LT_COMPILER_NO_RTTI
3566
3567
3568 # _LT_CMD_GLOBAL_SYMBOLS
3569 # ----------------------
3570 m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
3571 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
3572 AC_REQUIRE([AC_PROG_CC])dnl
3573 AC_REQUIRE([AC_PROG_AWK])dnl
3574 AC_REQUIRE([LT_PATH_NM])dnl
3575 AC_REQUIRE([LT_PATH_LD])dnl
3576 m4_require([_LT_DECL_SED])dnl
3577 m4_require([_LT_DECL_EGREP])dnl
3578 m4_require([_LT_TAG_COMPILER])dnl
3579
3580 # Check for command to grab the raw symbol name followed by C symbol from nm.
3581 AC_MSG_CHECKING([command to parse $NM output from $compiler object])
3582 AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
3583 [
3584 # These are sane defaults that work on at least a few old systems.
3585 # [They come from Ultrix.  What could be older than Ultrix?!! ;)]
3586
3587 # Character class describing NM global symbol codes.
3588 symcode='[[BCDEGRST]]'
3589
3590 # Regexp to match symbols that can be accessed directly from C.
3591 sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
3592
3593 # Define system-specific variables.
3594 case $host_os in
3595 aix*)
3596   symcode='[[BCDT]]'
3597   ;;
3598 cygwin* | mingw* | pw32* | cegcc*)
3599   symcode='[[ABCDGISTW]]'
3600   ;;
3601 hpux*)
3602   if test "$host_cpu" = ia64; then
3603     symcode='[[ABCDEGRST]]'
3604   fi
3605   ;;
3606 irix* | nonstopux*)
3607   symcode='[[BCDEGRST]]'
3608   ;;
3609 osf*)
3610   symcode='[[BCDEGQRST]]'
3611   ;;
3612 solaris*)
3613   symcode='[[BDRT]]'
3614   ;;
3615 sco3.2v5*)
3616   symcode='[[DT]]'
3617   ;;
3618 sysv4.2uw2*)
3619   symcode='[[DT]]'
3620   ;;
3621 sysv5* | sco5v6* | unixware* | OpenUNIX*)
3622   symcode='[[ABDT]]'
3623   ;;
3624 sysv4)
3625   symcode='[[DFNSTU]]'
3626   ;;
3627 esac
3628
3629 # If we're using GNU nm, then use its standard symbol codes.
3630 case `$NM -V 2>&1` in
3631 *GNU* | *'with BFD'*)
3632   symcode='[[ABCDGIRSTW]]' ;;
3633 esac
3634
3635 # Transform an extracted symbol line into a proper C declaration.
3636 # Some systems (esp. on ia64) link data and code symbols differently,
3637 # so use this general approach.
3638 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
3639
3640 # Transform an extracted symbol line into symbol name and symbol address
3641 lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
3642 lt_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'"
3643
3644 # Handle CRLF in mingw tool chain
3645 opt_cr=
3646 case $build_os in
3647 mingw*)
3648   opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
3649   ;;
3650 esac
3651
3652 # Try without a prefix underscore, then with it.
3653 for ac_symprfx in "" "_"; do
3654
3655   # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
3656   symxfrm="\\1 $ac_symprfx\\2 \\2"
3657
3658   # Write the raw and C identifiers.
3659   if test "$lt_cv_nm_interface" = "MS dumpbin"; then
3660     # Fake it for dumpbin and say T for any non-static function
3661     # and D for any global variable.
3662     # Also find C++ and __fastcall symbols from MSVC++,
3663     # which start with @ or ?.
3664     lt_cv_sys_global_symbol_pipe="$AWK ['"\
3665 "     {last_section=section; section=\$ 3};"\
3666 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
3667 "     \$ 0!~/External *\|/{next};"\
3668 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
3669 "     {if(hide[section]) next};"\
3670 "     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
3671 "     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
3672 "     s[1]~/^[@?]/{print s[1], s[1]; next};"\
3673 "     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
3674 "     ' prfx=^$ac_symprfx]"
3675   else
3676     lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[     ]]\($symcode$symcode*\)[[       ]][[    ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
3677   fi
3678   lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
3679
3680   # Check to see that the pipe works correctly.
3681   pipe_works=no
3682
3683   rm -f conftest*
3684   cat > conftest.$ac_ext <<_LT_EOF
3685 #ifdef __cplusplus
3686 extern "C" {
3687 #endif
3688 char nm_test_var;
3689 void nm_test_func(void);
3690 void nm_test_func(void){}
3691 #ifdef __cplusplus
3692 }
3693 #endif
3694 int main(){nm_test_var='a';nm_test_func();return(0);}
3695 _LT_EOF
3696
3697   if AC_TRY_EVAL(ac_compile); then
3698     # Now try to grab the symbols.
3699     nlist=conftest.nm
3700     if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
3701       # Try sorting and uniquifying the output.
3702       if sort "$nlist" | uniq > "$nlist"T; then
3703         mv -f "$nlist"T "$nlist"
3704       else
3705         rm -f "$nlist"T
3706       fi
3707
3708       # Make sure that we snagged all the symbols we need.
3709       if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
3710         if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
3711           cat <<_LT_EOF > conftest.$ac_ext
3712 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
3713 #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
3714 /* DATA imports from DLLs on WIN32 con't be const, because runtime
3715    relocations are performed -- see ld's documentation on pseudo-relocs.  */
3716 # define LT@&t@_DLSYM_CONST
3717 #elif defined(__osf__)
3718 /* This system does not cope well with relocations in const data.  */
3719 # define LT@&t@_DLSYM_CONST
3720 #else
3721 # define LT@&t@_DLSYM_CONST const
3722 #endif
3723
3724 #ifdef __cplusplus
3725 extern "C" {
3726 #endif
3727
3728 _LT_EOF
3729           # Now generate the symbol file.
3730           eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
3731
3732           cat <<_LT_EOF >> conftest.$ac_ext
3733
3734 /* The mapping between symbol names and symbols.  */
3735 LT@&t@_DLSYM_CONST struct {
3736   const char *name;
3737   void       *address;
3738 }
3739 lt__PROGRAM__LTX_preloaded_symbols[[]] =
3740 {
3741   { "@PROGRAM@", (void *) 0 },
3742 _LT_EOF
3743           $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
3744           cat <<\_LT_EOF >> conftest.$ac_ext
3745   {0, (void *) 0}
3746 };
3747
3748 /* This works around a problem in FreeBSD linker */
3749 #ifdef FREEBSD_WORKAROUND
3750 static const void *lt_preloaded_setup() {
3751   return lt__PROGRAM__LTX_preloaded_symbols;
3752 }
3753 #endif
3754
3755 #ifdef __cplusplus
3756 }
3757 #endif
3758 _LT_EOF
3759           # Now try linking the two files.
3760           mv conftest.$ac_objext conftstm.$ac_objext
3761           lt_globsym_save_LIBS=$LIBS
3762           lt_globsym_save_CFLAGS=$CFLAGS
3763           LIBS="conftstm.$ac_objext"
3764           CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
3765           if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
3766             pipe_works=yes
3767           fi
3768           LIBS=$lt_globsym_save_LIBS
3769           CFLAGS=$lt_globsym_save_CFLAGS
3770         else
3771           echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
3772         fi
3773       else
3774         echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
3775       fi
3776     else
3777       echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
3778     fi
3779   else
3780     echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
3781     cat conftest.$ac_ext >&5
3782   fi
3783   rm -rf conftest* conftst*
3784
3785   # Do not use the global_symbol_pipe unless it works.
3786   if test "$pipe_works" = yes; then
3787     break
3788   else
3789     lt_cv_sys_global_symbol_pipe=
3790   fi
3791 done
3792 ])
3793 if test -z "$lt_cv_sys_global_symbol_pipe"; then
3794   lt_cv_sys_global_symbol_to_cdecl=
3795 fi
3796 if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
3797   AC_MSG_RESULT(failed)
3798 else
3799   AC_MSG_RESULT(ok)
3800 fi
3801
3802 # Response file support.
3803 if test "$lt_cv_nm_interface" = "MS dumpbin"; then
3804   nm_file_list_spec='@'
3805 elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
3806   nm_file_list_spec='@'
3807 fi
3808
3809 _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
3810     [Take the output of nm and produce a listing of raw symbols and C names])
3811 _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
3812     [Transform the output of nm in a proper C declaration])
3813 _LT_DECL([global_symbol_to_c_name_address],
3814     [lt_cv_sys_global_symbol_to_c_name_address], [1],
3815     [Transform the output of nm in a C name address pair])
3816 _LT_DECL([global_symbol_to_c_name_address_lib_prefix],
3817     [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
3818     [Transform the output of nm in a C name address pair when lib prefix is needed])
3819 _LT_DECL([], [nm_file_list_spec], [1],
3820     [Specify filename containing input files for $NM])
3821 ]) # _LT_CMD_GLOBAL_SYMBOLS
3822
3823
3824 # _LT_COMPILER_PIC([TAGNAME])
3825 # ---------------------------
3826 m4_defun([_LT_COMPILER_PIC],
3827 [m4_require([_LT_TAG_COMPILER])dnl
3828 _LT_TAGVAR(lt_prog_compiler_wl, $1)=
3829 _LT_TAGVAR(lt_prog_compiler_pic, $1)=
3830 _LT_TAGVAR(lt_prog_compiler_static, $1)=
3831
3832 m4_if([$1], [CXX], [
3833   # C++ specific cases for pic, static, wl, etc.
3834   if test "$GXX" = yes; then
3835     _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3836     _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
3837
3838     case $host_os in
3839     aix*)
3840       # All AIX code is PIC.
3841       if test "$host_cpu" = ia64; then
3842         # AIX 5 now supports IA64 processor
3843         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
3844       fi
3845       ;;
3846
3847     amigaos*)
3848       case $host_cpu in
3849       powerpc)
3850             # see comment about AmigaOS4 .so support
3851             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
3852         ;;
3853       m68k)
3854             # FIXME: we need at least 68020 code to build shared libraries, but
3855             # adding the `-m68020' flag to GCC prevents building anything better,
3856             # like `-m68040'.
3857             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
3858         ;;
3859       esac
3860       ;;
3861
3862     beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
3863       # PIC is the default for these OSes.
3864       ;;
3865     mingw* | cygwin* | os2* | pw32* | cegcc*)
3866       # This hack is so that the source file can tell whether it is being
3867       # built for inclusion in a dll (and should export symbols for example).
3868       # Although the cygwin gcc ignores -fPIC, still need this for old-style
3869       # (--disable-auto-import) libraries
3870       m4_if([$1], [GCJ], [],
3871         [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
3872       ;;
3873     darwin* | rhapsody*)
3874       # PIC is the default on this platform
3875       # Common symbols not allowed in MH_DYLIB files
3876       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
3877       ;;
3878     *djgpp*)
3879       # DJGPP does not support shared libraries at all
3880       _LT_TAGVAR(lt_prog_compiler_pic, $1)=
3881       ;;
3882     haiku*)
3883       # PIC is the default for Haiku.
3884       # The "-static" flag exists, but is broken.
3885       _LT_TAGVAR(lt_prog_compiler_static, $1)=
3886       ;;
3887     interix[[3-9]]*)
3888       # Interix 3.x gcc -fpic/-fPIC options generate broken code.
3889       # Instead, we relocate shared libraries at runtime.
3890       ;;
3891     sysv4*MP*)
3892       if test -d /usr/nec; then
3893         _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
3894       fi
3895       ;;
3896     hpux*)
3897       # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
3898       # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
3899       # sets the default TLS model and affects inlining.
3900       case $host_cpu in
3901       hppa*64*)
3902         ;;
3903       *)
3904         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
3905         ;;
3906       esac
3907       ;;
3908     *qnx* | *nto*)
3909       # QNX uses GNU C++, but need to define -shared option too, otherwise
3910       # it will coredump.
3911       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
3912       ;;
3913     *)
3914       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
3915       ;;
3916     esac
3917   else
3918     case $host_os in
3919       aix[[4-9]]*)
3920         # All AIX code is PIC.
3921         if test "$host_cpu" = ia64; then
3922           # AIX 5 now supports IA64 processor
3923           _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
3924         else
3925           _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
3926         fi
3927         ;;
3928       chorus*)
3929         case $cc_basename in
3930         cxch68*)
3931           # Green Hills C++ Compiler
3932           # _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"
3933           ;;
3934         esac
3935         ;;
3936       mingw* | cygwin* | os2* | pw32* | cegcc*)
3937         # This hack is so that the source file can tell whether it is being
3938         # built for inclusion in a dll (and should export symbols for example).
3939         m4_if([$1], [GCJ], [],
3940           [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
3941         ;;
3942       dgux*)
3943         case $cc_basename in
3944           ec++*)
3945             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
3946             ;;
3947           ghcx*)
3948             # Green Hills C++ Compiler
3949             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
3950             ;;
3951           *)
3952             ;;
3953         esac
3954         ;;
3955       freebsd* | dragonfly*)
3956         # FreeBSD uses GNU C++
3957         ;;
3958       hpux9* | hpux10* | hpux11*)
3959         case $cc_basename in
3960           CC*)
3961             _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3962             _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
3963             if test "$host_cpu" != ia64; then
3964               _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
3965             fi
3966             ;;
3967           aCC*)
3968             _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3969             _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
3970             case $host_cpu in
3971             hppa*64*|ia64*)
3972               # +Z the default
3973               ;;
3974             *)
3975               _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
3976               ;;
3977             esac
3978             ;;
3979           *)
3980             ;;
3981         esac
3982         ;;
3983       interix*)
3984         # This is c89, which is MS Visual C++ (no shared libs)
3985         # Anyone wants to do a port?
3986         ;;
3987       irix5* | irix6* | nonstopux*)
3988         case $cc_basename in
3989           CC*)
3990             _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3991             _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
3992             # CC pic flag -KPIC is the default.
3993             ;;
3994           *)
3995             ;;
3996         esac
3997         ;;
3998       linux* | k*bsd*-gnu | kopensolaris*-gnu)
3999         case $cc_basename in
4000           KCC*)
4001             # KAI C++ Compiler
4002             _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
4003             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4004             ;;
4005           ecpc* )
4006             # old Intel C++ for x86_64 which still supported -KPIC.
4007             _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4008             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4009             _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4010             ;;
4011           icpc* )
4012             # Intel C++, used to be incompatible with GCC.
4013             # ICC 10 doesn't accept -KPIC any more.
4014             _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4015             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4016             _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4017             ;;
4018           pgCC* | pgcpp*)
4019             # Portland Group C++ compiler
4020             _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4021             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
4022             _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4023             ;;
4024           cxx*)
4025             # Compaq C++
4026             # Make sure the PIC flag is empty.  It appears that all Alpha
4027             # Linux and Compaq Tru64 Unix objects are PIC.
4028             _LT_TAGVAR(lt_prog_compiler_pic, $1)=
4029             _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
4030             ;;
4031           xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
4032             # IBM XL 8.0, 9.0 on PPC and BlueGene
4033             _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4034             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
4035             _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
4036             ;;
4037           *)
4038             case `$CC -V 2>&1 | sed 5q` in
4039             *Sun\ C*)
4040               # Sun C++ 5.9
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)='-Qoption ld '
4044               ;;
4045             esac
4046             ;;
4047         esac
4048         ;;
4049       lynxos*)
4050         ;;
4051       m88k*)
4052         ;;
4053       mvs*)
4054         case $cc_basename in
4055           cxx*)
4056             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
4057             ;;
4058           *)
4059             ;;
4060         esac
4061         ;;
4062       netbsd*)
4063         ;;
4064       *qnx* | *nto*)
4065         # QNX uses GNU C++, but need to define -shared option too, otherwise
4066         # it will coredump.
4067         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
4068         ;;
4069       osf3* | osf4* | osf5*)
4070         case $cc_basename in
4071           KCC*)
4072             _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
4073             ;;
4074           RCC*)
4075             # Rational C++ 2.4.1
4076             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
4077             ;;
4078           cxx*)
4079             # Digital/Compaq C++
4080             _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4081             # Make sure the PIC flag is empty.  It appears that all Alpha
4082             # Linux and Compaq Tru64 Unix objects are PIC.
4083             _LT_TAGVAR(lt_prog_compiler_pic, $1)=
4084             _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
4085             ;;
4086           *)
4087             ;;
4088         esac
4089         ;;
4090       psos*)
4091         ;;
4092       solaris*)
4093         case $cc_basename in
4094           CC* | sunCC*)
4095             # Sun C++ 4.2, 5.x and Centerline C++
4096             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4097             _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4098             _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
4099             ;;
4100           gcx*)
4101             # Green Hills C++ Compiler
4102             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
4103             ;;
4104           *)
4105             ;;
4106         esac
4107         ;;
4108       sunos4*)
4109         case $cc_basename in
4110           CC*)
4111             # Sun C++ 4.x
4112             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
4113             _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4114             ;;
4115           lcc*)
4116             # Lucid
4117             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
4118             ;;
4119           *)
4120             ;;
4121         esac
4122         ;;
4123       sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
4124         case $cc_basename in
4125           CC*)
4126             _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4127             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4128             _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4129             ;;
4130         esac
4131         ;;
4132       tandem*)
4133         case $cc_basename in
4134           NCC*)
4135             # NonStop-UX NCC 3.20
4136             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4137             ;;
4138           *)
4139             ;;
4140         esac
4141         ;;
4142       vxworks*)
4143         ;;
4144       *)
4145         _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
4146         ;;
4147     esac
4148   fi
4149 ],
4150 [
4151   if test "$GCC" = yes; then
4152     _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4153     _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4154
4155     case $host_os in
4156       aix*)
4157       # All AIX code is PIC.
4158       if test "$host_cpu" = ia64; then
4159         # AIX 5 now supports IA64 processor
4160         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4161       fi
4162       ;;
4163
4164     amigaos*)
4165       case $host_cpu in
4166       powerpc)
4167             # see comment about AmigaOS4 .so support
4168             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4169         ;;
4170       m68k)
4171             # FIXME: we need at least 68020 code to build shared libraries, but
4172             # adding the `-m68020' flag to GCC prevents building anything better,
4173             # like `-m68040'.
4174             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
4175         ;;
4176       esac
4177       ;;
4178
4179     beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
4180       # PIC is the default for these OSes.
4181       ;;
4182
4183     mingw* | cygwin* | pw32* | os2* | cegcc*)
4184       # This hack is so that the source file can tell whether it is being
4185       # built for inclusion in a dll (and should export symbols for example).
4186       # Although the cygwin gcc ignores -fPIC, still need this for old-style
4187       # (--disable-auto-import) libraries
4188       m4_if([$1], [GCJ], [],
4189         [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
4190       ;;
4191
4192     darwin* | rhapsody*)
4193       # PIC is the default on this platform
4194       # Common symbols not allowed in MH_DYLIB files
4195       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
4196       ;;
4197
4198     haiku*)
4199       # PIC is the default for Haiku.
4200       # The "-static" flag exists, but is broken.
4201       _LT_TAGVAR(lt_prog_compiler_static, $1)=
4202       ;;
4203
4204     hpux*)
4205       # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
4206       # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
4207       # sets the default TLS model and affects inlining.
4208       case $host_cpu in
4209       hppa*64*)
4210         # +Z the default
4211         ;;
4212       *)
4213         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4214         ;;
4215       esac
4216       ;;
4217
4218     interix[[3-9]]*)
4219       # Interix 3.x gcc -fpic/-fPIC options generate broken code.
4220       # Instead, we relocate shared libraries at runtime.
4221       ;;
4222
4223     msdosdjgpp*)
4224       # Just because we use GCC doesn't mean we suddenly get shared libraries
4225       # on systems that don't support them.
4226       _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
4227       enable_shared=no
4228       ;;
4229
4230     *nto* | *qnx*)
4231       # QNX uses GNU C++, but need to define -shared option too, otherwise
4232       # it will coredump.
4233       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
4234       ;;
4235
4236     sysv4*MP*)
4237       if test -d /usr/nec; then
4238         _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
4239       fi
4240       ;;
4241
4242     *)
4243       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4244       ;;
4245     esac
4246
4247     case $cc_basename in
4248     nvcc*) # Cuda Compiler Driver 2.2
4249       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
4250       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC'
4251       ;;
4252     esac
4253   else
4254     # PORTME Check for flag to pass linker flags through the system compiler.
4255     case $host_os in
4256     aix*)
4257       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4258       if test "$host_cpu" = ia64; then
4259         # AIX 5 now supports IA64 processor
4260         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4261       else
4262         _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
4263       fi
4264       ;;
4265
4266     mingw* | cygwin* | pw32* | os2* | cegcc*)
4267       # This hack is so that the source file can tell whether it is being
4268       # built for inclusion in a dll (and should export symbols for example).
4269       m4_if([$1], [GCJ], [],
4270         [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
4271       ;;
4272
4273     hpux9* | hpux10* | hpux11*)
4274       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4275       # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
4276       # not for PA HP-UX.
4277       case $host_cpu in
4278       hppa*64*|ia64*)
4279         # +Z the default
4280         ;;
4281       *)
4282         _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
4283         ;;
4284       esac
4285       # Is there a better lt_prog_compiler_static that works with the bundled CC?
4286       _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
4287       ;;
4288
4289     irix5* | irix6* | nonstopux*)
4290       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4291       # PIC (with -KPIC) is the default.
4292       _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
4293       ;;
4294
4295     linux* | k*bsd*-gnu | kopensolaris*-gnu)
4296       case $cc_basename in
4297       # old Intel for x86_64 which still supported -KPIC.
4298       ecc*)
4299         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4300         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4301         _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4302         ;;
4303       # icc used to be incompatible with GCC.
4304       # ICC 10 doesn't accept -KPIC any more.
4305       icc* | ifort*)
4306         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4307         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4308         _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4309         ;;
4310       # Lahey Fortran 8.1.
4311       lf95*)
4312         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4313         _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
4314         _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
4315         ;;
4316       nagfor*)
4317         # NAG Fortran compiler
4318         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
4319         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
4320         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4321         ;;
4322       pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
4323         # Portland Group compilers (*not* the Pentium gcc compiler,
4324         # which looks to be a dead project)
4325         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4326         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
4327         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4328         ;;
4329       ccc*)
4330         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4331         # All Alpha code is PIC.
4332         _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
4333         ;;
4334       xl* | bgxl* | bgf* | mpixl*)
4335         # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
4336         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4337         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
4338         _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
4339         ;;
4340       *)
4341         case `$CC -V 2>&1 | sed 5q` in
4342         *Sun\ F* | *Sun*Fortran*)
4343           # Sun Fortran 8.3 passes all unrecognized flags to the linker
4344           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4345           _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4346           _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
4347           ;;
4348         *Sun\ C*)
4349           # Sun C 5.9
4350           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4351           _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4352           _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4353           ;;
4354         esac
4355         ;;
4356       esac
4357       ;;
4358
4359     newsos6)
4360       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4361       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4362       ;;
4363
4364     *nto* | *qnx*)
4365       # QNX uses GNU C++, but need to define -shared option too, otherwise
4366       # it will coredump.
4367       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
4368       ;;
4369
4370     osf3* | osf4* | osf5*)
4371       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4372       # All OSF/1 code is PIC.
4373       _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
4374       ;;
4375
4376     rdos*)
4377       _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
4378       ;;
4379
4380     solaris*)
4381       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4382       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4383       case $cc_basename in
4384       f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
4385         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
4386       *)
4387         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
4388       esac
4389       ;;
4390
4391     sunos4*)
4392       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
4393       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
4394       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4395       ;;
4396
4397     sysv4 | sysv4.2uw2* | sysv4.3*)
4398       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4399       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4400       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4401       ;;
4402
4403     sysv4*MP*)
4404       if test -d /usr/nec ;then
4405         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
4406         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4407       fi
4408       ;;
4409
4410     sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
4411       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4412       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4413       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4414       ;;
4415
4416     unicos*)
4417       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4418       _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
4419       ;;
4420
4421     uts4*)
4422       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
4423       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4424       ;;
4425
4426     *)
4427       _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
4428       ;;
4429     esac
4430   fi
4431 ])
4432 case $host_os in
4433   # For platforms which do not support PIC, -DPIC is meaningless:
4434   *djgpp*)
4435     _LT_TAGVAR(lt_prog_compiler_pic, $1)=
4436     ;;
4437   *)
4438     _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
4439     ;;
4440 esac
4441
4442 AC_CACHE_CHECK([for $compiler option to produce PIC],
4443   [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
4444   [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
4445 _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
4446
4447 #
4448 # Check to make sure the PIC flag actually works.
4449 #
4450 if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
4451   _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
4452     [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
4453     [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
4454     [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
4455      "" | " "*) ;;
4456      *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
4457      esac],
4458     [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
4459      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
4460 fi
4461 _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
4462         [Additional compiler flags for building library objects])
4463
4464 _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
4465         [How to pass a linker flag through the compiler])
4466 #
4467 # Check to make sure the static flag actually works.
4468 #
4469 wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
4470 _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
4471   _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
4472   $lt_tmp_static_flag,
4473   [],
4474   [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
4475 _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
4476         [Compiler flag to prevent dynamic linking])
4477 ])# _LT_COMPILER_PIC
4478
4479
4480 # _LT_LINKER_SHLIBS([TAGNAME])
4481 # ----------------------------
4482 # See if the linker supports building shared libraries.
4483 m4_defun([_LT_LINKER_SHLIBS],
4484 [AC_REQUIRE([LT_PATH_LD])dnl
4485 AC_REQUIRE([LT_PATH_NM])dnl
4486 m4_require([_LT_PATH_MANIFEST_TOOL])dnl
4487 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
4488 m4_require([_LT_DECL_EGREP])dnl
4489 m4_require([_LT_DECL_SED])dnl
4490 m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
4491 m4_require([_LT_TAG_COMPILER])dnl
4492 AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
4493 m4_if([$1], [CXX], [
4494   _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
4495   _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
4496   case $host_os in
4497   aix[[4-9]]*)
4498     # If we're using GNU nm, then we don't want the "-C" option.
4499     # -C means demangle to AIX nm, but means don't demangle with GNU nm
4500     # Also, AIX nm treats weak defined symbols like other global defined
4501     # symbols, whereas GNU nm marks them as "W".
4502     if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
4503       _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
4504     else
4505       _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'
4506     fi
4507     ;;
4508   pw32*)
4509     _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
4510     ;;
4511   cygwin* | mingw* | cegcc*)
4512     case $cc_basename in
4513     cl*) ;;
4514     *)
4515       _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
4516       _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
4517       ;;
4518     esac
4519     ;;
4520   linux* | k*bsd*-gnu)
4521     _LT_TAGVAR(link_all_deplibs, $1)=no
4522     ;;
4523   *)
4524     _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
4525     ;;
4526   esac
4527 ], [
4528   runpath_var=
4529   _LT_TAGVAR(allow_undefined_flag, $1)=
4530   _LT_TAGVAR(always_export_symbols, $1)=no
4531   _LT_TAGVAR(archive_cmds, $1)=
4532   _LT_TAGVAR(archive_expsym_cmds, $1)=
4533   _LT_TAGVAR(compiler_needs_object, $1)=no
4534   _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
4535   _LT_TAGVAR(export_dynamic_flag_spec, $1)=
4536   _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
4537   _LT_TAGVAR(hardcode_automatic, $1)=no
4538   _LT_TAGVAR(hardcode_direct, $1)=no
4539   _LT_TAGVAR(hardcode_direct_absolute, $1)=no
4540   _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
4541   _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
4542   _LT_TAGVAR(hardcode_libdir_separator, $1)=
4543   _LT_TAGVAR(hardcode_minus_L, $1)=no
4544   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
4545   _LT_TAGVAR(inherit_rpath, $1)=no
4546   _LT_TAGVAR(link_all_deplibs, $1)=unknown
4547   _LT_TAGVAR(module_cmds, $1)=
4548   _LT_TAGVAR(module_expsym_cmds, $1)=
4549   _LT_TAGVAR(old_archive_from_new_cmds, $1)=
4550   _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
4551   _LT_TAGVAR(thread_safe_flag_spec, $1)=
4552   _LT_TAGVAR(whole_archive_flag_spec, $1)=
4553   # include_expsyms should be a list of space-separated symbols to be *always*
4554   # included in the symbol list
4555   _LT_TAGVAR(include_expsyms, $1)=
4556   # exclude_expsyms can be an extended regexp of symbols to exclude
4557   # it will be wrapped by ` (' and `)$', so one must not match beginning or
4558   # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
4559   # as well as any symbol that contains `d'.
4560   _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
4561   # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
4562   # platforms (ab)use it in PIC code, but their linkers get confused if
4563   # the symbol is explicitly referenced.  Since portable code cannot
4564   # rely on this symbol name, it's probably fine to never include it in
4565   # preloaded symbol tables.
4566   # Exclude shared library initialization/finalization symbols.
4567 dnl Note also adjust exclude_expsyms for C++ above.
4568   extract_expsyms_cmds=
4569
4570   case $host_os in
4571   cygwin* | mingw* | pw32* | cegcc*)
4572     # FIXME: the MSVC++ port hasn't been tested in a loooong time
4573     # When not using gcc, we currently assume that we are using
4574     # Microsoft Visual C++.
4575     if test "$GCC" != yes; then
4576       with_gnu_ld=no
4577     fi
4578     ;;
4579   interix*)
4580     # we just hope/assume this is gcc and not c89 (= MSVC++)
4581     with_gnu_ld=yes
4582     ;;
4583   openbsd*)
4584     with_gnu_ld=no
4585     ;;
4586   esac
4587
4588   _LT_TAGVAR(ld_shlibs, $1)=yes
4589
4590   # On some targets, GNU ld is compatible enough with the native linker
4591   # that we're better off using the native interface for both.
4592   lt_use_gnu_ld_interface=no
4593   if test "$with_gnu_ld" = yes; then
4594     case $host_os in
4595       aix*)
4596         # The AIX port of GNU ld has always aspired to compatibility
4597         # with the native linker.  However, as the warning in the GNU ld
4598         # block says, versions before 2.19.5* couldn't really create working
4599         # shared libraries, regardless of the interface used.
4600         case `$LD -v 2>&1` in
4601           *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
4602           *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
4603           *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
4604           *)
4605             lt_use_gnu_ld_interface=yes
4606             ;;
4607         esac
4608         ;;
4609       *)
4610         lt_use_gnu_ld_interface=yes
4611         ;;
4612     esac
4613   fi
4614
4615   if test "$lt_use_gnu_ld_interface" = yes; then
4616     # If archive_cmds runs LD, not CC, wlarc should be empty
4617     wlarc='${wl}'
4618
4619     # Set some defaults for GNU ld with shared library support. These
4620     # are reset later if shared libraries are not supported. Putting them
4621     # here allows them to be overridden if necessary.
4622     runpath_var=LD_RUN_PATH
4623     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
4624     _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
4625     # ancient GNU ld didn't support --whole-archive et. al.
4626     if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
4627       _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
4628     else
4629       _LT_TAGVAR(whole_archive_flag_spec, $1)=
4630     fi
4631     supports_anon_versioning=no
4632     case `$LD -v 2>&1` in
4633       *GNU\ gold*) supports_anon_versioning=yes ;;
4634       *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
4635       *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
4636       *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
4637       *\ 2.11.*) ;; # other 2.11 versions
4638       *) supports_anon_versioning=yes ;;
4639     esac
4640
4641     # See if GNU ld supports shared libraries.
4642     case $host_os in
4643     aix[[3-9]]*)
4644       # On AIX/PPC, the GNU linker is very broken
4645       if test "$host_cpu" != ia64; then
4646         _LT_TAGVAR(ld_shlibs, $1)=no
4647         cat <<_LT_EOF 1>&2
4648
4649 *** Warning: the GNU linker, at least up to release 2.19, is reported
4650 *** to be unable to reliably create shared libraries on AIX.
4651 *** Therefore, libtool is disabling shared libraries support.  If you
4652 *** really care for shared libraries, you may want to install binutils
4653 *** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
4654 *** You will then need to restart the configuration process.
4655
4656 _LT_EOF
4657       fi
4658       ;;
4659
4660     amigaos*)
4661       case $host_cpu in
4662       powerpc)
4663             # see comment about AmigaOS4 .so support
4664             _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4665             _LT_TAGVAR(archive_expsym_cmds, $1)=''
4666         ;;
4667       m68k)
4668             _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)'
4669             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
4670             _LT_TAGVAR(hardcode_minus_L, $1)=yes
4671         ;;
4672       esac
4673       ;;
4674
4675     beos*)
4676       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
4677         _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
4678         # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
4679         # support --undefined.  This deserves some investigation.  FIXME
4680         _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4681       else
4682         _LT_TAGVAR(ld_shlibs, $1)=no
4683       fi
4684       ;;
4685
4686     cygwin* | mingw* | pw32* | cegcc*)
4687       # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
4688       # as there is no search path for DLLs.
4689       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
4690       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
4691       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
4692       _LT_TAGVAR(always_export_symbols, $1)=no
4693       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
4694       _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
4695       _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
4696
4697       if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
4698         _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'
4699         # If the export-symbols file already is a .def file (1st line
4700         # is EXPORTS), use it as is; otherwise, prepend...
4701         _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
4702           cp $export_symbols $output_objdir/$soname.def;
4703         else
4704           echo EXPORTS > $output_objdir/$soname.def;
4705           cat $export_symbols >> $output_objdir/$soname.def;
4706         fi~
4707         $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
4708       else
4709         _LT_TAGVAR(ld_shlibs, $1)=no
4710       fi
4711       ;;
4712
4713     haiku*)
4714       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4715       _LT_TAGVAR(link_all_deplibs, $1)=yes
4716       ;;
4717
4718     interix[[3-9]]*)
4719       _LT_TAGVAR(hardcode_direct, $1)=no
4720       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
4721       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
4722       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
4723       # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
4724       # Instead, shared libraries are loaded at an image base (0x10000000 by
4725       # default) and relocated if they conflict, which is a slow very memory
4726       # consuming and fragmenting process.  To avoid this, we pick a random,
4727       # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
4728       # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
4729       _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'
4730       _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'
4731       ;;
4732
4733     gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
4734       tmp_diet=no
4735       if test "$host_os" = linux-dietlibc; then
4736         case $cc_basename in
4737           diet\ *) tmp_diet=yes;;       # linux-dietlibc with static linking (!diet-dyn)
4738         esac
4739       fi
4740       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
4741          && test "$tmp_diet" = no
4742       then
4743         tmp_addflag=' $pic_flag'
4744         tmp_sharedflag='-shared'
4745         case $cc_basename,$host_cpu in
4746         pgcc*)                          # Portland Group C compiler
4747           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
4748           tmp_addflag=' $pic_flag'
4749           ;;
4750         pgf77* | pgf90* | pgf95* | pgfortran*)
4751                                         # Portland Group f77 and f90 compilers
4752           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
4753           tmp_addflag=' $pic_flag -Mnomain' ;;
4754         ecc*,ia64* | icc*,ia64*)        # Intel C compiler on ia64
4755           tmp_addflag=' -i_dynamic' ;;
4756         efc*,ia64* | ifort*,ia64*)      # Intel Fortran compiler on ia64
4757           tmp_addflag=' -i_dynamic -nofor_main' ;;
4758         ifc* | ifort*)                  # Intel Fortran compiler
4759           tmp_addflag=' -nofor_main' ;;
4760         lf95*)                          # Lahey Fortran 8.1
4761           _LT_TAGVAR(whole_archive_flag_spec, $1)=
4762           tmp_sharedflag='--shared' ;;
4763         xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
4764           tmp_sharedflag='-qmkshrobj'
4765           tmp_addflag= ;;
4766         nvcc*)  # Cuda Compiler Driver 2.2
4767           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
4768           _LT_TAGVAR(compiler_needs_object, $1)=yes
4769           ;;
4770         esac
4771         case `$CC -V 2>&1 | sed 5q` in
4772         *Sun\ C*)                       # Sun C 5.9
4773           _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; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
4774           _LT_TAGVAR(compiler_needs_object, $1)=yes
4775           tmp_sharedflag='-G' ;;
4776         *Sun\ F*)                       # Sun Fortran 8.3
4777           tmp_sharedflag='-G' ;;
4778         esac
4779         _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4780
4781         if test "x$supports_anon_versioning" = xyes; then
4782           _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
4783             cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
4784             echo "local: *; };" >> $output_objdir/$libname.ver~
4785             $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
4786         fi
4787
4788         case $cc_basename in
4789         xlf* | bgf* | bgxlf* | mpixlf*)
4790           # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
4791           _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
4792           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
4793           _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
4794           _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
4795           if test "x$supports_anon_versioning" = xyes; then
4796             _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
4797               cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
4798               echo "local: *; };" >> $output_objdir/$libname.ver~
4799               $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
4800           fi
4801           ;;
4802         esac
4803       else
4804         _LT_TAGVAR(ld_shlibs, $1)=no
4805       fi
4806       ;;
4807
4808     netbsd*)
4809       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
4810         _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
4811         wlarc=
4812       else
4813         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4814         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
4815       fi
4816       ;;
4817
4818     solaris*)
4819       if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
4820         _LT_TAGVAR(ld_shlibs, $1)=no
4821         cat <<_LT_EOF 1>&2
4822
4823 *** Warning: The releases 2.8.* of the GNU linker cannot reliably
4824 *** create shared libraries on Solaris systems.  Therefore, libtool
4825 *** is disabling shared libraries support.  We urge you to upgrade GNU
4826 *** binutils to release 2.9.1 or newer.  Another option is to modify
4827 *** your PATH or compiler configuration so that the native linker is
4828 *** used, and then restart.
4829
4830 _LT_EOF
4831       elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
4832         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4833         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
4834       else
4835         _LT_TAGVAR(ld_shlibs, $1)=no
4836       fi
4837       ;;
4838
4839     sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
4840       case `$LD -v 2>&1` in
4841         *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
4842         _LT_TAGVAR(ld_shlibs, $1)=no
4843         cat <<_LT_EOF 1>&2
4844
4845 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
4846 *** reliably create shared libraries on SCO systems.  Therefore, libtool
4847 *** is disabling shared libraries support.  We urge you to upgrade GNU
4848 *** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
4849 *** your PATH or compiler configuration so that the native linker is
4850 *** used, and then restart.
4851
4852 _LT_EOF
4853         ;;
4854         *)
4855           # For security reasons, it is highly recommended that you always
4856           # use absolute paths for naming shared libraries, and exclude the
4857           # DT_RUNPATH tag from executables and libraries.  But doing so
4858           # requires that you compile everything twice, which is a pain.
4859           if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
4860             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
4861             _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4862             _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'
4863           else
4864             _LT_TAGVAR(ld_shlibs, $1)=no
4865           fi
4866         ;;
4867       esac
4868       ;;
4869
4870     sunos4*)
4871       _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
4872       wlarc=
4873       _LT_TAGVAR(hardcode_direct, $1)=yes
4874       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
4875       ;;
4876
4877     *)
4878       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
4879         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4880         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
4881       else
4882         _LT_TAGVAR(ld_shlibs, $1)=no
4883       fi
4884       ;;
4885     esac
4886
4887     if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
4888       runpath_var=
4889       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
4890       _LT_TAGVAR(export_dynamic_flag_spec, $1)=
4891       _LT_TAGVAR(whole_archive_flag_spec, $1)=
4892     fi
4893   else
4894     # PORTME fill in a description of your system's linker (not GNU ld)
4895     case $host_os in
4896     aix3*)
4897       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
4898       _LT_TAGVAR(always_export_symbols, $1)=yes
4899       _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'
4900       # Note: this linker hardcodes the directories in LIBPATH if there
4901       # are no directories specified by -L.
4902       _LT_TAGVAR(hardcode_minus_L, $1)=yes
4903       if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
4904         # Neither direct hardcoding nor static linking is supported with a
4905         # broken collect2.
4906         _LT_TAGVAR(hardcode_direct, $1)=unsupported
4907       fi
4908       ;;
4909
4910     aix[[4-9]]*)
4911       if test "$host_cpu" = ia64; then
4912         # On IA64, the linker does run time linking by default, so we don't
4913         # have to do anything special.
4914         aix_use_runtimelinking=no
4915         exp_sym_flag='-Bexport'
4916         no_entry_flag=""
4917       else
4918         # If we're using GNU nm, then we don't want the "-C" option.
4919         # -C means demangle to AIX nm, but means don't demangle with GNU nm
4920         # Also, AIX nm treats weak defined symbols like other global
4921         # defined symbols, whereas GNU nm marks them as "W".
4922         if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
4923           _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
4924         else
4925           _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'
4926         fi
4927         aix_use_runtimelinking=no
4928
4929         # Test if we are trying to use run time linking or normal
4930         # AIX style linking. If -brtl is somewhere in LDFLAGS, we
4931         # need to do runtime linking.
4932         case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
4933           for ld_flag in $LDFLAGS; do
4934           if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
4935             aix_use_runtimelinking=yes
4936             break
4937           fi
4938           done
4939           ;;
4940         esac
4941
4942         exp_sym_flag='-bexport'
4943         no_entry_flag='-bnoentry'
4944       fi
4945
4946       # When large executables or shared objects are built, AIX ld can
4947       # have problems creating the table of contents.  If linking a library
4948       # or program results in "error TOC overflow" add -mminimal-toc to
4949       # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
4950       # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
4951
4952       _LT_TAGVAR(archive_cmds, $1)=''
4953       _LT_TAGVAR(hardcode_direct, $1)=yes
4954       _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
4955       _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
4956       _LT_TAGVAR(link_all_deplibs, $1)=yes
4957       _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
4958
4959       if test "$GCC" = yes; then
4960         case $host_os in aix4.[[012]]|aix4.[[012]].*)
4961         # We only want to do this on AIX 4.2 and lower, the check
4962         # below for broken collect2 doesn't work under 4.3+
4963           collect2name=`${CC} -print-prog-name=collect2`
4964           if test -f "$collect2name" &&
4965            strings "$collect2name" | $GREP resolve_lib_name >/dev/null
4966           then
4967           # We have reworked collect2
4968           :
4969           else
4970           # We have old collect2
4971           _LT_TAGVAR(hardcode_direct, $1)=unsupported
4972           # It fails to find uninstalled libraries when the uninstalled
4973           # path is not listed in the libpath.  Setting hardcode_minus_L
4974           # to unsupported forces relinking
4975           _LT_TAGVAR(hardcode_minus_L, $1)=yes
4976           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
4977           _LT_TAGVAR(hardcode_libdir_separator, $1)=
4978           fi
4979           ;;
4980         esac
4981         shared_flag='-shared'
4982         if test "$aix_use_runtimelinking" = yes; then
4983           shared_flag="$shared_flag "'${wl}-G'
4984         fi
4985         _LT_TAGVAR(link_all_deplibs, $1)=no
4986       else
4987         # not using gcc
4988         if test "$host_cpu" = ia64; then
4989         # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
4990         # chokes on -Wl,-G. The following line is correct:
4991           shared_flag='-G'
4992         else
4993           if test "$aix_use_runtimelinking" = yes; then
4994             shared_flag='${wl}-G'
4995           else
4996             shared_flag='${wl}-bM:SRE'
4997           fi
4998         fi
4999       fi
5000
5001       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
5002       # It seems that -bexpall does not export symbols beginning with
5003       # underscore (_), so it is better to generate a list of symbols to export.
5004       _LT_TAGVAR(always_export_symbols, $1)=yes
5005       if test "$aix_use_runtimelinking" = yes; then
5006         # Warning - without using the other runtime loading flags (-brtl),
5007         # -berok will link without error, but may produce a broken library.
5008         _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
5009         # Determine the default libpath from the value encoded in an
5010         # empty executable.
5011         _LT_SYS_MODULE_PATH_AIX([$1])
5012         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
5013         _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 func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
5014       else
5015         if test "$host_cpu" = ia64; then
5016           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
5017           _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
5018           _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"
5019         else
5020          # Determine the default libpath from the value encoded in an
5021          # empty executable.
5022          _LT_SYS_MODULE_PATH_AIX([$1])
5023          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
5024           # Warning - without using the other run time loading flags,
5025           # -berok will link without error, but may produce a broken library.
5026           _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
5027           _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
5028           if test "$with_gnu_ld" = yes; then
5029             # We only use this code for GNU lds that support --whole-archive.
5030             _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
5031           else
5032             # Exported symbols can be pulled into shared objects from archives
5033             _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
5034           fi
5035           _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
5036           # This is similar to how AIX traditionally builds its shared libraries.
5037           _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'
5038         fi
5039       fi
5040       ;;
5041
5042     amigaos*)
5043       case $host_cpu in
5044       powerpc)
5045             # see comment about AmigaOS4 .so support
5046             _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
5047             _LT_TAGVAR(archive_expsym_cmds, $1)=''
5048         ;;
5049       m68k)
5050             _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)'
5051             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
5052             _LT_TAGVAR(hardcode_minus_L, $1)=yes
5053         ;;
5054       esac
5055       ;;
5056
5057     bsdi[[45]]*)
5058       _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
5059       ;;
5060
5061     cygwin* | mingw* | pw32* | cegcc*)
5062       # When not using gcc, we currently assume that we are using
5063       # Microsoft Visual C++.
5064       # hardcode_libdir_flag_spec is actually meaningless, as there is
5065       # no search path for DLLs.
5066       case $cc_basename in
5067       cl*)
5068         # Native MSVC
5069         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
5070         _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
5071         _LT_TAGVAR(always_export_symbols, $1)=yes
5072         _LT_TAGVAR(file_list_spec, $1)='@'
5073         # Tell ltmain to make .lib files, not .a files.
5074         libext=lib
5075         # Tell ltmain to make .dll files, not .so files.
5076         shrext_cmds=".dll"
5077         # FIXME: Setting linknames here is a bad hack.
5078         _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
5079         _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
5080             sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
5081           else
5082             sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
5083           fi~
5084           $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
5085           linknames='
5086         # The linker will not automatically build a static lib if we build a DLL.
5087         # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
5088         _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
5089         _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'
5090         # Don't use ranlib
5091         _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
5092         _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
5093           lt_tool_outputfile="@TOOL_OUTPUT@"~
5094           case $lt_outputfile in
5095             *.exe|*.EXE) ;;
5096             *)
5097               lt_outputfile="$lt_outputfile.exe"
5098               lt_tool_outputfile="$lt_tool_outputfile.exe"
5099               ;;
5100           esac~
5101           if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
5102             $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
5103             $RM "$lt_outputfile.manifest";
5104           fi'
5105         ;;
5106       *)
5107         # Assume MSVC wrapper
5108         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
5109         _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
5110         # Tell ltmain to make .lib files, not .a files.
5111         libext=lib
5112         # Tell ltmain to make .dll files, not .so files.
5113         shrext_cmds=".dll"
5114         # FIXME: Setting linknames here is a bad hack.
5115         _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
5116         # The linker will automatically build a .lib file if we build a DLL.
5117         _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
5118         # FIXME: Should let the user specify the lib program.
5119         _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
5120         _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
5121         ;;
5122       esac
5123       ;;
5124
5125     darwin* | rhapsody*)
5126       _LT_DARWIN_LINKER_FEATURES($1)
5127       ;;
5128
5129     dgux*)
5130       _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
5131       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
5132       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5133       ;;
5134
5135     freebsd1*)
5136       _LT_TAGVAR(ld_shlibs, $1)=no
5137       ;;
5138
5139     # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
5140     # support.  Future versions do this automatically, but an explicit c++rt0.o
5141     # does not break anything, and helps significantly (at the cost of a little
5142     # extra space).
5143     freebsd2.2*)
5144       _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
5145       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
5146       _LT_TAGVAR(hardcode_direct, $1)=yes
5147       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5148       ;;
5149
5150     # Unfortunately, older versions of FreeBSD 2 do not have this feature.
5151     freebsd2*)
5152       _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
5153       _LT_TAGVAR(hardcode_direct, $1)=yes
5154       _LT_TAGVAR(hardcode_minus_L, $1)=yes
5155       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5156       ;;
5157
5158     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
5159     freebsd* | dragonfly*)
5160       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
5161       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
5162       _LT_TAGVAR(hardcode_direct, $1)=yes
5163       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5164       ;;
5165
5166     hpux9*)
5167       if test "$GCC" = yes; then
5168         _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
5169       else
5170         _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'
5171       fi
5172       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
5173       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
5174       _LT_TAGVAR(hardcode_direct, $1)=yes
5175
5176       # hardcode_minus_L: Not really in the search PATH,
5177       # but as the default location of the library.
5178       _LT_TAGVAR(hardcode_minus_L, $1)=yes
5179       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
5180       ;;
5181
5182     hpux10*)
5183       if test "$GCC" = yes && test "$with_gnu_ld" = no; then
5184         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
5185       else
5186         _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
5187       fi
5188       if test "$with_gnu_ld" = no; then
5189         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
5190         _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
5191         _LT_TAGVAR(hardcode_libdir_separator, $1)=:
5192         _LT_TAGVAR(hardcode_direct, $1)=yes
5193         _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
5194         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
5195         # hardcode_minus_L: Not really in the search PATH,
5196         # but as the default location of the library.
5197         _LT_TAGVAR(hardcode_minus_L, $1)=yes
5198       fi
5199       ;;
5200
5201     hpux11*)
5202       if test "$GCC" = yes && test "$with_gnu_ld" = no; then
5203         case $host_cpu in
5204         hppa*64*)
5205           _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
5206           ;;
5207         ia64*)
5208           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
5209           ;;
5210         *)
5211           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
5212           ;;
5213         esac
5214       else
5215         case $host_cpu in
5216         hppa*64*)
5217           _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
5218           ;;
5219         ia64*)
5220           _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
5221           ;;
5222         *)
5223         m4_if($1, [], [
5224           # Older versions of the 11.00 compiler do not understand -b yet
5225           # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
5226           _LT_LINKER_OPTION([if $CC understands -b],
5227             _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
5228             [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
5229             [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
5230           [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
5231           ;;
5232         esac
5233       fi
5234       if test "$with_gnu_ld" = no; then
5235         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
5236         _LT_TAGVAR(hardcode_libdir_separator, $1)=:
5237
5238         case $host_cpu in
5239         hppa*64*|ia64*)
5240           _LT_TAGVAR(hardcode_direct, $1)=no
5241           _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5242           ;;
5243         *)
5244           _LT_TAGVAR(hardcode_direct, $1)=yes
5245           _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
5246           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
5247
5248           # hardcode_minus_L: Not really in the search PATH,
5249           # but as the default location of the library.
5250           _LT_TAGVAR(hardcode_minus_L, $1)=yes
5251           ;;
5252         esac
5253       fi
5254       ;;
5255
5256     irix5* | irix6* | nonstopux*)
5257       if test "$GCC" = yes; then
5258         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
5259         # Try to use the -exported_symbol ld option, if it does not
5260         # work, assume that -exports_file does not work either and
5261         # implicitly export all symbols.
5262         # This should be the same for all languages, so no per-tag cache variable.
5263         AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
5264           [lt_cv_irix_exported_symbol],
5265           [save_LDFLAGS="$LDFLAGS"
5266            LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
5267            AC_LINK_IFELSE(
5268              [AC_LANG_SOURCE(
5269                 [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
5270                               [C++], [[int foo (void) { return 0; }]],
5271                               [Fortran 77], [[
5272       subroutine foo
5273       end]],
5274                               [Fortran], [[
5275       subroutine foo
5276       end]])])],
5277               [lt_cv_irix_exported_symbol=yes],
5278               [lt_cv_irix_exported_symbol=no])
5279            LDFLAGS="$save_LDFLAGS"])
5280         if test "$lt_cv_irix_exported_symbol" = yes; then
5281           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
5282         fi
5283       else
5284         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
5285         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
5286       fi
5287       _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
5288       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
5289       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
5290       _LT_TAGVAR(inherit_rpath, $1)=yes
5291       _LT_TAGVAR(link_all_deplibs, $1)=yes
5292       ;;
5293
5294     netbsd*)
5295       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
5296         _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
5297       else
5298         _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
5299       fi
5300       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
5301       _LT_TAGVAR(hardcode_direct, $1)=yes
5302       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5303       ;;
5304
5305     newsos6)
5306       _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
5307       _LT_TAGVAR(hardcode_direct, $1)=yes
5308       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
5309       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
5310       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5311       ;;
5312
5313     *nto* | *qnx*)
5314       ;;
5315
5316     openbsd*)
5317       if test -f /usr/libexec/ld.so; then
5318         _LT_TAGVAR(hardcode_direct, $1)=yes
5319         _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5320         _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
5321         if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
5322           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
5323           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
5324           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
5325           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
5326         else
5327           case $host_os in
5328            openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
5329              _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
5330              _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
5331              ;;
5332            *)
5333              _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
5334              _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
5335              ;;
5336           esac
5337         fi
5338       else
5339         _LT_TAGVAR(ld_shlibs, $1)=no
5340       fi
5341       ;;
5342
5343     os2*)
5344       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
5345       _LT_TAGVAR(hardcode_minus_L, $1)=yes
5346       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
5347       _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'
5348       _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
5349       ;;
5350
5351     osf3*)
5352       if test "$GCC" = yes; then
5353         _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
5354         _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
5355       else
5356         _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
5357         _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
5358       fi
5359       _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
5360       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
5361       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
5362       ;;
5363
5364     osf4* | osf5*)      # as osf3* with the addition of -msym flag
5365       if test "$GCC" = yes; then
5366         _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
5367         _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
5368         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
5369       else
5370         _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
5371         _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
5372         _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~
5373         $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
5374
5375         # Both c and cxx compiler support -rpath directly
5376         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
5377       fi
5378       _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
5379       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
5380       ;;
5381
5382     solaris*)
5383       _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
5384       if test "$GCC" = yes; then
5385         wlarc='${wl}'
5386         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
5387         _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
5388           $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
5389       else
5390         case `$CC -V 2>&1` in
5391         *"Compilers 5.0"*)
5392           wlarc=''
5393           _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
5394           _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
5395           $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
5396           ;;
5397         *)
5398           wlarc='${wl}'
5399           _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
5400           _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
5401           $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
5402           ;;
5403         esac
5404       fi
5405       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
5406       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5407       case $host_os in
5408       solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
5409       *)
5410         # The compiler driver will combine and reorder linker options,
5411         # but understands `-z linker_flag'.  GCC discards it without `$wl',
5412         # but is careful enough not to reorder.
5413         # Supported since Solaris 2.6 (maybe 2.5.1?)
5414         if test "$GCC" = yes; then
5415           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
5416         else
5417           _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
5418         fi
5419         ;;
5420       esac
5421       _LT_TAGVAR(link_all_deplibs, $1)=yes
5422       ;;
5423
5424     sunos4*)
5425       if test "x$host_vendor" = xsequent; then
5426         # Use $CC to link under sequent, because it throws in some extra .o
5427         # files that make .init and .fini sections work.
5428         _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
5429       else
5430         _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
5431       fi
5432       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
5433       _LT_TAGVAR(hardcode_direct, $1)=yes
5434       _LT_TAGVAR(hardcode_minus_L, $1)=yes
5435       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5436       ;;
5437
5438     sysv4)
5439       case $host_vendor in
5440         sni)
5441           _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
5442           _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
5443         ;;
5444         siemens)
5445           ## LD is ld it makes a PLAMLIB
5446           ## CC just makes a GrossModule.
5447           _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
5448           _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
5449           _LT_TAGVAR(hardcode_direct, $1)=no
5450         ;;
5451         motorola)
5452           _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
5453           _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
5454         ;;
5455       esac
5456       runpath_var='LD_RUN_PATH'
5457       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5458       ;;
5459
5460     sysv4.3*)
5461       _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
5462       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5463       _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
5464       ;;
5465
5466     sysv4*MP*)
5467       if test -d /usr/nec; then
5468         _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
5469         _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5470         runpath_var=LD_RUN_PATH
5471         hardcode_runpath_var=yes
5472         _LT_TAGVAR(ld_shlibs, $1)=yes
5473       fi
5474       ;;
5475
5476     sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
5477       _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
5478       _LT_TAGVAR(archive_cmds_need_lc, $1)=no
5479       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5480       runpath_var='LD_RUN_PATH'
5481
5482       if test "$GCC" = yes; then
5483         _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
5484         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
5485       else
5486         _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
5487         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
5488       fi
5489       ;;
5490
5491     sysv5* | sco3.2v5* | sco5v6*)
5492       # Note: We can NOT use -z defs as we might desire, because we do not
5493       # link with -lc, and that would cause any symbols used from libc to
5494       # always be unresolved, which means just about no library would
5495       # ever link correctly.  If we're not using GNU ld we use -z text
5496       # though, which does catch some bad symbols but isn't as heavy-handed
5497       # as -z defs.
5498       _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
5499       _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
5500       _LT_TAGVAR(archive_cmds_need_lc, $1)=no
5501       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5502       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
5503       _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
5504       _LT_TAGVAR(link_all_deplibs, $1)=yes
5505       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
5506       runpath_var='LD_RUN_PATH'
5507
5508       if test "$GCC" = yes; then
5509         _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
5510         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
5511       else
5512         _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
5513         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
5514       fi
5515       ;;
5516
5517     uts4*)
5518       _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
5519       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
5520       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5521       ;;
5522
5523     *)
5524       _LT_TAGVAR(ld_shlibs, $1)=no
5525       ;;
5526     esac
5527
5528     if test x$host_vendor = xsni; then
5529       case $host in
5530       sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
5531         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
5532         ;;
5533       esac
5534     fi
5535   fi
5536 ])
5537 AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
5538 test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
5539
5540 _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
5541
5542 _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
5543 _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
5544 _LT_DECL([], [extract_expsyms_cmds], [2],
5545     [The commands to extract the exported symbol list from a shared archive])
5546
5547 #
5548 # Do we need to explicitly link libc?
5549 #
5550 case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
5551 x|xyes)
5552   # Assume -lc should be added
5553   _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
5554
5555   if test "$enable_shared" = yes && test "$GCC" = yes; then
5556     case $_LT_TAGVAR(archive_cmds, $1) in
5557     *'~'*)
5558       # FIXME: we may have to deal with multi-command sequences.
5559       ;;
5560     '$CC '*)
5561       # Test whether the compiler implicitly links with -lc since on some
5562       # systems, -lgcc has to come before -lc. If gcc already passes -lc
5563       # to ld, don't add -lc before -lgcc.
5564       AC_CACHE_CHECK([whether -lc should be explicitly linked in],
5565         [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
5566         [$RM conftest*
5567         echo "$lt_simple_compile_test_code" > conftest.$ac_ext
5568
5569         if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
5570           soname=conftest
5571           lib=conftest
5572           libobjs=conftest.$ac_objext
5573           deplibs=
5574           wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
5575           pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
5576           compiler_flags=-v
5577           linker_flags=-v
5578           verstring=
5579           output_objdir=.
5580           libname=conftest
5581           lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
5582           _LT_TAGVAR(allow_undefined_flag, $1)=
5583           if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
5584           then
5585             lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
5586           else
5587             lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
5588           fi
5589           _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
5590         else
5591           cat conftest.err 1>&5
5592         fi
5593         $RM conftest*
5594         ])
5595       _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
5596       ;;
5597     esac
5598   fi
5599   ;;
5600 esac
5601
5602 _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
5603     [Whether or not to add -lc for building shared libraries])
5604 _LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
5605     [enable_shared_with_static_runtimes], [0],
5606     [Whether or not to disallow shared libs when runtime libs are static])
5607 _LT_TAGDECL([], [export_dynamic_flag_spec], [1],
5608     [Compiler flag to allow reflexive dlopens])
5609 _LT_TAGDECL([], [whole_archive_flag_spec], [1],
5610     [Compiler flag to generate shared objects directly from archives])
5611 _LT_TAGDECL([], [compiler_needs_object], [1],
5612     [Whether the compiler copes with passing no objects directly])
5613 _LT_TAGDECL([], [old_archive_from_new_cmds], [2],
5614     [Create an old-style archive from a shared archive])
5615 _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
5616     [Create a temporary old-style archive to link instead of a shared archive])
5617 _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
5618 _LT_TAGDECL([], [archive_expsym_cmds], [2])
5619 _LT_TAGDECL([], [module_cmds], [2],
5620     [Commands used to build a loadable module if different from building
5621     a shared archive.])
5622 _LT_TAGDECL([], [module_expsym_cmds], [2])
5623 _LT_TAGDECL([], [with_gnu_ld], [1],
5624     [Whether we are building with GNU ld or not])
5625 _LT_TAGDECL([], [allow_undefined_flag], [1],
5626     [Flag that allows shared libraries with undefined symbols to be built])
5627 _LT_TAGDECL([], [no_undefined_flag], [1],
5628     [Flag that enforces no undefined symbols])
5629 _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
5630     [Flag to hardcode $libdir into a binary during linking.
5631     This must work even if $libdir does not exist])
5632 _LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
5633     [[If ld is used when linking, flag to hardcode $libdir into a binary
5634     during linking.  This must work even if $libdir does not exist]])
5635 _LT_TAGDECL([], [hardcode_libdir_separator], [1],
5636     [Whether we need a single "-rpath" flag with a separated argument])
5637 _LT_TAGDECL([], [hardcode_direct], [0],
5638     [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
5639     DIR into the resulting binary])
5640 _LT_TAGDECL([], [hardcode_direct_absolute], [0],
5641     [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
5642     DIR into the resulting binary and the resulting library dependency is
5643     "absolute", i.e impossible to change by setting ${shlibpath_var} if the
5644     library is relocated])
5645 _LT_TAGDECL([], [hardcode_minus_L], [0],
5646     [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
5647     into the resulting binary])
5648 _LT_TAGDECL([], [hardcode_shlibpath_var], [0],
5649     [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
5650     into the resulting binary])
5651 _LT_TAGDECL([], [hardcode_automatic], [0],
5652     [Set to "yes" if building a shared library automatically hardcodes DIR
5653     into the library and all subsequent libraries and executables linked
5654     against it])
5655 _LT_TAGDECL([], [inherit_rpath], [0],
5656     [Set to yes if linker adds runtime paths of dependent libraries
5657     to runtime path list])
5658 _LT_TAGDECL([], [link_all_deplibs], [0],
5659     [Whether libtool must link a program against all its dependency libraries])
5660 _LT_TAGDECL([], [always_export_symbols], [0],
5661     [Set to "yes" if exported symbols are required])
5662 _LT_TAGDECL([], [export_symbols_cmds], [2],
5663     [The commands to list exported symbols])
5664 _LT_TAGDECL([], [exclude_expsyms], [1],
5665     [Symbols that should not be listed in the preloaded symbols])
5666 _LT_TAGDECL([], [include_expsyms], [1],
5667     [Symbols that must always be exported])
5668 _LT_TAGDECL([], [prelink_cmds], [2],
5669     [Commands necessary for linking programs (against libraries) with templates])
5670 _LT_TAGDECL([], [postlink_cmds], [2],
5671     [Commands necessary for finishing linking programs])
5672 _LT_TAGDECL([], [file_list_spec], [1],
5673     [Specify filename containing input files])
5674 dnl FIXME: Not yet implemented
5675 dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
5676 dnl    [Compiler flag to generate thread safe objects])
5677 ])# _LT_LINKER_SHLIBS
5678
5679
5680 # _LT_LANG_C_CONFIG([TAG])
5681 # ------------------------
5682 # Ensure that the configuration variables for a C compiler are suitably
5683 # defined.  These variables are subsequently used by _LT_CONFIG to write
5684 # the compiler configuration to `libtool'.
5685 m4_defun([_LT_LANG_C_CONFIG],
5686 [m4_require([_LT_DECL_EGREP])dnl
5687 lt_save_CC="$CC"
5688 AC_LANG_PUSH(C)
5689
5690 # Source file extension for C test sources.
5691 ac_ext=c
5692
5693 # Object file extension for compiled C test sources.
5694 objext=o
5695 _LT_TAGVAR(objext, $1)=$objext
5696
5697 # Code to be used in simple compile tests
5698 lt_simple_compile_test_code="int some_variable = 0;"
5699
5700 # Code to be used in simple link tests
5701 lt_simple_link_test_code='int main(){return(0);}'
5702
5703 _LT_TAG_COMPILER
5704 # Save the default compiler, since it gets overwritten when the other
5705 # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
5706 compiler_DEFAULT=$CC
5707
5708 # save warnings/boilerplate of simple test code
5709 _LT_COMPILER_BOILERPLATE
5710 _LT_LINKER_BOILERPLATE
5711
5712 ## CAVEAT EMPTOR:
5713 ## There is no encapsulation within the following macros, do not change
5714 ## the running order or otherwise move them around unless you know exactly
5715 ## what you are doing...
5716 if test -n "$compiler"; then
5717   _LT_COMPILER_NO_RTTI($1)
5718   _LT_COMPILER_PIC($1)
5719   _LT_COMPILER_C_O($1)
5720   _LT_COMPILER_FILE_LOCKS($1)
5721   _LT_LINKER_SHLIBS($1)
5722   _LT_SYS_DYNAMIC_LINKER($1)
5723   _LT_LINKER_HARDCODE_LIBPATH($1)
5724   LT_SYS_DLOPEN_SELF
5725   _LT_CMD_STRIPLIB
5726
5727   # Report which library types will actually be built
5728   AC_MSG_CHECKING([if libtool supports shared libraries])
5729   AC_MSG_RESULT([$can_build_shared])
5730
5731   AC_MSG_CHECKING([whether to build shared libraries])
5732   test "$can_build_shared" = "no" && enable_shared=no
5733
5734   # On AIX, shared libraries and static libraries use the same namespace, and
5735   # are all built from PIC.
5736   case $host_os in
5737   aix3*)
5738     test "$enable_shared" = yes && enable_static=no
5739     if test -n "$RANLIB"; then
5740       archive_cmds="$archive_cmds~\$RANLIB \$lib"
5741       postinstall_cmds='$RANLIB $lib'
5742     fi
5743     ;;
5744
5745   aix[[4-9]]*)
5746     if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
5747       test "$enable_shared" = yes && enable_static=no
5748     fi
5749     ;;
5750   esac
5751   AC_MSG_RESULT([$enable_shared])
5752
5753   AC_MSG_CHECKING([whether to build static libraries])
5754   # Make sure either enable_shared or enable_static is yes.
5755   test "$enable_shared" = yes || enable_static=yes
5756   AC_MSG_RESULT([$enable_static])
5757
5758   _LT_CONFIG($1)
5759 fi
5760 AC_LANG_POP
5761 CC="$lt_save_CC"
5762 ])# _LT_LANG_C_CONFIG
5763
5764
5765 # _LT_LANG_CXX_CONFIG([TAG])
5766 # --------------------------
5767 # Ensure that the configuration variables for a C++ compiler are suitably
5768 # defined.  These variables are subsequently used by _LT_CONFIG to write
5769 # the compiler configuration to `libtool'.
5770 m4_defun([_LT_LANG_CXX_CONFIG],
5771 [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
5772 m4_require([_LT_DECL_EGREP])dnl
5773 m4_require([_LT_PATH_MANIFEST_TOOL])dnl
5774 if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
5775     ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
5776     (test "X$CXX" != "Xg++"))) ; then
5777   AC_PROG_CXXCPP
5778 else
5779   _lt_caught_CXX_error=yes
5780 fi
5781
5782 AC_LANG_PUSH(C++)
5783 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
5784 _LT_TAGVAR(allow_undefined_flag, $1)=
5785 _LT_TAGVAR(always_export_symbols, $1)=no
5786 _LT_TAGVAR(archive_expsym_cmds, $1)=
5787 _LT_TAGVAR(compiler_needs_object, $1)=no
5788 _LT_TAGVAR(export_dynamic_flag_spec, $1)=
5789 _LT_TAGVAR(hardcode_direct, $1)=no
5790 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
5791 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
5792 _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
5793 _LT_TAGVAR(hardcode_libdir_separator, $1)=
5794 _LT_TAGVAR(hardcode_minus_L, $1)=no
5795 _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
5796 _LT_TAGVAR(hardcode_automatic, $1)=no
5797 _LT_TAGVAR(inherit_rpath, $1)=no
5798 _LT_TAGVAR(module_cmds, $1)=
5799 _LT_TAGVAR(module_expsym_cmds, $1)=
5800 _LT_TAGVAR(link_all_deplibs, $1)=unknown
5801 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
5802 _LT_TAGVAR(reload_flag, $1)=$reload_flag
5803 _LT_TAGVAR(reload_cmds, $1)=$reload_cmds
5804 _LT_TAGVAR(no_undefined_flag, $1)=
5805 _LT_TAGVAR(whole_archive_flag_spec, $1)=
5806 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
5807
5808 # Source file extension for C++ test sources.
5809 ac_ext=cpp
5810
5811 # Object file extension for compiled C++ test sources.
5812 objext=o
5813 _LT_TAGVAR(objext, $1)=$objext
5814
5815 # No sense in running all these tests if we already determined that
5816 # the CXX compiler isn't working.  Some variables (like enable_shared)
5817 # are currently assumed to apply to all compilers on this platform,
5818 # and will be corrupted by setting them based on a non-working compiler.
5819 if test "$_lt_caught_CXX_error" != yes; then
5820   # Code to be used in simple compile tests
5821   lt_simple_compile_test_code="int some_variable = 0;"
5822
5823   # Code to be used in simple link tests
5824   lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
5825
5826   # ltmain only uses $CC for tagged configurations so make sure $CC is set.
5827   _LT_TAG_COMPILER
5828
5829   # save warnings/boilerplate of simple test code
5830   _LT_COMPILER_BOILERPLATE
5831   _LT_LINKER_BOILERPLATE
5832
5833   # Allow CC to be a program name with arguments.
5834   lt_save_CC=$CC
5835   lt_save_CFLAGS=$CFLAGS
5836   lt_save_LD=$LD
5837   lt_save_GCC=$GCC
5838   GCC=$GXX
5839   lt_save_with_gnu_ld=$with_gnu_ld
5840   lt_save_path_LD=$lt_cv_path_LD
5841   if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
5842     lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
5843   else
5844     $as_unset lt_cv_prog_gnu_ld
5845   fi
5846   if test -n "${lt_cv_path_LDCXX+set}"; then
5847     lt_cv_path_LD=$lt_cv_path_LDCXX
5848   else
5849     $as_unset lt_cv_path_LD
5850   fi
5851   test -z "${LDCXX+set}" || LD=$LDCXX
5852   CC=${CXX-"c++"}
5853   CFLAGS=$CXXFLAGS
5854   compiler=$CC
5855   _LT_TAGVAR(compiler, $1)=$CC
5856   _LT_CC_BASENAME([$compiler])
5857
5858   if test -n "$compiler"; then
5859     # We don't want -fno-exception when compiling C++ code, so set the
5860     # no_builtin_flag separately
5861     if test "$GXX" = yes; then
5862       _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
5863     else
5864       _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
5865     fi
5866
5867     if test "$GXX" = yes; then
5868       # Set up default GNU C++ configuration
5869
5870       LT_PATH_LD
5871
5872       # Check if GNU C++ uses GNU ld as the underlying linker, since the
5873       # archiving commands below assume that GNU ld is being used.
5874       if test "$with_gnu_ld" = yes; then
5875         _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
5876         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
5877
5878         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
5879         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
5880
5881         # If archive_cmds runs LD, not CC, wlarc should be empty
5882         # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
5883         #     investigate it a little bit more. (MM)
5884         wlarc='${wl}'
5885
5886         # ancient GNU ld didn't support --whole-archive et. al.
5887         if eval "`$CC -print-prog-name=ld` --help 2>&1" |
5888           $GREP 'no-whole-archive' > /dev/null; then
5889           _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
5890         else
5891           _LT_TAGVAR(whole_archive_flag_spec, $1)=
5892         fi
5893       else
5894         with_gnu_ld=no
5895         wlarc=
5896
5897         # A generic and very simple default shared library creation
5898         # command for GNU C++ for the case where it uses the native
5899         # linker, instead of GNU ld.  If possible, this setting should
5900         # overridden to take advantage of the native linker features on
5901         # the platform it is being used on.
5902         _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
5903       fi
5904
5905       # Commands to make compiler produce verbose output that lists
5906       # what "hidden" libraries, object files and flags are used when
5907       # linking a shared library.
5908       output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
5909
5910     else
5911       GXX=no
5912       with_gnu_ld=no
5913       wlarc=
5914     fi
5915
5916     # PORTME: fill in a description of your system's C++ link characteristics
5917     AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
5918     _LT_TAGVAR(ld_shlibs, $1)=yes
5919     case $host_os in
5920       aix3*)
5921         # FIXME: insert proper C++ library support
5922         _LT_TAGVAR(ld_shlibs, $1)=no
5923         ;;
5924       aix[[4-9]]*)
5925         if test "$host_cpu" = ia64; then
5926           # On IA64, the linker does run time linking by default, so we don't
5927           # have to do anything special.
5928           aix_use_runtimelinking=no
5929           exp_sym_flag='-Bexport'
5930           no_entry_flag=""
5931         else
5932           aix_use_runtimelinking=no
5933
5934           # Test if we are trying to use run time linking or normal
5935           # AIX style linking. If -brtl is somewhere in LDFLAGS, we
5936           # need to do runtime linking.
5937           case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
5938             for ld_flag in $LDFLAGS; do
5939               case $ld_flag in
5940               *-brtl*)
5941                 aix_use_runtimelinking=yes
5942                 break
5943                 ;;
5944               esac
5945             done
5946             ;;
5947           esac
5948
5949           exp_sym_flag='-bexport'
5950           no_entry_flag='-bnoentry'
5951         fi
5952
5953         # When large executables or shared objects are built, AIX ld can
5954         # have problems creating the table of contents.  If linking a library
5955         # or program results in "error TOC overflow" add -mminimal-toc to
5956         # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
5957         # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
5958
5959         _LT_TAGVAR(archive_cmds, $1)=''
5960         _LT_TAGVAR(hardcode_direct, $1)=yes
5961         _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
5962         _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
5963         _LT_TAGVAR(link_all_deplibs, $1)=yes
5964         _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
5965
5966         if test "$GXX" = yes; then
5967           case $host_os in aix4.[[012]]|aix4.[[012]].*)
5968           # We only want to do this on AIX 4.2 and lower, the check
5969           # below for broken collect2 doesn't work under 4.3+
5970           collect2name=`${CC} -print-prog-name=collect2`
5971           if test -f "$collect2name" &&
5972              strings "$collect2name" | $GREP resolve_lib_name >/dev/null
5973           then
5974             # We have reworked collect2
5975             :
5976           else
5977             # We have old collect2
5978             _LT_TAGVAR(hardcode_direct, $1)=unsupported
5979             # It fails to find uninstalled libraries when the uninstalled
5980             # path is not listed in the libpath.  Setting hardcode_minus_L
5981             # to unsupported forces relinking
5982             _LT_TAGVAR(hardcode_minus_L, $1)=yes
5983             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
5984             _LT_TAGVAR(hardcode_libdir_separator, $1)=
5985           fi
5986           esac
5987           shared_flag='-shared'
5988           if test "$aix_use_runtimelinking" = yes; then
5989             shared_flag="$shared_flag "'${wl}-G'
5990           fi
5991           _LT_TAGVAR(link_all_deplibs, $1)=no
5992         else
5993           # not using gcc
5994           if test "$host_cpu" = ia64; then
5995           # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
5996           # chokes on -Wl,-G. The following line is correct:
5997           shared_flag='-G'
5998           else
5999             if test "$aix_use_runtimelinking" = yes; then
6000               shared_flag='${wl}-G'
6001             else
6002               shared_flag='${wl}-bM:SRE'
6003             fi
6004           fi
6005         fi
6006
6007         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
6008         # It seems that -bexpall does not export symbols beginning with
6009         # underscore (_), so it is better to generate a list of symbols to
6010         # export.
6011         _LT_TAGVAR(always_export_symbols, $1)=yes
6012         if test "$aix_use_runtimelinking" = yes; then
6013           # Warning - without using the other runtime loading flags (-brtl),
6014           # -berok will link without error, but may produce a broken library.
6015           _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
6016           # Determine the default libpath from the value encoded in an empty
6017           # executable.
6018           _LT_SYS_MODULE_PATH_AIX([$1])
6019           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
6020
6021           _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 func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
6022         else
6023           if test "$host_cpu" = ia64; then
6024             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
6025             _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
6026             _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"
6027           else
6028             # Determine the default libpath from the value encoded in an
6029             # empty executable.
6030             _LT_SYS_MODULE_PATH_AIX([$1])
6031             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
6032             # Warning - without using the other run time loading flags,
6033             # -berok will link without error, but may produce a broken library.
6034             _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
6035             _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
6036             if test "$with_gnu_ld" = yes; then
6037               # We only use this code for GNU lds that support --whole-archive.
6038               _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
6039             else
6040               # Exported symbols can be pulled into shared objects from archives
6041               _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
6042             fi
6043             _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
6044             # This is similar to how AIX traditionally builds its shared
6045             # libraries.
6046             _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'
6047           fi
6048         fi
6049         ;;
6050
6051       beos*)
6052         if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
6053           _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
6054           # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
6055           # support --undefined.  This deserves some investigation.  FIXME
6056           _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
6057         else
6058           _LT_TAGVAR(ld_shlibs, $1)=no
6059         fi
6060         ;;
6061
6062       chorus*)
6063         case $cc_basename in
6064           *)
6065           # FIXME: insert proper C++ library support
6066           _LT_TAGVAR(ld_shlibs, $1)=no
6067           ;;
6068         esac
6069         ;;
6070
6071       cygwin* | mingw* | pw32* | cegcc*)
6072         case $GXX,$cc_basename in
6073         ,cl* | no,cl*)
6074           # Native MSVC
6075           # hardcode_libdir_flag_spec is actually meaningless, as there is
6076           # no search path for DLLs.
6077           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
6078           _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
6079           _LT_TAGVAR(always_export_symbols, $1)=yes
6080           _LT_TAGVAR(file_list_spec, $1)='@'
6081           # Tell ltmain to make .lib files, not .a files.
6082           libext=lib
6083           # Tell ltmain to make .dll files, not .so files.
6084           shrext_cmds=".dll"
6085           # FIXME: Setting linknames here is a bad hack.
6086           _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
6087           _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
6088               $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
6089             else
6090               $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
6091             fi~
6092             $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
6093             linknames='
6094           # The linker will not automatically build a static lib if we build a DLL.
6095           # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
6096           _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
6097           # Don't use ranlib
6098           _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
6099           _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
6100             lt_tool_outputfile="@TOOL_OUTPUT@"~
6101             case $lt_outputfile in
6102               *.exe|*.EXE) ;;
6103               *)
6104                 lt_outputfile="$lt_outputfile.exe"
6105                 lt_tool_outputfile="$lt_tool_outputfile.exe"
6106                 ;;
6107             esac~
6108             func_to_tool_file "$lt_outputfile"~
6109             if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
6110               $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
6111               $RM "$lt_outputfile.manifest";
6112             fi'
6113           ;;
6114         *)
6115           # g++
6116           # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
6117           # as there is no search path for DLLs.
6118           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
6119           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
6120           _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
6121           _LT_TAGVAR(always_export_symbols, $1)=no
6122           _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
6123
6124           if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
6125             _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'
6126             # If the export-symbols file already is a .def file (1st line
6127             # is EXPORTS), use it as is; otherwise, prepend...
6128             _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
6129               cp $export_symbols $output_objdir/$soname.def;
6130             else
6131               echo EXPORTS > $output_objdir/$soname.def;
6132               cat $export_symbols >> $output_objdir/$soname.def;
6133             fi~
6134             $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'
6135           else
6136             _LT_TAGVAR(ld_shlibs, $1)=no
6137           fi
6138           ;;
6139         esac
6140         ;;
6141       darwin* | rhapsody*)
6142         _LT_DARWIN_LINKER_FEATURES($1)
6143         ;;
6144
6145       dgux*)
6146         case $cc_basename in
6147           ec++*)
6148             # FIXME: insert proper C++ library support
6149             _LT_TAGVAR(ld_shlibs, $1)=no
6150             ;;
6151           ghcx*)
6152             # Green Hills C++ Compiler
6153             # FIXME: insert proper C++ library support
6154             _LT_TAGVAR(ld_shlibs, $1)=no
6155             ;;
6156           *)
6157             # FIXME: insert proper C++ library support
6158             _LT_TAGVAR(ld_shlibs, $1)=no
6159             ;;
6160         esac
6161         ;;
6162
6163       freebsd[[12]]*)
6164         # C++ shared libraries reported to be fairly broken before
6165         # switch to ELF
6166         _LT_TAGVAR(ld_shlibs, $1)=no
6167         ;;
6168
6169       freebsd-elf*)
6170         _LT_TAGVAR(archive_cmds_need_lc, $1)=no
6171         ;;
6172
6173       freebsd* | dragonfly*)
6174         # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
6175         # conventions
6176         _LT_TAGVAR(ld_shlibs, $1)=yes
6177         ;;
6178
6179       gnu*)
6180         ;;
6181
6182       haiku*)
6183         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
6184         _LT_TAGVAR(link_all_deplibs, $1)=yes
6185         ;;
6186
6187       hpux9*)
6188         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
6189         _LT_TAGVAR(hardcode_libdir_separator, $1)=:
6190         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
6191         _LT_TAGVAR(hardcode_direct, $1)=yes
6192         _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
6193                                              # but as the default
6194                                              # location of the library.
6195
6196         case $cc_basename in
6197           CC*)
6198             # FIXME: insert proper C++ library support
6199             _LT_TAGVAR(ld_shlibs, $1)=no
6200             ;;
6201           aCC*)
6202             _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'
6203             # Commands to make compiler produce verbose output that lists
6204             # what "hidden" libraries, object files and flags are used when
6205             # linking a shared library.
6206             #
6207             # There doesn't appear to be a way to prevent this compiler from
6208             # explicitly linking system object files so we need to strip them
6209             # from the output so that they don't get included in the library
6210             # dependencies.
6211             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; func_echo_all "$list"'
6212             ;;
6213           *)
6214             if test "$GXX" = yes; then
6215               _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${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'
6216             else
6217               # FIXME: insert proper C++ library support
6218               _LT_TAGVAR(ld_shlibs, $1)=no
6219             fi
6220             ;;
6221         esac
6222         ;;
6223
6224       hpux10*|hpux11*)
6225         if test $with_gnu_ld = no; then
6226           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
6227           _LT_TAGVAR(hardcode_libdir_separator, $1)=:
6228
6229           case $host_cpu in
6230             hppa*64*|ia64*)
6231               ;;
6232             *)
6233               _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
6234               ;;
6235           esac
6236         fi
6237         case $host_cpu in
6238           hppa*64*|ia64*)
6239             _LT_TAGVAR(hardcode_direct, $1)=no
6240             _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
6241             ;;
6242           *)
6243             _LT_TAGVAR(hardcode_direct, $1)=yes
6244             _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
6245             _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
6246                                                  # but as the default
6247                                                  # location of the library.
6248             ;;
6249         esac
6250
6251         case $cc_basename in
6252           CC*)
6253             # FIXME: insert proper C++ library support
6254             _LT_TAGVAR(ld_shlibs, $1)=no
6255             ;;
6256           aCC*)
6257             case $host_cpu in
6258               hppa*64*)
6259                 _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
6260                 ;;
6261               ia64*)
6262                 _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
6263                 ;;
6264               *)
6265                 _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'
6266                 ;;
6267             esac
6268             # Commands to make compiler produce verbose output that lists
6269             # what "hidden" libraries, object files and flags are used when
6270             # linking a shared library.
6271             #
6272             # There doesn't appear to be a way to prevent this compiler from
6273             # explicitly linking system object files so we need to strip them
6274             # from the output so that they don't get included in the library
6275             # dependencies.
6276             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; func_echo_all "$list"'
6277             ;;
6278           *)
6279             if test "$GXX" = yes; then
6280               if test $with_gnu_ld = no; then
6281                 case $host_cpu in
6282                   hppa*64*)
6283                     _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
6284                     ;;
6285                   ia64*)
6286                     _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
6287                     ;;
6288                   *)
6289                     _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
6290                     ;;
6291                 esac
6292               fi
6293             else
6294               # FIXME: insert proper C++ library support
6295               _LT_TAGVAR(ld_shlibs, $1)=no
6296             fi
6297             ;;
6298         esac
6299         ;;
6300
6301       interix[[3-9]]*)
6302         _LT_TAGVAR(hardcode_direct, $1)=no
6303         _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
6304         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
6305         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
6306         # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
6307         # Instead, shared libraries are loaded at an image base (0x10000000 by
6308         # default) and relocated if they conflict, which is a slow very memory
6309         # consuming and fragmenting process.  To avoid this, we pick a random,
6310         # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
6311         # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
6312         _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'
6313         _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'
6314         ;;
6315       irix5* | irix6*)
6316         case $cc_basename in
6317           CC*)
6318             # SGI C++
6319             _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
6320
6321             # Archives containing C++ object files must be created using
6322             # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
6323             # necessary to make sure instantiated templates are included
6324             # in the archive.
6325             _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
6326             ;;
6327           *)
6328             if test "$GXX" = yes; then
6329               if test "$with_gnu_ld" = no; then
6330                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
6331               else
6332                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
6333               fi
6334             fi
6335             _LT_TAGVAR(link_all_deplibs, $1)=yes
6336             ;;
6337         esac
6338         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
6339         _LT_TAGVAR(hardcode_libdir_separator, $1)=:
6340         _LT_TAGVAR(inherit_rpath, $1)=yes
6341         ;;
6342
6343       linux* | k*bsd*-gnu | kopensolaris*-gnu)
6344         case $cc_basename in
6345           KCC*)
6346             # Kuck and Associates, Inc. (KAI) C++ Compiler
6347
6348             # KCC will only create a shared library if the output file
6349             # ends with ".so" (or ".sl" for HP-UX), so rename the library
6350             # to its proper name (with version) after linking.
6351             _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'
6352             _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'
6353             # Commands to make compiler produce verbose output that lists
6354             # what "hidden" libraries, object files and flags are used when
6355             # linking a shared library.
6356             #
6357             # There doesn't appear to be a way to prevent this compiler from
6358             # explicitly linking system object files so we need to strip them
6359             # from the output so that they don't get included in the library
6360             # dependencies.
6361             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; func_echo_all "$list"'
6362
6363             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
6364             _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
6365
6366             # Archives containing C++ object files must be created using
6367             # "CC -Bstatic", where "CC" is the KAI C++ compiler.
6368             _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
6369             ;;
6370           icpc* | ecpc* )
6371             # Intel C++
6372             with_gnu_ld=yes
6373             # version 8.0 and above of icpc choke on multiply defined symbols
6374             # if we add $predep_objects and $postdep_objects, however 7.1 and
6375             # earlier do not add the objects themselves.
6376             case `$CC -V 2>&1` in
6377               *"Version 7."*)
6378                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
6379                 _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'
6380                 ;;
6381               *)  # Version 8.0 or newer
6382                 tmp_idyn=
6383                 case $host_cpu in
6384                   ia64*) tmp_idyn=' -i_dynamic';;
6385                 esac
6386                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
6387                 _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'
6388                 ;;
6389             esac
6390             _LT_TAGVAR(archive_cmds_need_lc, $1)=no
6391             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
6392             _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
6393             _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
6394             ;;
6395           pgCC* | pgcpp*)
6396             # Portland Group C++ compiler
6397             case `$CC -V` in
6398             *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
6399               _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
6400                 rm -rf $tpldir~
6401                 $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
6402                 compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
6403               _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
6404                 rm -rf $tpldir~
6405                 $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
6406                 $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
6407                 $RANLIB $oldlib'
6408               _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
6409                 rm -rf $tpldir~
6410                 $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
6411                 $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
6412               _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
6413                 rm -rf $tpldir~
6414                 $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
6415                 $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
6416               ;;
6417             *) # Version 6 and above use weak symbols
6418               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
6419               _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'
6420               ;;
6421             esac
6422
6423             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
6424             _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
6425             _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
6426             ;;
6427           cxx*)
6428             # Compaq C++
6429             _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
6430             _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'
6431
6432             runpath_var=LD_RUN_PATH
6433             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
6434             _LT_TAGVAR(hardcode_libdir_separator, $1)=:
6435
6436             # Commands to make compiler produce verbose output that lists
6437             # what "hidden" libraries, object files and flags are used when
6438             # linking a shared library.
6439             #
6440             # There doesn't appear to be a way to prevent this compiler from
6441             # explicitly linking system object files so we need to strip them
6442             # from the output so that they don't get included in the library
6443             # dependencies.
6444             output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
6445             ;;
6446           xl* | mpixl* | bgxl*)
6447             # IBM XL 8.0 on PPC, with GNU ld
6448             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
6449             _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
6450             _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
6451             if test "x$supports_anon_versioning" = xyes; then
6452               _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
6453                 cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
6454                 echo "local: *; };" >> $output_objdir/$libname.ver~
6455                 $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
6456             fi
6457             ;;
6458           *)
6459             case `$CC -V 2>&1 | sed 5q` in
6460             *Sun\ C*)
6461               # Sun C++ 5.9
6462               _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
6463               _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
6464               _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'
6465               _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
6466               _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; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
6467               _LT_TAGVAR(compiler_needs_object, $1)=yes
6468
6469               # Not sure whether something based on
6470               # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
6471               # would be better.
6472               output_verbose_link_cmd='func_echo_all'
6473
6474               # Archives containing C++ object files must be created using
6475               # "CC -xar", where "CC" is the Sun C++ compiler.  This is
6476               # necessary to make sure instantiated templates are included
6477               # in the archive.
6478               _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
6479               ;;
6480             esac
6481             ;;
6482         esac
6483         ;;
6484
6485       lynxos*)
6486         # FIXME: insert proper C++ library support
6487         _LT_TAGVAR(ld_shlibs, $1)=no
6488         ;;
6489
6490       m88k*)
6491         # FIXME: insert proper C++ library support
6492         _LT_TAGVAR(ld_shlibs, $1)=no
6493         ;;
6494
6495       mvs*)
6496         case $cc_basename in
6497           cxx*)
6498             # FIXME: insert proper C++ library support
6499             _LT_TAGVAR(ld_shlibs, $1)=no
6500             ;;
6501           *)
6502             # FIXME: insert proper C++ library support
6503             _LT_TAGVAR(ld_shlibs, $1)=no
6504             ;;
6505         esac
6506         ;;
6507
6508       netbsd*)
6509         if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
6510           _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
6511           wlarc=
6512           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
6513           _LT_TAGVAR(hardcode_direct, $1)=yes
6514           _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
6515         fi
6516         # Workaround some broken pre-1.5 toolchains
6517         output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
6518         ;;
6519
6520       *nto* | *qnx*)
6521         _LT_TAGVAR(ld_shlibs, $1)=yes
6522         ;;
6523
6524       openbsd2*)
6525         # C++ shared libraries are fairly broken
6526         _LT_TAGVAR(ld_shlibs, $1)=no
6527         ;;
6528
6529       openbsd*)
6530         if test -f /usr/libexec/ld.so; then
6531           _LT_TAGVAR(hardcode_direct, $1)=yes
6532           _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
6533           _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
6534           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
6535           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
6536           if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
6537             _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'
6538             _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
6539             _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
6540           fi
6541           output_verbose_link_cmd=func_echo_all
6542         else
6543           _LT_TAGVAR(ld_shlibs, $1)=no
6544         fi
6545         ;;
6546
6547       osf3* | osf4* | osf5*)
6548         case $cc_basename in
6549           KCC*)
6550             # Kuck and Associates, Inc. (KAI) C++ Compiler
6551
6552             # KCC will only create a shared library if the output file
6553             # ends with ".so" (or ".sl" for HP-UX), so rename the library
6554             # to its proper name (with version) after linking.
6555             _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'
6556
6557             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
6558             _LT_TAGVAR(hardcode_libdir_separator, $1)=:
6559
6560             # Archives containing C++ object files must be created using
6561             # the KAI C++ compiler.
6562             case $host in
6563               osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
6564               *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
6565             esac
6566             ;;
6567           RCC*)
6568             # Rational C++ 2.4.1
6569             # FIXME: insert proper C++ library support
6570             _LT_TAGVAR(ld_shlibs, $1)=no
6571             ;;
6572           cxx*)
6573             case $host in
6574               osf3*)
6575                 _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
6576                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
6577                 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
6578                 ;;
6579               *)
6580                 _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
6581                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
6582                 _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
6583                   echo "-hidden">> $lib.exp~
6584                   $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 "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
6585                   $RM $lib.exp'
6586                 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
6587                 ;;
6588             esac
6589
6590             _LT_TAGVAR(hardcode_libdir_separator, $1)=:
6591
6592             # Commands to make compiler produce verbose output that lists
6593             # what "hidden" libraries, object files and flags are used when
6594             # linking a shared library.
6595             #
6596             # There doesn't appear to be a way to prevent this compiler from
6597             # explicitly linking system object files so we need to strip them
6598             # from the output so that they don't get included in the library
6599             # dependencies.
6600             output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
6601             ;;
6602           *)
6603             if test "$GXX" = yes && test "$with_gnu_ld" = no; then
6604               _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
6605               case $host in
6606                 osf3*)
6607                   _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" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
6608                   ;;
6609                 *)
6610                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
6611                   ;;
6612               esac
6613
6614               _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
6615               _LT_TAGVAR(hardcode_libdir_separator, $1)=:
6616
6617               # Commands to make compiler produce verbose output that lists
6618               # what "hidden" libraries, object files and flags are used when
6619               # linking a shared library.
6620               output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
6621
6622             else
6623               # FIXME: insert proper C++ library support
6624               _LT_TAGVAR(ld_shlibs, $1)=no
6625             fi
6626             ;;
6627         esac
6628         ;;
6629
6630       psos*)
6631         # FIXME: insert proper C++ library support
6632         _LT_TAGVAR(ld_shlibs, $1)=no
6633         ;;
6634
6635       sunos4*)
6636         case $cc_basename in
6637           CC*)
6638             # Sun C++ 4.x
6639             # FIXME: insert proper C++ library support
6640             _LT_TAGVAR(ld_shlibs, $1)=no
6641             ;;
6642           lcc*)
6643             # Lucid
6644             # FIXME: insert proper C++ library support
6645             _LT_TAGVAR(ld_shlibs, $1)=no
6646             ;;
6647           *)
6648             # FIXME: insert proper C++ library support
6649             _LT_TAGVAR(ld_shlibs, $1)=no
6650             ;;
6651         esac
6652         ;;
6653
6654       solaris*)
6655         case $cc_basename in
6656           CC* | sunCC*)
6657             # Sun C++ 4.2, 5.x and Centerline C++
6658             _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
6659             _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
6660             _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
6661             _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
6662               $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'
6663
6664             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
6665             _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
6666             case $host_os in
6667               solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
6668               *)
6669                 # The compiler driver will combine and reorder linker options,
6670                 # but understands `-z linker_flag'.
6671                 # Supported since Solaris 2.6 (maybe 2.5.1?)
6672                 _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
6673                 ;;
6674             esac
6675             _LT_TAGVAR(link_all_deplibs, $1)=yes
6676
6677             output_verbose_link_cmd='func_echo_all'
6678
6679             # Archives containing C++ object files must be created using
6680             # "CC -xar", where "CC" is the Sun C++ compiler.  This is
6681             # necessary to make sure instantiated templates are included
6682             # in the archive.
6683             _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
6684             ;;
6685           gcx*)
6686             # Green Hills C++ Compiler
6687             _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
6688
6689             # The C++ compiler must be used to create the archive.
6690             _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
6691             ;;
6692           *)
6693             # GNU C++ compiler with Solaris linker
6694             if test "$GXX" = yes && test "$with_gnu_ld" = no; then
6695               _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
6696               if $CC --version | $GREP -v '^2\.7' > /dev/null; then
6697                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
6698                 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
6699                   $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
6700
6701                 # Commands to make compiler produce verbose output that lists
6702                 # what "hidden" libraries, object files and flags are used when
6703                 # linking a shared library.
6704                 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
6705               else
6706                 # g++ 2.7 appears to require `-G' NOT `-shared' on this
6707                 # platform.
6708                 _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
6709                 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
6710                   $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
6711
6712                 # Commands to make compiler produce verbose output that lists
6713                 # what "hidden" libraries, object files and flags are used when
6714                 # linking a shared library.
6715                 output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
6716               fi
6717
6718               _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
6719               case $host_os in
6720                 solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
6721                 *)
6722                   _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
6723                   ;;
6724               esac
6725             fi
6726             ;;
6727         esac
6728         ;;
6729
6730     sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
6731       _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
6732       _LT_TAGVAR(archive_cmds_need_lc, $1)=no
6733       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
6734       runpath_var='LD_RUN_PATH'
6735
6736       case $cc_basename in
6737         CC*)
6738           _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6739           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6740           ;;
6741         *)
6742           _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6743           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6744           ;;
6745       esac
6746       ;;
6747
6748       sysv5* | sco3.2v5* | sco5v6*)
6749         # Note: We can NOT use -z defs as we might desire, because we do not
6750         # link with -lc, and that would cause any symbols used from libc to
6751         # always be unresolved, which means just about no library would
6752         # ever link correctly.  If we're not using GNU ld we use -z text
6753         # though, which does catch some bad symbols but isn't as heavy-handed
6754         # as -z defs.
6755         _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
6756         _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
6757         _LT_TAGVAR(archive_cmds_need_lc, $1)=no
6758         _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
6759         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
6760         _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
6761         _LT_TAGVAR(link_all_deplibs, $1)=yes
6762         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
6763         runpath_var='LD_RUN_PATH'
6764
6765         case $cc_basename in
6766           CC*)
6767             _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6768             _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6769             _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
6770               '"$_LT_TAGVAR(old_archive_cmds, $1)"
6771             _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
6772               '"$_LT_TAGVAR(reload_cmds, $1)"
6773             ;;
6774           *)
6775             _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6776             _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6777             ;;
6778         esac
6779       ;;
6780
6781       tandem*)
6782         case $cc_basename in
6783           NCC*)
6784             # NonStop-UX NCC 3.20
6785             # FIXME: insert proper C++ library support
6786             _LT_TAGVAR(ld_shlibs, $1)=no
6787             ;;
6788           *)
6789             # FIXME: insert proper C++ library support
6790             _LT_TAGVAR(ld_shlibs, $1)=no
6791             ;;
6792         esac
6793         ;;
6794
6795       vxworks*)
6796         # FIXME: insert proper C++ library support
6797         _LT_TAGVAR(ld_shlibs, $1)=no
6798         ;;
6799
6800       *)
6801         # FIXME: insert proper C++ library support
6802         _LT_TAGVAR(ld_shlibs, $1)=no
6803         ;;
6804     esac
6805
6806     AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
6807     test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
6808
6809     _LT_TAGVAR(GCC, $1)="$GXX"
6810     _LT_TAGVAR(LD, $1)="$LD"
6811
6812     ## CAVEAT EMPTOR:
6813     ## There is no encapsulation within the following macros, do not change
6814     ## the running order or otherwise move them around unless you know exactly
6815     ## what you are doing...
6816     _LT_SYS_HIDDEN_LIBDEPS($1)
6817     _LT_COMPILER_PIC($1)
6818     _LT_COMPILER_C_O($1)
6819     _LT_COMPILER_FILE_LOCKS($1)
6820     _LT_LINKER_SHLIBS($1)
6821     _LT_SYS_DYNAMIC_LINKER($1)
6822     _LT_LINKER_HARDCODE_LIBPATH($1)
6823
6824     _LT_CONFIG($1)
6825   fi # test -n "$compiler"
6826
6827   CC=$lt_save_CC
6828   CFLAGS=$lt_save_CFLAGS
6829   LDCXX=$LD
6830   LD=$lt_save_LD
6831   GCC=$lt_save_GCC
6832   with_gnu_ld=$lt_save_with_gnu_ld
6833   lt_cv_path_LDCXX=$lt_cv_path_LD
6834   lt_cv_path_LD=$lt_save_path_LD
6835   lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
6836   lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
6837 fi # test "$_lt_caught_CXX_error" != yes
6838
6839 AC_LANG_POP
6840 ])# _LT_LANG_CXX_CONFIG
6841
6842
6843 # _LT_FUNC_STRIPNAME_CNF
6844 # ----------------------
6845 # func_stripname_cnf prefix suffix name
6846 # strip PREFIX and SUFFIX off of NAME.
6847 # PREFIX and SUFFIX must not contain globbing or regex special
6848 # characters, hashes, percent signs, but SUFFIX may contain a leading
6849 # dot (in which case that matches only a dot).
6850 #
6851 # This function is identical to the (non-XSI) version of func_stripname,
6852 # except this one can be used by m4 code that may be executed by configure,
6853 # rather than the libtool script.
6854 m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
6855 AC_REQUIRE([_LT_DECL_SED])
6856 AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
6857 func_stripname_cnf ()
6858 {
6859   case ${2} in
6860   .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
6861   *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
6862   esac
6863 } # func_stripname_cnf
6864 ])# _LT_FUNC_STRIPNAME_CNF
6865
6866 # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
6867 # ---------------------------------
6868 # Figure out "hidden" library dependencies from verbose
6869 # compiler output when linking a shared library.
6870 # Parse the compiler output and extract the necessary
6871 # objects, libraries and library flags.
6872 m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
6873 [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
6874 AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
6875 # Dependencies to place before and after the object being linked:
6876 _LT_TAGVAR(predep_objects, $1)=
6877 _LT_TAGVAR(postdep_objects, $1)=
6878 _LT_TAGVAR(predeps, $1)=
6879 _LT_TAGVAR(postdeps, $1)=
6880 _LT_TAGVAR(compiler_lib_search_path, $1)=
6881
6882 dnl we can't use the lt_simple_compile_test_code here,
6883 dnl because it contains code intended for an executable,
6884 dnl not a library.  It's possible we should let each
6885 dnl tag define a new lt_????_link_test_code variable,
6886 dnl but it's only used here...
6887 m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
6888 int a;
6889 void foo (void) { a = 0; }
6890 _LT_EOF
6891 ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
6892 class Foo
6893 {
6894 public:
6895   Foo (void) { a = 0; }
6896 private:
6897   int a;
6898 };
6899 _LT_EOF
6900 ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
6901       subroutine foo
6902       implicit none
6903       integer*4 a
6904       a=0
6905       return
6906       end
6907 _LT_EOF
6908 ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
6909       subroutine foo
6910       implicit none
6911       integer a
6912       a=0
6913       return
6914       end
6915 _LT_EOF
6916 ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
6917 public class foo {
6918   private int a;
6919   public void bar (void) {
6920     a = 0;
6921   }
6922 };
6923 _LT_EOF
6924 ])
6925
6926 _lt_libdeps_save_CFLAGS=$CFLAGS
6927 case "$CC $CFLAGS " in #(
6928 *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
6929 *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
6930 esac
6931
6932 dnl Parse the compiler output and extract the necessary
6933 dnl objects, libraries and library flags.
6934 if AC_TRY_EVAL(ac_compile); then
6935   # Parse the compiler output and extract the necessary
6936   # objects, libraries and library flags.
6937
6938   # Sentinel used to keep track of whether or not we are before
6939   # the conftest object file.
6940   pre_test_object_deps_done=no
6941
6942   for p in `eval "$output_verbose_link_cmd"`; do
6943     case ${prev}${p} in
6944
6945     -L* | -R* | -l*)
6946        # Some compilers place space between "-{L,R}" and the path.
6947        # Remove the space.
6948        if test $p = "-L" ||
6949           test $p = "-R"; then
6950          prev=$p
6951          continue
6952        fi
6953
6954        # Expand the sysroot to ease extracting the directories later.
6955        if test -z "$prev"; then
6956          case $p in
6957          -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
6958          -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
6959          -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
6960          esac
6961        fi
6962        case $p in
6963        =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
6964        esac
6965        if test "$pre_test_object_deps_done" = no; then
6966          case ${prev} in
6967          -L | -R)
6968            # Internal compiler library paths should come after those
6969            # provided the user.  The postdeps already come after the
6970            # user supplied libs so there is no need to process them.
6971            if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
6972              _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
6973            else
6974              _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
6975            fi
6976            ;;
6977          # The "-l" case would never come before the object being
6978          # linked, so don't bother handling this case.
6979          esac
6980        else
6981          if test -z "$_LT_TAGVAR(postdeps, $1)"; then
6982            _LT_TAGVAR(postdeps, $1)="${prev}${p}"
6983          else
6984            _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
6985          fi
6986        fi
6987        prev=
6988        ;;
6989
6990     *.lto.$objext) ;; # Ignore GCC LTO objects
6991     *.$objext)
6992        # This assumes that the test object file only shows up
6993        # once in the compiler output.
6994        if test "$p" = "conftest.$objext"; then
6995          pre_test_object_deps_done=yes
6996          continue
6997        fi
6998
6999        if test "$pre_test_object_deps_done" = no; then
7000          if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
7001            _LT_TAGVAR(predep_objects, $1)="$p"
7002          else
7003            _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
7004          fi
7005        else
7006          if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
7007            _LT_TAGVAR(postdep_objects, $1)="$p"
7008          else
7009            _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
7010          fi
7011        fi
7012        ;;
7013
7014     *) ;; # Ignore the rest.
7015
7016     esac
7017   done
7018
7019   # Clean up.
7020   rm -f a.out a.exe
7021 else
7022   echo "libtool.m4: error: problem compiling $1 test program"
7023 fi
7024
7025 $RM -f confest.$objext
7026 CFLAGS=$_lt_libdeps_save_CFLAGS
7027
7028 # PORTME: override above test on systems where it is broken
7029 m4_if([$1], [CXX],
7030 [case $host_os in
7031 interix[[3-9]]*)
7032   # Interix 3.5 installs completely hosed .la files for C++, so rather than
7033   # hack all around it, let's just trust "g++" to DTRT.
7034   _LT_TAGVAR(predep_objects,$1)=
7035   _LT_TAGVAR(postdep_objects,$1)=
7036   _LT_TAGVAR(postdeps,$1)=
7037   ;;
7038
7039 linux*)
7040   case `$CC -V 2>&1 | sed 5q` in
7041   *Sun\ C*)
7042     # Sun C++ 5.9
7043
7044     # The more standards-conforming stlport4 library is
7045     # incompatible with the Cstd library. Avoid specifying
7046     # it if it's in CXXFLAGS. Ignore libCrun as
7047     # -library=stlport4 depends on it.
7048     case " $CXX $CXXFLAGS " in
7049     *" -library=stlport4 "*)
7050       solaris_use_stlport4=yes
7051       ;;
7052     esac
7053
7054     if test "$solaris_use_stlport4" != yes; then
7055       _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
7056     fi
7057     ;;
7058   esac
7059   ;;
7060
7061 solaris*)
7062   case $cc_basename in
7063   CC* | sunCC*)
7064     # The more standards-conforming stlport4 library is
7065     # incompatible with the Cstd library. Avoid specifying
7066     # it if it's in CXXFLAGS. Ignore libCrun as
7067     # -library=stlport4 depends on it.
7068     case " $CXX $CXXFLAGS " in
7069     *" -library=stlport4 "*)
7070       solaris_use_stlport4=yes
7071       ;;
7072     esac
7073
7074     # Adding this requires a known-good setup of shared libraries for
7075     # Sun compiler versions before 5.6, else PIC objects from an old
7076     # archive will be linked into the output, leading to subtle bugs.
7077     if test "$solaris_use_stlport4" != yes; then
7078       _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
7079     fi
7080     ;;
7081   esac
7082   ;;
7083 esac
7084 ])
7085
7086 case " $_LT_TAGVAR(postdeps, $1) " in
7087 *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
7088 esac
7089  _LT_TAGVAR(compiler_lib_search_dirs, $1)=
7090 if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
7091  _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
7092 fi
7093 _LT_TAGDECL([], [compiler_lib_search_dirs], [1],
7094     [The directories searched by this compiler when creating a shared library])
7095 _LT_TAGDECL([], [predep_objects], [1],
7096     [Dependencies to place before and after the objects being linked to
7097     create a shared library])
7098 _LT_TAGDECL([], [postdep_objects], [1])
7099 _LT_TAGDECL([], [predeps], [1])
7100 _LT_TAGDECL([], [postdeps], [1])
7101 _LT_TAGDECL([], [compiler_lib_search_path], [1],
7102     [The library search path used internally by the compiler when linking
7103     a shared library])
7104 ])# _LT_SYS_HIDDEN_LIBDEPS
7105
7106
7107 # _LT_LANG_F77_CONFIG([TAG])
7108 # --------------------------
7109 # Ensure that the configuration variables for a Fortran 77 compiler are
7110 # suitably defined.  These variables are subsequently used by _LT_CONFIG
7111 # to write the compiler configuration to `libtool'.
7112 m4_defun([_LT_LANG_F77_CONFIG],
7113 [AC_LANG_PUSH(Fortran 77)
7114 if test -z "$F77" || test "X$F77" = "Xno"; then
7115   _lt_disable_F77=yes
7116 fi
7117
7118 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
7119 _LT_TAGVAR(allow_undefined_flag, $1)=
7120 _LT_TAGVAR(always_export_symbols, $1)=no
7121 _LT_TAGVAR(archive_expsym_cmds, $1)=
7122 _LT_TAGVAR(export_dynamic_flag_spec, $1)=
7123 _LT_TAGVAR(hardcode_direct, $1)=no
7124 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
7125 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
7126 _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
7127 _LT_TAGVAR(hardcode_libdir_separator, $1)=
7128 _LT_TAGVAR(hardcode_minus_L, $1)=no
7129 _LT_TAGVAR(hardcode_automatic, $1)=no
7130 _LT_TAGVAR(inherit_rpath, $1)=no
7131 _LT_TAGVAR(module_cmds, $1)=
7132 _LT_TAGVAR(module_expsym_cmds, $1)=
7133 _LT_TAGVAR(link_all_deplibs, $1)=unknown
7134 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
7135 _LT_TAGVAR(reload_flag, $1)=$reload_flag
7136 _LT_TAGVAR(reload_cmds, $1)=$reload_cmds
7137 _LT_TAGVAR(no_undefined_flag, $1)=
7138 _LT_TAGVAR(whole_archive_flag_spec, $1)=
7139 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
7140
7141 # Source file extension for f77 test sources.
7142 ac_ext=f
7143
7144 # Object file extension for compiled f77 test sources.
7145 objext=o
7146 _LT_TAGVAR(objext, $1)=$objext
7147
7148 # No sense in running all these tests if we already determined that
7149 # the F77 compiler isn't working.  Some variables (like enable_shared)
7150 # are currently assumed to apply to all compilers on this platform,
7151 # and will be corrupted by setting them based on a non-working compiler.
7152 if test "$_lt_disable_F77" != yes; then
7153   # Code to be used in simple compile tests
7154   lt_simple_compile_test_code="\
7155       subroutine t
7156       return
7157       end
7158 "
7159
7160   # Code to be used in simple link tests
7161   lt_simple_link_test_code="\
7162       program t
7163       end
7164 "
7165
7166   # ltmain only uses $CC for tagged configurations so make sure $CC is set.
7167   _LT_TAG_COMPILER
7168
7169   # save warnings/boilerplate of simple test code
7170   _LT_COMPILER_BOILERPLATE
7171   _LT_LINKER_BOILERPLATE
7172
7173   # Allow CC to be a program name with arguments.
7174   lt_save_CC="$CC"
7175   lt_save_GCC=$GCC
7176   lt_save_CFLAGS=$CFLAGS
7177   CC=${F77-"f77"}
7178   CFLAGS=$FFLAGS
7179   compiler=$CC
7180   _LT_TAGVAR(compiler, $1)=$CC
7181   _LT_CC_BASENAME([$compiler])
7182   GCC=$G77
7183   if test -n "$compiler"; then
7184     AC_MSG_CHECKING([if libtool supports shared libraries])
7185     AC_MSG_RESULT([$can_build_shared])
7186
7187     AC_MSG_CHECKING([whether to build shared libraries])
7188     test "$can_build_shared" = "no" && enable_shared=no
7189
7190     # On AIX, shared libraries and static libraries use the same namespace, and
7191     # are all built from PIC.
7192     case $host_os in
7193       aix3*)
7194         test "$enable_shared" = yes && enable_static=no
7195         if test -n "$RANLIB"; then
7196           archive_cmds="$archive_cmds~\$RANLIB \$lib"
7197           postinstall_cmds='$RANLIB $lib'
7198         fi
7199         ;;
7200       aix[[4-9]]*)
7201         if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
7202           test "$enable_shared" = yes && enable_static=no
7203         fi
7204         ;;
7205     esac
7206     AC_MSG_RESULT([$enable_shared])
7207
7208     AC_MSG_CHECKING([whether to build static libraries])
7209     # Make sure either enable_shared or enable_static is yes.
7210     test "$enable_shared" = yes || enable_static=yes
7211     AC_MSG_RESULT([$enable_static])
7212
7213     _LT_TAGVAR(GCC, $1)="$G77"
7214     _LT_TAGVAR(LD, $1)="$LD"
7215
7216     ## CAVEAT EMPTOR:
7217     ## There is no encapsulation within the following macros, do not change
7218     ## the running order or otherwise move them around unless you know exactly
7219     ## what you are doing...
7220     _LT_COMPILER_PIC($1)
7221     _LT_COMPILER_C_O($1)
7222     _LT_COMPILER_FILE_LOCKS($1)
7223     _LT_LINKER_SHLIBS($1)
7224     _LT_SYS_DYNAMIC_LINKER($1)
7225     _LT_LINKER_HARDCODE_LIBPATH($1)
7226
7227     _LT_CONFIG($1)
7228   fi # test -n "$compiler"
7229
7230   GCC=$lt_save_GCC
7231   CC="$lt_save_CC"
7232   CFLAGS="$lt_save_CFLAGS"
7233 fi # test "$_lt_disable_F77" != yes
7234
7235 AC_LANG_POP
7236 ])# _LT_LANG_F77_CONFIG
7237
7238
7239 # _LT_LANG_FC_CONFIG([TAG])
7240 # -------------------------
7241 # Ensure that the configuration variables for a Fortran compiler are
7242 # suitably defined.  These variables are subsequently used by _LT_CONFIG
7243 # to write the compiler configuration to `libtool'.
7244 m4_defun([_LT_LANG_FC_CONFIG],
7245 [AC_LANG_PUSH(Fortran)
7246
7247 if test -z "$FC" || test "X$FC" = "Xno"; then
7248   _lt_disable_FC=yes
7249 fi
7250
7251 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
7252 _LT_TAGVAR(allow_undefined_flag, $1)=
7253 _LT_TAGVAR(always_export_symbols, $1)=no
7254 _LT_TAGVAR(archive_expsym_cmds, $1)=
7255 _LT_TAGVAR(export_dynamic_flag_spec, $1)=
7256 _LT_TAGVAR(hardcode_direct, $1)=no
7257 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
7258 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
7259 _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
7260 _LT_TAGVAR(hardcode_libdir_separator, $1)=
7261 _LT_TAGVAR(hardcode_minus_L, $1)=no
7262 _LT_TAGVAR(hardcode_automatic, $1)=no
7263 _LT_TAGVAR(inherit_rpath, $1)=no
7264 _LT_TAGVAR(module_cmds, $1)=
7265 _LT_TAGVAR(module_expsym_cmds, $1)=
7266 _LT_TAGVAR(link_all_deplibs, $1)=unknown
7267 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
7268 _LT_TAGVAR(reload_flag, $1)=$reload_flag
7269 _LT_TAGVAR(reload_cmds, $1)=$reload_cmds
7270 _LT_TAGVAR(no_undefined_flag, $1)=
7271 _LT_TAGVAR(whole_archive_flag_spec, $1)=
7272 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
7273
7274 # Source file extension for fc test sources.
7275 ac_ext=${ac_fc_srcext-f}
7276
7277 # Object file extension for compiled fc test sources.
7278 objext=o
7279 _LT_TAGVAR(objext, $1)=$objext
7280
7281 # No sense in running all these tests if we already determined that
7282 # the FC compiler isn't working.  Some variables (like enable_shared)
7283 # are currently assumed to apply to all compilers on this platform,
7284 # and will be corrupted by setting them based on a non-working compiler.
7285 if test "$_lt_disable_FC" != yes; then
7286   # Code to be used in simple compile tests
7287   lt_simple_compile_test_code="\
7288       subroutine t
7289       return
7290       end
7291 "
7292
7293   # Code to be used in simple link tests
7294   lt_simple_link_test_code="\
7295       program t
7296       end
7297 "
7298
7299   # ltmain only uses $CC for tagged configurations so make sure $CC is set.
7300   _LT_TAG_COMPILER
7301
7302   # save warnings/boilerplate of simple test code
7303   _LT_COMPILER_BOILERPLATE
7304   _LT_LINKER_BOILERPLATE
7305
7306   # Allow CC to be a program name with arguments.
7307   lt_save_CC="$CC"
7308   lt_save_GCC=$GCC
7309   lt_save_CFLAGS=$CFLAGS
7310   CC=${FC-"f95"}
7311   CFLAGS=$FCFLAGS
7312   compiler=$CC
7313   GCC=$ac_cv_fc_compiler_gnu
7314
7315   _LT_TAGVAR(compiler, $1)=$CC
7316   _LT_CC_BASENAME([$compiler])
7317
7318   if test -n "$compiler"; then
7319     AC_MSG_CHECKING([if libtool supports shared libraries])
7320     AC_MSG_RESULT([$can_build_shared])
7321
7322     AC_MSG_CHECKING([whether to build shared libraries])
7323     test "$can_build_shared" = "no" && enable_shared=no
7324
7325     # On AIX, shared libraries and static libraries use the same namespace, and
7326     # are all built from PIC.
7327     case $host_os in
7328       aix3*)
7329         test "$enable_shared" = yes && enable_static=no
7330         if test -n "$RANLIB"; then
7331           archive_cmds="$archive_cmds~\$RANLIB \$lib"
7332           postinstall_cmds='$RANLIB $lib'
7333         fi
7334         ;;
7335       aix[[4-9]]*)
7336         if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
7337           test "$enable_shared" = yes && enable_static=no
7338         fi
7339         ;;
7340     esac
7341     AC_MSG_RESULT([$enable_shared])
7342
7343     AC_MSG_CHECKING([whether to build static libraries])
7344     # Make sure either enable_shared or enable_static is yes.
7345     test "$enable_shared" = yes || enable_static=yes
7346     AC_MSG_RESULT([$enable_static])
7347
7348     _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
7349     _LT_TAGVAR(LD, $1)="$LD"
7350
7351     ## CAVEAT EMPTOR:
7352     ## There is no encapsulation within the following macros, do not change
7353     ## the running order or otherwise move them around unless you know exactly
7354     ## what you are doing...
7355     _LT_SYS_HIDDEN_LIBDEPS($1)
7356     _LT_COMPILER_PIC($1)
7357     _LT_COMPILER_C_O($1)
7358     _LT_COMPILER_FILE_LOCKS($1)
7359     _LT_LINKER_SHLIBS($1)
7360     _LT_SYS_DYNAMIC_LINKER($1)
7361     _LT_LINKER_HARDCODE_LIBPATH($1)
7362
7363     _LT_CONFIG($1)
7364   fi # test -n "$compiler"
7365
7366   GCC=$lt_save_GCC
7367   CC=$lt_save_CC
7368   CFLAGS=$lt_save_CFLAGS
7369 fi # test "$_lt_disable_FC" != yes
7370
7371 AC_LANG_POP
7372 ])# _LT_LANG_FC_CONFIG
7373
7374
7375 # _LT_LANG_GCJ_CONFIG([TAG])
7376 # --------------------------
7377 # Ensure that the configuration variables for the GNU Java Compiler compiler
7378 # are suitably defined.  These variables are subsequently used by _LT_CONFIG
7379 # to write the compiler configuration to `libtool'.
7380 m4_defun([_LT_LANG_GCJ_CONFIG],
7381 [AC_REQUIRE([LT_PROG_GCJ])dnl
7382 AC_LANG_SAVE
7383
7384 # Source file extension for Java test sources.
7385 ac_ext=java
7386
7387 # Object file extension for compiled Java test sources.
7388 objext=o
7389 _LT_TAGVAR(objext, $1)=$objext
7390
7391 # Code to be used in simple compile tests
7392 lt_simple_compile_test_code="class foo {}"
7393
7394 # Code to be used in simple link tests
7395 lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
7396
7397 # ltmain only uses $CC for tagged configurations so make sure $CC is set.
7398 _LT_TAG_COMPILER
7399
7400 # Allow CC to be a program name with arguments.
7401 lt_save_CC=$CC
7402 lt_save_CFLAGS=$CFLAGS
7403 lt_save_GCC=$GCC
7404 GCC=yes
7405 CC=${GCJ-"gcj"}
7406 CFLAGS=$GCJFLAGS
7407 compiler=$CC
7408 _LT_TAGVAR(compiler, $1)=$CC
7409 _LT_TAGVAR(LD, $1)="$LD"
7410 _LT_CC_BASENAME([$compiler])
7411
7412 ac_compile='$CC -c $GCJFLAGS conftest.$ac_ext >&AS_MESSAGE_LOG_FD'
7413 ac_link='$CC -o conftest$ac_exeext --main=conftest $GCJFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&AS_MESSAGE_LOG_FD'
7414
7415 # save warnings/boilerplate of simple test code
7416 _LT_COMPILER_BOILERPLATE
7417 _LT_LINKER_BOILERPLATE
7418
7419 # GCJ did not exist at the time GCC didn't implicitly link libc in.
7420 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
7421
7422 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
7423 _LT_TAGVAR(reload_flag, $1)=$reload_flag
7424 _LT_TAGVAR(reload_cmds, $1)=$reload_cmds
7425
7426 ## CAVEAT EMPTOR:
7427 ## There is no encapsulation within the following macros, do not change
7428 ## the running order or otherwise move them around unless you know exactly
7429 ## what you are doing...
7430 if test -n "$compiler"; then
7431   _LT_COMPILER_NO_RTTI($1)
7432   _LT_COMPILER_PIC($1)
7433   _LT_COMPILER_C_O($1)
7434   _LT_COMPILER_FILE_LOCKS($1)
7435   _LT_LINKER_SHLIBS($1)
7436   _LT_LINKER_HARDCODE_LIBPATH($1)
7437
7438   _LT_CONFIG($1)
7439 fi
7440
7441 AC_LANG_RESTORE
7442
7443 GCC=$lt_save_GCC
7444 CC=$lt_save_CC
7445 CFLAGS=$lt_save_CFLAGS
7446 ])# _LT_LANG_GCJ_CONFIG
7447
7448
7449 # _LT_LANG_RC_CONFIG([TAG])
7450 # -------------------------
7451 # Ensure that the configuration variables for the Windows resource compiler
7452 # are suitably defined.  These variables are subsequently used by _LT_CONFIG
7453 # to write the compiler configuration to `libtool'.
7454 m4_defun([_LT_LANG_RC_CONFIG],
7455 [AC_REQUIRE([LT_PROG_RC])dnl
7456 AC_LANG_SAVE
7457
7458 # Source file extension for RC test sources.
7459 ac_ext=rc
7460
7461 # Object file extension for compiled RC test sources.
7462 objext=o
7463 _LT_TAGVAR(objext, $1)=$objext
7464
7465 # Code to be used in simple compile tests
7466 lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
7467
7468 # Code to be used in simple link tests
7469 lt_simple_link_test_code="$lt_simple_compile_test_code"
7470
7471 # ltmain only uses $CC for tagged configurations so make sure $CC is set.
7472 _LT_TAG_COMPILER
7473
7474 # save warnings/boilerplate of simple test code
7475 _LT_COMPILER_BOILERPLATE
7476 _LT_LINKER_BOILERPLATE
7477
7478 # Allow CC to be a program name with arguments.
7479 lt_save_CC="$CC"
7480 lt_save_CFLAGS=$CFLAGS
7481 lt_save_GCC=$GCC
7482 GCC=
7483 CC=${RC-"windres"}
7484 CFLAGS=
7485 compiler=$CC
7486 _LT_TAGVAR(compiler, $1)=$CC
7487 _LT_CC_BASENAME([$compiler])
7488 _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
7489
7490 if test -n "$compiler"; then
7491   :
7492   _LT_CONFIG($1)
7493 fi
7494
7495 GCC=$lt_save_GCC
7496 AC_LANG_RESTORE
7497 CC=$lt_save_CC
7498 CFLAGS=$lt_save_CFLAGS
7499 ])# _LT_LANG_RC_CONFIG
7500
7501
7502 # LT_PROG_GCJ
7503 # -----------
7504 AC_DEFUN([LT_PROG_GCJ],
7505 [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
7506   [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
7507     [AC_CHECK_TOOL(GCJ, gcj,)
7508       test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
7509       AC_SUBST(GCJFLAGS)])])[]dnl
7510 ])
7511
7512 # Old name:
7513 AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
7514 dnl aclocal-1.4 backwards compatibility:
7515 dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
7516
7517
7518 # LT_PROG_RC
7519 # ----------
7520 AC_DEFUN([LT_PROG_RC],
7521 [AC_CHECK_TOOL(RC, windres,)
7522 ])
7523
7524 # Old name:
7525 AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
7526 dnl aclocal-1.4 backwards compatibility:
7527 dnl AC_DEFUN([LT_AC_PROG_RC], [])
7528
7529
7530 # _LT_DECL_EGREP
7531 # --------------
7532 # If we don't have a new enough Autoconf to choose the best grep
7533 # available, choose the one first in the user's PATH.
7534 m4_defun([_LT_DECL_EGREP],
7535 [AC_REQUIRE([AC_PROG_EGREP])dnl
7536 AC_REQUIRE([AC_PROG_FGREP])dnl
7537 test -z "$GREP" && GREP=grep
7538 _LT_DECL([], [GREP], [1], [A grep program that handles long lines])
7539 _LT_DECL([], [EGREP], [1], [An ERE matcher])
7540 _LT_DECL([], [FGREP], [1], [A literal string matcher])
7541 dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
7542 AC_SUBST([GREP])
7543 ])
7544
7545
7546 # _LT_DECL_OBJDUMP
7547 # --------------
7548 # If we don't have a new enough Autoconf to choose the best objdump
7549 # available, choose the one first in the user's PATH.
7550 m4_defun([_LT_DECL_OBJDUMP],
7551 [AC_CHECK_TOOL(OBJDUMP, objdump, false)
7552 test -z "$OBJDUMP" && OBJDUMP=objdump
7553 _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
7554 AC_SUBST([OBJDUMP])
7555 ])
7556
7557 # _LT_DECL_DLLTOOL
7558 # ----------------
7559 # Ensure DLLTOOL variable is set.
7560 m4_defun([_LT_DECL_DLLTOOL],
7561 [AC_CHECK_TOOL(DLLTOOL, dlltool, false)
7562 test -z "$DLLTOOL" && DLLTOOL=dlltool
7563 _LT_DECL([], [DLLTOOL], [1], [DLL creation program])
7564 AC_SUBST([DLLTOOL])
7565 ])
7566
7567 # _LT_DECL_SED
7568 # ------------
7569 # Check for a fully-functional sed program, that truncates
7570 # as few characters as possible.  Prefer GNU sed if found.
7571 m4_defun([_LT_DECL_SED],
7572 [AC_PROG_SED
7573 test -z "$SED" && SED=sed
7574 Xsed="$SED -e 1s/^X//"
7575 _LT_DECL([], [SED], [1], [A sed program that does not truncate output])
7576 _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
7577     [Sed that helps us avoid accidentally triggering echo(1) options like -n])
7578 ])# _LT_DECL_SED
7579
7580 m4_ifndef([AC_PROG_SED], [
7581 ############################################################
7582 # NOTE: This macro has been submitted for inclusion into   #
7583 #  GNU Autoconf as AC_PROG_SED.  When it is available in   #
7584 #  a released version of Autoconf we should remove this    #
7585 #  macro and use it instead.                               #
7586 ############################################################
7587
7588 m4_defun([AC_PROG_SED],
7589 [AC_MSG_CHECKING([for a sed that does not truncate output])
7590 AC_CACHE_VAL(lt_cv_path_SED,
7591 [# Loop through the user's path and test for sed and gsed.
7592 # Then use that list of sed's as ones to test for truncation.
7593 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
7594 for as_dir in $PATH
7595 do
7596   IFS=$as_save_IFS
7597   test -z "$as_dir" && as_dir=.
7598   for lt_ac_prog in sed gsed; do
7599     for ac_exec_ext in '' $ac_executable_extensions; do
7600       if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
7601         lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
7602       fi
7603     done
7604   done
7605 done
7606 IFS=$as_save_IFS
7607 lt_ac_max=0
7608 lt_ac_count=0
7609 # Add /usr/xpg4/bin/sed as it is typically found on Solaris
7610 # along with /bin/sed that truncates output.
7611 for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
7612   test ! -f $lt_ac_sed && continue
7613   cat /dev/null > conftest.in
7614   lt_ac_count=0
7615   echo $ECHO_N "0123456789$ECHO_C" >conftest.in
7616   # Check for GNU sed and select it if it is found.
7617   if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
7618     lt_cv_path_SED=$lt_ac_sed
7619     break
7620   fi
7621   while true; do
7622     cat conftest.in conftest.in >conftest.tmp
7623     mv conftest.tmp conftest.in
7624     cp conftest.in conftest.nl
7625     echo >>conftest.nl
7626     $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
7627     cmp -s conftest.out conftest.nl || break
7628     # 10000 chars as input seems more than enough
7629     test $lt_ac_count -gt 10 && break
7630     lt_ac_count=`expr $lt_ac_count + 1`
7631     if test $lt_ac_count -gt $lt_ac_max; then
7632       lt_ac_max=$lt_ac_count
7633       lt_cv_path_SED=$lt_ac_sed
7634     fi
7635   done
7636 done
7637 ])
7638 SED=$lt_cv_path_SED
7639 AC_SUBST([SED])
7640 AC_MSG_RESULT([$SED])
7641 ])#AC_PROG_SED
7642 ])#m4_ifndef
7643
7644 # Old name:
7645 AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
7646 dnl aclocal-1.4 backwards compatibility:
7647 dnl AC_DEFUN([LT_AC_PROG_SED], [])
7648
7649
7650 # _LT_CHECK_SHELL_FEATURES
7651 # ------------------------
7652 # Find out whether the shell is Bourne or XSI compatible,
7653 # or has some other useful features.
7654 m4_defun([_LT_CHECK_SHELL_FEATURES],
7655 [AC_MSG_CHECKING([whether the shell understands some XSI constructs])
7656 # Try some XSI features
7657 xsi_shell=no
7658 ( _lt_dummy="a/b/c"
7659   test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
7660       = c,a/b,b/c, \
7661     && eval 'test $(( 1 + 1 )) -eq 2 \
7662     && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
7663   && xsi_shell=yes
7664 AC_MSG_RESULT([$xsi_shell])
7665 _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
7666
7667 AC_MSG_CHECKING([whether the shell understands "+="])
7668 lt_shell_append=no
7669 ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
7670     >/dev/null 2>&1 \
7671   && lt_shell_append=yes
7672 AC_MSG_RESULT([$lt_shell_append])
7673 _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
7674
7675 if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
7676   lt_unset=unset
7677 else
7678   lt_unset=false
7679 fi
7680 _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
7681
7682 # test EBCDIC or ASCII
7683 case `echo X|tr X '\101'` in
7684  A) # ASCII based system
7685     # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
7686   lt_SP2NL='tr \040 \012'
7687   lt_NL2SP='tr \015\012 \040\040'
7688   ;;
7689  *) # EBCDIC based system
7690   lt_SP2NL='tr \100 \n'
7691   lt_NL2SP='tr \r\n \100\100'
7692   ;;
7693 esac
7694 _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
7695 _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
7696 ])# _LT_CHECK_SHELL_FEATURES
7697
7698
7699 # _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
7700 # ------------------------------------------------------
7701 # In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
7702 # '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
7703 m4_defun([_LT_PROG_FUNCTION_REPLACE],
7704 [dnl {
7705 sed -e '/^$1 ()$/,/^} # $1 /c\
7706 $1 ()\
7707 {\
7708 m4_bpatsubsts([$2], [$], [\\], [^\([     ]\)], [\\\1])
7709 } # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
7710   && mv -f "$cfgfile.tmp" "$cfgfile" \
7711     || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
7712 test 0 -eq $? || _lt_function_replace_fail=:
7713 ])
7714
7715
7716 # _LT_PROG_REPLACE_SHELLFNS
7717 # -------------------------
7718 # Replace existing portable implementations of several shell functions with
7719 # equivalent extended shell implementations where those features are available..
7720 m4_defun([_LT_PROG_REPLACE_SHELLFNS],
7721 [if test x"$xsi_shell" = xyes; then
7722   _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
7723     case ${1} in
7724       */*) func_dirname_result="${1%/*}${2}" ;;
7725       *  ) func_dirname_result="${3}" ;;
7726     esac])
7727
7728   _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
7729     func_basename_result="${1##*/}"])
7730
7731   _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
7732     case ${1} in
7733       */*) func_dirname_result="${1%/*}${2}" ;;
7734       *  ) func_dirname_result="${3}" ;;
7735     esac
7736     func_basename_result="${1##*/}"])
7737
7738   _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
7739     # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
7740     # positional parameters, so assign one to ordinary parameter first.
7741     func_stripname_result=${3}
7742     func_stripname_result=${func_stripname_result#"${1}"}
7743     func_stripname_result=${func_stripname_result%"${2}"}])
7744
7745   _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
7746     func_split_long_opt_name=${1%%=*}
7747     func_split_long_opt_arg=${1#*=}])
7748
7749   _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
7750     func_split_short_opt_arg=${1#??}
7751     func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
7752
7753   _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
7754     case ${1} in
7755       *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
7756       *)    func_lo2o_result=${1} ;;
7757     esac])
7758
7759   _LT_PROG_FUNCTION_REPLACE([func_xform], [    func_xform_result=${1%.*}.lo])
7760
7761   _LT_PROG_FUNCTION_REPLACE([func_arith], [    func_arith_result=$(( $[*] ))])
7762
7763   _LT_PROG_FUNCTION_REPLACE([func_len], [    func_len_result=${#1}])
7764 fi
7765
7766 if test x"$lt_shell_append" = xyes; then
7767   _LT_PROG_FUNCTION_REPLACE([func_append], [    eval "${1}+=\\${2}"])
7768
7769   _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
7770     func_quote_for_eval "${2}"
7771 dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
7772     eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
7773
7774   # Save a `func_append' function call where possible by direct use of '+='
7775   sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
7776     && mv -f "$cfgfile.tmp" "$cfgfile" \
7777       || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
7778   test 0 -eq $? || _lt_function_replace_fail=:
7779 else
7780   # Save a `func_append' function call even when '+=' is not available
7781   sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
7782     && mv -f "$cfgfile.tmp" "$cfgfile" \
7783       || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
7784   test 0 -eq $? || _lt_function_replace_fail=:
7785 fi
7786
7787 if test x"$_lt_function_replace_fail" = x":"; then
7788   AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
7789 fi
7790 ])
7791
7792 # _LT_PATH_CONVERSION_FUNCTIONS
7793 # -----------------------------
7794 # Determine which file name conversion functions should be used by
7795 # func_to_host_file (and, implicitly, by func_to_host_path).  These are needed
7796 # for certain cross-compile configurations and native mingw.
7797 m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
7798 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
7799 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
7800 AC_MSG_CHECKING([how to convert $build file names to $host format])
7801 AC_CACHE_VAL(lt_cv_to_host_file_cmd,
7802 [case $host in
7803   *-*-mingw* )
7804     case $build in
7805       *-*-mingw* ) # actually msys
7806         lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
7807         ;;
7808       *-*-cygwin* )
7809         lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
7810         ;;
7811       * ) # otherwise, assume *nix
7812         lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
7813         ;;
7814     esac
7815     ;;
7816   *-*-cygwin* )
7817     case $build in
7818       *-*-mingw* ) # actually msys
7819         lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
7820         ;;
7821       *-*-cygwin* )
7822         lt_cv_to_host_file_cmd=func_convert_file_noop
7823         ;;
7824       * ) # otherwise, assume *nix
7825         lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
7826         ;;
7827     esac
7828     ;;
7829   * ) # unhandled hosts (and "normal" native builds)
7830     lt_cv_to_host_file_cmd=func_convert_file_noop
7831     ;;
7832 esac
7833 ])
7834 to_host_file_cmd=$lt_cv_to_host_file_cmd
7835 AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
7836 _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
7837          [0], [convert $build file names to $host format])dnl
7838
7839 AC_MSG_CHECKING([how to convert $build file names to toolchain format])
7840 AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
7841 [#assume ordinary cross tools, or native build.
7842 lt_cv_to_tool_file_cmd=func_convert_file_noop
7843 case $host in
7844   *-*-mingw* )
7845     case $build in
7846       *-*-mingw* ) # actually msys
7847         lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
7848         ;;
7849     esac
7850     ;;
7851 esac
7852 ])
7853 to_tool_file_cmd=$lt_cv_to_tool_file_cmd
7854 AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
7855 _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
7856          [0], [convert $build files to toolchain format])dnl
7857 ])# _LT_PATH_CONVERSION_FUNCTIONS