condition out the test case if __cpluscplus.
Don't document the autoheader template twice, one is enough.
* autoheader.m4 (AC_CONFIG_HEADER): don't hook on this guy, but
on...
(AC_CONFIG_HEADERS), since the former is defined on the latter.
for it. Just quote properly!
condition out the test case if __cpluscplus.
AC_REQUIRE AC_PROG_CC_STDC.
Fix slightly the display of the result (formerly the first run
says `none needed', and later, because of the cache `no').
(AC_C_INLINE, AC_C_VOLATILE): AC_REQUIRE AC_PROG_CC_STDC.
* doc/autoconf.texi (AC_C_CONST): Give a few hints on the
motivation for trusting the C++ compilers.
(AT_CASE): new macro.
(AT_CHECK): Use it. Don't changequote for patsubst, there is no
need.
* tests/syntax.m4 (TEST_MACRO): Don't run AC_ARG_VAR.
Reported by Jim Meyering.
Use AT_CASE.
* acgeneral.m4 (AC_CANONICAL_THING): define, not AC_DEFUN.
Don't AC_PROVIDE, there is no need.
When calling `config.sub`, also || exit 1, to catch failures from
config.sub.
* acspecific.m4 (AC_SYS_LONG_FILE_NAMES): Use ac_val, not val.
(AC_EXEEXT): Use ac_file, not file.
* tests/actest.m4: New file, holding extra Autoconf macros used
during the testing.
(AC_ENV_SAVE): New macro, save the sh variables in a file.
* tests/suite.m4 (AT_TEST_MACRO, Generation of configure.in):
include actest.m4, and call twice AC_ENV_SAVE to compare the
variables before and after the macro.
* tests/Makefile.am (macro.m4): Don't test macros that are
required: they will be tested somewhere else.
* acgeneral.m4 (AC_CHECK_MEMBER): It is not smart to define
ac_Foo, and use AC_Foo. Got rid of AC_Member_Aggregate and
AC_Member_Member which were complicating more than simplifying.
(AC_CHECK_DECLS): Use m4 lists.
(AC_CHECK_TYPES): A comma was missing.
* autoheader.m4: (AC_CHECK_DECLS): Use m4 lists.
* doc/autoconf.texi (Generic Declarations): AC_CHECK_DELCS uses m4
lists.
* tests/semantics.m4: New file. Collection of semantical tests:
verify that the tests are positive and negative when appropriate.
Test AC_CHECK_MEMBERS, AC_CHECK_DECLS and AC_CHECK_TYPES.
* autoheader.m4 (AH_DEFUN): New macro. Combination of define and
AH_HOOK.
(AC_TRY_RUN, AC_DEFINE, AC_DEFINE_UNQUOTED, AC_CHECK_LIB,
AC_CHECK_HEADERS, AC_CHECK_HEADERS_DIRENT, AC_CHECK_DECLS,
AC_CHECK_FUNCS, AC_CHECK_SIZEOF, AC_PROG_LEX, AC_CHECK_MEMBERS,
AC_CHECK_TYPE, AC_FUNC_ALLOCA, AC_CHECK_TYPES, AC_C_CHAR_UNSIGNED,
AC_AIX, AC_F77_WRAPPERS, AC_CONFIG_HEADER): All the former calls
to define and AH_HOOK in autoheader.m4 are replaced by AH_DEFUN.
Fix the bugs discovered.
* acgeneral.m4 (AC_CANONICAL_THING): Quote the
AC_REQUIRE([AC_CANONICAL_HOST]). Bug triggered by the use of
AC_CANONICAL_BUILD alone in configure.in. Also, quote the
arguments of macros (eg, ifelse([$1]...), not ifelse($1...)).
(m4_case): New macro.
(AC_LINKER_OPTION): Don't clash with user's name space
(s/i/ac_link_opt).
(AC_LIST_MEMBER_OF). You mean AC_FATAL, not AC_MSG_ERROR.
Quote properly the argument.
dnl out the empty lines that result from m4 pure code.
Don't pollute the user name space.
Use AC_SHELL_IFELSE.
(AC_F77_NAME_MANGLING): Don't use `test -o'. There are still
name space problems.
* tests/Makefile.am (macros.m4): Also fetch the macros from
acgeneral.m4.
Fix the discovered bugs.
* tests/atgeneral.m4 (AT_CHECK): Don't just exit 1 when you want
to propagate the failure of a test: exit with the same exit
status, at least to preserve 77 (=ignore).
* tests/syntax.m4 (TEST_MACRO): Run also autoheader. Don't run
this test on all the macros, some just cannot run without
arguments.
* acgeneral.m4 (AC_OUTPUT_CONFIG_STATUS): In the if egrep/fi for
#define templates, add a `:' to prevent syntax errors in
config.status when there are no AC_DEFINE performed.
* autoheader.m4 (AH_TEMPLATE): Don't use _AC_SH_QUOTE here, use it
in...
(AH_VERBATIM): here. Now AH_C_UNSIGNED_CHAR is no longer failing
(formerly it would produce a non backslashed backquote, which
made sh choke).
extern software (so that the test suite doesn't fail on them).
* acgeneral.m4 (AC_MSG_ERROR, AC_MSG_ERROR_UNQUOTED): Allow an
optional $2: exit status.
* doc/autoconf.texi: Document.
* acspecific.m4 (AC_PROG_CC_WORKS, PROG_CXX_WORKS,
AC_PROG_F77_WORKS): Exit 77 if the compiler does not work.
Introduce a new style of testing, independent from DejaGNU.
Introduce the logistics.
* configure.in: Initialize AT, and output tests/atconfig, and
tests/Makefile.
* m4/atconfig.m4: New file.
* m4/Makefile.am: Adjusted.
* aclocal.m4: Include atconfig.m4.
* Makefile.am: Adjusted.
* tests/Makefile.am: New file.
* tests/atgeneral.m4: Likewise.
* tests/atconfig.in: Likewise.
Write tests.
* tests/syntax.m4: New file, in charge of checking the validity of
the sh code produced by the macros defined in acspecific.m4.
acgeneral.m4 is not checked here, because these macros require
arguments.
* tests/suite.m4: New file. Run syntax.m4.
A test suite will be introduced which tries to run all the
specific macros, but hasbeen'd macro make configure die with bad
exit status. So we wish to distinguish live macros from defunct
macros at the moment they are AC_DEFUN'd, not in their body. Hm,
defunct, defunct... Hey! That's a good name!
* acgeneral.m4 (AC_DEFUNCT): New macro, comparable to AC_DEFUN,
but for macros which are no longer defined. Replaces AC_HASBEEN.
(AC_HASBEEN): Defunct. Well, removed in fact.
(AC_HAVE_LIBRARY): Don't use AC_DEFUN and AC_HASBEEN, just
AC_DEFUNCT.
* acspecific.m4 (AC_UNISTD_H, AC_USG, AC_MEMORY_H, AC_DIR_HEADER,
AC_INT_16_BITS, AC_LONG_64_BITS): Likewise.
(AC_XENIX_DIR): It was defunct even before I declared it was: was
depending upon AC_DIR_HEADER which is defunct. So AC_DEFUNCT'ed
now.
(AC_DYNIX_SEQ, AC_IRIX_SUN, AC_SCO_INTL): While we're here, you
too are defunct now.
* autoconf.texi (Obsolete Macros): Replace the documentation of
AC_HASBEEN with that of AC_DEFUNCT.
Require GNU m4 1.4 (well 1.3 in fact).
Because we are ready to handle the case where there are no frozen
files, we *have* to pass a -I, which is dangerous in conjunction
with the silent including of `aclocal.m4': you may include things
that were not expected. Since anyway handling pre 1.3 complicates
the task, just require an m4 which supports reloading of frozen
files.
* acspecific.m4 (AC_PROG_GNU_M4): Check for --reload.
* autoconf.sh: Likewise
* autoheader.sh: Likewise.
* configure.in: Explicitly state the m4 version you want.
No need for foo="`bar`", foo=`bar` is fine.
Simplify ${foo} and ${1} into $foo and $1.
* acgeneral.m4 (ac_LF_and_DOT): Remove the double quotes.
* acspecific.m4 (AC_PROG_CC_C_O, AC_PROG_F77_C_O): Likewise.
* autoconf.sh: Likewise.
* autoheader.sh: Likewise.
* autoreconf.sh: Likewise.
* autoupdate.sh: Likewise.
* ifnames.sh: Remove all the code and messages related to
AC_MACRODIR, since ifnames is not related to macros in anyway.
New version of AC_INCLUDE, which does not glob, nor rely upon the
shell. Add AC_INCLUDES too. Help tracking multiple inclusions.
* acgeneral.m4 (m4_errprint, m4_warn, m4_fatal): New macros,
variations around errprint.
(m4_include_unique): New macro which registers what are the files
already included, and warns if some are included several times.
(m4_include, m4_sinclude): New macro, using m4_include_unique.
(AC_INCLUDE): Is now just a wrapper of m4_include.
(AC_INIT): Use m4_sinclude, not sinclude.
(_AC_ERRPRINT): Removed, m4_errprint is here!
(AC_WARNING, AC_FATAL): Wrappers of m4_warn and m4_fatal.
Clean up the macros for testing members of aggregates.
* acgeneral.m4 (AC_CHECK_MEMBER): FATAL if $1 has no dot in it.
Use AC_INCLUDE_DEFAULTS.
(AC_C_STRUCT_MEMBER): Removed.
* acspecific.m4 (AC_STRUCT_TIMEZONE): Adapted to AC_CHECK_MEMBERS.
(AC_STRUCT_ST_BLKSIZE, AC_STRUCT_ST_RDEV): Adapted to
AC_CHECK_MEMBERS and obsoleted.
(AC_STRUCT_ST_BLOCKS): Adapted to AC_CHECK_MEMBERS.
* autoconf.texi (AC_STRUCT_ST_BLKSIZE, HAVE_STRUCT_STAT_ST_RDEV):
Explain they are obsoleted, and how to migrate.
(AC_STRUCT_ST_BLOCKS, AC_STRUCT_TIMEZONE): Explain that the
AC_DEFINE changed (but the former #defines remain defined
currently).
(AC_C_STRUCT_MEMBER): Removed, replaced by the definitions of
AC_CHECK_MEMBER and AC_CHECK_MEMBERS.
Install a uniform set of default includes.
* acgeneral.m4 (AC_INCLUDES_DEFAULT): New macro. Expands in its
argument if non empty, otherwise a default list of includes.
(AC_CHECK_DECL, AC_CHECK_TYPE_INTERNAL): Use AC_INCLUDES_DEFAULT.
* autoconf.texi: Adjusted.
Fix a bit of the brokenness of AC_CHECK_TYPE.
* acgeneral.m4 (AC_CHECK_TYPE_INTERNAL): New macro, inspired from
the former AC_CHECK_TYPE. This macro is exactly the one that
ought to be named AC_CHECK_TYPE: it just checks, and executes user
actions. In the future, this macro ought to be renamed
AC_CHECK_TYPE.
There is a big difference with the former AC_CHECK_TYPE: instead
of grepping in the headers, it tries to compile a variable
declaration. This is both safer, slower, and better, since now we
can check for compiler types (e.g., unsigned long long).
(AC_CHECK_TYPES): The looping and AC_DEFINEing version of the
previous macro. Uses m4 loops.
(AC_CHECK_TYPE): Reimplemented on top of AC_CHECK_TYPE_INTERNAL.
* autoheader.m4 (AH_CHECK_TYPE, AH_CHECK_TYPES): New macros,
hooked.
* autoconf.texi (@ovar): New macro, for optional variables.
(Generic Typedefs): Document AC_CHECK_TYPES.
* autoheader.texi: (AH_CHECK_TYPE, AH_CHECK_TYPES): New macros.
(Epilogue): Hooks them.
* acgeneral.m4 (AC_CONFIG_LINKS): Allow a second argument,
commands to run, as AC_CONFIG_FILES and HEADERS.
(AC_LIST_LINKS_COMMANDS): New growing string. Initialize.
(AC_OUTPUT_LINKS): Use it.
(AC_OUTPUT_FILES, AC_OUTPUT_HEADERS, AC_OUTPUT_LINKS): Don't
pretend to have arguments: you don't depend upon it.
(AC_OUTPUT): Call the previous macros without arguments.
Clean up dead comments/code. Clean up the incompatibilities
between quoted and non quoted _AC_ECHO and the like.
* acgeneral.m4: Remove the comments on the no longer defined AC_TR.
(_AC_SH_QUOTE): Be robust to active symbols.
(_AC_ECHO): Quote properly the argument.
(AC_TRY_RUN): Don't quote [AC_TRY_RUN] in the warning.
* acgeneral.m4 (AC_INIT_NOTICE, AC_INIT_PREPARE, AC_ARG_ENABLE,
AC_ARG_WITH, AC, TRY_COMPILER, AC_TRY_RUN, AC_TRY_CPP,
AC_EGREP_CPP): Use @PND@ instead of [#]: it looses the editors
that try to match the pairs of (), [] etc.
Fix the compatibility of the compiling macros with C++.
* acgeneral.m4 (AC_TRY_COMPILE, AC_TRY_LINK, AC_CHECK_SIZEOF): Use
`int main () {...}', instead of `main () {...}'.
* acspecific.m4 (AC_TYPE_GETGROUPS, AC_FUNC_CLOSEDIR_VOID,
AC_FUNC_FNMATCH, AC_FUNC_GETPGRP, AC_FUNC_SETPGRP, AC_FUNC_VFORK,
AC_FUNC_WAIT3, AC_FUNC_ALLOCA, AC_FUNC_UTIME_NULL,
AC_FUNC_SETVBUF_REVERSED, AC_FUNC_MEMCMP, AC_C_CHAR_UNSIGNED,
AC_C_LONG_DOUBLE, AC_C_BIGENDIAN, AC_SYS_RESTARTABLE_SYSCALLS):
Likewise.
* acspecific.m4 (AC_FUNC_FNMATCH): Call
AC_CHECK_HEADERS(fnmatch.h), and include fnmatch.h in the compiled
code.
* acgeneral.m4 (AC_COMPILE_CHECK, AC_TRY_COMPILE,
AC_TRY_RUN_NATIVE, AC_OUTPUT_CONFIG_STATUS): Use @PND@ instead of
[#]: it looses the editors that try to match the pairs of (), []
etc.
Formatting changes.
* acspecific.m4: Formatting changes.
Allow standard beta version numbers.
* configure.in: Declare version 2.14a.
* acgeneral.m4 (AC_UNGNITS): New macro which transform version
numbers to pure digits (2.14a to 2.14.0.1, 2.15z to 2.15.0.26
etc.).
(AC_PREREQ): Normalize argument and AC_ACVERSION via AC_UNGNITS.
Provide a means to specify commands to run before config.status is
created (and, for symmetry, after it is created).
This is typically needed by Automake so that AC_REPLACEd functions
go through deansification via
LIBOBJS=`echo $LIBOBJS | sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'`
and/or by Libtool which needs to define LTLIBOBJS and others:
LTLIBOBJS=`echo $LIBOBJS | sed 's/\.o/\.lo/g'`
AC_SUBST(LTLIBOBJS)
* acgeneral.m4 (AC_OUTPUT_PRE_COMMANDS): New growing string.
Initialize.
(AC_OUTPUT_POST_COMMANDS): Likewise.
(AC_CONFIG_PRE_COMMANDS): New macro, grows AC_OUTPUT_PRE_COMMANDS.
(AC_CONFIG_PRE_COMMANDS): Likewise.
(AC_OUTPUT): Run AC_OUTPUT_PRE_COMMANDS before
AC_OUTPUT_CONFIG_STATUS, and AC_OUTPUT_POST_COMMANDS after.
Remove spurious empty lines appearing in configures.
* acgeneral.m4 (AC_CONFIG_UNIQUE): Produce no output. Instead of
fighting with dnl, divert to KILL upon entry, and pop at exit.
Create AC_CONFIG_HEADERS which has the same interface as the other
AC_CONFIG_*S.
* acgeneral.m4 (AC_CONFIG_HEADERS): New macro, with the same
interface as AC_CONFIG_LINKS and AC_CONFIG_FILES.
(AC_LIST_HEADERS_COMMANDS): New growing string, initialize it.
(AC_CONFIG_HEADER): Rename as...
(AC_CONFIG_HEADERS): this, for consistency.
(AC_CONFIG_HEADER): New macro, which calls AC_OUTPUT_HEADERS.
(AC_OUTPUT_HEADERS): The square brackets for sed and grep were
not properly quoted: use @BKL@ and @BKR@.
(AC_OUTPUT_HEADERS): Run the AC_LIST_HEADERS_COMMANDS.
* acgeneral.m4 (AC_OUTPUT): Once config.status created, before
running it, trap to `exit 1' so that config.status is not removed
if configure is interrupted when config.status is complete.
* acgeneral.m4 (AC_OUTPUT_CONFIG_STATUS): When recognizing
arguments, accept only foo, and no longer foo:foo.in etc.