You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
7997 lines
280 KiB
7997 lines
280 KiB
# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
|
|
#
|
|
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
|
|
# 2006, 2007, 2008, 2009, 2010, 2011 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) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
|
|
# 2006, 2007, 2008, 2009, 2010, 2011 Free Software
|
|
# Foundation, Inc.
|
|
# Written by Gordon Matzigkeit, 1996
|
|
#
|
|
# This file is part of GNU Libtool.
|
|
#
|
|
# 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
|
|
# 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 GNU Libtool; see the file COPYING. If not, a copy
|
|
# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
|
|
# obtained by writing to the Free Software Foundation, Inc.,
|
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
])
|
|
|
|
# serial 57 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 characters
|
|
m4_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.58])dnl We use AC_INCLUDES_DEFAULT
|
|
AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
|
|
AC_BEFORE([$0], [LT_LANG])dnl
|
|
AC_BEFORE([$0], [LT_OUTPUT])dnl
|
|
AC_BEFORE([$0], [LTDL_INIT])dnl
|
|
m4_require([_LT_CHECK_BUILDDIR])dnl
|
|
|
|
dnl Autoconf doesn't catch unexpanded LT_ macros by default:
|
|
m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
|
|
m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
|
|
dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
|
|
dnl unless we require an AC_DEFUNed macro:
|
|
AC_REQUIRE([LTOPTIONS_VERSION])dnl
|
|
AC_REQUIRE([LTSUGAR_VERSION])dnl
|
|
AC_REQUIRE([LTVERSION_VERSION])dnl
|
|
AC_REQUIRE([LTOBSOLETE_VERSION])dnl
|
|
m4_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 needed
|
|
LIBTOOL_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_CC_BASENAME(CC)
|
|
# -------------------
|
|
# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
|
|
m4_defun([_LT_CC_BASENAME],
|
|
[for cc_temp in $1""; do
|
|
case $cc_temp in
|
|
compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
|
|
distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
|
|
\-*) ;;
|
|
*) break;;
|
|
esac
|
|
done
|
|
cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
|
|
])
|
|
|
|
|
|
# _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])dnl
|
|
AC_REQUIRE([AC_CANONICAL_BUILD])dnl
|
|
AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
|
|
AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
|
|
|
|
_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
|
|
dnl
|
|
_LT_DECL([], [host_alias], [0], [The host system])dnl
|
|
_LT_DECL([], [host], [0])dnl
|
|
_LT_DECL([], [host_os], [0])dnl
|
|
dnl
|
|
_LT_DECL([], [build_alias], [0], [The build system])dnl
|
|
_LT_DECL([], [build], [0])dnl
|
|
_LT_DECL([], [build_os], [0])dnl
|
|
dnl
|
|
AC_REQUIRE([AC_PROG_CC])dnl
|
|
AC_REQUIRE([LT_PATH_LD])dnl
|
|
AC_REQUIRE([LT_PATH_NM])dnl
|
|
dnl
|
|
AC_REQUIRE([AC_PROG_LN_S])dnl
|
|
test -z "$LN_S" && LN_S="ln -s"
|
|
_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
|
|
dnl
|
|
AC_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 "")])dnl
|
|
dnl
|
|
m4_require([_LT_FILEUTILS_DEFAULTS])dnl
|
|
m4_require([_LT_CHECK_SHELL_FEATURES])dnl
|
|
m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
|
|
m4_require([_LT_CMD_RELOAD])dnl
|
|
m4_require([_LT_CHECK_MAGIC_METHOD])dnl
|
|
m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
|
|
m4_require([_LT_CMD_OLD_ARCHIVE])dnl
|
|
m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
|
|
m4_require([_LT_WITH_SYSROOT])dnl
|
|
|
|
_LT_CONFIG_LIBTOOL_INIT([
|
|
# See if we are running on zsh, and set the options which allow our
|
|
# commands through without removal of \ escapes INIT.
|
|
if test -n "\${ZSH_VERSION+set}" ; then
|
|
setopt NO_GLOB_SUBST
|
|
fi
|
|
])
|
|
if test -n "${ZSH_VERSION+set}" ; then
|
|
setopt NO_GLOB_SUBST
|
|
fi
|
|
|
|
_LT_CHECK_OBJDIR
|
|
|
|
m4_require([_LT_TAG_COMPILER])dnl
|
|
|
|
case $host_os in
|
|
aix3*)
|
|
# 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 "X${COLLECT_NAMES+set}" != Xset; then
|
|
COLLECT_NAMES=
|
|
export COLLECT_NAMES
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
# Global variables:
|
|
ofile=libtool
|
|
can_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="$CC"
|
|
old_CFLAGS="$CFLAGS"
|
|
|
|
# Set sane defaults for various variables
|
|
test -z "$CC" && CC=cc
|
|
test -z "$LTCC" && LTCC=$CC
|
|
test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
|
|
test -z "$LD" && LD=ld
|
|
test -z "$ac_objext" && ac_objext=o
|
|
|
|
_LT_CC_BASENAME([$compiler])
|
|
|
|
# Only perform the check for file, if the check method requires it
|
|
test -z "$MAGIC_CMD" && MAGIC_CMD=file
|
|
case $deplibs_check_method in
|
|
file_magic*)
|
|
if test "$file_magic_cmd" = '$MAGIC_CMD'; then
|
|
_LT_PATH_MAGIC
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
# Use C for the default configuration in the libtool script
|
|
LT_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 expressions
|
|
no_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], $@)])
|
|