8369 lines · 298.6 KB · Text
RawDownload
# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-##   Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc.#   Written by Gordon Matzigkeit, 1996## This file is free software; the Free Software Foundation gives# unlimited permission to copy and/or distribute it, with or without# modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl# Copyright (C) 2014 Free Software Foundation, Inc.# This is free software; see the source for copying conditions.  There is NO# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2 of of the License, or# (at your option) any later version.## As a special exception to the GNU General Public License, if you# distribute this file as part of a program or library that is built# using GNU Libtool, you may include this file under the  same# distribution terms that you use for the rest of that program.## GNU Libtool is distributed in the hope that it will be useful, but# WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program.  If not, see <http://www.gnu.org/licenses/>.]) # serial 58 LT_INIT  # LT_PREREQ(VERSION)# ------------------# Complain and exit if this libtool version is less that VERSION.m4_defun([LT_PREREQ],[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,       [m4_default([$3],		   [m4_fatal([Libtool version $1 or higher is required],		             63)])],       [$2])])  # _LT_CHECK_BUILDDIR# ------------------# Complain if the absolute build directory name contains unusual charactersm4_defun([_LT_CHECK_BUILDDIR],[case `pwd` in  *\ * | *\	*)    AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;esac])  # LT_INIT([OPTIONS])# ------------------AC_DEFUN([LT_INIT],[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECKAC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnlAC_BEFORE([$0], [LT_LANG])dnlAC_BEFORE([$0], [LT_OUTPUT])dnlAC_BEFORE([$0], [LTDL_INIT])dnlm4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default:m4_pattern_forbid([^_?LT_[A-Z_]+$])dnlm4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnldnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4dnl unless we require an AC_DEFUNed macro:AC_REQUIRE([LTOPTIONS_VERSION])dnlAC_REQUIRE([LTSUGAR_VERSION])dnlAC_REQUIRE([LTVERSION_VERSION])dnlAC_REQUIRE([LTOBSOLETE_VERSION])dnlm4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS_LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when neededLIBTOOL_DEPS=$ltmain # Always use our own libtool.LIBTOOL='$(SHELL) $(top_builddir)/libtool'AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once:m4_define([LT_INIT])])# LT_INIT # Old names:AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])dnl aclocal-1.4 backwards compatibility:dnl AC_DEFUN([AC_PROG_LIBTOOL], [])dnl AC_DEFUN([AM_PROG_LIBTOOL], [])  # _LT_PREPARE_CC_BASENAME# -----------------------m4_defun([_LT_PREPARE_CC_BASENAME], [# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.func_cc_basename (){    for cc_temp in @S|@*""; do      case $cc_temp in        compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;        distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;        \-*) ;;        *) break;;      esac    done    func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`}])# _LT_PREPARE_CC_BASENAME  # _LT_CC_BASENAME(CC)# -------------------# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME,# but that macro is also expanded into generated libtool script, which# arranges for $SED and $ECHO to be set by different means.m4_defun([_LT_CC_BASENAME],[m4_require([_LT_PREPARE_CC_BASENAME])dnlAC_REQUIRE([_LT_DECL_SED])dnlAC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnlfunc_cc_basename $1cc_basename=$func_cc_basename_result])  # _LT_FILEUTILS_DEFAULTS# ----------------------# It is okay to use these file commands and assume they have been set# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'.m4_defun([_LT_FILEUTILS_DEFAULTS],[: ${CP="cp -f"}: ${MV="mv -f"}: ${RM="rm -f"}])# _LT_FILEUTILS_DEFAULTS  # _LT_SETUP# ---------m4_defun([_LT_SETUP],[AC_REQUIRE([AC_CANONICAL_HOST])dnlAC_REQUIRE([AC_CANONICAL_BUILD])dnlAC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnlAC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnldnl_LT_DECL([], [host_alias], [0], [The host system])dnl_LT_DECL([], [host], [0])dnl_LT_DECL([], [host_os], [0])dnldnl_LT_DECL([], [build_alias], [0], [The build system])dnl_LT_DECL([], [build], [0])dnl_LT_DECL([], [build_os], [0])dnldnlAC_REQUIRE([AC_PROG_CC])dnlAC_REQUIRE([LT_PATH_LD])dnlAC_REQUIRE([LT_PATH_NM])dnldnlAC_REQUIRE([AC_PROG_LN_S])dnltest -z "$LN_S" && LN_S="ln -s"_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnldnlAC_REQUIRE([LT_CMD_MAX_LEN])dnl_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnldnlm4_require([_LT_FILEUTILS_DEFAULTS])dnlm4_require([_LT_CHECK_SHELL_FEATURES])dnlm4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnlm4_require([_LT_CMD_RELOAD])dnlm4_require([_LT_CHECK_MAGIC_METHOD])dnlm4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnlm4_require([_LT_CMD_OLD_ARCHIVE])dnlm4_require([_LT_CMD_GLOBAL_SYMBOLS])dnlm4_require([_LT_WITH_SYSROOT])dnlm4_require([_LT_CMD_TRUNCATE])dnl _LT_CONFIG_LIBTOOL_INIT([# See if we are running on zsh, and set the options that allow our# commands through without removal of \ escapes INIT.if test -n "\${ZSH_VERSION+set}"; then   setopt NO_GLOB_SUBSTfi])if test -n "${ZSH_VERSION+set}"; then   setopt NO_GLOB_SUBSTfi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os inaix3*)  # AIX sometimes has problems with the GCC collect2 program.  For some  # reason, if we set the COLLECT_NAMES environment variable, the problems  # vanish in a puff of smoke.  if test set != "${COLLECT_NAMES+set}"; then    COLLECT_NAMES=    export COLLECT_NAMES  fi  ;;esac # Global variables:ofile=libtoolcan_build_shared=yes # All known linkers require a '.a' archive for static linking (except MSVC,# which needs '.lib').libext=a with_gnu_ld=$lt_cv_prog_gnu_ld old_CC=$CCold_CFLAGS=$CFLAGS # Set sane defaults for various variablestest -z "$CC" && CC=cctest -z "$LTCC" && LTCC=$CCtest -z "$LTCFLAGS" && LTCFLAGS=$CFLAGStest -z "$LD" && LD=ldtest -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires ittest -z "$MAGIC_CMD" && MAGIC_CMD=filecase $deplibs_check_method infile_magic*)  if test "$file_magic_cmd" = '$MAGIC_CMD'; then    _LT_PATH_MAGIC  fi  ;;esac # Use C for the default configuration in the libtool scriptLT_SUPPORTED_TAG([CC])_LT_LANG_C_CONFIG_LT_LANG_DEFAULT_CONFIG_LT_CONFIG_COMMANDS])# _LT_SETUP  # _LT_PREPARE_SED_QUOTE_VARS# --------------------------# Define a few sed substitution that help us do robust quoting.m4_defun([_LT_PREPARE_SED_QUOTE_VARS],[# Backslashify metacharacters that are still active within# double-quoted strings.sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references.double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a# double_quote_subst'ed string.delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote.delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressionsno_glob_subst='s/\*/\\\*/g']) # _LT_PROG_LTMAIN# ---------------# Note that this code is called both from 'configure', and 'config.status'# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,# 'config.status' has no value for ac_aux_dir unless we are using Automake,# so we pass a copy along to make sure it has a sensible value anyway.m4_defun([_LT_PROG_LTMAIN],[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])ltmain=$ac_aux_dir/ltmain.sh])# _LT_PROG_LTMAIN  ## ------------------------------------- #### Accumulate code for creating libtool. #### ------------------------------------- ## # So that we can recreate a full libtool script including additional# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS# in macros and then make a single call at the end using the 'libtool'# label.  # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])# ----------------------------------------# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.m4_define([_LT_CONFIG_LIBTOOL_INIT],[m4_ifval([$1],          [m4_append([_LT_OUTPUT_LIBTOOL_INIT],                     [$1])])]) # Initialize.m4_define([_LT_OUTPUT_LIBTOOL_INIT])  # _LT_CONFIG_LIBTOOL([COMMANDS])# ------------------------------# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.m4_define([_LT_CONFIG_LIBTOOL],[m4_ifval([$1],          [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],                     [$1])])]) # Initialize.m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])  # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])# -----------------------------------------------------m4_defun([_LT_CONFIG_SAVE_COMMANDS],[_LT_CONFIG_LIBTOOL([$1])_LT_CONFIG_LIBTOOL_INIT([$2])])  # _LT_FORMAT_COMMENT([COMMENT])# -----------------------------# Add leading comment marks to the start of each line, and a trailing# full-stop to the whole comment if one is not present already.m4_define([_LT_FORMAT_COMMENT],[m4_ifval([$1], [m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],              [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]))])   ## ------------------------ #### FIXME: Eliminate VARNAME #### ------------------------ ##  # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])# -------------------------------------------------------------------# CONFIGNAME is the name given to the value in the libtool script.# VARNAME is the (base) name used in the configure script.# VALUE may be 0, 1 or 2 for a computed quote escaped value based on# VARNAME.  Any other value will be used directly.m4_define([_LT_DECL],[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],    [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],	[m4_ifval([$1], [$1], [$2])])    lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])    m4_ifval([$4],	[lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])    lt_dict_add_subkey([lt_decl_dict], [$2],	[tagged?], [m4_ifval([$5], [yes], [no])])])])  # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])# --------------------------------------------------------m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])  # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])# ------------------------------------------------m4_define([lt_decl_tag_varnames],[_lt_decl_filter([tagged?], [yes], $@)])  # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])# ---------------------------------------------------------m4_define([_lt_decl_filter],[m4_case([$#],  [0], [m4_fatal([$0: too few arguments: $#])],  [1], [m4_fatal([$0: too few arguments: $#: $1])],  [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],  [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],  [lt_dict_filter([lt_decl_dict], $@)])[]dnl])  # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])# --------------------------------------------------m4_define([lt_decl_quote_varnames],[_lt_decl_filter([value], [1], $@)])  # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])# ---------------------------------------------------m4_define([lt_decl_dquote_varnames],[_lt_decl_filter([value], [2], $@)])  # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])# ---------------------------------------------------m4_define([lt_decl_varnames_tagged],[m4_assert([$# <= 2])dnl_$0(m4_quote(m4_default([$1], [[, ]])),    m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),    m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])m4_define([_lt_decl_varnames_tagged],[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])  # lt_decl_all_varnames([SEPARATOR], [VARNAME1...])# ------------------------------------------------m4_define([lt_decl_all_varnames],[_$0(m4_quote(m4_default([$1], [[, ]])),     m4_if([$2], [],	   m4_quote(lt_decl_varnames),	m4_quote(m4_shift($@))))[]dnl])m4_define([_lt_decl_all_varnames],[lt_join($@, lt_decl_varnames_tagged([$1],			lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl])  # _LT_CONFIG_STATUS_DECLARE([VARNAME])# ------------------------------------# Quote a variable value, and forward it to 'config.status' so that its# declaration there will have the same value as in 'configure'.  VARNAME# must have a single quote delimited value for this to work.m4_define([_LT_CONFIG_STATUS_DECLARE],[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])  # _LT_CONFIG_STATUS_DECLARATIONS# ------------------------------# We delimit libtool config variables with single quotes, so when# we write them to config.status, we have to be sure to quote all# embedded single quotes properly.  In configure, this macro expands# each variable declared with _LT_DECL (and _LT_TAGDECL) into:##    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),    [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])  # _LT_LIBTOOL_TAGS# ----------------# Output comment and list of tags supported by the scriptm4_defun([_LT_LIBTOOL_TAGS],[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnlavailable_tags='_LT_TAGS'dnl])  # _LT_LIBTOOL_DECLARE(VARNAME, [TAG])# -----------------------------------# Extract the dictionary values for VARNAME (optionally with TAG) and# expand to a commented shell variable setting:##    # Some comment about what VAR is for.#    visible_name=$lt_internal_namem4_define([_LT_LIBTOOL_DECLARE],[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],					   [description])))[]dnlm4_pushdef([_libtool_name],    m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnlm4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),    [0], [_libtool_name=[$]$1],    [1], [_libtool_name=$lt_[]$1],    [2], [_libtool_name=$lt_[]$1],    [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnlm4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl])  # _LT_LIBTOOL_CONFIG_VARS# -----------------------# Produce commented declarations of non-tagged libtool config variables# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool'# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG# section) are produced by _LT_LIBTOOL_TAG_VARS.m4_defun([_LT_LIBTOOL_CONFIG_VARS],[m4_foreach([_lt_var],    m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])  # _LT_LIBTOOL_TAG_VARS(TAG)# -------------------------m4_define([_LT_LIBTOOL_TAG_VARS],[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])

Lines 1–500 of 8369.