1ca08ab68Smrg# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
2ca08ab68Smrg#
3eceda581Smrg#   Copyright (C) 1996-2001, 2003-2019, 2021-2022 Free Software
4eceda581Smrg#   Foundation, Inc.
5ca08ab68Smrg#   Written by Gordon Matzigkeit, 1996
6ca08ab68Smrg#
7ca08ab68Smrg# This file is free software; the Free Software Foundation gives
8ca08ab68Smrg# unlimited permission to copy and/or distribute it, with or without
9ca08ab68Smrg# modifications, as long as this notice is preserved.
10ca08ab68Smrg
11ca08ab68Smrgm4_define([_LT_COPYING], [dnl
12953daebaSmrg# Copyright (C) 2014 Free Software Foundation, Inc.
13953daebaSmrg# This is free software; see the source for copying conditions.  There is NO
14953daebaSmrg# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15953daebaSmrg
16953daebaSmrg# GNU Libtool is free software; you can redistribute it and/or modify
17953daebaSmrg# it under the terms of the GNU General Public License as published by
18953daebaSmrg# the Free Software Foundation; either version 2 of of the License, or
19953daebaSmrg# (at your option) any later version.
20ca08ab68Smrg#
21953daebaSmrg# As a special exception to the GNU General Public License, if you
22953daebaSmrg# distribute this file as part of a program or library that is built
23953daebaSmrg# using GNU Libtool, you may include this file under the  same
24953daebaSmrg# distribution terms that you use for the rest of that program.
25ca08ab68Smrg#
26953daebaSmrg# GNU Libtool is distributed in the hope that it will be useful, but
27953daebaSmrg# WITHOUT ANY WARRANTY; without even the implied warranty of
28ca08ab68Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
29ca08ab68Smrg# GNU General Public License for more details.
30ca08ab68Smrg#
31ca08ab68Smrg# You should have received a copy of the GNU General Public License
32953daebaSmrg# along with this program.  If not, see <http://www.gnu.org/licenses/>.
33ca08ab68Smrg])
34ca08ab68Smrg
35eceda581Smrg# serial 59 LT_INIT
36ca08ab68Smrg
37ca08ab68Smrg
38ca08ab68Smrg# LT_PREREQ(VERSION)
39ca08ab68Smrg# ------------------
40ca08ab68Smrg# Complain and exit if this libtool version is less that VERSION.
41ca08ab68Smrgm4_defun([LT_PREREQ],
42ca08ab68Smrg[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
43ca08ab68Smrg       [m4_default([$3],
44ca08ab68Smrg		   [m4_fatal([Libtool version $1 or higher is required],
45ca08ab68Smrg		             63)])],
46ca08ab68Smrg       [$2])])
47ca08ab68Smrg
48ca08ab68Smrg
49ca08ab68Smrg# _LT_CHECK_BUILDDIR
50ca08ab68Smrg# ------------------
51ca08ab68Smrg# Complain if the absolute build directory name contains unusual characters
52ca08ab68Smrgm4_defun([_LT_CHECK_BUILDDIR],
53ca08ab68Smrg[case `pwd` in
54ca08ab68Smrg  *\ * | *\	*)
55ca08ab68Smrg    AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
56ca08ab68Smrgesac
57ca08ab68Smrg])
58ca08ab68Smrg
59ca08ab68Smrg
60ca08ab68Smrg# LT_INIT([OPTIONS])
61ca08ab68Smrg# ------------------
62ca08ab68SmrgAC_DEFUN([LT_INIT],
63953daebaSmrg[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK
64ca08ab68SmrgAC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
65ca08ab68SmrgAC_BEFORE([$0], [LT_LANG])dnl
66ca08ab68SmrgAC_BEFORE([$0], [LT_OUTPUT])dnl
67ca08ab68SmrgAC_BEFORE([$0], [LTDL_INIT])dnl
68ca08ab68Smrgm4_require([_LT_CHECK_BUILDDIR])dnl
69ca08ab68Smrg
70ca08ab68Smrgdnl Autoconf doesn't catch unexpanded LT_ macros by default:
71ca08ab68Smrgm4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
72ca08ab68Smrgm4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
73ca08ab68Smrgdnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
74ca08ab68Smrgdnl unless we require an AC_DEFUNed macro:
75ca08ab68SmrgAC_REQUIRE([LTOPTIONS_VERSION])dnl
76ca08ab68SmrgAC_REQUIRE([LTSUGAR_VERSION])dnl
77ca08ab68SmrgAC_REQUIRE([LTVERSION_VERSION])dnl
78ca08ab68SmrgAC_REQUIRE([LTOBSOLETE_VERSION])dnl
79ca08ab68Smrgm4_require([_LT_PROG_LTMAIN])dnl
80ca08ab68Smrg
81ca08ab68Smrg_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
82ca08ab68Smrg
83ca08ab68Smrgdnl Parse OPTIONS
84ca08ab68Smrg_LT_SET_OPTIONS([$0], [$1])
85ca08ab68Smrg
86ca08ab68Smrg# This can be used to rebuild libtool when needed
87953daebaSmrgLIBTOOL_DEPS=$ltmain
88ca08ab68Smrg
89ca08ab68Smrg# Always use our own libtool.
90ca08ab68SmrgLIBTOOL='$(SHELL) $(top_builddir)/libtool'
91ca08ab68SmrgAC_SUBST(LIBTOOL)dnl
92ca08ab68Smrg
93ca08ab68Smrg_LT_SETUP
94ca08ab68Smrg
95ca08ab68Smrg# Only expand once:
96ca08ab68Smrgm4_define([LT_INIT])
97ca08ab68Smrg])# LT_INIT
98ca08ab68Smrg
99ca08ab68Smrg# Old names:
100ca08ab68SmrgAU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
101ca08ab68SmrgAU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
102ca08ab68Smrgdnl aclocal-1.4 backwards compatibility:
103ca08ab68Smrgdnl AC_DEFUN([AC_PROG_LIBTOOL], [])
104ca08ab68Smrgdnl AC_DEFUN([AM_PROG_LIBTOOL], [])
105ca08ab68Smrg
106ca08ab68Smrg
107953daebaSmrg# _LT_PREPARE_CC_BASENAME
108953daebaSmrg# -----------------------
109953daebaSmrgm4_defun([_LT_PREPARE_CC_BASENAME], [
110953daebaSmrg# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
111953daebaSmrgfunc_cc_basename ()
112953daebaSmrg{
113953daebaSmrg    for cc_temp in @S|@*""; do
114953daebaSmrg      case $cc_temp in
115953daebaSmrg        compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
116953daebaSmrg        distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
117953daebaSmrg        \-*) ;;
118953daebaSmrg        *) break;;
119953daebaSmrg      esac
120953daebaSmrg    done
121953daebaSmrg    func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
122953daebaSmrg}
123953daebaSmrg])# _LT_PREPARE_CC_BASENAME
124953daebaSmrg
125953daebaSmrg
126ca08ab68Smrg# _LT_CC_BASENAME(CC)
127ca08ab68Smrg# -------------------
128953daebaSmrg# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME,
129953daebaSmrg# but that macro is also expanded into generated libtool script, which
130953daebaSmrg# arranges for $SED and $ECHO to be set by different means.
131ca08ab68Smrgm4_defun([_LT_CC_BASENAME],
132953daebaSmrg[m4_require([_LT_PREPARE_CC_BASENAME])dnl
133953daebaSmrgAC_REQUIRE([_LT_DECL_SED])dnl
134953daebaSmrgAC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
135953daebaSmrgfunc_cc_basename $1
136953daebaSmrgcc_basename=$func_cc_basename_result
137ca08ab68Smrg])
138ca08ab68Smrg
139ca08ab68Smrg
140ca08ab68Smrg# _LT_FILEUTILS_DEFAULTS
141ca08ab68Smrg# ----------------------
142ca08ab68Smrg# It is okay to use these file commands and assume they have been set
143953daebaSmrg# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'.
144ca08ab68Smrgm4_defun([_LT_FILEUTILS_DEFAULTS],
145ca08ab68Smrg[: ${CP="cp -f"}
146ca08ab68Smrg: ${MV="mv -f"}
147ca08ab68Smrg: ${RM="rm -f"}
148ca08ab68Smrg])# _LT_FILEUTILS_DEFAULTS
149ca08ab68Smrg
150ca08ab68Smrg
151ca08ab68Smrg# _LT_SETUP
152ca08ab68Smrg# ---------
153ca08ab68Smrgm4_defun([_LT_SETUP],
154ca08ab68Smrg[AC_REQUIRE([AC_CANONICAL_HOST])dnl
155ca08ab68SmrgAC_REQUIRE([AC_CANONICAL_BUILD])dnl
156ca08ab68SmrgAC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
157ca08ab68SmrgAC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
158ca08ab68Smrg
159ca08ab68Smrg_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
160ca08ab68Smrgdnl
161ca08ab68Smrg_LT_DECL([], [host_alias], [0], [The host system])dnl
162ca08ab68Smrg_LT_DECL([], [host], [0])dnl
163ca08ab68Smrg_LT_DECL([], [host_os], [0])dnl
164ca08ab68Smrgdnl
165ca08ab68Smrg_LT_DECL([], [build_alias], [0], [The build system])dnl
166ca08ab68Smrg_LT_DECL([], [build], [0])dnl
167ca08ab68Smrg_LT_DECL([], [build_os], [0])dnl
168ca08ab68Smrgdnl
169ca08ab68SmrgAC_REQUIRE([AC_PROG_CC])dnl
170ca08ab68SmrgAC_REQUIRE([LT_PATH_LD])dnl
171ca08ab68SmrgAC_REQUIRE([LT_PATH_NM])dnl
172ca08ab68Smrgdnl
173ca08ab68SmrgAC_REQUIRE([AC_PROG_LN_S])dnl
174ca08ab68Smrgtest -z "$LN_S" && LN_S="ln -s"
175ca08ab68Smrg_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
176ca08ab68Smrgdnl
177ca08ab68SmrgAC_REQUIRE([LT_CMD_MAX_LEN])dnl
178ca08ab68Smrg_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
179ca08ab68Smrg_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
180ca08ab68Smrgdnl
181ca08ab68Smrgm4_require([_LT_FILEUTILS_DEFAULTS])dnl
182ca08ab68Smrgm4_require([_LT_CHECK_SHELL_FEATURES])dnl
183ca08ab68Smrgm4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
184ca08ab68Smrgm4_require([_LT_CMD_RELOAD])dnl
185eceda581Smrgm4_require([_LT_DECL_FILECMD])dnl
186ca08ab68Smrgm4_require([_LT_CHECK_MAGIC_METHOD])dnl
187ca08ab68Smrgm4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
188ca08ab68Smrgm4_require([_LT_CMD_OLD_ARCHIVE])dnl
189ca08ab68Smrgm4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
190ca08ab68Smrgm4_require([_LT_WITH_SYSROOT])dnl
191953daebaSmrgm4_require([_LT_CMD_TRUNCATE])dnl
192ca08ab68Smrg
193ca08ab68Smrg_LT_CONFIG_LIBTOOL_INIT([
194953daebaSmrg# See if we are running on zsh, and set the options that allow our
195ca08ab68Smrg# commands through without removal of \ escapes INIT.
196953daebaSmrgif test -n "\${ZSH_VERSION+set}"; then
197ca08ab68Smrg   setopt NO_GLOB_SUBST
198ca08ab68Smrgfi
199ca08ab68Smrg])
200953daebaSmrgif test -n "${ZSH_VERSION+set}"; then
201ca08ab68Smrg   setopt NO_GLOB_SUBST
202ca08ab68Smrgfi
203ca08ab68Smrg
204ca08ab68Smrg_LT_CHECK_OBJDIR
205ca08ab68Smrg
206ca08ab68Smrgm4_require([_LT_TAG_COMPILER])dnl
207ca08ab68Smrg
208ca08ab68Smrgcase $host_os in
209ca08ab68Smrgaix3*)
210ca08ab68Smrg  # AIX sometimes has problems with the GCC collect2 program.  For some
211ca08ab68Smrg  # reason, if we set the COLLECT_NAMES environment variable, the problems
212ca08ab68Smrg  # vanish in a puff of smoke.
213953daebaSmrg  if test set != "${COLLECT_NAMES+set}"; then
214ca08ab68Smrg    COLLECT_NAMES=
215ca08ab68Smrg    export COLLECT_NAMES
216ca08ab68Smrg  fi
217ca08ab68Smrg  ;;
218ca08ab68Smrgesac
219ca08ab68Smrg
220ca08ab68Smrg# Global variables:
221ca08ab68Smrgofile=libtool
222ca08ab68Smrgcan_build_shared=yes
223ca08ab68Smrg
224eceda581Smrg# All known linkers require a '.a' archive for static linking (except MSVC and
225eceda581Smrg# ICC, which need '.lib').
226ca08ab68Smrglibext=a
227ca08ab68Smrg
228953daebaSmrgwith_gnu_ld=$lt_cv_prog_gnu_ld
229ca08ab68Smrg
230953daebaSmrgold_CC=$CC
231953daebaSmrgold_CFLAGS=$CFLAGS
232ca08ab68Smrg
233ca08ab68Smrg# Set sane defaults for various variables
234ca08ab68Smrgtest -z "$CC" && CC=cc
235ca08ab68Smrgtest -z "$LTCC" && LTCC=$CC
236ca08ab68Smrgtest -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
237ca08ab68Smrgtest -z "$LD" && LD=ld
238ca08ab68Smrgtest -z "$ac_objext" && ac_objext=o
239ca08ab68Smrg
240ca08ab68Smrg_LT_CC_BASENAME([$compiler])
241ca08ab68Smrg
242ca08ab68Smrg# Only perform the check for file, if the check method requires it
243ca08ab68Smrgtest -z "$MAGIC_CMD" && MAGIC_CMD=file
244ca08ab68Smrgcase $deplibs_check_method in
245ca08ab68Smrgfile_magic*)
246ca08ab68Smrg  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
247ca08ab68Smrg    _LT_PATH_MAGIC
248ca08ab68Smrg  fi
249ca08ab68Smrg  ;;
250ca08ab68Smrgesac
251ca08ab68Smrg
252ca08ab68Smrg# Use C for the default configuration in the libtool script
253ca08ab68SmrgLT_SUPPORTED_TAG([CC])
254ca08ab68Smrg_LT_LANG_C_CONFIG
255ca08ab68Smrg_LT_LANG_DEFAULT_CONFIG
256ca08ab68Smrg_LT_CONFIG_COMMANDS
257ca08ab68Smrg])# _LT_SETUP
258ca08ab68Smrg
259ca08ab68Smrg
260ca08ab68Smrg# _LT_PREPARE_SED_QUOTE_VARS
261ca08ab68Smrg# --------------------------
262ca08ab68Smrg# Define a few sed substitution that help us do robust quoting.
263ca08ab68Smrgm4_defun([_LT_PREPARE_SED_QUOTE_VARS],
264ca08ab68Smrg[# Backslashify metacharacters that are still active within
265ca08ab68Smrg# double-quoted strings.
266ca08ab68Smrgsed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
267ca08ab68Smrg
268ca08ab68Smrg# Same as above, but do not quote variable references.
269ca08ab68Smrgdouble_quote_subst='s/\([["`\\]]\)/\\\1/g'
270ca08ab68Smrg
271ca08ab68Smrg# Sed substitution to delay expansion of an escaped shell variable in a
272ca08ab68Smrg# double_quote_subst'ed string.
273ca08ab68Smrgdelay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
274ca08ab68Smrg
275ca08ab68Smrg# Sed substitution to delay expansion of an escaped single quote.
276ca08ab68Smrgdelay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
277ca08ab68Smrg
278ca08ab68Smrg# Sed substitution to avoid accidental globbing in evaled expressions
279ca08ab68Smrgno_glob_subst='s/\*/\\\*/g'
280ca08ab68Smrg])
281ca08ab68Smrg
282ca08ab68Smrg# _LT_PROG_LTMAIN
283ca08ab68Smrg# ---------------
284953daebaSmrg# Note that this code is called both from 'configure', and 'config.status'
285ca08ab68Smrg# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
286953daebaSmrg# 'config.status' has no value for ac_aux_dir unless we are using Automake,
287ca08ab68Smrg# so we pass a copy along to make sure it has a sensible value anyway.
288ca08ab68Smrgm4_defun([_LT_PROG_LTMAIN],
289ca08ab68Smrg[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
290ca08ab68Smrg_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
291953daebaSmrgltmain=$ac_aux_dir/ltmain.sh
292ca08ab68Smrg])# _LT_PROG_LTMAIN
293ca08ab68Smrg
294ca08ab68Smrg
295ca08ab68Smrg## ------------------------------------- ##
296ca08ab68Smrg## Accumulate code for creating libtool. ##
297ca08ab68Smrg## ------------------------------------- ##
298ca08ab68Smrg
299ca08ab68Smrg# So that we can recreate a full libtool script including additional
300ca08ab68Smrg# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
301953daebaSmrg# in macros and then make a single call at the end using the 'libtool'
302ca08ab68Smrg# label.
303ca08ab68Smrg
304ca08ab68Smrg
305ca08ab68Smrg# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
306ca08ab68Smrg# ----------------------------------------
307ca08ab68Smrg# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
308ca08ab68Smrgm4_define([_LT_CONFIG_LIBTOOL_INIT],
309ca08ab68Smrg[m4_ifval([$1],
310ca08ab68Smrg          [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
311ca08ab68Smrg                     [$1
312ca08ab68Smrg])])])
313ca08ab68Smrg
314ca08ab68Smrg# Initialize.
315ca08ab68Smrgm4_define([_LT_OUTPUT_LIBTOOL_INIT])
316ca08ab68Smrg
317ca08ab68Smrg
318ca08ab68Smrg# _LT_CONFIG_LIBTOOL([COMMANDS])
319ca08ab68Smrg# ------------------------------
320ca08ab68Smrg# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
321ca08ab68Smrgm4_define([_LT_CONFIG_LIBTOOL],
322ca08ab68Smrg[m4_ifval([$1],
323ca08ab68Smrg          [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
324ca08ab68Smrg                     [$1
325ca08ab68Smrg])])])
326ca08ab68Smrg
327ca08ab68Smrg# Initialize.
328ca08ab68Smrgm4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
329ca08ab68Smrg
330ca08ab68Smrg
331ca08ab68Smrg# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
332ca08ab68Smrg# -----------------------------------------------------
333ca08ab68Smrgm4_defun([_LT_CONFIG_SAVE_COMMANDS],
334ca08ab68Smrg[_LT_CONFIG_LIBTOOL([$1])
335ca08ab68Smrg_LT_CONFIG_LIBTOOL_INIT([$2])
336ca08ab68Smrg])
337ca08ab68Smrg
338ca08ab68Smrg
339ca08ab68Smrg# _LT_FORMAT_COMMENT([COMMENT])
340ca08ab68Smrg# -----------------------------
341ca08ab68Smrg# Add leading comment marks to the start of each line, and a trailing
342ca08ab68Smrg# full-stop to the whole comment if one is not present already.
343ca08ab68Smrgm4_define([_LT_FORMAT_COMMENT],
344ca08ab68Smrg[m4_ifval([$1], [
345ca08ab68Smrgm4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
346ca08ab68Smrg              [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
347ca08ab68Smrg)])
348ca08ab68Smrg
349ca08ab68Smrg
350ca08ab68Smrg
351ca08ab68Smrg## ------------------------ ##
352ca08ab68Smrg## FIXME: Eliminate VARNAME ##
353ca08ab68Smrg## ------------------------ ##
354ca08ab68Smrg
355ca08ab68Smrg
356ca08ab68Smrg# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
357ca08ab68Smrg# -------------------------------------------------------------------
358ca08ab68Smrg# CONFIGNAME is the name given to the value in the libtool script.
359ca08ab68Smrg# VARNAME is the (base) name used in the configure script.
360ca08ab68Smrg# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
361ca08ab68Smrg# VARNAME.  Any other value will be used directly.
362ca08ab68Smrgm4_define([_LT_DECL],
363ca08ab68Smrg[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
364ca08ab68Smrg    [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
365ca08ab68Smrg	[m4_ifval([$1], [$1], [$2])])
366ca08ab68Smrg    lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
367ca08ab68Smrg    m4_ifval([$4],
368ca08ab68Smrg	[lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
369ca08ab68Smrg    lt_dict_add_subkey([lt_decl_dict], [$2],
370ca08ab68Smrg	[tagged?], [m4_ifval([$5], [yes], [no])])])
371ca08ab68Smrg])
372ca08ab68Smrg
373ca08ab68Smrg
374ca08ab68Smrg# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
375ca08ab68Smrg# --------------------------------------------------------
376ca08ab68Smrgm4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
377ca08ab68Smrg
378ca08ab68Smrg
379ca08ab68Smrg# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
380ca08ab68Smrg# ------------------------------------------------
381ca08ab68Smrgm4_define([lt_decl_tag_varnames],
382ca08ab68Smrg[_lt_decl_filter([tagged?], [yes], $@)])
383ca08ab68Smrg
384ca08ab68Smrg
385ca08ab68Smrg# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
386ca08ab68Smrg# ---------------------------------------------------------
387ca08ab68Smrgm4_define([_lt_decl_filter],
388ca08ab68Smrg[m4_case([$#],
389ca08ab68Smrg  [0], [m4_fatal([$0: too few arguments: $#])],
390ca08ab68Smrg  [1], [m4_fatal([$0: too few arguments: $#: $1])],
391ca08ab68Smrg  [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
392ca08ab68Smrg  [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
393ca08ab68Smrg  [lt_dict_filter([lt_decl_dict], $@)])[]dnl
394ca08ab68Smrg])
395ca08ab68Smrg
396ca08ab68Smrg
397ca08ab68Smrg# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
398ca08ab68Smrg# --------------------------------------------------
399ca08ab68Smrgm4_define([lt_decl_quote_varnames],
400ca08ab68Smrg[_lt_decl_filter([value], [1], $@)])
401ca08ab68Smrg
402ca08ab68Smrg
403ca08ab68Smrg# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
404ca08ab68Smrg# ---------------------------------------------------
405ca08ab68Smrgm4_define([lt_decl_dquote_varnames],
406ca08ab68Smrg[_lt_decl_filter([value], [2], $@)])
407ca08ab68Smrg
408ca08ab68Smrg
409ca08ab68Smrg# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
410ca08ab68Smrg# ---------------------------------------------------
411ca08ab68Smrgm4_define([lt_decl_varnames_tagged],
412ca08ab68Smrg[m4_assert([$# <= 2])dnl
413ca08ab68Smrg_$0(m4_quote(m4_default([$1], [[, ]])),
414ca08ab68Smrg    m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
415ca08ab68Smrg    m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
416ca08ab68Smrgm4_define([_lt_decl_varnames_tagged],
417ca08ab68Smrg[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
418ca08ab68Smrg
419ca08ab68Smrg
420ca08ab68Smrg# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
421ca08ab68Smrg# ------------------------------------------------
422ca08ab68Smrgm4_define([lt_decl_all_varnames],
423ca08ab68Smrg[_$0(m4_quote(m4_default([$1], [[, ]])),
424ca08ab68Smrg     m4_if([$2], [],
425ca08ab68Smrg	   m4_quote(lt_decl_varnames),
426ca08ab68Smrg	m4_quote(m4_shift($@))))[]dnl
427ca08ab68Smrg])
428ca08ab68Smrgm4_define([_lt_decl_all_varnames],
429ca08ab68Smrg[lt_join($@, lt_decl_varnames_tagged([$1],
430ca08ab68Smrg			lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
431ca08ab68Smrg])
432ca08ab68Smrg
433ca08ab68Smrg
434ca08ab68Smrg# _LT_CONFIG_STATUS_DECLARE([VARNAME])
435ca08ab68Smrg# ------------------------------------
436953daebaSmrg# Quote a variable value, and forward it to 'config.status' so that its
437953daebaSmrg# declaration there will have the same value as in 'configure'.  VARNAME
438ca08ab68Smrg# must have a single quote delimited value for this to work.
439ca08ab68Smrgm4_define([_LT_CONFIG_STATUS_DECLARE],
440ca08ab68Smrg[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
441ca08ab68Smrg
442ca08ab68Smrg
443ca08ab68Smrg# _LT_CONFIG_STATUS_DECLARATIONS
444ca08ab68Smrg# ------------------------------
445ca08ab68Smrg# We delimit libtool config variables with single quotes, so when
446ca08ab68Smrg# we write them to config.status, we have to be sure to quote all
447ca08ab68Smrg# embedded single quotes properly.  In configure, this macro expands
448ca08ab68Smrg# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
449ca08ab68Smrg#
450ca08ab68Smrg#    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
451ca08ab68Smrgm4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
452ca08ab68Smrg[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
453ca08ab68Smrg    [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
454ca08ab68Smrg
455ca08ab68Smrg
456ca08ab68Smrg# _LT_LIBTOOL_TAGS
457ca08ab68Smrg# ----------------
458ca08ab68Smrg# Output comment and list of tags supported by the script
459ca08ab68Smrgm4_defun([_LT_LIBTOOL_TAGS],
460ca08ab68Smrg[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
461953daebaSmrgavailable_tags='_LT_TAGS'dnl
462ca08ab68Smrg])
463ca08ab68Smrg
464ca08ab68Smrg
465ca08ab68Smrg# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
466ca08ab68Smrg# -----------------------------------
467ca08ab68Smrg# Extract the dictionary values for VARNAME (optionally with TAG) and
468ca08ab68Smrg# expand to a commented shell variable setting:
469ca08ab68Smrg#
470ca08ab68Smrg#    # Some comment about what VAR is for.
471ca08ab68Smrg#    visible_name=$lt_internal_name
472ca08ab68Smrgm4_define([_LT_LIBTOOL_DECLARE],
473ca08ab68Smrg[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
474ca08ab68Smrg					   [description])))[]dnl
475ca08ab68Smrgm4_pushdef([_libtool_name],
476ca08ab68Smrg    m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
477ca08ab68Smrgm4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
478ca08ab68Smrg    [0], [_libtool_name=[$]$1],
479ca08ab68Smrg    [1], [_libtool_name=$lt_[]$1],
480ca08ab68Smrg    [2], [_libtool_name=$lt_[]$1],
481ca08ab68Smrg    [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
482ca08ab68Smrgm4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
483ca08ab68Smrg])
484ca08ab68Smrg
485ca08ab68Smrg
486ca08ab68Smrg# _LT_LIBTOOL_CONFIG_VARS
487ca08ab68Smrg# -----------------------
488ca08ab68Smrg# Produce commented declarations of non-tagged libtool config variables
489953daebaSmrg# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool'
490ca08ab68Smrg# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
491ca08ab68Smrg# section) are produced by _LT_LIBTOOL_TAG_VARS.
492ca08ab68Smrgm4_defun([_LT_LIBTOOL_CONFIG_VARS],
493ca08ab68Smrg[m4_foreach([_lt_var],
494ca08ab68Smrg    m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
495ca08ab68Smrg    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
496ca08ab68Smrg
497ca08ab68Smrg
498ca08ab68Smrg# _LT_LIBTOOL_TAG_VARS(TAG)
499ca08ab68Smrg# -------------------------
500ca08ab68Smrgm4_define([_LT_LIBTOOL_TAG_VARS],
501ca08ab68Smrg[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
502ca08ab68Smrg    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
503ca08ab68Smrg
504ca08ab68Smrg
505ca08ab68Smrg# _LT_TAGVAR(VARNAME, [TAGNAME])
506ca08ab68Smrg# ------------------------------
507ca08ab68Smrgm4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
508ca08ab68Smrg
509ca08ab68Smrg
510ca08ab68Smrg# _LT_CONFIG_COMMANDS
511ca08ab68Smrg# -------------------
512ca08ab68Smrg# Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
513ca08ab68Smrg# variables for single and double quote escaping we saved from calls
514ca08ab68Smrg# to _LT_DECL, we can put quote escaped variables declarations
515953daebaSmrg# into 'config.status', and then the shell code to quote escape them in
516953daebaSmrg# for loops in 'config.status'.  Finally, any additional code accumulated
517ca08ab68Smrg# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
518ca08ab68Smrgm4_defun([_LT_CONFIG_COMMANDS],
519ca08ab68Smrg[AC_PROVIDE_IFELSE([LT_OUTPUT],
520ca08ab68Smrg	dnl If the libtool generation code has been placed in $CONFIG_LT,
521ca08ab68Smrg	dnl instead of duplicating it all over again into config.status,
522ca08ab68Smrg	dnl then we will have config.status run $CONFIG_LT later, so it
523ca08ab68Smrg	dnl needs to know what name is stored there:
524ca08ab68Smrg        [AC_CONFIG_COMMANDS([libtool],
525ca08ab68Smrg            [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
526ca08ab68Smrg    dnl If the libtool generation code is destined for config.status,
527ca08ab68Smrg    dnl expand the accumulated commands and init code now:
528ca08ab68Smrg    [AC_CONFIG_COMMANDS([libtool],
529ca08ab68Smrg        [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
530ca08ab68Smrg])#_LT_CONFIG_COMMANDS
531ca08ab68Smrg
532ca08ab68Smrg
533ca08ab68Smrg# Initialize.
534ca08ab68Smrgm4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
535ca08ab68Smrg[
536ca08ab68Smrg
537ca08ab68Smrg# The HP-UX ksh and POSIX shell print the target directory to stdout
538ca08ab68Smrg# if CDPATH is set.
539ca08ab68Smrg(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
540ca08ab68Smrg
541ca08ab68Smrgsed_quote_subst='$sed_quote_subst'
542ca08ab68Smrgdouble_quote_subst='$double_quote_subst'
543ca08ab68Smrgdelay_variable_subst='$delay_variable_subst'
544ca08ab68Smrg_LT_CONFIG_STATUS_DECLARATIONS
545ca08ab68SmrgLTCC='$LTCC'
546ca08ab68SmrgLTCFLAGS='$LTCFLAGS'
547ca08ab68Smrgcompiler='$compiler_DEFAULT'
548ca08ab68Smrg
549ca08ab68Smrg# A function that is used when there is no print builtin or printf.
550ca08ab68Smrgfunc_fallback_echo ()
551ca08ab68Smrg{
552ca08ab68Smrg  eval 'cat <<_LTECHO_EOF
553ca08ab68Smrg\$[]1
554ca08ab68Smrg_LTECHO_EOF'
555ca08ab68Smrg}
556ca08ab68Smrg
557ca08ab68Smrg# Quote evaled strings.
558ca08ab68Smrgfor var in lt_decl_all_varnames([[ \
559ca08ab68Smrg]], lt_decl_quote_varnames); do
560ca08ab68Smrg    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
561ca08ab68Smrg    *[[\\\\\\\`\\"\\\$]]*)
562953daebaSmrg      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
563ca08ab68Smrg      ;;
564ca08ab68Smrg    *)
565ca08ab68Smrg      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
566ca08ab68Smrg      ;;
567ca08ab68Smrg    esac
568ca08ab68Smrgdone
569ca08ab68Smrg
570ca08ab68Smrg# Double-quote double-evaled strings.
571ca08ab68Smrgfor var in lt_decl_all_varnames([[ \
572ca08ab68Smrg]], lt_decl_dquote_varnames); do
573ca08ab68Smrg    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
574ca08ab68Smrg    *[[\\\\\\\`\\"\\\$]]*)
575953daebaSmrg      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
576ca08ab68Smrg      ;;
577ca08ab68Smrg    *)
578ca08ab68Smrg      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
579ca08ab68Smrg      ;;
580ca08ab68Smrg    esac
581ca08ab68Smrgdone
582ca08ab68Smrg
583ca08ab68Smrg_LT_OUTPUT_LIBTOOL_INIT
584ca08ab68Smrg])
585ca08ab68Smrg
586ca08ab68Smrg# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
587ca08ab68Smrg# ------------------------------------
588ca08ab68Smrg# Generate a child script FILE with all initialization necessary to
589ca08ab68Smrg# reuse the environment learned by the parent script, and make the
590ca08ab68Smrg# file executable.  If COMMENT is supplied, it is inserted after the
591953daebaSmrg# '#!' sequence but before initialization text begins.  After this
592ca08ab68Smrg# macro, additional text can be appended to FILE to form the body of
593ca08ab68Smrg# the child script.  The macro ends with non-zero status if the
594ca08ab68Smrg# file could not be fully written (such as if the disk is full).
595ca08ab68Smrgm4_ifdef([AS_INIT_GENERATED],
596ca08ab68Smrg[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
597ca08ab68Smrg[m4_defun([_LT_GENERATED_FILE_INIT],
598ca08ab68Smrg[m4_require([AS_PREPARE])]dnl
599ca08ab68Smrg[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
600ca08ab68Smrg[lt_write_fail=0
601ca08ab68Smrgcat >$1 <<_ASEOF || lt_write_fail=1
602ca08ab68Smrg#! $SHELL
603ca08ab68Smrg# Generated by $as_me.
604ca08ab68Smrg$2
605ca08ab68SmrgSHELL=\${CONFIG_SHELL-$SHELL}
606ca08ab68Smrgexport SHELL
607ca08ab68Smrg_ASEOF
608ca08ab68Smrgcat >>$1 <<\_ASEOF || lt_write_fail=1
609ca08ab68SmrgAS_SHELL_SANITIZE
610ca08ab68Smrg_AS_PREPARE
611ca08ab68Smrgexec AS_MESSAGE_FD>&1
612ca08ab68Smrg_ASEOF
613953daebaSmrgtest 0 = "$lt_write_fail" && chmod +x $1[]dnl
614ca08ab68Smrgm4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
615ca08ab68Smrg
616ca08ab68Smrg# LT_OUTPUT
617ca08ab68Smrg# ---------
618ca08ab68Smrg# This macro allows early generation of the libtool script (before
619ca08ab68Smrg# AC_OUTPUT is called), incase it is used in configure for compilation
620ca08ab68Smrg# tests.
621ca08ab68SmrgAC_DEFUN([LT_OUTPUT],
622ca08ab68Smrg[: ${CONFIG_LT=./config.lt}
623ca08ab68SmrgAC_MSG_NOTICE([creating $CONFIG_LT])
624ca08ab68Smrg_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
625ca08ab68Smrg[# Run this file to recreate a libtool stub with the current configuration.])
626ca08ab68Smrg
627ca08ab68Smrgcat >>"$CONFIG_LT" <<\_LTEOF
628ca08ab68Smrglt_cl_silent=false
629ca08ab68Smrgexec AS_MESSAGE_LOG_FD>>config.log
630ca08ab68Smrg{
631ca08ab68Smrg  echo
632ca08ab68Smrg  AS_BOX([Running $as_me.])
633ca08ab68Smrg} >&AS_MESSAGE_LOG_FD
634ca08ab68Smrg
635ca08ab68Smrglt_cl_help="\
636953daebaSmrg'$as_me' creates a local libtool stub from the current configuration,
637ca08ab68Smrgfor use in further configure time tests before the real libtool is
638ca08ab68Smrggenerated.
639ca08ab68Smrg
640ca08ab68SmrgUsage: $[0] [[OPTIONS]]
641ca08ab68Smrg
642ca08ab68Smrg  -h, --help      print this help, then exit
643ca08ab68Smrg  -V, --version   print version number, then exit
644ca08ab68Smrg  -q, --quiet     do not print progress messages
645ca08ab68Smrg  -d, --debug     don't remove temporary files
646ca08ab68Smrg
647ca08ab68SmrgReport bugs to <bug-libtool@gnu.org>."
648ca08ab68Smrg
649ca08ab68Smrglt_cl_version="\
650ca08ab68Smrgm4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
651ca08ab68Smrgm4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
652ca08ab68Smrgconfigured by $[0], generated by m4_PACKAGE_STRING.
653ca08ab68Smrg
654ca08ab68SmrgCopyright (C) 2011 Free Software Foundation, Inc.
655ca08ab68SmrgThis config.lt script is free software; the Free Software Foundation
656ca08ab68Smrggives unlimited permision to copy, distribute and modify it."
657ca08ab68Smrg
658953daebaSmrgwhile test 0 != $[#]
659ca08ab68Smrgdo
660ca08ab68Smrg  case $[1] in
661ca08ab68Smrg    --version | --v* | -V )
662ca08ab68Smrg      echo "$lt_cl_version"; exit 0 ;;
663ca08ab68Smrg    --help | --h* | -h )
664ca08ab68Smrg      echo "$lt_cl_help"; exit 0 ;;
665ca08ab68Smrg    --debug | --d* | -d )
666ca08ab68Smrg      debug=: ;;
667ca08ab68Smrg    --quiet | --q* | --silent | --s* | -q )
668ca08ab68Smrg      lt_cl_silent=: ;;
669ca08ab68Smrg
670ca08ab68Smrg    -*) AC_MSG_ERROR([unrecognized option: $[1]
671953daebaSmrgTry '$[0] --help' for more information.]) ;;
672ca08ab68Smrg
673ca08ab68Smrg    *) AC_MSG_ERROR([unrecognized argument: $[1]
674953daebaSmrgTry '$[0] --help' for more information.]) ;;
675ca08ab68Smrg  esac
676ca08ab68Smrg  shift
677ca08ab68Smrgdone
678ca08ab68Smrg
679ca08ab68Smrgif $lt_cl_silent; then
680ca08ab68Smrg  exec AS_MESSAGE_FD>/dev/null
681ca08ab68Smrgfi
682ca08ab68Smrg_LTEOF
683ca08ab68Smrg
684ca08ab68Smrgcat >>"$CONFIG_LT" <<_LTEOF
685ca08ab68Smrg_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
686ca08ab68Smrg_LTEOF
687ca08ab68Smrg
688ca08ab68Smrgcat >>"$CONFIG_LT" <<\_LTEOF
689ca08ab68SmrgAC_MSG_NOTICE([creating $ofile])
690ca08ab68Smrg_LT_OUTPUT_LIBTOOL_COMMANDS
691ca08ab68SmrgAS_EXIT(0)
692ca08ab68Smrg_LTEOF
693ca08ab68Smrgchmod +x "$CONFIG_LT"
694ca08ab68Smrg
695ca08ab68Smrg# configure is writing to config.log, but config.lt does its own redirection,
696ca08ab68Smrg# appending to config.log, which fails on DOS, as config.log is still kept
697ca08ab68Smrg# open by configure.  Here we exec the FD to /dev/null, effectively closing
698ca08ab68Smrg# config.log, so it can be properly (re)opened and appended to by config.lt.
699ca08ab68Smrglt_cl_success=:
700953daebaSmrgtest yes = "$silent" &&
701ca08ab68Smrg  lt_config_lt_args="$lt_config_lt_args --quiet"
702ca08ab68Smrgexec AS_MESSAGE_LOG_FD>/dev/null
703ca08ab68Smrg$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
704ca08ab68Smrgexec AS_MESSAGE_LOG_FD>>config.log
705ca08ab68Smrg$lt_cl_success || AS_EXIT(1)
706ca08ab68Smrg])# LT_OUTPUT
707ca08ab68Smrg
708ca08ab68Smrg
709ca08ab68Smrg# _LT_CONFIG(TAG)
710ca08ab68Smrg# ---------------
711ca08ab68Smrg# If TAG is the built-in tag, create an initial libtool script with a
712ca08ab68Smrg# default configuration from the untagged config vars.  Otherwise add code
713ca08ab68Smrg# to config.status for appending the configuration named by TAG from the
714ca08ab68Smrg# matching tagged config vars.
715ca08ab68Smrgm4_defun([_LT_CONFIG],
716ca08ab68Smrg[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
717ca08ab68Smrg_LT_CONFIG_SAVE_COMMANDS([
718ca08ab68Smrg  m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
719ca08ab68Smrg  m4_if(_LT_TAG, [C], [
720953daebaSmrg    # See if we are running on zsh, and set the options that allow our
721ca08ab68Smrg    # commands through without removal of \ escapes.
722953daebaSmrg    if test -n "${ZSH_VERSION+set}"; then
723ca08ab68Smrg      setopt NO_GLOB_SUBST
724ca08ab68Smrg    fi
725ca08ab68Smrg
726953daebaSmrg    cfgfile=${ofile}T
727ca08ab68Smrg    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
728ca08ab68Smrg    $RM "$cfgfile"
729ca08ab68Smrg
730ca08ab68Smrg    cat <<_LT_EOF >> "$cfgfile"
731ca08ab68Smrg#! $SHELL
732953daebaSmrg# Generated automatically by $as_me ($PACKAGE) $VERSION
733ca08ab68Smrg# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
734ca08ab68Smrg# NOTE: Changes made to this file will be lost: look at ltmain.sh.
735953daebaSmrg
736953daebaSmrg# Provide generalized library-building support services.
737953daebaSmrg# Written by Gordon Matzigkeit, 1996
738953daebaSmrg
739ca08ab68Smrg_LT_COPYING
740ca08ab68Smrg_LT_LIBTOOL_TAGS
741ca08ab68Smrg
742953daebaSmrg# Configured defaults for sys_lib_dlsearch_path munging.
743953daebaSmrg: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
744953daebaSmrg
745ca08ab68Smrg# ### BEGIN LIBTOOL CONFIG
746ca08ab68Smrg_LT_LIBTOOL_CONFIG_VARS
747ca08ab68Smrg_LT_LIBTOOL_TAG_VARS
748ca08ab68Smrg# ### END LIBTOOL CONFIG
749ca08ab68Smrg
750953daebaSmrg_LT_EOF
751953daebaSmrg
752953daebaSmrg    cat <<'_LT_EOF' >> "$cfgfile"
753953daebaSmrg
754953daebaSmrg# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
755953daebaSmrg
756953daebaSmrg_LT_PREPARE_MUNGE_PATH_LIST
757953daebaSmrg_LT_PREPARE_CC_BASENAME
758953daebaSmrg
759953daebaSmrg# ### END FUNCTIONS SHARED WITH CONFIGURE
760953daebaSmrg
761ca08ab68Smrg_LT_EOF
762ca08ab68Smrg
763ca08ab68Smrg  case $host_os in
764ca08ab68Smrg  aix3*)
765ca08ab68Smrg    cat <<\_LT_EOF >> "$cfgfile"
766ca08ab68Smrg# AIX sometimes has problems with the GCC collect2 program.  For some
767ca08ab68Smrg# reason, if we set the COLLECT_NAMES environment variable, the problems
768ca08ab68Smrg# vanish in a puff of smoke.
769953daebaSmrgif test set != "${COLLECT_NAMES+set}"; then
770ca08ab68Smrg  COLLECT_NAMES=
771ca08ab68Smrg  export COLLECT_NAMES
772ca08ab68Smrgfi
773ca08ab68Smrg_LT_EOF
774ca08ab68Smrg    ;;
775ca08ab68Smrg  esac
776ca08ab68Smrg
777ca08ab68Smrg  _LT_PROG_LTMAIN
778ca08ab68Smrg
779ca08ab68Smrg  # We use sed instead of cat because bash on DJGPP gets confused if
780ca08ab68Smrg  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
781ca08ab68Smrg  # text mode, it properly converts lines to CR/LF.  This bash problem
782ca08ab68Smrg  # is reportedly fixed, but why not run on old versions too?
783eceda581Smrg  $SED '$q' "$ltmain" >> "$cfgfile" \
784ca08ab68Smrg     || (rm -f "$cfgfile"; exit 1)
785ca08ab68Smrg
786ca08ab68Smrg   mv -f "$cfgfile" "$ofile" ||
787ca08ab68Smrg    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
788ca08ab68Smrg  chmod +x "$ofile"
789ca08ab68Smrg],
790ca08ab68Smrg[cat <<_LT_EOF >> "$ofile"
791ca08ab68Smrg
792ca08ab68Smrgdnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
793ca08ab68Smrgdnl in a comment (ie after a #).
794ca08ab68Smrg# ### BEGIN LIBTOOL TAG CONFIG: $1
795ca08ab68Smrg_LT_LIBTOOL_TAG_VARS(_LT_TAG)
796ca08ab68Smrg# ### END LIBTOOL TAG CONFIG: $1
797ca08ab68Smrg_LT_EOF
798ca08ab68Smrg])dnl /m4_if
799ca08ab68Smrg],
800ca08ab68Smrg[m4_if([$1], [], [
801ca08ab68Smrg    PACKAGE='$PACKAGE'
802ca08ab68Smrg    VERSION='$VERSION'
803ca08ab68Smrg    RM='$RM'
804ca08ab68Smrg    ofile='$ofile'], [])
805ca08ab68Smrg])dnl /_LT_CONFIG_SAVE_COMMANDS
806ca08ab68Smrg])# _LT_CONFIG
807ca08ab68Smrg
808ca08ab68Smrg
809ca08ab68Smrg# LT_SUPPORTED_TAG(TAG)
810ca08ab68Smrg# ---------------------
811ca08ab68Smrg# Trace this macro to discover what tags are supported by the libtool
812ca08ab68Smrg# --tag option, using:
813ca08ab68Smrg#    autoconf --trace 'LT_SUPPORTED_TAG:$1'
814ca08ab68SmrgAC_DEFUN([LT_SUPPORTED_TAG], [])
815ca08ab68Smrg
816ca08ab68Smrg
817ca08ab68Smrg# C support is built-in for now
818ca08ab68Smrgm4_define([_LT_LANG_C_enabled], [])
819ca08ab68Smrgm4_define([_LT_TAGS], [])
820ca08ab68Smrg
821ca08ab68Smrg
822ca08ab68Smrg# LT_LANG(LANG)
823ca08ab68Smrg# -------------
824ca08ab68Smrg# Enable libtool support for the given language if not already enabled.
825ca08ab68SmrgAC_DEFUN([LT_LANG],
826ca08ab68Smrg[AC_BEFORE([$0], [LT_OUTPUT])dnl
827ca08ab68Smrgm4_case([$1],
828ca08ab68Smrg  [C],			[_LT_LANG(C)],
829ca08ab68Smrg  [C++],		[_LT_LANG(CXX)],
830ca08ab68Smrg  [Go],			[_LT_LANG(GO)],
831ca08ab68Smrg  [Java],		[_LT_LANG(GCJ)],
832ca08ab68Smrg  [Fortran 77],		[_LT_LANG(F77)],
833ca08ab68Smrg  [Fortran],		[_LT_LANG(FC)],
834ca08ab68Smrg  [Windows Resource],	[_LT_LANG(RC)],
835ca08ab68Smrg  [m4_ifdef([_LT_LANG_]$1[_CONFIG],
836ca08ab68Smrg    [_LT_LANG($1)],
837ca08ab68Smrg    [m4_fatal([$0: unsupported language: "$1"])])])dnl
838ca08ab68Smrg])# LT_LANG
839ca08ab68Smrg
840ca08ab68Smrg
841ca08ab68Smrg# _LT_LANG(LANGNAME)
842ca08ab68Smrg# ------------------
843ca08ab68Smrgm4_defun([_LT_LANG],
844ca08ab68Smrg[m4_ifdef([_LT_LANG_]$1[_enabled], [],
845ca08ab68Smrg  [LT_SUPPORTED_TAG([$1])dnl
846ca08ab68Smrg  m4_append([_LT_TAGS], [$1 ])dnl
847ca08ab68Smrg  m4_define([_LT_LANG_]$1[_enabled], [])dnl
848ca08ab68Smrg  _LT_LANG_$1_CONFIG($1)])dnl
849ca08ab68Smrg])# _LT_LANG
850ca08ab68Smrg
851ca08ab68Smrg
852ca08ab68Smrgm4_ifndef([AC_PROG_GO], [
853ca08ab68Smrg############################################################
854ca08ab68Smrg# NOTE: This macro has been submitted for inclusion into   #
855ca08ab68Smrg#  GNU Autoconf as AC_PROG_GO.  When it is available in    #
856ca08ab68Smrg#  a released version of Autoconf we should remove this    #
857ca08ab68Smrg#  macro and use it instead.                               #
858ca08ab68Smrg############################################################
859ca08ab68Smrgm4_defun([AC_PROG_GO],
860ca08ab68Smrg[AC_LANG_PUSH(Go)dnl
861ca08ab68SmrgAC_ARG_VAR([GOC],     [Go compiler command])dnl
862ca08ab68SmrgAC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
863ca08ab68Smrg_AC_ARG_VAR_LDFLAGS()dnl
864ca08ab68SmrgAC_CHECK_TOOL(GOC, gccgo)
865ca08ab68Smrgif test -z "$GOC"; then
866ca08ab68Smrg  if test -n "$ac_tool_prefix"; then
867ca08ab68Smrg    AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
868ca08ab68Smrg  fi
869ca08ab68Smrgfi
870ca08ab68Smrgif test -z "$GOC"; then
871ca08ab68Smrg  AC_CHECK_PROG(GOC, gccgo, gccgo, false)
872ca08ab68Smrgfi
873ca08ab68Smrg])#m4_defun
874ca08ab68Smrg])#m4_ifndef
875ca08ab68Smrg
876ca08ab68Smrg
877ca08ab68Smrg# _LT_LANG_DEFAULT_CONFIG
878ca08ab68Smrg# -----------------------
879ca08ab68Smrgm4_defun([_LT_LANG_DEFAULT_CONFIG],
880ca08ab68Smrg[AC_PROVIDE_IFELSE([AC_PROG_CXX],
881ca08ab68Smrg  [LT_LANG(CXX)],
882ca08ab68Smrg  [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
883ca08ab68Smrg
884ca08ab68SmrgAC_PROVIDE_IFELSE([AC_PROG_F77],
885ca08ab68Smrg  [LT_LANG(F77)],
886ca08ab68Smrg  [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
887ca08ab68Smrg
888ca08ab68SmrgAC_PROVIDE_IFELSE([AC_PROG_FC],
889ca08ab68Smrg  [LT_LANG(FC)],
890ca08ab68Smrg  [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
891ca08ab68Smrg
892ca08ab68Smrgdnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
893ca08ab68Smrgdnl pulling things in needlessly.
894ca08ab68SmrgAC_PROVIDE_IFELSE([AC_PROG_GCJ],
895ca08ab68Smrg  [LT_LANG(GCJ)],
896ca08ab68Smrg  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
897ca08ab68Smrg    [LT_LANG(GCJ)],
898ca08ab68Smrg    [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
899ca08ab68Smrg      [LT_LANG(GCJ)],
900ca08ab68Smrg      [m4_ifdef([AC_PROG_GCJ],
901ca08ab68Smrg	[m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
902ca08ab68Smrg       m4_ifdef([A][M_PROG_GCJ],
903ca08ab68Smrg	[m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
904ca08ab68Smrg       m4_ifdef([LT_PROG_GCJ],
905ca08ab68Smrg	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
906ca08ab68Smrg
907ca08ab68SmrgAC_PROVIDE_IFELSE([AC_PROG_GO],
908ca08ab68Smrg  [LT_LANG(GO)],
909ca08ab68Smrg  [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
910ca08ab68Smrg
911ca08ab68SmrgAC_PROVIDE_IFELSE([LT_PROG_RC],
912ca08ab68Smrg  [LT_LANG(RC)],
913ca08ab68Smrg  [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
914ca08ab68Smrg])# _LT_LANG_DEFAULT_CONFIG
915ca08ab68Smrg
916ca08ab68Smrg# Obsolete macros:
917ca08ab68SmrgAU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
918ca08ab68SmrgAU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
919ca08ab68SmrgAU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
920ca08ab68SmrgAU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
921ca08ab68SmrgAU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
922ca08ab68Smrgdnl aclocal-1.4 backwards compatibility:
923ca08ab68Smrgdnl AC_DEFUN([AC_LIBTOOL_CXX], [])
924ca08ab68Smrgdnl AC_DEFUN([AC_LIBTOOL_F77], [])
925ca08ab68Smrgdnl AC_DEFUN([AC_LIBTOOL_FC], [])
926ca08ab68Smrgdnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
927ca08ab68Smrgdnl AC_DEFUN([AC_LIBTOOL_RC], [])
928ca08ab68Smrg
929ca08ab68Smrg
930ca08ab68Smrg# _LT_TAG_COMPILER
931ca08ab68Smrg# ----------------
932ca08ab68Smrgm4_defun([_LT_TAG_COMPILER],
933ca08ab68Smrg[AC_REQUIRE([AC_PROG_CC])dnl
934ca08ab68Smrg
935ca08ab68Smrg_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
936ca08ab68Smrg_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
937ca08ab68Smrg_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
938ca08ab68Smrg_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
939ca08ab68Smrg
940ca08ab68Smrg# If no C compiler was specified, use CC.
941ca08ab68SmrgLTCC=${LTCC-"$CC"}
942ca08ab68Smrg
943ca08ab68Smrg# If no C compiler flags were specified, use CFLAGS.
944ca08ab68SmrgLTCFLAGS=${LTCFLAGS-"$CFLAGS"}
945ca08ab68Smrg
946ca08ab68Smrg# Allow CC to be a program name with arguments.
947ca08ab68Smrgcompiler=$CC
948ca08ab68Smrg])# _LT_TAG_COMPILER
949ca08ab68Smrg
950ca08ab68Smrg
951ca08ab68Smrg# _LT_COMPILER_BOILERPLATE
952ca08ab68Smrg# ------------------------
953ca08ab68Smrg# Check for compiler boilerplate output or warnings with
954ca08ab68Smrg# the simple compiler test code.
955ca08ab68Smrgm4_defun([_LT_COMPILER_BOILERPLATE],
956ca08ab68Smrg[m4_require([_LT_DECL_SED])dnl
957ca08ab68Smrgac_outfile=conftest.$ac_objext
958ca08ab68Smrgecho "$lt_simple_compile_test_code" >conftest.$ac_ext
959ca08ab68Smrgeval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
960ca08ab68Smrg_lt_compiler_boilerplate=`cat conftest.err`
961ca08ab68Smrg$RM conftest*
962ca08ab68Smrg])# _LT_COMPILER_BOILERPLATE
963ca08ab68Smrg
964ca08ab68Smrg
965ca08ab68Smrg# _LT_LINKER_BOILERPLATE
966ca08ab68Smrg# ----------------------
967ca08ab68Smrg# Check for linker boilerplate output or warnings with
968ca08ab68Smrg# the simple link test code.
969ca08ab68Smrgm4_defun([_LT_LINKER_BOILERPLATE],
970ca08ab68Smrg[m4_require([_LT_DECL_SED])dnl
971ca08ab68Smrgac_outfile=conftest.$ac_objext
972ca08ab68Smrgecho "$lt_simple_link_test_code" >conftest.$ac_ext
973ca08ab68Smrgeval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
974ca08ab68Smrg_lt_linker_boilerplate=`cat conftest.err`
975ca08ab68Smrg$RM -r conftest*
976ca08ab68Smrg])# _LT_LINKER_BOILERPLATE
977ca08ab68Smrg
978ca08ab68Smrg# _LT_REQUIRED_DARWIN_CHECKS
979ca08ab68Smrg# -------------------------
980ca08ab68Smrgm4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
981ca08ab68Smrg  case $host_os in
982ca08ab68Smrg    rhapsody* | darwin*)
983ca08ab68Smrg    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
984ca08ab68Smrg    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
985ca08ab68Smrg    AC_CHECK_TOOL([LIPO], [lipo], [:])
986ca08ab68Smrg    AC_CHECK_TOOL([OTOOL], [otool], [:])
987ca08ab68Smrg    AC_CHECK_TOOL([OTOOL64], [otool64], [:])
988ca08ab68Smrg    _LT_DECL([], [DSYMUTIL], [1],
989ca08ab68Smrg      [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
990ca08ab68Smrg    _LT_DECL([], [NMEDIT], [1],
991ca08ab68Smrg      [Tool to change global to local symbols on Mac OS X])
992ca08ab68Smrg    _LT_DECL([], [LIPO], [1],
993ca08ab68Smrg      [Tool to manipulate fat objects and archives on Mac OS X])
994ca08ab68Smrg    _LT_DECL([], [OTOOL], [1],
995ca08ab68Smrg      [ldd/readelf like tool for Mach-O binaries on Mac OS X])
996ca08ab68Smrg    _LT_DECL([], [OTOOL64], [1],
997ca08ab68Smrg      [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
998ca08ab68Smrg
999ca08ab68Smrg    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
1000ca08ab68Smrg      [lt_cv_apple_cc_single_mod=no
1001953daebaSmrg      if test -z "$LT_MULTI_MODULE"; then
1002ca08ab68Smrg	# By default we will add the -single_module flag. You can override
1003ca08ab68Smrg	# by either setting the environment variable LT_MULTI_MODULE
1004ca08ab68Smrg	# non-empty at configure time, or by adding -multi_module to the
1005ca08ab68Smrg	# link flags.
1006ca08ab68Smrg	rm -rf libconftest.dylib*
1007ca08ab68Smrg	echo "int foo(void){return 1;}" > conftest.c
1008ca08ab68Smrg	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
1009ca08ab68Smrg-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
1010ca08ab68Smrg	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
1011ca08ab68Smrg	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
1012ca08ab68Smrg        _lt_result=$?
1013ca08ab68Smrg	# If there is a non-empty error log, and "single_module"
1014ca08ab68Smrg	# appears in it, assume the flag caused a linker warning
1015ca08ab68Smrg        if test -s conftest.err && $GREP single_module conftest.err; then
1016ca08ab68Smrg	  cat conftest.err >&AS_MESSAGE_LOG_FD
1017ca08ab68Smrg	# Otherwise, if the output was created with a 0 exit code from
1018ca08ab68Smrg	# the compiler, it worked.
1019953daebaSmrg	elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
1020ca08ab68Smrg	  lt_cv_apple_cc_single_mod=yes
1021ca08ab68Smrg	else
1022ca08ab68Smrg	  cat conftest.err >&AS_MESSAGE_LOG_FD
1023ca08ab68Smrg	fi
1024ca08ab68Smrg	rm -rf libconftest.dylib*
1025ca08ab68Smrg	rm -f conftest.*
1026ca08ab68Smrg      fi])
1027ca08ab68Smrg
1028ca08ab68Smrg    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
1029ca08ab68Smrg      [lt_cv_ld_exported_symbols_list],
1030ca08ab68Smrg      [lt_cv_ld_exported_symbols_list=no
1031ca08ab68Smrg      save_LDFLAGS=$LDFLAGS
1032ca08ab68Smrg      echo "_main" > conftest.sym
1033ca08ab68Smrg      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
1034ca08ab68Smrg      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
1035ca08ab68Smrg	[lt_cv_ld_exported_symbols_list=yes],
1036ca08ab68Smrg	[lt_cv_ld_exported_symbols_list=no])
1037953daebaSmrg	LDFLAGS=$save_LDFLAGS
1038ca08ab68Smrg    ])
1039ca08ab68Smrg
1040ca08ab68Smrg    AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
1041ca08ab68Smrg      [lt_cv_ld_force_load=no
1042ca08ab68Smrg      cat > conftest.c << _LT_EOF
1043ca08ab68Smrgint forced_loaded() { return 2;}
1044ca08ab68Smrg_LT_EOF
1045ca08ab68Smrg      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
1046ca08ab68Smrg      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
1047eceda581Smrg      echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
1048eceda581Smrg      $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
1049ca08ab68Smrg      echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
1050ca08ab68Smrg      $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
1051ca08ab68Smrg      cat > conftest.c << _LT_EOF
1052ca08ab68Smrgint main() { return 0;}
1053ca08ab68Smrg_LT_EOF
1054ca08ab68Smrg      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
1055ca08ab68Smrg      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
1056ca08ab68Smrg      _lt_result=$?
1057ca08ab68Smrg      if test -s conftest.err && $GREP force_load conftest.err; then
1058ca08ab68Smrg	cat conftest.err >&AS_MESSAGE_LOG_FD
1059953daebaSmrg      elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
1060ca08ab68Smrg	lt_cv_ld_force_load=yes
1061ca08ab68Smrg      else
1062ca08ab68Smrg	cat conftest.err >&AS_MESSAGE_LOG_FD
1063ca08ab68Smrg      fi
1064ca08ab68Smrg        rm -f conftest.err libconftest.a conftest conftest.c
1065ca08ab68Smrg        rm -rf conftest.dSYM
1066ca08ab68Smrg    ])
1067ca08ab68Smrg    case $host_os in
1068ca08ab68Smrg    rhapsody* | darwin1.[[012]])
1069953daebaSmrg      _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
1070ca08ab68Smrg    darwin1.*)
1071953daebaSmrg      _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
1072eceda581Smrg    darwin*)
1073eceda581Smrg      case $MACOSX_DEPLOYMENT_TARGET,$host in
1074eceda581Smrg        10.[[012]],*|,*powerpc*-darwin[[5-8]]*)
1075eceda581Smrg          _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
1076eceda581Smrg        *)
1077eceda581Smrg          _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
1078ca08ab68Smrg      esac
1079ca08ab68Smrg    ;;
1080ca08ab68Smrg  esac
1081953daebaSmrg    if test yes = "$lt_cv_apple_cc_single_mod"; then
1082ca08ab68Smrg      _lt_dar_single_mod='$single_module'
1083ca08ab68Smrg    fi
1084953daebaSmrg    if test yes = "$lt_cv_ld_exported_symbols_list"; then
1085953daebaSmrg      _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
1086ca08ab68Smrg    else
1087953daebaSmrg      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
1088ca08ab68Smrg    fi
1089953daebaSmrg    if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
1090ca08ab68Smrg      _lt_dsymutil='~$DSYMUTIL $lib || :'
1091ca08ab68Smrg    else
1092ca08ab68Smrg      _lt_dsymutil=
1093ca08ab68Smrg    fi
1094ca08ab68Smrg    ;;
1095ca08ab68Smrg  esac
1096ca08ab68Smrg])
1097ca08ab68Smrg
1098ca08ab68Smrg
1099ca08ab68Smrg# _LT_DARWIN_LINKER_FEATURES([TAG])
1100ca08ab68Smrg# ---------------------------------
1101ca08ab68Smrg# Checks for linker and compiler features on darwin
1102ca08ab68Smrgm4_defun([_LT_DARWIN_LINKER_FEATURES],
1103ca08ab68Smrg[
1104ca08ab68Smrg  m4_require([_LT_REQUIRED_DARWIN_CHECKS])
1105ca08ab68Smrg  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
1106ca08ab68Smrg  _LT_TAGVAR(hardcode_direct, $1)=no
1107ca08ab68Smrg  _LT_TAGVAR(hardcode_automatic, $1)=yes
1108ca08ab68Smrg  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
1109953daebaSmrg  if test yes = "$lt_cv_ld_force_load"; then
1110953daebaSmrg    _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\"`'
1111ca08ab68Smrg    m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
1112ca08ab68Smrg                  [FC],  [_LT_TAGVAR(compiler_needs_object, $1)=yes])
1113ca08ab68Smrg  else
1114ca08ab68Smrg    _LT_TAGVAR(whole_archive_flag_spec, $1)=''
1115ca08ab68Smrg  fi
1116ca08ab68Smrg  _LT_TAGVAR(link_all_deplibs, $1)=yes
1117953daebaSmrg  _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined
1118ca08ab68Smrg  case $cc_basename in
1119953daebaSmrg     ifort*|nagfor*) _lt_dar_can_shared=yes ;;
1120ca08ab68Smrg     *) _lt_dar_can_shared=$GCC ;;
1121ca08ab68Smrg  esac
1122953daebaSmrg  if test yes = "$_lt_dar_can_shared"; then
1123ca08ab68Smrg    output_verbose_link_cmd=func_echo_all
1124953daebaSmrg    _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"
1125953daebaSmrg    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
1126eceda581Smrg    _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"
1127eceda581Smrg    _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"
1128ca08ab68Smrg    m4_if([$1], [CXX],
1129953daebaSmrg[   if test yes != "$lt_cv_apple_cc_single_mod"; then
1130953daebaSmrg      _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"
1131eceda581Smrg      _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"
1132ca08ab68Smrg    fi
1133ca08ab68Smrg],[])
1134ca08ab68Smrg  else
1135ca08ab68Smrg  _LT_TAGVAR(ld_shlibs, $1)=no
1136ca08ab68Smrg  fi
1137ca08ab68Smrg])
1138ca08ab68Smrg
1139ca08ab68Smrg# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
1140ca08ab68Smrg# ----------------------------------
1141ca08ab68Smrg# Links a minimal program and checks the executable
1142ca08ab68Smrg# for the system default hardcoded library path. In most cases,
1143ca08ab68Smrg# this is /usr/lib:/lib, but when the MPI compilers are used
1144ca08ab68Smrg# the location of the communication and MPI libs are included too.
1145ca08ab68Smrg# If we don't find anything, use the default library path according
1146ca08ab68Smrg# to the aix ld manual.
1147ca08ab68Smrg# Store the results from the different compilers for each TAGNAME.
1148ca08ab68Smrg# Allow to override them for all tags through lt_cv_aix_libpath.
1149ca08ab68Smrgm4_defun([_LT_SYS_MODULE_PATH_AIX],
1150ca08ab68Smrg[m4_require([_LT_DECL_SED])dnl
1151953daebaSmrgif test set = "${lt_cv_aix_libpath+set}"; then
1152ca08ab68Smrg  aix_libpath=$lt_cv_aix_libpath
1153ca08ab68Smrgelse
1154ca08ab68Smrg  AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
1155ca08ab68Smrg  [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
1156ca08ab68Smrg  lt_aix_libpath_sed='[
1157ca08ab68Smrg      /Import File Strings/,/^$/ {
1158ca08ab68Smrg	  /^0/ {
1159ca08ab68Smrg	      s/^0  *\([^ ]*\) *$/\1/
1160ca08ab68Smrg	      p
1161ca08ab68Smrg	  }
1162ca08ab68Smrg      }]'
1163ca08ab68Smrg  _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
1164ca08ab68Smrg  # Check for a 64-bit object if we didn't find anything.
1165ca08ab68Smrg  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
1166ca08ab68Smrg    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
1167ca08ab68Smrg  fi],[])
1168ca08ab68Smrg  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
1169953daebaSmrg    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib
1170ca08ab68Smrg  fi
1171ca08ab68Smrg  ])
1172ca08ab68Smrg  aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
1173ca08ab68Smrgfi
1174ca08ab68Smrg])# _LT_SYS_MODULE_PATH_AIX
1175ca08ab68Smrg
1176ca08ab68Smrg
1177ca08ab68Smrg# _LT_SHELL_INIT(ARG)
1178ca08ab68Smrg# -------------------
1179ca08ab68Smrgm4_define([_LT_SHELL_INIT],
1180ca08ab68Smrg[m4_divert_text([M4SH-INIT], [$1
1181ca08ab68Smrg])])# _LT_SHELL_INIT
1182ca08ab68Smrg
1183ca08ab68Smrg
1184ca08ab68Smrg
1185ca08ab68Smrg# _LT_PROG_ECHO_BACKSLASH
1186ca08ab68Smrg# -----------------------
1187ca08ab68Smrg# Find how we can fake an echo command that does not interpret backslash.
1188ca08ab68Smrg# In particular, with Autoconf 2.60 or later we add some code to the start
1189953daebaSmrg# of the generated configure script that will find a shell with a builtin
1190953daebaSmrg# printf (that we can use as an echo command).
1191ca08ab68Smrgm4_defun([_LT_PROG_ECHO_BACKSLASH],
1192ca08ab68Smrg[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
1193ca08ab68SmrgECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
1194ca08ab68SmrgECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
1195ca08ab68Smrg
1196ca08ab68SmrgAC_MSG_CHECKING([how to print strings])
1197ca08ab68Smrg# Test print first, because it will be a builtin if present.
1198ca08ab68Smrgif test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
1199ca08ab68Smrg   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
1200ca08ab68Smrg  ECHO='print -r --'
1201ca08ab68Smrgelif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
1202ca08ab68Smrg  ECHO='printf %s\n'
1203ca08ab68Smrgelse
1204ca08ab68Smrg  # Use this function as a fallback that always works.
1205ca08ab68Smrg  func_fallback_echo ()
1206ca08ab68Smrg  {
1207ca08ab68Smrg    eval 'cat <<_LTECHO_EOF
1208ca08ab68Smrg$[]1
1209ca08ab68Smrg_LTECHO_EOF'
1210ca08ab68Smrg  }
1211ca08ab68Smrg  ECHO='func_fallback_echo'
1212ca08ab68Smrgfi
1213ca08ab68Smrg
1214ca08ab68Smrg# func_echo_all arg...
1215ca08ab68Smrg# Invoke $ECHO with all args, space-separated.
1216ca08ab68Smrgfunc_echo_all ()
1217ca08ab68Smrg{
1218953daebaSmrg    $ECHO "$*"
1219ca08ab68Smrg}
1220ca08ab68Smrg
1221953daebaSmrgcase $ECHO in
1222ca08ab68Smrg  printf*) AC_MSG_RESULT([printf]) ;;
1223ca08ab68Smrg  print*) AC_MSG_RESULT([print -r]) ;;
1224ca08ab68Smrg  *) AC_MSG_RESULT([cat]) ;;
1225ca08ab68Smrgesac
1226ca08ab68Smrg
1227ca08ab68Smrgm4_ifdef([_AS_DETECT_SUGGESTED],
1228ca08ab68Smrg[_AS_DETECT_SUGGESTED([
1229ca08ab68Smrg  test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
1230ca08ab68Smrg    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
1231ca08ab68Smrg    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
1232ca08ab68Smrg    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
1233ca08ab68Smrg    PATH=/empty FPATH=/empty; export PATH FPATH
1234ca08ab68Smrg    test "X`printf %s $ECHO`" = "X$ECHO" \
1235ca08ab68Smrg      || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
1236ca08ab68Smrg
1237ca08ab68Smrg_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
1238ca08ab68Smrg_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
1239ca08ab68Smrg])# _LT_PROG_ECHO_BACKSLASH
1240ca08ab68Smrg
1241ca08ab68Smrg
1242ca08ab68Smrg# _LT_WITH_SYSROOT
1243ca08ab68Smrg# ----------------
1244ca08ab68SmrgAC_DEFUN([_LT_WITH_SYSROOT],
1245eceda581Smrg[m4_require([_LT_DECL_SED])dnl
1246eceda581SmrgAC_MSG_CHECKING([for sysroot])
1247ca08ab68SmrgAC_ARG_WITH([sysroot],
1248953daebaSmrg[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
1249953daebaSmrg  [Search for dependent libraries within DIR (or the compiler's sysroot
1250953daebaSmrg   if not specified).])],
1251ca08ab68Smrg[], [with_sysroot=no])
1252ca08ab68Smrg
1253ca08ab68Smrgdnl lt_sysroot will always be passed unquoted.  We quote it here
1254ca08ab68Smrgdnl in case the user passed a directory name.
1255ca08ab68Smrglt_sysroot=
1256953daebaSmrgcase $with_sysroot in #(
1257ca08ab68Smrg yes)
1258953daebaSmrg   if test yes = "$GCC"; then
1259ca08ab68Smrg     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
1260ca08ab68Smrg   fi
1261ca08ab68Smrg   ;; #(
1262ca08ab68Smrg /*)
1263eceda581Smrg   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
1264ca08ab68Smrg   ;; #(
1265ca08ab68Smrg no|'')
1266ca08ab68Smrg   ;; #(
1267ca08ab68Smrg *)
1268953daebaSmrg   AC_MSG_RESULT([$with_sysroot])
1269ca08ab68Smrg   AC_MSG_ERROR([The sysroot must be an absolute path.])
1270ca08ab68Smrg   ;;
1271ca08ab68Smrgesac
1272ca08ab68Smrg
1273ca08ab68Smrg AC_MSG_RESULT([${lt_sysroot:-no}])
1274ca08ab68Smrg_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
1275953daebaSmrg[dependent libraries, and where our libraries should be installed.])])
1276ca08ab68Smrg
1277ca08ab68Smrg# _LT_ENABLE_LOCK
1278ca08ab68Smrg# ---------------
1279ca08ab68Smrgm4_defun([_LT_ENABLE_LOCK],
1280ca08ab68Smrg[AC_ARG_ENABLE([libtool-lock],
1281ca08ab68Smrg  [AS_HELP_STRING([--disable-libtool-lock],
1282ca08ab68Smrg    [avoid locking (might break parallel builds)])])
1283953daebaSmrgtest no = "$enable_libtool_lock" || enable_libtool_lock=yes
1284ca08ab68Smrg
1285ca08ab68Smrg# Some flags need to be propagated to the compiler or linker for good
1286ca08ab68Smrg# libtool support.
1287ca08ab68Smrgcase $host in
1288ca08ab68Smrgia64-*-hpux*)
1289953daebaSmrg  # Find out what ABI is being produced by ac_compile, and set mode
1290953daebaSmrg  # options accordingly.
1291ca08ab68Smrg  echo 'int i;' > conftest.$ac_ext
1292ca08ab68Smrg  if AC_TRY_EVAL(ac_compile); then
1293eceda581Smrg    case `$FILECMD conftest.$ac_objext` in
1294ca08ab68Smrg      *ELF-32*)
1295953daebaSmrg	HPUX_IA64_MODE=32
1296ca08ab68Smrg	;;
1297ca08ab68Smrg      *ELF-64*)
1298953daebaSmrg	HPUX_IA64_MODE=64
1299ca08ab68Smrg	;;
1300ca08ab68Smrg    esac
1301ca08ab68Smrg  fi
1302ca08ab68Smrg  rm -rf conftest*
1303ca08ab68Smrg  ;;
1304ca08ab68Smrg*-*-irix6*)
1305953daebaSmrg  # Find out what ABI is being produced by ac_compile, and set linker
1306953daebaSmrg  # options accordingly.
1307ca08ab68Smrg  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
1308ca08ab68Smrg  if AC_TRY_EVAL(ac_compile); then
1309953daebaSmrg    if test yes = "$lt_cv_prog_gnu_ld"; then
1310eceda581Smrg      case `$FILECMD conftest.$ac_objext` in
1311ca08ab68Smrg	*32-bit*)
1312ca08ab68Smrg	  LD="${LD-ld} -melf32bsmip"
1313ca08ab68Smrg	  ;;
1314ca08ab68Smrg	*N32*)
1315ca08ab68Smrg	  LD="${LD-ld} -melf32bmipn32"
1316ca08ab68Smrg	  ;;
1317ca08ab68Smrg	*64-bit*)
1318ca08ab68Smrg	  LD="${LD-ld} -melf64bmip"
1319ca08ab68Smrg	;;
1320ca08ab68Smrg      esac
1321ca08ab68Smrg    else
1322eceda581Smrg      case `$FILECMD conftest.$ac_objext` in
1323ca08ab68Smrg	*32-bit*)
1324ca08ab68Smrg	  LD="${LD-ld} -32"
1325ca08ab68Smrg	  ;;
1326ca08ab68Smrg	*N32*)
1327ca08ab68Smrg	  LD="${LD-ld} -n32"
1328ca08ab68Smrg	  ;;
1329ca08ab68Smrg	*64-bit*)
1330ca08ab68Smrg	  LD="${LD-ld} -64"
1331ca08ab68Smrg	  ;;
1332ca08ab68Smrg      esac
1333ca08ab68Smrg    fi
1334ca08ab68Smrg  fi
1335ca08ab68Smrg  rm -rf conftest*
1336ca08ab68Smrg  ;;
1337ca08ab68Smrg
1338953daebaSmrgmips64*-*linux*)
1339953daebaSmrg  # Find out what ABI is being produced by ac_compile, and set linker
1340953daebaSmrg  # options accordingly.
1341953daebaSmrg  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
1342953daebaSmrg  if AC_TRY_EVAL(ac_compile); then
1343953daebaSmrg    emul=elf
1344eceda581Smrg    case `$FILECMD conftest.$ac_objext` in
1345953daebaSmrg      *32-bit*)
1346953daebaSmrg	emul="${emul}32"
1347953daebaSmrg	;;
1348953daebaSmrg      *64-bit*)
1349953daebaSmrg	emul="${emul}64"
1350953daebaSmrg	;;
1351953daebaSmrg    esac
1352eceda581Smrg    case `$FILECMD conftest.$ac_objext` in
1353953daebaSmrg      *MSB*)
1354953daebaSmrg	emul="${emul}btsmip"
1355953daebaSmrg	;;
1356953daebaSmrg      *LSB*)
1357953daebaSmrg	emul="${emul}ltsmip"
1358953daebaSmrg	;;
1359953daebaSmrg    esac
1360eceda581Smrg    case `$FILECMD conftest.$ac_objext` in
1361953daebaSmrg      *N32*)
1362953daebaSmrg	emul="${emul}n32"
1363953daebaSmrg	;;
1364953daebaSmrg    esac
1365953daebaSmrg    LD="${LD-ld} -m $emul"
1366953daebaSmrg  fi
1367953daebaSmrg  rm -rf conftest*
1368953daebaSmrg  ;;
1369953daebaSmrg
1370b09479dcSmrgx86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
1371ca08ab68Smrgs390*-*linux*|s390*-*tpf*|sparc*-*linux*)
1372953daebaSmrg  # Find out what ABI is being produced by ac_compile, and set linker
1373953daebaSmrg  # options accordingly.  Note that the listed cases only cover the
1374953daebaSmrg  # situations where additional linker options are needed (such as when
1375953daebaSmrg  # doing 32-bit compilation for a host where ld defaults to 64-bit, or
1376953daebaSmrg  # vice versa); the common cases where no linker options are needed do
1377953daebaSmrg  # not appear in the list.
1378ca08ab68Smrg  echo 'int i;' > conftest.$ac_ext
1379ca08ab68Smrg  if AC_TRY_EVAL(ac_compile); then
1380eceda581Smrg    case `$FILECMD conftest.o` in
1381ca08ab68Smrg      *32-bit*)
1382ca08ab68Smrg	case $host in
1383ca08ab68Smrg	  x86_64-*kfreebsd*-gnu)
1384ca08ab68Smrg	    LD="${LD-ld} -m elf_i386_fbsd"
1385ca08ab68Smrg	    ;;
1386ca08ab68Smrg	  x86_64-*linux*)
1387eceda581Smrg	    case `$FILECMD conftest.o` in
1388953daebaSmrg	      *x86-64*)
1389953daebaSmrg		LD="${LD-ld} -m elf32_x86_64"
1390953daebaSmrg		;;
1391953daebaSmrg	      *)
1392953daebaSmrg		LD="${LD-ld} -m elf_i386"
1393953daebaSmrg		;;
1394953daebaSmrg	    esac
1395ca08ab68Smrg	    ;;
1396b09479dcSmrg	  powerpc64le-*linux*)
1397b09479dcSmrg	    LD="${LD-ld} -m elf32lppclinux"
1398b09479dcSmrg	    ;;
1399b09479dcSmrg	  powerpc64-*linux*)
1400ca08ab68Smrg	    LD="${LD-ld} -m elf32ppclinux"
1401ca08ab68Smrg	    ;;
1402ca08ab68Smrg	  s390x-*linux*)
1403ca08ab68Smrg	    LD="${LD-ld} -m elf_s390"
1404ca08ab68Smrg	    ;;
1405ca08ab68Smrg	  sparc64-*linux*)
1406ca08ab68Smrg	    LD="${LD-ld} -m elf32_sparc"
1407ca08ab68Smrg	    ;;
1408ca08ab68Smrg	esac
1409ca08ab68Smrg	;;
1410ca08ab68Smrg      *64-bit*)
1411ca08ab68Smrg	case $host in
1412ca08ab68Smrg	  x86_64-*kfreebsd*-gnu)
1413ca08ab68Smrg	    LD="${LD-ld} -m elf_x86_64_fbsd"
1414ca08ab68Smrg	    ;;
1415ca08ab68Smrg	  x86_64-*linux*)
1416ca08ab68Smrg	    LD="${LD-ld} -m elf_x86_64"
1417ca08ab68Smrg	    ;;
1418b09479dcSmrg	  powerpcle-*linux*)
1419b09479dcSmrg	    LD="${LD-ld} -m elf64lppc"
1420b09479dcSmrg	    ;;
1421b09479dcSmrg	  powerpc-*linux*)
1422ca08ab68Smrg	    LD="${LD-ld} -m elf64ppc"
1423ca08ab68Smrg	    ;;
1424ca08ab68Smrg	  s390*-*linux*|s390*-*tpf*)
1425ca08ab68Smrg	    LD="${LD-ld} -m elf64_s390"
1426ca08ab68Smrg	    ;;
1427ca08ab68Smrg	  sparc*-*linux*)
1428ca08ab68Smrg	    LD="${LD-ld} -m elf64_sparc"
1429ca08ab68Smrg	    ;;
1430ca08ab68Smrg	esac
1431ca08ab68Smrg	;;
1432ca08ab68Smrg    esac
1433ca08ab68Smrg  fi
1434ca08ab68Smrg  rm -rf conftest*
1435ca08ab68Smrg  ;;
1436ca08ab68Smrg
1437ca08ab68Smrg*-*-sco3.2v5*)
1438ca08ab68Smrg  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
1439953daebaSmrg  SAVE_CFLAGS=$CFLAGS
1440ca08ab68Smrg  CFLAGS="$CFLAGS -belf"
1441ca08ab68Smrg  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
1442ca08ab68Smrg    [AC_LANG_PUSH(C)
1443ca08ab68Smrg     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
1444ca08ab68Smrg     AC_LANG_POP])
1445953daebaSmrg  if test yes != "$lt_cv_cc_needs_belf"; then
1446ca08ab68Smrg    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
1447953daebaSmrg    CFLAGS=$SAVE_CFLAGS
1448ca08ab68Smrg  fi
1449ca08ab68Smrg  ;;
1450ca08ab68Smrg*-*solaris*)
1451953daebaSmrg  # Find out what ABI is being produced by ac_compile, and set linker
1452953daebaSmrg  # options accordingly.
1453ca08ab68Smrg  echo 'int i;' > conftest.$ac_ext
1454ca08ab68Smrg  if AC_TRY_EVAL(ac_compile); then
1455eceda581Smrg    case `$FILECMD conftest.o` in
1456ca08ab68Smrg    *64-bit*)
1457ca08ab68Smrg      case $lt_cv_prog_gnu_ld in
1458ca08ab68Smrg      yes*)
1459ca08ab68Smrg        case $host in
1460953daebaSmrg        i?86-*-solaris*|x86_64-*-solaris*)
1461ca08ab68Smrg          LD="${LD-ld} -m elf_x86_64"
1462ca08ab68Smrg          ;;
1463ca08ab68Smrg        sparc*-*-solaris*)
1464ca08ab68Smrg          LD="${LD-ld} -m elf64_sparc"
1465ca08ab68Smrg          ;;
1466ca08ab68Smrg        esac
1467ca08ab68Smrg        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
1468ca08ab68Smrg        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
1469953daebaSmrg          LD=${LD-ld}_sol2
1470ca08ab68Smrg        fi
1471ca08ab68Smrg        ;;
1472ca08ab68Smrg      *)
1473ca08ab68Smrg	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
1474ca08ab68Smrg	  LD="${LD-ld} -64"
1475ca08ab68Smrg	fi
1476ca08ab68Smrg	;;
1477ca08ab68Smrg      esac
1478ca08ab68Smrg      ;;
1479ca08ab68Smrg    esac
1480ca08ab68Smrg  fi
1481ca08ab68Smrg  rm -rf conftest*
1482ca08ab68Smrg  ;;
1483ca08ab68Smrgesac
1484ca08ab68Smrg
1485953daebaSmrgneed_locks=$enable_libtool_lock
1486ca08ab68Smrg])# _LT_ENABLE_LOCK
1487ca08ab68Smrg
1488ca08ab68Smrg
1489ca08ab68Smrg# _LT_PROG_AR
1490ca08ab68Smrg# -----------
1491ca08ab68Smrgm4_defun([_LT_PROG_AR],
1492ca08ab68Smrg[AC_CHECK_TOOLS(AR, [ar], false)
1493ca08ab68Smrg: ${AR=ar}
1494ca08ab68Smrg_LT_DECL([], [AR], [1], [The archiver])
1495eceda581Smrg
1496eceda581Smrg# Use ARFLAGS variable as AR's operation code to sync the variable naming with
1497eceda581Smrg# Automake.  If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have
1498eceda581Smrg# higher priority because thats what people were doing historically (setting
1499eceda581Smrg# ARFLAGS for automake and AR_FLAGS for libtool).  FIXME: Make the AR_FLAGS
1500eceda581Smrg# variable obsoleted/removed.
1501eceda581Smrg
1502eceda581Smrgtest ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr}
1503eceda581Smrglt_ar_flags=$AR_FLAGS
1504eceda581Smrg_LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)])
1505eceda581Smrg
1506eceda581Smrg# Make AR_FLAGS overridable by 'make ARFLAGS='.  Don't try to run-time override
1507eceda581Smrg# by AR_FLAGS because that was never working and AR_FLAGS is about to die.
1508eceda581Smrg_LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}],
1509eceda581Smrg         [Flags to create an archive])
1510ca08ab68Smrg
1511ca08ab68SmrgAC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
1512ca08ab68Smrg  [lt_cv_ar_at_file=no
1513ca08ab68Smrg   AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
1514ca08ab68Smrg     [echo conftest.$ac_objext > conftest.lst
1515ca08ab68Smrg      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
1516ca08ab68Smrg      AC_TRY_EVAL([lt_ar_try])
1517953daebaSmrg      if test 0 -eq "$ac_status"; then
1518ca08ab68Smrg	# Ensure the archiver fails upon bogus file names.
1519ca08ab68Smrg	rm -f conftest.$ac_objext libconftest.a
1520ca08ab68Smrg	AC_TRY_EVAL([lt_ar_try])
1521953daebaSmrg	if test 0 -ne "$ac_status"; then
1522ca08ab68Smrg          lt_cv_ar_at_file=@
1523ca08ab68Smrg        fi
1524ca08ab68Smrg      fi
1525ca08ab68Smrg      rm -f conftest.* libconftest.a
1526ca08ab68Smrg     ])
1527ca08ab68Smrg  ])
1528ca08ab68Smrg
1529953daebaSmrgif test no = "$lt_cv_ar_at_file"; then
1530ca08ab68Smrg  archiver_list_spec=
1531ca08ab68Smrgelse
1532ca08ab68Smrg  archiver_list_spec=$lt_cv_ar_at_file
1533ca08ab68Smrgfi
1534ca08ab68Smrg_LT_DECL([], [archiver_list_spec], [1],
1535ca08ab68Smrg  [How to feed a file listing to the archiver])
1536ca08ab68Smrg])# _LT_PROG_AR
1537ca08ab68Smrg
1538ca08ab68Smrg
1539ca08ab68Smrg# _LT_CMD_OLD_ARCHIVE
1540ca08ab68Smrg# -------------------
1541ca08ab68Smrgm4_defun([_LT_CMD_OLD_ARCHIVE],
1542ca08ab68Smrg[_LT_PROG_AR
1543ca08ab68Smrg
1544ca08ab68SmrgAC_CHECK_TOOL(STRIP, strip, :)
1545ca08ab68Smrgtest -z "$STRIP" && STRIP=:
1546ca08ab68Smrg_LT_DECL([], [STRIP], [1], [A symbol stripping program])
1547ca08ab68Smrg
1548ca08ab68SmrgAC_CHECK_TOOL(RANLIB, ranlib, :)
1549ca08ab68Smrgtest -z "$RANLIB" && RANLIB=:
1550ca08ab68Smrg_LT_DECL([], [RANLIB], [1],
1551ca08ab68Smrg    [Commands used to install an old-style archive])
1552ca08ab68Smrg
1553ca08ab68Smrg# Determine commands to create old-style static archives.
1554ca08ab68Smrgold_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
1555ca08ab68Smrgold_postinstall_cmds='chmod 644 $oldlib'
1556ca08ab68Smrgold_postuninstall_cmds=
1557ca08ab68Smrg
1558ca08ab68Smrgif test -n "$RANLIB"; then
1559ca08ab68Smrg  case $host_os in
1560953daebaSmrg  bitrig* | openbsd*)
1561ca08ab68Smrg    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
1562ca08ab68Smrg    ;;
1563ca08ab68Smrg  *)
1564ca08ab68Smrg    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
1565ca08ab68Smrg    ;;
1566ca08ab68Smrg  esac
1567ca08ab68Smrg  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
1568ca08ab68Smrgfi
1569ca08ab68Smrg
1570ca08ab68Smrgcase $host_os in
1571ca08ab68Smrg  darwin*)
1572ca08ab68Smrg    lock_old_archive_extraction=yes ;;
1573ca08ab68Smrg  *)
1574ca08ab68Smrg    lock_old_archive_extraction=no ;;
1575ca08ab68Smrgesac
1576ca08ab68Smrg_LT_DECL([], [old_postinstall_cmds], [2])
1577ca08ab68Smrg_LT_DECL([], [old_postuninstall_cmds], [2])
1578ca08ab68Smrg_LT_TAGDECL([], [old_archive_cmds], [2],
1579ca08ab68Smrg    [Commands used to build an old-style archive])
1580ca08ab68Smrg_LT_DECL([], [lock_old_archive_extraction], [0],
1581ca08ab68Smrg    [Whether to use a lock for old archive extraction])
1582ca08ab68Smrg])# _LT_CMD_OLD_ARCHIVE
1583ca08ab68Smrg
1584ca08ab68Smrg
1585ca08ab68Smrg# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
1586ca08ab68Smrg#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
1587ca08ab68Smrg# ----------------------------------------------------------------
1588ca08ab68Smrg# Check whether the given compiler option works
1589ca08ab68SmrgAC_DEFUN([_LT_COMPILER_OPTION],
1590ca08ab68Smrg[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
1591ca08ab68Smrgm4_require([_LT_DECL_SED])dnl
1592ca08ab68SmrgAC_CACHE_CHECK([$1], [$2],
1593ca08ab68Smrg  [$2=no
1594ca08ab68Smrg   m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
1595ca08ab68Smrg   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
1596953daebaSmrg   lt_compiler_flag="$3"  ## exclude from sc_useless_quotes_in_assignment
1597ca08ab68Smrg   # Insert the option either (1) after the last *FLAGS variable, or
1598ca08ab68Smrg   # (2) before a word containing "conftest.", or (3) at the end.
1599ca08ab68Smrg   # Note that $ac_compile itself does not contain backslashes and begins
1600ca08ab68Smrg   # with a dollar sign (not a hyphen), so the echo should work correctly.
1601ca08ab68Smrg   # The option is referenced via a variable to avoid confusing sed.
1602ca08ab68Smrg   lt_compile=`echo "$ac_compile" | $SED \
1603ca08ab68Smrg   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
1604ca08ab68Smrg   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
1605ca08ab68Smrg   -e 's:$: $lt_compiler_flag:'`
1606ca08ab68Smrg   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
1607ca08ab68Smrg   (eval "$lt_compile" 2>conftest.err)
1608ca08ab68Smrg   ac_status=$?
1609ca08ab68Smrg   cat conftest.err >&AS_MESSAGE_LOG_FD
1610ca08ab68Smrg   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
1611ca08ab68Smrg   if (exit $ac_status) && test -s "$ac_outfile"; then
1612ca08ab68Smrg     # The compiler can only warn and ignore the option if not recognized
1613ca08ab68Smrg     # So say no if there are warnings other than the usual output.
1614ca08ab68Smrg     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
1615ca08ab68Smrg     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
1616ca08ab68Smrg     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
1617ca08ab68Smrg       $2=yes
1618ca08ab68Smrg     fi
1619ca08ab68Smrg   fi
1620ca08ab68Smrg   $RM conftest*
1621ca08ab68Smrg])
1622ca08ab68Smrg
1623953daebaSmrgif test yes = "[$]$2"; then
1624ca08ab68Smrg    m4_if([$5], , :, [$5])
1625ca08ab68Smrgelse
1626ca08ab68Smrg    m4_if([$6], , :, [$6])
1627ca08ab68Smrgfi
1628ca08ab68Smrg])# _LT_COMPILER_OPTION
1629ca08ab68Smrg
1630ca08ab68Smrg# Old name:
1631ca08ab68SmrgAU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
1632ca08ab68Smrgdnl aclocal-1.4 backwards compatibility:
1633ca08ab68Smrgdnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
1634ca08ab68Smrg
1635ca08ab68Smrg
1636ca08ab68Smrg# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
1637ca08ab68Smrg#                  [ACTION-SUCCESS], [ACTION-FAILURE])
1638ca08ab68Smrg# ----------------------------------------------------
1639ca08ab68Smrg# Check whether the given linker option works
1640ca08ab68SmrgAC_DEFUN([_LT_LINKER_OPTION],
1641ca08ab68Smrg[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
1642ca08ab68Smrgm4_require([_LT_DECL_SED])dnl
1643ca08ab68SmrgAC_CACHE_CHECK([$1], [$2],
1644ca08ab68Smrg  [$2=no
1645953daebaSmrg   save_LDFLAGS=$LDFLAGS
1646ca08ab68Smrg   LDFLAGS="$LDFLAGS $3"
1647ca08ab68Smrg   echo "$lt_simple_link_test_code" > conftest.$ac_ext
1648ca08ab68Smrg   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
1649ca08ab68Smrg     # The linker can only warn and ignore the option if not recognized
1650ca08ab68Smrg     # So say no if there are warnings
1651ca08ab68Smrg     if test -s conftest.err; then
1652ca08ab68Smrg       # Append any errors to the config.log.
1653ca08ab68Smrg       cat conftest.err 1>&AS_MESSAGE_LOG_FD
1654ca08ab68Smrg       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
1655ca08ab68Smrg       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
1656ca08ab68Smrg       if diff conftest.exp conftest.er2 >/dev/null; then
1657ca08ab68Smrg         $2=yes
1658ca08ab68Smrg       fi
1659ca08ab68Smrg     else
1660ca08ab68Smrg       $2=yes
1661ca08ab68Smrg     fi
1662ca08ab68Smrg   fi
1663ca08ab68Smrg   $RM -r conftest*
1664953daebaSmrg   LDFLAGS=$save_LDFLAGS
1665ca08ab68Smrg])
1666ca08ab68Smrg
1667953daebaSmrgif test yes = "[$]$2"; then
1668ca08ab68Smrg    m4_if([$4], , :, [$4])
1669ca08ab68Smrgelse
1670ca08ab68Smrg    m4_if([$5], , :, [$5])
1671ca08ab68Smrgfi
1672ca08ab68Smrg])# _LT_LINKER_OPTION
1673ca08ab68Smrg
1674ca08ab68Smrg# Old name:
1675ca08ab68SmrgAU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
1676ca08ab68Smrgdnl aclocal-1.4 backwards compatibility:
1677ca08ab68Smrgdnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
1678ca08ab68Smrg
1679ca08ab68Smrg
1680ca08ab68Smrg# LT_CMD_MAX_LEN
1681ca08ab68Smrg#---------------
1682ca08ab68SmrgAC_DEFUN([LT_CMD_MAX_LEN],
1683ca08ab68Smrg[AC_REQUIRE([AC_CANONICAL_HOST])dnl
1684ca08ab68Smrg# find the maximum length of command line arguments
1685ca08ab68SmrgAC_MSG_CHECKING([the maximum length of command line arguments])
1686ca08ab68SmrgAC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
1687ca08ab68Smrg  i=0
1688953daebaSmrg  teststring=ABCD
1689ca08ab68Smrg
1690ca08ab68Smrg  case $build_os in
1691ca08ab68Smrg  msdosdjgpp*)
1692ca08ab68Smrg    # On DJGPP, this test can blow up pretty badly due to problems in libc
1693ca08ab68Smrg    # (any single argument exceeding 2000 bytes causes a buffer overrun
1694ca08ab68Smrg    # during glob expansion).  Even if it were fixed, the result of this
1695ca08ab68Smrg    # check would be larger than it should be.
1696ca08ab68Smrg    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
1697ca08ab68Smrg    ;;
1698ca08ab68Smrg
1699ca08ab68Smrg  gnu*)
1700ca08ab68Smrg    # Under GNU Hurd, this test is not required because there is
1701ca08ab68Smrg    # no limit to the length of command line arguments.
1702ca08ab68Smrg    # Libtool will interpret -1 as no limit whatsoever
1703ca08ab68Smrg    lt_cv_sys_max_cmd_len=-1;
1704ca08ab68Smrg    ;;
1705ca08ab68Smrg
1706ca08ab68Smrg  cygwin* | mingw* | cegcc*)
1707ca08ab68Smrg    # On Win9x/ME, this test blows up -- it succeeds, but takes
1708ca08ab68Smrg    # about 5 minutes as the teststring grows exponentially.
1709ca08ab68Smrg    # Worse, since 9x/ME are not pre-emptively multitasking,
1710ca08ab68Smrg    # you end up with a "frozen" computer, even though with patience
1711ca08ab68Smrg    # the test eventually succeeds (with a max line length of 256k).
1712ca08ab68Smrg    # Instead, let's just punt: use the minimum linelength reported by
1713ca08ab68Smrg    # all of the supported platforms: 8192 (on NT/2K/XP).
1714ca08ab68Smrg    lt_cv_sys_max_cmd_len=8192;
1715ca08ab68Smrg    ;;
1716ca08ab68Smrg
1717ca08ab68Smrg  mint*)
1718ca08ab68Smrg    # On MiNT this can take a long time and run out of memory.
1719ca08ab68Smrg    lt_cv_sys_max_cmd_len=8192;
1720ca08ab68Smrg    ;;
1721ca08ab68Smrg
1722ca08ab68Smrg  amigaos*)
1723ca08ab68Smrg    # On AmigaOS with pdksh, this test takes hours, literally.
1724ca08ab68Smrg    # So we just punt and use a minimum line length of 8192.
1725ca08ab68Smrg    lt_cv_sys_max_cmd_len=8192;
1726ca08ab68Smrg    ;;
1727ca08ab68Smrg
1728eceda581Smrg  bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*)
1729ca08ab68Smrg    # This has been around since 386BSD, at least.  Likely further.
1730ca08ab68Smrg    if test -x /sbin/sysctl; then
1731ca08ab68Smrg      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
1732ca08ab68Smrg    elif test -x /usr/sbin/sysctl; then
1733ca08ab68Smrg      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
1734ca08ab68Smrg    else
1735ca08ab68Smrg      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
1736ca08ab68Smrg    fi
1737ca08ab68Smrg    # And add a safety zone
1738ca08ab68Smrg    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
1739ca08ab68Smrg    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
1740ca08ab68Smrg    ;;
1741ca08ab68Smrg
1742ca08ab68Smrg  interix*)
1743ca08ab68Smrg    # We know the value 262144 and hardcode it with a safety zone (like BSD)
1744ca08ab68Smrg    lt_cv_sys_max_cmd_len=196608
1745ca08ab68Smrg    ;;
1746ca08ab68Smrg
1747ca08ab68Smrg  os2*)
1748ca08ab68Smrg    # The test takes a long time on OS/2.
1749ca08ab68Smrg    lt_cv_sys_max_cmd_len=8192
1750ca08ab68Smrg    ;;
1751ca08ab68Smrg
1752ca08ab68Smrg  osf*)
1753ca08ab68Smrg    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
1754ca08ab68Smrg    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
1755ca08ab68Smrg    # nice to cause kernel panics so lets avoid the loop below.
1756ca08ab68Smrg    # First set a reasonable default.
1757ca08ab68Smrg    lt_cv_sys_max_cmd_len=16384
1758ca08ab68Smrg    #
1759ca08ab68Smrg    if test -x /sbin/sysconfig; then
1760ca08ab68Smrg      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
1761ca08ab68Smrg        *1*) lt_cv_sys_max_cmd_len=-1 ;;
1762ca08ab68Smrg      esac
1763ca08ab68Smrg    fi
1764ca08ab68Smrg    ;;
1765ca08ab68Smrg  sco3.2v5*)
1766ca08ab68Smrg    lt_cv_sys_max_cmd_len=102400
1767ca08ab68Smrg    ;;
1768ca08ab68Smrg  sysv5* | sco5v6* | sysv4.2uw2*)
1769ca08ab68Smrg    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
1770ca08ab68Smrg    if test -n "$kargmax"; then
1771eceda581Smrg      lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[[	 ]]//'`
1772ca08ab68Smrg    else
1773ca08ab68Smrg      lt_cv_sys_max_cmd_len=32768
1774ca08ab68Smrg    fi
1775ca08ab68Smrg    ;;
1776ca08ab68Smrg  *)
1777ca08ab68Smrg    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
1778953daebaSmrg    if test -n "$lt_cv_sys_max_cmd_len" && \
1779953daebaSmrg       test undefined != "$lt_cv_sys_max_cmd_len"; then
1780ca08ab68Smrg      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
1781ca08ab68Smrg      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
1782ca08ab68Smrg    else
1783ca08ab68Smrg      # Make teststring a little bigger before we do anything with it.
1784ca08ab68Smrg      # a 1K string should be a reasonable start.
1785953daebaSmrg      for i in 1 2 3 4 5 6 7 8; do
1786ca08ab68Smrg        teststring=$teststring$teststring
1787ca08ab68Smrg      done
1788ca08ab68Smrg      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
1789ca08ab68Smrg      # If test is not a shell built-in, we'll probably end up computing a
1790ca08ab68Smrg      # maximum length that is only half of the actual maximum length, but
1791ca08ab68Smrg      # we can't tell.
1792953daebaSmrg      while { test X`env echo "$teststring$teststring" 2>/dev/null` \
1793ca08ab68Smrg	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
1794953daebaSmrg	      test 17 != "$i" # 1/2 MB should be enough
1795ca08ab68Smrg      do
1796ca08ab68Smrg        i=`expr $i + 1`
1797ca08ab68Smrg        teststring=$teststring$teststring
1798ca08ab68Smrg      done
1799ca08ab68Smrg      # Only check the string length outside the loop.
1800ca08ab68Smrg      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
1801ca08ab68Smrg      teststring=
1802ca08ab68Smrg      # Add a significant safety factor because C++ compilers can tack on
1803ca08ab68Smrg      # massive amounts of additional arguments before passing them to the
1804ca08ab68Smrg      # linker.  It appears as though 1/2 is a usable value.
1805ca08ab68Smrg      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
1806ca08ab68Smrg    fi
1807ca08ab68Smrg    ;;
1808ca08ab68Smrg  esac
1809ca08ab68Smrg])
1810953daebaSmrgif test -n "$lt_cv_sys_max_cmd_len"; then
1811ca08ab68Smrg  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
1812ca08ab68Smrgelse
1813ca08ab68Smrg  AC_MSG_RESULT(none)
1814ca08ab68Smrgfi
1815ca08ab68Smrgmax_cmd_len=$lt_cv_sys_max_cmd_len
1816ca08ab68Smrg_LT_DECL([], [max_cmd_len], [0],
1817ca08ab68Smrg    [What is the maximum length of a command?])
1818ca08ab68Smrg])# LT_CMD_MAX_LEN
1819ca08ab68Smrg
1820ca08ab68Smrg# Old name:
1821ca08ab68SmrgAU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
1822ca08ab68Smrgdnl aclocal-1.4 backwards compatibility:
1823ca08ab68Smrgdnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
1824ca08ab68Smrg
1825ca08ab68Smrg
1826ca08ab68Smrg# _LT_HEADER_DLFCN
1827ca08ab68Smrg# ----------------
1828ca08ab68Smrgm4_defun([_LT_HEADER_DLFCN],
1829ca08ab68Smrg[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
1830ca08ab68Smrg])# _LT_HEADER_DLFCN
1831ca08ab68Smrg
1832ca08ab68Smrg
1833ca08ab68Smrg# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
1834ca08ab68Smrg#                      ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
1835ca08ab68Smrg# ----------------------------------------------------------------
1836ca08ab68Smrgm4_defun([_LT_TRY_DLOPEN_SELF],
1837ca08ab68Smrg[m4_require([_LT_HEADER_DLFCN])dnl
1838953daebaSmrgif test yes = "$cross_compiling"; then :
1839ca08ab68Smrg  [$4]
1840ca08ab68Smrgelse
1841ca08ab68Smrg  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
1842ca08ab68Smrg  lt_status=$lt_dlunknown
1843ca08ab68Smrg  cat > conftest.$ac_ext <<_LT_EOF
1844ca08ab68Smrg[#line $LINENO "configure"
1845ca08ab68Smrg#include "confdefs.h"
1846ca08ab68Smrg
1847ca08ab68Smrg#if HAVE_DLFCN_H
1848ca08ab68Smrg#include <dlfcn.h>
1849ca08ab68Smrg#endif
1850ca08ab68Smrg
1851ca08ab68Smrg#include <stdio.h>
1852ca08ab68Smrg
1853ca08ab68Smrg#ifdef RTLD_GLOBAL
1854ca08ab68Smrg#  define LT_DLGLOBAL		RTLD_GLOBAL
1855ca08ab68Smrg#else
1856ca08ab68Smrg#  ifdef DL_GLOBAL
1857ca08ab68Smrg#    define LT_DLGLOBAL		DL_GLOBAL
1858ca08ab68Smrg#  else
1859ca08ab68Smrg#    define LT_DLGLOBAL		0
1860ca08ab68Smrg#  endif
1861ca08ab68Smrg#endif
1862ca08ab68Smrg
1863ca08ab68Smrg/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
1864ca08ab68Smrg   find out it does not work in some platform. */
1865ca08ab68Smrg#ifndef LT_DLLAZY_OR_NOW
1866ca08ab68Smrg#  ifdef RTLD_LAZY
1867ca08ab68Smrg#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
1868ca08ab68Smrg#  else
1869ca08ab68Smrg#    ifdef DL_LAZY
1870ca08ab68Smrg#      define LT_DLLAZY_OR_NOW		DL_LAZY
1871ca08ab68Smrg#    else
1872ca08ab68Smrg#      ifdef RTLD_NOW
1873ca08ab68Smrg#        define LT_DLLAZY_OR_NOW	RTLD_NOW
1874ca08ab68Smrg#      else
1875ca08ab68Smrg#        ifdef DL_NOW
1876ca08ab68Smrg#          define LT_DLLAZY_OR_NOW	DL_NOW
1877ca08ab68Smrg#        else
1878ca08ab68Smrg#          define LT_DLLAZY_OR_NOW	0
1879ca08ab68Smrg#        endif
1880ca08ab68Smrg#      endif
1881ca08ab68Smrg#    endif
1882ca08ab68Smrg#  endif
1883ca08ab68Smrg#endif
1884ca08ab68Smrg
1885953daebaSmrg/* When -fvisibility=hidden is used, assume the code has been annotated
1886ca08ab68Smrg   correspondingly for the symbols needed.  */
1887953daebaSmrg#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
1888ca08ab68Smrgint fnord () __attribute__((visibility("default")));
1889ca08ab68Smrg#endif
1890ca08ab68Smrg
1891ca08ab68Smrgint fnord () { return 42; }
1892ca08ab68Smrgint main ()
1893ca08ab68Smrg{
1894ca08ab68Smrg  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
1895ca08ab68Smrg  int status = $lt_dlunknown;
1896ca08ab68Smrg
1897ca08ab68Smrg  if (self)
1898ca08ab68Smrg    {
1899ca08ab68Smrg      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
1900ca08ab68Smrg      else
1901ca08ab68Smrg        {
1902ca08ab68Smrg	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
1903ca08ab68Smrg          else puts (dlerror ());
1904ca08ab68Smrg	}
1905ca08ab68Smrg      /* dlclose (self); */
1906ca08ab68Smrg    }
1907ca08ab68Smrg  else
1908ca08ab68Smrg    puts (dlerror ());
1909ca08ab68Smrg
1910ca08ab68Smrg  return status;
1911ca08ab68Smrg}]
1912ca08ab68Smrg_LT_EOF
1913953daebaSmrg  if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then
1914ca08ab68Smrg    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
1915ca08ab68Smrg    lt_status=$?
1916ca08ab68Smrg    case x$lt_status in
1917ca08ab68Smrg      x$lt_dlno_uscore) $1 ;;
1918ca08ab68Smrg      x$lt_dlneed_uscore) $2 ;;
1919ca08ab68Smrg      x$lt_dlunknown|x*) $3 ;;
1920ca08ab68Smrg    esac
1921ca08ab68Smrg  else :
1922ca08ab68Smrg    # compilation failed
1923ca08ab68Smrg    $3
1924ca08ab68Smrg  fi
1925ca08ab68Smrgfi
1926ca08ab68Smrgrm -fr conftest*
1927ca08ab68Smrg])# _LT_TRY_DLOPEN_SELF
1928ca08ab68Smrg
1929ca08ab68Smrg
1930ca08ab68Smrg# LT_SYS_DLOPEN_SELF
1931ca08ab68Smrg# ------------------
1932ca08ab68SmrgAC_DEFUN([LT_SYS_DLOPEN_SELF],
1933ca08ab68Smrg[m4_require([_LT_HEADER_DLFCN])dnl
1934953daebaSmrgif test yes != "$enable_dlopen"; then
1935ca08ab68Smrg  enable_dlopen=unknown
1936ca08ab68Smrg  enable_dlopen_self=unknown
1937ca08ab68Smrg  enable_dlopen_self_static=unknown
1938ca08ab68Smrgelse
1939ca08ab68Smrg  lt_cv_dlopen=no
1940ca08ab68Smrg  lt_cv_dlopen_libs=
1941ca08ab68Smrg
1942ca08ab68Smrg  case $host_os in
1943ca08ab68Smrg  beos*)
1944953daebaSmrg    lt_cv_dlopen=load_add_on
1945ca08ab68Smrg    lt_cv_dlopen_libs=
1946ca08ab68Smrg    lt_cv_dlopen_self=yes
1947ca08ab68Smrg    ;;
1948ca08ab68Smrg
1949ca08ab68Smrg  mingw* | pw32* | cegcc*)
1950953daebaSmrg    lt_cv_dlopen=LoadLibrary
1951ca08ab68Smrg    lt_cv_dlopen_libs=
1952ca08ab68Smrg    ;;
1953ca08ab68Smrg
1954ca08ab68Smrg  cygwin*)
1955953daebaSmrg    lt_cv_dlopen=dlopen
1956ca08ab68Smrg    lt_cv_dlopen_libs=
1957ca08ab68Smrg    ;;
1958ca08ab68Smrg
1959ca08ab68Smrg  darwin*)
1960953daebaSmrg    # if libdl is installed we need to link against it
1961ca08ab68Smrg    AC_CHECK_LIB([dl], [dlopen],
1962953daebaSmrg		[lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[
1963953daebaSmrg    lt_cv_dlopen=dyld
1964ca08ab68Smrg    lt_cv_dlopen_libs=
1965ca08ab68Smrg    lt_cv_dlopen_self=yes
1966ca08ab68Smrg    ])
1967ca08ab68Smrg    ;;
1968ca08ab68Smrg
1969953daebaSmrg  tpf*)
1970953daebaSmrg    # Don't try to run any link tests for TPF.  We know it's impossible
1971953daebaSmrg    # because TPF is a cross-compiler, and we know how we open DSOs.
1972953daebaSmrg    lt_cv_dlopen=dlopen
1973953daebaSmrg    lt_cv_dlopen_libs=
1974953daebaSmrg    lt_cv_dlopen_self=no
1975953daebaSmrg    ;;
1976953daebaSmrg
1977ca08ab68Smrg  *)
1978ca08ab68Smrg    AC_CHECK_FUNC([shl_load],
1979953daebaSmrg	  [lt_cv_dlopen=shl_load],
1980ca08ab68Smrg      [AC_CHECK_LIB([dld], [shl_load],
1981953daebaSmrg	    [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld],
1982ca08ab68Smrg	[AC_CHECK_FUNC([dlopen],
1983953daebaSmrg	      [lt_cv_dlopen=dlopen],
1984ca08ab68Smrg	  [AC_CHECK_LIB([dl], [dlopen],
1985953daebaSmrg		[lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],
1986ca08ab68Smrg	    [AC_CHECK_LIB([svld], [dlopen],
1987953daebaSmrg		  [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld],
1988ca08ab68Smrg	      [AC_CHECK_LIB([dld], [dld_link],
1989953daebaSmrg		    [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld])
1990ca08ab68Smrg	      ])
1991ca08ab68Smrg	    ])
1992ca08ab68Smrg	  ])
1993ca08ab68Smrg	])
1994ca08ab68Smrg      ])
1995ca08ab68Smrg    ;;
1996ca08ab68Smrg  esac
1997ca08ab68Smrg
1998953daebaSmrg  if test no = "$lt_cv_dlopen"; then
1999ca08ab68Smrg    enable_dlopen=no
2000953daebaSmrg  else
2001953daebaSmrg    enable_dlopen=yes
2002ca08ab68Smrg  fi
2003ca08ab68Smrg
2004ca08ab68Smrg  case $lt_cv_dlopen in
2005ca08ab68Smrg  dlopen)
2006953daebaSmrg    save_CPPFLAGS=$CPPFLAGS
2007953daebaSmrg    test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
2008ca08ab68Smrg
2009953daebaSmrg    save_LDFLAGS=$LDFLAGS
2010ca08ab68Smrg    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
2011ca08ab68Smrg
2012953daebaSmrg    save_LIBS=$LIBS
2013ca08ab68Smrg    LIBS="$lt_cv_dlopen_libs $LIBS"
2014ca08ab68Smrg
2015ca08ab68Smrg    AC_CACHE_CHECK([whether a program can dlopen itself],
2016ca08ab68Smrg	  lt_cv_dlopen_self, [dnl
2017ca08ab68Smrg	  _LT_TRY_DLOPEN_SELF(
2018ca08ab68Smrg	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
2019ca08ab68Smrg	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
2020ca08ab68Smrg    ])
2021ca08ab68Smrg
2022953daebaSmrg    if test yes = "$lt_cv_dlopen_self"; then
2023ca08ab68Smrg      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
2024ca08ab68Smrg      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
2025ca08ab68Smrg	  lt_cv_dlopen_self_static, [dnl
2026ca08ab68Smrg	  _LT_TRY_DLOPEN_SELF(
2027ca08ab68Smrg	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
2028ca08ab68Smrg	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
2029ca08ab68Smrg      ])
2030ca08ab68Smrg    fi
2031ca08ab68Smrg
2032953daebaSmrg    CPPFLAGS=$save_CPPFLAGS
2033953daebaSmrg    LDFLAGS=$save_LDFLAGS
2034953daebaSmrg    LIBS=$save_LIBS
2035ca08ab68Smrg    ;;
2036ca08ab68Smrg  esac
2037ca08ab68Smrg
2038ca08ab68Smrg  case $lt_cv_dlopen_self in
2039ca08ab68Smrg  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
2040ca08ab68Smrg  *) enable_dlopen_self=unknown ;;
2041ca08ab68Smrg  esac
2042ca08ab68Smrg
2043ca08ab68Smrg  case $lt_cv_dlopen_self_static in
2044ca08ab68Smrg  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
2045ca08ab68Smrg  *) enable_dlopen_self_static=unknown ;;
2046ca08ab68Smrg  esac
2047ca08ab68Smrgfi
2048ca08ab68Smrg_LT_DECL([dlopen_support], [enable_dlopen], [0],
2049ca08ab68Smrg	 [Whether dlopen is supported])
2050ca08ab68Smrg_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
2051ca08ab68Smrg	 [Whether dlopen of programs is supported])
2052ca08ab68Smrg_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
2053ca08ab68Smrg	 [Whether dlopen of statically linked programs is supported])
2054ca08ab68Smrg])# LT_SYS_DLOPEN_SELF
2055ca08ab68Smrg
2056ca08ab68Smrg# Old name:
2057ca08ab68SmrgAU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
2058ca08ab68Smrgdnl aclocal-1.4 backwards compatibility:
2059ca08ab68Smrgdnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
2060ca08ab68Smrg
2061ca08ab68Smrg
2062ca08ab68Smrg# _LT_COMPILER_C_O([TAGNAME])
2063ca08ab68Smrg# ---------------------------
2064ca08ab68Smrg# Check to see if options -c and -o are simultaneously supported by compiler.
2065ca08ab68Smrg# This macro does not hard code the compiler like AC_PROG_CC_C_O.
2066ca08ab68Smrgm4_defun([_LT_COMPILER_C_O],
2067ca08ab68Smrg[m4_require([_LT_DECL_SED])dnl
2068ca08ab68Smrgm4_require([_LT_FILEUTILS_DEFAULTS])dnl
2069ca08ab68Smrgm4_require([_LT_TAG_COMPILER])dnl
2070ca08ab68SmrgAC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
2071ca08ab68Smrg  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
2072ca08ab68Smrg  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
2073ca08ab68Smrg   $RM -r conftest 2>/dev/null
2074ca08ab68Smrg   mkdir conftest
2075ca08ab68Smrg   cd conftest
2076ca08ab68Smrg   mkdir out
2077ca08ab68Smrg   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
2078ca08ab68Smrg
2079ca08ab68Smrg   lt_compiler_flag="-o out/conftest2.$ac_objext"
2080ca08ab68Smrg   # Insert the option either (1) after the last *FLAGS variable, or
2081ca08ab68Smrg   # (2) before a word containing "conftest.", or (3) at the end.
2082ca08ab68Smrg   # Note that $ac_compile itself does not contain backslashes and begins
2083ca08ab68Smrg   # with a dollar sign (not a hyphen), so the echo should work correctly.
2084ca08ab68Smrg   lt_compile=`echo "$ac_compile" | $SED \
2085ca08ab68Smrg   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
2086ca08ab68Smrg   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
2087ca08ab68Smrg   -e 's:$: $lt_compiler_flag:'`
2088ca08ab68Smrg   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
2089ca08ab68Smrg   (eval "$lt_compile" 2>out/conftest.err)
2090ca08ab68Smrg   ac_status=$?
2091ca08ab68Smrg   cat out/conftest.err >&AS_MESSAGE_LOG_FD
2092ca08ab68Smrg   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
2093ca08ab68Smrg   if (exit $ac_status) && test -s out/conftest2.$ac_objext
2094ca08ab68Smrg   then
2095ca08ab68Smrg     # The compiler can only warn and ignore the option if not recognized
2096ca08ab68Smrg     # So say no if there are warnings
2097ca08ab68Smrg     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
2098ca08ab68Smrg     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
2099ca08ab68Smrg     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
2100ca08ab68Smrg       _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
2101ca08ab68Smrg     fi
2102ca08ab68Smrg   fi
2103ca08ab68Smrg   chmod u+w . 2>&AS_MESSAGE_LOG_FD
2104ca08ab68Smrg   $RM conftest*
2105ca08ab68Smrg   # SGI C++ compiler will create directory out/ii_files/ for
2106ca08ab68Smrg   # template instantiation
2107ca08ab68Smrg   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
2108ca08ab68Smrg   $RM out/* && rmdir out
2109ca08ab68Smrg   cd ..
2110ca08ab68Smrg   $RM -r conftest
2111ca08ab68Smrg   $RM conftest*
2112ca08ab68Smrg])
2113ca08ab68Smrg_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
2114ca08ab68Smrg	[Does compiler simultaneously support -c and -o options?])
2115ca08ab68Smrg])# _LT_COMPILER_C_O
2116ca08ab68Smrg
2117ca08ab68Smrg
2118ca08ab68Smrg# _LT_COMPILER_FILE_LOCKS([TAGNAME])
2119ca08ab68Smrg# ----------------------------------
2120ca08ab68Smrg# Check to see if we can do hard links to lock some files if needed
2121ca08ab68Smrgm4_defun([_LT_COMPILER_FILE_LOCKS],
2122ca08ab68Smrg[m4_require([_LT_ENABLE_LOCK])dnl
2123ca08ab68Smrgm4_require([_LT_FILEUTILS_DEFAULTS])dnl
2124ca08ab68Smrg_LT_COMPILER_C_O([$1])
2125ca08ab68Smrg
2126953daebaSmrghard_links=nottested
2127953daebaSmrgif test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then
2128ca08ab68Smrg  # do not overwrite the value of need_locks provided by the user
2129ca08ab68Smrg  AC_MSG_CHECKING([if we can lock with hard links])
2130ca08ab68Smrg  hard_links=yes
2131ca08ab68Smrg  $RM conftest*
2132ca08ab68Smrg  ln conftest.a conftest.b 2>/dev/null && hard_links=no
2133ca08ab68Smrg  touch conftest.a
2134ca08ab68Smrg  ln conftest.a conftest.b 2>&5 || hard_links=no
2135ca08ab68Smrg  ln conftest.a conftest.b 2>/dev/null && hard_links=no
2136ca08ab68Smrg  AC_MSG_RESULT([$hard_links])
2137953daebaSmrg  if test no = "$hard_links"; then
2138953daebaSmrg    AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe])
2139ca08ab68Smrg    need_locks=warn
2140ca08ab68Smrg  fi
2141ca08ab68Smrgelse
2142ca08ab68Smrg  need_locks=no
2143ca08ab68Smrgfi
2144ca08ab68Smrg_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
2145ca08ab68Smrg])# _LT_COMPILER_FILE_LOCKS
2146ca08ab68Smrg
2147ca08ab68Smrg
2148ca08ab68Smrg# _LT_CHECK_OBJDIR
2149ca08ab68Smrg# ----------------
2150ca08ab68Smrgm4_defun([_LT_CHECK_OBJDIR],
2151ca08ab68Smrg[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
2152ca08ab68Smrg[rm -f .libs 2>/dev/null
2153ca08ab68Smrgmkdir .libs 2>/dev/null
2154ca08ab68Smrgif test -d .libs; then
2155ca08ab68Smrg  lt_cv_objdir=.libs
2156ca08ab68Smrgelse
2157ca08ab68Smrg  # MS-DOS does not allow filenames that begin with a dot.
2158ca08ab68Smrg  lt_cv_objdir=_libs
2159ca08ab68Smrgfi
2160ca08ab68Smrgrmdir .libs 2>/dev/null])
2161ca08ab68Smrgobjdir=$lt_cv_objdir
2162ca08ab68Smrg_LT_DECL([], [objdir], [0],
2163ca08ab68Smrg         [The name of the directory that contains temporary libtool files])dnl
2164ca08ab68Smrgm4_pattern_allow([LT_OBJDIR])dnl
2165953daebaSmrgAC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/",
2166953daebaSmrg  [Define to the sub-directory where libtool stores uninstalled libraries.])
2167ca08ab68Smrg])# _LT_CHECK_OBJDIR
2168ca08ab68Smrg
2169ca08ab68Smrg
2170ca08ab68Smrg# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
2171ca08ab68Smrg# --------------------------------------
2172ca08ab68Smrg# Check hardcoding attributes.
2173ca08ab68Smrgm4_defun([_LT_LINKER_HARDCODE_LIBPATH],
2174ca08ab68Smrg[AC_MSG_CHECKING([how to hardcode library paths into programs])
2175ca08ab68Smrg_LT_TAGVAR(hardcode_action, $1)=
2176ca08ab68Smrgif test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
2177ca08ab68Smrg   test -n "$_LT_TAGVAR(runpath_var, $1)" ||
2178953daebaSmrg   test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then
2179ca08ab68Smrg
2180ca08ab68Smrg  # We can hardcode non-existent directories.
2181953daebaSmrg  if test no != "$_LT_TAGVAR(hardcode_direct, $1)" &&
2182ca08ab68Smrg     # If the only mechanism to avoid hardcoding is shlibpath_var, we
2183ca08ab68Smrg     # have to relink, otherwise we might link with an installed library
2184ca08ab68Smrg     # when we should be linking with a yet-to-be-installed one
2185953daebaSmrg     ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" &&
2186953daebaSmrg     test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then
2187ca08ab68Smrg    # Linking always hardcodes the temporary library directory.
2188ca08ab68Smrg    _LT_TAGVAR(hardcode_action, $1)=relink
2189ca08ab68Smrg  else
2190ca08ab68Smrg    # We can link without hardcoding, and we can hardcode nonexisting dirs.
2191ca08ab68Smrg    _LT_TAGVAR(hardcode_action, $1)=immediate
2192ca08ab68Smrg  fi
2193ca08ab68Smrgelse
2194ca08ab68Smrg  # We cannot hardcode anything, or else we can only hardcode existing
2195ca08ab68Smrg  # directories.
2196ca08ab68Smrg  _LT_TAGVAR(hardcode_action, $1)=unsupported
2197ca08ab68Smrgfi
2198ca08ab68SmrgAC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
2199ca08ab68Smrg
2200953daebaSmrgif test relink = "$_LT_TAGVAR(hardcode_action, $1)" ||
2201953daebaSmrg   test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then
2202ca08ab68Smrg  # Fast installation is not supported
2203ca08ab68Smrg  enable_fast_install=no
2204953daebaSmrgelif test yes = "$shlibpath_overrides_runpath" ||
2205953daebaSmrg     test no = "$enable_shared"; then
2206ca08ab68Smrg  # Fast installation is not necessary
2207ca08ab68Smrg  enable_fast_install=needless
2208ca08ab68Smrgfi
2209ca08ab68Smrg_LT_TAGDECL([], [hardcode_action], [0],
2210ca08ab68Smrg    [How to hardcode a shared library path into an executable])
2211ca08ab68Smrg])# _LT_LINKER_HARDCODE_LIBPATH
2212ca08ab68Smrg
2213ca08ab68Smrg
2214ca08ab68Smrg# _LT_CMD_STRIPLIB
2215ca08ab68Smrg# ----------------
2216ca08ab68Smrgm4_defun([_LT_CMD_STRIPLIB],
2217ca08ab68Smrg[m4_require([_LT_DECL_EGREP])
2218ca08ab68Smrgstriplib=
2219ca08ab68Smrgold_striplib=
2220ca08ab68SmrgAC_MSG_CHECKING([whether stripping libraries is possible])
2221eceda581Smrgif test -z "$STRIP"; then
2222eceda581Smrg  AC_MSG_RESULT([no])
2223ca08ab68Smrgelse
2224eceda581Smrg  if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
2225eceda581Smrg    old_striplib="$STRIP --strip-debug"
2226eceda581Smrg    striplib="$STRIP --strip-unneeded"
2227eceda581Smrg    AC_MSG_RESULT([yes])
2228eceda581Smrg  else
2229eceda581Smrg    case $host_os in
2230eceda581Smrg    darwin*)
2231eceda581Smrg      # FIXME - insert some real tests, host_os isn't really good enough
2232ca08ab68Smrg      striplib="$STRIP -x"
2233ca08ab68Smrg      old_striplib="$STRIP -S"
2234ca08ab68Smrg      AC_MSG_RESULT([yes])
2235eceda581Smrg      ;;
2236eceda581Smrg    freebsd*)
2237eceda581Smrg      if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then
2238eceda581Smrg        old_striplib="$STRIP --strip-debug"
2239eceda581Smrg        striplib="$STRIP --strip-unneeded"
2240eceda581Smrg        AC_MSG_RESULT([yes])
2241eceda581Smrg      else
2242eceda581Smrg        AC_MSG_RESULT([no])
2243eceda581Smrg      fi
2244eceda581Smrg      ;;
2245eceda581Smrg    *)
2246ca08ab68Smrg      AC_MSG_RESULT([no])
2247eceda581Smrg      ;;
2248eceda581Smrg    esac
2249eceda581Smrg  fi
2250ca08ab68Smrgfi
2251ca08ab68Smrg_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
2252ca08ab68Smrg_LT_DECL([], [striplib], [1])
2253ca08ab68Smrg])# _LT_CMD_STRIPLIB
2254ca08ab68Smrg
2255ca08ab68Smrg
2256953daebaSmrg# _LT_PREPARE_MUNGE_PATH_LIST
2257953daebaSmrg# ---------------------------
2258953daebaSmrg# Make sure func_munge_path_list() is defined correctly.
2259953daebaSmrgm4_defun([_LT_PREPARE_MUNGE_PATH_LIST],
2260953daebaSmrg[[# func_munge_path_list VARIABLE PATH
2261953daebaSmrg# -----------------------------------
2262953daebaSmrg# VARIABLE is name of variable containing _space_ separated list of
2263953daebaSmrg# directories to be munged by the contents of PATH, which is string
2264953daebaSmrg# having a format:
2265953daebaSmrg# "DIR[:DIR]:"
2266953daebaSmrg#       string "DIR[ DIR]" will be prepended to VARIABLE
2267953daebaSmrg# ":DIR[:DIR]"
2268953daebaSmrg#       string "DIR[ DIR]" will be appended to VARIABLE
2269953daebaSmrg# "DIRP[:DIRP]::[DIRA:]DIRA"
2270953daebaSmrg#       string "DIRP[ DIRP]" will be prepended to VARIABLE and string
2271953daebaSmrg#       "DIRA[ DIRA]" will be appended to VARIABLE
2272953daebaSmrg# "DIR[:DIR]"
2273953daebaSmrg#       VARIABLE will be replaced by "DIR[ DIR]"
2274953daebaSmrgfunc_munge_path_list ()
2275953daebaSmrg{
2276953daebaSmrg    case x@S|@2 in
2277953daebaSmrg    x)
2278953daebaSmrg        ;;
2279953daebaSmrg    *:)
2280953daebaSmrg        eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\"
2281953daebaSmrg        ;;
2282953daebaSmrg    x:*)
2283953daebaSmrg        eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\"
2284953daebaSmrg        ;;
2285953daebaSmrg    *::*)
2286953daebaSmrg        eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
2287953daebaSmrg        eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\"
2288953daebaSmrg        ;;
2289953daebaSmrg    *)
2290953daebaSmrg        eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\"
2291953daebaSmrg        ;;
2292953daebaSmrg    esac
2293953daebaSmrg}
2294953daebaSmrg]])# _LT_PREPARE_PATH_LIST
2295953daebaSmrg
2296953daebaSmrg
2297ca08ab68Smrg# _LT_SYS_DYNAMIC_LINKER([TAG])
2298ca08ab68Smrg# -----------------------------
2299ca08ab68Smrg# PORTME Fill in your ld.so characteristics
2300ca08ab68Smrgm4_defun([_LT_SYS_DYNAMIC_LINKER],
2301ca08ab68Smrg[AC_REQUIRE([AC_CANONICAL_HOST])dnl
2302ca08ab68Smrgm4_require([_LT_DECL_EGREP])dnl
2303ca08ab68Smrgm4_require([_LT_FILEUTILS_DEFAULTS])dnl
2304ca08ab68Smrgm4_require([_LT_DECL_OBJDUMP])dnl
2305ca08ab68Smrgm4_require([_LT_DECL_SED])dnl
2306ca08ab68Smrgm4_require([_LT_CHECK_SHELL_FEATURES])dnl
2307953daebaSmrgm4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl
2308ca08ab68SmrgAC_MSG_CHECKING([dynamic linker characteristics])
2309ca08ab68Smrgm4_if([$1],
2310ca08ab68Smrg	[], [
2311953daebaSmrgif test yes = "$GCC"; then
2312ca08ab68Smrg  case $host_os in
2313953daebaSmrg    darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
2314953daebaSmrg    *) lt_awk_arg='/^libraries:/' ;;
2315ca08ab68Smrg  esac
2316ca08ab68Smrg  case $host_os in
2317953daebaSmrg    mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;;
2318953daebaSmrg    *) lt_sed_strip_eq='s|=/|/|g' ;;
2319ca08ab68Smrg  esac
2320ca08ab68Smrg  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
2321ca08ab68Smrg  case $lt_search_path_spec in
2322ca08ab68Smrg  *\;*)
2323ca08ab68Smrg    # if the path contains ";" then we assume it to be the separator
2324ca08ab68Smrg    # otherwise default to the standard path separator (i.e. ":") - it is
2325ca08ab68Smrg    # assumed that no part of a normal pathname contains ";" but that should
2326ca08ab68Smrg    # okay in the real world where ";" in dirpaths is itself problematic.
2327ca08ab68Smrg    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
2328ca08ab68Smrg    ;;
2329ca08ab68Smrg  *)
2330ca08ab68Smrg    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
2331ca08ab68Smrg    ;;
2332ca08ab68Smrg  esac
2333ca08ab68Smrg  # Ok, now we have the path, separated by spaces, we can step through it
2334953daebaSmrg  # and add multilib dir if necessary...
2335ca08ab68Smrg  lt_tmp_lt_search_path_spec=
2336953daebaSmrg  lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
2337953daebaSmrg  # ...but if some path component already ends with the multilib dir we assume
2338953daebaSmrg  # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
2339953daebaSmrg  case "$lt_multi_os_dir; $lt_search_path_spec " in
2340953daebaSmrg  "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
2341953daebaSmrg    lt_multi_os_dir=
2342953daebaSmrg    ;;
2343953daebaSmrg  esac
2344ca08ab68Smrg  for lt_sys_path in $lt_search_path_spec; do
2345953daebaSmrg    if test -d "$lt_sys_path$lt_multi_os_dir"; then
2346953daebaSmrg      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
2347953daebaSmrg    elif test -n "$lt_multi_os_dir"; then
2348ca08ab68Smrg      test -d "$lt_sys_path" && \
2349ca08ab68Smrg	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
2350ca08ab68Smrg    fi
2351ca08ab68Smrg  done
2352ca08ab68Smrg  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
2353953daebaSmrgBEGIN {RS = " "; FS = "/|\n";} {
2354953daebaSmrg  lt_foo = "";
2355953daebaSmrg  lt_count = 0;
2356ca08ab68Smrg  for (lt_i = NF; lt_i > 0; lt_i--) {
2357ca08ab68Smrg    if ($lt_i != "" && $lt_i != ".") {
2358ca08ab68Smrg      if ($lt_i == "..") {
2359ca08ab68Smrg        lt_count++;
2360ca08ab68Smrg      } else {
2361ca08ab68Smrg        if (lt_count == 0) {
2362953daebaSmrg          lt_foo = "/" $lt_i lt_foo;
2363ca08ab68Smrg        } else {
2364ca08ab68Smrg          lt_count--;
2365ca08ab68Smrg        }
2366ca08ab68Smrg      }
2367ca08ab68Smrg    }
2368ca08ab68Smrg  }
2369ca08ab68Smrg  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
2370ca08ab68Smrg  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
2371ca08ab68Smrg}'`
2372ca08ab68Smrg  # AWK program above erroneously prepends '/' to C:/dos/paths
2373ca08ab68Smrg  # for these hosts.
2374ca08ab68Smrg  case $host_os in
2375ca08ab68Smrg    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
2376953daebaSmrg      $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;;
2377ca08ab68Smrg  esac
2378ca08ab68Smrg  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
2379ca08ab68Smrgelse
2380ca08ab68Smrg  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
2381ca08ab68Smrgfi])
2382ca08ab68Smrglibrary_names_spec=
2383ca08ab68Smrglibname_spec='lib$name'
2384ca08ab68Smrgsoname_spec=
2385953daebaSmrgshrext_cmds=.so
2386ca08ab68Smrgpostinstall_cmds=
2387ca08ab68Smrgpostuninstall_cmds=
2388ca08ab68Smrgfinish_cmds=
2389ca08ab68Smrgfinish_eval=
2390ca08ab68Smrgshlibpath_var=
2391ca08ab68Smrgshlibpath_overrides_runpath=unknown
2392ca08ab68Smrgversion_type=none
2393ca08ab68Smrgdynamic_linker="$host_os ld.so"
2394ca08ab68Smrgsys_lib_dlsearch_path_spec="/lib /usr/lib"
2395ca08ab68Smrgneed_lib_prefix=unknown
2396ca08ab68Smrghardcode_into_libs=no
2397ca08ab68Smrg
2398ca08ab68Smrg# when you set need_version to no, make sure it does not cause -set_version
2399ca08ab68Smrg# flags to be left without arguments
2400ca08ab68Smrgneed_version=unknown
2401ca08ab68Smrg
2402953daebaSmrgAC_ARG_VAR([LT_SYS_LIBRARY_PATH],
2403953daebaSmrg[User-defined run-time library search path.])
2404953daebaSmrg
2405ca08ab68Smrgcase $host_os in
2406ca08ab68Smrgaix3*)
2407ca08ab68Smrg  version_type=linux # correct to gnu/linux during the next big refactor
2408953daebaSmrg  library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
2409ca08ab68Smrg  shlibpath_var=LIBPATH
2410ca08ab68Smrg
2411ca08ab68Smrg  # AIX 3 has no versioning support, so we append a major version to the name.
2412953daebaSmrg  soname_spec='$libname$release$shared_ext$major'
2413ca08ab68Smrg  ;;
2414ca08ab68Smrg
2415ca08ab68Smrgaix[[4-9]]*)
2416ca08ab68Smrg  version_type=linux # correct to gnu/linux during the next big refactor
2417ca08ab68Smrg  need_lib_prefix=no
2418ca08ab68Smrg  need_version=no
2419ca08ab68Smrg  hardcode_into_libs=yes
2420953daebaSmrg  if test ia64 = "$host_cpu"; then
2421ca08ab68Smrg    # AIX 5 supports IA64
2422953daebaSmrg    library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
2423ca08ab68Smrg    shlibpath_var=LD_LIBRARY_PATH
2424ca08ab68Smrg  else
2425ca08ab68Smrg    # With GCC up to 2.95.x, collect2 would create an import file
2426ca08ab68Smrg    # for dependence libraries.  The import file would start with
2427953daebaSmrg    # the line '#! .'.  This would cause the generated library to
2428953daebaSmrg    # depend on '.', always an invalid library.  This was fixed in
2429ca08ab68Smrg    # development snapshots of GCC prior to 3.0.
2430ca08ab68Smrg    case $host_os in
2431ca08ab68Smrg      aix4 | aix4.[[01]] | aix4.[[01]].*)
2432ca08ab68Smrg      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
2433ca08ab68Smrg	   echo ' yes '
2434953daebaSmrg	   echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
2435ca08ab68Smrg	:
2436ca08ab68Smrg      else
2437ca08ab68Smrg	can_build_shared=no
2438ca08ab68Smrg      fi
2439ca08ab68Smrg      ;;
2440ca08ab68Smrg    esac
2441953daebaSmrg    # Using Import Files as archive members, it is possible to support
2442953daebaSmrg    # filename-based versioning of shared library archives on AIX. While
2443953daebaSmrg    # this would work for both with and without runtime linking, it will
2444953daebaSmrg    # prevent static linking of such archives. So we do filename-based
2445953daebaSmrg    # shared library versioning with .so extension only, which is used
2446953daebaSmrg    # when both runtime linking and shared linking is enabled.
2447953daebaSmrg    # Unfortunately, runtime linking may impact performance, so we do
2448953daebaSmrg    # not want this to be the default eventually. Also, we use the
2449953daebaSmrg    # versioned .so libs for executables only if there is the -brtl
2450953daebaSmrg    # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
2451953daebaSmrg    # To allow for filename-based versioning support, we need to create
2452953daebaSmrg    # libNAME.so.V as an archive file, containing:
2453953daebaSmrg    # *) an Import File, referring to the versioned filename of the
2454953daebaSmrg    #    archive as well as the shared archive member, telling the
2455953daebaSmrg    #    bitwidth (32 or 64) of that shared object, and providing the
2456953daebaSmrg    #    list of exported symbols of that shared object, eventually
2457953daebaSmrg    #    decorated with the 'weak' keyword
2458953daebaSmrg    # *) the shared object with the F_LOADONLY flag set, to really avoid
2459953daebaSmrg    #    it being seen by the linker.
2460953daebaSmrg    # At run time we better use the real file rather than another symlink,
2461953daebaSmrg    # but for link time we create the symlink libNAME.so -> libNAME.so.V
2462953daebaSmrg
2463953daebaSmrg    case $with_aix_soname,$aix_use_runtimelinking in
2464953daebaSmrg    # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
2465ca08ab68Smrg    # soname into executable. Probably we can add versioning support to
2466ca08ab68Smrg    # collect2, so additional links can be useful in future.
2467953daebaSmrg    aix,yes) # traditional libtool
2468953daebaSmrg      dynamic_linker='AIX unversionable lib.so'
2469ca08ab68Smrg      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
2470ca08ab68Smrg      # instead of lib<name>.a to let people know that these are not
2471ca08ab68Smrg      # typical AIX shared libraries.
2472953daebaSmrg      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
2473953daebaSmrg      ;;
2474953daebaSmrg    aix,no) # traditional AIX only
2475953daebaSmrg      dynamic_linker='AIX lib.a[(]lib.so.V[)]'
2476ca08ab68Smrg      # We preserve .a as extension for shared libraries through AIX4.2
2477ca08ab68Smrg      # and later when we are not doing run time linking.
2478953daebaSmrg      library_names_spec='$libname$release.a $libname.a'
2479953daebaSmrg      soname_spec='$libname$release$shared_ext$major'
2480953daebaSmrg      ;;
2481953daebaSmrg    svr4,*) # full svr4 only
2482953daebaSmrg      dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]"
2483953daebaSmrg      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
2484953daebaSmrg      # We do not specify a path in Import Files, so LIBPATH fires.
2485953daebaSmrg      shlibpath_overrides_runpath=yes
2486953daebaSmrg      ;;
2487953daebaSmrg    *,yes) # both, prefer svr4
2488953daebaSmrg      dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]"
2489953daebaSmrg      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
2490953daebaSmrg      # unpreferred sharedlib libNAME.a needs extra handling
2491953daebaSmrg      postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
2492953daebaSmrg      postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
2493953daebaSmrg      # We do not specify a path in Import Files, so LIBPATH fires.
2494953daebaSmrg      shlibpath_overrides_runpath=yes
2495953daebaSmrg      ;;
2496953daebaSmrg    *,no) # both, prefer aix
2497953daebaSmrg      dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]"
2498953daebaSmrg      library_names_spec='$libname$release.a $libname.a'
2499953daebaSmrg      soname_spec='$libname$release$shared_ext$major'
2500953daebaSmrg      # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
2501953daebaSmrg      postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
2502953daebaSmrg      postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
2503953daebaSmrg      ;;
2504953daebaSmrg    esac
2505ca08ab68Smrg    shlibpath_var=LIBPATH
2506ca08ab68Smrg  fi
2507ca08ab68Smrg  ;;
2508ca08ab68Smrg
2509ca08ab68Smrgamigaos*)
2510ca08ab68Smrg  case $host_cpu in
2511ca08ab68Smrg  powerpc)
2512ca08ab68Smrg    # Since July 2007 AmigaOS4 officially supports .so libraries.
2513ca08ab68Smrg    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
2514953daebaSmrg    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
2515ca08ab68Smrg    ;;
2516ca08ab68Smrg  m68k)
2517ca08ab68Smrg    library_names_spec='$libname.ixlibrary $libname.a'
2518ca08ab68Smrg    # Create ${libname}_ixlibrary.a entries in /sys/libs.
2519953daebaSmrg    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $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'
2520ca08ab68Smrg    ;;
2521ca08ab68Smrg  esac
2522ca08ab68Smrg  ;;
2523ca08ab68Smrg
2524ca08ab68Smrgbeos*)
2525953daebaSmrg  library_names_spec='$libname$shared_ext'
2526ca08ab68Smrg  dynamic_linker="$host_os ld.so"
2527ca08ab68Smrg  shlibpath_var=LIBRARY_PATH
2528ca08ab68Smrg  ;;
2529ca08ab68Smrg
2530ca08ab68Smrgbsdi[[45]]*)
2531ca08ab68Smrg  version_type=linux # correct to gnu/linux during the next big refactor
2532ca08ab68Smrg  need_version=no
2533953daebaSmrg  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
2534953daebaSmrg  soname_spec='$libname$release$shared_ext$major'
2535ca08ab68Smrg  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
2536ca08ab68Smrg  shlibpath_var=LD_LIBRARY_PATH
2537ca08ab68Smrg  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
2538ca08ab68Smrg  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
2539ca08ab68Smrg  # the default ld.so.conf also contains /usr/contrib/lib and
2540ca08ab68Smrg  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
2541ca08ab68Smrg  # libtool to hard-code these into programs
2542ca08ab68Smrg  ;;
2543ca08ab68Smrg
2544ca08ab68Smrgcygwin* | mingw* | pw32* | cegcc*)
2545ca08ab68Smrg  version_type=windows
2546953daebaSmrg  shrext_cmds=.dll
2547ca08ab68Smrg  need_version=no
2548ca08ab68Smrg  need_lib_prefix=no
2549ca08ab68Smrg
2550ca08ab68Smrg  case $GCC,$cc_basename in
2551ca08ab68Smrg  yes,*)
2552ca08ab68Smrg    # gcc
2553ca08ab68Smrg    library_names_spec='$libname.dll.a'
2554ca08ab68Smrg    # DLL is installed to $(libdir)/../bin by postinstall_cmds
2555953daebaSmrg    postinstall_cmds='base_file=`basename \$file`~
2556953daebaSmrg      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
2557ca08ab68Smrg      dldir=$destdir/`dirname \$dlpath`~
2558ca08ab68Smrg      test -d \$dldir || mkdir -p \$dldir~
2559ca08ab68Smrg      $install_prog $dir/$dlname \$dldir/$dlname~
2560ca08ab68Smrg      chmod a+x \$dldir/$dlname~
2561ca08ab68Smrg      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
2562ca08ab68Smrg        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
2563ca08ab68Smrg      fi'
2564ca08ab68Smrg    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
2565ca08ab68Smrg      dlpath=$dir/\$dldll~
2566ca08ab68Smrg       $RM \$dlpath'
2567ca08ab68Smrg    shlibpath_overrides_runpath=yes
2568ca08ab68Smrg
2569ca08ab68Smrg    case $host_os in
2570ca08ab68Smrg    cygwin*)
2571ca08ab68Smrg      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
2572eceda581Smrg      soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
2573ca08ab68Smrgm4_if([$1], [],[
2574ca08ab68Smrg      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
2575ca08ab68Smrg      ;;
2576ca08ab68Smrg    mingw* | cegcc*)
2577ca08ab68Smrg      # MinGW DLLs use traditional 'lib' prefix
2578953daebaSmrg      soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
2579ca08ab68Smrg      ;;
2580ca08ab68Smrg    pw32*)
2581ca08ab68Smrg      # pw32 DLLs use 'pw' prefix rather than 'lib'
2582eceda581Smrg      library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
2583ca08ab68Smrg      ;;
2584ca08ab68Smrg    esac
2585ca08ab68Smrg    dynamic_linker='Win32 ld.exe'
2586ca08ab68Smrg    ;;
2587ca08ab68Smrg
2588eceda581Smrg  *,cl* | *,icl*)
2589eceda581Smrg    # Native MSVC or ICC
2590ca08ab68Smrg    libname_spec='$name'
2591953daebaSmrg    soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
2592953daebaSmrg    library_names_spec='$libname.dll.lib'
2593ca08ab68Smrg
2594ca08ab68Smrg    case $build_os in
2595ca08ab68Smrg    mingw*)
2596ca08ab68Smrg      sys_lib_search_path_spec=
2597ca08ab68Smrg      lt_save_ifs=$IFS
2598ca08ab68Smrg      IFS=';'
2599ca08ab68Smrg      for lt_path in $LIB
2600ca08ab68Smrg      do
2601ca08ab68Smrg        IFS=$lt_save_ifs
2602ca08ab68Smrg        # Let DOS variable expansion print the short 8.3 style file name.
2603ca08ab68Smrg        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
2604ca08ab68Smrg        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
2605ca08ab68Smrg      done
2606ca08ab68Smrg      IFS=$lt_save_ifs
2607ca08ab68Smrg      # Convert to MSYS style.
2608eceda581Smrg      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
2609ca08ab68Smrg      ;;
2610ca08ab68Smrg    cygwin*)
2611ca08ab68Smrg      # Convert to unix form, then to dos form, then back to unix form
2612ca08ab68Smrg      # but this time dos style (no spaces!) so that the unix form looks
2613ca08ab68Smrg      # like /cygdrive/c/PROGRA~1:/cygdr...
2614ca08ab68Smrg      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
2615ca08ab68Smrg      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
2616ca08ab68Smrg      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
2617ca08ab68Smrg      ;;
2618ca08ab68Smrg    *)
2619953daebaSmrg      sys_lib_search_path_spec=$LIB
2620ca08ab68Smrg      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
2621ca08ab68Smrg        # It is most probably a Windows format PATH.
2622ca08ab68Smrg        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
2623ca08ab68Smrg      else
2624ca08ab68Smrg        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
2625ca08ab68Smrg      fi
2626ca08ab68Smrg      # FIXME: find the short name or the path components, as spaces are
2627ca08ab68Smrg      # common. (e.g. "Program Files" -> "PROGRA~1")
2628ca08ab68Smrg      ;;
2629ca08ab68Smrg    esac
2630ca08ab68Smrg
2631ca08ab68Smrg    # DLL is installed to $(libdir)/../bin by postinstall_cmds
2632953daebaSmrg    postinstall_cmds='base_file=`basename \$file`~
2633953daebaSmrg      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
2634ca08ab68Smrg      dldir=$destdir/`dirname \$dlpath`~
2635ca08ab68Smrg      test -d \$dldir || mkdir -p \$dldir~
2636ca08ab68Smrg      $install_prog $dir/$dlname \$dldir/$dlname'
2637ca08ab68Smrg    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
2638ca08ab68Smrg      dlpath=$dir/\$dldll~
2639ca08ab68Smrg       $RM \$dlpath'
2640ca08ab68Smrg    shlibpath_overrides_runpath=yes
2641ca08ab68Smrg    dynamic_linker='Win32 link.exe'
2642ca08ab68Smrg    ;;
2643ca08ab68Smrg
2644ca08ab68Smrg  *)
2645eceda581Smrg    # Assume MSVC and ICC wrapper
2646953daebaSmrg    library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'
2647ca08ab68Smrg    dynamic_linker='Win32 ld.exe'
2648ca08ab68Smrg    ;;
2649ca08ab68Smrg  esac
2650ca08ab68Smrg  # FIXME: first we should search . and the directory the executable is in
2651ca08ab68Smrg  shlibpath_var=PATH
2652ca08ab68Smrg  ;;
2653ca08ab68Smrg
2654ca08ab68Smrgdarwin* | rhapsody*)
2655ca08ab68Smrg  dynamic_linker="$host_os dyld"
2656ca08ab68Smrg  version_type=darwin
2657ca08ab68Smrg  need_lib_prefix=no
2658ca08ab68Smrg  need_version=no
2659953daebaSmrg  library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
2660953daebaSmrg  soname_spec='$libname$release$major$shared_ext'
2661ca08ab68Smrg  shlibpath_overrides_runpath=yes
2662ca08ab68Smrg  shlibpath_var=DYLD_LIBRARY_PATH
2663ca08ab68Smrg  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
2664ca08ab68Smrgm4_if([$1], [],[
2665ca08ab68Smrg  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
2666ca08ab68Smrg  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
2667ca08ab68Smrg  ;;
2668ca08ab68Smrg
2669ca08ab68Smrgdgux*)
2670ca08ab68Smrg  version_type=linux # correct to gnu/linux during the next big refactor
2671ca08ab68Smrg  need_lib_prefix=no
2672ca08ab68Smrg  need_version=no
2673953daebaSmrg  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
2674953daebaSmrg  soname_spec='$libname$release$shared_ext$major'
2675ca08ab68Smrg  shlibpath_var=LD_LIBRARY_PATH
2676ca08ab68Smrg  ;;
2677ca08ab68Smrg
2678eceda581Smrgfreebsd* | dragonfly* | midnightbsd*)
2679ca08ab68Smrg  # DragonFly does not have aout.  When/if they implement a new
2680ca08ab68Smrg  # versioning mechanism, adjust this.
2681ca08ab68Smrg  if test -x /usr/bin/objformat; then
2682ca08ab68Smrg    objformat=`/usr/bin/objformat`
2683ca08ab68Smrg  else
2684ca08ab68Smrg    case $host_os in
2685ca08ab68Smrg    freebsd[[23]].*) objformat=aout ;;
2686ca08ab68Smrg    *) objformat=elf ;;
2687ca08ab68Smrg    esac
2688ca08ab68Smrg  fi
2689ca08ab68Smrg  version_type=freebsd-$objformat
2690ca08ab68Smrg  case $version_type in
2691ca08ab68Smrg    freebsd-elf*)
2692953daebaSmrg      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
2693953daebaSmrg      soname_spec='$libname$release$shared_ext$major'
2694ca08ab68Smrg      need_version=no
2695ca08ab68Smrg      need_lib_prefix=no
2696ca08ab68Smrg      ;;
2697ca08ab68Smrg    freebsd-*)
2698953daebaSmrg      library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
2699ca08ab68Smrg      need_version=yes
2700ca08ab68Smrg      ;;
2701ca08ab68Smrg  esac
2702ca08ab68Smrg  shlibpath_var=LD_LIBRARY_PATH
2703ca08ab68Smrg  case $host_os in
2704ca08ab68Smrg  freebsd2.*)
2705ca08ab68Smrg    shlibpath_overrides_runpath=yes
2706ca08ab68Smrg    ;;
2707ca08ab68Smrg  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
2708ca08ab68Smrg    shlibpath_overrides_runpath=yes
2709ca08ab68Smrg    hardcode_into_libs=yes
2710ca08ab68Smrg    ;;
2711ca08ab68Smrg  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
2712ca08ab68Smrg  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
2713ca08ab68Smrg    shlibpath_overrides_runpath=no
2714ca08ab68Smrg    hardcode_into_libs=yes
2715ca08ab68Smrg    ;;
2716ca08ab68Smrg  *) # from 4.6 on, and DragonFly
2717ca08ab68Smrg    shlibpath_overrides_runpath=yes
2718ca08ab68Smrg    hardcode_into_libs=yes
2719ca08ab68Smrg    ;;
2720ca08ab68Smrg  esac
2721ca08ab68Smrg  ;;
2722ca08ab68Smrg
2723ca08ab68Smrghaiku*)
2724ca08ab68Smrg  version_type=linux # correct to gnu/linux during the next big refactor
2725ca08ab68Smrg  need_lib_prefix=no
2726ca08ab68Smrg  need_version=no
2727ca08ab68Smrg  dynamic_linker="$host_os runtime_loader"
2728953daebaSmrg  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
2729953daebaSmrg  soname_spec='$libname$release$shared_ext$major'
2730ca08ab68Smrg  shlibpath_var=LIBRARY_PATH
2731953daebaSmrg  shlibpath_overrides_runpath=no
2732ca08ab68Smrg  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
2733ca08ab68Smrg  hardcode_into_libs=yes
2734ca08ab68Smrg  ;;
2735ca08ab68Smrg
2736ca08ab68Smrghpux9* | hpux10* | hpux11*)
2737ca08ab68Smrg  # Give a soname corresponding to the major version so that dld.sl refuses to
2738ca08ab68Smrg  # link against other versions.
2739ca08ab68Smrg  version_type=sunos
2740ca08ab68Smrg  need_lib_prefix=no
2741ca08ab68Smrg  need_version=no
2742ca08ab68Smrg  case $host_cpu in
2743ca08ab68Smrg  ia64*)
2744ca08ab68Smrg    shrext_cmds='.so'
2745ca08ab68Smrg    hardcode_into_libs=yes
2746ca08ab68Smrg    dynamic_linker="$host_os dld.so"
2747ca08ab68Smrg    shlibpath_var=LD_LIBRARY_PATH
2748ca08ab68Smrg    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
2749953daebaSmrg    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
2750953daebaSmrg    soname_spec='$libname$release$shared_ext$major'
2751953daebaSmrg    if test 32 = "$HPUX_IA64_MODE"; then
2752ca08ab68Smrg      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
2753953daebaSmrg      sys_lib_dlsearch_path_spec=/usr/lib/hpux32
2754ca08ab68Smrg    else
2755ca08ab68Smrg      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
2756953daebaSmrg      sys_lib_dlsearch_path_spec=/usr/lib/hpux64
2757ca08ab68Smrg    fi
2758ca08ab68Smrg    ;;
2759ca08ab68Smrg  hppa*64*)
2760ca08ab68Smrg    shrext_cmds='.sl'
2761ca08ab68Smrg    hardcode_into_libs=yes
2762ca08ab68Smrg    dynamic_linker="$host_os dld.sl"
2763ca08ab68Smrg    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
2764ca08ab68Smrg    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
2765953daebaSmrg    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
2766953daebaSmrg    soname_spec='$libname$release$shared_ext$major'
2767ca08ab68Smrg    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
2768ca08ab68Smrg    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
2769ca08ab68Smrg    ;;
2770ca08ab68Smrg  *)
2771ca08ab68Smrg    shrext_cmds='.sl'
2772ca08ab68Smrg    dynamic_linker="$host_os dld.sl"
2773ca08ab68Smrg    shlibpath_var=SHLIB_PATH
2774ca08ab68Smrg    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
2775953daebaSmrg    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
2776953daebaSmrg    soname_spec='$libname$release$shared_ext$major'
2777ca08ab68Smrg    ;;
2778ca08ab68Smrg  esac
2779ca08ab68Smrg  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
2780ca08ab68Smrg  postinstall_cmds='chmod 555 $lib'
2781ca08ab68Smrg  # or fails outright, so override atomically:
2782ca08ab68Smrg  install_override_mode=555
2783ca08ab68Smrg  ;;
2784ca08ab68Smrg
2785ca08ab68Smrginterix[[3-9]]*)
2786ca08ab68Smrg  version_type=linux # correct to gnu/linux during the next big refactor
2787ca08ab68Smrg  need_lib_prefix=no
2788ca08ab68Smrg  need_version=no
2789953daebaSmrg  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
2790953daebaSmrg  soname_spec='$libname$release$shared_ext$major'
2791ca08ab68Smrg  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
2792ca08ab68Smrg  shlibpath_var=LD_LIBRARY_PATH
2793ca08ab68Smrg  shlibpath_overrides_runpath=no
2794ca08ab68Smrg  hardcode_into_libs=yes
2795ca08ab68Smrg  ;;
2796ca08ab68Smrg
2797ca08ab68Smrgirix5* | irix6* | nonstopux*)
2798ca08ab68Smrg  case $host_os in
2799ca08ab68Smrg    nonstopux*) version_type=nonstopux ;;
2800ca08ab68Smrg    *)
2801953daebaSmrg	if test yes = "$lt_cv_prog_gnu_ld"; then
2802ca08ab68Smrg		version_type=linux # correct to gnu/linux during the next big refactor
2803ca08ab68Smrg	else
2804ca08ab68Smrg		version_type=irix
2805ca08ab68Smrg	fi ;;
2806ca08ab68Smrg  esac
2807ca08ab68Smrg  need_lib_prefix=no
2808ca08ab68Smrg  need_version=no
2809953daebaSmrg  soname_spec='$libname$release$shared_ext$major'
2810953daebaSmrg  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
2811ca08ab68Smrg  case $host_os in
2812ca08ab68Smrg  irix5* | nonstopux*)
2813ca08ab68Smrg    libsuff= shlibsuff=
2814ca08ab68Smrg    ;;
2815ca08ab68Smrg  *)
2816ca08ab68Smrg    case $LD in # libtool.m4 will add one of these switches to LD
2817ca08ab68Smrg    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
2818ca08ab68Smrg      libsuff= shlibsuff= libmagic=32-bit;;
2819ca08ab68Smrg    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
2820ca08ab68Smrg      libsuff=32 shlibsuff=N32 libmagic=N32;;
2821ca08ab68Smrg    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
2822ca08ab68Smrg      libsuff=64 shlibsuff=64 libmagic=64-bit;;
2823ca08ab68Smrg    *) libsuff= shlibsuff= libmagic=never-match;;
2824ca08ab68Smrg    esac
2825ca08ab68Smrg    ;;
2826ca08ab68Smrg  esac
2827ca08ab68Smrg  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
2828ca08ab68Smrg  shlibpath_overrides_runpath=no
2829953daebaSmrg  sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
2830953daebaSmrg  sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
2831ca08ab68Smrg  hardcode_into_libs=yes
2832ca08ab68Smrg  ;;
2833ca08ab68Smrg
2834ca08ab68Smrg# No shared lib support for Linux oldld, aout, or coff.
2835ca08ab68Smrglinux*oldld* | linux*aout* | linux*coff*)
2836ca08ab68Smrg  dynamic_linker=no
2837ca08ab68Smrg  ;;
2838ca08ab68Smrg
2839953daebaSmrglinux*android*)
2840953daebaSmrg  version_type=none # Android doesn't support versioned libraries.
2841953daebaSmrg  need_lib_prefix=no
2842953daebaSmrg  need_version=no
2843953daebaSmrg  library_names_spec='$libname$release$shared_ext'
2844953daebaSmrg  soname_spec='$libname$release$shared_ext'
2845953daebaSmrg  finish_cmds=
2846953daebaSmrg  shlibpath_var=LD_LIBRARY_PATH
2847953daebaSmrg  shlibpath_overrides_runpath=yes
2848953daebaSmrg
2849953daebaSmrg  # This implies no fast_install, which is unacceptable.
2850953daebaSmrg  # Some rework will be needed to allow for fast_install
2851953daebaSmrg  # before this can be enabled.
2852953daebaSmrg  hardcode_into_libs=yes
2853953daebaSmrg
2854953daebaSmrg  dynamic_linker='Android linker'
2855953daebaSmrg  # Don't embed -rpath directories since the linker doesn't support them.
2856953daebaSmrg  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
2857953daebaSmrg  ;;
2858953daebaSmrg
2859ca08ab68Smrg# This must be glibc/ELF.
2860953daebaSmrglinux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
2861ca08ab68Smrg  version_type=linux # correct to gnu/linux during the next big refactor
2862ca08ab68Smrg  need_lib_prefix=no
2863ca08ab68Smrg  need_version=no
2864953daebaSmrg  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
2865953daebaSmrg  soname_spec='$libname$release$shared_ext$major'
2866ca08ab68Smrg  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
2867ca08ab68Smrg  shlibpath_var=LD_LIBRARY_PATH
2868ca08ab68Smrg  shlibpath_overrides_runpath=no
2869ca08ab68Smrg
2870ca08ab68Smrg  # Some binutils ld are patched to set DT_RUNPATH
2871ca08ab68Smrg  AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
2872ca08ab68Smrg    [lt_cv_shlibpath_overrides_runpath=no
2873ca08ab68Smrg    save_LDFLAGS=$LDFLAGS
2874ca08ab68Smrg    save_libdir=$libdir
2875ca08ab68Smrg    eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
2876ca08ab68Smrg	 LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
2877ca08ab68Smrg    AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
2878ca08ab68Smrg      [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
2879ca08ab68Smrg	 [lt_cv_shlibpath_overrides_runpath=yes])])
2880ca08ab68Smrg    LDFLAGS=$save_LDFLAGS
2881ca08ab68Smrg    libdir=$save_libdir
2882ca08ab68Smrg    ])
2883ca08ab68Smrg  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
2884ca08ab68Smrg
2885ca08ab68Smrg  # This implies no fast_install, which is unacceptable.
2886ca08ab68Smrg  # Some rework will be needed to allow for fast_install
2887ca08ab68Smrg  # before this can be enabled.
2888ca08ab68Smrg  hardcode_into_libs=yes
2889ca08ab68Smrg
2890ca08ab68Smrg  # Add ABI-specific directories to the system library path.
2891ca08ab68Smrg  sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
2892ca08ab68Smrg
2893953daebaSmrg  # Ideally, we could use ldconfig to report *all* directores which are
2894953daebaSmrg  # searched for libraries, however this is still not possible.  Aside from not
2895953daebaSmrg  # being certain /sbin/ldconfig is available, command
2896953daebaSmrg  # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
2897953daebaSmrg  # even though it is searched at run-time.  Try to do the best guess by
2898953daebaSmrg  # appending ld.so.conf contents (and includes) to the search path.
2899ca08ab68Smrg  if test -f /etc/ld.so.conf; then
2900ca08ab68Smrg    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' ' '`
2901ca08ab68Smrg    sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
2902ca08ab68Smrg  fi
2903ca08ab68Smrg
2904ca08ab68Smrg  # We used to test for /lib/ld.so.1 and disable shared libraries on
2905ca08ab68Smrg  # powerpc, because MkLinux only supported shared libraries with the
2906ca08ab68Smrg  # GNU dynamic linker.  Since this was broken with cross compilers,
2907ca08ab68Smrg  # most powerpc-linux boxes support dynamic linking these days and
2908ca08ab68Smrg  # people can always --disable-shared, the test was removed, and we
2909ca08ab68Smrg  # assume the GNU/Linux dynamic linker is in use.
2910ca08ab68Smrg  dynamic_linker='GNU/Linux ld.so'
2911ca08ab68Smrg  ;;
2912ca08ab68Smrg
2913ca08ab68Smrgnetbsd*)
2914ca08ab68Smrg  version_type=sunos
2915ca08ab68Smrg  need_lib_prefix=no
2916ca08ab68Smrg  need_version=no
2917ca08ab68Smrg  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
2918953daebaSmrg    library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
2919ca08ab68Smrg    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
2920ca08ab68Smrg    dynamic_linker='NetBSD (a.out) ld.so'
2921ca08ab68Smrg  else
2922953daebaSmrg    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
2923953daebaSmrg    soname_spec='$libname$release$shared_ext$major'
2924ca08ab68Smrg    dynamic_linker='NetBSD ld.elf_so'
2925ca08ab68Smrg  fi
2926ca08ab68Smrg  shlibpath_var=LD_LIBRARY_PATH
2927ca08ab68Smrg  shlibpath_overrides_runpath=yes
2928ca08ab68Smrg  hardcode_into_libs=yes
2929ca08ab68Smrg  ;;
2930ca08ab68Smrg
2931ca08ab68Smrgnewsos6)
2932ca08ab68Smrg  version_type=linux # correct to gnu/linux during the next big refactor
2933953daebaSmrg  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
2934ca08ab68Smrg  shlibpath_var=LD_LIBRARY_PATH
2935ca08ab68Smrg  shlibpath_overrides_runpath=yes
2936ca08ab68Smrg  ;;
2937ca08ab68Smrg
2938ca08ab68Smrg*nto* | *qnx*)
2939ca08ab68Smrg  version_type=qnx
2940ca08ab68Smrg  need_lib_prefix=no
2941ca08ab68Smrg  need_version=no
2942953daebaSmrg  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
2943953daebaSmrg  soname_spec='$libname$release$shared_ext$major'
2944ca08ab68Smrg  shlibpath_var=LD_LIBRARY_PATH
2945ca08ab68Smrg  shlibpath_overrides_runpath=no
2946ca08ab68Smrg  hardcode_into_libs=yes
2947ca08ab68Smrg  dynamic_linker='ldqnx.so'
2948ca08ab68Smrg  ;;
2949ca08ab68Smrg
2950953daebaSmrgopenbsd* | bitrig*)
2951ca08ab68Smrg  version_type=sunos
2952953daebaSmrg  sys_lib_dlsearch_path_spec=/usr/lib
2953ca08ab68Smrg  need_lib_prefix=no
2954953daebaSmrg  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
2955953daebaSmrg    need_version=no
2956ca08ab68Smrg  else
2957953daebaSmrg    need_version=yes
2958ca08ab68Smrg  fi
2959953daebaSmrg  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
2960953daebaSmrg  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
2961953daebaSmrg  shlibpath_var=LD_LIBRARY_PATH
2962953daebaSmrg  shlibpath_overrides_runpath=yes
2963ca08ab68Smrg  ;;
2964ca08ab68Smrg
2965ca08ab68Smrgos2*)
2966ca08ab68Smrg  libname_spec='$name'
2967953daebaSmrg  version_type=windows
2968953daebaSmrg  shrext_cmds=.dll
2969953daebaSmrg  need_version=no
2970ca08ab68Smrg  need_lib_prefix=no
2971953daebaSmrg  # OS/2 can only load a DLL with a base name of 8 characters or less.
2972953daebaSmrg  soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
2973953daebaSmrg    v=$($ECHO $release$versuffix | tr -d .-);
2974953daebaSmrg    n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
2975953daebaSmrg    $ECHO $n$v`$shared_ext'
2976953daebaSmrg  library_names_spec='${libname}_dll.$libext'
2977ca08ab68Smrg  dynamic_linker='OS/2 ld.exe'
2978953daebaSmrg  shlibpath_var=BEGINLIBPATH
2979953daebaSmrg  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
2980953daebaSmrg  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
2981953daebaSmrg  postinstall_cmds='base_file=`basename \$file`~
2982953daebaSmrg    dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
2983953daebaSmrg    dldir=$destdir/`dirname \$dlpath`~
2984953daebaSmrg    test -d \$dldir || mkdir -p \$dldir~
2985953daebaSmrg    $install_prog $dir/$dlname \$dldir/$dlname~
2986953daebaSmrg    chmod a+x \$dldir/$dlname~
2987953daebaSmrg    if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
2988953daebaSmrg      eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
2989953daebaSmrg    fi'
2990953daebaSmrg  postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
2991953daebaSmrg    dlpath=$dir/\$dldll~
2992953daebaSmrg    $RM \$dlpath'
2993ca08ab68Smrg  ;;
2994ca08ab68Smrg
2995ca08ab68Smrgosf3* | osf4* | osf5*)
2996ca08ab68Smrg  version_type=osf
2997ca08ab68Smrg  need_lib_prefix=no
2998ca08ab68Smrg  need_version=no
2999953daebaSmrg  soname_spec='$libname$release$shared_ext$major'
3000953daebaSmrg  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
3001ca08ab68Smrg  shlibpath_var=LD_LIBRARY_PATH
3002ca08ab68Smrg  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
3003953daebaSmrg  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
3004ca08ab68Smrg  ;;
3005ca08ab68Smrg
3006ca08ab68Smrgrdos*)
3007ca08ab68Smrg  dynamic_linker=no
3008ca08ab68Smrg  ;;
3009ca08ab68Smrg
3010ca08ab68Smrgsolaris*)
3011ca08ab68Smrg  version_type=linux # correct to gnu/linux during the next big refactor
3012ca08ab68Smrg  need_lib_prefix=no
3013ca08ab68Smrg  need_version=no
3014953daebaSmrg  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
3015953daebaSmrg  soname_spec='$libname$release$shared_ext$major'
3016ca08ab68Smrg  shlibpath_var=LD_LIBRARY_PATH
3017ca08ab68Smrg  shlibpath_overrides_runpath=yes
3018ca08ab68Smrg  hardcode_into_libs=yes
3019ca08ab68Smrg  # ldd complains unless libraries are executable
3020ca08ab68Smrg  postinstall_cmds='chmod +x $lib'
3021ca08ab68Smrg  ;;
3022ca08ab68Smrg
3023ca08ab68Smrgsunos4*)
3024ca08ab68Smrg  version_type=sunos
3025953daebaSmrg  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
3026ca08ab68Smrg  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
3027ca08ab68Smrg  shlibpath_var=LD_LIBRARY_PATH
3028ca08ab68Smrg  shlibpath_overrides_runpath=yes
3029953daebaSmrg  if test yes = "$with_gnu_ld"; then
3030ca08ab68Smrg    need_lib_prefix=no
3031ca08ab68Smrg  fi
3032ca08ab68Smrg  need_version=yes
3033ca08ab68Smrg  ;;
3034ca08ab68Smrg
3035ca08ab68Smrgsysv4 | sysv4.3*)
3036ca08ab68Smrg  version_type=linux # correct to gnu/linux during the next big refactor
3037953daebaSmrg  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
3038953daebaSmrg  soname_spec='$libname$release$shared_ext$major'
3039ca08ab68Smrg  shlibpath_var=LD_LIBRARY_PATH
3040ca08ab68Smrg  case $host_vendor in
3041ca08ab68Smrg    sni)
3042ca08ab68Smrg      shlibpath_overrides_runpath=no
3043ca08ab68Smrg      need_lib_prefix=no
3044ca08ab68Smrg      runpath_var=LD_RUN_PATH
3045ca08ab68Smrg      ;;
3046ca08ab68Smrg    siemens)
3047ca08ab68Smrg      need_lib_prefix=no
3048ca08ab68Smrg      ;;
3049ca08ab68Smrg    motorola)
3050ca08ab68Smrg      need_lib_prefix=no
3051ca08ab68Smrg      need_version=no
3052ca08ab68Smrg      shlibpath_overrides_runpath=no
3053ca08ab68Smrg      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
3054ca08ab68Smrg      ;;
3055ca08ab68Smrg  esac
3056ca08ab68Smrg  ;;
3057ca08ab68Smrg
3058ca08ab68Smrgsysv4*MP*)
3059953daebaSmrg  if test -d /usr/nec; then
3060ca08ab68Smrg    version_type=linux # correct to gnu/linux during the next big refactor
3061953daebaSmrg    library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
3062953daebaSmrg    soname_spec='$libname$shared_ext.$major'
3063ca08ab68Smrg    shlibpath_var=LD_LIBRARY_PATH
3064ca08ab68Smrg  fi
3065ca08ab68Smrg  ;;
3066ca08ab68Smrg
3067ca08ab68Smrgsysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
3068953daebaSmrg  version_type=sco
3069ca08ab68Smrg  need_lib_prefix=no
3070ca08ab68Smrg  need_version=no
3071953daebaSmrg  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
3072953daebaSmrg  soname_spec='$libname$release$shared_ext$major'
3073ca08ab68Smrg  shlibpath_var=LD_LIBRARY_PATH
3074ca08ab68Smrg  shlibpath_overrides_runpath=yes
3075ca08ab68Smrg  hardcode_into_libs=yes
3076953daebaSmrg  if test yes = "$with_gnu_ld"; then
3077ca08ab68Smrg    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
3078ca08ab68Smrg  else
3079ca08ab68Smrg    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
3080ca08ab68Smrg    case $host_os in
3081ca08ab68Smrg      sco3.2v5*)
3082ca08ab68Smrg        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
3083ca08ab68Smrg	;;
3084ca08ab68Smrg    esac
3085ca08ab68Smrg  fi
3086ca08ab68Smrg  sys_lib_dlsearch_path_spec='/usr/lib'
3087ca08ab68Smrg  ;;
3088ca08ab68Smrg
3089ca08ab68Smrgtpf*)
3090ca08ab68Smrg  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
3091ca08ab68Smrg  version_type=linux # correct to gnu/linux during the next big refactor
3092ca08ab68Smrg  need_lib_prefix=no
3093ca08ab68Smrg  need_version=no
3094953daebaSmrg  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
3095ca08ab68Smrg  shlibpath_var=LD_LIBRARY_PATH
3096ca08ab68Smrg  shlibpath_overrides_runpath=no
3097ca08ab68Smrg  hardcode_into_libs=yes
3098ca08ab68Smrg  ;;
3099ca08ab68Smrg
3100ca08ab68Smrguts4*)
3101ca08ab68Smrg  version_type=linux # correct to gnu/linux during the next big refactor
3102953daebaSmrg  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
3103953daebaSmrg  soname_spec='$libname$release$shared_ext$major'
3104ca08ab68Smrg  shlibpath_var=LD_LIBRARY_PATH
3105ca08ab68Smrg  ;;
3106ca08ab68Smrg
3107ca08ab68Smrg*)
3108ca08ab68Smrg  dynamic_linker=no
3109ca08ab68Smrg  ;;
3110ca08ab68Smrgesac
3111ca08ab68SmrgAC_MSG_RESULT([$dynamic_linker])
3112953daebaSmrgtest no = "$dynamic_linker" && can_build_shared=no
3113ca08ab68Smrg
3114ca08ab68Smrgvariables_saved_for_relink="PATH $shlibpath_var $runpath_var"
3115953daebaSmrgif test yes = "$GCC"; then
3116ca08ab68Smrg  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
3117ca08ab68Smrgfi
3118ca08ab68Smrg
3119953daebaSmrgif test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
3120953daebaSmrg  sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
3121ca08ab68Smrgfi
3122953daebaSmrg
3123953daebaSmrgif test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
3124953daebaSmrg  sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
3125ca08ab68Smrgfi
3126ca08ab68Smrg
3127953daebaSmrg# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
3128953daebaSmrgconfigure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
3129953daebaSmrg
3130953daebaSmrg# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
3131953daebaSmrgfunc_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
3132953daebaSmrg
3133953daebaSmrg# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
3134953daebaSmrgconfigure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
3135953daebaSmrg
3136ca08ab68Smrg_LT_DECL([], [variables_saved_for_relink], [1],
3137ca08ab68Smrg    [Variables whose values should be saved in libtool wrapper scripts and
3138ca08ab68Smrg    restored at link time])
3139ca08ab68Smrg_LT_DECL([], [need_lib_prefix], [0],
3140ca08ab68Smrg    [Do we need the "lib" prefix for modules?])
3141ca08ab68Smrg_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
3142ca08ab68Smrg_LT_DECL([], [version_type], [0], [Library versioning type])
3143ca08ab68Smrg_LT_DECL([], [runpath_var], [0],  [Shared library runtime path variable])
3144ca08ab68Smrg_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
3145ca08ab68Smrg_LT_DECL([], [shlibpath_overrides_runpath], [0],
3146ca08ab68Smrg    [Is shlibpath searched before the hard-coded library search path?])
3147ca08ab68Smrg_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
3148ca08ab68Smrg_LT_DECL([], [library_names_spec], [1],
3149ca08ab68Smrg    [[List of archive names.  First name is the real one, the rest are links.
3150ca08ab68Smrg    The last name is the one that the linker finds with -lNAME]])
3151ca08ab68Smrg_LT_DECL([], [soname_spec], [1],
3152ca08ab68Smrg    [[The coded name of the library, if different from the real name]])
3153ca08ab68Smrg_LT_DECL([], [install_override_mode], [1],
3154ca08ab68Smrg    [Permission mode override for installation of shared libraries])
3155ca08ab68Smrg_LT_DECL([], [postinstall_cmds], [2],
3156ca08ab68Smrg    [Command to use after installation of a shared archive])
3157ca08ab68Smrg_LT_DECL([], [postuninstall_cmds], [2],
3158ca08ab68Smrg    [Command to use after uninstallation of a shared archive])
3159ca08ab68Smrg_LT_DECL([], [finish_cmds], [2],
3160ca08ab68Smrg    [Commands used to finish a libtool library installation in a directory])
3161ca08ab68Smrg_LT_DECL([], [finish_eval], [1],
3162ca08ab68Smrg    [[As "finish_cmds", except a single script fragment to be evaled but
3163ca08ab68Smrg    not shown]])
3164ca08ab68Smrg_LT_DECL([], [hardcode_into_libs], [0],
3165ca08ab68Smrg    [Whether we should hardcode library paths into libraries])
3166ca08ab68Smrg_LT_DECL([], [sys_lib_search_path_spec], [2],
3167ca08ab68Smrg    [Compile-time system search path for libraries])
3168953daebaSmrg_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2],
3169953daebaSmrg    [Detected run-time system search path for libraries])
3170953daebaSmrg_LT_DECL([], [configure_time_lt_sys_library_path], [2],
3171953daebaSmrg    [Explicit LT_SYS_LIBRARY_PATH set during ./configure time])
3172ca08ab68Smrg])# _LT_SYS_DYNAMIC_LINKER
3173ca08ab68Smrg
3174ca08ab68Smrg
3175ca08ab68Smrg# _LT_PATH_TOOL_PREFIX(TOOL)
3176ca08ab68Smrg# --------------------------
3177953daebaSmrg# find a file program that can recognize shared library
3178ca08ab68SmrgAC_DEFUN([_LT_PATH_TOOL_PREFIX],
3179ca08ab68Smrg[m4_require([_LT_DECL_EGREP])dnl
3180ca08ab68SmrgAC_MSG_CHECKING([for $1])
3181ca08ab68SmrgAC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
3182ca08ab68Smrg[case $MAGIC_CMD in
3183ca08ab68Smrg[[\\/*] |  ?:[\\/]*])
3184953daebaSmrg  lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
3185ca08ab68Smrg  ;;
3186ca08ab68Smrg*)
3187953daebaSmrg  lt_save_MAGIC_CMD=$MAGIC_CMD
3188953daebaSmrg  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
3189ca08ab68Smrgdnl $ac_dummy forces splitting on constant user-supplied paths.
3190ca08ab68Smrgdnl POSIX.2 word splitting is done only on the output of word expansions,
3191ca08ab68Smrgdnl not every word.  This closes a longstanding sh security hole.
3192ca08ab68Smrg  ac_dummy="m4_if([$2], , $PATH, [$2])"
3193ca08ab68Smrg  for ac_dir in $ac_dummy; do
3194953daebaSmrg    IFS=$lt_save_ifs
3195ca08ab68Smrg    test -z "$ac_dir" && ac_dir=.
3196953daebaSmrg    if test -f "$ac_dir/$1"; then
3197953daebaSmrg      lt_cv_path_MAGIC_CMD=$ac_dir/"$1"
3198ca08ab68Smrg      if test -n "$file_magic_test_file"; then
3199ca08ab68Smrg	case $deplibs_check_method in
3200ca08ab68Smrg	"file_magic "*)
3201ca08ab68Smrg	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
3202953daebaSmrg	  MAGIC_CMD=$lt_cv_path_MAGIC_CMD
3203ca08ab68Smrg	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
3204ca08ab68Smrg	    $EGREP "$file_magic_regex" > /dev/null; then
3205ca08ab68Smrg	    :
3206ca08ab68Smrg	  else
3207ca08ab68Smrg	    cat <<_LT_EOF 1>&2
3208ca08ab68Smrg
3209ca08ab68Smrg*** Warning: the command libtool uses to detect shared libraries,
3210ca08ab68Smrg*** $file_magic_cmd, produces output that libtool cannot recognize.
3211ca08ab68Smrg*** The result is that libtool may fail to recognize shared libraries
3212ca08ab68Smrg*** as such.  This will affect the creation of libtool libraries that
3213ca08ab68Smrg*** depend on shared libraries, but programs linked with such libtool
3214ca08ab68Smrg*** libraries will work regardless of this problem.  Nevertheless, you
3215ca08ab68Smrg*** may want to report the problem to your system manager and/or to
3216ca08ab68Smrg*** bug-libtool@gnu.org
3217ca08ab68Smrg
3218ca08ab68Smrg_LT_EOF
3219ca08ab68Smrg	  fi ;;
3220ca08ab68Smrg	esac
3221ca08ab68Smrg      fi
3222ca08ab68Smrg      break
3223ca08ab68Smrg    fi
3224ca08ab68Smrg  done
3225953daebaSmrg  IFS=$lt_save_ifs
3226953daebaSmrg  MAGIC_CMD=$lt_save_MAGIC_CMD
3227ca08ab68Smrg  ;;
3228ca08ab68Smrgesac])
3229953daebaSmrgMAGIC_CMD=$lt_cv_path_MAGIC_CMD
3230ca08ab68Smrgif test -n "$MAGIC_CMD"; then
3231ca08ab68Smrg  AC_MSG_RESULT($MAGIC_CMD)
3232ca08ab68Smrgelse
3233ca08ab68Smrg  AC_MSG_RESULT(no)
3234ca08ab68Smrgfi
3235ca08ab68Smrg_LT_DECL([], [MAGIC_CMD], [0],
3236ca08ab68Smrg	 [Used to examine libraries when file_magic_cmd begins with "file"])dnl
3237ca08ab68Smrg])# _LT_PATH_TOOL_PREFIX
3238ca08ab68Smrg
3239ca08ab68Smrg# Old name:
3240ca08ab68SmrgAU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
3241ca08ab68Smrgdnl aclocal-1.4 backwards compatibility:
3242ca08ab68Smrgdnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
3243ca08ab68Smrg
3244ca08ab68Smrg
3245ca08ab68Smrg# _LT_PATH_MAGIC
3246ca08ab68Smrg# --------------
3247953daebaSmrg# find a file program that can recognize a shared library
3248ca08ab68Smrgm4_defun([_LT_PATH_MAGIC],
3249ca08ab68Smrg[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
3250ca08ab68Smrgif test -z "$lt_cv_path_MAGIC_CMD"; then
3251ca08ab68Smrg  if test -n "$ac_tool_prefix"; then
3252ca08ab68Smrg    _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
3253ca08ab68Smrg  else
3254ca08ab68Smrg    MAGIC_CMD=:
3255ca08ab68Smrg  fi
3256ca08ab68Smrgfi
3257ca08ab68Smrg])# _LT_PATH_MAGIC
3258ca08ab68Smrg
3259ca08ab68Smrg
3260ca08ab68Smrg# LT_PATH_LD
3261ca08ab68Smrg# ----------
3262ca08ab68Smrg# find the pathname to the GNU or non-GNU linker
3263ca08ab68SmrgAC_DEFUN([LT_PATH_LD],
3264ca08ab68Smrg[AC_REQUIRE([AC_PROG_CC])dnl
3265ca08ab68SmrgAC_REQUIRE([AC_CANONICAL_HOST])dnl
3266ca08ab68SmrgAC_REQUIRE([AC_CANONICAL_BUILD])dnl
3267ca08ab68Smrgm4_require([_LT_DECL_SED])dnl
3268ca08ab68Smrgm4_require([_LT_DECL_EGREP])dnl
3269ca08ab68Smrgm4_require([_LT_PROG_ECHO_BACKSLASH])dnl
3270ca08ab68Smrg
3271ca08ab68SmrgAC_ARG_WITH([gnu-ld],
3272ca08ab68Smrg    [AS_HELP_STRING([--with-gnu-ld],
3273ca08ab68Smrg	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
3274953daebaSmrg    [test no = "$withval" || with_gnu_ld=yes],
3275ca08ab68Smrg    [with_gnu_ld=no])dnl
3276ca08ab68Smrg
3277ca08ab68Smrgac_prog=ld
3278953daebaSmrgif test yes = "$GCC"; then
3279ca08ab68Smrg  # Check if gcc -print-prog-name=ld gives a path.
3280ca08ab68Smrg  AC_MSG_CHECKING([for ld used by $CC])
3281ca08ab68Smrg  case $host in
3282ca08ab68Smrg  *-*-mingw*)
3283953daebaSmrg    # gcc leaves a trailing carriage return, which upsets mingw
3284ca08ab68Smrg    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
3285ca08ab68Smrg  *)
3286ca08ab68Smrg    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
3287ca08ab68Smrg  esac
3288ca08ab68Smrg  case $ac_prog in
3289ca08ab68Smrg    # Accept absolute paths.
3290ca08ab68Smrg    [[\\/]]* | ?:[[\\/]]*)
3291ca08ab68Smrg      re_direlt='/[[^/]][[^/]]*/\.\./'
3292ca08ab68Smrg      # Canonicalize the pathname of ld
3293ca08ab68Smrg      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
3294ca08ab68Smrg      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
3295ca08ab68Smrg	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
3296ca08ab68Smrg      done
3297953daebaSmrg      test -z "$LD" && LD=$ac_prog
3298ca08ab68Smrg      ;;
3299ca08ab68Smrg  "")
3300ca08ab68Smrg    # If it fails, then pretend we aren't using GCC.
3301ca08ab68Smrg    ac_prog=ld
3302ca08ab68Smrg    ;;
3303ca08ab68Smrg  *)
3304ca08ab68Smrg    # If it is relative, then search for the first ld in PATH.
3305ca08ab68Smrg    with_gnu_ld=unknown
3306ca08ab68Smrg    ;;
3307ca08ab68Smrg  esac
3308953daebaSmrgelif test yes = "$with_gnu_ld"; then
3309ca08ab68Smrg  AC_MSG_CHECKING([for GNU ld])
3310ca08ab68Smrgelse
3311ca08ab68Smrg  AC_MSG_CHECKING([for non-GNU ld])
3312ca08ab68Smrgfi
3313ca08ab68SmrgAC_CACHE_VAL(lt_cv_path_LD,
3314ca08ab68Smrg[if test -z "$LD"; then
3315953daebaSmrg  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
3316ca08ab68Smrg  for ac_dir in $PATH; do
3317953daebaSmrg    IFS=$lt_save_ifs
3318ca08ab68Smrg    test -z "$ac_dir" && ac_dir=.
3319ca08ab68Smrg    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
3320953daebaSmrg      lt_cv_path_LD=$ac_dir/$ac_prog
3321ca08ab68Smrg      # Check to see if the program is GNU ld.  I'd rather use --version,
3322ca08ab68Smrg      # but apparently some variants of GNU ld only accept -v.
3323ca08ab68Smrg      # Break only if it was the GNU/non-GNU ld that we prefer.
3324ca08ab68Smrg      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
3325ca08ab68Smrg      *GNU* | *'with BFD'*)
3326953daebaSmrg	test no != "$with_gnu_ld" && break
3327ca08ab68Smrg	;;
3328ca08ab68Smrg      *)
3329953daebaSmrg	test yes != "$with_gnu_ld" && break
3330ca08ab68Smrg	;;
3331ca08ab68Smrg      esac
3332ca08ab68Smrg    fi
3333ca08ab68Smrg  done
3334953daebaSmrg  IFS=$lt_save_ifs
3335ca08ab68Smrgelse
3336953daebaSmrg  lt_cv_path_LD=$LD # Let the user override the test with a path.
3337ca08ab68Smrgfi])
3338953daebaSmrgLD=$lt_cv_path_LD
3339ca08ab68Smrgif test -n "$LD"; then
3340ca08ab68Smrg  AC_MSG_RESULT($LD)
3341ca08ab68Smrgelse
3342ca08ab68Smrg  AC_MSG_RESULT(no)
3343ca08ab68Smrgfi
3344ca08ab68Smrgtest -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
3345ca08ab68Smrg_LT_PATH_LD_GNU
3346ca08ab68SmrgAC_SUBST([LD])
3347ca08ab68Smrg
3348ca08ab68Smrg_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
3349ca08ab68Smrg])# LT_PATH_LD
3350ca08ab68Smrg
3351ca08ab68Smrg# Old names:
3352ca08ab68SmrgAU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
3353ca08ab68SmrgAU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
3354ca08ab68Smrgdnl aclocal-1.4 backwards compatibility:
3355ca08ab68Smrgdnl AC_DEFUN([AM_PROG_LD], [])
3356ca08ab68Smrgdnl AC_DEFUN([AC_PROG_LD], [])
3357ca08ab68Smrg
3358ca08ab68Smrg
3359ca08ab68Smrg# _LT_PATH_LD_GNU
3360ca08ab68Smrg#- --------------
3361ca08ab68Smrgm4_defun([_LT_PATH_LD_GNU],
3362ca08ab68Smrg[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
3363ca08ab68Smrg[# I'd rather use --version here, but apparently some GNU lds only accept -v.
3364ca08ab68Smrgcase `$LD -v 2>&1 </dev/null` in
3365ca08ab68Smrg*GNU* | *'with BFD'*)
3366ca08ab68Smrg  lt_cv_prog_gnu_ld=yes
3367ca08ab68Smrg  ;;
3368ca08ab68Smrg*)
3369ca08ab68Smrg  lt_cv_prog_gnu_ld=no
3370ca08ab68Smrg  ;;
3371ca08ab68Smrgesac])
3372ca08ab68Smrgwith_gnu_ld=$lt_cv_prog_gnu_ld
3373ca08ab68Smrg])# _LT_PATH_LD_GNU
3374ca08ab68Smrg
3375ca08ab68Smrg
3376ca08ab68Smrg# _LT_CMD_RELOAD
3377ca08ab68Smrg# --------------
3378ca08ab68Smrg# find reload flag for linker
3379ca08ab68Smrg#   -- PORTME Some linkers may need a different reload flag.
3380ca08ab68Smrgm4_defun([_LT_CMD_RELOAD],
3381ca08ab68Smrg[AC_CACHE_CHECK([for $LD option to reload object files],
3382ca08ab68Smrg  lt_cv_ld_reload_flag,
3383ca08ab68Smrg  [lt_cv_ld_reload_flag='-r'])
3384ca08ab68Smrgreload_flag=$lt_cv_ld_reload_flag
3385ca08ab68Smrgcase $reload_flag in
3386ca08ab68Smrg"" | " "*) ;;
3387ca08ab68Smrg*) reload_flag=" $reload_flag" ;;
3388ca08ab68Smrgesac
3389ca08ab68Smrgreload_cmds='$LD$reload_flag -o $output$reload_objs'
3390ca08ab68Smrgcase $host_os in
3391ca08ab68Smrg  cygwin* | mingw* | pw32* | cegcc*)
3392953daebaSmrg    if test yes != "$GCC"; then
3393ca08ab68Smrg      reload_cmds=false
3394ca08ab68Smrg    fi
3395ca08ab68Smrg    ;;
3396ca08ab68Smrg  darwin*)
3397953daebaSmrg    if test yes = "$GCC"; then
3398953daebaSmrg      reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
3399ca08ab68Smrg    else
3400ca08ab68Smrg      reload_cmds='$LD$reload_flag -o $output$reload_objs'
3401ca08ab68Smrg    fi
3402ca08ab68Smrg    ;;
3403ca08ab68Smrgesac
3404ca08ab68Smrg_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
3405ca08ab68Smrg_LT_TAGDECL([], [reload_cmds], [2])dnl
3406ca08ab68Smrg])# _LT_CMD_RELOAD
3407ca08ab68Smrg
3408ca08ab68Smrg
3409953daebaSmrg# _LT_PATH_DD
3410953daebaSmrg# -----------
3411953daebaSmrg# find a working dd
3412953daebaSmrgm4_defun([_LT_PATH_DD],
3413953daebaSmrg[AC_CACHE_CHECK([for a working dd], [ac_cv_path_lt_DD],
3414953daebaSmrg[printf 0123456789abcdef0123456789abcdef >conftest.i
3415953daebaSmrgcat conftest.i conftest.i >conftest2.i
3416953daebaSmrg: ${lt_DD:=$DD}
3417953daebaSmrgAC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd],
3418953daebaSmrg[if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
3419953daebaSmrg  cmp -s conftest.i conftest.out \
3420953daebaSmrg  && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
3421953daebaSmrgfi])
3422953daebaSmrgrm -f conftest.i conftest2.i conftest.out])
3423953daebaSmrg])# _LT_PATH_DD
3424953daebaSmrg
3425953daebaSmrg
3426953daebaSmrg# _LT_CMD_TRUNCATE
3427953daebaSmrg# ----------------
3428953daebaSmrg# find command to truncate a binary pipe
3429953daebaSmrgm4_defun([_LT_CMD_TRUNCATE],
3430953daebaSmrg[m4_require([_LT_PATH_DD])
3431953daebaSmrgAC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin],
3432953daebaSmrg[printf 0123456789abcdef0123456789abcdef >conftest.i
3433953daebaSmrgcat conftest.i conftest.i >conftest2.i
3434953daebaSmrglt_cv_truncate_bin=
3435953daebaSmrgif "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
3436953daebaSmrg  cmp -s conftest.i conftest.out \
3437953daebaSmrg  && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
3438953daebaSmrgfi
3439953daebaSmrgrm -f conftest.i conftest2.i conftest.out
3440953daebaSmrgtest -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"])
3441953daebaSmrg_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1],
3442953daebaSmrg  [Command to truncate a binary pipe])
3443953daebaSmrg])# _LT_CMD_TRUNCATE
3444953daebaSmrg
3445953daebaSmrg
3446ca08ab68Smrg# _LT_CHECK_MAGIC_METHOD
3447ca08ab68Smrg# ----------------------
3448ca08ab68Smrg# how to check for library dependencies
3449ca08ab68Smrg#  -- PORTME fill in with the dynamic library characteristics
3450ca08ab68Smrgm4_defun([_LT_CHECK_MAGIC_METHOD],
3451ca08ab68Smrg[m4_require([_LT_DECL_EGREP])
3452ca08ab68Smrgm4_require([_LT_DECL_OBJDUMP])
3453ca08ab68SmrgAC_CACHE_CHECK([how to recognize dependent libraries],
3454ca08ab68Smrglt_cv_deplibs_check_method,
3455ca08ab68Smrg[lt_cv_file_magic_cmd='$MAGIC_CMD'
3456ca08ab68Smrglt_cv_file_magic_test_file=
3457ca08ab68Smrglt_cv_deplibs_check_method='unknown'
3458ca08ab68Smrg# Need to set the preceding variable on all platforms that support
3459ca08ab68Smrg# interlibrary dependencies.
3460ca08ab68Smrg# 'none' -- dependencies not supported.
3461953daebaSmrg# 'unknown' -- same as none, but documents that we really don't know.
3462ca08ab68Smrg# 'pass_all' -- all dependencies passed with no checks.
3463ca08ab68Smrg# 'test_compile' -- check by making test program.
3464ca08ab68Smrg# 'file_magic [[regex]]' -- check by looking for files in library path
3465953daebaSmrg# that responds to the $file_magic_cmd with a given extended regex.
3466953daebaSmrg# If you have 'file' or equivalent on your system and you're not sure
3467953daebaSmrg# whether 'pass_all' will *always* work, you probably want this one.
3468ca08ab68Smrg
3469ca08ab68Smrgcase $host_os in
3470ca08ab68Smrgaix[[4-9]]*)
3471ca08ab68Smrg  lt_cv_deplibs_check_method=pass_all
3472ca08ab68Smrg  ;;
3473ca08ab68Smrg
3474ca08ab68Smrgbeos*)
3475ca08ab68Smrg  lt_cv_deplibs_check_method=pass_all
3476ca08ab68Smrg  ;;
3477ca08ab68Smrg
3478ca08ab68Smrgbsdi[[45]]*)
3479ca08ab68Smrg  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
3480eceda581Smrg  lt_cv_file_magic_cmd='$FILECMD -L'
3481ca08ab68Smrg  lt_cv_file_magic_test_file=/shlib/libc.so
3482ca08ab68Smrg  ;;
3483ca08ab68Smrg
3484ca08ab68Smrgcygwin*)
3485ca08ab68Smrg  # func_win32_libid is a shell function defined in ltmain.sh
3486ca08ab68Smrg  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
3487ca08ab68Smrg  lt_cv_file_magic_cmd='func_win32_libid'
3488ca08ab68Smrg  ;;
3489ca08ab68Smrg
3490ca08ab68Smrgmingw* | pw32*)
3491ca08ab68Smrg  # Base MSYS/MinGW do not provide the 'file' command needed by
3492ca08ab68Smrg  # func_win32_libid shell function, so use a weaker test based on 'objdump',
3493ca08ab68Smrg  # unless we find 'file', for example because we are cross-compiling.
3494953daebaSmrg  if ( file / ) >/dev/null 2>&1; then
3495ca08ab68Smrg    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
3496ca08ab68Smrg    lt_cv_file_magic_cmd='func_win32_libid'
3497ca08ab68Smrg  else
3498ca08ab68Smrg    # Keep this pattern in sync with the one in func_win32_libid.
3499ca08ab68Smrg    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
3500ca08ab68Smrg    lt_cv_file_magic_cmd='$OBJDUMP -f'
3501ca08ab68Smrg  fi
3502ca08ab68Smrg  ;;
3503ca08ab68Smrg
3504ca08ab68Smrgcegcc*)
3505ca08ab68Smrg  # use the weaker test based on 'objdump'. See mingw*.
3506ca08ab68Smrg  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
3507ca08ab68Smrg  lt_cv_file_magic_cmd='$OBJDUMP -f'
3508ca08ab68Smrg  ;;
3509ca08ab68Smrg
3510ca08ab68Smrgdarwin* | rhapsody*)
3511ca08ab68Smrg  lt_cv_deplibs_check_method=pass_all
3512ca08ab68Smrg  ;;
3513ca08ab68Smrg
3514eceda581Smrgfreebsd* | dragonfly* | midnightbsd*)
3515ca08ab68Smrg  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
3516ca08ab68Smrg    case $host_cpu in
3517ca08ab68Smrg    i*86 )
3518ca08ab68Smrg      # Not sure whether the presence of OpenBSD here was a mistake.
3519ca08ab68Smrg      # Let's accept both of them until this is cleared up.
3520ca08ab68Smrg      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
3521eceda581Smrg      lt_cv_file_magic_cmd=$FILECMD
3522ca08ab68Smrg      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
3523ca08ab68Smrg      ;;
3524ca08ab68Smrg    esac
3525ca08ab68Smrg  else
3526ca08ab68Smrg    lt_cv_deplibs_check_method=pass_all
3527ca08ab68Smrg  fi
3528ca08ab68Smrg  ;;
3529ca08ab68Smrg
3530ca08ab68Smrghaiku*)
3531ca08ab68Smrg  lt_cv_deplibs_check_method=pass_all
3532ca08ab68Smrg  ;;
3533ca08ab68Smrg
3534ca08ab68Smrghpux10.20* | hpux11*)
3535eceda581Smrg  lt_cv_file_magic_cmd=$FILECMD
3536ca08ab68Smrg  case $host_cpu in
3537ca08ab68Smrg  ia64*)
3538ca08ab68Smrg    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
3539ca08ab68Smrg    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
3540ca08ab68Smrg    ;;
3541ca08ab68Smrg  hppa*64*)
3542ca08ab68Smrg    [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]']
3543ca08ab68Smrg    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
3544ca08ab68Smrg    ;;
3545ca08ab68Smrg  *)
3546ca08ab68Smrg    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
3547ca08ab68Smrg    lt_cv_file_magic_test_file=/usr/lib/libc.sl
3548ca08ab68Smrg    ;;
3549ca08ab68Smrg  esac
3550ca08ab68Smrg  ;;
3551ca08ab68Smrg
3552ca08ab68Smrginterix[[3-9]]*)
3553ca08ab68Smrg  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
3554ca08ab68Smrg  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
3555ca08ab68Smrg  ;;
3556ca08ab68Smrg
3557ca08ab68Smrgirix5* | irix6* | nonstopux*)
3558ca08ab68Smrg  case $LD in
3559ca08ab68Smrg  *-32|*"-32 ") libmagic=32-bit;;
3560ca08ab68Smrg  *-n32|*"-n32 ") libmagic=N32;;
3561ca08ab68Smrg  *-64|*"-64 ") libmagic=64-bit;;
3562ca08ab68Smrg  *) libmagic=never-match;;
3563ca08ab68Smrg  esac
3564ca08ab68Smrg  lt_cv_deplibs_check_method=pass_all
3565ca08ab68Smrg  ;;
3566ca08ab68Smrg
3567ca08ab68Smrg# This must be glibc/ELF.
3568953daebaSmrglinux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
3569ca08ab68Smrg  lt_cv_deplibs_check_method=pass_all
3570ca08ab68Smrg  ;;
3571ca08ab68Smrg
3572ca08ab68Smrgnetbsd*)
3573ca08ab68Smrg  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
3574ca08ab68Smrg    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
3575ca08ab68Smrg  else
3576ca08ab68Smrg    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
3577ca08ab68Smrg  fi
3578ca08ab68Smrg  ;;
3579ca08ab68Smrg
3580ca08ab68Smrgnewos6*)
3581ca08ab68Smrg  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
3582eceda581Smrg  lt_cv_file_magic_cmd=$FILECMD
3583ca08ab68Smrg  lt_cv_file_magic_test_file=/usr/lib/libnls.so
3584ca08ab68Smrg  ;;
3585ca08ab68Smrg
3586ca08ab68Smrg*nto* | *qnx*)
3587ca08ab68Smrg  lt_cv_deplibs_check_method=pass_all
3588ca08ab68Smrg  ;;
3589ca08ab68Smrg
3590953daebaSmrgopenbsd* | bitrig*)
3591953daebaSmrg  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
3592ca08ab68Smrg    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
3593ca08ab68Smrg  else
3594ca08ab68Smrg    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
3595ca08ab68Smrg  fi
3596ca08ab68Smrg  ;;
3597ca08ab68Smrg
3598ca08ab68Smrgosf3* | osf4* | osf5*)
3599ca08ab68Smrg  lt_cv_deplibs_check_method=pass_all
3600ca08ab68Smrg  ;;
3601ca08ab68Smrg
3602ca08ab68Smrgrdos*)
3603ca08ab68Smrg  lt_cv_deplibs_check_method=pass_all
3604ca08ab68Smrg  ;;
3605ca08ab68Smrg
3606ca08ab68Smrgsolaris*)
3607ca08ab68Smrg  lt_cv_deplibs_check_method=pass_all
3608ca08ab68Smrg  ;;
3609ca08ab68Smrg
3610ca08ab68Smrgsysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
3611ca08ab68Smrg  lt_cv_deplibs_check_method=pass_all
3612ca08ab68Smrg  ;;
3613ca08ab68Smrg
3614ca08ab68Smrgsysv4 | sysv4.3*)
3615ca08ab68Smrg  case $host_vendor in
3616ca08ab68Smrg  motorola)
3617ca08ab68Smrg    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]]'
3618ca08ab68Smrg    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
3619ca08ab68Smrg    ;;
3620ca08ab68Smrg  ncr)
3621ca08ab68Smrg    lt_cv_deplibs_check_method=pass_all
3622ca08ab68Smrg    ;;
3623ca08ab68Smrg  sequent)
3624ca08ab68Smrg    lt_cv_file_magic_cmd='/bin/file'
3625ca08ab68Smrg    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
3626ca08ab68Smrg    ;;
3627ca08ab68Smrg  sni)
3628ca08ab68Smrg    lt_cv_file_magic_cmd='/bin/file'
3629ca08ab68Smrg    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
3630ca08ab68Smrg    lt_cv_file_magic_test_file=/lib/libc.so
3631ca08ab68Smrg    ;;
3632ca08ab68Smrg  siemens)
3633ca08ab68Smrg    lt_cv_deplibs_check_method=pass_all
3634ca08ab68Smrg    ;;
3635ca08ab68Smrg  pc)
3636ca08ab68Smrg    lt_cv_deplibs_check_method=pass_all
3637ca08ab68Smrg    ;;
3638ca08ab68Smrg  esac
3639ca08ab68Smrg  ;;
3640ca08ab68Smrg
3641ca08ab68Smrgtpf*)
3642ca08ab68Smrg  lt_cv_deplibs_check_method=pass_all
3643ca08ab68Smrg  ;;
3644953daebaSmrgos2*)
3645953daebaSmrg  lt_cv_deplibs_check_method=pass_all
3646953daebaSmrg  ;;
3647ca08ab68Smrgesac
3648ca08ab68Smrg])
3649ca08ab68Smrg
3650ca08ab68Smrgfile_magic_glob=
3651ca08ab68Smrgwant_nocaseglob=no
3652ca08ab68Smrgif test "$build" = "$host"; then
3653ca08ab68Smrg  case $host_os in
3654ca08ab68Smrg  mingw* | pw32*)
3655ca08ab68Smrg    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
3656ca08ab68Smrg      want_nocaseglob=yes
3657ca08ab68Smrg    else
3658ca08ab68Smrg      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
3659ca08ab68Smrg    fi
3660ca08ab68Smrg    ;;
3661ca08ab68Smrg  esac
3662ca08ab68Smrgfi
3663ca08ab68Smrg
3664ca08ab68Smrgfile_magic_cmd=$lt_cv_file_magic_cmd
3665ca08ab68Smrgdeplibs_check_method=$lt_cv_deplibs_check_method
3666ca08ab68Smrgtest -z "$deplibs_check_method" && deplibs_check_method=unknown
3667ca08ab68Smrg
3668ca08ab68Smrg_LT_DECL([], [deplibs_check_method], [1],
3669ca08ab68Smrg    [Method to check whether dependent libraries are shared objects])
3670ca08ab68Smrg_LT_DECL([], [file_magic_cmd], [1],
3671ca08ab68Smrg    [Command to use when deplibs_check_method = "file_magic"])
3672ca08ab68Smrg_LT_DECL([], [file_magic_glob], [1],
3673ca08ab68Smrg    [How to find potential files when deplibs_check_method = "file_magic"])
3674ca08ab68Smrg_LT_DECL([], [want_nocaseglob], [1],
3675ca08ab68Smrg    [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
3676ca08ab68Smrg])# _LT_CHECK_MAGIC_METHOD
3677ca08ab68Smrg
3678ca08ab68Smrg
3679ca08ab68Smrg# LT_PATH_NM
3680ca08ab68Smrg# ----------
3681ca08ab68Smrg# find the pathname to a BSD- or MS-compatible name lister
3682ca08ab68SmrgAC_DEFUN([LT_PATH_NM],
3683ca08ab68Smrg[AC_REQUIRE([AC_PROG_CC])dnl
3684ca08ab68SmrgAC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
3685ca08ab68Smrg[if test -n "$NM"; then
3686ca08ab68Smrg  # Let the user override the test.
3687953daebaSmrg  lt_cv_path_NM=$NM
3688ca08ab68Smrgelse
3689953daebaSmrg  lt_nm_to_check=${ac_tool_prefix}nm
3690ca08ab68Smrg  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
3691ca08ab68Smrg    lt_nm_to_check="$lt_nm_to_check nm"
3692ca08ab68Smrg  fi
3693ca08ab68Smrg  for lt_tmp_nm in $lt_nm_to_check; do
3694953daebaSmrg    lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
3695ca08ab68Smrg    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
3696953daebaSmrg      IFS=$lt_save_ifs
3697ca08ab68Smrg      test -z "$ac_dir" && ac_dir=.
3698953daebaSmrg      tmp_nm=$ac_dir/$lt_tmp_nm
3699953daebaSmrg      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
3700ca08ab68Smrg	# Check to see if the nm accepts a BSD-compat flag.
3701953daebaSmrg	# Adding the 'sed 1q' prevents false positives on HP-UX, which says:
3702ca08ab68Smrg	#   nm: unknown option "B" ignored
3703ca08ab68Smrg	# Tru64's nm complains that /dev/null is an invalid object file
3704953daebaSmrg	# MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
3705953daebaSmrg	case $build_os in
3706953daebaSmrg	mingw*) lt_bad_file=conftest.nm/nofile ;;
3707953daebaSmrg	*) lt_bad_file=/dev/null ;;
3708953daebaSmrg	esac
3709eceda581Smrg	case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in
3710953daebaSmrg	*$lt_bad_file* | *'Invalid file or object type'*)
3711ca08ab68Smrg	  lt_cv_path_NM="$tmp_nm -B"
3712953daebaSmrg	  break 2
3713ca08ab68Smrg	  ;;
3714ca08ab68Smrg	*)
3715eceda581Smrg	  case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in
3716ca08ab68Smrg	  */dev/null*)
3717ca08ab68Smrg	    lt_cv_path_NM="$tmp_nm -p"
3718953daebaSmrg	    break 2
3719ca08ab68Smrg	    ;;
3720ca08ab68Smrg	  *)
3721ca08ab68Smrg	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
3722ca08ab68Smrg	    continue # so that we can try to find one that supports BSD flags
3723ca08ab68Smrg	    ;;
3724ca08ab68Smrg	  esac
3725ca08ab68Smrg	  ;;
3726ca08ab68Smrg	esac
3727ca08ab68Smrg      fi
3728ca08ab68Smrg    done
3729953daebaSmrg    IFS=$lt_save_ifs
3730ca08ab68Smrg  done
3731ca08ab68Smrg  : ${lt_cv_path_NM=no}
3732ca08ab68Smrgfi])
3733953daebaSmrgif test no != "$lt_cv_path_NM"; then
3734953daebaSmrg  NM=$lt_cv_path_NM
3735ca08ab68Smrgelse
3736ca08ab68Smrg  # Didn't find any BSD compatible name lister, look for dumpbin.
3737ca08ab68Smrg  if test -n "$DUMPBIN"; then :
3738ca08ab68Smrg    # Let the user override the test.
3739ca08ab68Smrg  else
3740ca08ab68Smrg    AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
3741eceda581Smrg    case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in
3742ca08ab68Smrg    *COFF*)
3743953daebaSmrg      DUMPBIN="$DUMPBIN -symbols -headers"
3744ca08ab68Smrg      ;;
3745ca08ab68Smrg    *)
3746ca08ab68Smrg      DUMPBIN=:
3747ca08ab68Smrg      ;;
3748ca08ab68Smrg    esac
3749ca08ab68Smrg  fi
3750ca08ab68Smrg  AC_SUBST([DUMPBIN])
3751953daebaSmrg  if test : != "$DUMPBIN"; then
3752953daebaSmrg    NM=$DUMPBIN
3753ca08ab68Smrg  fi
3754ca08ab68Smrgfi
3755ca08ab68Smrgtest -z "$NM" && NM=nm
3756ca08ab68SmrgAC_SUBST([NM])
3757ca08ab68Smrg_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
3758ca08ab68Smrg
3759ca08ab68SmrgAC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
3760ca08ab68Smrg  [lt_cv_nm_interface="BSD nm"
3761ca08ab68Smrg  echo "int some_variable = 0;" > conftest.$ac_ext
3762ca08ab68Smrg  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
3763ca08ab68Smrg  (eval "$ac_compile" 2>conftest.err)
3764ca08ab68Smrg  cat conftest.err >&AS_MESSAGE_LOG_FD
3765ca08ab68Smrg  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
3766ca08ab68Smrg  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
3767ca08ab68Smrg  cat conftest.err >&AS_MESSAGE_LOG_FD
3768ca08ab68Smrg  (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
3769ca08ab68Smrg  cat conftest.out >&AS_MESSAGE_LOG_FD
3770ca08ab68Smrg  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
3771ca08ab68Smrg    lt_cv_nm_interface="MS dumpbin"
3772ca08ab68Smrg  fi
3773ca08ab68Smrg  rm -f conftest*])
3774ca08ab68Smrg])# LT_PATH_NM
3775ca08ab68Smrg
3776ca08ab68Smrg# Old names:
3777ca08ab68SmrgAU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
3778ca08ab68SmrgAU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
3779ca08ab68Smrgdnl aclocal-1.4 backwards compatibility:
3780ca08ab68Smrgdnl AC_DEFUN([AM_PROG_NM], [])
3781ca08ab68Smrgdnl AC_DEFUN([AC_PROG_NM], [])
3782ca08ab68Smrg
3783ca08ab68Smrg# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
3784ca08ab68Smrg# --------------------------------
3785ca08ab68Smrg# how to determine the name of the shared library
3786ca08ab68Smrg# associated with a specific link library.
3787ca08ab68Smrg#  -- PORTME fill in with the dynamic library characteristics
3788ca08ab68Smrgm4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
3789ca08ab68Smrg[m4_require([_LT_DECL_EGREP])
3790ca08ab68Smrgm4_require([_LT_DECL_OBJDUMP])
3791ca08ab68Smrgm4_require([_LT_DECL_DLLTOOL])
3792ca08ab68SmrgAC_CACHE_CHECK([how to associate runtime and link libraries],
3793ca08ab68Smrglt_cv_sharedlib_from_linklib_cmd,
3794ca08ab68Smrg[lt_cv_sharedlib_from_linklib_cmd='unknown'
3795ca08ab68Smrg
3796ca08ab68Smrgcase $host_os in
3797ca08ab68Smrgcygwin* | mingw* | pw32* | cegcc*)
3798953daebaSmrg  # two different shell functions defined in ltmain.sh;
3799953daebaSmrg  # decide which one to use based on capabilities of $DLLTOOL
3800ca08ab68Smrg  case `$DLLTOOL --help 2>&1` in
3801ca08ab68Smrg  *--identify-strict*)
3802ca08ab68Smrg    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
3803ca08ab68Smrg    ;;
3804ca08ab68Smrg  *)
3805ca08ab68Smrg    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
3806ca08ab68Smrg    ;;
3807ca08ab68Smrg  esac
3808ca08ab68Smrg  ;;
3809ca08ab68Smrg*)
3810ca08ab68Smrg  # fallback: assume linklib IS sharedlib
3811953daebaSmrg  lt_cv_sharedlib_from_linklib_cmd=$ECHO
3812ca08ab68Smrg  ;;
3813ca08ab68Smrgesac
3814ca08ab68Smrg])
3815ca08ab68Smrgsharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
3816ca08ab68Smrgtest -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
3817ca08ab68Smrg
3818ca08ab68Smrg_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
3819ca08ab68Smrg    [Command to associate shared and link libraries])
3820ca08ab68Smrg])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
3821ca08ab68Smrg
3822ca08ab68Smrg
3823ca08ab68Smrg# _LT_PATH_MANIFEST_TOOL
3824ca08ab68Smrg# ----------------------
3825ca08ab68Smrg# locate the manifest tool
3826ca08ab68Smrgm4_defun([_LT_PATH_MANIFEST_TOOL],
3827ca08ab68Smrg[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
3828ca08ab68Smrgtest -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
3829ca08ab68SmrgAC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
3830ca08ab68Smrg  [lt_cv_path_mainfest_tool=no
3831ca08ab68Smrg  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
3832ca08ab68Smrg  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
3833ca08ab68Smrg  cat conftest.err >&AS_MESSAGE_LOG_FD
3834ca08ab68Smrg  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
3835ca08ab68Smrg    lt_cv_path_mainfest_tool=yes
3836ca08ab68Smrg  fi
3837ca08ab68Smrg  rm -f conftest*])
3838953daebaSmrgif test yes != "$lt_cv_path_mainfest_tool"; then
3839ca08ab68Smrg  MANIFEST_TOOL=:
3840ca08ab68Smrgfi
3841ca08ab68Smrg_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
3842ca08ab68Smrg])# _LT_PATH_MANIFEST_TOOL
3843ca08ab68Smrg
3844ca08ab68Smrg
3845953daebaSmrg# _LT_DLL_DEF_P([FILE])
3846953daebaSmrg# ---------------------
3847953daebaSmrg# True iff FILE is a Windows DLL '.def' file.
3848953daebaSmrg# Keep in sync with func_dll_def_p in the libtool script
3849953daebaSmrgAC_DEFUN([_LT_DLL_DEF_P],
3850953daebaSmrg[dnl
3851953daebaSmrg  test DEF = "`$SED -n dnl
3852953daebaSmrg    -e '\''s/^[[	 ]]*//'\'' dnl Strip leading whitespace
3853953daebaSmrg    -e '\''/^\(;.*\)*$/d'\'' dnl      Delete empty lines and comments
3854953daebaSmrg    -e '\''s/^\(EXPORTS\|LIBRARY\)\([[	 ]].*\)*$/DEF/p'\'' dnl
3855953daebaSmrg    -e q dnl                          Only consider the first "real" line
3856953daebaSmrg    $1`" dnl
3857953daebaSmrg])# _LT_DLL_DEF_P
3858953daebaSmrg
3859953daebaSmrg
3860ca08ab68Smrg# LT_LIB_M
3861ca08ab68Smrg# --------
3862ca08ab68Smrg# check for math library
3863ca08ab68SmrgAC_DEFUN([LT_LIB_M],
3864ca08ab68Smrg[AC_REQUIRE([AC_CANONICAL_HOST])dnl
3865ca08ab68SmrgLIBM=
3866ca08ab68Smrgcase $host in
3867ca08ab68Smrg*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
3868ca08ab68Smrg  # These system don't have libm, or don't need it
3869ca08ab68Smrg  ;;
3870ca08ab68Smrg*-ncr-sysv4.3*)
3871953daebaSmrg  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw)
3872ca08ab68Smrg  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
3873ca08ab68Smrg  ;;
3874ca08ab68Smrg*)
3875953daebaSmrg  AC_CHECK_LIB(m, cos, LIBM=-lm)
3876ca08ab68Smrg  ;;
3877ca08ab68Smrgesac
3878ca08ab68SmrgAC_SUBST([LIBM])
3879ca08ab68Smrg])# LT_LIB_M
3880ca08ab68Smrg
3881ca08ab68Smrg# Old name:
3882ca08ab68SmrgAU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
3883ca08ab68Smrgdnl aclocal-1.4 backwards compatibility:
3884ca08ab68Smrgdnl AC_DEFUN([AC_CHECK_LIBM], [])
3885ca08ab68Smrg
3886ca08ab68Smrg
3887ca08ab68Smrg# _LT_COMPILER_NO_RTTI([TAGNAME])
3888ca08ab68Smrg# -------------------------------
3889ca08ab68Smrgm4_defun([_LT_COMPILER_NO_RTTI],
3890ca08ab68Smrg[m4_require([_LT_TAG_COMPILER])dnl
3891ca08ab68Smrg
3892ca08ab68Smrg_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
3893ca08ab68Smrg
3894953daebaSmrgif test yes = "$GCC"; then
3895ca08ab68Smrg  case $cc_basename in
3896ca08ab68Smrg  nvcc*)
3897ca08ab68Smrg    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
3898ca08ab68Smrg  *)
3899ca08ab68Smrg    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
3900ca08ab68Smrg  esac
3901ca08ab68Smrg
3902ca08ab68Smrg  _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
3903ca08ab68Smrg    lt_cv_prog_compiler_rtti_exceptions,
3904ca08ab68Smrg    [-fno-rtti -fno-exceptions], [],
3905ca08ab68Smrg    [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
3906ca08ab68Smrgfi
3907ca08ab68Smrg_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
3908ca08ab68Smrg	[Compiler flag to turn off builtin functions])
3909ca08ab68Smrg])# _LT_COMPILER_NO_RTTI
3910ca08ab68Smrg
3911ca08ab68Smrg
3912ca08ab68Smrg# _LT_CMD_GLOBAL_SYMBOLS
3913ca08ab68Smrg# ----------------------
3914ca08ab68Smrgm4_defun([_LT_CMD_GLOBAL_SYMBOLS],
3915ca08ab68Smrg[AC_REQUIRE([AC_CANONICAL_HOST])dnl
3916ca08ab68SmrgAC_REQUIRE([AC_PROG_CC])dnl
3917ca08ab68SmrgAC_REQUIRE([AC_PROG_AWK])dnl
3918ca08ab68SmrgAC_REQUIRE([LT_PATH_NM])dnl
3919ca08ab68SmrgAC_REQUIRE([LT_PATH_LD])dnl
3920ca08ab68Smrgm4_require([_LT_DECL_SED])dnl
3921ca08ab68Smrgm4_require([_LT_DECL_EGREP])dnl
3922ca08ab68Smrgm4_require([_LT_TAG_COMPILER])dnl
3923ca08ab68Smrg
3924ca08ab68Smrg# Check for command to grab the raw symbol name followed by C symbol from nm.
3925ca08ab68SmrgAC_MSG_CHECKING([command to parse $NM output from $compiler object])
3926ca08ab68SmrgAC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
3927ca08ab68Smrg[
3928ca08ab68Smrg# These are sane defaults that work on at least a few old systems.
3929ca08ab68Smrg# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
3930ca08ab68Smrg
3931ca08ab68Smrg# Character class describing NM global symbol codes.
3932ca08ab68Smrgsymcode='[[BCDEGRST]]'
3933ca08ab68Smrg
3934ca08ab68Smrg# Regexp to match symbols that can be accessed directly from C.
3935ca08ab68Smrgsympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
3936ca08ab68Smrg
3937ca08ab68Smrg# Define system-specific variables.
3938ca08ab68Smrgcase $host_os in
3939ca08ab68Smrgaix*)
3940ca08ab68Smrg  symcode='[[BCDT]]'
3941ca08ab68Smrg  ;;
3942ca08ab68Smrgcygwin* | mingw* | pw32* | cegcc*)
3943ca08ab68Smrg  symcode='[[ABCDGISTW]]'
3944ca08ab68Smrg  ;;
3945ca08ab68Smrghpux*)
3946953daebaSmrg  if test ia64 = "$host_cpu"; then
3947ca08ab68Smrg    symcode='[[ABCDEGRST]]'
3948ca08ab68Smrg  fi
3949ca08ab68Smrg  ;;
3950ca08ab68Smrgirix* | nonstopux*)
3951ca08ab68Smrg  symcode='[[BCDEGRST]]'
3952ca08ab68Smrg  ;;
3953ca08ab68Smrgosf*)
3954ca08ab68Smrg  symcode='[[BCDEGQRST]]'
3955ca08ab68Smrg  ;;
3956ca08ab68Smrgsolaris*)
3957ca08ab68Smrg  symcode='[[BDRT]]'
3958ca08ab68Smrg  ;;
3959ca08ab68Smrgsco3.2v5*)
3960ca08ab68Smrg  symcode='[[DT]]'
3961ca08ab68Smrg  ;;
3962ca08ab68Smrgsysv4.2uw2*)
3963ca08ab68Smrg  symcode='[[DT]]'
3964ca08ab68Smrg  ;;
3965ca08ab68Smrgsysv5* | sco5v6* | unixware* | OpenUNIX*)
3966ca08ab68Smrg  symcode='[[ABDT]]'
3967ca08ab68Smrg  ;;
3968ca08ab68Smrgsysv4)
3969ca08ab68Smrg  symcode='[[DFNSTU]]'
3970ca08ab68Smrg  ;;
3971ca08ab68Smrgesac
3972ca08ab68Smrg
3973ca08ab68Smrg# If we're using GNU nm, then use its standard symbol codes.
3974ca08ab68Smrgcase `$NM -V 2>&1` in
3975ca08ab68Smrg*GNU* | *'with BFD'*)
3976ca08ab68Smrg  symcode='[[ABCDGIRSTW]]' ;;
3977ca08ab68Smrgesac
3978ca08ab68Smrg
3979953daebaSmrgif test "$lt_cv_nm_interface" = "MS dumpbin"; then
3980953daebaSmrg  # Gets list of data symbols to import.
3981eceda581Smrg  lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'"
3982953daebaSmrg  # Adjust the below global symbol transforms to fixup imported variables.
3983953daebaSmrg  lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
3984953daebaSmrg  lt_c_name_hook=" -e 's/^I .* \(.*\)$/  {\"\1\", (void *) 0},/p'"
3985953daebaSmrg  lt_c_name_lib_hook="\
3986953daebaSmrg  -e 's/^I .* \(lib.*\)$/  {\"\1\", (void *) 0},/p'\
3987953daebaSmrg  -e 's/^I .* \(.*\)$/  {\"lib\1\", (void *) 0},/p'"
3988953daebaSmrgelse
3989953daebaSmrg  # Disable hooks by default.
3990953daebaSmrg  lt_cv_sys_global_symbol_to_import=
3991953daebaSmrg  lt_cdecl_hook=
3992953daebaSmrg  lt_c_name_hook=
3993953daebaSmrg  lt_c_name_lib_hook=
3994953daebaSmrgfi
3995953daebaSmrg
3996ca08ab68Smrg# Transform an extracted symbol line into a proper C declaration.
3997ca08ab68Smrg# Some systems (esp. on ia64) link data and code symbols differently,
3998ca08ab68Smrg# so use this general approach.
3999eceda581Smrglt_cv_sys_global_symbol_to_cdecl="$SED -n"\
4000953daebaSmrg$lt_cdecl_hook\
4001953daebaSmrg" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
4002953daebaSmrg" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
4003ca08ab68Smrg
4004ca08ab68Smrg# Transform an extracted symbol line into symbol name and symbol address
4005eceda581Smrglt_cv_sys_global_symbol_to_c_name_address="$SED -n"\
4006953daebaSmrg$lt_c_name_hook\
4007953daebaSmrg" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
4008953daebaSmrg" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/p'"
4009953daebaSmrg
4010953daebaSmrg# Transform an extracted symbol line into symbol name with lib prefix and
4011953daebaSmrg# symbol address.
4012eceda581Smrglt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\
4013953daebaSmrg$lt_c_name_lib_hook\
4014953daebaSmrg" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
4015953daebaSmrg" -e 's/^$symcode$symcode* .* \(lib.*\)$/  {\"\1\", (void *) \&\1},/p'"\
4016953daebaSmrg" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"lib\1\", (void *) \&\1},/p'"
4017ca08ab68Smrg
4018ca08ab68Smrg# Handle CRLF in mingw tool chain
4019ca08ab68Smrgopt_cr=
4020ca08ab68Smrgcase $build_os in
4021ca08ab68Smrgmingw*)
4022ca08ab68Smrg  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
4023ca08ab68Smrg  ;;
4024ca08ab68Smrgesac
4025ca08ab68Smrg
4026ca08ab68Smrg# Try without a prefix underscore, then with it.
4027ca08ab68Smrgfor ac_symprfx in "" "_"; do
4028ca08ab68Smrg
4029ca08ab68Smrg  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
4030ca08ab68Smrg  symxfrm="\\1 $ac_symprfx\\2 \\2"
4031ca08ab68Smrg
4032ca08ab68Smrg  # Write the raw and C identifiers.
4033ca08ab68Smrg  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
4034953daebaSmrg    # Fake it for dumpbin and say T for any non-static function,
4035953daebaSmrg    # D for any global variable and I for any imported variable.
4036eceda581Smrg    # Also find C++ and __fastcall symbols from MSVC++ or ICC,
4037ca08ab68Smrg    # which start with @ or ?.
4038ca08ab68Smrg    lt_cv_sys_global_symbol_pipe="$AWK ['"\
4039ca08ab68Smrg"     {last_section=section; section=\$ 3};"\
4040ca08ab68Smrg"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
4041ca08ab68Smrg"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
4042953daebaSmrg"     /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
4043953daebaSmrg"     /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
4044953daebaSmrg"     /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
4045ca08ab68Smrg"     \$ 0!~/External *\|/{next};"\
4046ca08ab68Smrg"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
4047ca08ab68Smrg"     {if(hide[section]) next};"\
4048953daebaSmrg"     {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
4049953daebaSmrg"     {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
4050953daebaSmrg"     s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
4051953daebaSmrg"     s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
4052ca08ab68Smrg"     ' prfx=^$ac_symprfx]"
4053ca08ab68Smrg  else
4054eceda581Smrg    lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
4055ca08ab68Smrg  fi
4056eceda581Smrg  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'"
4057ca08ab68Smrg
4058ca08ab68Smrg  # Check to see that the pipe works correctly.
4059ca08ab68Smrg  pipe_works=no
4060ca08ab68Smrg
4061ca08ab68Smrg  rm -f conftest*
4062ca08ab68Smrg  cat > conftest.$ac_ext <<_LT_EOF
4063ca08ab68Smrg#ifdef __cplusplus
4064ca08ab68Smrgextern "C" {
4065ca08ab68Smrg#endif
4066ca08ab68Smrgchar nm_test_var;
4067ca08ab68Smrgvoid nm_test_func(void);
4068ca08ab68Smrgvoid nm_test_func(void){}
4069ca08ab68Smrg#ifdef __cplusplus
4070ca08ab68Smrg}
4071ca08ab68Smrg#endif
4072ca08ab68Smrgint main(){nm_test_var='a';nm_test_func();return(0);}
4073ca08ab68Smrg_LT_EOF
4074ca08ab68Smrg
4075ca08ab68Smrg  if AC_TRY_EVAL(ac_compile); then
4076ca08ab68Smrg    # Now try to grab the symbols.
4077ca08ab68Smrg    nlist=conftest.nm
4078ca08ab68Smrg    if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
4079ca08ab68Smrg      # Try sorting and uniquifying the output.
4080ca08ab68Smrg      if sort "$nlist" | uniq > "$nlist"T; then
4081ca08ab68Smrg	mv -f "$nlist"T "$nlist"
4082ca08ab68Smrg      else
4083ca08ab68Smrg	rm -f "$nlist"T
4084ca08ab68Smrg      fi
4085ca08ab68Smrg
4086ca08ab68Smrg      # Make sure that we snagged all the symbols we need.
4087ca08ab68Smrg      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
4088ca08ab68Smrg	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
4089ca08ab68Smrg	  cat <<_LT_EOF > conftest.$ac_ext
4090ca08ab68Smrg/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
4091953daebaSmrg#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
4092953daebaSmrg/* DATA imports from DLLs on WIN32 can't be const, because runtime
4093ca08ab68Smrg   relocations are performed -- see ld's documentation on pseudo-relocs.  */
4094ca08ab68Smrg# define LT@&t@_DLSYM_CONST
4095953daebaSmrg#elif defined __osf__
4096ca08ab68Smrg/* This system does not cope well with relocations in const data.  */
4097ca08ab68Smrg# define LT@&t@_DLSYM_CONST
4098ca08ab68Smrg#else
4099ca08ab68Smrg# define LT@&t@_DLSYM_CONST const
4100ca08ab68Smrg#endif
4101ca08ab68Smrg
4102ca08ab68Smrg#ifdef __cplusplus
4103ca08ab68Smrgextern "C" {
4104ca08ab68Smrg#endif
4105ca08ab68Smrg
4106ca08ab68Smrg_LT_EOF
4107ca08ab68Smrg	  # Now generate the symbol file.
4108ca08ab68Smrg	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
4109ca08ab68Smrg
4110ca08ab68Smrg	  cat <<_LT_EOF >> conftest.$ac_ext
4111ca08ab68Smrg
4112ca08ab68Smrg/* The mapping between symbol names and symbols.  */
4113ca08ab68SmrgLT@&t@_DLSYM_CONST struct {
4114ca08ab68Smrg  const char *name;
4115ca08ab68Smrg  void       *address;
4116ca08ab68Smrg}
4117ca08ab68Smrglt__PROGRAM__LTX_preloaded_symbols[[]] =
4118ca08ab68Smrg{
4119ca08ab68Smrg  { "@PROGRAM@", (void *) 0 },
4120ca08ab68Smrg_LT_EOF
4121953daebaSmrg	  $SED "s/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
4122ca08ab68Smrg	  cat <<\_LT_EOF >> conftest.$ac_ext
4123ca08ab68Smrg  {0, (void *) 0}
4124ca08ab68Smrg};
4125ca08ab68Smrg
4126ca08ab68Smrg/* This works around a problem in FreeBSD linker */
4127ca08ab68Smrg#ifdef FREEBSD_WORKAROUND
4128ca08ab68Smrgstatic const void *lt_preloaded_setup() {
4129ca08ab68Smrg  return lt__PROGRAM__LTX_preloaded_symbols;
4130ca08ab68Smrg}
4131ca08ab68Smrg#endif
4132ca08ab68Smrg
4133ca08ab68Smrg#ifdef __cplusplus
4134ca08ab68Smrg}
4135ca08ab68Smrg#endif
4136ca08ab68Smrg_LT_EOF
4137ca08ab68Smrg	  # Now try linking the two files.
4138ca08ab68Smrg	  mv conftest.$ac_objext conftstm.$ac_objext
4139ca08ab68Smrg	  lt_globsym_save_LIBS=$LIBS
4140ca08ab68Smrg	  lt_globsym_save_CFLAGS=$CFLAGS
4141953daebaSmrg	  LIBS=conftstm.$ac_objext
4142ca08ab68Smrg	  CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
4143953daebaSmrg	  if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then
4144ca08ab68Smrg	    pipe_works=yes
4145ca08ab68Smrg	  fi
4146ca08ab68Smrg	  LIBS=$lt_globsym_save_LIBS
4147ca08ab68Smrg	  CFLAGS=$lt_globsym_save_CFLAGS
4148ca08ab68Smrg	else
4149ca08ab68Smrg	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
4150ca08ab68Smrg	fi
4151ca08ab68Smrg      else
4152ca08ab68Smrg	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
4153ca08ab68Smrg      fi
4154ca08ab68Smrg    else
4155ca08ab68Smrg      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
4156ca08ab68Smrg    fi
4157ca08ab68Smrg  else
4158ca08ab68Smrg    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
4159ca08ab68Smrg    cat conftest.$ac_ext >&5
4160ca08ab68Smrg  fi
4161ca08ab68Smrg  rm -rf conftest* conftst*
4162ca08ab68Smrg
4163ca08ab68Smrg  # Do not use the global_symbol_pipe unless it works.
4164953daebaSmrg  if test yes = "$pipe_works"; then
4165ca08ab68Smrg    break
4166ca08ab68Smrg  else
4167ca08ab68Smrg    lt_cv_sys_global_symbol_pipe=
4168ca08ab68Smrg  fi
4169ca08ab68Smrgdone
4170ca08ab68Smrg])
4171ca08ab68Smrgif test -z "$lt_cv_sys_global_symbol_pipe"; then
4172ca08ab68Smrg  lt_cv_sys_global_symbol_to_cdecl=
4173ca08ab68Smrgfi
4174ca08ab68Smrgif test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
4175ca08ab68Smrg  AC_MSG_RESULT(failed)
4176ca08ab68Smrgelse
4177ca08ab68Smrg  AC_MSG_RESULT(ok)
4178ca08ab68Smrgfi
4179ca08ab68Smrg
4180ca08ab68Smrg# Response file support.
4181ca08ab68Smrgif test "$lt_cv_nm_interface" = "MS dumpbin"; then
4182ca08ab68Smrg  nm_file_list_spec='@'
4183ca08ab68Smrgelif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
4184ca08ab68Smrg  nm_file_list_spec='@'
4185ca08ab68Smrgfi
4186ca08ab68Smrg
4187ca08ab68Smrg_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
4188ca08ab68Smrg    [Take the output of nm and produce a listing of raw symbols and C names])
4189ca08ab68Smrg_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
4190ca08ab68Smrg    [Transform the output of nm in a proper C declaration])
4191953daebaSmrg_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1],
4192953daebaSmrg    [Transform the output of nm into a list of symbols to manually relocate])
4193ca08ab68Smrg_LT_DECL([global_symbol_to_c_name_address],
4194ca08ab68Smrg    [lt_cv_sys_global_symbol_to_c_name_address], [1],
4195ca08ab68Smrg    [Transform the output of nm in a C name address pair])
4196ca08ab68Smrg_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
4197ca08ab68Smrg    [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
4198ca08ab68Smrg    [Transform the output of nm in a C name address pair when lib prefix is needed])
4199953daebaSmrg_LT_DECL([nm_interface], [lt_cv_nm_interface], [1],
4200953daebaSmrg    [The name lister interface])
4201ca08ab68Smrg_LT_DECL([], [nm_file_list_spec], [1],
4202ca08ab68Smrg    [Specify filename containing input files for $NM])
4203ca08ab68Smrg]) # _LT_CMD_GLOBAL_SYMBOLS
4204ca08ab68Smrg
4205ca08ab68Smrg
4206ca08ab68Smrg# _LT_COMPILER_PIC([TAGNAME])
4207ca08ab68Smrg# ---------------------------
4208ca08ab68Smrgm4_defun([_LT_COMPILER_PIC],
4209ca08ab68Smrg[m4_require([_LT_TAG_COMPILER])dnl
4210ca08ab68Smrg_LT_TAGVAR(lt_prog_compiler_wl, $1)=
4211ca08ab68Smrg_LT_TAGVAR(lt_prog_compiler_pic, $1)=
4212ca08ab68Smrg_LT_TAGVAR(lt_prog_compiler_static, $1)=
4213ca08ab68Smrg
4214ca08ab68Smrgm4_if([$1], [CXX], [
4215ca08ab68Smrg  # C++ specific cases for pic, static, wl, etc.
4216953daebaSmrg  if test yes = "$GXX"; then
4217ca08ab68Smrg    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4218ca08ab68Smrg    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4219ca08ab68Smrg
4220ca08ab68Smrg    case $host_os in
4221ca08ab68Smrg    aix*)
4222ca08ab68Smrg      # All AIX code is PIC.
4223953daebaSmrg      if test ia64 = "$host_cpu"; then
4224ca08ab68Smrg	# AIX 5 now supports IA64 processor
4225ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4226ca08ab68Smrg      fi
4227953daebaSmrg      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4228ca08ab68Smrg      ;;
4229ca08ab68Smrg
4230ca08ab68Smrg    amigaos*)
4231ca08ab68Smrg      case $host_cpu in
4232ca08ab68Smrg      powerpc)
4233ca08ab68Smrg            # see comment about AmigaOS4 .so support
4234ca08ab68Smrg            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4235ca08ab68Smrg        ;;
4236ca08ab68Smrg      m68k)
4237ca08ab68Smrg            # FIXME: we need at least 68020 code to build shared libraries, but
4238953daebaSmrg            # adding the '-m68020' flag to GCC prevents building anything better,
4239953daebaSmrg            # like '-m68040'.
4240ca08ab68Smrg            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
4241ca08ab68Smrg        ;;
4242ca08ab68Smrg      esac
4243ca08ab68Smrg      ;;
4244ca08ab68Smrg
4245ca08ab68Smrg    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
4246ca08ab68Smrg      # PIC is the default for these OSes.
4247ca08ab68Smrg      ;;
4248ca08ab68Smrg    mingw* | cygwin* | os2* | pw32* | cegcc*)
4249ca08ab68Smrg      # This hack is so that the source file can tell whether it is being
4250ca08ab68Smrg      # built for inclusion in a dll (and should export symbols for example).
4251ca08ab68Smrg      # Although the cygwin gcc ignores -fPIC, still need this for old-style
4252ca08ab68Smrg      # (--disable-auto-import) libraries
4253ca08ab68Smrg      m4_if([$1], [GCJ], [],
4254ca08ab68Smrg	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
4255953daebaSmrg      case $host_os in
4256953daebaSmrg      os2*)
4257953daebaSmrg	_LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
4258953daebaSmrg	;;
4259953daebaSmrg      esac
4260ca08ab68Smrg      ;;
4261ca08ab68Smrg    darwin* | rhapsody*)
4262ca08ab68Smrg      # PIC is the default on this platform
4263ca08ab68Smrg      # Common symbols not allowed in MH_DYLIB files
4264ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
4265ca08ab68Smrg      ;;
4266ca08ab68Smrg    *djgpp*)
4267ca08ab68Smrg      # DJGPP does not support shared libraries at all
4268ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_pic, $1)=
4269ca08ab68Smrg      ;;
4270ca08ab68Smrg    haiku*)
4271ca08ab68Smrg      # PIC is the default for Haiku.
4272ca08ab68Smrg      # The "-static" flag exists, but is broken.
4273ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_static, $1)=
4274ca08ab68Smrg      ;;
4275ca08ab68Smrg    interix[[3-9]]*)
4276ca08ab68Smrg      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
4277ca08ab68Smrg      # Instead, we relocate shared libraries at runtime.
4278ca08ab68Smrg      ;;
4279ca08ab68Smrg    sysv4*MP*)
4280ca08ab68Smrg      if test -d /usr/nec; then
4281ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
4282ca08ab68Smrg      fi
4283ca08ab68Smrg      ;;
4284ca08ab68Smrg    hpux*)
4285ca08ab68Smrg      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
4286ca08ab68Smrg      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
4287ca08ab68Smrg      # sets the default TLS model and affects inlining.
4288ca08ab68Smrg      case $host_cpu in
4289ca08ab68Smrg      hppa*64*)
4290ca08ab68Smrg	;;
4291ca08ab68Smrg      *)
4292ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4293ca08ab68Smrg	;;
4294ca08ab68Smrg      esac
4295ca08ab68Smrg      ;;
4296ca08ab68Smrg    *qnx* | *nto*)
4297ca08ab68Smrg      # QNX uses GNU C++, but need to define -shared option too, otherwise
4298ca08ab68Smrg      # it will coredump.
4299ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
4300ca08ab68Smrg      ;;
4301ca08ab68Smrg    *)
4302ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4303ca08ab68Smrg      ;;
4304ca08ab68Smrg    esac
4305ca08ab68Smrg  else
4306ca08ab68Smrg    case $host_os in
4307ca08ab68Smrg      aix[[4-9]]*)
4308ca08ab68Smrg	# All AIX code is PIC.
4309953daebaSmrg	if test ia64 = "$host_cpu"; then
4310ca08ab68Smrg	  # AIX 5 now supports IA64 processor
4311ca08ab68Smrg	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4312ca08ab68Smrg	else
4313ca08ab68Smrg	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
4314ca08ab68Smrg	fi
4315ca08ab68Smrg	;;
4316ca08ab68Smrg      chorus*)
4317ca08ab68Smrg	case $cc_basename in
4318ca08ab68Smrg	cxch68*)
4319ca08ab68Smrg	  # Green Hills C++ Compiler
4320ca08ab68Smrg	  # _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"
4321ca08ab68Smrg	  ;;
4322ca08ab68Smrg	esac
4323ca08ab68Smrg	;;
4324ca08ab68Smrg      mingw* | cygwin* | os2* | pw32* | cegcc*)
4325ca08ab68Smrg	# This hack is so that the source file can tell whether it is being
4326ca08ab68Smrg	# built for inclusion in a dll (and should export symbols for example).
4327ca08ab68Smrg	m4_if([$1], [GCJ], [],
4328ca08ab68Smrg	  [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
4329ca08ab68Smrg	;;
4330ca08ab68Smrg      dgux*)
4331ca08ab68Smrg	case $cc_basename in
4332ca08ab68Smrg	  ec++*)
4333ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4334ca08ab68Smrg	    ;;
4335ca08ab68Smrg	  ghcx*)
4336ca08ab68Smrg	    # Green Hills C++ Compiler
4337ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
4338ca08ab68Smrg	    ;;
4339ca08ab68Smrg	  *)
4340ca08ab68Smrg	    ;;
4341ca08ab68Smrg	esac
4342ca08ab68Smrg	;;
4343eceda581Smrg      freebsd* | dragonfly* | midnightbsd*)
4344ca08ab68Smrg	# FreeBSD uses GNU C++
4345ca08ab68Smrg	;;
4346ca08ab68Smrg      hpux9* | hpux10* | hpux11*)
4347ca08ab68Smrg	case $cc_basename in
4348ca08ab68Smrg	  CC*)
4349ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4350953daebaSmrg	    _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
4351953daebaSmrg	    if test ia64 != "$host_cpu"; then
4352ca08ab68Smrg	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
4353ca08ab68Smrg	    fi
4354ca08ab68Smrg	    ;;
4355ca08ab68Smrg	  aCC*)
4356ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4357953daebaSmrg	    _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
4358ca08ab68Smrg	    case $host_cpu in
4359ca08ab68Smrg	    hppa*64*|ia64*)
4360ca08ab68Smrg	      # +Z the default
4361ca08ab68Smrg	      ;;
4362ca08ab68Smrg	    *)
4363ca08ab68Smrg	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
4364ca08ab68Smrg	      ;;
4365ca08ab68Smrg	    esac
4366ca08ab68Smrg	    ;;
4367ca08ab68Smrg	  *)
4368ca08ab68Smrg	    ;;
4369ca08ab68Smrg	esac
4370ca08ab68Smrg	;;
4371ca08ab68Smrg      interix*)
4372ca08ab68Smrg	# This is c89, which is MS Visual C++ (no shared libs)
4373ca08ab68Smrg	# Anyone wants to do a port?
4374ca08ab68Smrg	;;
4375ca08ab68Smrg      irix5* | irix6* | nonstopux*)
4376ca08ab68Smrg	case $cc_basename in
4377ca08ab68Smrg	  CC*)
4378ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4379ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
4380ca08ab68Smrg	    # CC pic flag -KPIC is the default.
4381ca08ab68Smrg	    ;;
4382ca08ab68Smrg	  *)
4383ca08ab68Smrg	    ;;
4384ca08ab68Smrg	esac
4385ca08ab68Smrg	;;
4386953daebaSmrg      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
4387ca08ab68Smrg	case $cc_basename in
4388ca08ab68Smrg	  KCC*)
4389ca08ab68Smrg	    # KAI C++ Compiler
4390ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
4391ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4392ca08ab68Smrg	    ;;
4393ca08ab68Smrg	  ecpc* )
4394953daebaSmrg	    # old Intel C++ for x86_64, which still supported -KPIC.
4395ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4396ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4397ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4398ca08ab68Smrg	    ;;
4399ca08ab68Smrg	  icpc* )
4400ca08ab68Smrg	    # Intel C++, used to be incompatible with GCC.
4401ca08ab68Smrg	    # ICC 10 doesn't accept -KPIC any more.
4402ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4403ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4404ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4405ca08ab68Smrg	    ;;
4406ca08ab68Smrg	  pgCC* | pgcpp*)
4407ca08ab68Smrg	    # Portland Group C++ compiler
4408ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4409ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
4410ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4411ca08ab68Smrg	    ;;
4412ca08ab68Smrg	  cxx*)
4413ca08ab68Smrg	    # Compaq C++
4414ca08ab68Smrg	    # Make sure the PIC flag is empty.  It appears that all Alpha
4415ca08ab68Smrg	    # Linux and Compaq Tru64 Unix objects are PIC.
4416ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
4417ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
4418ca08ab68Smrg	    ;;
4419ca08ab68Smrg	  xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
4420ca08ab68Smrg	    # IBM XL 8.0, 9.0 on PPC and BlueGene
4421ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4422ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
4423ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
4424ca08ab68Smrg	    ;;
4425ca08ab68Smrg	  *)
4426eceda581Smrg	    case `$CC -V 2>&1 | $SED 5q` in
4427ca08ab68Smrg	    *Sun\ C*)
4428ca08ab68Smrg	      # Sun C++ 5.9
4429ca08ab68Smrg	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4430ca08ab68Smrg	      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4431ca08ab68Smrg	      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
4432ca08ab68Smrg	      ;;
4433ca08ab68Smrg	    esac
4434ca08ab68Smrg	    ;;
4435ca08ab68Smrg	esac
4436ca08ab68Smrg	;;
4437ca08ab68Smrg      lynxos*)
4438ca08ab68Smrg	;;
4439ca08ab68Smrg      m88k*)
4440ca08ab68Smrg	;;
4441ca08ab68Smrg      mvs*)
4442ca08ab68Smrg	case $cc_basename in
4443ca08ab68Smrg	  cxx*)
4444ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
4445ca08ab68Smrg	    ;;
4446ca08ab68Smrg	  *)
4447ca08ab68Smrg	    ;;
4448ca08ab68Smrg	esac
4449ca08ab68Smrg	;;
4450ca08ab68Smrg      netbsd*)
4451ca08ab68Smrg	;;
4452ca08ab68Smrg      *qnx* | *nto*)
4453ca08ab68Smrg        # QNX uses GNU C++, but need to define -shared option too, otherwise
4454ca08ab68Smrg        # it will coredump.
4455ca08ab68Smrg        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
4456ca08ab68Smrg        ;;
4457ca08ab68Smrg      osf3* | osf4* | osf5*)
4458ca08ab68Smrg	case $cc_basename in
4459ca08ab68Smrg	  KCC*)
4460ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
4461ca08ab68Smrg	    ;;
4462ca08ab68Smrg	  RCC*)
4463ca08ab68Smrg	    # Rational C++ 2.4.1
4464ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
4465ca08ab68Smrg	    ;;
4466ca08ab68Smrg	  cxx*)
4467ca08ab68Smrg	    # Digital/Compaq C++
4468ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4469ca08ab68Smrg	    # Make sure the PIC flag is empty.  It appears that all Alpha
4470ca08ab68Smrg	    # Linux and Compaq Tru64 Unix objects are PIC.
4471ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
4472ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
4473ca08ab68Smrg	    ;;
4474ca08ab68Smrg	  *)
4475ca08ab68Smrg	    ;;
4476ca08ab68Smrg	esac
4477ca08ab68Smrg	;;
4478ca08ab68Smrg      psos*)
4479ca08ab68Smrg	;;
4480ca08ab68Smrg      solaris*)
4481ca08ab68Smrg	case $cc_basename in
4482ca08ab68Smrg	  CC* | sunCC*)
4483ca08ab68Smrg	    # Sun C++ 4.2, 5.x and Centerline C++
4484ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4485ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4486ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
4487ca08ab68Smrg	    ;;
4488ca08ab68Smrg	  gcx*)
4489ca08ab68Smrg	    # Green Hills C++ Compiler
4490ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
4491ca08ab68Smrg	    ;;
4492ca08ab68Smrg	  *)
4493ca08ab68Smrg	    ;;
4494ca08ab68Smrg	esac
4495ca08ab68Smrg	;;
4496ca08ab68Smrg      sunos4*)
4497ca08ab68Smrg	case $cc_basename in
4498ca08ab68Smrg	  CC*)
4499ca08ab68Smrg	    # Sun C++ 4.x
4500ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
4501ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4502ca08ab68Smrg	    ;;
4503ca08ab68Smrg	  lcc*)
4504ca08ab68Smrg	    # Lucid
4505ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
4506ca08ab68Smrg	    ;;
4507ca08ab68Smrg	  *)
4508ca08ab68Smrg	    ;;
4509ca08ab68Smrg	esac
4510ca08ab68Smrg	;;
4511ca08ab68Smrg      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
4512ca08ab68Smrg	case $cc_basename in
4513ca08ab68Smrg	  CC*)
4514ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4515ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4516ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4517ca08ab68Smrg	    ;;
4518ca08ab68Smrg	esac
4519ca08ab68Smrg	;;
4520ca08ab68Smrg      tandem*)
4521ca08ab68Smrg	case $cc_basename in
4522ca08ab68Smrg	  NCC*)
4523ca08ab68Smrg	    # NonStop-UX NCC 3.20
4524ca08ab68Smrg	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4525ca08ab68Smrg	    ;;
4526ca08ab68Smrg	  *)
4527ca08ab68Smrg	    ;;
4528ca08ab68Smrg	esac
4529ca08ab68Smrg	;;
4530ca08ab68Smrg      vxworks*)
4531ca08ab68Smrg	;;
4532ca08ab68Smrg      *)
4533ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
4534ca08ab68Smrg	;;
4535ca08ab68Smrg    esac
4536ca08ab68Smrg  fi
4537ca08ab68Smrg],
4538ca08ab68Smrg[
4539953daebaSmrg  if test yes = "$GCC"; then
4540ca08ab68Smrg    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4541ca08ab68Smrg    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4542ca08ab68Smrg
4543ca08ab68Smrg    case $host_os in
4544ca08ab68Smrg      aix*)
4545ca08ab68Smrg      # All AIX code is PIC.
4546953daebaSmrg      if test ia64 = "$host_cpu"; then
4547ca08ab68Smrg	# AIX 5 now supports IA64 processor
4548ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4549ca08ab68Smrg      fi
4550953daebaSmrg      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4551ca08ab68Smrg      ;;
4552ca08ab68Smrg
4553ca08ab68Smrg    amigaos*)
4554ca08ab68Smrg      case $host_cpu in
4555ca08ab68Smrg      powerpc)
4556ca08ab68Smrg            # see comment about AmigaOS4 .so support
4557ca08ab68Smrg            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4558ca08ab68Smrg        ;;
4559ca08ab68Smrg      m68k)
4560ca08ab68Smrg            # FIXME: we need at least 68020 code to build shared libraries, but
4561953daebaSmrg            # adding the '-m68020' flag to GCC prevents building anything better,
4562953daebaSmrg            # like '-m68040'.
4563ca08ab68Smrg            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
4564ca08ab68Smrg        ;;
4565ca08ab68Smrg      esac
4566ca08ab68Smrg      ;;
4567ca08ab68Smrg
4568ca08ab68Smrg    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
4569ca08ab68Smrg      # PIC is the default for these OSes.
4570ca08ab68Smrg      ;;
4571ca08ab68Smrg
4572ca08ab68Smrg    mingw* | cygwin* | pw32* | os2* | cegcc*)
4573ca08ab68Smrg      # This hack is so that the source file can tell whether it is being
4574ca08ab68Smrg      # built for inclusion in a dll (and should export symbols for example).
4575ca08ab68Smrg      # Although the cygwin gcc ignores -fPIC, still need this for old-style
4576ca08ab68Smrg      # (--disable-auto-import) libraries
4577ca08ab68Smrg      m4_if([$1], [GCJ], [],
4578ca08ab68Smrg	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
4579953daebaSmrg      case $host_os in
4580953daebaSmrg      os2*)
4581953daebaSmrg	_LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
4582953daebaSmrg	;;
4583953daebaSmrg      esac
4584ca08ab68Smrg      ;;
4585ca08ab68Smrg
4586ca08ab68Smrg    darwin* | rhapsody*)
4587ca08ab68Smrg      # PIC is the default on this platform
4588ca08ab68Smrg      # Common symbols not allowed in MH_DYLIB files
4589ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
4590ca08ab68Smrg      ;;
4591ca08ab68Smrg
4592ca08ab68Smrg    haiku*)
4593ca08ab68Smrg      # PIC is the default for Haiku.
4594ca08ab68Smrg      # The "-static" flag exists, but is broken.
4595ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_static, $1)=
4596ca08ab68Smrg      ;;
4597ca08ab68Smrg
4598ca08ab68Smrg    hpux*)
4599ca08ab68Smrg      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
4600ca08ab68Smrg      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
4601ca08ab68Smrg      # sets the default TLS model and affects inlining.
4602ca08ab68Smrg      case $host_cpu in
4603ca08ab68Smrg      hppa*64*)
4604ca08ab68Smrg	# +Z the default
4605ca08ab68Smrg	;;
4606ca08ab68Smrg      *)
4607ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4608ca08ab68Smrg	;;
4609ca08ab68Smrg      esac
4610ca08ab68Smrg      ;;
4611ca08ab68Smrg
4612ca08ab68Smrg    interix[[3-9]]*)
4613ca08ab68Smrg      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
4614ca08ab68Smrg      # Instead, we relocate shared libraries at runtime.
4615ca08ab68Smrg      ;;
4616ca08ab68Smrg
4617ca08ab68Smrg    msdosdjgpp*)
4618ca08ab68Smrg      # Just because we use GCC doesn't mean we suddenly get shared libraries
4619ca08ab68Smrg      # on systems that don't support them.
4620ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
4621ca08ab68Smrg      enable_shared=no
4622ca08ab68Smrg      ;;
4623ca08ab68Smrg
4624ca08ab68Smrg    *nto* | *qnx*)
4625ca08ab68Smrg      # QNX uses GNU C++, but need to define -shared option too, otherwise
4626ca08ab68Smrg      # it will coredump.
4627ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
4628ca08ab68Smrg      ;;
4629ca08ab68Smrg
4630ca08ab68Smrg    sysv4*MP*)
4631ca08ab68Smrg      if test -d /usr/nec; then
4632ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
4633ca08ab68Smrg      fi
4634ca08ab68Smrg      ;;
4635ca08ab68Smrg
4636ca08ab68Smrg    *)
4637ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4638ca08ab68Smrg      ;;
4639ca08ab68Smrg    esac
4640ca08ab68Smrg
4641ca08ab68Smrg    case $cc_basename in
4642ca08ab68Smrg    nvcc*) # Cuda Compiler Driver 2.2
4643ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
4644ca08ab68Smrg      if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
4645ca08ab68Smrg        _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
4646ca08ab68Smrg      fi
4647ca08ab68Smrg      ;;
4648ca08ab68Smrg    esac
4649ca08ab68Smrg  else
4650ca08ab68Smrg    # PORTME Check for flag to pass linker flags through the system compiler.
4651ca08ab68Smrg    case $host_os in
4652ca08ab68Smrg    aix*)
4653ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4654953daebaSmrg      if test ia64 = "$host_cpu"; then
4655ca08ab68Smrg	# AIX 5 now supports IA64 processor
4656ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4657ca08ab68Smrg      else
4658ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
4659ca08ab68Smrg      fi
4660ca08ab68Smrg      ;;
4661ca08ab68Smrg
4662953daebaSmrg    darwin* | rhapsody*)
4663953daebaSmrg      # PIC is the default on this platform
4664953daebaSmrg      # Common symbols not allowed in MH_DYLIB files
4665953daebaSmrg      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
4666953daebaSmrg      case $cc_basename in
4667953daebaSmrg      nagfor*)
4668953daebaSmrg        # NAG Fortran compiler
4669953daebaSmrg        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
4670953daebaSmrg        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
4671953daebaSmrg        _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4672953daebaSmrg        ;;
4673953daebaSmrg      esac
4674953daebaSmrg      ;;
4675953daebaSmrg
4676ca08ab68Smrg    mingw* | cygwin* | pw32* | os2* | cegcc*)
4677ca08ab68Smrg      # This hack is so that the source file can tell whether it is being
4678ca08ab68Smrg      # built for inclusion in a dll (and should export symbols for example).
4679ca08ab68Smrg      m4_if([$1], [GCJ], [],
4680ca08ab68Smrg	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
4681953daebaSmrg      case $host_os in
4682953daebaSmrg      os2*)
4683953daebaSmrg	_LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
4684953daebaSmrg	;;
4685953daebaSmrg      esac
4686ca08ab68Smrg      ;;
4687ca08ab68Smrg
4688ca08ab68Smrg    hpux9* | hpux10* | hpux11*)
4689ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4690ca08ab68Smrg      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
4691ca08ab68Smrg      # not for PA HP-UX.
4692ca08ab68Smrg      case $host_cpu in
4693ca08ab68Smrg      hppa*64*|ia64*)
4694ca08ab68Smrg	# +Z the default
4695ca08ab68Smrg	;;
4696ca08ab68Smrg      *)
4697ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
4698ca08ab68Smrg	;;
4699ca08ab68Smrg      esac
4700ca08ab68Smrg      # Is there a better lt_prog_compiler_static that works with the bundled CC?
4701953daebaSmrg      _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
4702ca08ab68Smrg      ;;
4703ca08ab68Smrg
4704ca08ab68Smrg    irix5* | irix6* | nonstopux*)
4705ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4706ca08ab68Smrg      # PIC (with -KPIC) is the default.
4707ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
4708ca08ab68Smrg      ;;
4709ca08ab68Smrg
4710953daebaSmrg    linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
4711ca08ab68Smrg      case $cc_basename in
4712953daebaSmrg      # old Intel for x86_64, which still supported -KPIC.
4713ca08ab68Smrg      ecc*)
4714ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4715ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4716ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4717ca08ab68Smrg        ;;
4718ca08ab68Smrg      # icc used to be incompatible with GCC.
4719ca08ab68Smrg      # ICC 10 doesn't accept -KPIC any more.
4720ca08ab68Smrg      icc* | ifort*)
4721ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4722ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4723ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4724ca08ab68Smrg        ;;
4725ca08ab68Smrg      # Lahey Fortran 8.1.
4726ca08ab68Smrg      lf95*)
4727ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4728ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
4729ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
4730ca08ab68Smrg	;;
4731ca08ab68Smrg      nagfor*)
4732ca08ab68Smrg	# NAG Fortran compiler
4733ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
4734ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
4735ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4736ca08ab68Smrg	;;
4737953daebaSmrg      tcc*)
4738953daebaSmrg	# Fabrice Bellard et al's Tiny C Compiler
4739953daebaSmrg	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4740953daebaSmrg	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4741953daebaSmrg	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4742953daebaSmrg	;;
4743ca08ab68Smrg      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
4744ca08ab68Smrg        # Portland Group compilers (*not* the Pentium gcc compiler,
4745ca08ab68Smrg	# which looks to be a dead project)
4746ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4747ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
4748ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4749ca08ab68Smrg        ;;
4750ca08ab68Smrg      ccc*)
4751ca08ab68Smrg        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4752ca08ab68Smrg        # All Alpha code is PIC.
4753ca08ab68Smrg        _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
4754ca08ab68Smrg        ;;
4755ca08ab68Smrg      xl* | bgxl* | bgf* | mpixl*)
4756ca08ab68Smrg	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
4757ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4758ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
4759ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
4760ca08ab68Smrg	;;
4761ca08ab68Smrg      *)
4762eceda581Smrg	case `$CC -V 2>&1 | $SED 5q` in
4763ca08ab68Smrg	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
4764ca08ab68Smrg	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
4765ca08ab68Smrg	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4766ca08ab68Smrg	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4767ca08ab68Smrg	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
4768ca08ab68Smrg	  ;;
4769ca08ab68Smrg	*Sun\ F* | *Sun*Fortran*)
4770ca08ab68Smrg	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4771ca08ab68Smrg	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4772ca08ab68Smrg	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
4773ca08ab68Smrg	  ;;
4774ca08ab68Smrg	*Sun\ C*)
4775ca08ab68Smrg	  # Sun C 5.9
4776ca08ab68Smrg	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4777ca08ab68Smrg	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4778ca08ab68Smrg	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4779ca08ab68Smrg	  ;;
4780ca08ab68Smrg        *Intel*\ [[CF]]*Compiler*)
4781ca08ab68Smrg	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4782ca08ab68Smrg	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4783ca08ab68Smrg	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4784ca08ab68Smrg	  ;;
4785ca08ab68Smrg	*Portland\ Group*)
4786ca08ab68Smrg	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4787ca08ab68Smrg	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
4788ca08ab68Smrg	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4789ca08ab68Smrg	  ;;
4790ca08ab68Smrg	esac
4791ca08ab68Smrg	;;
4792ca08ab68Smrg      esac
4793ca08ab68Smrg      ;;
4794ca08ab68Smrg
4795ca08ab68Smrg    newsos6)
4796ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4797ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4798ca08ab68Smrg      ;;
4799ca08ab68Smrg
4800ca08ab68Smrg    *nto* | *qnx*)
4801ca08ab68Smrg      # QNX uses GNU C++, but need to define -shared option too, otherwise
4802ca08ab68Smrg      # it will coredump.
4803ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
4804ca08ab68Smrg      ;;
4805ca08ab68Smrg
4806ca08ab68Smrg    osf3* | osf4* | osf5*)
4807ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4808ca08ab68Smrg      # All OSF/1 code is PIC.
4809ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
4810ca08ab68Smrg      ;;
4811ca08ab68Smrg
4812ca08ab68Smrg    rdos*)
4813ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
4814ca08ab68Smrg      ;;
4815ca08ab68Smrg
4816ca08ab68Smrg    solaris*)
4817ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4818ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4819ca08ab68Smrg      case $cc_basename in
4820ca08ab68Smrg      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
4821ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
4822ca08ab68Smrg      *)
4823ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
4824ca08ab68Smrg      esac
4825ca08ab68Smrg      ;;
4826ca08ab68Smrg
4827ca08ab68Smrg    sunos4*)
4828ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
4829ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
4830ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4831ca08ab68Smrg      ;;
4832ca08ab68Smrg
4833ca08ab68Smrg    sysv4 | sysv4.2uw2* | sysv4.3*)
4834ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4835ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4836ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4837ca08ab68Smrg      ;;
4838ca08ab68Smrg
4839ca08ab68Smrg    sysv4*MP*)
4840953daebaSmrg      if test -d /usr/nec; then
4841ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
4842ca08ab68Smrg	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4843ca08ab68Smrg      fi
4844ca08ab68Smrg      ;;
4845ca08ab68Smrg
4846ca08ab68Smrg    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
4847ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4848ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4849ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4850ca08ab68Smrg      ;;
4851ca08ab68Smrg
4852ca08ab68Smrg    unicos*)
4853ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4854ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
4855ca08ab68Smrg      ;;
4856ca08ab68Smrg
4857ca08ab68Smrg    uts4*)
4858ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
4859ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4860ca08ab68Smrg      ;;
4861ca08ab68Smrg
4862ca08ab68Smrg    *)
4863ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
4864ca08ab68Smrg      ;;
4865ca08ab68Smrg    esac
4866ca08ab68Smrg  fi
4867ca08ab68Smrg])
4868ca08ab68Smrgcase $host_os in
4869953daebaSmrg  # For platforms that do not support PIC, -DPIC is meaningless:
4870ca08ab68Smrg  *djgpp*)
4871ca08ab68Smrg    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
4872ca08ab68Smrg    ;;
4873ca08ab68Smrg  *)
4874ca08ab68Smrg    _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
4875ca08ab68Smrg    ;;
4876ca08ab68Smrgesac
4877ca08ab68Smrg
4878ca08ab68SmrgAC_CACHE_CHECK([for $compiler option to produce PIC],
4879ca08ab68Smrg  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
4880ca08ab68Smrg  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
4881ca08ab68Smrg_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
4882ca08ab68Smrg
4883ca08ab68Smrg#
4884ca08ab68Smrg# Check to make sure the PIC flag actually works.
4885ca08ab68Smrg#
4886ca08ab68Smrgif test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
4887ca08ab68Smrg  _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
4888ca08ab68Smrg    [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
4889ca08ab68Smrg    [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
4890ca08ab68Smrg    [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
4891ca08ab68Smrg     "" | " "*) ;;
4892ca08ab68Smrg     *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
4893ca08ab68Smrg     esac],
4894ca08ab68Smrg    [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
4895ca08ab68Smrg     _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
4896ca08ab68Smrgfi
4897ca08ab68Smrg_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
4898ca08ab68Smrg	[Additional compiler flags for building library objects])
4899ca08ab68Smrg
4900ca08ab68Smrg_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
4901ca08ab68Smrg	[How to pass a linker flag through the compiler])
4902ca08ab68Smrg#
4903ca08ab68Smrg# Check to make sure the static flag actually works.
4904ca08ab68Smrg#
4905ca08ab68Smrgwl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
4906ca08ab68Smrg_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
4907ca08ab68Smrg  _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
4908ca08ab68Smrg  $lt_tmp_static_flag,
4909ca08ab68Smrg  [],
4910ca08ab68Smrg  [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
4911ca08ab68Smrg_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
4912ca08ab68Smrg	[Compiler flag to prevent dynamic linking])
4913ca08ab68Smrg])# _LT_COMPILER_PIC
4914ca08ab68Smrg
4915ca08ab68Smrg
4916ca08ab68Smrg# _LT_LINKER_SHLIBS([TAGNAME])
4917ca08ab68Smrg# ----------------------------
4918ca08ab68Smrg# See if the linker supports building shared libraries.
4919ca08ab68Smrgm4_defun([_LT_LINKER_SHLIBS],
4920ca08ab68Smrg[AC_REQUIRE([LT_PATH_LD])dnl
4921ca08ab68SmrgAC_REQUIRE([LT_PATH_NM])dnl
4922ca08ab68Smrgm4_require([_LT_PATH_MANIFEST_TOOL])dnl
4923ca08ab68Smrgm4_require([_LT_FILEUTILS_DEFAULTS])dnl
4924ca08ab68Smrgm4_require([_LT_DECL_EGREP])dnl
4925ca08ab68Smrgm4_require([_LT_DECL_SED])dnl
4926ca08ab68Smrgm4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
4927ca08ab68Smrgm4_require([_LT_TAG_COMPILER])dnl
4928ca08ab68SmrgAC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
4929ca08ab68Smrgm4_if([$1], [CXX], [
4930ca08ab68Smrg  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
4931ca08ab68Smrg  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
4932ca08ab68Smrg  case $host_os in
4933ca08ab68Smrg  aix[[4-9]]*)
4934ca08ab68Smrg    # If we're using GNU nm, then we don't want the "-C" option.
4935953daebaSmrg    # -C means demangle to GNU nm, but means don't demangle to AIX nm.
4936953daebaSmrg    # Without the "-l" option, or with the "-B" option, AIX nm treats
4937953daebaSmrg    # weak defined symbols like other global defined symbols, whereas
4938953daebaSmrg    # GNU nm marks them as "W".
4939953daebaSmrg    # While the 'weak' keyword is ignored in the Export File, we need
4940953daebaSmrg    # it in the Import File for the 'aix-soname' feature, so we have
4941953daebaSmrg    # to replace the "-B" option with "-P" for AIX nm.
4942ca08ab68Smrg    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
4943953daebaSmrg      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
4944ca08ab68Smrg    else
4945eceda581Smrg      _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
4946ca08ab68Smrg    fi
4947ca08ab68Smrg    ;;
4948ca08ab68Smrg  pw32*)
4949953daebaSmrg    _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds
4950ca08ab68Smrg    ;;
4951ca08ab68Smrg  cygwin* | mingw* | cegcc*)
4952ca08ab68Smrg    case $cc_basename in
4953eceda581Smrg    cl* | icl*)
4954ca08ab68Smrg      _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
4955ca08ab68Smrg      ;;
4956ca08ab68Smrg    *)
4957ca08ab68Smrg      _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'
4958ca08ab68Smrg      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
4959ca08ab68Smrg      ;;
4960ca08ab68Smrg    esac
4961ca08ab68Smrg    ;;
4962ca08ab68Smrg  *)
4963ca08ab68Smrg    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
4964ca08ab68Smrg    ;;
4965ca08ab68Smrg  esac
4966ca08ab68Smrg], [
4967ca08ab68Smrg  runpath_var=
4968ca08ab68Smrg  _LT_TAGVAR(allow_undefined_flag, $1)=
4969ca08ab68Smrg  _LT_TAGVAR(always_export_symbols, $1)=no
4970ca08ab68Smrg  _LT_TAGVAR(archive_cmds, $1)=
4971ca08ab68Smrg  _LT_TAGVAR(archive_expsym_cmds, $1)=
4972ca08ab68Smrg  _LT_TAGVAR(compiler_needs_object, $1)=no
4973ca08ab68Smrg  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
4974ca08ab68Smrg  _LT_TAGVAR(export_dynamic_flag_spec, $1)=
4975ca08ab68Smrg  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
4976ca08ab68Smrg  _LT_TAGVAR(hardcode_automatic, $1)=no
4977ca08ab68Smrg  _LT_TAGVAR(hardcode_direct, $1)=no
4978ca08ab68Smrg  _LT_TAGVAR(hardcode_direct_absolute, $1)=no
4979ca08ab68Smrg  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
4980ca08ab68Smrg  _LT_TAGVAR(hardcode_libdir_separator, $1)=
4981ca08ab68Smrg  _LT_TAGVAR(hardcode_minus_L, $1)=no
4982ca08ab68Smrg  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
4983ca08ab68Smrg  _LT_TAGVAR(inherit_rpath, $1)=no
4984ca08ab68Smrg  _LT_TAGVAR(link_all_deplibs, $1)=unknown
4985ca08ab68Smrg  _LT_TAGVAR(module_cmds, $1)=
4986ca08ab68Smrg  _LT_TAGVAR(module_expsym_cmds, $1)=
4987ca08ab68Smrg  _LT_TAGVAR(old_archive_from_new_cmds, $1)=
4988ca08ab68Smrg  _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
4989ca08ab68Smrg  _LT_TAGVAR(thread_safe_flag_spec, $1)=
4990ca08ab68Smrg  _LT_TAGVAR(whole_archive_flag_spec, $1)=
4991ca08ab68Smrg  # include_expsyms should be a list of space-separated symbols to be *always*
4992ca08ab68Smrg  # included in the symbol list
4993ca08ab68Smrg  _LT_TAGVAR(include_expsyms, $1)=
4994ca08ab68Smrg  # exclude_expsyms can be an extended regexp of symbols to exclude
4995953daebaSmrg  # it will be wrapped by ' (' and ')$', so one must not match beginning or
4996953daebaSmrg  # end of line.  Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
4997953daebaSmrg  # as well as any symbol that contains 'd'.
4998ca08ab68Smrg  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
4999ca08ab68Smrg  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
5000ca08ab68Smrg  # platforms (ab)use it in PIC code, but their linkers get confused if
5001ca08ab68Smrg  # the symbol is explicitly referenced.  Since portable code cannot
5002ca08ab68Smrg  # rely on this symbol name, it's probably fine to never include it in
5003ca08ab68Smrg  # preloaded symbol tables.
5004ca08ab68Smrg  # Exclude shared library initialization/finalization symbols.
5005ca08ab68Smrgdnl Note also adjust exclude_expsyms for C++ above.
5006ca08ab68Smrg  extract_expsyms_cmds=
5007ca08ab68Smrg
5008ca08ab68Smrg  case $host_os in
5009ca08ab68Smrg  cygwin* | mingw* | pw32* | cegcc*)
5010eceda581Smrg    # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time
5011ca08ab68Smrg    # When not using gcc, we currently assume that we are using
5012eceda581Smrg    # Microsoft Visual C++ or Intel C++ Compiler.
5013953daebaSmrg    if test yes != "$GCC"; then
5014ca08ab68Smrg      with_gnu_ld=no
5015ca08ab68Smrg    fi
5016ca08ab68Smrg    ;;
5017ca08ab68Smrg  interix*)
5018eceda581Smrg    # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC)
5019ca08ab68Smrg    with_gnu_ld=yes
5020ca08ab68Smrg    ;;
5021953daebaSmrg  openbsd* | bitrig*)
5022ca08ab68Smrg    with_gnu_ld=no
5023ca08ab68Smrg    ;;
5024ca08ab68Smrg  esac
5025ca08ab68Smrg
5026ca08ab68Smrg  _LT_TAGVAR(ld_shlibs, $1)=yes
5027ca08ab68Smrg
5028ca08ab68Smrg  # On some targets, GNU ld is compatible enough with the native linker
5029ca08ab68Smrg  # that we're better off using the native interface for both.
5030ca08ab68Smrg  lt_use_gnu_ld_interface=no
5031953daebaSmrg  if test yes = "$with_gnu_ld"; then
5032ca08ab68Smrg    case $host_os in
5033ca08ab68Smrg      aix*)
5034ca08ab68Smrg	# The AIX port of GNU ld has always aspired to compatibility
5035ca08ab68Smrg	# with the native linker.  However, as the warning in the GNU ld
5036ca08ab68Smrg	# block says, versions before 2.19.5* couldn't really create working
5037ca08ab68Smrg	# shared libraries, regardless of the interface used.
5038ca08ab68Smrg	case `$LD -v 2>&1` in
5039ca08ab68Smrg	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
5040ca08ab68Smrg	  *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
5041ca08ab68Smrg	  *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
5042ca08ab68Smrg	  *)
5043ca08ab68Smrg	    lt_use_gnu_ld_interface=yes
5044ca08ab68Smrg	    ;;
5045ca08ab68Smrg	esac
5046ca08ab68Smrg	;;
5047ca08ab68Smrg      *)
5048ca08ab68Smrg	lt_use_gnu_ld_interface=yes
5049ca08ab68Smrg	;;
5050ca08ab68Smrg    esac
5051ca08ab68Smrg  fi
5052ca08ab68Smrg
5053953daebaSmrg  if test yes = "$lt_use_gnu_ld_interface"; then
5054ca08ab68Smrg    # If archive_cmds runs LD, not CC, wlarc should be empty
5055953daebaSmrg    wlarc='$wl'
5056ca08ab68Smrg
5057ca08ab68Smrg    # Set some defaults for GNU ld with shared library support. These
5058ca08ab68Smrg    # are reset later if shared libraries are not supported. Putting them
5059ca08ab68Smrg    # here allows them to be overridden if necessary.
5060ca08ab68Smrg    runpath_var=LD_RUN_PATH
5061953daebaSmrg    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
5062953daebaSmrg    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
5063ca08ab68Smrg    # ancient GNU ld didn't support --whole-archive et. al.
5064ca08ab68Smrg    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
5065953daebaSmrg      _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
5066ca08ab68Smrg    else
5067ca08ab68Smrg      _LT_TAGVAR(whole_archive_flag_spec, $1)=
5068ca08ab68Smrg    fi
5069ca08ab68Smrg    supports_anon_versioning=no
5070eceda581Smrg    case `$LD -v | $SED -e 's/([[^)]]\+)\s\+//' 2>&1` in
5071ca08ab68Smrg      *GNU\ gold*) supports_anon_versioning=yes ;;
5072ca08ab68Smrg      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
5073ca08ab68Smrg      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
5074ca08ab68Smrg      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
5075ca08ab68Smrg      *\ 2.11.*) ;; # other 2.11 versions
5076ca08ab68Smrg      *) supports_anon_versioning=yes ;;
5077ca08ab68Smrg    esac
5078ca08ab68Smrg
5079ca08ab68Smrg    # See if GNU ld supports shared libraries.
5080ca08ab68Smrg    case $host_os in
5081ca08ab68Smrg    aix[[3-9]]*)
5082ca08ab68Smrg      # On AIX/PPC, the GNU linker is very broken
5083953daebaSmrg      if test ia64 != "$host_cpu"; then
5084ca08ab68Smrg	_LT_TAGVAR(ld_shlibs, $1)=no
5085ca08ab68Smrg	cat <<_LT_EOF 1>&2
5086ca08ab68Smrg
5087ca08ab68Smrg*** Warning: the GNU linker, at least up to release 2.19, is reported
5088ca08ab68Smrg*** to be unable to reliably create shared libraries on AIX.
5089ca08ab68Smrg*** Therefore, libtool is disabling shared libraries support.  If you
5090ca08ab68Smrg*** really care for shared libraries, you may want to install binutils
5091ca08ab68Smrg*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
5092ca08ab68Smrg*** You will then need to restart the configuration process.
5093ca08ab68Smrg
5094ca08ab68Smrg_LT_EOF
5095ca08ab68Smrg      fi
5096ca08ab68Smrg      ;;
5097ca08ab68Smrg
5098ca08ab68Smrg    amigaos*)
5099ca08ab68Smrg      case $host_cpu in
5100ca08ab68Smrg      powerpc)
5101ca08ab68Smrg            # see comment about AmigaOS4 .so support
5102953daebaSmrg            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
5103ca08ab68Smrg            _LT_TAGVAR(archive_expsym_cmds, $1)=''
5104ca08ab68Smrg        ;;
5105ca08ab68Smrg      m68k)
5106ca08ab68Smrg            _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)'
5107ca08ab68Smrg            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
5108ca08ab68Smrg            _LT_TAGVAR(hardcode_minus_L, $1)=yes
5109ca08ab68Smrg        ;;
5110ca08ab68Smrg      esac
5111ca08ab68Smrg      ;;
5112ca08ab68Smrg
5113ca08ab68Smrg    beos*)
5114ca08ab68Smrg      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
5115ca08ab68Smrg	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
5116ca08ab68Smrg	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
5117ca08ab68Smrg	# support --undefined.  This deserves some investigation.  FIXME
5118953daebaSmrg	_LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
5119ca08ab68Smrg      else
5120ca08ab68Smrg	_LT_TAGVAR(ld_shlibs, $1)=no
5121ca08ab68Smrg      fi
5122ca08ab68Smrg      ;;
5123ca08ab68Smrg
5124ca08ab68Smrg    cygwin* | mingw* | pw32* | cegcc*)
5125ca08ab68Smrg      # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
5126ca08ab68Smrg      # as there is no search path for DLLs.
5127ca08ab68Smrg      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
5128953daebaSmrg      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols'
5129ca08ab68Smrg      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
5130ca08ab68Smrg      _LT_TAGVAR(always_export_symbols, $1)=no
5131ca08ab68Smrg      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
5132ca08ab68Smrg      _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'
5133ca08ab68Smrg      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
5134ca08ab68Smrg
5135ca08ab68Smrg      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
5136953daebaSmrg        _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'
5137953daebaSmrg	# If the export-symbols file already is a .def file, use it as
5138953daebaSmrg	# is; otherwise, prepend EXPORTS...
5139953daebaSmrg	_LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
5140953daebaSmrg          cp $export_symbols $output_objdir/$soname.def;
5141953daebaSmrg        else
5142953daebaSmrg          echo EXPORTS > $output_objdir/$soname.def;
5143953daebaSmrg          cat $export_symbols >> $output_objdir/$soname.def;
5144953daebaSmrg        fi~
5145953daebaSmrg        $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
5146ca08ab68Smrg      else
5147ca08ab68Smrg	_LT_TAGVAR(ld_shlibs, $1)=no
5148ca08ab68Smrg      fi
5149ca08ab68Smrg      ;;
5150ca08ab68Smrg
5151ca08ab68Smrg    haiku*)
5152953daebaSmrg      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
5153ca08ab68Smrg      _LT_TAGVAR(link_all_deplibs, $1)=yes
5154ca08ab68Smrg      ;;
5155ca08ab68Smrg
5156953daebaSmrg    os2*)
5157953daebaSmrg      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
5158953daebaSmrg      _LT_TAGVAR(hardcode_minus_L, $1)=yes
5159953daebaSmrg      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
5160953daebaSmrg      shrext_cmds=.dll
5161953daebaSmrg      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
5162953daebaSmrg	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
5163953daebaSmrg	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
5164953daebaSmrg	$ECHO EXPORTS >> $output_objdir/$libname.def~
5165953daebaSmrg	emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
5166953daebaSmrg	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
5167953daebaSmrg	emximp -o $lib $output_objdir/$libname.def'
5168953daebaSmrg      _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
5169953daebaSmrg	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
5170953daebaSmrg	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
5171953daebaSmrg	$ECHO EXPORTS >> $output_objdir/$libname.def~
5172953daebaSmrg	prefix_cmds="$SED"~
5173953daebaSmrg	if test EXPORTS = "`$SED 1q $export_symbols`"; then
5174953daebaSmrg	  prefix_cmds="$prefix_cmds -e 1d";
5175953daebaSmrg	fi~
5176953daebaSmrg	prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
5177953daebaSmrg	cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
5178953daebaSmrg	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
5179953daebaSmrg	emximp -o $lib $output_objdir/$libname.def'
5180953daebaSmrg      _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
5181953daebaSmrg      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
5182eceda581Smrg      _LT_TAGVAR(file_list_spec, $1)='@'
5183953daebaSmrg      ;;
5184953daebaSmrg
5185ca08ab68Smrg    interix[[3-9]]*)
5186ca08ab68Smrg      _LT_TAGVAR(hardcode_direct, $1)=no
5187ca08ab68Smrg      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5188953daebaSmrg      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
5189953daebaSmrg      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
5190ca08ab68Smrg      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
5191ca08ab68Smrg      # Instead, shared libraries are loaded at an image base (0x10000000 by
5192ca08ab68Smrg      # default) and relocated if they conflict, which is a slow very memory
5193ca08ab68Smrg      # consuming and fragmenting process.  To avoid this, we pick a random,
5194ca08ab68Smrg      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
5195ca08ab68Smrg      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
5196953daebaSmrg      _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'
5197eceda581Smrg      _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'
5198ca08ab68Smrg      ;;
5199ca08ab68Smrg
5200ca08ab68Smrg    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
5201ca08ab68Smrg      tmp_diet=no
5202953daebaSmrg      if test linux-dietlibc = "$host_os"; then
5203ca08ab68Smrg	case $cc_basename in
5204ca08ab68Smrg	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
5205ca08ab68Smrg	esac
5206ca08ab68Smrg      fi
5207ca08ab68Smrg      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
5208953daebaSmrg	 && test no = "$tmp_diet"
5209ca08ab68Smrg      then
5210ca08ab68Smrg	tmp_addflag=' $pic_flag'
5211ca08ab68Smrg	tmp_sharedflag='-shared'
5212ca08ab68Smrg	case $cc_basename,$host_cpu in
5213ca08ab68Smrg        pgcc*)				# Portland Group C compiler
5214953daebaSmrg	  _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'
5215ca08ab68Smrg	  tmp_addflag=' $pic_flag'
5216ca08ab68Smrg	  ;;
5217ca08ab68Smrg	pgf77* | pgf90* | pgf95* | pgfortran*)
5218ca08ab68Smrg					# Portland Group f77 and f90 compilers
5219953daebaSmrg	  _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'
5220ca08ab68Smrg	  tmp_addflag=' $pic_flag -Mnomain' ;;
5221ca08ab68Smrg	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
5222ca08ab68Smrg	  tmp_addflag=' -i_dynamic' ;;
5223ca08ab68Smrg	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
5224ca08ab68Smrg	  tmp_addflag=' -i_dynamic -nofor_main' ;;
5225ca08ab68Smrg	ifc* | ifort*)			# Intel Fortran compiler
5226ca08ab68Smrg	  tmp_addflag=' -nofor_main' ;;
5227ca08ab68Smrg	lf95*)				# Lahey Fortran 8.1
5228ca08ab68Smrg	  _LT_TAGVAR(whole_archive_flag_spec, $1)=
5229ca08ab68Smrg	  tmp_sharedflag='--shared' ;;
5230953daebaSmrg        nagfor*)                        # NAGFOR 5.3
5231953daebaSmrg          tmp_sharedflag='-Wl,-shared' ;;
5232ca08ab68Smrg	xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
5233ca08ab68Smrg	  tmp_sharedflag='-qmkshrobj'
5234ca08ab68Smrg	  tmp_addflag= ;;
5235ca08ab68Smrg	nvcc*)	# Cuda Compiler Driver 2.2
5236953daebaSmrg	  _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'
5237ca08ab68Smrg	  _LT_TAGVAR(compiler_needs_object, $1)=yes
5238ca08ab68Smrg	  ;;
5239ca08ab68Smrg	esac
5240eceda581Smrg	case `$CC -V 2>&1 | $SED 5q` in
5241ca08ab68Smrg	*Sun\ C*)			# Sun C 5.9
5242953daebaSmrg	  _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'
5243ca08ab68Smrg	  _LT_TAGVAR(compiler_needs_object, $1)=yes
5244ca08ab68Smrg	  tmp_sharedflag='-G' ;;
5245ca08ab68Smrg	*Sun\ F*)			# Sun Fortran 8.3
5246ca08ab68Smrg	  tmp_sharedflag='-G' ;;
5247ca08ab68Smrg	esac
5248953daebaSmrg	_LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
5249ca08ab68Smrg
5250953daebaSmrg        if test yes = "$supports_anon_versioning"; then
5251ca08ab68Smrg          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
5252eceda581Smrg            cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
5253953daebaSmrg            echo "local: *; };" >> $output_objdir/$libname.ver~
5254953daebaSmrg            $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
5255ca08ab68Smrg        fi
5256ca08ab68Smrg
5257ca08ab68Smrg	case $cc_basename in
5258953daebaSmrg	tcc*)
5259953daebaSmrg	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic'
5260953daebaSmrg	  ;;
5261ca08ab68Smrg	xlf* | bgf* | bgxlf* | mpixlf*)
5262ca08ab68Smrg	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
5263ca08ab68Smrg	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
5264953daebaSmrg	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
5265ca08ab68Smrg	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
5266953daebaSmrg	  if test yes = "$supports_anon_versioning"; then
5267ca08ab68Smrg	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
5268eceda581Smrg              cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
5269953daebaSmrg              echo "local: *; };" >> $output_objdir/$libname.ver~
5270953daebaSmrg              $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
5271ca08ab68Smrg	  fi
5272ca08ab68Smrg	  ;;
5273ca08ab68Smrg	esac
5274ca08ab68Smrg      else
5275ca08ab68Smrg        _LT_TAGVAR(ld_shlibs, $1)=no
5276ca08ab68Smrg      fi
5277ca08ab68Smrg      ;;
5278ca08ab68Smrg
5279ca08ab68Smrg    netbsd*)
5280ca08ab68Smrg      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
5281ca08ab68Smrg	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
5282ca08ab68Smrg	wlarc=
5283ca08ab68Smrg      else
5284953daebaSmrg	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
5285953daebaSmrg	_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'
5286ca08ab68Smrg      fi
5287ca08ab68Smrg      ;;
5288ca08ab68Smrg
5289ca08ab68Smrg    solaris*)
5290ca08ab68Smrg      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
5291ca08ab68Smrg	_LT_TAGVAR(ld_shlibs, $1)=no
5292ca08ab68Smrg	cat <<_LT_EOF 1>&2
5293ca08ab68Smrg
5294ca08ab68Smrg*** Warning: The releases 2.8.* of the GNU linker cannot reliably
5295ca08ab68Smrg*** create shared libraries on Solaris systems.  Therefore, libtool
5296ca08ab68Smrg*** is disabling shared libraries support.  We urge you to upgrade GNU
5297ca08ab68Smrg*** binutils to release 2.9.1 or newer.  Another option is to modify
5298ca08ab68Smrg*** your PATH or compiler configuration so that the native linker is
5299ca08ab68Smrg*** used, and then restart.
5300ca08ab68Smrg
5301ca08ab68Smrg_LT_EOF
5302ca08ab68Smrg      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
5303953daebaSmrg	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
5304953daebaSmrg	_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'
5305ca08ab68Smrg      else
5306ca08ab68Smrg	_LT_TAGVAR(ld_shlibs, $1)=no
5307ca08ab68Smrg      fi
5308ca08ab68Smrg      ;;
5309ca08ab68Smrg
5310ca08ab68Smrg    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
5311ca08ab68Smrg      case `$LD -v 2>&1` in
5312ca08ab68Smrg        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
5313ca08ab68Smrg	_LT_TAGVAR(ld_shlibs, $1)=no
5314ca08ab68Smrg	cat <<_LT_EOF 1>&2
5315ca08ab68Smrg
5316953daebaSmrg*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
5317ca08ab68Smrg*** reliably create shared libraries on SCO systems.  Therefore, libtool
5318ca08ab68Smrg*** is disabling shared libraries support.  We urge you to upgrade GNU
5319ca08ab68Smrg*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
5320ca08ab68Smrg*** your PATH or compiler configuration so that the native linker is
5321ca08ab68Smrg*** used, and then restart.
5322ca08ab68Smrg
5323ca08ab68Smrg_LT_EOF
5324ca08ab68Smrg	;;
5325ca08ab68Smrg	*)
5326ca08ab68Smrg	  # For security reasons, it is highly recommended that you always
5327ca08ab68Smrg	  # use absolute paths for naming shared libraries, and exclude the
5328ca08ab68Smrg	  # DT_RUNPATH tag from executables and libraries.  But doing so
5329ca08ab68Smrg	  # requires that you compile everything twice, which is a pain.
5330ca08ab68Smrg	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
5331953daebaSmrg	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
5332953daebaSmrg	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
5333953daebaSmrg	    _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'
5334ca08ab68Smrg	  else
5335ca08ab68Smrg	    _LT_TAGVAR(ld_shlibs, $1)=no
5336ca08ab68Smrg	  fi
5337ca08ab68Smrg	;;
5338ca08ab68Smrg      esac
5339ca08ab68Smrg      ;;
5340ca08ab68Smrg
5341ca08ab68Smrg    sunos4*)
5342ca08ab68Smrg      _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
5343ca08ab68Smrg      wlarc=
5344ca08ab68Smrg      _LT_TAGVAR(hardcode_direct, $1)=yes
5345ca08ab68Smrg      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5346ca08ab68Smrg      ;;
5347ca08ab68Smrg
5348ca08ab68Smrg    *)
5349ca08ab68Smrg      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
5350953daebaSmrg	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
5351953daebaSmrg	_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'
5352ca08ab68Smrg      else
5353ca08ab68Smrg	_LT_TAGVAR(ld_shlibs, $1)=no
5354ca08ab68Smrg      fi
5355ca08ab68Smrg      ;;
5356ca08ab68Smrg    esac
5357ca08ab68Smrg
5358953daebaSmrg    if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then
5359ca08ab68Smrg      runpath_var=
5360ca08ab68Smrg      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
5361ca08ab68Smrg      _LT_TAGVAR(export_dynamic_flag_spec, $1)=
5362ca08ab68Smrg      _LT_TAGVAR(whole_archive_flag_spec, $1)=
5363ca08ab68Smrg    fi
5364ca08ab68Smrg  else
5365ca08ab68Smrg    # PORTME fill in a description of your system's linker (not GNU ld)
5366ca08ab68Smrg    case $host_os in
5367ca08ab68Smrg    aix3*)
5368ca08ab68Smrg      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
5369ca08ab68Smrg      _LT_TAGVAR(always_export_symbols, $1)=yes
5370ca08ab68Smrg      _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'
5371ca08ab68Smrg      # Note: this linker hardcodes the directories in LIBPATH if there
5372ca08ab68Smrg      # are no directories specified by -L.
5373ca08ab68Smrg      _LT_TAGVAR(hardcode_minus_L, $1)=yes
5374953daebaSmrg      if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
5375ca08ab68Smrg	# Neither direct hardcoding nor static linking is supported with a
5376ca08ab68Smrg	# broken collect2.
5377ca08ab68Smrg	_LT_TAGVAR(hardcode_direct, $1)=unsupported
5378ca08ab68Smrg      fi
5379ca08ab68Smrg      ;;
5380ca08ab68Smrg
5381ca08ab68Smrg    aix[[4-9]]*)
5382953daebaSmrg      if test ia64 = "$host_cpu"; then
5383ca08ab68Smrg	# On IA64, the linker does run time linking by default, so we don't
5384ca08ab68Smrg	# have to do anything special.
5385ca08ab68Smrg	aix_use_runtimelinking=no
5386ca08ab68Smrg	exp_sym_flag='-Bexport'
5387953daebaSmrg	no_entry_flag=
5388ca08ab68Smrg      else
5389ca08ab68Smrg	# If we're using GNU nm, then we don't want the "-C" option.
5390953daebaSmrg	# -C means demangle to GNU nm, but means don't demangle to AIX nm.
5391953daebaSmrg	# Without the "-l" option, or with the "-B" option, AIX nm treats
5392953daebaSmrg	# weak defined symbols like other global defined symbols, whereas
5393953daebaSmrg	# GNU nm marks them as "W".
5394953daebaSmrg	# While the 'weak' keyword is ignored in the Export File, we need
5395953daebaSmrg	# it in the Import File for the 'aix-soname' feature, so we have
5396953daebaSmrg	# to replace the "-B" option with "-P" for AIX nm.
5397ca08ab68Smrg	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
5398953daebaSmrg	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
5399ca08ab68Smrg	else
5400eceda581Smrg	  _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
5401ca08ab68Smrg	fi
5402ca08ab68Smrg	aix_use_runtimelinking=no
5403ca08ab68Smrg
5404ca08ab68Smrg	# Test if we are trying to use run time linking or normal
5405ca08ab68Smrg	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
5406953daebaSmrg	# have runtime linking enabled, and use it for executables.
5407953daebaSmrg	# For shared libraries, we enable/disable runtime linking
5408953daebaSmrg	# depending on the kind of the shared library created -
5409953daebaSmrg	# when "with_aix_soname,aix_use_runtimelinking" is:
5410953daebaSmrg	# "aix,no"   lib.a(lib.so.V) shared, rtl:no,  for executables
5411953daebaSmrg	# "aix,yes"  lib.so          shared, rtl:yes, for executables
5412953daebaSmrg	#            lib.a           static archive
5413953daebaSmrg	# "both,no"  lib.so.V(shr.o) shared, rtl:yes
5414953daebaSmrg	#            lib.a(lib.so.V) shared, rtl:no,  for executables
5415953daebaSmrg	# "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
5416953daebaSmrg	#            lib.a(lib.so.V) shared, rtl:no
5417953daebaSmrg	# "svr4,*"   lib.so.V(shr.o) shared, rtl:yes, for executables
5418953daebaSmrg	#            lib.a           static archive
5419ca08ab68Smrg	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
5420ca08ab68Smrg	  for ld_flag in $LDFLAGS; do
5421953daebaSmrg	  if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
5422ca08ab68Smrg	    aix_use_runtimelinking=yes
5423ca08ab68Smrg	    break
5424ca08ab68Smrg	  fi
5425ca08ab68Smrg	  done
5426953daebaSmrg	  if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
5427953daebaSmrg	    # With aix-soname=svr4, we create the lib.so.V shared archives only,
5428953daebaSmrg	    # so we don't have lib.a shared libs to link our executables.
5429953daebaSmrg	    # We have to force runtime linking in this case.
5430953daebaSmrg	    aix_use_runtimelinking=yes
5431953daebaSmrg	    LDFLAGS="$LDFLAGS -Wl,-brtl"
5432953daebaSmrg	  fi
5433ca08ab68Smrg	  ;;
5434ca08ab68Smrg	esac
5435ca08ab68Smrg
5436ca08ab68Smrg	exp_sym_flag='-bexport'
5437ca08ab68Smrg	no_entry_flag='-bnoentry'
5438ca08ab68Smrg      fi
5439ca08ab68Smrg
5440ca08ab68Smrg      # When large executables or shared objects are built, AIX ld can
5441ca08ab68Smrg      # have problems creating the table of contents.  If linking a library
5442ca08ab68Smrg      # or program results in "error TOC overflow" add -mminimal-toc to
5443ca08ab68Smrg      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
5444ca08ab68Smrg      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
5445ca08ab68Smrg
5446ca08ab68Smrg      _LT_TAGVAR(archive_cmds, $1)=''
5447ca08ab68Smrg      _LT_TAGVAR(hardcode_direct, $1)=yes
5448ca08ab68Smrg      _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
5449ca08ab68Smrg      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
5450ca08ab68Smrg      _LT_TAGVAR(link_all_deplibs, $1)=yes
5451953daebaSmrg      _LT_TAGVAR(file_list_spec, $1)='$wl-f,'
5452953daebaSmrg      case $with_aix_soname,$aix_use_runtimelinking in
5453953daebaSmrg      aix,*) ;; # traditional, no import file
5454953daebaSmrg      svr4,* | *,yes) # use import file
5455953daebaSmrg	# The Import File defines what to hardcode.
5456953daebaSmrg	_LT_TAGVAR(hardcode_direct, $1)=no
5457953daebaSmrg	_LT_TAGVAR(hardcode_direct_absolute, $1)=no
5458953daebaSmrg	;;
5459953daebaSmrg      esac
5460ca08ab68Smrg
5461953daebaSmrg      if test yes = "$GCC"; then
5462ca08ab68Smrg	case $host_os in aix4.[[012]]|aix4.[[012]].*)
5463ca08ab68Smrg	# We only want to do this on AIX 4.2 and lower, the check
5464ca08ab68Smrg	# below for broken collect2 doesn't work under 4.3+
5465953daebaSmrg	  collect2name=`$CC -print-prog-name=collect2`
5466ca08ab68Smrg	  if test -f "$collect2name" &&
5467ca08ab68Smrg	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
5468ca08ab68Smrg	  then
5469ca08ab68Smrg	  # We have reworked collect2
5470ca08ab68Smrg	  :
5471ca08ab68Smrg	  else
5472ca08ab68Smrg	  # We have old collect2
5473ca08ab68Smrg	  _LT_TAGVAR(hardcode_direct, $1)=unsupported
5474ca08ab68Smrg	  # It fails to find uninstalled libraries when the uninstalled
5475ca08ab68Smrg	  # path is not listed in the libpath.  Setting hardcode_minus_L
5476ca08ab68Smrg	  # to unsupported forces relinking
5477ca08ab68Smrg	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
5478ca08ab68Smrg	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
5479ca08ab68Smrg	  _LT_TAGVAR(hardcode_libdir_separator, $1)=
5480ca08ab68Smrg	  fi
5481ca08ab68Smrg	  ;;
5482ca08ab68Smrg	esac
5483ca08ab68Smrg	shared_flag='-shared'
5484953daebaSmrg	if test yes = "$aix_use_runtimelinking"; then
5485953daebaSmrg	  shared_flag="$shared_flag "'$wl-G'
5486ca08ab68Smrg	fi
5487953daebaSmrg	# Need to ensure runtime linking is disabled for the traditional
5488953daebaSmrg	# shared library, or the linker may eventually find shared libraries
5489953daebaSmrg	# /with/ Import File - we do not want to mix them.
5490953daebaSmrg	shared_flag_aix='-shared'
5491953daebaSmrg	shared_flag_svr4='-shared $wl-G'
5492ca08ab68Smrg      else
5493ca08ab68Smrg	# not using gcc
5494953daebaSmrg	if test ia64 = "$host_cpu"; then
5495ca08ab68Smrg	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
5496ca08ab68Smrg	# chokes on -Wl,-G. The following line is correct:
5497ca08ab68Smrg	  shared_flag='-G'
5498ca08ab68Smrg	else
5499953daebaSmrg	  if test yes = "$aix_use_runtimelinking"; then
5500953daebaSmrg	    shared_flag='$wl-G'
5501ca08ab68Smrg	  else
5502953daebaSmrg	    shared_flag='$wl-bM:SRE'
5503ca08ab68Smrg	  fi
5504953daebaSmrg	  shared_flag_aix='$wl-bM:SRE'
5505953daebaSmrg	  shared_flag_svr4='$wl-G'
5506ca08ab68Smrg	fi
5507ca08ab68Smrg      fi
5508ca08ab68Smrg
5509953daebaSmrg      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall'
5510ca08ab68Smrg      # It seems that -bexpall does not export symbols beginning with
5511ca08ab68Smrg      # underscore (_), so it is better to generate a list of symbols to export.
5512ca08ab68Smrg      _LT_TAGVAR(always_export_symbols, $1)=yes
5513953daebaSmrg      if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
5514ca08ab68Smrg	# Warning - without using the other runtime loading flags (-brtl),
5515ca08ab68Smrg	# -berok will link without error, but may produce a broken library.
5516ca08ab68Smrg	_LT_TAGVAR(allow_undefined_flag, $1)='-berok'
5517ca08ab68Smrg        # Determine the default libpath from the value encoded in an
5518ca08ab68Smrg        # empty executable.
5519ca08ab68Smrg        _LT_SYS_MODULE_PATH_AIX([$1])
5520953daebaSmrg        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
5521953daebaSmrg        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
5522ca08ab68Smrg      else
5523953daebaSmrg	if test ia64 = "$host_cpu"; then
5524953daebaSmrg	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib'
5525ca08ab68Smrg	  _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
5526953daebaSmrg	  _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"
5527ca08ab68Smrg	else
5528ca08ab68Smrg	 # Determine the default libpath from the value encoded in an
5529ca08ab68Smrg	 # empty executable.
5530ca08ab68Smrg	 _LT_SYS_MODULE_PATH_AIX([$1])
5531953daebaSmrg	 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
5532ca08ab68Smrg	  # Warning - without using the other run time loading flags,
5533ca08ab68Smrg	  # -berok will link without error, but may produce a broken library.
5534953daebaSmrg	  _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok'
5535953daebaSmrg	  _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok'
5536953daebaSmrg	  if test yes = "$with_gnu_ld"; then
5537ca08ab68Smrg	    # We only use this code for GNU lds that support --whole-archive.
5538953daebaSmrg	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
5539ca08ab68Smrg	  else
5540ca08ab68Smrg	    # Exported symbols can be pulled into shared objects from archives
5541ca08ab68Smrg	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
5542ca08ab68Smrg	  fi
5543ca08ab68Smrg	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
5544953daebaSmrg	  _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
5545953daebaSmrg	  # -brtl affects multiple linker settings, -berok does not and is overridden later
5546953daebaSmrg	  compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
5547953daebaSmrg	  if test svr4 != "$with_aix_soname"; then
5548953daebaSmrg	    # This is similar to how AIX traditionally builds its shared libraries.
5549953daebaSmrg	    _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
5550953daebaSmrg	  fi
5551953daebaSmrg	  if test aix != "$with_aix_soname"; then
5552953daebaSmrg	    _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
5553953daebaSmrg	  else
5554953daebaSmrg	    # used by -dlpreopen to get the symbols
5555953daebaSmrg	    _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV  $output_objdir/$realname.d/$soname $output_objdir'
5556953daebaSmrg	  fi
5557953daebaSmrg	  _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
5558ca08ab68Smrg	fi
5559ca08ab68Smrg      fi
5560ca08ab68Smrg      ;;
5561ca08ab68Smrg
5562ca08ab68Smrg    amigaos*)
5563ca08ab68Smrg      case $host_cpu in
5564ca08ab68Smrg      powerpc)
5565ca08ab68Smrg            # see comment about AmigaOS4 .so support
5566953daebaSmrg            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
5567ca08ab68Smrg            _LT_TAGVAR(archive_expsym_cmds, $1)=''
5568ca08ab68Smrg        ;;
5569ca08ab68Smrg      m68k)
5570ca08ab68Smrg            _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)'
5571ca08ab68Smrg            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
5572ca08ab68Smrg            _LT_TAGVAR(hardcode_minus_L, $1)=yes
5573ca08ab68Smrg        ;;
5574ca08ab68Smrg      esac
5575ca08ab68Smrg      ;;
5576ca08ab68Smrg
5577ca08ab68Smrg    bsdi[[45]]*)
5578ca08ab68Smrg      _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
5579ca08ab68Smrg      ;;
5580ca08ab68Smrg
5581ca08ab68Smrg    cygwin* | mingw* | pw32* | cegcc*)
5582ca08ab68Smrg      # When not using gcc, we currently assume that we are using
5583eceda581Smrg      # Microsoft Visual C++ or Intel C++ Compiler.
5584ca08ab68Smrg      # hardcode_libdir_flag_spec is actually meaningless, as there is
5585ca08ab68Smrg      # no search path for DLLs.
5586ca08ab68Smrg      case $cc_basename in
5587eceda581Smrg      cl* | icl*)
5588eceda581Smrg	# Native MSVC or ICC
5589ca08ab68Smrg	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
5590ca08ab68Smrg	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
5591ca08ab68Smrg	_LT_TAGVAR(always_export_symbols, $1)=yes
5592ca08ab68Smrg	_LT_TAGVAR(file_list_spec, $1)='@'
5593ca08ab68Smrg	# Tell ltmain to make .lib files, not .a files.
5594ca08ab68Smrg	libext=lib
5595ca08ab68Smrg	# Tell ltmain to make .dll files, not .so files.
5596953daebaSmrg	shrext_cmds=.dll
5597ca08ab68Smrg	# FIXME: Setting linknames here is a bad hack.
5598953daebaSmrg	_LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
5599953daebaSmrg	_LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
5600953daebaSmrg            cp "$export_symbols" "$output_objdir/$soname.def";
5601953daebaSmrg            echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
5602953daebaSmrg          else
5603953daebaSmrg            $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
5604953daebaSmrg          fi~
5605953daebaSmrg          $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
5606953daebaSmrg          linknames='
5607ca08ab68Smrg	# The linker will not automatically build a static lib if we build a DLL.
5608ca08ab68Smrg	# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
5609ca08ab68Smrg	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
5610ca08ab68Smrg	_LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
5611ca08ab68Smrg	_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'
5612ca08ab68Smrg	# Don't use ranlib
5613ca08ab68Smrg	_LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
5614ca08ab68Smrg	_LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
5615953daebaSmrg          lt_tool_outputfile="@TOOL_OUTPUT@"~
5616953daebaSmrg          case $lt_outputfile in
5617953daebaSmrg            *.exe|*.EXE) ;;
5618953daebaSmrg            *)
5619953daebaSmrg              lt_outputfile=$lt_outputfile.exe
5620953daebaSmrg              lt_tool_outputfile=$lt_tool_outputfile.exe
5621953daebaSmrg              ;;
5622953daebaSmrg          esac~
5623953daebaSmrg          if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
5624953daebaSmrg            $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
5625953daebaSmrg            $RM "$lt_outputfile.manifest";
5626953daebaSmrg          fi'
5627ca08ab68Smrg	;;
5628ca08ab68Smrg      *)
5629eceda581Smrg	# Assume MSVC and ICC wrapper
5630ca08ab68Smrg	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
5631ca08ab68Smrg	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
5632ca08ab68Smrg	# Tell ltmain to make .lib files, not .a files.
5633ca08ab68Smrg	libext=lib
5634ca08ab68Smrg	# Tell ltmain to make .dll files, not .so files.
5635953daebaSmrg	shrext_cmds=.dll
5636ca08ab68Smrg	# FIXME: Setting linknames here is a bad hack.
5637ca08ab68Smrg	_LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
5638ca08ab68Smrg	# The linker will automatically build a .lib file if we build a DLL.
5639ca08ab68Smrg	_LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
5640ca08ab68Smrg	# FIXME: Should let the user specify the lib program.
5641ca08ab68Smrg	_LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
5642ca08ab68Smrg	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
5643ca08ab68Smrg	;;
5644ca08ab68Smrg      esac
5645ca08ab68Smrg      ;;
5646ca08ab68Smrg
5647ca08ab68Smrg    darwin* | rhapsody*)
5648ca08ab68Smrg      _LT_DARWIN_LINKER_FEATURES($1)
5649ca08ab68Smrg      ;;
5650ca08ab68Smrg
5651ca08ab68Smrg    dgux*)
5652ca08ab68Smrg      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
5653ca08ab68Smrg      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
5654ca08ab68Smrg      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5655ca08ab68Smrg      ;;
5656ca08ab68Smrg
5657ca08ab68Smrg    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
5658ca08ab68Smrg    # support.  Future versions do this automatically, but an explicit c++rt0.o
5659ca08ab68Smrg    # does not break anything, and helps significantly (at the cost of a little
5660ca08ab68Smrg    # extra space).
5661ca08ab68Smrg    freebsd2.2*)
5662ca08ab68Smrg      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
5663ca08ab68Smrg      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
5664ca08ab68Smrg      _LT_TAGVAR(hardcode_direct, $1)=yes
5665ca08ab68Smrg      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5666ca08ab68Smrg      ;;
5667ca08ab68Smrg
5668ca08ab68Smrg    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
5669ca08ab68Smrg    freebsd2.*)
5670ca08ab68Smrg      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
5671ca08ab68Smrg      _LT_TAGVAR(hardcode_direct, $1)=yes
5672ca08ab68Smrg      _LT_TAGVAR(hardcode_minus_L, $1)=yes
5673ca08ab68Smrg      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5674ca08ab68Smrg      ;;
5675ca08ab68Smrg
5676ca08ab68Smrg    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
5677eceda581Smrg    freebsd* | dragonfly* | midnightbsd*)
5678ca08ab68Smrg      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
5679ca08ab68Smrg      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
5680ca08ab68Smrg      _LT_TAGVAR(hardcode_direct, $1)=yes
5681ca08ab68Smrg      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5682ca08ab68Smrg      ;;
5683ca08ab68Smrg
5684ca08ab68Smrg    hpux9*)
5685953daebaSmrg      if test yes = "$GCC"; then
5686953daebaSmrg	_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 "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
5687ca08ab68Smrg      else
5688953daebaSmrg	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
5689ca08ab68Smrg      fi
5690953daebaSmrg      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
5691ca08ab68Smrg      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
5692ca08ab68Smrg      _LT_TAGVAR(hardcode_direct, $1)=yes
5693ca08ab68Smrg
5694ca08ab68Smrg      # hardcode_minus_L: Not really in the search PATH,
5695ca08ab68Smrg      # but as the default location of the library.
5696ca08ab68Smrg      _LT_TAGVAR(hardcode_minus_L, $1)=yes
5697953daebaSmrg      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
5698ca08ab68Smrg      ;;
5699ca08ab68Smrg
5700ca08ab68Smrg    hpux10*)
5701953daebaSmrg      if test yes,no = "$GCC,$with_gnu_ld"; then
5702953daebaSmrg	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
5703ca08ab68Smrg      else
5704ca08ab68Smrg	_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
5705ca08ab68Smrg      fi
5706953daebaSmrg      if test no = "$with_gnu_ld"; then
5707953daebaSmrg	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
5708ca08ab68Smrg	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
5709ca08ab68Smrg	_LT_TAGVAR(hardcode_direct, $1)=yes
5710ca08ab68Smrg	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
5711953daebaSmrg	_LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
5712ca08ab68Smrg	# hardcode_minus_L: Not really in the search PATH,
5713ca08ab68Smrg	# but as the default location of the library.
5714ca08ab68Smrg	_LT_TAGVAR(hardcode_minus_L, $1)=yes
5715ca08ab68Smrg      fi
5716ca08ab68Smrg      ;;
5717ca08ab68Smrg
5718ca08ab68Smrg    hpux11*)
5719953daebaSmrg      if test yes,no = "$GCC,$with_gnu_ld"; then
5720ca08ab68Smrg	case $host_cpu in
5721ca08ab68Smrg	hppa*64*)
5722953daebaSmrg	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
5723ca08ab68Smrg	  ;;
5724ca08ab68Smrg	ia64*)
5725953daebaSmrg	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
5726ca08ab68Smrg	  ;;
5727ca08ab68Smrg	*)
5728953daebaSmrg	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
5729ca08ab68Smrg	  ;;
5730ca08ab68Smrg	esac
5731ca08ab68Smrg      else
5732ca08ab68Smrg	case $host_cpu in
5733ca08ab68Smrg	hppa*64*)
5734953daebaSmrg	  _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
5735ca08ab68Smrg	  ;;
5736ca08ab68Smrg	ia64*)
5737953daebaSmrg	  _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
5738ca08ab68Smrg	  ;;
5739ca08ab68Smrg	*)
5740ca08ab68Smrg	m4_if($1, [], [
5741ca08ab68Smrg	  # Older versions of the 11.00 compiler do not understand -b yet
5742ca08ab68Smrg	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
5743ca08ab68Smrg	  _LT_LINKER_OPTION([if $CC understands -b],
5744ca08ab68Smrg	    _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
5745953daebaSmrg	    [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
5746ca08ab68Smrg	    [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
5747953daebaSmrg	  [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
5748ca08ab68Smrg	  ;;
5749ca08ab68Smrg	esac
5750ca08ab68Smrg      fi
5751953daebaSmrg      if test no = "$with_gnu_ld"; then
5752953daebaSmrg	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
5753ca08ab68Smrg	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
5754ca08ab68Smrg
5755ca08ab68Smrg	case $host_cpu in
5756ca08ab68Smrg	hppa*64*|ia64*)
5757ca08ab68Smrg	  _LT_TAGVAR(hardcode_direct, $1)=no
5758ca08ab68Smrg	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5759ca08ab68Smrg	  ;;
5760ca08ab68Smrg	*)
5761ca08ab68Smrg	  _LT_TAGVAR(hardcode_direct, $1)=yes
5762ca08ab68Smrg	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
5763953daebaSmrg	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
5764ca08ab68Smrg
5765ca08ab68Smrg	  # hardcode_minus_L: Not really in the search PATH,
5766ca08ab68Smrg	  # but as the default location of the library.
5767ca08ab68Smrg	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
5768ca08ab68Smrg	  ;;
5769ca08ab68Smrg	esac
5770ca08ab68Smrg      fi
5771ca08ab68Smrg      ;;
5772ca08ab68Smrg
5773ca08ab68Smrg    irix5* | irix6* | nonstopux*)
5774953daebaSmrg      if test yes = "$GCC"; then
5775953daebaSmrg	_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'
5776ca08ab68Smrg	# Try to use the -exported_symbol ld option, if it does not
5777ca08ab68Smrg	# work, assume that -exports_file does not work either and
5778ca08ab68Smrg	# implicitly export all symbols.
5779ca08ab68Smrg	# This should be the same for all languages, so no per-tag cache variable.
5780ca08ab68Smrg	AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
5781ca08ab68Smrg	  [lt_cv_irix_exported_symbol],
5782953daebaSmrg	  [save_LDFLAGS=$LDFLAGS
5783953daebaSmrg	   LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
5784ca08ab68Smrg	   AC_LINK_IFELSE(
5785ca08ab68Smrg	     [AC_LANG_SOURCE(
5786ca08ab68Smrg	        [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
5787ca08ab68Smrg			      [C++], [[int foo (void) { return 0; }]],
5788ca08ab68Smrg			      [Fortran 77], [[
5789ca08ab68Smrg      subroutine foo
5790ca08ab68Smrg      end]],
5791ca08ab68Smrg			      [Fortran], [[
5792ca08ab68Smrg      subroutine foo
5793ca08ab68Smrg      end]])])],
5794ca08ab68Smrg	      [lt_cv_irix_exported_symbol=yes],
5795ca08ab68Smrg	      [lt_cv_irix_exported_symbol=no])
5796953daebaSmrg           LDFLAGS=$save_LDFLAGS])
5797953daebaSmrg	if test yes = "$lt_cv_irix_exported_symbol"; then
5798953daebaSmrg          _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'
5799ca08ab68Smrg	fi
5800ca08ab68Smrg      else
5801953daebaSmrg	_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'
5802953daebaSmrg	_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'
5803ca08ab68Smrg      fi
5804ca08ab68Smrg      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
5805953daebaSmrg      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
5806ca08ab68Smrg      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
5807ca08ab68Smrg      _LT_TAGVAR(inherit_rpath, $1)=yes
5808ca08ab68Smrg      _LT_TAGVAR(link_all_deplibs, $1)=yes
5809ca08ab68Smrg      ;;
5810ca08ab68Smrg
5811953daebaSmrg    linux*)
5812953daebaSmrg      case $cc_basename in
5813953daebaSmrg      tcc*)
5814953daebaSmrg	# Fabrice Bellard et al's Tiny C Compiler
5815953daebaSmrg	_LT_TAGVAR(ld_shlibs, $1)=yes
5816953daebaSmrg	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
5817953daebaSmrg	;;
5818953daebaSmrg      esac
5819953daebaSmrg      ;;
5820953daebaSmrg
5821ca08ab68Smrg    netbsd*)
5822ca08ab68Smrg      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
5823ca08ab68Smrg	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
5824ca08ab68Smrg      else
5825ca08ab68Smrg	_LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
5826ca08ab68Smrg      fi
5827ca08ab68Smrg      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
5828ca08ab68Smrg      _LT_TAGVAR(hardcode_direct, $1)=yes
5829ca08ab68Smrg      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5830ca08ab68Smrg      ;;
5831ca08ab68Smrg
5832ca08ab68Smrg    newsos6)
5833ca08ab68Smrg      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
5834ca08ab68Smrg      _LT_TAGVAR(hardcode_direct, $1)=yes
5835953daebaSmrg      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
5836ca08ab68Smrg      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
5837ca08ab68Smrg      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5838ca08ab68Smrg      ;;
5839ca08ab68Smrg
5840ca08ab68Smrg    *nto* | *qnx*)
5841ca08ab68Smrg      ;;
5842ca08ab68Smrg
5843953daebaSmrg    openbsd* | bitrig*)
5844ca08ab68Smrg      if test -f /usr/libexec/ld.so; then
5845ca08ab68Smrg	_LT_TAGVAR(hardcode_direct, $1)=yes
5846ca08ab68Smrg	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5847ca08ab68Smrg	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
5848953daebaSmrg	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
5849ca08ab68Smrg	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
5850953daebaSmrg	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
5851953daebaSmrg	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
5852953daebaSmrg	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
5853ca08ab68Smrg	else
5854953daebaSmrg	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
5855953daebaSmrg	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
5856ca08ab68Smrg	fi
5857ca08ab68Smrg      else
5858ca08ab68Smrg	_LT_TAGVAR(ld_shlibs, $1)=no
5859ca08ab68Smrg      fi
5860ca08ab68Smrg      ;;
5861ca08ab68Smrg
5862ca08ab68Smrg    os2*)
5863ca08ab68Smrg      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
5864ca08ab68Smrg      _LT_TAGVAR(hardcode_minus_L, $1)=yes
5865ca08ab68Smrg      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
5866953daebaSmrg      shrext_cmds=.dll
5867953daebaSmrg      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
5868953daebaSmrg	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
5869953daebaSmrg	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
5870953daebaSmrg	$ECHO EXPORTS >> $output_objdir/$libname.def~
5871953daebaSmrg	emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
5872953daebaSmrg	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
5873953daebaSmrg	emximp -o $lib $output_objdir/$libname.def'
5874953daebaSmrg      _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
5875953daebaSmrg	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
5876953daebaSmrg	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
5877953daebaSmrg	$ECHO EXPORTS >> $output_objdir/$libname.def~
5878953daebaSmrg	prefix_cmds="$SED"~
5879953daebaSmrg	if test EXPORTS = "`$SED 1q $export_symbols`"; then
5880953daebaSmrg	  prefix_cmds="$prefix_cmds -e 1d";
5881953daebaSmrg	fi~
5882953daebaSmrg	prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
5883953daebaSmrg	cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
5884953daebaSmrg	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
5885953daebaSmrg	emximp -o $lib $output_objdir/$libname.def'
5886953daebaSmrg      _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
5887953daebaSmrg      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
5888eceda581Smrg      _LT_TAGVAR(file_list_spec, $1)='@'
5889ca08ab68Smrg      ;;
5890ca08ab68Smrg
5891ca08ab68Smrg    osf3*)
5892953daebaSmrg      if test yes = "$GCC"; then
5893953daebaSmrg	_LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
5894953daebaSmrg	_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'
5895ca08ab68Smrg      else
5896ca08ab68Smrg	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
5897953daebaSmrg	_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'
5898ca08ab68Smrg      fi
5899ca08ab68Smrg      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
5900953daebaSmrg      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
5901ca08ab68Smrg      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
5902ca08ab68Smrg      ;;
5903ca08ab68Smrg
5904ca08ab68Smrg    osf4* | osf5*)	# as osf3* with the addition of -msym flag
5905953daebaSmrg      if test yes = "$GCC"; then
5906953daebaSmrg	_LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
5907953daebaSmrg	_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'
5908953daebaSmrg	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
5909ca08ab68Smrg      else
5910ca08ab68Smrg	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
5911953daebaSmrg	_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'
5912ca08ab68Smrg	_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~
5913953daebaSmrg          $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'
5914ca08ab68Smrg
5915ca08ab68Smrg	# Both c and cxx compiler support -rpath directly
5916ca08ab68Smrg	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
5917ca08ab68Smrg      fi
5918ca08ab68Smrg      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
5919ca08ab68Smrg      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
5920ca08ab68Smrg      ;;
5921ca08ab68Smrg
5922ca08ab68Smrg    solaris*)
5923ca08ab68Smrg      _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
5924953daebaSmrg      if test yes = "$GCC"; then
5925953daebaSmrg	wlarc='$wl'
5926953daebaSmrg	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
5927ca08ab68Smrg	_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
5928953daebaSmrg          $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'
5929ca08ab68Smrg      else
5930ca08ab68Smrg	case `$CC -V 2>&1` in
5931ca08ab68Smrg	*"Compilers 5.0"*)
5932ca08ab68Smrg	  wlarc=''
5933953daebaSmrg	  _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
5934ca08ab68Smrg	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
5935953daebaSmrg            $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
5936ca08ab68Smrg	  ;;
5937ca08ab68Smrg	*)
5938953daebaSmrg	  wlarc='$wl'
5939953daebaSmrg	  _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
5940ca08ab68Smrg	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
5941953daebaSmrg            $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
5942ca08ab68Smrg	  ;;
5943ca08ab68Smrg	esac
5944ca08ab68Smrg      fi
5945ca08ab68Smrg      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
5946ca08ab68Smrg      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5947ca08ab68Smrg      case $host_os in
5948ca08ab68Smrg      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
5949ca08ab68Smrg      *)
5950ca08ab68Smrg	# The compiler driver will combine and reorder linker options,
5951953daebaSmrg	# but understands '-z linker_flag'.  GCC discards it without '$wl',
5952ca08ab68Smrg	# but is careful enough not to reorder.
5953ca08ab68Smrg	# Supported since Solaris 2.6 (maybe 2.5.1?)
5954953daebaSmrg	if test yes = "$GCC"; then
5955953daebaSmrg	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
5956ca08ab68Smrg	else
5957ca08ab68Smrg	  _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
5958ca08ab68Smrg	fi
5959ca08ab68Smrg	;;
5960ca08ab68Smrg      esac
5961ca08ab68Smrg      _LT_TAGVAR(link_all_deplibs, $1)=yes
5962ca08ab68Smrg      ;;
5963ca08ab68Smrg
5964ca08ab68Smrg    sunos4*)
5965953daebaSmrg      if test sequent = "$host_vendor"; then
5966ca08ab68Smrg	# Use $CC to link under sequent, because it throws in some extra .o
5967ca08ab68Smrg	# files that make .init and .fini sections work.
5968953daebaSmrg	_LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
5969ca08ab68Smrg      else
5970ca08ab68Smrg	_LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
5971ca08ab68Smrg      fi
5972ca08ab68Smrg      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
5973ca08ab68Smrg      _LT_TAGVAR(hardcode_direct, $1)=yes
5974ca08ab68Smrg      _LT_TAGVAR(hardcode_minus_L, $1)=yes
5975ca08ab68Smrg      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5976ca08ab68Smrg      ;;
5977ca08ab68Smrg
5978ca08ab68Smrg    sysv4)
5979ca08ab68Smrg      case $host_vendor in
5980ca08ab68Smrg	sni)
5981ca08ab68Smrg	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
5982ca08ab68Smrg	  _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
5983ca08ab68Smrg	;;
5984ca08ab68Smrg	siemens)
5985ca08ab68Smrg	  ## LD is ld it makes a PLAMLIB
5986ca08ab68Smrg	  ## CC just makes a GrossModule.
5987ca08ab68Smrg	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
5988ca08ab68Smrg	  _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
5989ca08ab68Smrg	  _LT_TAGVAR(hardcode_direct, $1)=no
5990ca08ab68Smrg        ;;
5991ca08ab68Smrg	motorola)
5992ca08ab68Smrg	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
5993ca08ab68Smrg	  _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
5994ca08ab68Smrg	;;
5995ca08ab68Smrg      esac
5996ca08ab68Smrg      runpath_var='LD_RUN_PATH'
5997ca08ab68Smrg      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5998ca08ab68Smrg      ;;
5999ca08ab68Smrg
6000ca08ab68Smrg    sysv4.3*)
6001ca08ab68Smrg      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
6002ca08ab68Smrg      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
6003ca08ab68Smrg      _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
6004ca08ab68Smrg      ;;
6005ca08ab68Smrg
6006ca08ab68Smrg    sysv4*MP*)
6007ca08ab68Smrg      if test -d /usr/nec; then
6008ca08ab68Smrg	_LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
6009ca08ab68Smrg	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
6010ca08ab68Smrg	runpath_var=LD_RUN_PATH
6011ca08ab68Smrg	hardcode_runpath_var=yes
6012ca08ab68Smrg	_LT_TAGVAR(ld_shlibs, $1)=yes
6013ca08ab68Smrg      fi
6014ca08ab68Smrg      ;;
6015ca08ab68Smrg
6016ca08ab68Smrg    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
6017953daebaSmrg      _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
6018ca08ab68Smrg      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
6019ca08ab68Smrg      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
6020ca08ab68Smrg      runpath_var='LD_RUN_PATH'
6021ca08ab68Smrg
6022953daebaSmrg      if test yes = "$GCC"; then
6023953daebaSmrg	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6024953daebaSmrg	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6025ca08ab68Smrg      else
6026953daebaSmrg	_LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6027953daebaSmrg	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6028ca08ab68Smrg      fi
6029ca08ab68Smrg      ;;
6030ca08ab68Smrg
6031ca08ab68Smrg    sysv5* | sco3.2v5* | sco5v6*)
6032953daebaSmrg      # Note: We CANNOT use -z defs as we might desire, because we do not
6033ca08ab68Smrg      # link with -lc, and that would cause any symbols used from libc to
6034ca08ab68Smrg      # always be unresolved, which means just about no library would
6035ca08ab68Smrg      # ever link correctly.  If we're not using GNU ld we use -z text
6036ca08ab68Smrg      # though, which does catch some bad symbols but isn't as heavy-handed
6037ca08ab68Smrg      # as -z defs.
6038953daebaSmrg      _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
6039953daebaSmrg      _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs'
6040ca08ab68Smrg      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
6041ca08ab68Smrg      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
6042953daebaSmrg      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir'
6043ca08ab68Smrg      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
6044ca08ab68Smrg      _LT_TAGVAR(link_all_deplibs, $1)=yes
6045953daebaSmrg      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport'
6046ca08ab68Smrg      runpath_var='LD_RUN_PATH'
6047ca08ab68Smrg
6048953daebaSmrg      if test yes = "$GCC"; then
6049953daebaSmrg	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6050953daebaSmrg	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6051ca08ab68Smrg      else
6052953daebaSmrg	_LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6053953daebaSmrg	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6054ca08ab68Smrg      fi
6055ca08ab68Smrg      ;;
6056ca08ab68Smrg
6057ca08ab68Smrg    uts4*)
6058ca08ab68Smrg      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
6059ca08ab68Smrg      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
6060ca08ab68Smrg      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
6061ca08ab68Smrg      ;;
6062ca08ab68Smrg
6063ca08ab68Smrg    *)
6064ca08ab68Smrg      _LT_TAGVAR(ld_shlibs, $1)=no
6065ca08ab68Smrg      ;;
6066ca08ab68Smrg    esac
6067ca08ab68Smrg
6068953daebaSmrg    if test sni = "$host_vendor"; then
6069ca08ab68Smrg      case $host in
6070ca08ab68Smrg      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
6071953daebaSmrg	_LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym'
6072ca08ab68Smrg	;;
6073ca08ab68Smrg      esac
6074ca08ab68Smrg    fi
6075ca08ab68Smrg  fi
6076ca08ab68Smrg])
6077ca08ab68SmrgAC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
6078953daebaSmrgtest no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no
6079ca08ab68Smrg
6080ca08ab68Smrg_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
6081ca08ab68Smrg
6082ca08ab68Smrg_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
6083ca08ab68Smrg_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
6084ca08ab68Smrg_LT_DECL([], [extract_expsyms_cmds], [2],
6085ca08ab68Smrg    [The commands to extract the exported symbol list from a shared archive])
6086ca08ab68Smrg
6087ca08ab68Smrg#
6088ca08ab68Smrg# Do we need to explicitly link libc?
6089ca08ab68Smrg#
6090ca08ab68Smrgcase "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
6091ca08ab68Smrgx|xyes)
6092ca08ab68Smrg  # Assume -lc should be added
6093ca08ab68Smrg  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
6094ca08ab68Smrg
6095953daebaSmrg  if test yes,yes = "$GCC,$enable_shared"; then
6096ca08ab68Smrg    case $_LT_TAGVAR(archive_cmds, $1) in
6097ca08ab68Smrg    *'~'*)
6098ca08ab68Smrg      # FIXME: we may have to deal with multi-command sequences.
6099ca08ab68Smrg      ;;
6100ca08ab68Smrg    '$CC '*)
6101ca08ab68Smrg      # Test whether the compiler implicitly links with -lc since on some
6102ca08ab68Smrg      # systems, -lgcc has to come before -lc. If gcc already passes -lc
6103ca08ab68Smrg      # to ld, don't add -lc before -lgcc.
6104ca08ab68Smrg      AC_CACHE_CHECK([whether -lc should be explicitly linked in],
6105ca08ab68Smrg	[lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
6106ca08ab68Smrg	[$RM conftest*
6107ca08ab68Smrg	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
6108ca08ab68Smrg
6109ca08ab68Smrg	if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
6110ca08ab68Smrg	  soname=conftest
6111ca08ab68Smrg	  lib=conftest
6112ca08ab68Smrg	  libobjs=conftest.$ac_objext
6113ca08ab68Smrg	  deplibs=
6114ca08ab68Smrg	  wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
6115ca08ab68Smrg	  pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
6116ca08ab68Smrg	  compiler_flags=-v
6117ca08ab68Smrg	  linker_flags=-v
6118ca08ab68Smrg	  verstring=
6119ca08ab68Smrg	  output_objdir=.
6120ca08ab68Smrg	  libname=conftest
6121ca08ab68Smrg	  lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
6122ca08ab68Smrg	  _LT_TAGVAR(allow_undefined_flag, $1)=
6123ca08ab68Smrg	  if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
6124ca08ab68Smrg	  then
6125ca08ab68Smrg	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
6126ca08ab68Smrg	  else
6127ca08ab68Smrg	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
6128ca08ab68Smrg	  fi
6129ca08ab68Smrg	  _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
6130ca08ab68Smrg	else
6131ca08ab68Smrg	  cat conftest.err 1>&5
6132ca08ab68Smrg	fi
6133ca08ab68Smrg	$RM conftest*
6134ca08ab68Smrg	])
6135ca08ab68Smrg      _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
6136ca08ab68Smrg      ;;
6137ca08ab68Smrg    esac
6138ca08ab68Smrg  fi
6139ca08ab68Smrg  ;;
6140ca08ab68Smrgesac
6141ca08ab68Smrg
6142ca08ab68Smrg_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
6143ca08ab68Smrg    [Whether or not to add -lc for building shared libraries])
6144ca08ab68Smrg_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
6145ca08ab68Smrg    [enable_shared_with_static_runtimes], [0],
6146ca08ab68Smrg    [Whether or not to disallow shared libs when runtime libs are static])
6147ca08ab68Smrg_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
6148ca08ab68Smrg    [Compiler flag to allow reflexive dlopens])
6149ca08ab68Smrg_LT_TAGDECL([], [whole_archive_flag_spec], [1],
6150ca08ab68Smrg    [Compiler flag to generate shared objects directly from archives])
6151ca08ab68Smrg_LT_TAGDECL([], [compiler_needs_object], [1],
6152ca08ab68Smrg    [Whether the compiler copes with passing no objects directly])
6153ca08ab68Smrg_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
6154ca08ab68Smrg    [Create an old-style archive from a shared archive])
6155ca08ab68Smrg_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
6156ca08ab68Smrg    [Create a temporary old-style archive to link instead of a shared archive])
6157ca08ab68Smrg_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
6158ca08ab68Smrg_LT_TAGDECL([], [archive_expsym_cmds], [2])
6159ca08ab68Smrg_LT_TAGDECL([], [module_cmds], [2],
6160ca08ab68Smrg    [Commands used to build a loadable module if different from building
6161ca08ab68Smrg    a shared archive.])
6162ca08ab68Smrg_LT_TAGDECL([], [module_expsym_cmds], [2])
6163ca08ab68Smrg_LT_TAGDECL([], [with_gnu_ld], [1],
6164ca08ab68Smrg    [Whether we are building with GNU ld or not])
6165ca08ab68Smrg_LT_TAGDECL([], [allow_undefined_flag], [1],
6166ca08ab68Smrg    [Flag that allows shared libraries with undefined symbols to be built])
6167ca08ab68Smrg_LT_TAGDECL([], [no_undefined_flag], [1],
6168ca08ab68Smrg    [Flag that enforces no undefined symbols])
6169ca08ab68Smrg_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
6170ca08ab68Smrg    [Flag to hardcode $libdir into a binary during linking.
6171ca08ab68Smrg    This must work even if $libdir does not exist])
6172ca08ab68Smrg_LT_TAGDECL([], [hardcode_libdir_separator], [1],
6173ca08ab68Smrg    [Whether we need a single "-rpath" flag with a separated argument])
6174ca08ab68Smrg_LT_TAGDECL([], [hardcode_direct], [0],
6175953daebaSmrg    [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
6176ca08ab68Smrg    DIR into the resulting binary])
6177ca08ab68Smrg_LT_TAGDECL([], [hardcode_direct_absolute], [0],
6178953daebaSmrg    [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
6179ca08ab68Smrg    DIR into the resulting binary and the resulting library dependency is
6180953daebaSmrg    "absolute", i.e impossible to change by setting $shlibpath_var if the
6181ca08ab68Smrg    library is relocated])
6182ca08ab68Smrg_LT_TAGDECL([], [hardcode_minus_L], [0],
6183ca08ab68Smrg    [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
6184ca08ab68Smrg    into the resulting binary])
6185ca08ab68Smrg_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
6186ca08ab68Smrg    [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
6187ca08ab68Smrg    into the resulting binary])
6188ca08ab68Smrg_LT_TAGDECL([], [hardcode_automatic], [0],
6189ca08ab68Smrg    [Set to "yes" if building a shared library automatically hardcodes DIR
6190ca08ab68Smrg    into the library and all subsequent libraries and executables linked
6191ca08ab68Smrg    against it])
6192ca08ab68Smrg_LT_TAGDECL([], [inherit_rpath], [0],
6193ca08ab68Smrg    [Set to yes if linker adds runtime paths of dependent libraries
6194ca08ab68Smrg    to runtime path list])
6195ca08ab68Smrg_LT_TAGDECL([], [link_all_deplibs], [0],
6196ca08ab68Smrg    [Whether libtool must link a program against all its dependency libraries])
6197ca08ab68Smrg_LT_TAGDECL([], [always_export_symbols], [0],
6198ca08ab68Smrg    [Set to "yes" if exported symbols are required])
6199ca08ab68Smrg_LT_TAGDECL([], [export_symbols_cmds], [2],
6200ca08ab68Smrg    [The commands to list exported symbols])
6201ca08ab68Smrg_LT_TAGDECL([], [exclude_expsyms], [1],
6202ca08ab68Smrg    [Symbols that should not be listed in the preloaded symbols])
6203ca08ab68Smrg_LT_TAGDECL([], [include_expsyms], [1],
6204ca08ab68Smrg    [Symbols that must always be exported])
6205ca08ab68Smrg_LT_TAGDECL([], [prelink_cmds], [2],
6206ca08ab68Smrg    [Commands necessary for linking programs (against libraries) with templates])
6207ca08ab68Smrg_LT_TAGDECL([], [postlink_cmds], [2],
6208ca08ab68Smrg    [Commands necessary for finishing linking programs])
6209ca08ab68Smrg_LT_TAGDECL([], [file_list_spec], [1],
6210ca08ab68Smrg    [Specify filename containing input files])
6211ca08ab68Smrgdnl FIXME: Not yet implemented
6212ca08ab68Smrgdnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
6213ca08ab68Smrgdnl    [Compiler flag to generate thread safe objects])
6214ca08ab68Smrg])# _LT_LINKER_SHLIBS
6215ca08ab68Smrg
6216ca08ab68Smrg
6217ca08ab68Smrg# _LT_LANG_C_CONFIG([TAG])
6218ca08ab68Smrg# ------------------------
6219ca08ab68Smrg# Ensure that the configuration variables for a C compiler are suitably
6220ca08ab68Smrg# defined.  These variables are subsequently used by _LT_CONFIG to write
6221953daebaSmrg# the compiler configuration to 'libtool'.
6222ca08ab68Smrgm4_defun([_LT_LANG_C_CONFIG],
6223ca08ab68Smrg[m4_require([_LT_DECL_EGREP])dnl
6224953daebaSmrglt_save_CC=$CC
6225ca08ab68SmrgAC_LANG_PUSH(C)
6226ca08ab68Smrg
6227ca08ab68Smrg# Source file extension for C test sources.
6228ca08ab68Smrgac_ext=c
6229ca08ab68Smrg
6230ca08ab68Smrg# Object file extension for compiled C test sources.
6231ca08ab68Smrgobjext=o
6232ca08ab68Smrg_LT_TAGVAR(objext, $1)=$objext
6233ca08ab68Smrg
6234ca08ab68Smrg# Code to be used in simple compile tests
6235ca08ab68Smrglt_simple_compile_test_code="int some_variable = 0;"
6236ca08ab68Smrg
6237ca08ab68Smrg# Code to be used in simple link tests
6238ca08ab68Smrglt_simple_link_test_code='int main(){return(0);}'
6239ca08ab68Smrg
6240ca08ab68Smrg_LT_TAG_COMPILER
6241ca08ab68Smrg# Save the default compiler, since it gets overwritten when the other
6242ca08ab68Smrg# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
6243ca08ab68Smrgcompiler_DEFAULT=$CC
6244ca08ab68Smrg
6245ca08ab68Smrg# save warnings/boilerplate of simple test code
6246ca08ab68Smrg_LT_COMPILER_BOILERPLATE
6247ca08ab68Smrg_LT_LINKER_BOILERPLATE
6248ca08ab68Smrg
6249ca08ab68Smrg## CAVEAT EMPTOR:
6250ca08ab68Smrg## There is no encapsulation within the following macros, do not change
6251ca08ab68Smrg## the running order or otherwise move them around unless you know exactly
6252ca08ab68Smrg## what you are doing...
6253ca08ab68Smrgif test -n "$compiler"; then
6254ca08ab68Smrg  _LT_COMPILER_NO_RTTI($1)
6255ca08ab68Smrg  _LT_COMPILER_PIC($1)
6256ca08ab68Smrg  _LT_COMPILER_C_O($1)
6257ca08ab68Smrg  _LT_COMPILER_FILE_LOCKS($1)
6258ca08ab68Smrg  _LT_LINKER_SHLIBS($1)
6259ca08ab68Smrg  _LT_SYS_DYNAMIC_LINKER($1)
6260ca08ab68Smrg  _LT_LINKER_HARDCODE_LIBPATH($1)
6261ca08ab68Smrg  LT_SYS_DLOPEN_SELF
6262ca08ab68Smrg  _LT_CMD_STRIPLIB
6263ca08ab68Smrg
6264953daebaSmrg  # Report what library types will actually be built
6265ca08ab68Smrg  AC_MSG_CHECKING([if libtool supports shared libraries])
6266ca08ab68Smrg  AC_MSG_RESULT([$can_build_shared])
6267ca08ab68Smrg
6268ca08ab68Smrg  AC_MSG_CHECKING([whether to build shared libraries])
6269953daebaSmrg  test no = "$can_build_shared" && enable_shared=no
6270ca08ab68Smrg
6271ca08ab68Smrg  # On AIX, shared libraries and static libraries use the same namespace, and
6272ca08ab68Smrg  # are all built from PIC.
6273ca08ab68Smrg  case $host_os in
6274ca08ab68Smrg  aix3*)
6275953daebaSmrg    test yes = "$enable_shared" && enable_static=no
6276ca08ab68Smrg    if test -n "$RANLIB"; then
6277ca08ab68Smrg      archive_cmds="$archive_cmds~\$RANLIB \$lib"
6278ca08ab68Smrg      postinstall_cmds='$RANLIB $lib'
6279ca08ab68Smrg    fi
6280ca08ab68Smrg    ;;
6281ca08ab68Smrg
6282ca08ab68Smrg  aix[[4-9]]*)
6283953daebaSmrg    if test ia64 != "$host_cpu"; then
6284953daebaSmrg      case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
6285953daebaSmrg      yes,aix,yes) ;;			# shared object as lib.so file only
6286953daebaSmrg      yes,svr4,*) ;;			# shared object as lib.so archive member only
6287953daebaSmrg      yes,*) enable_static=no ;;	# shared object in lib.a archive as well
6288953daebaSmrg      esac
6289ca08ab68Smrg    fi
6290ca08ab68Smrg    ;;
6291ca08ab68Smrg  esac
6292ca08ab68Smrg  AC_MSG_RESULT([$enable_shared])
6293ca08ab68Smrg
6294ca08ab68Smrg  AC_MSG_CHECKING([whether to build static libraries])
6295ca08ab68Smrg  # Make sure either enable_shared or enable_static is yes.
6296953daebaSmrg  test yes = "$enable_shared" || enable_static=yes
6297ca08ab68Smrg  AC_MSG_RESULT([$enable_static])
6298ca08ab68Smrg
6299ca08ab68Smrg  _LT_CONFIG($1)
6300ca08ab68Smrgfi
6301ca08ab68SmrgAC_LANG_POP
6302953daebaSmrgCC=$lt_save_CC
6303ca08ab68Smrg])# _LT_LANG_C_CONFIG
6304ca08ab68Smrg
6305ca08ab68Smrg
6306ca08ab68Smrg# _LT_LANG_CXX_CONFIG([TAG])
6307ca08ab68Smrg# --------------------------
6308ca08ab68Smrg# Ensure that the configuration variables for a C++ compiler are suitably
6309ca08ab68Smrg# defined.  These variables are subsequently used by _LT_CONFIG to write
6310953daebaSmrg# the compiler configuration to 'libtool'.
6311ca08ab68Smrgm4_defun([_LT_LANG_CXX_CONFIG],
6312ca08ab68Smrg[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
6313ca08ab68Smrgm4_require([_LT_DECL_EGREP])dnl
6314ca08ab68Smrgm4_require([_LT_PATH_MANIFEST_TOOL])dnl
6315953daebaSmrgif test -n "$CXX" && ( test no != "$CXX" &&
6316953daebaSmrg    ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) ||
6317953daebaSmrg    (test g++ != "$CXX"))); then
6318ca08ab68Smrg  AC_PROG_CXXCPP
6319ca08ab68Smrgelse
6320ca08ab68Smrg  _lt_caught_CXX_error=yes
6321ca08ab68Smrgfi
6322ca08ab68Smrg
6323ca08ab68SmrgAC_LANG_PUSH(C++)
6324ca08ab68Smrg_LT_TAGVAR(archive_cmds_need_lc, $1)=no
6325ca08ab68Smrg_LT_TAGVAR(allow_undefined_flag, $1)=
6326ca08ab68Smrg_LT_TAGVAR(always_export_symbols, $1)=no
6327ca08ab68Smrg_LT_TAGVAR(archive_expsym_cmds, $1)=
6328ca08ab68Smrg_LT_TAGVAR(compiler_needs_object, $1)=no
6329ca08ab68Smrg_LT_TAGVAR(export_dynamic_flag_spec, $1)=
6330ca08ab68Smrg_LT_TAGVAR(hardcode_direct, $1)=no
6331ca08ab68Smrg_LT_TAGVAR(hardcode_direct_absolute, $1)=no
6332ca08ab68Smrg_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
6333ca08ab68Smrg_LT_TAGVAR(hardcode_libdir_separator, $1)=
6334ca08ab68Smrg_LT_TAGVAR(hardcode_minus_L, $1)=no
6335ca08ab68Smrg_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
6336ca08ab68Smrg_LT_TAGVAR(hardcode_automatic, $1)=no
6337ca08ab68Smrg_LT_TAGVAR(inherit_rpath, $1)=no
6338ca08ab68Smrg_LT_TAGVAR(module_cmds, $1)=
6339ca08ab68Smrg_LT_TAGVAR(module_expsym_cmds, $1)=
6340ca08ab68Smrg_LT_TAGVAR(link_all_deplibs, $1)=unknown
6341ca08ab68Smrg_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
6342ca08ab68Smrg_LT_TAGVAR(reload_flag, $1)=$reload_flag
6343ca08ab68Smrg_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
6344ca08ab68Smrg_LT_TAGVAR(no_undefined_flag, $1)=
6345ca08ab68Smrg_LT_TAGVAR(whole_archive_flag_spec, $1)=
6346ca08ab68Smrg_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
6347ca08ab68Smrg
6348ca08ab68Smrg# Source file extension for C++ test sources.
6349ca08ab68Smrgac_ext=cpp
6350ca08ab68Smrg
6351ca08ab68Smrg# Object file extension for compiled C++ test sources.
6352ca08ab68Smrgobjext=o
6353ca08ab68Smrg_LT_TAGVAR(objext, $1)=$objext
6354ca08ab68Smrg
6355ca08ab68Smrg# No sense in running all these tests if we already determined that
6356ca08ab68Smrg# the CXX compiler isn't working.  Some variables (like enable_shared)
6357ca08ab68Smrg# are currently assumed to apply to all compilers on this platform,
6358ca08ab68Smrg# and will be corrupted by setting them based on a non-working compiler.
6359953daebaSmrgif test yes != "$_lt_caught_CXX_error"; then
6360ca08ab68Smrg  # Code to be used in simple compile tests
6361ca08ab68Smrg  lt_simple_compile_test_code="int some_variable = 0;"
6362ca08ab68Smrg
6363ca08ab68Smrg  # Code to be used in simple link tests
6364ca08ab68Smrg  lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
6365ca08ab68Smrg
6366ca08ab68Smrg  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
6367ca08ab68Smrg  _LT_TAG_COMPILER
6368ca08ab68Smrg
6369ca08ab68Smrg  # save warnings/boilerplate of simple test code
6370ca08ab68Smrg  _LT_COMPILER_BOILERPLATE
6371ca08ab68Smrg  _LT_LINKER_BOILERPLATE
6372ca08ab68Smrg
6373ca08ab68Smrg  # Allow CC to be a program name with arguments.
6374ca08ab68Smrg  lt_save_CC=$CC
6375ca08ab68Smrg  lt_save_CFLAGS=$CFLAGS
6376ca08ab68Smrg  lt_save_LD=$LD
6377ca08ab68Smrg  lt_save_GCC=$GCC
6378ca08ab68Smrg  GCC=$GXX
6379ca08ab68Smrg  lt_save_with_gnu_ld=$with_gnu_ld
6380ca08ab68Smrg  lt_save_path_LD=$lt_cv_path_LD
6381ca08ab68Smrg  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
6382ca08ab68Smrg    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
6383ca08ab68Smrg  else
6384ca08ab68Smrg    $as_unset lt_cv_prog_gnu_ld
6385ca08ab68Smrg  fi
6386ca08ab68Smrg  if test -n "${lt_cv_path_LDCXX+set}"; then
6387ca08ab68Smrg    lt_cv_path_LD=$lt_cv_path_LDCXX
6388ca08ab68Smrg  else
6389ca08ab68Smrg    $as_unset lt_cv_path_LD
6390ca08ab68Smrg  fi
6391ca08ab68Smrg  test -z "${LDCXX+set}" || LD=$LDCXX
6392ca08ab68Smrg  CC=${CXX-"c++"}
6393ca08ab68Smrg  CFLAGS=$CXXFLAGS
6394ca08ab68Smrg  compiler=$CC
6395ca08ab68Smrg  _LT_TAGVAR(compiler, $1)=$CC
6396ca08ab68Smrg  _LT_CC_BASENAME([$compiler])
6397ca08ab68Smrg
6398ca08ab68Smrg  if test -n "$compiler"; then
6399ca08ab68Smrg    # We don't want -fno-exception when compiling C++ code, so set the
6400ca08ab68Smrg    # no_builtin_flag separately
6401953daebaSmrg    if test yes = "$GXX"; then
6402ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
6403ca08ab68Smrg    else
6404ca08ab68Smrg      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
6405ca08ab68Smrg    fi
6406ca08ab68Smrg
6407953daebaSmrg    if test yes = "$GXX"; then
6408ca08ab68Smrg      # Set up default GNU C++ configuration
6409ca08ab68Smrg
6410ca08ab68Smrg      LT_PATH_LD
6411ca08ab68Smrg
6412ca08ab68Smrg      # Check if GNU C++ uses GNU ld as the underlying linker, since the
6413ca08ab68Smrg      # archiving commands below assume that GNU ld is being used.
6414953daebaSmrg      if test yes = "$with_gnu_ld"; then
6415953daebaSmrg        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
6416953daebaSmrg        _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'
6417ca08ab68Smrg
6418953daebaSmrg        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
6419953daebaSmrg        _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
6420ca08ab68Smrg
6421ca08ab68Smrg        # If archive_cmds runs LD, not CC, wlarc should be empty
6422ca08ab68Smrg        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
6423ca08ab68Smrg        #     investigate it a little bit more. (MM)
6424953daebaSmrg        wlarc='$wl'
6425ca08ab68Smrg
6426ca08ab68Smrg        # ancient GNU ld didn't support --whole-archive et. al.
6427ca08ab68Smrg        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
6428ca08ab68Smrg	  $GREP 'no-whole-archive' > /dev/null; then
6429953daebaSmrg          _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
6430ca08ab68Smrg        else
6431ca08ab68Smrg          _LT_TAGVAR(whole_archive_flag_spec, $1)=
6432ca08ab68Smrg        fi
6433ca08ab68Smrg      else
6434ca08ab68Smrg        with_gnu_ld=no
6435ca08ab68Smrg        wlarc=
6436ca08ab68Smrg
6437ca08ab68Smrg        # A generic and very simple default shared library creation
6438ca08ab68Smrg        # command for GNU C++ for the case where it uses the native
6439ca08ab68Smrg        # linker, instead of GNU ld.  If possible, this setting should
6440ca08ab68Smrg        # overridden to take advantage of the native linker features on
6441ca08ab68Smrg        # the platform it is being used on.
6442ca08ab68Smrg        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
6443ca08ab68Smrg      fi
6444ca08ab68Smrg
6445ca08ab68Smrg      # Commands to make compiler produce verbose output that lists
6446ca08ab68Smrg      # what "hidden" libraries, object files and flags are used when
6447ca08ab68Smrg      # linking a shared library.
6448ca08ab68Smrg      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
6449ca08ab68Smrg
6450ca08ab68Smrg    else
6451ca08ab68Smrg      GXX=no
6452ca08ab68Smrg      with_gnu_ld=no
6453ca08ab68Smrg      wlarc=
6454ca08ab68Smrg    fi
6455ca08ab68Smrg
6456ca08ab68Smrg    # PORTME: fill in a description of your system's C++ link characteristics
6457ca08ab68Smrg    AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
6458ca08ab68Smrg    _LT_TAGVAR(ld_shlibs, $1)=yes
6459ca08ab68Smrg    case $host_os in
6460ca08ab68Smrg      aix3*)
6461ca08ab68Smrg        # FIXME: insert proper C++ library support
6462ca08ab68Smrg        _LT_TAGVAR(ld_shlibs, $1)=no
6463ca08ab68Smrg        ;;
6464ca08ab68Smrg      aix[[4-9]]*)
6465953daebaSmrg        if test ia64 = "$host_cpu"; then
6466ca08ab68Smrg          # On IA64, the linker does run time linking by default, so we don't
6467ca08ab68Smrg          # have to do anything special.
6468ca08ab68Smrg          aix_use_runtimelinking=no
6469ca08ab68Smrg          exp_sym_flag='-Bexport'
6470953daebaSmrg          no_entry_flag=
6471ca08ab68Smrg        else
6472ca08ab68Smrg          aix_use_runtimelinking=no
6473ca08ab68Smrg
6474ca08ab68Smrg          # Test if we are trying to use run time linking or normal
6475ca08ab68Smrg          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
6476953daebaSmrg          # have runtime linking enabled, and use it for executables.
6477953daebaSmrg          # For shared libraries, we enable/disable runtime linking
6478953daebaSmrg          # depending on the kind of the shared library created -
6479953daebaSmrg          # when "with_aix_soname,aix_use_runtimelinking" is:
6480953daebaSmrg          # "aix,no"   lib.a(lib.so.V) shared, rtl:no,  for executables
6481953daebaSmrg          # "aix,yes"  lib.so          shared, rtl:yes, for executables
6482953daebaSmrg          #            lib.a           static archive
6483953daebaSmrg          # "both,no"  lib.so.V(shr.o) shared, rtl:yes
6484953daebaSmrg          #            lib.a(lib.so.V) shared, rtl:no,  for executables
6485953daebaSmrg          # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
6486953daebaSmrg          #            lib.a(lib.so.V) shared, rtl:no
6487953daebaSmrg          # "svr4,*"   lib.so.V(shr.o) shared, rtl:yes, for executables
6488953daebaSmrg          #            lib.a           static archive
6489ca08ab68Smrg          case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
6490ca08ab68Smrg	    for ld_flag in $LDFLAGS; do
6491ca08ab68Smrg	      case $ld_flag in
6492ca08ab68Smrg	      *-brtl*)
6493ca08ab68Smrg	        aix_use_runtimelinking=yes
6494ca08ab68Smrg	        break
6495ca08ab68Smrg	        ;;
6496ca08ab68Smrg	      esac
6497ca08ab68Smrg	    done
6498953daebaSmrg	    if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
6499953daebaSmrg	      # With aix-soname=svr4, we create the lib.so.V shared archives only,
6500953daebaSmrg	      # so we don't have lib.a shared libs to link our executables.
6501953daebaSmrg	      # We have to force runtime linking in this case.
6502953daebaSmrg	      aix_use_runtimelinking=yes
6503953daebaSmrg	      LDFLAGS="$LDFLAGS -Wl,-brtl"
6504953daebaSmrg	    fi
6505ca08ab68Smrg	    ;;
6506ca08ab68Smrg          esac
6507ca08ab68Smrg
6508ca08ab68Smrg          exp_sym_flag='-bexport'
6509ca08ab68Smrg          no_entry_flag='-bnoentry'
6510ca08ab68Smrg        fi
6511ca08ab68Smrg
6512ca08ab68Smrg        # When large executables or shared objects are built, AIX ld can
6513ca08ab68Smrg        # have problems creating the table of contents.  If linking a library
6514ca08ab68Smrg        # or program results in "error TOC overflow" add -mminimal-toc to
6515ca08ab68Smrg        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
6516ca08ab68Smrg        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
6517ca08ab68Smrg
6518ca08ab68Smrg        _LT_TAGVAR(archive_cmds, $1)=''
6519ca08ab68Smrg        _LT_TAGVAR(hardcode_direct, $1)=yes
6520ca08ab68Smrg        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
6521ca08ab68Smrg        _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
6522ca08ab68Smrg        _LT_TAGVAR(link_all_deplibs, $1)=yes
6523953daebaSmrg        _LT_TAGVAR(file_list_spec, $1)='$wl-f,'
6524953daebaSmrg        case $with_aix_soname,$aix_use_runtimelinking in
6525953daebaSmrg        aix,*) ;;	# no import file
6526953daebaSmrg        svr4,* | *,yes) # use import file
6527953daebaSmrg          # The Import File defines what to hardcode.
6528953daebaSmrg          _LT_TAGVAR(hardcode_direct, $1)=no
6529953daebaSmrg          _LT_TAGVAR(hardcode_direct_absolute, $1)=no
6530953daebaSmrg          ;;
6531953daebaSmrg        esac
6532ca08ab68Smrg
6533953daebaSmrg        if test yes = "$GXX"; then
6534ca08ab68Smrg          case $host_os in aix4.[[012]]|aix4.[[012]].*)
6535ca08ab68Smrg          # We only want to do this on AIX 4.2 and lower, the check
6536ca08ab68Smrg          # below for broken collect2 doesn't work under 4.3+
6537953daebaSmrg	  collect2name=`$CC -print-prog-name=collect2`
6538ca08ab68Smrg	  if test -f "$collect2name" &&
6539ca08ab68Smrg	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
6540ca08ab68Smrg	  then
6541ca08ab68Smrg	    # We have reworked collect2
6542ca08ab68Smrg	    :
6543ca08ab68Smrg	  else
6544ca08ab68Smrg	    # We have old collect2
6545ca08ab68Smrg	    _LT_TAGVAR(hardcode_direct, $1)=unsupported
6546ca08ab68Smrg	    # It fails to find uninstalled libraries when the uninstalled
6547ca08ab68Smrg	    # path is not listed in the libpath.  Setting hardcode_minus_L
6548ca08ab68Smrg	    # to unsupported forces relinking
6549ca08ab68Smrg	    _LT_TAGVAR(hardcode_minus_L, $1)=yes
6550ca08ab68Smrg	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
6551ca08ab68Smrg	    _LT_TAGVAR(hardcode_libdir_separator, $1)=
6552ca08ab68Smrg	  fi
6553ca08ab68Smrg          esac
6554ca08ab68Smrg          shared_flag='-shared'
6555953daebaSmrg	  if test yes = "$aix_use_runtimelinking"; then
6556953daebaSmrg	    shared_flag=$shared_flag' $wl-G'
6557ca08ab68Smrg	  fi
6558953daebaSmrg	  # Need to ensure runtime linking is disabled for the traditional
6559953daebaSmrg	  # shared library, or the linker may eventually find shared libraries
6560953daebaSmrg	  # /with/ Import File - we do not want to mix them.
6561953daebaSmrg	  shared_flag_aix='-shared'
6562953daebaSmrg	  shared_flag_svr4='-shared $wl-G'
6563ca08ab68Smrg        else
6564ca08ab68Smrg          # not using gcc
6565953daebaSmrg          if test ia64 = "$host_cpu"; then
6566ca08ab68Smrg	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
6567ca08ab68Smrg	  # chokes on -Wl,-G. The following line is correct:
6568ca08ab68Smrg	  shared_flag='-G'
6569ca08ab68Smrg          else
6570953daebaSmrg	    if test yes = "$aix_use_runtimelinking"; then
6571953daebaSmrg	      shared_flag='$wl-G'
6572ca08ab68Smrg	    else
6573953daebaSmrg	      shared_flag='$wl-bM:SRE'
6574ca08ab68Smrg	    fi
6575953daebaSmrg	    shared_flag_aix='$wl-bM:SRE'
6576953daebaSmrg	    shared_flag_svr4='$wl-G'
6577ca08ab68Smrg          fi
6578ca08ab68Smrg        fi
6579ca08ab68Smrg
6580953daebaSmrg        _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall'
6581ca08ab68Smrg        # It seems that -bexpall does not export symbols beginning with
6582ca08ab68Smrg        # underscore (_), so it is better to generate a list of symbols to
6583ca08ab68Smrg	# export.
6584ca08ab68Smrg        _LT_TAGVAR(always_export_symbols, $1)=yes
6585953daebaSmrg	if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
6586ca08ab68Smrg          # Warning - without using the other runtime loading flags (-brtl),
6587ca08ab68Smrg          # -berok will link without error, but may produce a broken library.
6588953daebaSmrg          # The "-G" linker flag allows undefined symbols.
6589953daebaSmrg          _LT_TAGVAR(no_undefined_flag, $1)='-bernotok'
6590ca08ab68Smrg          # Determine the default libpath from the value encoded in an empty
6591ca08ab68Smrg          # executable.
6592ca08ab68Smrg          _LT_SYS_MODULE_PATH_AIX([$1])
6593953daebaSmrg          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
6594ca08ab68Smrg
6595953daebaSmrg          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
6596ca08ab68Smrg        else
6597953daebaSmrg          if test ia64 = "$host_cpu"; then
6598953daebaSmrg	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib'
6599ca08ab68Smrg	    _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
6600953daebaSmrg	    _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"
6601ca08ab68Smrg          else
6602ca08ab68Smrg	    # Determine the default libpath from the value encoded in an
6603ca08ab68Smrg	    # empty executable.
6604ca08ab68Smrg	    _LT_SYS_MODULE_PATH_AIX([$1])
6605953daebaSmrg	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
6606ca08ab68Smrg	    # Warning - without using the other run time loading flags,
6607ca08ab68Smrg	    # -berok will link without error, but may produce a broken library.
6608953daebaSmrg	    _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok'
6609953daebaSmrg	    _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok'
6610953daebaSmrg	    if test yes = "$with_gnu_ld"; then
6611ca08ab68Smrg	      # We only use this code for GNU lds that support --whole-archive.
6612953daebaSmrg	      _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
6613ca08ab68Smrg	    else
6614ca08ab68Smrg	      # Exported symbols can be pulled into shared objects from archives
6615ca08ab68Smrg	      _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
6616ca08ab68Smrg	    fi
6617ca08ab68Smrg	    _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
6618953daebaSmrg	    _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
6619953daebaSmrg	    # -brtl affects multiple linker settings, -berok does not and is overridden later
6620953daebaSmrg	    compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
6621953daebaSmrg	    if test svr4 != "$with_aix_soname"; then
6622953daebaSmrg	      # This is similar to how AIX traditionally builds its shared
6623953daebaSmrg	      # libraries. Need -bnortl late, we may have -brtl in LDFLAGS.
6624953daebaSmrg	      _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
6625953daebaSmrg	    fi
6626953daebaSmrg	    if test aix != "$with_aix_soname"; then
6627953daebaSmrg	      _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
6628953daebaSmrg	    else
6629953daebaSmrg	      # used by -dlpreopen to get the symbols
6630953daebaSmrg	      _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV  $output_objdir/$realname.d/$soname $output_objdir'
6631953daebaSmrg	    fi
6632953daebaSmrg	    _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
6633ca08ab68Smrg          fi
6634ca08ab68Smrg        fi
6635ca08ab68Smrg        ;;
6636ca08ab68Smrg
6637ca08ab68Smrg      beos*)
6638ca08ab68Smrg	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
6639ca08ab68Smrg	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
6640ca08ab68Smrg	  # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
6641ca08ab68Smrg	  # support --undefined.  This deserves some investigation.  FIXME
6642953daebaSmrg	  _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
6643ca08ab68Smrg	else
6644ca08ab68Smrg	  _LT_TAGVAR(ld_shlibs, $1)=no
6645ca08ab68Smrg	fi
6646ca08ab68Smrg	;;
6647ca08ab68Smrg
6648ca08ab68Smrg      chorus*)
6649ca08ab68Smrg        case $cc_basename in
6650ca08ab68Smrg          *)
6651ca08ab68Smrg	  # FIXME: insert proper C++ library support
6652ca08ab68Smrg	  _LT_TAGVAR(ld_shlibs, $1)=no
6653ca08ab68Smrg	  ;;
6654ca08ab68Smrg        esac
6655ca08ab68Smrg        ;;
6656ca08ab68Smrg
6657ca08ab68Smrg      cygwin* | mingw* | pw32* | cegcc*)
6658ca08ab68Smrg	case $GXX,$cc_basename in
6659eceda581Smrg	,cl* | no,cl* | ,icl* | no,icl*)
6660eceda581Smrg	  # Native MSVC or ICC
6661ca08ab68Smrg	  # hardcode_libdir_flag_spec is actually meaningless, as there is
6662ca08ab68Smrg	  # no search path for DLLs.
6663ca08ab68Smrg	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
6664ca08ab68Smrg	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
6665ca08ab68Smrg	  _LT_TAGVAR(always_export_symbols, $1)=yes
6666ca08ab68Smrg	  _LT_TAGVAR(file_list_spec, $1)='@'
6667ca08ab68Smrg	  # Tell ltmain to make .lib files, not .a files.
6668ca08ab68Smrg	  libext=lib
6669ca08ab68Smrg	  # Tell ltmain to make .dll files, not .so files.
6670953daebaSmrg	  shrext_cmds=.dll
6671ca08ab68Smrg	  # FIXME: Setting linknames here is a bad hack.
6672953daebaSmrg	  _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
6673953daebaSmrg	  _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
6674953daebaSmrg              cp "$export_symbols" "$output_objdir/$soname.def";
6675953daebaSmrg              echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
6676953daebaSmrg            else
6677953daebaSmrg              $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
6678953daebaSmrg            fi~
6679953daebaSmrg            $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
6680953daebaSmrg            linknames='
6681ca08ab68Smrg	  # The linker will not automatically build a static lib if we build a DLL.
6682ca08ab68Smrg	  # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
6683ca08ab68Smrg	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
6684ca08ab68Smrg	  # Don't use ranlib
6685ca08ab68Smrg	  _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
6686ca08ab68Smrg	  _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
6687953daebaSmrg            lt_tool_outputfile="@TOOL_OUTPUT@"~
6688953daebaSmrg            case $lt_outputfile in
6689953daebaSmrg              *.exe|*.EXE) ;;
6690953daebaSmrg              *)
6691953daebaSmrg                lt_outputfile=$lt_outputfile.exe
6692953daebaSmrg                lt_tool_outputfile=$lt_tool_outputfile.exe
6693953daebaSmrg                ;;
6694953daebaSmrg            esac~
6695953daebaSmrg            func_to_tool_file "$lt_outputfile"~
6696953daebaSmrg            if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
6697953daebaSmrg              $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
6698953daebaSmrg              $RM "$lt_outputfile.manifest";
6699953daebaSmrg            fi'
6700ca08ab68Smrg	  ;;
6701ca08ab68Smrg	*)
6702ca08ab68Smrg	  # g++
6703ca08ab68Smrg	  # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
6704ca08ab68Smrg	  # as there is no search path for DLLs.
6705ca08ab68Smrg	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
6706953daebaSmrg	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols'
6707ca08ab68Smrg	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
6708ca08ab68Smrg	  _LT_TAGVAR(always_export_symbols, $1)=no
6709ca08ab68Smrg	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
6710ca08ab68Smrg
6711ca08ab68Smrg	  if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
6712953daebaSmrg	    _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'
6713953daebaSmrg	    # If the export-symbols file already is a .def file, use it as
6714953daebaSmrg	    # is; otherwise, prepend EXPORTS...
6715953daebaSmrg	    _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
6716953daebaSmrg              cp $export_symbols $output_objdir/$soname.def;
6717953daebaSmrg            else
6718953daebaSmrg              echo EXPORTS > $output_objdir/$soname.def;
6719953daebaSmrg              cat $export_symbols >> $output_objdir/$soname.def;
6720953daebaSmrg            fi~
6721953daebaSmrg            $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'
6722ca08ab68Smrg	  else
6723ca08ab68Smrg	    _LT_TAGVAR(ld_shlibs, $1)=no
6724ca08ab68Smrg	  fi
6725ca08ab68Smrg	  ;;
6726ca08ab68Smrg	esac
6727ca08ab68Smrg	;;
6728ca08ab68Smrg      darwin* | rhapsody*)
6729ca08ab68Smrg        _LT_DARWIN_LINKER_FEATURES($1)
6730ca08ab68Smrg	;;
6731ca08ab68Smrg
6732953daebaSmrg      os2*)
6733953daebaSmrg	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
6734953daebaSmrg	_LT_TAGVAR(hardcode_minus_L, $1)=yes
6735953daebaSmrg	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
6736953daebaSmrg	shrext_cmds=.dll
6737953daebaSmrg	_LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
6738953daebaSmrg	  $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
6739953daebaSmrg	  $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
6740953daebaSmrg	  $ECHO EXPORTS >> $output_objdir/$libname.def~
6741953daebaSmrg	  emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
6742953daebaSmrg	  $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
6743953daebaSmrg	  emximp -o $lib $output_objdir/$libname.def'
6744953daebaSmrg	_LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
6745953daebaSmrg	  $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
6746953daebaSmrg	  $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
6747953daebaSmrg	  $ECHO EXPORTS >> $output_objdir/$libname.def~
6748953daebaSmrg	  prefix_cmds="$SED"~
6749953daebaSmrg	  if test EXPORTS = "`$SED 1q $export_symbols`"; then
6750953daebaSmrg	    prefix_cmds="$prefix_cmds -e 1d";
6751953daebaSmrg	  fi~
6752953daebaSmrg	  prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
6753953daebaSmrg	  cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
6754953daebaSmrg	  $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
6755953daebaSmrg	  emximp -o $lib $output_objdir/$libname.def'
6756953daebaSmrg	_LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
6757953daebaSmrg	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
6758eceda581Smrg	_LT_TAGVAR(file_list_spec, $1)='@'
6759953daebaSmrg	;;
6760953daebaSmrg
6761ca08ab68Smrg      dgux*)
6762ca08ab68Smrg        case $cc_basename in
6763ca08ab68Smrg          ec++*)
6764ca08ab68Smrg	    # FIXME: insert proper C++ library support
6765ca08ab68Smrg	    _LT_TAGVAR(ld_shlibs, $1)=no
6766ca08ab68Smrg	    ;;
6767ca08ab68Smrg          ghcx*)
6768ca08ab68Smrg	    # Green Hills C++ Compiler
6769ca08ab68Smrg	    # FIXME: insert proper C++ library support
6770ca08ab68Smrg	    _LT_TAGVAR(ld_shlibs, $1)=no
6771ca08ab68Smrg	    ;;
6772ca08ab68Smrg          *)
6773ca08ab68Smrg	    # FIXME: insert proper C++ library support
6774ca08ab68Smrg	    _LT_TAGVAR(ld_shlibs, $1)=no
6775ca08ab68Smrg	    ;;
6776ca08ab68Smrg        esac
6777ca08ab68Smrg        ;;
6778ca08ab68Smrg
6779ca08ab68Smrg      freebsd2.*)
6780ca08ab68Smrg        # C++ shared libraries reported to be fairly broken before
6781ca08ab68Smrg	# switch to ELF
6782ca08ab68Smrg        _LT_TAGVAR(ld_shlibs, $1)=no
6783ca08ab68Smrg        ;;
6784ca08ab68Smrg
6785ca08ab68Smrg      freebsd-elf*)
6786ca08ab68Smrg        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
6787ca08ab68Smrg        ;;
6788ca08ab68Smrg
6789eceda581Smrg      freebsd* | dragonfly* | midnightbsd*)
6790ca08ab68Smrg        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
6791ca08ab68Smrg        # conventions
6792ca08ab68Smrg        _LT_TAGVAR(ld_shlibs, $1)=yes
6793ca08ab68Smrg        ;;
6794ca08ab68Smrg
6795ca08ab68Smrg      haiku*)
6796953daebaSmrg        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
6797ca08ab68Smrg        _LT_TAGVAR(link_all_deplibs, $1)=yes
6798ca08ab68Smrg        ;;
6799ca08ab68Smrg
6800ca08ab68Smrg      hpux9*)
6801953daebaSmrg        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
6802ca08ab68Smrg        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
6803953daebaSmrg        _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
6804ca08ab68Smrg        _LT_TAGVAR(hardcode_direct, $1)=yes
6805ca08ab68Smrg        _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
6806ca08ab68Smrg				             # but as the default
6807ca08ab68Smrg				             # location of the library.
6808ca08ab68Smrg
6809ca08ab68Smrg        case $cc_basename in
6810ca08ab68Smrg          CC*)
6811ca08ab68Smrg            # FIXME: insert proper C++ library support
6812ca08ab68Smrg            _LT_TAGVAR(ld_shlibs, $1)=no
6813ca08ab68Smrg            ;;
6814ca08ab68Smrg          aCC*)
6815953daebaSmrg            _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 "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
6816ca08ab68Smrg            # Commands to make compiler produce verbose output that lists
6817ca08ab68Smrg            # what "hidden" libraries, object files and flags are used when
6818ca08ab68Smrg            # linking a shared library.
6819ca08ab68Smrg            #
6820ca08ab68Smrg            # There doesn't appear to be a way to prevent this compiler from
6821ca08ab68Smrg            # explicitly linking system object files so we need to strip them
6822ca08ab68Smrg            # from the output so that they don't get included in the library
6823ca08ab68Smrg            # dependencies.
6824953daebaSmrg            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"'
6825ca08ab68Smrg            ;;
6826ca08ab68Smrg          *)
6827953daebaSmrg            if test yes = "$GXX"; then
6828953daebaSmrg              _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 "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
6829ca08ab68Smrg            else
6830ca08ab68Smrg              # FIXME: insert proper C++ library support
6831ca08ab68Smrg              _LT_TAGVAR(ld_shlibs, $1)=no
6832ca08ab68Smrg            fi
6833ca08ab68Smrg            ;;
6834ca08ab68Smrg        esac
6835ca08ab68Smrg        ;;
6836ca08ab68Smrg
6837ca08ab68Smrg      hpux10*|hpux11*)
6838953daebaSmrg        if test no = "$with_gnu_ld"; then
6839953daebaSmrg	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
6840ca08ab68Smrg	  _LT_TAGVAR(hardcode_libdir_separator, $1)=:
6841ca08ab68Smrg
6842ca08ab68Smrg          case $host_cpu in
6843ca08ab68Smrg            hppa*64*|ia64*)
6844ca08ab68Smrg              ;;
6845ca08ab68Smrg            *)
6846953daebaSmrg	      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
6847ca08ab68Smrg              ;;
6848ca08ab68Smrg          esac
6849ca08ab68Smrg        fi
6850ca08ab68Smrg        case $host_cpu in
6851ca08ab68Smrg          hppa*64*|ia64*)
6852ca08ab68Smrg            _LT_TAGVAR(hardcode_direct, $1)=no
6853ca08ab68Smrg            _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
6854ca08ab68Smrg            ;;
6855ca08ab68Smrg          *)
6856ca08ab68Smrg            _LT_TAGVAR(hardcode_direct, $1)=yes
6857ca08ab68Smrg            _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
6858ca08ab68Smrg            _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
6859ca08ab68Smrg					         # but as the default
6860ca08ab68Smrg					         # location of the library.
6861ca08ab68Smrg            ;;
6862ca08ab68Smrg        esac
6863ca08ab68Smrg
6864ca08ab68Smrg        case $cc_basename in
6865ca08ab68Smrg          CC*)
6866ca08ab68Smrg	    # FIXME: insert proper C++ library support
6867ca08ab68Smrg	    _LT_TAGVAR(ld_shlibs, $1)=no
6868ca08ab68Smrg	    ;;
6869ca08ab68Smrg          aCC*)
6870ca08ab68Smrg	    case $host_cpu in
6871ca08ab68Smrg	      hppa*64*)
6872953daebaSmrg	        _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
6873ca08ab68Smrg	        ;;
6874ca08ab68Smrg	      ia64*)
6875953daebaSmrg	        _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
6876ca08ab68Smrg	        ;;
6877ca08ab68Smrg	      *)
6878953daebaSmrg	        _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'
6879ca08ab68Smrg	        ;;
6880ca08ab68Smrg	    esac
6881ca08ab68Smrg	    # Commands to make compiler produce verbose output that lists
6882ca08ab68Smrg	    # what "hidden" libraries, object files and flags are used when
6883ca08ab68Smrg	    # linking a shared library.
6884ca08ab68Smrg	    #
6885ca08ab68Smrg	    # There doesn't appear to be a way to prevent this compiler from
6886ca08ab68Smrg	    # explicitly linking system object files so we need to strip them
6887ca08ab68Smrg	    # from the output so that they don't get included in the library
6888ca08ab68Smrg	    # dependencies.
6889953daebaSmrg	    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"'
6890ca08ab68Smrg	    ;;
6891ca08ab68Smrg          *)
6892953daebaSmrg	    if test yes = "$GXX"; then
6893953daebaSmrg	      if test no = "$with_gnu_ld"; then
6894ca08ab68Smrg	        case $host_cpu in
6895ca08ab68Smrg	          hppa*64*)
6896953daebaSmrg	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
6897ca08ab68Smrg	            ;;
6898ca08ab68Smrg	          ia64*)
6899953daebaSmrg	            _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'
6900ca08ab68Smrg	            ;;
6901ca08ab68Smrg	          *)
6902953daebaSmrg	            _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'
6903ca08ab68Smrg	            ;;
6904ca08ab68Smrg	        esac
6905ca08ab68Smrg	      fi
6906ca08ab68Smrg	    else
6907ca08ab68Smrg	      # FIXME: insert proper C++ library support
6908ca08ab68Smrg	      _LT_TAGVAR(ld_shlibs, $1)=no
6909ca08ab68Smrg	    fi
6910ca08ab68Smrg	    ;;
6911ca08ab68Smrg        esac
6912ca08ab68Smrg        ;;
6913ca08ab68Smrg
6914ca08ab68Smrg      interix[[3-9]]*)
6915ca08ab68Smrg	_LT_TAGVAR(hardcode_direct, $1)=no
6916ca08ab68Smrg	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
6917953daebaSmrg	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
6918953daebaSmrg	_LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
6919ca08ab68Smrg	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
6920ca08ab68Smrg	# Instead, shared libraries are loaded at an image base (0x10000000 by
6921ca08ab68Smrg	# default) and relocated if they conflict, which is a slow very memory
6922ca08ab68Smrg	# consuming and fragmenting process.  To avoid this, we pick a random,
6923ca08ab68Smrg	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
6924ca08ab68Smrg	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
6925953daebaSmrg	_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'
6926eceda581Smrg	_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'
6927ca08ab68Smrg	;;
6928ca08ab68Smrg      irix5* | irix6*)
6929ca08ab68Smrg        case $cc_basename in
6930ca08ab68Smrg          CC*)
6931ca08ab68Smrg	    # SGI C++
6932953daebaSmrg	    _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'
6933ca08ab68Smrg
6934ca08ab68Smrg	    # Archives containing C++ object files must be created using
6935ca08ab68Smrg	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
6936ca08ab68Smrg	    # necessary to make sure instantiated templates are included
6937ca08ab68Smrg	    # in the archive.
6938ca08ab68Smrg	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
6939ca08ab68Smrg	    ;;
6940ca08ab68Smrg          *)
6941953daebaSmrg	    if test yes = "$GXX"; then
6942953daebaSmrg	      if test no = "$with_gnu_ld"; then
6943953daebaSmrg	        _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'
6944ca08ab68Smrg	      else
6945953daebaSmrg	        _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'
6946ca08ab68Smrg	      fi
6947ca08ab68Smrg	    fi
6948ca08ab68Smrg	    _LT_TAGVAR(link_all_deplibs, $1)=yes
6949ca08ab68Smrg	    ;;
6950ca08ab68Smrg        esac
6951953daebaSmrg        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
6952ca08ab68Smrg        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
6953ca08ab68Smrg        _LT_TAGVAR(inherit_rpath, $1)=yes
6954ca08ab68Smrg        ;;
6955ca08ab68Smrg
6956953daebaSmrg      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
6957ca08ab68Smrg        case $cc_basename in
6958ca08ab68Smrg          KCC*)
6959ca08ab68Smrg	    # Kuck and Associates, Inc. (KAI) C++ Compiler
6960ca08ab68Smrg
6961ca08ab68Smrg	    # KCC will only create a shared library if the output file
6962ca08ab68Smrg	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
6963ca08ab68Smrg	    # to its proper name (with version) after linking.
6964953daebaSmrg	    _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'
6965953daebaSmrg	    _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'
6966ca08ab68Smrg	    # Commands to make compiler produce verbose output that lists
6967ca08ab68Smrg	    # what "hidden" libraries, object files and flags are used when
6968ca08ab68Smrg	    # linking a shared library.
6969ca08ab68Smrg	    #
6970ca08ab68Smrg	    # There doesn't appear to be a way to prevent this compiler from
6971ca08ab68Smrg	    # explicitly linking system object files so we need to strip them
6972ca08ab68Smrg	    # from the output so that they don't get included in the library
6973ca08ab68Smrg	    # dependencies.
6974953daebaSmrg	    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"'
6975ca08ab68Smrg
6976953daebaSmrg	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
6977953daebaSmrg	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
6978ca08ab68Smrg
6979ca08ab68Smrg	    # Archives containing C++ object files must be created using
6980ca08ab68Smrg	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
6981ca08ab68Smrg	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
6982ca08ab68Smrg	    ;;
6983ca08ab68Smrg	  icpc* | ecpc* )
6984ca08ab68Smrg	    # Intel C++
6985ca08ab68Smrg	    with_gnu_ld=yes
6986ca08ab68Smrg	    # version 8.0 and above of icpc choke on multiply defined symbols
6987ca08ab68Smrg	    # if we add $predep_objects and $postdep_objects, however 7.1 and
6988ca08ab68Smrg	    # earlier do not add the objects themselves.
6989ca08ab68Smrg	    case `$CC -V 2>&1` in
6990ca08ab68Smrg	      *"Version 7."*)
6991953daebaSmrg	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
6992953daebaSmrg		_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'
6993ca08ab68Smrg		;;
6994ca08ab68Smrg	      *)  # Version 8.0 or newer
6995ca08ab68Smrg	        tmp_idyn=
6996ca08ab68Smrg	        case $host_cpu in
6997ca08ab68Smrg		  ia64*) tmp_idyn=' -i_dynamic';;
6998ca08ab68Smrg		esac
6999953daebaSmrg	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
7000953daebaSmrg		_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'
7001ca08ab68Smrg		;;
7002ca08ab68Smrg	    esac
7003ca08ab68Smrg	    _LT_TAGVAR(archive_cmds_need_lc, $1)=no
7004953daebaSmrg	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
7005953daebaSmrg	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
7006953daebaSmrg	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
7007ca08ab68Smrg	    ;;
7008ca08ab68Smrg          pgCC* | pgcpp*)
7009ca08ab68Smrg            # Portland Group C++ compiler
7010ca08ab68Smrg	    case `$CC -V` in
7011ca08ab68Smrg	    *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
7012ca08ab68Smrg	      _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
7013953daebaSmrg               rm -rf $tpldir~
7014953daebaSmrg               $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
7015953daebaSmrg               compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
7016ca08ab68Smrg	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
7017953daebaSmrg                rm -rf $tpldir~
7018953daebaSmrg                $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
7019953daebaSmrg                $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
7020953daebaSmrg                $RANLIB $oldlib'
7021ca08ab68Smrg	      _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
7022953daebaSmrg                rm -rf $tpldir~
7023953daebaSmrg                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
7024953daebaSmrg                $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
7025ca08ab68Smrg	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
7026953daebaSmrg                rm -rf $tpldir~
7027953daebaSmrg                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
7028953daebaSmrg                $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'
7029ca08ab68Smrg	      ;;
7030ca08ab68Smrg	    *) # Version 6 and above use weak symbols
7031953daebaSmrg	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
7032953daebaSmrg	      _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'
7033ca08ab68Smrg	      ;;
7034ca08ab68Smrg	    esac
7035ca08ab68Smrg
7036953daebaSmrg	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir'
7037953daebaSmrg	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
7038953daebaSmrg	    _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'
7039ca08ab68Smrg            ;;
7040ca08ab68Smrg	  cxx*)
7041ca08ab68Smrg	    # Compaq C++
7042953daebaSmrg	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
7043953daebaSmrg	    _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'
7044ca08ab68Smrg
7045ca08ab68Smrg	    runpath_var=LD_RUN_PATH
7046ca08ab68Smrg	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
7047ca08ab68Smrg	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
7048ca08ab68Smrg
7049ca08ab68Smrg	    # Commands to make compiler produce verbose output that lists
7050ca08ab68Smrg	    # what "hidden" libraries, object files and flags are used when
7051ca08ab68Smrg	    # linking a shared library.
7052ca08ab68Smrg	    #
7053ca08ab68Smrg	    # There doesn't appear to be a way to prevent this compiler from
7054ca08ab68Smrg	    # explicitly linking system object files so we need to strip them
7055ca08ab68Smrg	    # from the output so that they don't get included in the library
7056ca08ab68Smrg	    # dependencies.
7057953daebaSmrg	    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'
7058ca08ab68Smrg	    ;;
7059ca08ab68Smrg	  xl* | mpixl* | bgxl*)
7060ca08ab68Smrg	    # IBM XL 8.0 on PPC, with GNU ld
7061953daebaSmrg	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
7062953daebaSmrg	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
7063953daebaSmrg	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
7064953daebaSmrg	    if test yes = "$supports_anon_versioning"; then
7065ca08ab68Smrg	      _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
7066eceda581Smrg                cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
7067953daebaSmrg                echo "local: *; };" >> $output_objdir/$libname.ver~
7068953daebaSmrg                $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
7069ca08ab68Smrg	    fi
7070ca08ab68Smrg	    ;;
7071ca08ab68Smrg	  *)
7072eceda581Smrg	    case `$CC -V 2>&1 | $SED 5q` in
7073ca08ab68Smrg	    *Sun\ C*)
7074ca08ab68Smrg	      # Sun C++ 5.9
7075ca08ab68Smrg	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
7076953daebaSmrg	      _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
7077953daebaSmrg	      _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'
7078ca08ab68Smrg	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
7079953daebaSmrg	      _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'
7080ca08ab68Smrg	      _LT_TAGVAR(compiler_needs_object, $1)=yes
7081ca08ab68Smrg
7082ca08ab68Smrg	      # Not sure whether something based on
7083ca08ab68Smrg	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
7084ca08ab68Smrg	      # would be better.
7085ca08ab68Smrg	      output_verbose_link_cmd='func_echo_all'
7086ca08ab68Smrg
7087ca08ab68Smrg	      # Archives containing C++ object files must be created using
7088ca08ab68Smrg	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
7089ca08ab68Smrg	      # necessary to make sure instantiated templates are included
7090ca08ab68Smrg	      # in the archive.
7091ca08ab68Smrg	      _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
7092ca08ab68Smrg	      ;;
7093ca08ab68Smrg	    esac
7094ca08ab68Smrg	    ;;
7095ca08ab68Smrg	esac
7096ca08ab68Smrg	;;
7097ca08ab68Smrg
7098ca08ab68Smrg      lynxos*)
7099ca08ab68Smrg        # FIXME: insert proper C++ library support
7100ca08ab68Smrg	_LT_TAGVAR(ld_shlibs, $1)=no
7101ca08ab68Smrg	;;
7102ca08ab68Smrg
7103ca08ab68Smrg      m88k*)
7104ca08ab68Smrg        # FIXME: insert proper C++ library support
7105ca08ab68Smrg        _LT_TAGVAR(ld_shlibs, $1)=no
7106ca08ab68Smrg	;;
7107ca08ab68Smrg
7108ca08ab68Smrg      mvs*)
7109ca08ab68Smrg        case $cc_basename in
7110ca08ab68Smrg          cxx*)
7111ca08ab68Smrg	    # FIXME: insert proper C++ library support
7112ca08ab68Smrg	    _LT_TAGVAR(ld_shlibs, $1)=no
7113ca08ab68Smrg	    ;;
7114ca08ab68Smrg	  *)
7115ca08ab68Smrg	    # FIXME: insert proper C++ library support
7116ca08ab68Smrg	    _LT_TAGVAR(ld_shlibs, $1)=no
7117ca08ab68Smrg	    ;;
7118ca08ab68Smrg	esac
7119ca08ab68Smrg	;;
7120ca08ab68Smrg
7121ca08ab68Smrg      netbsd*)
7122ca08ab68Smrg        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
7123ca08ab68Smrg	  _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
7124ca08ab68Smrg	  wlarc=
7125ca08ab68Smrg	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
7126ca08ab68Smrg	  _LT_TAGVAR(hardcode_direct, $1)=yes
7127ca08ab68Smrg	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
7128ca08ab68Smrg	fi
7129ca08ab68Smrg	# Workaround some broken pre-1.5 toolchains
7130ca08ab68Smrg	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
7131ca08ab68Smrg	;;
7132ca08ab68Smrg
7133ca08ab68Smrg      *nto* | *qnx*)
7134ca08ab68Smrg        _LT_TAGVAR(ld_shlibs, $1)=yes
7135ca08ab68Smrg	;;
7136ca08ab68Smrg
7137953daebaSmrg      openbsd* | bitrig*)
7138ca08ab68Smrg	if test -f /usr/libexec/ld.so; then
7139ca08ab68Smrg	  _LT_TAGVAR(hardcode_direct, $1)=yes
7140ca08ab68Smrg	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
7141ca08ab68Smrg	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
7142ca08ab68Smrg	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
7143953daebaSmrg	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
7144953daebaSmrg	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then
7145953daebaSmrg	    _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'
7146953daebaSmrg	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
7147953daebaSmrg	    _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
7148ca08ab68Smrg	  fi
7149ca08ab68Smrg	  output_verbose_link_cmd=func_echo_all
7150ca08ab68Smrg	else
7151ca08ab68Smrg	  _LT_TAGVAR(ld_shlibs, $1)=no
7152ca08ab68Smrg	fi
7153ca08ab68Smrg	;;
7154ca08ab68Smrg
7155ca08ab68Smrg      osf3* | osf4* | osf5*)
7156ca08ab68Smrg        case $cc_basename in
7157ca08ab68Smrg          KCC*)
7158ca08ab68Smrg	    # Kuck and Associates, Inc. (KAI) C++ Compiler
7159ca08ab68Smrg
7160ca08ab68Smrg	    # KCC will only create a shared library if the output file
7161ca08ab68Smrg	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
7162ca08ab68Smrg	    # to its proper name (with version) after linking.
7163953daebaSmrg	    _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'
7164ca08ab68Smrg
7165953daebaSmrg	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
7166ca08ab68Smrg	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
7167ca08ab68Smrg
7168ca08ab68Smrg	    # Archives containing C++ object files must be created using
7169ca08ab68Smrg	    # the KAI C++ compiler.
7170ca08ab68Smrg	    case $host in
7171ca08ab68Smrg	      osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
7172ca08ab68Smrg	      *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
7173ca08ab68Smrg	    esac
7174ca08ab68Smrg	    ;;
7175ca08ab68Smrg          RCC*)
7176ca08ab68Smrg	    # Rational C++ 2.4.1
7177ca08ab68Smrg	    # FIXME: insert proper C++ library support
7178ca08ab68Smrg	    _LT_TAGVAR(ld_shlibs, $1)=no
7179ca08ab68Smrg	    ;;
7180ca08ab68Smrg          cxx*)
7181ca08ab68Smrg	    case $host in
7182ca08ab68Smrg	      osf3*)
7183953daebaSmrg	        _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
7184953daebaSmrg	        _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'
7185953daebaSmrg	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
7186ca08ab68Smrg		;;
7187ca08ab68Smrg	      *)
7188ca08ab68Smrg	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
7189953daebaSmrg	        _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'
7190ca08ab68Smrg	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
7191953daebaSmrg                  echo "-hidden">> $lib.exp~
7192953daebaSmrg                  $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~
7193953daebaSmrg                  $RM $lib.exp'
7194ca08ab68Smrg	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
7195ca08ab68Smrg		;;
7196ca08ab68Smrg	    esac
7197ca08ab68Smrg
7198ca08ab68Smrg	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
7199ca08ab68Smrg
7200ca08ab68Smrg	    # Commands to make compiler produce verbose output that lists
7201ca08ab68Smrg	    # what "hidden" libraries, object files and flags are used when
7202ca08ab68Smrg	    # linking a shared library.
7203ca08ab68Smrg	    #
7204ca08ab68Smrg	    # There doesn't appear to be a way to prevent this compiler from
7205ca08ab68Smrg	    # explicitly linking system object files so we need to strip them
7206ca08ab68Smrg	    # from the output so that they don't get included in the library
7207ca08ab68Smrg	    # dependencies.
7208953daebaSmrg	    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"'
7209ca08ab68Smrg	    ;;
7210ca08ab68Smrg	  *)
7211953daebaSmrg	    if test yes,no = "$GXX,$with_gnu_ld"; then
7212953daebaSmrg	      _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
7213ca08ab68Smrg	      case $host in
7214ca08ab68Smrg	        osf3*)
7215953daebaSmrg	          _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'
7216ca08ab68Smrg		  ;;
7217ca08ab68Smrg	        *)
7218953daebaSmrg	          _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'
7219ca08ab68Smrg		  ;;
7220ca08ab68Smrg	      esac
7221ca08ab68Smrg
7222953daebaSmrg	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
7223ca08ab68Smrg	      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
7224ca08ab68Smrg
7225ca08ab68Smrg	      # Commands to make compiler produce verbose output that lists
7226ca08ab68Smrg	      # what "hidden" libraries, object files and flags are used when
7227ca08ab68Smrg	      # linking a shared library.
7228ca08ab68Smrg	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
7229ca08ab68Smrg
7230ca08ab68Smrg	    else
7231ca08ab68Smrg	      # FIXME: insert proper C++ library support
7232ca08ab68Smrg	      _LT_TAGVAR(ld_shlibs, $1)=no
7233ca08ab68Smrg	    fi
7234ca08ab68Smrg	    ;;
7235ca08ab68Smrg        esac
7236ca08ab68Smrg        ;;
7237ca08ab68Smrg
7238ca08ab68Smrg      psos*)
7239ca08ab68Smrg        # FIXME: insert proper C++ library support
7240ca08ab68Smrg        _LT_TAGVAR(ld_shlibs, $1)=no
7241ca08ab68Smrg        ;;
7242ca08ab68Smrg
7243ca08ab68Smrg      sunos4*)
7244ca08ab68Smrg        case $cc_basename in
7245ca08ab68Smrg          CC*)
7246ca08ab68Smrg	    # Sun C++ 4.x
7247ca08ab68Smrg	    # FIXME: insert proper C++ library support
7248ca08ab68Smrg	    _LT_TAGVAR(ld_shlibs, $1)=no
7249ca08ab68Smrg	    ;;
7250ca08ab68Smrg          lcc*)
7251ca08ab68Smrg	    # Lucid
7252ca08ab68Smrg	    # FIXME: insert proper C++ library support
7253ca08ab68Smrg	    _LT_TAGVAR(ld_shlibs, $1)=no
7254ca08ab68Smrg	    ;;
7255ca08ab68Smrg          *)
7256ca08ab68Smrg	    # FIXME: insert proper C++ library support
7257ca08ab68Smrg	    _LT_TAGVAR(ld_shlibs, $1)=no
7258ca08ab68Smrg	    ;;
7259ca08ab68Smrg        esac
7260ca08ab68Smrg        ;;
7261ca08ab68Smrg
7262ca08ab68Smrg      solaris*)
7263ca08ab68Smrg        case $cc_basename in
7264ca08ab68Smrg          CC* | sunCC*)
7265ca08ab68Smrg	    # Sun C++ 4.2, 5.x and Centerline C++
7266ca08ab68Smrg            _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
7267ca08ab68Smrg	    _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
7268953daebaSmrg	    _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
7269ca08ab68Smrg	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
7270953daebaSmrg              $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'
7271ca08ab68Smrg
7272ca08ab68Smrg	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
7273ca08ab68Smrg	    _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
7274ca08ab68Smrg	    case $host_os in
7275ca08ab68Smrg	      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
7276ca08ab68Smrg	      *)
7277ca08ab68Smrg		# The compiler driver will combine and reorder linker options,
7278953daebaSmrg		# but understands '-z linker_flag'.
7279ca08ab68Smrg	        # Supported since Solaris 2.6 (maybe 2.5.1?)
7280ca08ab68Smrg		_LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
7281ca08ab68Smrg	        ;;
7282ca08ab68Smrg	    esac
7283ca08ab68Smrg	    _LT_TAGVAR(link_all_deplibs, $1)=yes
7284ca08ab68Smrg
7285ca08ab68Smrg	    output_verbose_link_cmd='func_echo_all'
7286ca08ab68Smrg
7287ca08ab68Smrg	    # Archives containing C++ object files must be created using
7288ca08ab68Smrg	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
7289ca08ab68Smrg	    # necessary to make sure instantiated templates are included
7290ca08ab68Smrg	    # in the archive.
7291ca08ab68Smrg	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
7292ca08ab68Smrg	    ;;
7293ca08ab68Smrg          gcx*)
7294ca08ab68Smrg	    # Green Hills C++ Compiler
7295953daebaSmrg	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
7296ca08ab68Smrg
7297ca08ab68Smrg	    # The C++ compiler must be used to create the archive.
7298ca08ab68Smrg	    _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
7299ca08ab68Smrg	    ;;
7300ca08ab68Smrg          *)
7301ca08ab68Smrg	    # GNU C++ compiler with Solaris linker
7302953daebaSmrg	    if test yes,no = "$GXX,$with_gnu_ld"; then
7303953daebaSmrg	      _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs'
7304ca08ab68Smrg	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
7305953daebaSmrg	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
7306ca08ab68Smrg	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
7307953daebaSmrg                  $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
7308ca08ab68Smrg
7309ca08ab68Smrg	        # Commands to make compiler produce verbose output that lists
7310ca08ab68Smrg	        # what "hidden" libraries, object files and flags are used when
7311ca08ab68Smrg	        # linking a shared library.
7312ca08ab68Smrg	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
7313ca08ab68Smrg	      else
7314953daebaSmrg	        # g++ 2.7 appears to require '-G' NOT '-shared' on this
7315ca08ab68Smrg	        # platform.
7316953daebaSmrg	        _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
7317ca08ab68Smrg	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
7318953daebaSmrg                  $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
7319ca08ab68Smrg
7320ca08ab68Smrg	        # Commands to make compiler produce verbose output that lists
7321ca08ab68Smrg	        # what "hidden" libraries, object files and flags are used when
7322ca08ab68Smrg	        # linking a shared library.
7323ca08ab68Smrg	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
7324ca08ab68Smrg	      fi
7325ca08ab68Smrg
7326953daebaSmrg	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'
7327ca08ab68Smrg	      case $host_os in
7328ca08ab68Smrg		solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
7329ca08ab68Smrg		*)
7330953daebaSmrg		  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
7331ca08ab68Smrg		  ;;
7332ca08ab68Smrg	      esac
7333ca08ab68Smrg	    fi
7334ca08ab68Smrg	    ;;
7335ca08ab68Smrg        esac
7336ca08ab68Smrg        ;;
7337ca08ab68Smrg
7338ca08ab68Smrg    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
7339953daebaSmrg      _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
7340ca08ab68Smrg      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
7341ca08ab68Smrg      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
7342ca08ab68Smrg      runpath_var='LD_RUN_PATH'
7343ca08ab68Smrg
7344ca08ab68Smrg      case $cc_basename in
7345ca08ab68Smrg        CC*)
7346953daebaSmrg	  _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
7347953daebaSmrg	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
7348ca08ab68Smrg	  ;;
7349ca08ab68Smrg	*)
7350953daebaSmrg	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
7351953daebaSmrg	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
7352ca08ab68Smrg	  ;;
7353ca08ab68Smrg      esac
7354ca08ab68Smrg      ;;
7355ca08ab68Smrg
7356ca08ab68Smrg      sysv5* | sco3.2v5* | sco5v6*)
7357953daebaSmrg	# Note: We CANNOT use -z defs as we might desire, because we do not
7358ca08ab68Smrg	# link with -lc, and that would cause any symbols used from libc to
7359ca08ab68Smrg	# always be unresolved, which means just about no library would
7360ca08ab68Smrg	# ever link correctly.  If we're not using GNU ld we use -z text
7361ca08ab68Smrg	# though, which does catch some bad symbols but isn't as heavy-handed
7362ca08ab68Smrg	# as -z defs.
7363953daebaSmrg	_LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
7364953daebaSmrg	_LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs'
7365ca08ab68Smrg	_LT_TAGVAR(archive_cmds_need_lc, $1)=no
7366ca08ab68Smrg	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
7367953daebaSmrg	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir'
7368ca08ab68Smrg	_LT_TAGVAR(hardcode_libdir_separator, $1)=':'
7369ca08ab68Smrg	_LT_TAGVAR(link_all_deplibs, $1)=yes
7370953daebaSmrg	_LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport'
7371ca08ab68Smrg	runpath_var='LD_RUN_PATH'
7372ca08ab68Smrg
7373ca08ab68Smrg	case $cc_basename in
7374ca08ab68Smrg          CC*)
7375953daebaSmrg	    _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
7376953daebaSmrg	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
7377ca08ab68Smrg	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
7378953daebaSmrg              '"$_LT_TAGVAR(old_archive_cmds, $1)"
7379ca08ab68Smrg	    _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
7380953daebaSmrg              '"$_LT_TAGVAR(reload_cmds, $1)"
7381ca08ab68Smrg	    ;;
7382ca08ab68Smrg	  *)
7383953daebaSmrg	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
7384953daebaSmrg	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
7385ca08ab68Smrg	    ;;
7386ca08ab68Smrg	esac
7387ca08ab68Smrg      ;;
7388ca08ab68Smrg
7389ca08ab68Smrg      tandem*)
7390ca08ab68Smrg        case $cc_basename in
7391ca08ab68Smrg          NCC*)
7392ca08ab68Smrg	    # NonStop-UX NCC 3.20
7393ca08ab68Smrg	    # FIXME: insert proper C++ library support
7394ca08ab68Smrg	    _LT_TAGVAR(ld_shlibs, $1)=no
7395ca08ab68Smrg	    ;;
7396ca08ab68Smrg          *)
7397ca08ab68Smrg	    # FIXME: insert proper C++ library support
7398ca08ab68Smrg	    _LT_TAGVAR(ld_shlibs, $1)=no
7399ca08ab68Smrg	    ;;
7400ca08ab68Smrg        esac
7401ca08ab68Smrg        ;;
7402ca08ab68Smrg
7403ca08ab68Smrg      vxworks*)
7404ca08ab68Smrg        # FIXME: insert proper C++ library support
7405ca08ab68Smrg        _LT_TAGVAR(ld_shlibs, $1)=no
7406ca08ab68Smrg        ;;
7407ca08ab68Smrg
7408ca08ab68Smrg      *)
7409ca08ab68Smrg        # FIXME: insert proper C++ library support
7410ca08ab68Smrg        _LT_TAGVAR(ld_shlibs, $1)=no
7411ca08ab68Smrg        ;;
7412ca08ab68Smrg    esac
7413ca08ab68Smrg
7414ca08ab68Smrg    AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
7415953daebaSmrg    test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no
7416ca08ab68Smrg
7417953daebaSmrg    _LT_TAGVAR(GCC, $1)=$GXX
7418953daebaSmrg    _LT_TAGVAR(LD, $1)=$LD
7419ca08ab68Smrg
7420ca08ab68Smrg    ## CAVEAT EMPTOR:
7421ca08ab68Smrg    ## There is no encapsulation within the following macros, do not change
7422ca08ab68Smrg    ## the running order or otherwise move them around unless you know exactly
7423ca08ab68Smrg    ## what you are doing...
7424ca08ab68Smrg    _LT_SYS_HIDDEN_LIBDEPS($1)
7425ca08ab68Smrg    _LT_COMPILER_PIC($1)
7426ca08ab68Smrg    _LT_COMPILER_C_O($1)
7427ca08ab68Smrg    _LT_COMPILER_FILE_LOCKS($1)
7428ca08ab68Smrg    _LT_LINKER_SHLIBS($1)
7429ca08ab68Smrg    _LT_SYS_DYNAMIC_LINKER($1)
7430ca08ab68Smrg    _LT_LINKER_HARDCODE_LIBPATH($1)
7431ca08ab68Smrg
7432ca08ab68Smrg    _LT_CONFIG($1)
7433ca08ab68Smrg  fi # test -n "$compiler"
7434ca08ab68Smrg
7435ca08ab68Smrg  CC=$lt_save_CC
7436ca08ab68Smrg  CFLAGS=$lt_save_CFLAGS
7437ca08ab68Smrg  LDCXX=$LD
7438ca08ab68Smrg  LD=$lt_save_LD
7439ca08ab68Smrg  GCC=$lt_save_GCC
7440ca08ab68Smrg  with_gnu_ld=$lt_save_with_gnu_ld
7441ca08ab68Smrg  lt_cv_path_LDCXX=$lt_cv_path_LD
7442ca08ab68Smrg  lt_cv_path_LD=$lt_save_path_LD
7443ca08ab68Smrg  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
7444ca08ab68Smrg  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
7445953daebaSmrgfi # test yes != "$_lt_caught_CXX_error"
7446ca08ab68Smrg
7447ca08ab68SmrgAC_LANG_POP
7448ca08ab68Smrg])# _LT_LANG_CXX_CONFIG
7449ca08ab68Smrg
7450ca08ab68Smrg
7451ca08ab68Smrg# _LT_FUNC_STRIPNAME_CNF
7452ca08ab68Smrg# ----------------------
7453ca08ab68Smrg# func_stripname_cnf prefix suffix name
7454ca08ab68Smrg# strip PREFIX and SUFFIX off of NAME.
7455ca08ab68Smrg# PREFIX and SUFFIX must not contain globbing or regex special
7456ca08ab68Smrg# characters, hashes, percent signs, but SUFFIX may contain a leading
7457ca08ab68Smrg# dot (in which case that matches only a dot).
7458ca08ab68Smrg#
7459ca08ab68Smrg# This function is identical to the (non-XSI) version of func_stripname,
7460ca08ab68Smrg# except this one can be used by m4 code that may be executed by configure,
7461ca08ab68Smrg# rather than the libtool script.
7462ca08ab68Smrgm4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
7463ca08ab68SmrgAC_REQUIRE([_LT_DECL_SED])
7464ca08ab68SmrgAC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
7465ca08ab68Smrgfunc_stripname_cnf ()
7466ca08ab68Smrg{
7467953daebaSmrg  case @S|@2 in
7468953daebaSmrg  .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;;
7469953daebaSmrg  *)  func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;;
7470ca08ab68Smrg  esac
7471ca08ab68Smrg} # func_stripname_cnf
7472ca08ab68Smrg])# _LT_FUNC_STRIPNAME_CNF
7473ca08ab68Smrg
7474953daebaSmrg
7475ca08ab68Smrg# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
7476ca08ab68Smrg# ---------------------------------
7477ca08ab68Smrg# Figure out "hidden" library dependencies from verbose
7478ca08ab68Smrg# compiler output when linking a shared library.
7479ca08ab68Smrg# Parse the compiler output and extract the necessary
7480ca08ab68Smrg# objects, libraries and library flags.
7481ca08ab68Smrgm4_defun([_LT_SYS_HIDDEN_LIBDEPS],
7482ca08ab68Smrg[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
7483ca08ab68SmrgAC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
7484ca08ab68Smrg# Dependencies to place before and after the object being linked:
7485ca08ab68Smrg_LT_TAGVAR(predep_objects, $1)=
7486ca08ab68Smrg_LT_TAGVAR(postdep_objects, $1)=
7487ca08ab68Smrg_LT_TAGVAR(predeps, $1)=
7488ca08ab68Smrg_LT_TAGVAR(postdeps, $1)=
7489ca08ab68Smrg_LT_TAGVAR(compiler_lib_search_path, $1)=
7490ca08ab68Smrg
7491ca08ab68Smrgdnl we can't use the lt_simple_compile_test_code here,
7492ca08ab68Smrgdnl because it contains code intended for an executable,
7493ca08ab68Smrgdnl not a library.  It's possible we should let each
7494ca08ab68Smrgdnl tag define a new lt_????_link_test_code variable,
7495ca08ab68Smrgdnl but it's only used here...
7496ca08ab68Smrgm4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
7497ca08ab68Smrgint a;
7498ca08ab68Smrgvoid foo (void) { a = 0; }
7499ca08ab68Smrg_LT_EOF
7500ca08ab68Smrg], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
7501ca08ab68Smrgclass Foo
7502ca08ab68Smrg{
7503ca08ab68Smrgpublic:
7504ca08ab68Smrg  Foo (void) { a = 0; }
7505ca08ab68Smrgprivate:
7506ca08ab68Smrg  int a;
7507ca08ab68Smrg};
7508ca08ab68Smrg_LT_EOF
7509ca08ab68Smrg], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
7510ca08ab68Smrg      subroutine foo
7511ca08ab68Smrg      implicit none
7512ca08ab68Smrg      integer*4 a
7513ca08ab68Smrg      a=0
7514ca08ab68Smrg      return
7515ca08ab68Smrg      end
7516ca08ab68Smrg_LT_EOF
7517ca08ab68Smrg], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
7518ca08ab68Smrg      subroutine foo
7519ca08ab68Smrg      implicit none
7520ca08ab68Smrg      integer a
7521ca08ab68Smrg      a=0
7522ca08ab68Smrg      return
7523ca08ab68Smrg      end
7524ca08ab68Smrg_LT_EOF
7525ca08ab68Smrg], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
7526ca08ab68Smrgpublic class foo {
7527ca08ab68Smrg  private int a;
7528ca08ab68Smrg  public void bar (void) {
7529ca08ab68Smrg    a = 0;
7530ca08ab68Smrg  }
7531ca08ab68Smrg};
7532ca08ab68Smrg_LT_EOF
7533ca08ab68Smrg], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
7534ca08ab68Smrgpackage foo
7535ca08ab68Smrgfunc foo() {
7536ca08ab68Smrg}
7537ca08ab68Smrg_LT_EOF
7538ca08ab68Smrg])
7539ca08ab68Smrg
7540ca08ab68Smrg_lt_libdeps_save_CFLAGS=$CFLAGS
7541ca08ab68Smrgcase "$CC $CFLAGS " in #(
7542ca08ab68Smrg*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
7543ca08ab68Smrg*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
7544ca08ab68Smrg*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
7545ca08ab68Smrgesac
7546ca08ab68Smrg
7547ca08ab68Smrgdnl Parse the compiler output and extract the necessary
7548ca08ab68Smrgdnl objects, libraries and library flags.
7549ca08ab68Smrgif AC_TRY_EVAL(ac_compile); then
7550ca08ab68Smrg  # Parse the compiler output and extract the necessary
7551ca08ab68Smrg  # objects, libraries and library flags.
7552ca08ab68Smrg
7553ca08ab68Smrg  # Sentinel used to keep track of whether or not we are before
7554ca08ab68Smrg  # the conftest object file.
7555ca08ab68Smrg  pre_test_object_deps_done=no
7556ca08ab68Smrg
7557ca08ab68Smrg  for p in `eval "$output_verbose_link_cmd"`; do
7558953daebaSmrg    case $prev$p in
7559ca08ab68Smrg
7560ca08ab68Smrg    -L* | -R* | -l*)
7561ca08ab68Smrg       # Some compilers place space between "-{L,R}" and the path.
7562ca08ab68Smrg       # Remove the space.
7563953daebaSmrg       if test x-L = "$p" ||
7564953daebaSmrg          test x-R = "$p"; then
7565ca08ab68Smrg	 prev=$p
7566ca08ab68Smrg	 continue
7567ca08ab68Smrg       fi
7568ca08ab68Smrg
7569ca08ab68Smrg       # Expand the sysroot to ease extracting the directories later.
7570ca08ab68Smrg       if test -z "$prev"; then
7571ca08ab68Smrg         case $p in
7572ca08ab68Smrg         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
7573ca08ab68Smrg         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
7574ca08ab68Smrg         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
7575ca08ab68Smrg         esac
7576ca08ab68Smrg       fi
7577ca08ab68Smrg       case $p in
7578ca08ab68Smrg       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
7579ca08ab68Smrg       esac
7580953daebaSmrg       if test no = "$pre_test_object_deps_done"; then
7581953daebaSmrg	 case $prev in
7582ca08ab68Smrg	 -L | -R)
7583ca08ab68Smrg	   # Internal compiler library paths should come after those
7584ca08ab68Smrg	   # provided the user.  The postdeps already come after the
7585ca08ab68Smrg	   # user supplied libs so there is no need to process them.
7586ca08ab68Smrg	   if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
7587953daebaSmrg	     _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p
7588ca08ab68Smrg	   else
7589953daebaSmrg	     _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p"
7590ca08ab68Smrg	   fi
7591ca08ab68Smrg	   ;;
7592ca08ab68Smrg	 # The "-l" case would never come before the object being
7593ca08ab68Smrg	 # linked, so don't bother handling this case.
7594ca08ab68Smrg	 esac
7595ca08ab68Smrg       else
7596ca08ab68Smrg	 if test -z "$_LT_TAGVAR(postdeps, $1)"; then
7597953daebaSmrg	   _LT_TAGVAR(postdeps, $1)=$prev$p
7598ca08ab68Smrg	 else
7599953daebaSmrg	   _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p"
7600ca08ab68Smrg	 fi
7601ca08ab68Smrg       fi
7602ca08ab68Smrg       prev=
7603ca08ab68Smrg       ;;
7604ca08ab68Smrg
7605ca08ab68Smrg    *.lto.$objext) ;; # Ignore GCC LTO objects
7606ca08ab68Smrg    *.$objext)
7607ca08ab68Smrg       # This assumes that the test object file only shows up
7608ca08ab68Smrg       # once in the compiler output.
7609ca08ab68Smrg       if test "$p" = "conftest.$objext"; then
7610ca08ab68Smrg	 pre_test_object_deps_done=yes
7611ca08ab68Smrg	 continue
7612ca08ab68Smrg       fi
7613ca08ab68Smrg
7614953daebaSmrg       if test no = "$pre_test_object_deps_done"; then
7615ca08ab68Smrg	 if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
7616953daebaSmrg	   _LT_TAGVAR(predep_objects, $1)=$p
7617ca08ab68Smrg	 else
7618ca08ab68Smrg	   _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
7619ca08ab68Smrg	 fi
7620ca08ab68Smrg       else
7621ca08ab68Smrg	 if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
7622953daebaSmrg	   _LT_TAGVAR(postdep_objects, $1)=$p
7623ca08ab68Smrg	 else
7624ca08ab68Smrg	   _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
7625ca08ab68Smrg	 fi
7626ca08ab68Smrg       fi
7627ca08ab68Smrg       ;;
7628ca08ab68Smrg
7629ca08ab68Smrg    *) ;; # Ignore the rest.
7630ca08ab68Smrg
7631ca08ab68Smrg    esac
7632ca08ab68Smrg  done
7633ca08ab68Smrg
7634ca08ab68Smrg  # Clean up.
7635ca08ab68Smrg  rm -f a.out a.exe
7636ca08ab68Smrgelse
7637ca08ab68Smrg  echo "libtool.m4: error: problem compiling $1 test program"
7638ca08ab68Smrgfi
7639ca08ab68Smrg
7640ca08ab68Smrg$RM -f confest.$objext
7641ca08ab68SmrgCFLAGS=$_lt_libdeps_save_CFLAGS
7642ca08ab68Smrg
7643ca08ab68Smrg# PORTME: override above test on systems where it is broken
7644ca08ab68Smrgm4_if([$1], [CXX],
7645ca08ab68Smrg[case $host_os in
7646ca08ab68Smrginterix[[3-9]]*)
7647ca08ab68Smrg  # Interix 3.5 installs completely hosed .la files for C++, so rather than
7648ca08ab68Smrg  # hack all around it, let's just trust "g++" to DTRT.
7649ca08ab68Smrg  _LT_TAGVAR(predep_objects,$1)=
7650ca08ab68Smrg  _LT_TAGVAR(postdep_objects,$1)=
7651ca08ab68Smrg  _LT_TAGVAR(postdeps,$1)=
7652ca08ab68Smrg  ;;
7653ca08ab68Smrgesac
7654ca08ab68Smrg])
7655ca08ab68Smrg
7656ca08ab68Smrgcase " $_LT_TAGVAR(postdeps, $1) " in
7657ca08ab68Smrg*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
7658ca08ab68Smrgesac
7659ca08ab68Smrg _LT_TAGVAR(compiler_lib_search_dirs, $1)=
7660ca08ab68Smrgif test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
7661953daebaSmrg _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'`
7662ca08ab68Smrgfi
7663ca08ab68Smrg_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
7664ca08ab68Smrg    [The directories searched by this compiler when creating a shared library])
7665ca08ab68Smrg_LT_TAGDECL([], [predep_objects], [1],
7666ca08ab68Smrg    [Dependencies to place before and after the objects being linked to
7667ca08ab68Smrg    create a shared library])
7668ca08ab68Smrg_LT_TAGDECL([], [postdep_objects], [1])
7669ca08ab68Smrg_LT_TAGDECL([], [predeps], [1])
7670ca08ab68Smrg_LT_TAGDECL([], [postdeps], [1])
7671ca08ab68Smrg_LT_TAGDECL([], [compiler_lib_search_path], [1],
7672ca08ab68Smrg    [The library search path used internally by the compiler when linking
7673ca08ab68Smrg    a shared library])
7674ca08ab68Smrg])# _LT_SYS_HIDDEN_LIBDEPS
7675ca08ab68Smrg
7676ca08ab68Smrg
7677ca08ab68Smrg# _LT_LANG_F77_CONFIG([TAG])
7678ca08ab68Smrg# --------------------------
7679ca08ab68Smrg# Ensure that the configuration variables for a Fortran 77 compiler are
7680ca08ab68Smrg# suitably defined.  These variables are subsequently used by _LT_CONFIG
7681953daebaSmrg# to write the compiler configuration to 'libtool'.
7682ca08ab68Smrgm4_defun([_LT_LANG_F77_CONFIG],
7683ca08ab68Smrg[AC_LANG_PUSH(Fortran 77)
7684953daebaSmrgif test -z "$F77" || test no = "$F77"; then
7685ca08ab68Smrg  _lt_disable_F77=yes
7686ca08ab68Smrgfi
7687ca08ab68Smrg
7688ca08ab68Smrg_LT_TAGVAR(archive_cmds_need_lc, $1)=no
7689ca08ab68Smrg_LT_TAGVAR(allow_undefined_flag, $1)=
7690ca08ab68Smrg_LT_TAGVAR(always_export_symbols, $1)=no
7691ca08ab68Smrg_LT_TAGVAR(archive_expsym_cmds, $1)=
7692ca08ab68Smrg_LT_TAGVAR(export_dynamic_flag_spec, $1)=
7693ca08ab68Smrg_LT_TAGVAR(hardcode_direct, $1)=no
7694ca08ab68Smrg_LT_TAGVAR(hardcode_direct_absolute, $1)=no
7695ca08ab68Smrg_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
7696ca08ab68Smrg_LT_TAGVAR(hardcode_libdir_separator, $1)=
7697ca08ab68Smrg_LT_TAGVAR(hardcode_minus_L, $1)=no
7698ca08ab68Smrg_LT_TAGVAR(hardcode_automatic, $1)=no
7699ca08ab68Smrg_LT_TAGVAR(inherit_rpath, $1)=no
7700ca08ab68Smrg_LT_TAGVAR(module_cmds, $1)=
7701ca08ab68Smrg_LT_TAGVAR(module_expsym_cmds, $1)=
7702ca08ab68Smrg_LT_TAGVAR(link_all_deplibs, $1)=unknown
7703ca08ab68Smrg_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
7704ca08ab68Smrg_LT_TAGVAR(reload_flag, $1)=$reload_flag
7705ca08ab68Smrg_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
7706ca08ab68Smrg_LT_TAGVAR(no_undefined_flag, $1)=
7707ca08ab68Smrg_LT_TAGVAR(whole_archive_flag_spec, $1)=
7708ca08ab68Smrg_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
7709ca08ab68Smrg
7710ca08ab68Smrg# Source file extension for f77 test sources.
7711ca08ab68Smrgac_ext=f
7712ca08ab68Smrg
7713ca08ab68Smrg# Object file extension for compiled f77 test sources.
7714ca08ab68Smrgobjext=o
7715ca08ab68Smrg_LT_TAGVAR(objext, $1)=$objext
7716ca08ab68Smrg
7717ca08ab68Smrg# No sense in running all these tests if we already determined that
7718ca08ab68Smrg# the F77 compiler isn't working.  Some variables (like enable_shared)
7719ca08ab68Smrg# are currently assumed to apply to all compilers on this platform,
7720ca08ab68Smrg# and will be corrupted by setting them based on a non-working compiler.
7721953daebaSmrgif test yes != "$_lt_disable_F77"; then
7722ca08ab68Smrg  # Code to be used in simple compile tests
7723ca08ab68Smrg  lt_simple_compile_test_code="\
7724ca08ab68Smrg      subroutine t
7725ca08ab68Smrg      return
7726ca08ab68Smrg      end
7727ca08ab68Smrg"
7728ca08ab68Smrg
7729ca08ab68Smrg  # Code to be used in simple link tests
7730ca08ab68Smrg  lt_simple_link_test_code="\
7731ca08ab68Smrg      program t
7732ca08ab68Smrg      end
7733ca08ab68Smrg"
7734ca08ab68Smrg
7735ca08ab68Smrg  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
7736ca08ab68Smrg  _LT_TAG_COMPILER
7737ca08ab68Smrg
7738ca08ab68Smrg  # save warnings/boilerplate of simple test code
7739ca08ab68Smrg  _LT_COMPILER_BOILERPLATE
7740ca08ab68Smrg  _LT_LINKER_BOILERPLATE
7741ca08ab68Smrg
7742ca08ab68Smrg  # Allow CC to be a program name with arguments.
7743953daebaSmrg  lt_save_CC=$CC
7744ca08ab68Smrg  lt_save_GCC=$GCC
7745ca08ab68Smrg  lt_save_CFLAGS=$CFLAGS
7746ca08ab68Smrg  CC=${F77-"f77"}
7747ca08ab68Smrg  CFLAGS=$FFLAGS
7748ca08ab68Smrg  compiler=$CC
7749ca08ab68Smrg  _LT_TAGVAR(compiler, $1)=$CC
7750ca08ab68Smrg  _LT_CC_BASENAME([$compiler])
7751ca08ab68Smrg  GCC=$G77
7752ca08ab68Smrg  if test -n "$compiler"; then
7753ca08ab68Smrg    AC_MSG_CHECKING([if libtool supports shared libraries])
7754ca08ab68Smrg    AC_MSG_RESULT([$can_build_shared])
7755ca08ab68Smrg
7756ca08ab68Smrg    AC_MSG_CHECKING([whether to build shared libraries])
7757953daebaSmrg    test no = "$can_build_shared" && enable_shared=no
7758ca08ab68Smrg
7759ca08ab68Smrg    # On AIX, shared libraries and static libraries use the same namespace, and
7760ca08ab68Smrg    # are all built from PIC.
7761ca08ab68Smrg    case $host_os in
7762ca08ab68Smrg      aix3*)
7763953daebaSmrg        test yes = "$enable_shared" && enable_static=no
7764ca08ab68Smrg        if test -n "$RANLIB"; then
7765ca08ab68Smrg          archive_cmds="$archive_cmds~\$RANLIB \$lib"
7766ca08ab68Smrg          postinstall_cmds='$RANLIB $lib'
7767ca08ab68Smrg        fi
7768ca08ab68Smrg        ;;
7769ca08ab68Smrg      aix[[4-9]]*)
7770953daebaSmrg	if test ia64 != "$host_cpu"; then
7771953daebaSmrg	  case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
7772953daebaSmrg	  yes,aix,yes) ;;		# shared object as lib.so file only
7773953daebaSmrg	  yes,svr4,*) ;;		# shared object as lib.so archive member only
7774953daebaSmrg	  yes,*) enable_static=no ;;	# shared object in lib.a archive as well
7775953daebaSmrg	  esac
7776ca08ab68Smrg	fi
7777ca08ab68Smrg        ;;
7778ca08ab68Smrg    esac
7779ca08ab68Smrg    AC_MSG_RESULT([$enable_shared])
7780ca08ab68Smrg
7781ca08ab68Smrg    AC_MSG_CHECKING([whether to build static libraries])
7782ca08ab68Smrg    # Make sure either enable_shared or enable_static is yes.
7783953daebaSmrg    test yes = "$enable_shared" || enable_static=yes
7784ca08ab68Smrg    AC_MSG_RESULT([$enable_static])
7785ca08ab68Smrg
7786953daebaSmrg    _LT_TAGVAR(GCC, $1)=$G77
7787953daebaSmrg    _LT_TAGVAR(LD, $1)=$LD
7788ca08ab68Smrg
7789ca08ab68Smrg    ## CAVEAT EMPTOR:
7790ca08ab68Smrg    ## There is no encapsulation within the following macros, do not change
7791ca08ab68Smrg    ## the running order or otherwise move them around unless you know exactly
7792ca08ab68Smrg    ## what you are doing...
7793ca08ab68Smrg    _LT_COMPILER_PIC($1)
7794ca08ab68Smrg    _LT_COMPILER_C_O($1)
7795ca08ab68Smrg    _LT_COMPILER_FILE_LOCKS($1)
7796ca08ab68Smrg    _LT_LINKER_SHLIBS($1)
7797ca08ab68Smrg    _LT_SYS_DYNAMIC_LINKER($1)
7798ca08ab68Smrg    _LT_LINKER_HARDCODE_LIBPATH($1)
7799ca08ab68Smrg
7800ca08ab68Smrg    _LT_CONFIG($1)
7801ca08ab68Smrg  fi # test -n "$compiler"
7802ca08ab68Smrg
7803ca08ab68Smrg  GCC=$lt_save_GCC
7804953daebaSmrg  CC=$lt_save_CC
7805953daebaSmrg  CFLAGS=$lt_save_CFLAGS
7806953daebaSmrgfi # test yes != "$_lt_disable_F77"
7807ca08ab68Smrg
7808ca08ab68SmrgAC_LANG_POP
7809ca08ab68Smrg])# _LT_LANG_F77_CONFIG
7810ca08ab68Smrg
7811ca08ab68Smrg
7812ca08ab68Smrg# _LT_LANG_FC_CONFIG([TAG])
7813ca08ab68Smrg# -------------------------
7814ca08ab68Smrg# Ensure that the configuration variables for a Fortran compiler are
7815ca08ab68Smrg# suitably defined.  These variables are subsequently used by _LT_CONFIG
7816953daebaSmrg# to write the compiler configuration to 'libtool'.
7817ca08ab68Smrgm4_defun([_LT_LANG_FC_CONFIG],
7818ca08ab68Smrg[AC_LANG_PUSH(Fortran)
7819ca08ab68Smrg
7820953daebaSmrgif test -z "$FC" || test no = "$FC"; then
7821ca08ab68Smrg  _lt_disable_FC=yes
7822ca08ab68Smrgfi
7823ca08ab68Smrg
7824ca08ab68Smrg_LT_TAGVAR(archive_cmds_need_lc, $1)=no
7825ca08ab68Smrg_LT_TAGVAR(allow_undefined_flag, $1)=
7826ca08ab68Smrg_LT_TAGVAR(always_export_symbols, $1)=no
7827ca08ab68Smrg_LT_TAGVAR(archive_expsym_cmds, $1)=
7828ca08ab68Smrg_LT_TAGVAR(export_dynamic_flag_spec, $1)=
7829ca08ab68Smrg_LT_TAGVAR(hardcode_direct, $1)=no
7830ca08ab68Smrg_LT_TAGVAR(hardcode_direct_absolute, $1)=no
7831ca08ab68Smrg_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
7832ca08ab68Smrg_LT_TAGVAR(hardcode_libdir_separator, $1)=
7833ca08ab68Smrg_LT_TAGVAR(hardcode_minus_L, $1)=no
7834ca08ab68Smrg_LT_TAGVAR(hardcode_automatic, $1)=no
7835ca08ab68Smrg_LT_TAGVAR(inherit_rpath, $1)=no
7836ca08ab68Smrg_LT_TAGVAR(module_cmds, $1)=
7837ca08ab68Smrg_LT_TAGVAR(module_expsym_cmds, $1)=
7838ca08ab68Smrg_LT_TAGVAR(link_all_deplibs, $1)=unknown
7839ca08ab68Smrg_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
7840ca08ab68Smrg_LT_TAGVAR(reload_flag, $1)=$reload_flag
7841ca08ab68Smrg_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
7842ca08ab68Smrg_LT_TAGVAR(no_undefined_flag, $1)=
7843ca08ab68Smrg_LT_TAGVAR(whole_archive_flag_spec, $1)=
7844ca08ab68Smrg_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
7845ca08ab68Smrg
7846ca08ab68Smrg# Source file extension for fc test sources.
7847ca08ab68Smrgac_ext=${ac_fc_srcext-f}
7848ca08ab68Smrg
7849ca08ab68Smrg# Object file extension for compiled fc test sources.
7850ca08ab68Smrgobjext=o
7851ca08ab68Smrg_LT_TAGVAR(objext, $1)=$objext
7852ca08ab68Smrg
7853ca08ab68Smrg# No sense in running all these tests if we already determined that
7854ca08ab68Smrg# the FC compiler isn't working.  Some variables (like enable_shared)
7855ca08ab68Smrg# are currently assumed to apply to all compilers on this platform,
7856ca08ab68Smrg# and will be corrupted by setting them based on a non-working compiler.
7857953daebaSmrgif test yes != "$_lt_disable_FC"; then
7858ca08ab68Smrg  # Code to be used in simple compile tests
7859ca08ab68Smrg  lt_simple_compile_test_code="\
7860ca08ab68Smrg      subroutine t
7861ca08ab68Smrg      return
7862ca08ab68Smrg      end
7863ca08ab68Smrg"
7864ca08ab68Smrg
7865ca08ab68Smrg  # Code to be used in simple link tests
7866ca08ab68Smrg  lt_simple_link_test_code="\
7867ca08ab68Smrg      program t
7868ca08ab68Smrg      end
7869ca08ab68Smrg"
7870ca08ab68Smrg
7871ca08ab68Smrg  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
7872ca08ab68Smrg  _LT_TAG_COMPILER
7873ca08ab68Smrg
7874ca08ab68Smrg  # save warnings/boilerplate of simple test code
7875ca08ab68Smrg  _LT_COMPILER_BOILERPLATE
7876ca08ab68Smrg  _LT_LINKER_BOILERPLATE
7877ca08ab68Smrg
7878ca08ab68Smrg  # Allow CC to be a program name with arguments.
7879953daebaSmrg  lt_save_CC=$CC
7880ca08ab68Smrg  lt_save_GCC=$GCC
7881ca08ab68Smrg  lt_save_CFLAGS=$CFLAGS
7882ca08ab68Smrg  CC=${FC-"f95"}
7883ca08ab68Smrg  CFLAGS=$FCFLAGS
7884ca08ab68Smrg  compiler=$CC
7885ca08ab68Smrg  GCC=$ac_cv_fc_compiler_gnu
7886ca08ab68Smrg
7887ca08ab68Smrg  _LT_TAGVAR(compiler, $1)=$CC
7888ca08ab68Smrg  _LT_CC_BASENAME([$compiler])
7889ca08ab68Smrg
7890ca08ab68Smrg  if test -n "$compiler"; then
7891ca08ab68Smrg    AC_MSG_CHECKING([if libtool supports shared libraries])
7892ca08ab68Smrg    AC_MSG_RESULT([$can_build_shared])
7893ca08ab68Smrg
7894ca08ab68Smrg    AC_MSG_CHECKING([whether to build shared libraries])
7895953daebaSmrg    test no = "$can_build_shared" && enable_shared=no
7896ca08ab68Smrg
7897ca08ab68Smrg    # On AIX, shared libraries and static libraries use the same namespace, and
7898ca08ab68Smrg    # are all built from PIC.
7899ca08ab68Smrg    case $host_os in
7900ca08ab68Smrg      aix3*)
7901953daebaSmrg        test yes = "$enable_shared" && enable_static=no
7902ca08ab68Smrg        if test -n "$RANLIB"; then
7903ca08ab68Smrg          archive_cmds="$archive_cmds~\$RANLIB \$lib"
7904ca08ab68Smrg          postinstall_cmds='$RANLIB $lib'
7905ca08ab68Smrg        fi
7906ca08ab68Smrg        ;;
7907ca08ab68Smrg      aix[[4-9]]*)
7908953daebaSmrg	if test ia64 != "$host_cpu"; then
7909953daebaSmrg	  case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
7910953daebaSmrg	  yes,aix,yes) ;;		# shared object as lib.so file only
7911953daebaSmrg	  yes,svr4,*) ;;		# shared object as lib.so archive member only
7912953daebaSmrg	  yes,*) enable_static=no ;;	# shared object in lib.a archive as well
7913953daebaSmrg	  esac
7914ca08ab68Smrg	fi
7915ca08ab68Smrg        ;;
7916ca08ab68Smrg    esac
7917ca08ab68Smrg    AC_MSG_RESULT([$enable_shared])
7918ca08ab68Smrg
7919ca08ab68Smrg    AC_MSG_CHECKING([whether to build static libraries])
7920ca08ab68Smrg    # Make sure either enable_shared or enable_static is yes.
7921953daebaSmrg    test yes = "$enable_shared" || enable_static=yes
7922ca08ab68Smrg    AC_MSG_RESULT([$enable_static])
7923ca08ab68Smrg
7924953daebaSmrg    _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu
7925953daebaSmrg    _LT_TAGVAR(LD, $1)=$LD
7926ca08ab68Smrg
7927ca08ab68Smrg    ## CAVEAT EMPTOR:
7928ca08ab68Smrg    ## There is no encapsulation within the following macros, do not change
7929ca08ab68Smrg    ## the running order or otherwise move them around unless you know exactly
7930ca08ab68Smrg    ## what you are doing...
7931ca08ab68Smrg    _LT_SYS_HIDDEN_LIBDEPS($1)
7932ca08ab68Smrg    _LT_COMPILER_PIC($1)
7933ca08ab68Smrg    _LT_COMPILER_C_O($1)
7934ca08ab68Smrg    _LT_COMPILER_FILE_LOCKS($1)
7935ca08ab68Smrg    _LT_LINKER_SHLIBS($1)
7936ca08ab68Smrg    _LT_SYS_DYNAMIC_LINKER($1)
7937ca08ab68Smrg    _LT_LINKER_HARDCODE_LIBPATH($1)
7938ca08ab68Smrg
7939ca08ab68Smrg    _LT_CONFIG($1)
7940ca08ab68Smrg  fi # test -n "$compiler"
7941ca08ab68Smrg
7942ca08ab68Smrg  GCC=$lt_save_GCC
7943ca08ab68Smrg  CC=$lt_save_CC
7944ca08ab68Smrg  CFLAGS=$lt_save_CFLAGS
7945953daebaSmrgfi # test yes != "$_lt_disable_FC"
7946ca08ab68Smrg
7947ca08ab68SmrgAC_LANG_POP
7948ca08ab68Smrg])# _LT_LANG_FC_CONFIG
7949ca08ab68Smrg
7950ca08ab68Smrg
7951ca08ab68Smrg# _LT_LANG_GCJ_CONFIG([TAG])
7952ca08ab68Smrg# --------------------------
7953ca08ab68Smrg# Ensure that the configuration variables for the GNU Java Compiler compiler
7954ca08ab68Smrg# are suitably defined.  These variables are subsequently used by _LT_CONFIG
7955953daebaSmrg# to write the compiler configuration to 'libtool'.
7956ca08ab68Smrgm4_defun([_LT_LANG_GCJ_CONFIG],
7957ca08ab68Smrg[AC_REQUIRE([LT_PROG_GCJ])dnl
7958ca08ab68SmrgAC_LANG_SAVE
7959ca08ab68Smrg
7960ca08ab68Smrg# Source file extension for Java test sources.
7961ca08ab68Smrgac_ext=java
7962ca08ab68Smrg
7963ca08ab68Smrg# Object file extension for compiled Java test sources.
7964ca08ab68Smrgobjext=o
7965ca08ab68Smrg_LT_TAGVAR(objext, $1)=$objext
7966ca08ab68Smrg
7967ca08ab68Smrg# Code to be used in simple compile tests
7968ca08ab68Smrglt_simple_compile_test_code="class foo {}"
7969ca08ab68Smrg
7970ca08ab68Smrg# Code to be used in simple link tests
7971ca08ab68Smrglt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
7972ca08ab68Smrg
7973ca08ab68Smrg# ltmain only uses $CC for tagged configurations so make sure $CC is set.
7974ca08ab68Smrg_LT_TAG_COMPILER
7975ca08ab68Smrg
7976ca08ab68Smrg# save warnings/boilerplate of simple test code
7977ca08ab68Smrg_LT_COMPILER_BOILERPLATE
7978ca08ab68Smrg_LT_LINKER_BOILERPLATE
7979ca08ab68Smrg
7980ca08ab68Smrg# Allow CC to be a program name with arguments.
7981ca08ab68Smrglt_save_CC=$CC
7982ca08ab68Smrglt_save_CFLAGS=$CFLAGS
7983ca08ab68Smrglt_save_GCC=$GCC
7984ca08ab68SmrgGCC=yes
7985ca08ab68SmrgCC=${GCJ-"gcj"}
7986ca08ab68SmrgCFLAGS=$GCJFLAGS
7987ca08ab68Smrgcompiler=$CC
7988ca08ab68Smrg_LT_TAGVAR(compiler, $1)=$CC
7989953daebaSmrg_LT_TAGVAR(LD, $1)=$LD
7990ca08ab68Smrg_LT_CC_BASENAME([$compiler])
7991ca08ab68Smrg
7992ca08ab68Smrg# GCJ did not exist at the time GCC didn't implicitly link libc in.
7993ca08ab68Smrg_LT_TAGVAR(archive_cmds_need_lc, $1)=no
7994ca08ab68Smrg
7995ca08ab68Smrg_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
7996ca08ab68Smrg_LT_TAGVAR(reload_flag, $1)=$reload_flag
7997ca08ab68Smrg_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
7998ca08ab68Smrg
7999ca08ab68Smrg## CAVEAT EMPTOR:
8000ca08ab68Smrg## There is no encapsulation within the following macros, do not change
8001ca08ab68Smrg## the running order or otherwise move them around unless you know exactly
8002ca08ab68Smrg## what you are doing...
8003ca08ab68Smrgif test -n "$compiler"; then
8004ca08ab68Smrg  _LT_COMPILER_NO_RTTI($1)
8005ca08ab68Smrg  _LT_COMPILER_PIC($1)
8006ca08ab68Smrg  _LT_COMPILER_C_O($1)
8007ca08ab68Smrg  _LT_COMPILER_FILE_LOCKS($1)
8008ca08ab68Smrg  _LT_LINKER_SHLIBS($1)
8009ca08ab68Smrg  _LT_LINKER_HARDCODE_LIBPATH($1)
8010ca08ab68Smrg
8011ca08ab68Smrg  _LT_CONFIG($1)
8012ca08ab68Smrgfi
8013ca08ab68Smrg
8014ca08ab68SmrgAC_LANG_RESTORE
8015ca08ab68Smrg
8016ca08ab68SmrgGCC=$lt_save_GCC
8017ca08ab68SmrgCC=$lt_save_CC
8018ca08ab68SmrgCFLAGS=$lt_save_CFLAGS
8019ca08ab68Smrg])# _LT_LANG_GCJ_CONFIG
8020ca08ab68Smrg
8021ca08ab68Smrg
8022ca08ab68Smrg# _LT_LANG_GO_CONFIG([TAG])
8023ca08ab68Smrg# --------------------------
8024ca08ab68Smrg# Ensure that the configuration variables for the GNU Go compiler
8025ca08ab68Smrg# are suitably defined.  These variables are subsequently used by _LT_CONFIG
8026953daebaSmrg# to write the compiler configuration to 'libtool'.
8027ca08ab68Smrgm4_defun([_LT_LANG_GO_CONFIG],
8028ca08ab68Smrg[AC_REQUIRE([LT_PROG_GO])dnl
8029ca08ab68SmrgAC_LANG_SAVE
8030ca08ab68Smrg
8031ca08ab68Smrg# Source file extension for Go test sources.
8032ca08ab68Smrgac_ext=go
8033ca08ab68Smrg
8034ca08ab68Smrg# Object file extension for compiled Go test sources.
8035ca08ab68Smrgobjext=o
8036ca08ab68Smrg_LT_TAGVAR(objext, $1)=$objext
8037ca08ab68Smrg
8038ca08ab68Smrg# Code to be used in simple compile tests
8039ca08ab68Smrglt_simple_compile_test_code="package main; func main() { }"
8040ca08ab68Smrg
8041ca08ab68Smrg# Code to be used in simple link tests
8042ca08ab68Smrglt_simple_link_test_code='package main; func main() { }'
8043ca08ab68Smrg
8044ca08ab68Smrg# ltmain only uses $CC for tagged configurations so make sure $CC is set.
8045ca08ab68Smrg_LT_TAG_COMPILER
8046ca08ab68Smrg
8047ca08ab68Smrg# save warnings/boilerplate of simple test code
8048ca08ab68Smrg_LT_COMPILER_BOILERPLATE
8049ca08ab68Smrg_LT_LINKER_BOILERPLATE
8050ca08ab68Smrg
8051ca08ab68Smrg# Allow CC to be a program name with arguments.
8052ca08ab68Smrglt_save_CC=$CC
8053ca08ab68Smrglt_save_CFLAGS=$CFLAGS
8054ca08ab68Smrglt_save_GCC=$GCC
8055ca08ab68SmrgGCC=yes
8056ca08ab68SmrgCC=${GOC-"gccgo"}
8057ca08ab68SmrgCFLAGS=$GOFLAGS
8058ca08ab68Smrgcompiler=$CC
8059ca08ab68Smrg_LT_TAGVAR(compiler, $1)=$CC
8060953daebaSmrg_LT_TAGVAR(LD, $1)=$LD
8061ca08ab68Smrg_LT_CC_BASENAME([$compiler])
8062ca08ab68Smrg
8063ca08ab68Smrg# Go did not exist at the time GCC didn't implicitly link libc in.
8064ca08ab68Smrg_LT_TAGVAR(archive_cmds_need_lc, $1)=no
8065ca08ab68Smrg
8066ca08ab68Smrg_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
8067ca08ab68Smrg_LT_TAGVAR(reload_flag, $1)=$reload_flag
8068ca08ab68Smrg_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
8069ca08ab68Smrg
8070ca08ab68Smrg## CAVEAT EMPTOR:
8071ca08ab68Smrg## There is no encapsulation within the following macros, do not change
8072ca08ab68Smrg## the running order or otherwise move them around unless you know exactly
8073ca08ab68Smrg## what you are doing...
8074ca08ab68Smrgif test -n "$compiler"; then
8075ca08ab68Smrg  _LT_COMPILER_NO_RTTI($1)
8076ca08ab68Smrg  _LT_COMPILER_PIC($1)
8077ca08ab68Smrg  _LT_COMPILER_C_O($1)
8078ca08ab68Smrg  _LT_COMPILER_FILE_LOCKS($1)
8079ca08ab68Smrg  _LT_LINKER_SHLIBS($1)
8080ca08ab68Smrg  _LT_LINKER_HARDCODE_LIBPATH($1)
8081ca08ab68Smrg
8082ca08ab68Smrg  _LT_CONFIG($1)
8083ca08ab68Smrgfi
8084ca08ab68Smrg
8085ca08ab68SmrgAC_LANG_RESTORE
8086ca08ab68Smrg
8087ca08ab68SmrgGCC=$lt_save_GCC
8088ca08ab68SmrgCC=$lt_save_CC
8089ca08ab68SmrgCFLAGS=$lt_save_CFLAGS
8090ca08ab68Smrg])# _LT_LANG_GO_CONFIG
8091ca08ab68Smrg
8092ca08ab68Smrg
8093ca08ab68Smrg# _LT_LANG_RC_CONFIG([TAG])
8094ca08ab68Smrg# -------------------------
8095ca08ab68Smrg# Ensure that the configuration variables for the Windows resource compiler
8096ca08ab68Smrg# are suitably defined.  These variables are subsequently used by _LT_CONFIG
8097953daebaSmrg# to write the compiler configuration to 'libtool'.
8098ca08ab68Smrgm4_defun([_LT_LANG_RC_CONFIG],
8099ca08ab68Smrg[AC_REQUIRE([LT_PROG_RC])dnl
8100ca08ab68SmrgAC_LANG_SAVE
8101ca08ab68Smrg
8102ca08ab68Smrg# Source file extension for RC test sources.
8103ca08ab68Smrgac_ext=rc
8104ca08ab68Smrg
8105ca08ab68Smrg# Object file extension for compiled RC test sources.
8106ca08ab68Smrgobjext=o
8107ca08ab68Smrg_LT_TAGVAR(objext, $1)=$objext
8108ca08ab68Smrg
8109ca08ab68Smrg# Code to be used in simple compile tests
8110ca08ab68Smrglt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
8111ca08ab68Smrg
8112ca08ab68Smrg# Code to be used in simple link tests
8113953daebaSmrglt_simple_link_test_code=$lt_simple_compile_test_code
8114ca08ab68Smrg
8115ca08ab68Smrg# ltmain only uses $CC for tagged configurations so make sure $CC is set.
8116ca08ab68Smrg_LT_TAG_COMPILER
8117ca08ab68Smrg
8118ca08ab68Smrg# save warnings/boilerplate of simple test code
8119ca08ab68Smrg_LT_COMPILER_BOILERPLATE
8120ca08ab68Smrg_LT_LINKER_BOILERPLATE
8121ca08ab68Smrg
8122ca08ab68Smrg# Allow CC to be a program name with arguments.
8123953daebaSmrglt_save_CC=$CC
8124ca08ab68Smrglt_save_CFLAGS=$CFLAGS
8125ca08ab68Smrglt_save_GCC=$GCC
8126ca08ab68SmrgGCC=
8127ca08ab68SmrgCC=${RC-"windres"}
8128ca08ab68SmrgCFLAGS=
8129ca08ab68Smrgcompiler=$CC
8130ca08ab68Smrg_LT_TAGVAR(compiler, $1)=$CC
8131ca08ab68Smrg_LT_CC_BASENAME([$compiler])
8132ca08ab68Smrg_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
8133ca08ab68Smrg
8134ca08ab68Smrgif test -n "$compiler"; then
8135ca08ab68Smrg  :
8136ca08ab68Smrg  _LT_CONFIG($1)
8137ca08ab68Smrgfi
8138ca08ab68Smrg
8139ca08ab68SmrgGCC=$lt_save_GCC
8140ca08ab68SmrgAC_LANG_RESTORE
8141ca08ab68SmrgCC=$lt_save_CC
8142ca08ab68SmrgCFLAGS=$lt_save_CFLAGS
8143ca08ab68Smrg])# _LT_LANG_RC_CONFIG
8144ca08ab68Smrg
8145ca08ab68Smrg
8146ca08ab68Smrg# LT_PROG_GCJ
8147ca08ab68Smrg# -----------
8148ca08ab68SmrgAC_DEFUN([LT_PROG_GCJ],
8149ca08ab68Smrg[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
8150ca08ab68Smrg  [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
8151ca08ab68Smrg    [AC_CHECK_TOOL(GCJ, gcj,)
8152953daebaSmrg      test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2"
8153ca08ab68Smrg      AC_SUBST(GCJFLAGS)])])[]dnl
8154ca08ab68Smrg])
8155ca08ab68Smrg
8156ca08ab68Smrg# Old name:
8157ca08ab68SmrgAU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
8158ca08ab68Smrgdnl aclocal-1.4 backwards compatibility:
8159ca08ab68Smrgdnl AC_DEFUN([LT_AC_PROG_GCJ], [])
8160ca08ab68Smrg
8161ca08ab68Smrg
8162ca08ab68Smrg# LT_PROG_GO
8163ca08ab68Smrg# ----------
8164ca08ab68SmrgAC_DEFUN([LT_PROG_GO],
8165ca08ab68Smrg[AC_CHECK_TOOL(GOC, gccgo,)
8166ca08ab68Smrg])
8167ca08ab68Smrg
8168ca08ab68Smrg
8169ca08ab68Smrg# LT_PROG_RC
8170ca08ab68Smrg# ----------
8171ca08ab68SmrgAC_DEFUN([LT_PROG_RC],
8172ca08ab68Smrg[AC_CHECK_TOOL(RC, windres,)
8173ca08ab68Smrg])
8174ca08ab68Smrg
8175ca08ab68Smrg# Old name:
8176ca08ab68SmrgAU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
8177ca08ab68Smrgdnl aclocal-1.4 backwards compatibility:
8178ca08ab68Smrgdnl AC_DEFUN([LT_AC_PROG_RC], [])
8179ca08ab68Smrg
8180ca08ab68Smrg
8181ca08ab68Smrg# _LT_DECL_EGREP
8182ca08ab68Smrg# --------------
8183ca08ab68Smrg# If we don't have a new enough Autoconf to choose the best grep
8184ca08ab68Smrg# available, choose the one first in the user's PATH.
8185ca08ab68Smrgm4_defun([_LT_DECL_EGREP],
8186ca08ab68Smrg[AC_REQUIRE([AC_PROG_EGREP])dnl
8187ca08ab68SmrgAC_REQUIRE([AC_PROG_FGREP])dnl
8188ca08ab68Smrgtest -z "$GREP" && GREP=grep
8189ca08ab68Smrg_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
8190ca08ab68Smrg_LT_DECL([], [EGREP], [1], [An ERE matcher])
8191ca08ab68Smrg_LT_DECL([], [FGREP], [1], [A literal string matcher])
8192ca08ab68Smrgdnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
8193ca08ab68SmrgAC_SUBST([GREP])
8194ca08ab68Smrg])
8195ca08ab68Smrg
8196ca08ab68Smrg
8197ca08ab68Smrg# _LT_DECL_OBJDUMP
8198ca08ab68Smrg# --------------
8199ca08ab68Smrg# If we don't have a new enough Autoconf to choose the best objdump
8200ca08ab68Smrg# available, choose the one first in the user's PATH.
8201ca08ab68Smrgm4_defun([_LT_DECL_OBJDUMP],
8202ca08ab68Smrg[AC_CHECK_TOOL(OBJDUMP, objdump, false)
8203ca08ab68Smrgtest -z "$OBJDUMP" && OBJDUMP=objdump
8204ca08ab68Smrg_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
8205ca08ab68SmrgAC_SUBST([OBJDUMP])
8206ca08ab68Smrg])
8207ca08ab68Smrg
8208ca08ab68Smrg# _LT_DECL_DLLTOOL
8209ca08ab68Smrg# ----------------
8210ca08ab68Smrg# Ensure DLLTOOL variable is set.
8211ca08ab68Smrgm4_defun([_LT_DECL_DLLTOOL],
8212ca08ab68Smrg[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
8213ca08ab68Smrgtest -z "$DLLTOOL" && DLLTOOL=dlltool
8214ca08ab68Smrg_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
8215ca08ab68SmrgAC_SUBST([DLLTOOL])
8216ca08ab68Smrg])
8217ca08ab68Smrg
8218eceda581Smrg# _LT_DECL_FILECMD
8219eceda581Smrg# ----------------
8220eceda581Smrg# Check for a file(cmd) program that can be used to detect file type and magic
8221eceda581Smrgm4_defun([_LT_DECL_FILECMD],
8222eceda581Smrg[AC_CHECK_TOOL([FILECMD], [file], [:])
8223eceda581Smrg_LT_DECL([], [FILECMD], [1], [A file(cmd) program that detects file types])
8224eceda581Smrg])# _LD_DECL_FILECMD
8225eceda581Smrg
8226ca08ab68Smrg# _LT_DECL_SED
8227ca08ab68Smrg# ------------
8228ca08ab68Smrg# Check for a fully-functional sed program, that truncates
8229ca08ab68Smrg# as few characters as possible.  Prefer GNU sed if found.
8230ca08ab68Smrgm4_defun([_LT_DECL_SED],
8231ca08ab68Smrg[AC_PROG_SED
8232ca08ab68Smrgtest -z "$SED" && SED=sed
8233ca08ab68SmrgXsed="$SED -e 1s/^X//"
8234ca08ab68Smrg_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
8235ca08ab68Smrg_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
8236ca08ab68Smrg    [Sed that helps us avoid accidentally triggering echo(1) options like -n])
8237ca08ab68Smrg])# _LT_DECL_SED
8238ca08ab68Smrg
8239ca08ab68Smrgm4_ifndef([AC_PROG_SED], [
8240ca08ab68Smrg############################################################
8241ca08ab68Smrg# NOTE: This macro has been submitted for inclusion into   #
8242ca08ab68Smrg#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
8243ca08ab68Smrg#  a released version of Autoconf we should remove this    #
8244ca08ab68Smrg#  macro and use it instead.                               #
8245ca08ab68Smrg############################################################
8246ca08ab68Smrg
8247ca08ab68Smrgm4_defun([AC_PROG_SED],
8248ca08ab68Smrg[AC_MSG_CHECKING([for a sed that does not truncate output])
8249ca08ab68SmrgAC_CACHE_VAL(lt_cv_path_SED,
8250ca08ab68Smrg[# Loop through the user's path and test for sed and gsed.
8251ca08ab68Smrg# Then use that list of sed's as ones to test for truncation.
8252ca08ab68Smrgas_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8253ca08ab68Smrgfor as_dir in $PATH
8254ca08ab68Smrgdo
8255ca08ab68Smrg  IFS=$as_save_IFS
8256ca08ab68Smrg  test -z "$as_dir" && as_dir=.
8257ca08ab68Smrg  for lt_ac_prog in sed gsed; do
8258ca08ab68Smrg    for ac_exec_ext in '' $ac_executable_extensions; do
8259ca08ab68Smrg      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
8260ca08ab68Smrg        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
8261ca08ab68Smrg      fi
8262ca08ab68Smrg    done
8263ca08ab68Smrg  done
8264ca08ab68Smrgdone
8265ca08ab68SmrgIFS=$as_save_IFS
8266ca08ab68Smrglt_ac_max=0
8267ca08ab68Smrglt_ac_count=0
8268ca08ab68Smrg# Add /usr/xpg4/bin/sed as it is typically found on Solaris
8269ca08ab68Smrg# along with /bin/sed that truncates output.
8270ca08ab68Smrgfor lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
8271953daebaSmrg  test ! -f "$lt_ac_sed" && continue
8272ca08ab68Smrg  cat /dev/null > conftest.in
8273ca08ab68Smrg  lt_ac_count=0
8274ca08ab68Smrg  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
8275ca08ab68Smrg  # Check for GNU sed and select it if it is found.
8276ca08ab68Smrg  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
8277ca08ab68Smrg    lt_cv_path_SED=$lt_ac_sed
8278ca08ab68Smrg    break
8279ca08ab68Smrg  fi
8280ca08ab68Smrg  while true; do
8281ca08ab68Smrg    cat conftest.in conftest.in >conftest.tmp
8282ca08ab68Smrg    mv conftest.tmp conftest.in
8283ca08ab68Smrg    cp conftest.in conftest.nl
8284ca08ab68Smrg    echo >>conftest.nl
8285ca08ab68Smrg    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
8286ca08ab68Smrg    cmp -s conftest.out conftest.nl || break
8287ca08ab68Smrg    # 10000 chars as input seems more than enough
8288953daebaSmrg    test 10 -lt "$lt_ac_count" && break
8289ca08ab68Smrg    lt_ac_count=`expr $lt_ac_count + 1`
8290953daebaSmrg    if test "$lt_ac_count" -gt "$lt_ac_max"; then
8291ca08ab68Smrg      lt_ac_max=$lt_ac_count
8292ca08ab68Smrg      lt_cv_path_SED=$lt_ac_sed
8293ca08ab68Smrg    fi
8294ca08ab68Smrg  done
8295ca08ab68Smrgdone
8296ca08ab68Smrg])
8297ca08ab68SmrgSED=$lt_cv_path_SED
8298ca08ab68SmrgAC_SUBST([SED])
8299ca08ab68SmrgAC_MSG_RESULT([$SED])
8300ca08ab68Smrg])#AC_PROG_SED
8301ca08ab68Smrg])#m4_ifndef
8302ca08ab68Smrg
8303ca08ab68Smrg# Old name:
8304ca08ab68SmrgAU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
8305ca08ab68Smrgdnl aclocal-1.4 backwards compatibility:
8306ca08ab68Smrgdnl AC_DEFUN([LT_AC_PROG_SED], [])
8307ca08ab68Smrg
8308ca08ab68Smrg
8309ca08ab68Smrg# _LT_CHECK_SHELL_FEATURES
8310ca08ab68Smrg# ------------------------
8311ca08ab68Smrg# Find out whether the shell is Bourne or XSI compatible,
8312ca08ab68Smrg# or has some other useful features.
8313ca08ab68Smrgm4_defun([_LT_CHECK_SHELL_FEATURES],
8314953daebaSmrg[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
8315ca08ab68Smrg  lt_unset=unset
8316ca08ab68Smrgelse
8317ca08ab68Smrg  lt_unset=false
8318ca08ab68Smrgfi
8319ca08ab68Smrg_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
8320ca08ab68Smrg
8321ca08ab68Smrg# test EBCDIC or ASCII
8322ca08ab68Smrgcase `echo X|tr X '\101'` in
8323ca08ab68Smrg A) # ASCII based system
8324ca08ab68Smrg    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
8325ca08ab68Smrg  lt_SP2NL='tr \040 \012'
8326ca08ab68Smrg  lt_NL2SP='tr \015\012 \040\040'
8327ca08ab68Smrg  ;;
8328ca08ab68Smrg *) # EBCDIC based system
8329ca08ab68Smrg  lt_SP2NL='tr \100 \n'
8330ca08ab68Smrg  lt_NL2SP='tr \r\n \100\100'
8331ca08ab68Smrg  ;;
8332ca08ab68Smrgesac
8333ca08ab68Smrg_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
8334ca08ab68Smrg_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
8335ca08ab68Smrg])# _LT_CHECK_SHELL_FEATURES
8336ca08ab68Smrg
8337ca08ab68Smrg
8338ca08ab68Smrg# _LT_PATH_CONVERSION_FUNCTIONS
8339ca08ab68Smrg# -----------------------------
8340953daebaSmrg# Determine what file name conversion functions should be used by
8341ca08ab68Smrg# func_to_host_file (and, implicitly, by func_to_host_path).  These are needed
8342ca08ab68Smrg# for certain cross-compile configurations and native mingw.
8343ca08ab68Smrgm4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
8344ca08ab68Smrg[AC_REQUIRE([AC_CANONICAL_HOST])dnl
8345ca08ab68SmrgAC_REQUIRE([AC_CANONICAL_BUILD])dnl
8346ca08ab68SmrgAC_MSG_CHECKING([how to convert $build file names to $host format])
8347ca08ab68SmrgAC_CACHE_VAL(lt_cv_to_host_file_cmd,
8348ca08ab68Smrg[case $host in
8349ca08ab68Smrg  *-*-mingw* )
8350ca08ab68Smrg    case $build in
8351ca08ab68Smrg      *-*-mingw* ) # actually msys
8352ca08ab68Smrg        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
8353ca08ab68Smrg        ;;
8354ca08ab68Smrg      *-*-cygwin* )
8355ca08ab68Smrg        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
8356ca08ab68Smrg        ;;
8357ca08ab68Smrg      * ) # otherwise, assume *nix
8358ca08ab68Smrg        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
8359ca08ab68Smrg        ;;
8360ca08ab68Smrg    esac
8361ca08ab68Smrg    ;;
8362ca08ab68Smrg  *-*-cygwin* )
8363ca08ab68Smrg    case $build in
8364ca08ab68Smrg      *-*-mingw* ) # actually msys
8365ca08ab68Smrg        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
8366ca08ab68Smrg        ;;
8367ca08ab68Smrg      *-*-cygwin* )
8368ca08ab68Smrg        lt_cv_to_host_file_cmd=func_convert_file_noop
8369ca08ab68Smrg        ;;
8370ca08ab68Smrg      * ) # otherwise, assume *nix
8371ca08ab68Smrg        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
8372ca08ab68Smrg        ;;
8373ca08ab68Smrg    esac
8374ca08ab68Smrg    ;;
8375ca08ab68Smrg  * ) # unhandled hosts (and "normal" native builds)
8376ca08ab68Smrg    lt_cv_to_host_file_cmd=func_convert_file_noop
8377ca08ab68Smrg    ;;
8378ca08ab68Smrgesac
8379ca08ab68Smrg])
8380ca08ab68Smrgto_host_file_cmd=$lt_cv_to_host_file_cmd
8381ca08ab68SmrgAC_MSG_RESULT([$lt_cv_to_host_file_cmd])
8382ca08ab68Smrg_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
8383ca08ab68Smrg         [0], [convert $build file names to $host format])dnl
8384ca08ab68Smrg
8385ca08ab68SmrgAC_MSG_CHECKING([how to convert $build file names to toolchain format])
8386ca08ab68SmrgAC_CACHE_VAL(lt_cv_to_tool_file_cmd,
8387ca08ab68Smrg[#assume ordinary cross tools, or native build.
8388ca08ab68Smrglt_cv_to_tool_file_cmd=func_convert_file_noop
8389ca08ab68Smrgcase $host in
8390ca08ab68Smrg  *-*-mingw* )
8391ca08ab68Smrg    case $build in
8392ca08ab68Smrg      *-*-mingw* ) # actually msys
8393ca08ab68Smrg        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
8394ca08ab68Smrg        ;;
8395ca08ab68Smrg    esac
8396ca08ab68Smrg    ;;
8397ca08ab68Smrgesac
8398ca08ab68Smrg])
8399ca08ab68Smrgto_tool_file_cmd=$lt_cv_to_tool_file_cmd
8400ca08ab68SmrgAC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
8401ca08ab68Smrg_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
8402ca08ab68Smrg         [0], [convert $build files to toolchain format])dnl
8403ca08ab68Smrg])# _LT_PATH_CONVERSION_FUNCTIONS
8404