mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-21 04:42:53 +08:00
1ff6de0312
This is quite complicated because the CTF section's contents depend on the final contents of the symtab and strtab, because it has two sections whose contents are shuffled to be in 1:1 correspondence with the symtab, and an internal strtab that gets deduplicated against the ELF strtab (with offsets adjusted to point into the ELF strtab instead). It is also compressed if large enough, so its size depends on its contents! So we cannot construct it as early as most sections: we cannot even *begin* construction until after the symtab and strtab are finalized. Thankfully there is already one section treated similarly: compressed debugging sections: the only differences are that compressed debugging sections have extra handling to deal with their changing name if compressed (CTF sections are always called ".ctf" for now, though we have reserved ".ctf.*" against future use), and that compressed debugging sections have previously-uncompressed content which has to be stashed away for later compression, while CTF sections have no content at all until we generate it (very late). BFD also cannot do the link itself: libctf knows how to do it, and BFD cannot call libctf directly because libctf already depends on bfd for file I/O. So we have to use a pair of callbacks, one, examine_strtab, which allows a caller to examine the symtab and strtab after finalization (called from elf_link_swap_symbols_out(), right before the symtabs are written, and after the strtab has been finalized), and one which actually does the emission (called emit_ctf simply because it is grouped with a bunch of section-specific late-emission function calls at the bottom of bfd_elf_final_link, and a section-specific name seems best for that). emit_ctf is actually called *twice*: once from lang_process if the emulation suggests that this bfd target does not examine the symtab or strtab, and once via a bfd callback if it does. (This means that non-ELF targets still get CTF emitted, even though the late CTF emission stage is never called for them). v2: merged with non-ELF support patch: slight commit message adjustments. v3: do not spend time merging CTF, or crash, if the CTF section is explicitly discarded. Do not try to merge or compress CTF unless linking. v4: add CTF_COMPRESSION_THRESHOLD. Annul the freed input ctf_file_t's after writeout: set SEC_IN_MEMORY on the output contents so a future bfd enhancement knows it could free it. Add SEC_LINKER_CREATED | SEC_KEEP to avoid having to add .ctf to the linker script. Drop now-unnecessary ldlang.h-level elf-bfd.h include and hackery around it. Adapt to elf32.em->elf.em and elf-generic.em->ldelf*.c changes. v5: fix tabdamage. Drop #inclusions in .h files: include in .c files, .em files, and use struct forwards instead. Use bfd_section_is_ctf inline function rather than SECTION_IS_CTF macro. Move a few comments. * Makefile.def (dependencies): all-ld depends on all-libctf. * Makefile.in: Regenerated. include/ * bfdlink.h (elf_strtab_hash): New forward. (elf_sym_strtab): Likewise. (struct bfd_link_callbacks <examine_strtab>): New. (struct bfd_link_callbacks <emit_ctf>): Likewise. bfd/ * elf-bfd.h (bfd_section_is_ctf): New inline function. * elf.c (special_sections_c): Add ".ctf". (assign_file_positions_for_non_load_sections): Note that compressed debugging sections etc are not assigned here. Treat CTF sections like SEC_ELF_COMPRESS sections when is_linker_output: sh_offset -1. (assign_file_positions_except_relocs): Likewise. (find_section_in_list): Note that debugging and CTF sections, as well as reloc sections, are assigned later. (_bfd_elf_assign_file_positions_for_non_load): CTF sections get their size and contents updated. (_bfd_elf_set_section_contents): Skip CTF sections: unlike compressed sections, they have no uncompressed content to copy at this stage. * elflink.c (elf_link_swap_symbols_out): Call the examine_strtab callback right before the strtab is written out. (bfd_elf_final_link): Don't cache the section contents of CTF sections: they are not populated yet. Call the emit_ctf callback right at the end, after all the symbols and strings are flushed out. ld/ * ldlang.h: (struct lang_input_statement_struct): Add the_ctf. (struct elf_sym_strtab): Add forward. (struct elf_strtab_hash): Likewise. (ldlang_ctf_apply_strsym): Declare. (ldlang_write_ctf_late): Likewise. * ldemul.h (ldemul_emit_ctf_early): New. (ldemul_examine_strtab_for_ctf): Likewise. (ld_emulation_xfer_type) <emit_ctf_early>: Likewise. (ld_emulation_xfer_type) <examine_strtab_for_ctf>: Likewise. * ldemul.c (ldemul_emit_ctf_early): New. (ldemul_examine_strtab_for_ctf): Likewise. * ldlang.c: Include ctf-api.h. (CTF_COMPRESSION_THRESHOLD): New. (ctf_output): New. Initialized in... (ldlang_open_ctf): ... this new function. Open all the CTF sections in the input files: mark them non-loaded and empty so as not to copy their contents to the output, but linker-created so the section gets created in the target. (ldlang_merge_ctf): New, merge types via ctf_link_add_ctf and ctf_link. (ldlang_ctf_apply_strsym): New, an examine_strtab callback: wrap ldemul_examine_strtab_for_ctf. (lang_write_ctf): New, write out the CTF section. (ldlang_write_ctf_late): New, late call via bfd's emit_ctf hook. (lang_process): Call ldlang_open_ctf, ldlang_merge_ctf, and lang_write_ctf. * ldmain.c (link_callbacks): Add ldlang_ctf_apply_strsym, ldlang_write_ctf_late. * emultempl/aix.em: Add ctf-api.h. * emultempl/armcoff.em: Likewise. * emultempl/beos.em: Likewise. * emultempl/elf.em: Likewise. * emultempl/generic.em: Likewise. * emultempl/linux.em: Likewise. * emultempl/msp430.em: Likewise. * emultempl/pe.em: Likewise. * emultempl/pep.em: Likewise. * emultempl/ticoff.em: Likewise. * emultempl/vanilla.em: Likewise. * ldcref.c: Likewise. * ldctor.c: Likewise. * ldelf.c: Likewise. * ldelfgen.c: Likewise. * ldemul.c: Likewise. * ldexp.c: Likewise. * ldfile.c: Likewise. * ldgram.c: Likewise. * ldlex.l: Likewise. * ldmain.c: Likewise. * ldmisc.c: Likewise. * ldver.c: Likewise. * ldwrite.c: Likewise. * lexsup.c: Likewise. * mri.c: Likewise. * pe-dll.c: Likewise. * plugin.c: Likewise. * ldelfgen.c (ldelf_emit_ctf_early): New. (ldelf_examine_strtab_for_ctf): tell libctf about the symtab and strtab. (struct ctf_strsym_iter_cb_arg): New, state to do so. (ldelf_ctf_strtab_iter_cb): New: tell libctf about each string in the strtab in turn. (ldelf_ctf_symbols_iter_cb): New, tell libctf about each symbol in the symtab in turn. * ldelfgen.h (struct elf_sym_strtab): Add forward. (struct elf_strtab_hash): Likewise. (struct ctf_file): Likewise. (ldelf_emit_ctf_early): Declare. (ldelf_examine_strtab_for_ctf): Likewise. * emultempl/elf-generic.em (LDEMUL_EMIT_CTF_EARLY): Set it. (LDEMUL_EXAMINE_STRTAB_FOR_CTF): Likewise. * emultempl/aix.em (ld_${EMULATION_NAME}_emulation): Add emit_ctf_early and examine_strtab_for_ctf, NULL by default. * emultempl/armcoff.em (ld_${EMULATION_NAME}_emulation): Likewise. * emultempl/beos.em (ld_${EMULATION_NAME}_emulation): Likewise. * emultempl/elf.em (ld_${EMULATION_NAME}_emulation): Likewise. * emultempl/generic.em (ld_${EMULATION_NAME}_emulation): Likewise. * emultempl/linux.em (ld_${EMULATION_NAME}_emulation): Likewise. * emultempl/msp430.em (ld_${EMULATION_NAME}_emulation): Likewise. * emultempl/pe.em (ld_${EMULATION_NAME}_emulation): Likewise. * emultempl/pep.em (ld_${EMULATION_NAME}_emulation): Likewise. * emultempl/ticoff.em (ld_${EMULATION_NAME}_emulation): Likewise. * emultempl/vanilla.em (ld_vanilla_emulation): Likewise. * Makefile.am: Pull in libctf (and zlib, a transitive requirement for compressed CTF section emission). Pass it on to DejaGNU. * configure.ac: Add AM_ZLIB. * aclocal.m4: Added zlib.m4. * Makefile.in: Regenerated. * testsuite/ld-bootstrap/bootstrap.exp: Use it when relinking ld.
1207 lines
43 KiB
Plaintext
1207 lines
43 KiB
Plaintext
# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
|
|
|
|
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
|
|
|
# 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.
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
# PARTICULAR PURPOSE.
|
|
|
|
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
|
|
m4_ifndef([AC_AUTOCONF_VERSION],
|
|
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
|
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
|
|
[m4_warning([this file was generated for autoconf 2.69.
|
|
You have another version of autoconf. It may work, but is not guaranteed to.
|
|
If you have problems, you may need to regenerate the build system entirely.
|
|
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
|
|
|
|
# Copyright (C) 2002-2017 Free Software Foundation, Inc.
|
|
#
|
|
# 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.
|
|
|
|
# AM_AUTOMAKE_VERSION(VERSION)
|
|
# ----------------------------
|
|
# Automake X.Y traces this macro to ensure aclocal.m4 has been
|
|
# generated from the m4 files accompanying Automake X.Y.
|
|
# (This private macro should not be called outside this file.)
|
|
AC_DEFUN([AM_AUTOMAKE_VERSION],
|
|
[am__api_version='1.15'
|
|
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
|
dnl require some minimum version. Point them to the right macro.
|
|
m4_if([$1], [1.15.1], [],
|
|
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
|
])
|
|
|
|
# _AM_AUTOCONF_VERSION(VERSION)
|
|
# -----------------------------
|
|
# aclocal traces this macro to find the Autoconf version.
|
|
# This is a private macro too. Using m4_define simplifies
|
|
# the logic in aclocal, which can simply ignore this definition.
|
|
m4_define([_AM_AUTOCONF_VERSION], [])
|
|
|
|
# AM_SET_CURRENT_AUTOMAKE_VERSION
|
|
# -------------------------------
|
|
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
|
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
|
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
|
[AM_AUTOMAKE_VERSION([1.15.1])dnl
|
|
m4_ifndef([AC_AUTOCONF_VERSION],
|
|
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
|
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
|
|
|
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
|
|
|
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
|
#
|
|
# 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.
|
|
|
|
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
|
|
# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
|
|
# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
|
|
#
|
|
# Of course, Automake must honor this variable whenever it calls a
|
|
# tool from the auxiliary directory. The problem is that $srcdir (and
|
|
# therefore $ac_aux_dir as well) can be either absolute or relative,
|
|
# depending on how configure is run. This is pretty annoying, since
|
|
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
|
|
# source directory, any form will work fine, but in subdirectories a
|
|
# relative path needs to be adjusted first.
|
|
#
|
|
# $ac_aux_dir/missing
|
|
# fails when called from a subdirectory if $ac_aux_dir is relative
|
|
# $top_srcdir/$ac_aux_dir/missing
|
|
# fails if $ac_aux_dir is absolute,
|
|
# fails when called from a subdirectory in a VPATH build with
|
|
# a relative $ac_aux_dir
|
|
#
|
|
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
|
|
# are both prefixed by $srcdir. In an in-source build this is usually
|
|
# harmless because $srcdir is '.', but things will broke when you
|
|
# start a VPATH build or use an absolute $srcdir.
|
|
#
|
|
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
|
|
# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
|
|
# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
|
|
# and then we would define $MISSING as
|
|
# MISSING="\${SHELL} $am_aux_dir/missing"
|
|
# This will work as long as MISSING is not called from configure, because
|
|
# unfortunately $(top_srcdir) has no meaning in configure.
|
|
# However there are other variables, like CC, which are often used in
|
|
# configure, and could therefore not use this "fixed" $ac_aux_dir.
|
|
#
|
|
# Another solution, used here, is to always expand $ac_aux_dir to an
|
|
# absolute PATH. The drawback is that using absolute paths prevent a
|
|
# configured tree to be moved without reconfiguration.
|
|
|
|
AC_DEFUN([AM_AUX_DIR_EXPAND],
|
|
[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
|
|
# Expand $ac_aux_dir to an absolute path.
|
|
am_aux_dir=`cd "$ac_aux_dir" && pwd`
|
|
])
|
|
|
|
# AM_CONDITIONAL -*- Autoconf -*-
|
|
|
|
# Copyright (C) 1997-2017 Free Software Foundation, Inc.
|
|
#
|
|
# 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.
|
|
|
|
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
|
|
# -------------------------------------
|
|
# Define a conditional.
|
|
AC_DEFUN([AM_CONDITIONAL],
|
|
[AC_PREREQ([2.52])dnl
|
|
m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
|
|
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
|
|
AC_SUBST([$1_TRUE])dnl
|
|
AC_SUBST([$1_FALSE])dnl
|
|
_AM_SUBST_NOTMAKE([$1_TRUE])dnl
|
|
_AM_SUBST_NOTMAKE([$1_FALSE])dnl
|
|
m4_define([_AM_COND_VALUE_$1], [$2])dnl
|
|
if $2; then
|
|
$1_TRUE=
|
|
$1_FALSE='#'
|
|
else
|
|
$1_TRUE='#'
|
|
$1_FALSE=
|
|
fi
|
|
AC_CONFIG_COMMANDS_PRE(
|
|
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
|
|
AC_MSG_ERROR([[conditional "$1" was never defined.
|
|
Usually this means the macro was only invoked conditionally.]])
|
|
fi])])
|
|
|
|
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
|
|
#
|
|
# 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.
|
|
|
|
|
|
# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
|
|
# written in clear, in which case automake, when reading aclocal.m4,
|
|
# will think it sees a *use*, and therefore will trigger all it's
|
|
# C support machinery. Also note that it means that autoscan, seeing
|
|
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
|
|
|
|
|
|
# _AM_DEPENDENCIES(NAME)
|
|
# ----------------------
|
|
# See how the compiler implements dependency checking.
|
|
# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
|
|
# We try a few techniques and use that to set a single cache variable.
|
|
#
|
|
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
|
|
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
|
|
# dependency, and given that the user is not expected to run this macro,
|
|
# just rely on AC_PROG_CC.
|
|
AC_DEFUN([_AM_DEPENDENCIES],
|
|
[AC_REQUIRE([AM_SET_DEPDIR])dnl
|
|
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
|
|
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
|
|
AC_REQUIRE([AM_DEP_TRACK])dnl
|
|
|
|
m4_if([$1], [CC], [depcc="$CC" am_compiler_list=],
|
|
[$1], [CXX], [depcc="$CXX" am_compiler_list=],
|
|
[$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
|
|
[$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
|
|
[$1], [UPC], [depcc="$UPC" am_compiler_list=],
|
|
[$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
|
|
[depcc="$$1" am_compiler_list=])
|
|
|
|
AC_CACHE_CHECK([dependency style of $depcc],
|
|
[am_cv_$1_dependencies_compiler_type],
|
|
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
|
|
# We make a subdir and do the tests there. Otherwise we can end up
|
|
# making bogus files that we don't know about and never remove. For
|
|
# instance it was reported that on HP-UX the gcc test will end up
|
|
# making a dummy file named 'D' -- because '-MD' means "put the output
|
|
# in D".
|
|
rm -rf conftest.dir
|
|
mkdir conftest.dir
|
|
# Copy depcomp to subdir because otherwise we won't find it if we're
|
|
# using a relative directory.
|
|
cp "$am_depcomp" conftest.dir
|
|
cd conftest.dir
|
|
# We will build objects and dependencies in a subdirectory because
|
|
# it helps to detect inapplicable dependency modes. For instance
|
|
# both Tru64's cc and ICC support -MD to output dependencies as a
|
|
# side effect of compilation, but ICC will put the dependencies in
|
|
# the current directory while Tru64 will put them in the object
|
|
# directory.
|
|
mkdir sub
|
|
|
|
am_cv_$1_dependencies_compiler_type=none
|
|
if test "$am_compiler_list" = ""; then
|
|
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
|
fi
|
|
am__universal=false
|
|
m4_case([$1], [CC],
|
|
[case " $depcc " in #(
|
|
*\ -arch\ *\ -arch\ *) am__universal=true ;;
|
|
esac],
|
|
[CXX],
|
|
[case " $depcc " in #(
|
|
*\ -arch\ *\ -arch\ *) am__universal=true ;;
|
|
esac])
|
|
|
|
for depmode in $am_compiler_list; do
|
|
# Setup a source with many dependencies, because some compilers
|
|
# like to wrap large dependency lists on column 80 (with \), and
|
|
# we should not choose a depcomp mode which is confused by this.
|
|
#
|
|
# We need to recreate these files for each test, as the compiler may
|
|
# overwrite some of them when testing with obscure command lines.
|
|
# This happens at least with the AIX C compiler.
|
|
: > sub/conftest.c
|
|
for i in 1 2 3 4 5 6; do
|
|
echo '#include "conftst'$i'.h"' >> sub/conftest.c
|
|
# Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
|
|
# Solaris 10 /bin/sh.
|
|
echo '/* dummy */' > sub/conftst$i.h
|
|
done
|
|
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
|
|
|
# We check with '-c' and '-o' for the sake of the "dashmstdout"
|
|
# mode. It turns out that the SunPro C++ compiler does not properly
|
|
# handle '-M -o', and we need to detect this. Also, some Intel
|
|
# versions had trouble with output in subdirs.
|
|
am__obj=sub/conftest.${OBJEXT-o}
|
|
am__minus_obj="-o $am__obj"
|
|
case $depmode in
|
|
gcc)
|
|
# This depmode causes a compiler race in universal mode.
|
|
test "$am__universal" = false || continue
|
|
;;
|
|
nosideeffect)
|
|
# After this tag, mechanisms are not by side-effect, so they'll
|
|
# only be used when explicitly requested.
|
|
if test "x$enable_dependency_tracking" = xyes; then
|
|
continue
|
|
else
|
|
break
|
|
fi
|
|
;;
|
|
msvc7 | msvc7msys | msvisualcpp | msvcmsys)
|
|
# This compiler won't grok '-c -o', but also, the minuso test has
|
|
# not run yet. These depmodes are late enough in the game, and
|
|
# so weak that their functioning should not be impacted.
|
|
am__obj=conftest.${OBJEXT-o}
|
|
am__minus_obj=
|
|
;;
|
|
none) break ;;
|
|
esac
|
|
if depmode=$depmode \
|
|
source=sub/conftest.c object=$am__obj \
|
|
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
|
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
|
|
>/dev/null 2>conftest.err &&
|
|
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
|
|
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
|
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
|
|
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
|
# icc doesn't choke on unknown options, it will just issue warnings
|
|
# or remarks (even with -Werror). So we grep stderr for any message
|
|
# that says an option was ignored or not supported.
|
|
# When given -MP, icc 7.0 and 7.1 complain thusly:
|
|
# icc: Command line warning: ignoring option '-M'; no argument required
|
|
# The diagnosis changed in icc 8.0:
|
|
# icc: Command line remark: option '-MP' not supported
|
|
if (grep 'ignoring option' conftest.err ||
|
|
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
|
|
am_cv_$1_dependencies_compiler_type=$depmode
|
|
break
|
|
fi
|
|
fi
|
|
done
|
|
|
|
cd ..
|
|
rm -rf conftest.dir
|
|
else
|
|
am_cv_$1_dependencies_compiler_type=none
|
|
fi
|
|
])
|
|
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
|
|
AM_CONDITIONAL([am__fastdep$1], [
|
|
test "x$enable_dependency_tracking" != xno \
|
|
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
|
|
])
|
|
|
|
|
|
# AM_SET_DEPDIR
|
|
# -------------
|
|
# Choose a directory name for dependency files.
|
|
# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
|
|
AC_DEFUN([AM_SET_DEPDIR],
|
|
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
|
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
|
|
])
|
|
|
|
|
|
# AM_DEP_TRACK
|
|
# ------------
|
|
AC_DEFUN([AM_DEP_TRACK],
|
|
[AC_ARG_ENABLE([dependency-tracking], [dnl
|
|
AS_HELP_STRING(
|
|
[--enable-dependency-tracking],
|
|
[do not reject slow dependency extractors])
|
|
AS_HELP_STRING(
|
|
[--disable-dependency-tracking],
|
|
[speeds up one-time build])])
|
|
if test "x$enable_dependency_tracking" != xno; then
|
|
am_depcomp="$ac_aux_dir/depcomp"
|
|
AMDEPBACKSLASH='\'
|
|
am__nodep='_no'
|
|
fi
|
|
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
|
AC_SUBST([AMDEPBACKSLASH])dnl
|
|
_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
|
|
AC_SUBST([am__nodep])dnl
|
|
_AM_SUBST_NOTMAKE([am__nodep])dnl
|
|
])
|
|
|
|
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
|
|
|
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
|
|
#
|
|
# 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.
|
|
|
|
|
|
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
|
# ------------------------------
|
|
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
|
[{
|
|
# Older Autoconf quotes --file arguments for eval, but not when files
|
|
# are listed without --file. Let's play safe and only enable the eval
|
|
# if we detect the quoting.
|
|
case $CONFIG_FILES in
|
|
*\'*) eval set x "$CONFIG_FILES" ;;
|
|
*) set x $CONFIG_FILES ;;
|
|
esac
|
|
shift
|
|
for mf
|
|
do
|
|
# Strip MF so we end up with the name of the file.
|
|
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
|
# Check whether this is an Automake generated Makefile or not.
|
|
# We used to match only the files named 'Makefile.in', but
|
|
# some people rename them; so instead we look at the file content.
|
|
# Grep'ing the first line is not enough: some people post-process
|
|
# each Makefile.in and add a new line on top of each file to say so.
|
|
# Grep'ing the whole file is not good either: AIX grep has a line
|
|
# limit of 2048, but all sed's we know have understand at least 4000.
|
|
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
|
|
dirpart=`AS_DIRNAME("$mf")`
|
|
else
|
|
continue
|
|
fi
|
|
# Extract the definition of DEPDIR, am__include, and am__quote
|
|
# from the Makefile without running 'make'.
|
|
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
|
test -z "$DEPDIR" && continue
|
|
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
|
test -z "$am__include" && continue
|
|
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
|
# Find all dependency output files, they are included files with
|
|
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
|
# simplest approach to changing $(DEPDIR) to its actual value in the
|
|
# expansion.
|
|
for file in `sed -n "
|
|
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
|
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
|
|
# Make sure the directory exists.
|
|
test -f "$dirpart/$file" && continue
|
|
fdir=`AS_DIRNAME(["$file"])`
|
|
AS_MKDIR_P([$dirpart/$fdir])
|
|
# echo "creating $dirpart/$file"
|
|
echo '# dummy' > "$dirpart/$file"
|
|
done
|
|
done
|
|
}
|
|
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
|
|
|
|
|
# AM_OUTPUT_DEPENDENCY_COMMANDS
|
|
# -----------------------------
|
|
# This macro should only be invoked once -- use via AC_REQUIRE.
|
|
#
|
|
# This code is only required when automatic dependency tracking
|
|
# is enabled. FIXME. This creates each '.P' file that we will
|
|
# need in order to bootstrap the dependency handling code.
|
|
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
|
[AC_CONFIG_COMMANDS([depfiles],
|
|
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
|
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
|
|
])
|
|
|
|
# Do all the work for Automake. -*- Autoconf -*-
|
|
|
|
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
|
#
|
|
# 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.
|
|
|
|
# This macro actually does too much. Some checks are only needed if
|
|
# your package does certain things. But this isn't really a big deal.
|
|
|
|
dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
|
|
m4_define([AC_PROG_CC],
|
|
m4_defn([AC_PROG_CC])
|
|
[_AM_PROG_CC_C_O
|
|
])
|
|
|
|
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
|
|
# AM_INIT_AUTOMAKE([OPTIONS])
|
|
# -----------------------------------------------
|
|
# The call with PACKAGE and VERSION arguments is the old style
|
|
# call (pre autoconf-2.50), which is being phased out. PACKAGE
|
|
# and VERSION should now be passed to AC_INIT and removed from
|
|
# the call to AM_INIT_AUTOMAKE.
|
|
# We support both call styles for the transition. After
|
|
# the next Automake release, Autoconf can make the AC_INIT
|
|
# arguments mandatory, and then we can depend on a new Autoconf
|
|
# release and drop the old call support.
|
|
AC_DEFUN([AM_INIT_AUTOMAKE],
|
|
[AC_PREREQ([2.65])dnl
|
|
dnl Autoconf wants to disallow AM_ names. We explicitly allow
|
|
dnl the ones we care about.
|
|
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
|
|
AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
|
|
AC_REQUIRE([AC_PROG_INSTALL])dnl
|
|
if test "`cd $srcdir && pwd`" != "`pwd`"; then
|
|
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
|
|
# is not polluted with repeated "-I."
|
|
AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
|
|
# test to see if srcdir already configured
|
|
if test -f $srcdir/config.status; then
|
|
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
|
|
fi
|
|
fi
|
|
|
|
# test whether we have cygpath
|
|
if test -z "$CYGPATH_W"; then
|
|
if (cygpath --version) >/dev/null 2>/dev/null; then
|
|
CYGPATH_W='cygpath -w'
|
|
else
|
|
CYGPATH_W=echo
|
|
fi
|
|
fi
|
|
AC_SUBST([CYGPATH_W])
|
|
|
|
# Define the identity of the package.
|
|
dnl Distinguish between old-style and new-style calls.
|
|
m4_ifval([$2],
|
|
[AC_DIAGNOSE([obsolete],
|
|
[$0: two- and three-arguments forms are deprecated.])
|
|
m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
|
|
AC_SUBST([PACKAGE], [$1])dnl
|
|
AC_SUBST([VERSION], [$2])],
|
|
[_AM_SET_OPTIONS([$1])dnl
|
|
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
|
|
m4_if(
|
|
m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
|
|
[ok:ok],,
|
|
[m4_fatal([AC_INIT should be called with package and version arguments])])dnl
|
|
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
|
|
AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
|
|
|
|
_AM_IF_OPTION([no-define],,
|
|
[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
|
|
AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
|
|
|
|
# Some tools Automake needs.
|
|
AC_REQUIRE([AM_SANITY_CHECK])dnl
|
|
AC_REQUIRE([AC_ARG_PROGRAM])dnl
|
|
AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
|
|
AM_MISSING_PROG([AUTOCONF], [autoconf])
|
|
AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
|
|
AM_MISSING_PROG([AUTOHEADER], [autoheader])
|
|
AM_MISSING_PROG([MAKEINFO], [makeinfo])
|
|
AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
|
AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
|
|
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
|
|
# For better backward compatibility. To be removed once Automake 1.9.x
|
|
# dies out for good. For more background, see:
|
|
# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
|
|
# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
|
|
AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
|
|
# We need awk for the "check" target (and possibly the TAP driver). The
|
|
# system "awk" is bad on some platforms.
|
|
AC_REQUIRE([AC_PROG_AWK])dnl
|
|
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
|
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
|
_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
|
|
[_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
|
|
[_AM_PROG_TAR([v7])])])
|
|
_AM_IF_OPTION([no-dependencies],,
|
|
[AC_PROVIDE_IFELSE([AC_PROG_CC],
|
|
[_AM_DEPENDENCIES([CC])],
|
|
[m4_define([AC_PROG_CC],
|
|
m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
|
|
AC_PROVIDE_IFELSE([AC_PROG_CXX],
|
|
[_AM_DEPENDENCIES([CXX])],
|
|
[m4_define([AC_PROG_CXX],
|
|
m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
|
|
AC_PROVIDE_IFELSE([AC_PROG_OBJC],
|
|
[_AM_DEPENDENCIES([OBJC])],
|
|
[m4_define([AC_PROG_OBJC],
|
|
m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
|
|
AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
|
|
[_AM_DEPENDENCIES([OBJCXX])],
|
|
[m4_define([AC_PROG_OBJCXX],
|
|
m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
|
|
])
|
|
AC_REQUIRE([AM_SILENT_RULES])dnl
|
|
dnl The testsuite driver may need to know about EXEEXT, so add the
|
|
dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
|
|
dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
|
|
AC_CONFIG_COMMANDS_PRE(dnl
|
|
[m4_provide_if([_AM_COMPILER_EXEEXT],
|
|
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
|
|
|
|
# POSIX will say in a future version that running "rm -f" with no argument
|
|
# is OK; and we want to be able to make that assumption in our Makefile
|
|
# recipes. So use an aggressive probe to check that the usage we want is
|
|
# actually supported "in the wild" to an acceptable degree.
|
|
# See automake bug#10828.
|
|
# To make any issue more visible, cause the running configure to be aborted
|
|
# by default if the 'rm' program in use doesn't match our expectations; the
|
|
# user can still override this though.
|
|
if rm -f && rm -fr && rm -rf; then : OK; else
|
|
cat >&2 <<'END'
|
|
Oops!
|
|
|
|
Your 'rm' program seems unable to run without file operands specified
|
|
on the command line, even when the '-f' option is present. This is contrary
|
|
to the behaviour of most rm programs out there, and not conforming with
|
|
the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
|
|
|
|
Please tell bug-automake@gnu.org about your system, including the value
|
|
of your $PATH and any error possibly output before this message. This
|
|
can help us improve future automake versions.
|
|
|
|
END
|
|
if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
|
|
echo 'Configuration will proceed anyway, since you have set the' >&2
|
|
echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
|
|
echo >&2
|
|
else
|
|
cat >&2 <<'END'
|
|
Aborting the configuration process, to ensure you take notice of the issue.
|
|
|
|
You can download and install GNU coreutils to get an 'rm' implementation
|
|
that behaves properly: <http://www.gnu.org/software/coreutils/>.
|
|
|
|
If you want to complete the configuration process using your problematic
|
|
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
|
|
to "yes", and re-run configure.
|
|
|
|
END
|
|
AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
|
|
fi
|
|
fi
|
|
dnl The trailing newline in this macro's definition is deliberate, for
|
|
dnl backward compatibility and to allow trailing 'dnl'-style comments
|
|
dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
|
|
])
|
|
|
|
dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
|
|
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
|
|
dnl mangled by Autoconf and run in a shell conditional statement.
|
|
m4_define([_AC_COMPILER_EXEEXT],
|
|
m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
|
|
|
|
# When config.status generates a header, we must update the stamp-h file.
|
|
# This file resides in the same directory as the config header
|
|
# that is generated. The stamp files are numbered to have different names.
|
|
|
|
# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
|
|
# loop where config.status creates the headers, so we can generate
|
|
# our stamp files there.
|
|
AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
|
|
[# Compute $1's index in $config_headers.
|
|
_am_arg=$1
|
|
_am_stamp_count=1
|
|
for _am_header in $config_headers :; do
|
|
case $_am_header in
|
|
$_am_arg | $_am_arg:* )
|
|
break ;;
|
|
* )
|
|
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
|
|
esac
|
|
done
|
|
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
|
|
|
|
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
|
#
|
|
# 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.
|
|
|
|
# AM_PROG_INSTALL_SH
|
|
# ------------------
|
|
# Define $install_sh.
|
|
AC_DEFUN([AM_PROG_INSTALL_SH],
|
|
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
|
if test x"${install_sh+set}" != xset; then
|
|
case $am_aux_dir in
|
|
*\ * | *\ *)
|
|
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
|
|
*)
|
|
install_sh="\${SHELL} $am_aux_dir/install-sh"
|
|
esac
|
|
fi
|
|
AC_SUBST([install_sh])])
|
|
|
|
# Copyright (C) 1998-2017 Free Software Foundation, Inc.
|
|
#
|
|
# 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.
|
|
|
|
# AM_PROG_LEX
|
|
# -----------
|
|
# Autoconf leaves LEX=: if lex or flex can't be found. Change that to a
|
|
# "missing" invocation, for better error output.
|
|
AC_DEFUN([AM_PROG_LEX],
|
|
[AC_PREREQ([2.50])dnl
|
|
AC_REQUIRE([AM_MISSING_HAS_RUN])dnl
|
|
AC_REQUIRE([AC_PROG_LEX])dnl
|
|
if test "$LEX" = :; then
|
|
LEX=${am_missing_run}flex
|
|
fi])
|
|
|
|
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
|
|
# From Jim Meyering
|
|
|
|
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
|
#
|
|
# 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.
|
|
|
|
# AM_MAINTAINER_MODE([DEFAULT-MODE])
|
|
# ----------------------------------
|
|
# Control maintainer-specific portions of Makefiles.
|
|
# Default is to disable them, unless 'enable' is passed literally.
|
|
# For symmetry, 'disable' may be passed as well. Anyway, the user
|
|
# can override the default with the --enable/--disable switch.
|
|
AC_DEFUN([AM_MAINTAINER_MODE],
|
|
[m4_case(m4_default([$1], [disable]),
|
|
[enable], [m4_define([am_maintainer_other], [disable])],
|
|
[disable], [m4_define([am_maintainer_other], [enable])],
|
|
[m4_define([am_maintainer_other], [enable])
|
|
m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
|
|
AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
|
|
dnl maintainer-mode's default is 'disable' unless 'enable' is passed
|
|
AC_ARG_ENABLE([maintainer-mode],
|
|
[AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
|
|
am_maintainer_other[ make rules and dependencies not useful
|
|
(and sometimes confusing) to the casual installer])],
|
|
[USE_MAINTAINER_MODE=$enableval],
|
|
[USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
|
|
AC_MSG_RESULT([$USE_MAINTAINER_MODE])
|
|
AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
|
|
MAINT=$MAINTAINER_MODE_TRUE
|
|
AC_SUBST([MAINT])dnl
|
|
]
|
|
)
|
|
|
|
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
|
|
|
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
|
#
|
|
# 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.
|
|
|
|
# AM_MAKE_INCLUDE()
|
|
# -----------------
|
|
# Check to see how make treats includes.
|
|
AC_DEFUN([AM_MAKE_INCLUDE],
|
|
[am_make=${MAKE-make}
|
|
cat > confinc << 'END'
|
|
am__doit:
|
|
@echo this is the am__doit target
|
|
.PHONY: am__doit
|
|
END
|
|
# If we don't find an include directive, just comment out the code.
|
|
AC_MSG_CHECKING([for style of include used by $am_make])
|
|
am__include="#"
|
|
am__quote=
|
|
_am_result=none
|
|
# First try GNU make style include.
|
|
echo "include confinc" > confmf
|
|
# Ignore all kinds of additional output from 'make'.
|
|
case `$am_make -s -f confmf 2> /dev/null` in #(
|
|
*the\ am__doit\ target*)
|
|
am__include=include
|
|
am__quote=
|
|
_am_result=GNU
|
|
;;
|
|
esac
|
|
# Now try BSD make style include.
|
|
if test "$am__include" = "#"; then
|
|
echo '.include "confinc"' > confmf
|
|
case `$am_make -s -f confmf 2> /dev/null` in #(
|
|
*the\ am__doit\ target*)
|
|
am__include=.include
|
|
am__quote="\""
|
|
_am_result=BSD
|
|
;;
|
|
esac
|
|
fi
|
|
AC_SUBST([am__include])
|
|
AC_SUBST([am__quote])
|
|
AC_MSG_RESULT([$_am_result])
|
|
rm -f confinc confmf
|
|
])
|
|
|
|
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
|
|
|
# Copyright (C) 1997-2017 Free Software Foundation, Inc.
|
|
#
|
|
# 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.
|
|
|
|
# AM_MISSING_PROG(NAME, PROGRAM)
|
|
# ------------------------------
|
|
AC_DEFUN([AM_MISSING_PROG],
|
|
[AC_REQUIRE([AM_MISSING_HAS_RUN])
|
|
$1=${$1-"${am_missing_run}$2"}
|
|
AC_SUBST($1)])
|
|
|
|
# AM_MISSING_HAS_RUN
|
|
# ------------------
|
|
# Define MISSING if not defined so far and test if it is modern enough.
|
|
# If it is, set am_missing_run to use it, otherwise, to nothing.
|
|
AC_DEFUN([AM_MISSING_HAS_RUN],
|
|
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
|
AC_REQUIRE_AUX_FILE([missing])dnl
|
|
if test x"${MISSING+set}" != xset; then
|
|
case $am_aux_dir in
|
|
*\ * | *\ *)
|
|
MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
|
|
*)
|
|
MISSING="\${SHELL} $am_aux_dir/missing" ;;
|
|
esac
|
|
fi
|
|
# Use eval to expand $SHELL
|
|
if eval "$MISSING --is-lightweight"; then
|
|
am_missing_run="$MISSING "
|
|
else
|
|
am_missing_run=
|
|
AC_MSG_WARN(['missing' script is too old or missing])
|
|
fi
|
|
])
|
|
|
|
# Helper functions for option handling. -*- Autoconf -*-
|
|
|
|
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
|
#
|
|
# 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.
|
|
|
|
# _AM_MANGLE_OPTION(NAME)
|
|
# -----------------------
|
|
AC_DEFUN([_AM_MANGLE_OPTION],
|
|
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
|
|
|
|
# _AM_SET_OPTION(NAME)
|
|
# --------------------
|
|
# Set option NAME. Presently that only means defining a flag for this option.
|
|
AC_DEFUN([_AM_SET_OPTION],
|
|
[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
|
|
|
|
# _AM_SET_OPTIONS(OPTIONS)
|
|
# ------------------------
|
|
# OPTIONS is a space-separated list of Automake options.
|
|
AC_DEFUN([_AM_SET_OPTIONS],
|
|
[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
|
|
|
|
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
|
|
# -------------------------------------------
|
|
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
|
|
AC_DEFUN([_AM_IF_OPTION],
|
|
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
|
|
|
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
|
|
#
|
|
# 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.
|
|
|
|
# _AM_PROG_CC_C_O
|
|
# ---------------
|
|
# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
|
|
# to automatically call this.
|
|
AC_DEFUN([_AM_PROG_CC_C_O],
|
|
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
|
AC_REQUIRE_AUX_FILE([compile])dnl
|
|
AC_LANG_PUSH([C])dnl
|
|
AC_CACHE_CHECK(
|
|
[whether $CC understands -c and -o together],
|
|
[am_cv_prog_cc_c_o],
|
|
[AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
|
|
# Make sure it works both with $CC and with simple cc.
|
|
# Following AC_PROG_CC_C_O, we do the test twice because some
|
|
# compilers refuse to overwrite an existing .o file with -o,
|
|
# though they will create one.
|
|
am_cv_prog_cc_c_o=yes
|
|
for am_i in 1 2; do
|
|
if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
|
|
&& test -f conftest2.$ac_objext; then
|
|
: OK
|
|
else
|
|
am_cv_prog_cc_c_o=no
|
|
break
|
|
fi
|
|
done
|
|
rm -f core conftest*
|
|
unset am_i])
|
|
if test "$am_cv_prog_cc_c_o" != yes; then
|
|
# Losing compiler, so override with the script.
|
|
# FIXME: It is wrong to rewrite CC.
|
|
# But if we don't then we get into trouble of one sort or another.
|
|
# A longer-term fix would be to have automake use am__CC in this case,
|
|
# and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
|
|
CC="$am_aux_dir/compile $CC"
|
|
fi
|
|
AC_LANG_POP([C])])
|
|
|
|
# For backward compatibility.
|
|
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
|
|
|
|
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
|
#
|
|
# 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.
|
|
|
|
# AM_RUN_LOG(COMMAND)
|
|
# -------------------
|
|
# Run COMMAND, save the exit status in ac_status, and log it.
|
|
# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
|
|
AC_DEFUN([AM_RUN_LOG],
|
|
[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
|
|
($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
|
|
ac_status=$?
|
|
echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
|
|
(exit $ac_status); }])
|
|
|
|
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
|
|
|
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
|
#
|
|
# 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.
|
|
|
|
# AM_SANITY_CHECK
|
|
# ---------------
|
|
AC_DEFUN([AM_SANITY_CHECK],
|
|
[AC_MSG_CHECKING([whether build environment is sane])
|
|
# Reject unsafe characters in $srcdir or the absolute working directory
|
|
# name. Accept space and tab only in the latter.
|
|
am_lf='
|
|
'
|
|
case `pwd` in
|
|
*[[\\\"\#\$\&\'\`$am_lf]]*)
|
|
AC_MSG_ERROR([unsafe absolute working directory name]);;
|
|
esac
|
|
case $srcdir in
|
|
*[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
|
|
AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
|
|
esac
|
|
|
|
# Do 'set' in a subshell so we don't clobber the current shell's
|
|
# arguments. Must try -L first in case configure is actually a
|
|
# symlink; some systems play weird games with the mod time of symlinks
|
|
# (eg FreeBSD returns the mod time of the symlink's containing
|
|
# directory).
|
|
if (
|
|
am_has_slept=no
|
|
for am_try in 1 2; do
|
|
echo "timestamp, slept: $am_has_slept" > conftest.file
|
|
set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
|
|
if test "$[*]" = "X"; then
|
|
# -L didn't work.
|
|
set X `ls -t "$srcdir/configure" conftest.file`
|
|
fi
|
|
if test "$[*]" != "X $srcdir/configure conftest.file" \
|
|
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
|
|
|
|
# If neither matched, then we have a broken ls. This can happen
|
|
# if, for instance, CONFIG_SHELL is bash and it inherits a
|
|
# broken ls alias from the environment. This has actually
|
|
# happened. Such a system could not be considered "sane".
|
|
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
|
|
alias in your environment])
|
|
fi
|
|
if test "$[2]" = conftest.file || test $am_try -eq 2; then
|
|
break
|
|
fi
|
|
# Just in case.
|
|
sleep 1
|
|
am_has_slept=yes
|
|
done
|
|
test "$[2]" = conftest.file
|
|
)
|
|
then
|
|
# Ok.
|
|
:
|
|
else
|
|
AC_MSG_ERROR([newly created file is older than distributed files!
|
|
Check your system clock])
|
|
fi
|
|
AC_MSG_RESULT([yes])
|
|
# If we didn't sleep, we still need to ensure time stamps of config.status and
|
|
# generated files are strictly newer.
|
|
am_sleep_pid=
|
|
if grep 'slept: no' conftest.file >/dev/null 2>&1; then
|
|
( sleep 1 ) &
|
|
am_sleep_pid=$!
|
|
fi
|
|
AC_CONFIG_COMMANDS_PRE(
|
|
[AC_MSG_CHECKING([that generated files are newer than configure])
|
|
if test -n "$am_sleep_pid"; then
|
|
# Hide warnings about reused PIDs.
|
|
wait $am_sleep_pid 2>/dev/null
|
|
fi
|
|
AC_MSG_RESULT([done])])
|
|
rm -f conftest.file
|
|
])
|
|
|
|
# Copyright (C) 2009-2017 Free Software Foundation, Inc.
|
|
#
|
|
# 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.
|
|
|
|
# AM_SILENT_RULES([DEFAULT])
|
|
# --------------------------
|
|
# Enable less verbose build rules; with the default set to DEFAULT
|
|
# ("yes" being less verbose, "no" or empty being verbose).
|
|
AC_DEFUN([AM_SILENT_RULES],
|
|
[AC_ARG_ENABLE([silent-rules], [dnl
|
|
AS_HELP_STRING(
|
|
[--enable-silent-rules],
|
|
[less verbose build output (undo: "make V=1")])
|
|
AS_HELP_STRING(
|
|
[--disable-silent-rules],
|
|
[verbose build output (undo: "make V=0")])dnl
|
|
])
|
|
case $enable_silent_rules in @%:@ (((
|
|
yes) AM_DEFAULT_VERBOSITY=0;;
|
|
no) AM_DEFAULT_VERBOSITY=1;;
|
|
*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
|
|
esac
|
|
dnl
|
|
dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
|
|
dnl do not support nested variable expansions.
|
|
dnl See automake bug#9928 and bug#10237.
|
|
am_make=${MAKE-make}
|
|
AC_CACHE_CHECK([whether $am_make supports nested variables],
|
|
[am_cv_make_support_nested_variables],
|
|
[if AS_ECHO([['TRUE=$(BAR$(V))
|
|
BAR0=false
|
|
BAR1=true
|
|
V=1
|
|
am__doit:
|
|
@$(TRUE)
|
|
.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
|
|
am_cv_make_support_nested_variables=yes
|
|
else
|
|
am_cv_make_support_nested_variables=no
|
|
fi])
|
|
if test $am_cv_make_support_nested_variables = yes; then
|
|
dnl Using '$V' instead of '$(V)' breaks IRIX make.
|
|
AM_V='$(V)'
|
|
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
|
|
else
|
|
AM_V=$AM_DEFAULT_VERBOSITY
|
|
AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
|
|
fi
|
|
AC_SUBST([AM_V])dnl
|
|
AM_SUBST_NOTMAKE([AM_V])dnl
|
|
AC_SUBST([AM_DEFAULT_V])dnl
|
|
AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
|
|
AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
|
|
AM_BACKSLASH='\'
|
|
AC_SUBST([AM_BACKSLASH])dnl
|
|
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
|
|
])
|
|
|
|
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
|
#
|
|
# 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.
|
|
|
|
# AM_PROG_INSTALL_STRIP
|
|
# ---------------------
|
|
# One issue with vendor 'install' (even GNU) is that you can't
|
|
# specify the program used to strip binaries. This is especially
|
|
# annoying in cross-compiling environments, where the build's strip
|
|
# is unlikely to handle the host's binaries.
|
|
# Fortunately install-sh will honor a STRIPPROG variable, so we
|
|
# always use install-sh in "make install-strip", and initialize
|
|
# STRIPPROG with the value of the STRIP variable (set by the user).
|
|
AC_DEFUN([AM_PROG_INSTALL_STRIP],
|
|
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
|
# Installed binaries are usually stripped using 'strip' when the user
|
|
# run "make install-strip". However 'strip' might not be the right
|
|
# tool to use in cross-compilation environments, therefore Automake
|
|
# will honor the 'STRIP' environment variable to overrule this program.
|
|
dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
|
|
if test "$cross_compiling" != no; then
|
|
AC_CHECK_TOOL([STRIP], [strip], :)
|
|
fi
|
|
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
|
|
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
|
|
|
# Copyright (C) 2006-2017 Free Software Foundation, Inc.
|
|
#
|
|
# 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.
|
|
|
|
# _AM_SUBST_NOTMAKE(VARIABLE)
|
|
# ---------------------------
|
|
# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
|
|
# This macro is traced by Automake.
|
|
AC_DEFUN([_AM_SUBST_NOTMAKE])
|
|
|
|
# AM_SUBST_NOTMAKE(VARIABLE)
|
|
# --------------------------
|
|
# Public sister of _AM_SUBST_NOTMAKE.
|
|
AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
|
|
|
|
# Check how to create a tarball. -*- Autoconf -*-
|
|
|
|
# Copyright (C) 2004-2017 Free Software Foundation, Inc.
|
|
#
|
|
# 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.
|
|
|
|
# _AM_PROG_TAR(FORMAT)
|
|
# --------------------
|
|
# Check how to create a tarball in format FORMAT.
|
|
# FORMAT should be one of 'v7', 'ustar', or 'pax'.
|
|
#
|
|
# Substitute a variable $(am__tar) that is a command
|
|
# writing to stdout a FORMAT-tarball containing the directory
|
|
# $tardir.
|
|
# tardir=directory && $(am__tar) > result.tar
|
|
#
|
|
# Substitute a variable $(am__untar) that extract such
|
|
# a tarball read from stdin.
|
|
# $(am__untar) < result.tar
|
|
#
|
|
AC_DEFUN([_AM_PROG_TAR],
|
|
[# Always define AMTAR for backward compatibility. Yes, it's still used
|
|
# in the wild :-( We should find a proper way to deprecate it ...
|
|
AC_SUBST([AMTAR], ['$${TAR-tar}'])
|
|
|
|
# We'll loop over all known methods to create a tar archive until one works.
|
|
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
|
|
|
|
m4_if([$1], [v7],
|
|
[am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
|
|
|
|
[m4_case([$1],
|
|
[ustar],
|
|
[# The POSIX 1988 'ustar' format is defined with fixed-size fields.
|
|
# There is notably a 21 bits limit for the UID and the GID. In fact,
|
|
# the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
|
|
# and bug#13588).
|
|
am_max_uid=2097151 # 2^21 - 1
|
|
am_max_gid=$am_max_uid
|
|
# The $UID and $GID variables are not portable, so we need to resort
|
|
# to the POSIX-mandated id(1) utility. Errors in the 'id' calls
|
|
# below are definitely unexpected, so allow the users to see them
|
|
# (that is, avoid stderr redirection).
|
|
am_uid=`id -u || echo unknown`
|
|
am_gid=`id -g || echo unknown`
|
|
AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
|
|
if test $am_uid -le $am_max_uid; then
|
|
AC_MSG_RESULT([yes])
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
_am_tools=none
|
|
fi
|
|
AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
|
|
if test $am_gid -le $am_max_gid; then
|
|
AC_MSG_RESULT([yes])
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
_am_tools=none
|
|
fi],
|
|
|
|
[pax],
|
|
[],
|
|
|
|
[m4_fatal([Unknown tar format])])
|
|
|
|
AC_MSG_CHECKING([how to create a $1 tar archive])
|
|
|
|
# Go ahead even if we have the value already cached. We do so because we
|
|
# need to set the values for the 'am__tar' and 'am__untar' variables.
|
|
_am_tools=${am_cv_prog_tar_$1-$_am_tools}
|
|
|
|
for _am_tool in $_am_tools; do
|
|
case $_am_tool in
|
|
gnutar)
|
|
for _am_tar in tar gnutar gtar; do
|
|
AM_RUN_LOG([$_am_tar --version]) && break
|
|
done
|
|
am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
|
|
am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
|
|
am__untar="$_am_tar -xf -"
|
|
;;
|
|
plaintar)
|
|
# Must skip GNU tar: if it does not support --format= it doesn't create
|
|
# ustar tarball either.
|
|
(tar --version) >/dev/null 2>&1 && continue
|
|
am__tar='tar chf - "$$tardir"'
|
|
am__tar_='tar chf - "$tardir"'
|
|
am__untar='tar xf -'
|
|
;;
|
|
pax)
|
|
am__tar='pax -L -x $1 -w "$$tardir"'
|
|
am__tar_='pax -L -x $1 -w "$tardir"'
|
|
am__untar='pax -r'
|
|
;;
|
|
cpio)
|
|
am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
|
|
am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
|
|
am__untar='cpio -i -H $1 -d'
|
|
;;
|
|
none)
|
|
am__tar=false
|
|
am__tar_=false
|
|
am__untar=false
|
|
;;
|
|
esac
|
|
|
|
# If the value was cached, stop now. We just wanted to have am__tar
|
|
# and am__untar set.
|
|
test -n "${am_cv_prog_tar_$1}" && break
|
|
|
|
# tar/untar a dummy directory, and stop if the command works.
|
|
rm -rf conftest.dir
|
|
mkdir conftest.dir
|
|
echo GrepMe > conftest.dir/file
|
|
AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
|
|
rm -rf conftest.dir
|
|
if test -s conftest.tar; then
|
|
AM_RUN_LOG([$am__untar <conftest.tar])
|
|
AM_RUN_LOG([cat conftest.dir/file])
|
|
grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
|
|
fi
|
|
done
|
|
rm -rf conftest.dir
|
|
|
|
AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
|
|
AC_MSG_RESULT([$am_cv_prog_tar_$1])])
|
|
|
|
AC_SUBST([am__tar])
|
|
AC_SUBST([am__untar])
|
|
]) # _AM_PROG_TAR
|
|
|
|
m4_include([../bfd/acinclude.m4])
|
|
m4_include([../bfd/warning.m4])
|
|
m4_include([../config/acx.m4])
|
|
m4_include([../config/depstand.m4])
|
|
m4_include([../config/gettext-sister.m4])
|
|
m4_include([../config/largefile.m4])
|
|
m4_include([../config/lcmessage.m4])
|
|
m4_include([../config/lead-dot.m4])
|
|
m4_include([../config/nls.m4])
|
|
m4_include([../config/override.m4])
|
|
m4_include([../config/plugins.m4])
|
|
m4_include([../config/po.m4])
|
|
m4_include([../config/progtest.m4])
|
|
m4_include([../config/zlib.m4])
|
|
m4_include([../libtool.m4])
|
|
m4_include([../ltoptions.m4])
|
|
m4_include([../ltsugar.m4])
|
|
m4_include([../ltversion.m4])
|
|
m4_include([../lt~obsolete.m4])
|