Moving most of the task of creating config.h.in from sh to m4.
Getting rid of acconfig.h by supply a major new family of macros:
AH_* which make it possible to insert arbitrary text into
config.h.in.
* autoheader.m4: Major rewrite: introduction of a set of macros
AH_ that produce code into config.h.in. There are two sets of
macros: generic macros, or specialized, documented below. The
basic idea is that an AC_FOO macro which needs an entry in
config.h.in should have a sibling AH_FOO which expands into that
entry. In a near future, these macros will be moved next to their
siblings.
* autoheader.m4 (AH_VERBATIM, AH_DEFINE, AH_DEFINE, AH_NEED_DECLS,
AH_CHECK_SIZEOF, AH_CHECK_FUNCS, AH_CHECK_HEADERS,
AH_CHECK_HEADERS, AH_CHECK_LIB, AH_PROG_LEX, AH_FUNC_ALLOCA,
AH_C_CHAR_UNSIGNED, AH_AIX, AH_F77_WRAPPERS): New macros.
* autoheader.m4 (End section): Bind AC_ macros to their
AH_siblings.
* autoheader.sh: Remove the sections in charge of SYMS, TYPES,
FUNCS, HEADERS, LIBS and DECLS: autoheader.m4 is now in charge of
these.
* autoheader.sh (options): Added -d, --debug, which does not
remove the temporary files.
* autoheader.sh: Instead of redirecting stdout to the output
stream, always output to a temporary file. This allows to change
slightly the consistency check: before autoheader would check that
each non documented AC_DEFINE is templated in an acconfig. Now it
just checks whether the template is in the output file.
* acconfig.h: Completely emptied, the remaining templates
(_ALL_SOURCE, __CHAR_UNSIGNED__, F77_FUNC, F77_FUNC_,
HAVE_STRINGIZE, and STACK_DIRECTION) are now either associated to
their AC_DEFINE, or to one of the new AH_ macros.
* acgeneral.m4: Reordering of the m4 macros which are not specific
to Autoconf.
* acgeneral.m4 (AC_HAVE_LIB): Promoted from obsolete to hasbeen.
* acgeneral.m4 (AC_TR_CPP): Fixed quoting problem, and missing ^
in patsubst.
(AC_TR_SH): Fixed quoting problem.
(tag: trunk-pre-merge-trunk-into-experimental-1999-10-01)
into the experimental branch
(tag:experimental-pre-merge-trunk-into-experimental-1999-10-01).
Result is tagged
experimental-post-merge-trunk-into-experimental-1999-10-01.
Start to get rid of acconfig.h. It is an anachronism.
* acgeneral.m4 (_AC_SH_QUOTE): Both cases must be evaluated the
same number of times.
* acconfig.h (_ALLOCA, CLOSEDIR_VOID, const, CRAY_STACKSEG_END,
DGUX, DIRENT, GETGROUPS_T, GETLOADAVG_PRIVILEGED, GETPGRP_VOID,
gid_t, HAVE_ALLOCA, HAVE_ALLOCA_H, HAVE_DOPRNT, HAVE_FNMATCH,
HAVE_GETLOADAVG, HAVE_GETMNTENT, HAVE_LONG_DOUBLE,
HAVE_LONG_FILE_NAMES, HAVE_MMAP, HAVE_RESTARTABLE_SYSCALLS,
HAVE_ST_BLKSIZE, HAVE_ST_BLOCKS, HAVE_STRCOLL, HAVE_ST_RDEV,
HAVE_STRFTIME, HAVE_SYS_WAIT_H, HAVE_TM_ZONE, HAVE_TZNAME,
HAVE_UNISTD_H, HAVE_UTIME_NULL, HAVE_VFORK_H, HAVE_VPRINTF,
HAVE_WAIT3, inline, INT_16_BITS, LONG_64_BITS, MAJOR_IN_MKDEV,
MAJOR_IN_SYSMACROS, _MINIX, NDIR, NEED_MEMORY_H, NLIST_NAME_UNION,
NLIST_STRUCT, NO_MINUS_C_MINUS_O, F77_NO_MINUS_C_MINUS_O,
_POSIX_1_SOURCE, _POSIX_SOURCE, RETSIGTYPE, SELECT_TYPE_ARG1,
SELECT_TYPE_ARG234, SELECT_TYPE_ARG5, SETPGRP_VOID,
SETVBUF_REVERSED, STAT_MACROS_BROKEN, STDC_HEADERS, SVR4, SYSDIR,
SYSNDIR, SYS_SIGLIST_DECLARED, TIME_WITH_SYS_TIME, TM_IN_SYS_TIME,
uid_t, UMAX, UMAX4_3, USG, vfork, VOID_CLOSEDIR, WORDS_BIGENDIAN,
X_DISPLAY_MISSING, YYTEXT_POINTER): Removed their autoheader
template. They are now documented with their own AC_DEFINE.
* acgeneral.m4 (AC_HASBEEN): New macro. Same as AC_OBSOLETE, but
dies.
* acspecific.m4 (AC_UNISTD_H, AC_USG, AC_MEMORY_H, AC_INT_16_BITS,
AC_LONG_64_BITS): Promoted from obsolete to hasbeen.
* autoheader.m4 (AC_DEFINE_UNQUOTED): Define via AC_DEFINE, so
that we program things only once.
(AC_DEFINE): Use AC_WRAP and _AC_SH_QUOTE. It is now safe to have
backquotes and extra spaces in the third argument, without
yielding a bad result.
* autoheader.m4: Instead of a huge `eval', use a temporary file.
(option handling): Added --debug, to keep the temporary files.
Fixed a couple of missing quotes.
* acgeneral.m4 (AC_NEED_DECL): When $4 is given, don't provide
defaults headers.
Change the message from `have' to `need'.
Change the actions for `if-(not-)found' to `if-(not-)needed.
Remove trailing parentheses.
* acgeneral.m4 (AC_NEED_DECLS): Change the actions for
`if-(not-)found' to `if-(not-)needed.
Define NEED_DECL_foo, instead of NEED_foo_DECL.
* autoheader.sh (decls): Reflect this.
* autoconf.texi (Generic Declarations): Update.
* acgeneral.m4 (AC_OUTPUT): Divert AC_OUTPUT_FILE to
AC_DIVERSION_KILL if there are no CONFIG_FILES.
(AC_OUTPUT, ac_cs_usage): Output the list of files to instanciate
only if there are.
* acgeneral.m4 (AC_WRAP): Rewritten.
(AC_HELP_STRING): Wrapper of AC_WRAP.
* acgeneral.m4 (_AC_SH_QUOTE): Rewritten. Don't try to handle
both backslashed and non backslashed backquotes in a single
string: consider that either all the backquotes are quoted, or
none.
1999-09-26 Akim Demaille <akim@epita.fr>
* acgeneral.m4 (AC_PATH_PROG): Use a single case statement for
Unix and DOS absolute paths.
* acgeneral.m4 (AC_CHECK_SIZEOF): Fix a typo.
Allow a third default argument: extra headers.
* autoconf.texi (C Compiler Characteristics): Document.
* acgeneral.m4 (AC_CHECK_TYPE): Convert to the AC_VAR_* family.
Allow a third optional argument: extra includes.
* autoconf.texi (Generic Typedefs): Documents.
1999-09-25 Akim Demaille <akim@epita.fr>
* acgeneral.m4 (AC_OUTPUT, handling of options): Make it possible
to specify the files to configure on the command line instead of
via envvars. Document it.
1999-09-25 Akim Demaille <akim@epita.fr>
* acgeneral.m4: Rename the occurences of the variable `confstat'
as `ac_cs_root'. The previous name was breaking the naming
scheme.
* TODO: Updated.
Added a section for 2.15 and 3.
Avoid that comments from aclocal.m4 show up in configure when
using AC_REVISION.
* acgeneral.m4: New diversion levels AC_DIVERSION_KILL and
AC_DIVERSION_BINSH introduced. Use AC_DIVERSION_KILL as the
initial value for AC_DIVERSION_CURRENT.
(AC_INIT_BINSH): Set AC_DIVERSION_BINSH explicitly
(AC_REVISION): Likewise.
(AC_INIT): Set AC_DIVERSION_NOTICE when calling AC_INIT_NOTICE.
* NEWS: Document AC_ARG_VAR.
* acspecific.m4 (AC_C_LONG_DOUBLE): Avoid a needed execution by
using a pure compilation test. Excellent for cross compilation.
From Kaveh R. Ghazi.
* install.texi: Give emore details on envvar handling.
* acgeneral.m4 (AC_HELP_STRING): Add a third argument to tune the
width of the first column.
(AC_INIT_NOTICE): Initialize ac_arg_enable_help, ac_arg_with_help,
and ac_arg_var_help.
* acgeneral.m4 (AC_INIT_PARSE_ARGS): Remove the handling of
--env-var=. After debate, the solution chosen to specify envvars
to configure is a` la make: ./configure VAR=VAL.
(AC_INIT_PARSE_ARGS, --help): Output ac_arg_enable_help,
ac_arg_with_help, and ac_arg_var_help.
* acgeneral.m4 (AC_ARG_VAR): New macro, to register and document
influent envvars.
* acspecific.m4 (AC_PROG_CC): Document CFLAGS.
This is mainly to test AC_ARG_VAR. Var to document are to be
defined.
* NEWS: Updated.
* THANKS: Likewise.
* acgeneral.m4 (AC_CHECK_HEADER): Use AC_VAR_*.
(AC_CHECK_HEADERS): Adapted.
* acgeneral.m4 (AC_TR): Remove, it is useless.
(AC_TR_CPP): Updated version of formerly AC_TR_DEFINE, based on
the model of AC_TR_SH.
All callers changed.
* autoconf.sh (Checking for Bugs): Remove the indirection that
made the `sort -u' useless.
1999-09-21 Akim Demaille <akim@epita.fr>
* autoconf.sh (Last sed cmd): Change also @PND@ to `#', since this
is also a symbol very hard to quote in m4.
* acgeneral.m4 (AC_CHECK_LIB): Use AC_VAR_*.
* acgeneral.m4: Use `m4_BUILTIN' instead of indirection via
`builtin'.
1999-09-21 Akim Demaille <akim@epita.fr>
* autoconf.texi (Particular Structures): Move documentation of
AC_HEADER_STAT and AC_HEADER_TIME from here...
(Particular Headers): to here.
(Declarations): New section.
(Particular Headers): Move doc of AC_DECL_SYS_SIGLIST from here...
(Particular Declarations): to here.
1999-09-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* acgeneral.m4 (AC_CHECK_FUNC_DECL, AC_CHECK_FUNC_DECLS): New
macros.
* autoconf.texi (AC_CHECK_FUNC_DECL, AC_CHECK_FUNC_DECLS):
Document.
* autoheader.m4: Add support for AC_CHECK_FUNC_DECLS.
* autoheader.sh: Likewise.
1999-09-21 Akim Demaille <akim@epita.fr>
* acgeneral.m4 (AC_SHELL_IFELSE): New macro.
(AC_VAR_IF_SET): Use it.
(AC_CHECK_FUNC): Likewise.
* Makefile.in (${srcdir}/configure): Use autoconf.sh to build
Autoconf's configure. Before the building was performed running
m4 at hand, but much was not done (e.g., __oline__,
@BKL@... expansion)
* acgeneral.m4 (AC_OUTPUT): Don't remove the CONFIG_HEADERS
unconditionaly: it breaks the `config.h has not changed' trick.
1999-09-20 Pavel Roskin <pavel_roskin@geocities.com>
* autoheader.sh: Fix the tr invocation.
* acgeneral.m4 (AC_INIT_PARSE_ARGS): Improve configure's --help.
* acgeneral.m4 (AC_OUTPUT): Change the root of filenames of
config.status from $conftest to $confstat.
The previous patch to make config.status reentrant was wrong,
because it changed some `conftest' that are used by configure into
`$conftest', while it was for config.status only. To avoid
another confusion like this, all the filenames of config.status
should be `$confstat*', and those of configure should be
`conftest*'.
(AC_OUTPUT): Rename the uses of `ac_file' for the sed fragments as
`ac_sed_frag'.
* acgeneral.m4 (AC_OUTPUT): This macro used to open the here
documents that configure uses to generate config.status, included
that of the submacros. Now, it no longer handles the here
documents for its subroutines (it was far to hard to track).
(AC_OUTPUT_FILES): Open and close your here documents to
$CONFIG_STATUS.
(AC_OUTPUT_HEADER): Likewise.
(AC_OUTPUT_LINKS): Likewise.
* acgeneral.m4 (AC_OUTPUT_FILES): Move $ac_vpsub and $extrasub
from the AC_SUBST substitutions (i.e., that of @SHELL@ etc.) to
the specific section (that of @srcdir@ etc.).
Now the ``general substitution'' section is absolutely uniform.
* acgeneral.m4 (AC_SUBST): Change sed call from `s%@from@%to%g'
into `s%@from@%to%;t t'.
(AC_SUBST_FILE): Likewise.
(AC_OUTPUT_FILES): Optimize the sed scripts by branching if there
are no `@' on the line. Impressive speed up.
* Makefile.in (DISTFILES): Add THANKS.
* THANKS: New file.
* acgeneral.m4 (AC_CHECK_FILE): Use ifset.
(AC_CHECK_FUNC): Updated to use AC_VAR_*, and AC_CACHE_CHECK.
(AC_CHECK_SIZEOF): Likewise.
(AC_CACHE_CHECK): Use AC_MSG_RESULT_UNQUOTED.
(AC_MSG_RESULT_UNQUOTED): New macro.
use `echo` followed by a non-blank, within quotes.
* autoheader.sh (syms): Likewise.
* configure: Rebuilt.
Reported by Christian Krone <krischan@sql.de>
* acgeneral.m4 (AC_HELP_STRING): Rewrite in m4. Have m4 work, and
give a break to sh.
(_AC_FOREACH): Be careful not to evaluate the arguments. A loop
over *quoted* macro names should loop over the macro names, not
upon their expansion.
(_AC_COMMATIZE): Also swallow end of lines.
* autoconf.texi (Pretty Help Strings): Updated to reflect the
changes.
1999-09-13 Akim Demaille <akim@epita.fr>
* acgeneral.m4 (ifset): New helpy tiny macro.
(AC_OUTPUT): Improved --help of config.status.
(AC_OUTPUT): Remove inconditionaly all the files to be updated.
(AC_OUTPUT): Use pid to define the temporary file names in order
to allow parallel builds.
* autoconf.sh: Substitute also /@BKL@/[/ /@BKR@/]/ /@DLR@/$/ so
that these characters are more easily accessible from m4 without
turning changequote juggling into a nightmare.
* acgeneral.m4 (AC_WRAP): New macro, for word wrapping.
* autoconf.texi: Update the direntry for more modern Texinfos.
Add pointer to configure and config.status.
Remove the dots from the menus: horizontal space is precious.
(Invoking config.status): More traditional presentation of the options.
* acgeneral.m4 (AC_ACVERSION): Bump to 2.14.1 to differenciate the
experimental branch from the main trunk.
* acgeneral.m4 (AC_FOREACH_COMMA): New macro, to perform m4 loops
on m4 lists (i.e., list='(item_1, item_2, ..., item_n)').
(AC_FOREACH): New macro, to perform m4 loops on shell lists (i.e.,
list='item_1 item_2 ... item_n').
* acgeneral.m4 (AC_DEFUN): Now accept two other optionnal
parameters: the name of the macro which is specialized here, and
the name of the first argument. For instance `AC_CHECK_FNMATCH'
should be declared as specializing `AC_CHECK_FUNC' for `fnmatch'
as first argument.
* acgeneral.m4 (AC_CHECK_FILES): Use AC_FOREACH for looping,
instead of the shell's loop.
* acgeneral.m4 (AC_TR): In addition to transliteration, provide a
mean to specify the valid destination alphabet and a default
character for aliens characters. This is in order to remove
characters such as `+:-' etc. that may appear in file names,
but are not valid for shell variables or #defines.
(AC_TR_DEFINE): New macro, maps anything to a valid uppercase
#define rhs.
(AC_TR_UPCASE_NAME): Replaced by AC_TR_DEFINE. All callers
changed.
(AC_TR_UPCASE_FILE): Likewise.
* acgeneral.m4 (AC_TR_SH): Don't use the generic AC_TR: there is a
difficult problem of quoting between m4 and sh. Use the variable
$ac_tr_sh to work around this difficulty.
(AC_VAR_TEST_SET): New macro, which tests if a variable is set.
(AC_VAR_IF_SET): New `ifelse' macro.
(AC_CACHE_VAL): Use AC_VAR_IF_SET.
(AC_INIT_NOTICE): Define $ac_tr_sh.
* acgeneral.m4 (AC_CHECK_FILE): Converted to use AC_TR and AC_VAR
families.
* acgeneral.m4: Fixed the regular expressions: `$' shall not be
portably in a sed \(\) group.
as a last resort.
(AC_PROG_F77): Add more Fortran 77 compilers to the search list.
Contributed by Steven G. Johnson <stevenj@alum.mit.edu>.
(AC_PROG_CC): Likewise.
(AC_PROG_CXX): Likewise.
(AC_PROG_F77): Add an optional first argument which gives the user an
opportunity to specify an alternative search list for the compiler.
(AC_HAVE_LIBRARY): Likewise.
(AC_CHECK_FUNCS): Likewise.
(AC_CHECK_FILES): Likewise.
(AC_CHECK_SIZEOF): Likewise.
(AC_TR): New macro which performs transliteration by m4 when possible,
or by `tr' at configure time.
(AC_TR_UPCASE_NAME): New macro, transliteration 'a-z' to 'A-Z'.
(AC_TR_UPCASE_FILE): New macro, transliteration 'a-z./-' to 'A-Z___'.
(AC_TR_SH): New macro, transliteration to valid sh var name.
(_AC_SH_QUOTE): New macro which protects non protected backquotes
against shell expansion.
(AC_MSG_CHECKING): Use it.
(AC_CHECKING): Use it.
(AC_MSG_RESULT): Use it.
(AC_VERBOSE): Use it.
(AC_MSG_WARN): Use it.
(AC_MSG_ERROR): Use it.
(_AC_MESSAGE): New macro to report message at m4 time.
(AC_WARNING): New macro to report warnings at m4 runtime.
(AC_FATAL): New macro, to report fatal error at m4 runtime.
(AC_VAR_IF_INDIR): New macro.
(AC_VAR_SET): Likewise.
(AC_VAR_GET): Likewise.