From: Akim Demaille Date: Mon, 27 Aug 2001 07:17:23 +0000 (+0000) Subject: * lib/autoconf/general.m4 (AU_DEFINE, AU_DEFUN, AU_ALIAS): Move X-Git-Tag: AUTOCONF-2.52d~46 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bec2fc5d4ea4eadb0d2d039ee0030b579c1285bb;p=thirdparty%2Fautoconf.git * lib/autoconf/general.m4 (AU_DEFINE, AU_DEFUN, AU_ALIAS): Move to... * lib/autoconf/autoheader.m4: this new file. * lib/autoconf/general.m4 (AH_OUTPUT, AH_VERBATIM) (_AH_VERBATIM_OLD, AH_TEMPLATE, _AH_TEMPLATE_OLD, AH_TOP, AH_BOTTOM): Move to... * lib/autoconf/autoupdate.m4: this new file. --- diff --git a/ChangeLog b/ChangeLog index 907cb33a1..5efc4f1b9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2001-08-27 Akim Demaille + + * lib/autoconf/general.m4 (AU_DEFINE, AU_DEFUN, AU_ALIAS): Move + to... + * lib/autoconf/autoheader.m4: this new file. + * lib/autoconf/general.m4 (AH_OUTPUT, AH_VERBATIM) + (_AH_VERBATIM_OLD, AH_TEMPLATE, _AH_TEMPLATE_OLD, AH_TOP, AH_BOTTOM): + Move to... + * lib/autoconf/autoupdate.m4: this new file. + 2001-08-27 Akim Demaille * lib/autoconf/status.m4 (_AC_SRCPATHS): New. diff --git a/lib/autoconf/Makefile.am b/lib/autoconf/Makefile.am index 31604aa70..f8f8bbd58 100644 --- a/lib/autoconf/Makefile.am +++ b/lib/autoconf/Makefile.am @@ -18,10 +18,13 @@ ## 02111-1307, USA. autoconflibdir = $(pkgdatadir)/autoconf -dist_autoconflib_DATA = autoconf.m4 \ - general.m4 status.m4 oldnames.m4 specific.m4 \ - lang.m4 c.m4 fortran.m4 \ - functions.m4 headers.m4 types.m4 libs.m4 programs.m4 +dist_autoconflib_DATA = \ + autoconf.m4 \ + general.m4 status.m4 oldnames.m4 specific.m4 \ + autoheader.m4 autoupdate.m4 \ + lang.m4 c.m4 fortran.m4 \ + functions.m4 headers.m4 types.m4 libs.m4 programs.m4 + nodist_autoconflib_DATA = autoconf.m4f @@ -109,11 +112,13 @@ autoconf.m4f: $(srclibdir)/m4sugar/m4sugar.m4 \ $(srclibdir)/m4sugar/m4sh.m4 \ $(srclibdir)/autoconf/autoconf.m4 \ $(srclibdir)/autoconf/general.m4 \ + $(srclibdir)/autoconf/autoheader.m4 \ + $(srclibdir)/autoconf/autoupdate.m4 \ $(srclibdir)/autoconf/status.m4 \ $(srclibdir)/autoconf/oldnames.m4 \ $(srclibdir)/autoconf/specific.m4 \ - $(srclibdir)/autoconf/lang.m4 \ - $(srclibdir)/autoconf/c.m4 \ + $(srclibdir)/autoconf/lang.m4 \ + $(srclibdir)/autoconf/c.m4 \ $(srclibdir)/autoconf/fortran.m4 \ $(srclibdir)/autoconf/functions.m4 \ $(srclibdir)/autoconf/headers.m4 \ diff --git a/lib/autoconf/Makefile.in b/lib/autoconf/Makefile.in index eae993331..bcd496a98 100644 --- a/lib/autoconf/Makefile.in +++ b/lib/autoconf/Makefile.in @@ -65,10 +65,13 @@ PERL = @PERL@ VERSION = @VERSION@ autoconflibdir = $(pkgdatadir)/autoconf -dist_autoconflib_DATA = autoconf.m4 \ - general.m4 status.m4 oldnames.m4 specific.m4 \ - lang.m4 c.m4 fortran.m4 \ - functions.m4 headers.m4 types.m4 libs.m4 programs.m4 +dist_autoconflib_DATA = \ + autoconf.m4 \ + general.m4 status.m4 oldnames.m4 specific.m4 \ + autoheader.m4 autoupdate.m4 \ + lang.m4 c.m4 fortran.m4 \ + functions.m4 headers.m4 types.m4 libs.m4 programs.m4 + nodist_autoconflib_DATA = autoconf.m4f @@ -330,11 +333,13 @@ autoconf.m4f: $(srclibdir)/m4sugar/m4sugar.m4 \ $(srclibdir)/m4sugar/m4sh.m4 \ $(srclibdir)/autoconf/autoconf.m4 \ $(srclibdir)/autoconf/general.m4 \ + $(srclibdir)/autoconf/autoheader.m4 \ + $(srclibdir)/autoconf/autoupdate.m4 \ $(srclibdir)/autoconf/status.m4 \ $(srclibdir)/autoconf/oldnames.m4 \ $(srclibdir)/autoconf/specific.m4 \ - $(srclibdir)/autoconf/lang.m4 \ - $(srclibdir)/autoconf/c.m4 \ + $(srclibdir)/autoconf/lang.m4 \ + $(srclibdir)/autoconf/c.m4 \ $(srclibdir)/autoconf/fortran.m4 \ $(srclibdir)/autoconf/functions.m4 \ $(srclibdir)/autoconf/headers.m4 \ diff --git a/lib/autoconf/autoconf.m4 b/lib/autoconf/autoconf.m4 index 445c2818d..105fdfe68 100644 --- a/lib/autoconf/autoconf.m4 +++ b/lib/autoconf/autoconf.m4 @@ -54,8 +54,12 @@ divert(-1)# -*- Autoconf -*- changequote() changequote([, ]) include([m4sugar/m4sh.m4]) +# general includes some AU_DEFUN. +m4_include([autoconf/autoupdate.m4]) + m4_include([autoconf/general.m4]) m4_include([autoconf/status.m4]) +m4_include([autoconf/autoheader.m4]) m4_include([autoconf/programs.m4]) m4_include([autoconf/lang.m4]) m4_include([autoconf/c.m4]) diff --git a/lib/autoconf/autoheader.m4 b/lib/autoconf/autoheader.m4 new file mode 100644 index 000000000..c82aa3ea7 --- /dev/null +++ b/lib/autoconf/autoheader.m4 @@ -0,0 +1,116 @@ +# This file is part of Autoconf. -*- Autoconf -*- +# Interface with autoheader. +# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. + +# This program 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, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# As a special exception, the Free Software Foundation gives unlimited +# permission to copy, distribute and modify the configure scripts that +# are the output of Autoconf. You need not follow the terms of the GNU +# General Public License when using or distributing such scripts, even +# though portions of the text of Autoconf appear in them. The GNU +# General Public License (GPL) does govern all other use of the material +# that constitutes the Autoconf program. +# +# Certain portions of the Autoconf source text are designed to be copied +# (in certain cases, depending on the input) into the output of +# Autoconf. We call these the "data" portions. The rest of the Autoconf +# source text consists of comments plus executable code that decides which +# of the data portions to output in any given case. We call these +# comments and executable code the "non-data" portions. Autoconf never +# copies any of the non-data portions into its output. +# +# This special exception to the GPL applies to versions of Autoconf +# released by the Free Software Foundation. When you make and +# distribute a modified version of Autoconf, you may extend this special +# exception to the GPL to apply to your modified version as well, *unless* +# your modified version has the potential to copy into its output some +# of the text that was the non-data portion of the version that you started +# with. (In other words, unless your change moves or copies text from +# the non-data portions to the data portions.) If your modification has +# such potential, you must delete any notice of this special exception +# to the GPL from your modified version. +# +# Written by David MacKenzie, with help from +# Franc,ois Pinard, Karl Berry, Richard Pixley, Ian Lance Taylor, +# Roland McGrath, Noah Friedman, david d zuhn, and many others. + + +# AH_OUTPUT(KEY, TEXT) +# -------------------- +# Pass TEXT to autoheader. +# This macro is `read' only via `autoconf --trace', it outputs nothing. +m4_define([AH_OUTPUT], []) + + +# AH_VERBATIM(KEY, TEMPLATE) +# -------------------------- +# If KEY is direct (i.e., no indirection such as in KEY=$my_func which +# may occur if there is AC_CHECK_FUNCS($my_func)), issue an autoheader +# TEMPLATE associated to the KEY. Otherwise, do nothing. TEMPLATE is +# output as is, with no formating. +m4_define([AH_VERBATIM], +[AS_LITERAL_IF([$1], + [AH_OUTPUT([$1], AS_ESCAPE([[$2]]))]) +]) + + +# _AH_VERBATIM_OLD(KEY, TEMPLATE) +# ------------------------------- +# Same as above, but with bugward compatibility. +m4_define([_AH_VERBATIM_OLD], +[AS_LITERAL_IF([$1], + [AH_OUTPUT([$1], _AS_QUOTE([[$2]]))]) +]) + + +# AH_TEMPLATE(KEY, DESCRIPTION) +# ----------------------------- +# Issue an autoheader template for KEY, i.e., a comment composed of +# DESCRIPTION (properly wrapped), and then #undef KEY. +m4_define([AH_TEMPLATE], +[AH_VERBATIM([$1], + m4_text_wrap([$2 */], [ ], [/* ])[ +#undef $1])]) + + +# _AH_TEMPLATE_OLD(KEY, DESCRIPTION) +# ---------------------------------- +# Same as above, but with bugward compatibility. +m4_define([_AH_TEMPLATE_OLD], +[_AH_VERBATIM_OLD([$1], + m4_text_wrap([$2 */], [ ], [/* ])[ +#undef $1])]) + + +# AH_TOP(TEXT) +# ------------ +# Output TEXT at the top of `config.h.in'. +m4_define([AH_TOP], +[m4_define([_AH_COUNTER], m4_incr(_AH_COUNTER))dnl +AH_VERBATIM([0000]_AH_COUNTER, [$1])]) + + +# AH_BOTTOM(TEXT) +# --------------- +# Output TEXT at the bottom of `config.h.in'. +m4_define([AH_BOTTOM], +[m4_define([_AH_COUNTER], m4_incr(_AH_COUNTER))dnl +AH_VERBATIM([zzzz]_AH_COUNTER, [$1])]) + +# Initialize. +m4_define([_AH_COUNTER], [0]) diff --git a/lib/autoconf/autoupdate.m4 b/lib/autoconf/autoupdate.m4 new file mode 100644 index 000000000..e2d9e8853 --- /dev/null +++ b/lib/autoconf/autoupdate.m4 @@ -0,0 +1,98 @@ +# This file is part of Autoconf. -*- Autoconf -*- +# Interface with autoupdate. +# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. + +# This program 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, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# As a special exception, the Free Software Foundation gives unlimited +# permission to copy, distribute and modify the configure scripts that +# are the output of Autoconf. You need not follow the terms of the GNU +# General Public License when using or distributing such scripts, even +# though portions of the text of Autoconf appear in them. The GNU +# General Public License (GPL) does govern all other use of the material +# that constitutes the Autoconf program. +# +# Certain portions of the Autoconf source text are designed to be copied +# (in certain cases, depending on the input) into the output of +# Autoconf. We call these the "data" portions. The rest of the Autoconf +# source text consists of comments plus executable code that decides which +# of the data portions to output in any given case. We call these +# comments and executable code the "non-data" portions. Autoconf never +# copies any of the non-data portions into its output. +# +# This special exception to the GPL applies to versions of Autoconf +# released by the Free Software Foundation. When you make and +# distribute a modified version of Autoconf, you may extend this special +# exception to the GPL to apply to your modified version as well, *unless* +# your modified version has the potential to copy into its output some +# of the text that was the non-data portion of the version that you started +# with. (In other words, unless your change moves or copies text from +# the non-data portions to the data portions.) If your modification has +# such potential, you must delete any notice of this special exception +# to the GPL from your modified version. +# +# Written by David MacKenzie, with help from +# Franc,ois Pinard, Karl Berry, Richard Pixley, Ian Lance Taylor, +# Roland McGrath, Noah Friedman, david d zuhn, and many others. + + +## --------------------------------- ## +## Defining macros in autoupdate::. ## +## --------------------------------- ## + + +# AU_DEFINE(NAME, GLUE-CODE, [MESSAGE]) +# ------------------------------------- +# +# Declare `autoupdate::NAME' to be `GLUE-CODE', with all the needed +# wrapping actions required by `autoupdate'. +# We do not define anything in `autoconf::'. +m4_define([AU_DEFINE], +[AC_DEFUN([$1], [$2])]) + + +# AU_DEFUN(NAME, NEW-CODE, [MESSAGE]) +# ----------------------------------- +# Declare that the macro NAME is now obsoleted, and should be replaced +# by NEW-CODE. Tell the user she should run autoupdate, and include +# the additional MESSAGE. +# +# Also define NAME as a macro which code is NEW-CODE. +# +# This allows to share the same code for both supporting obsoleted macros, +# and to update a configure.ac. +# See `acobsolete.m4' for a longer description. +m4_define([AU_DEFUN], +[AU_DEFINE([$1], + [AC_DIAGNOSE([obsolete], [The macro `$1' is obsolete. +You should run autoupdate.])dnl +$2], + [$3])dnl +]) + + +# AU_ALIAS(OLD-NAME, NEW-NAME) +# ---------------------------- +# The OLD-NAME is no longer used, just use NEW-NAME instead. There is +# little difference with using AU_DEFUN but the fact there is little +# interest in running the test suite on both OLD-NAME and NEW-NAME. +# This macro makes it possible to distinguish such cases. +# +# Do not use `defn' since then autoupdate would replace an old macro +# call with the new macro body instead of the new macro call. +m4_define([AU_ALIAS], +[AU_DEFUN([$1], [$2($][@)])]) diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4 index cc2b78f87..28bc6a5e4 100644 --- a/lib/autoconf/general.m4 +++ b/lib/autoconf/general.m4 @@ -231,129 +231,6 @@ m4_define([AC_PROVIDE_IFELSE], - -## --------------------------------- ## -## Defining macros in autoupdate::. ## -## --------------------------------- ## - - -# AU_DEFINE(NAME, GLUE-CODE, [MESSAGE]) -# ------------------------------------- -# -# Declare `autoupdate::NAME' to be `GLUE-CODE', with all the needed -# wrapping actions required by `autoupdate'. -# We do not define anything in `autoconf::'. -m4_define([AU_DEFINE], -[AC_DEFUN([$1], [$2])]) - - -# AU_DEFUN(NAME, NEW-CODE, [MESSAGE]) -# ----------------------------------- -# Declare that the macro NAME is now obsoleted, and should be replaced -# by NEW-CODE. Tell the user she should run autoupdate, and include -# the additional MESSAGE. -# -# Also define NAME as a macro which code is NEW-CODE. -# -# This allows to share the same code for both supporting obsoleted macros, -# and to update a configure.ac. -# See `acobsolete.m4' for a longer description. -m4_define([AU_DEFUN], -[AU_DEFINE([$1], - [AC_DIAGNOSE([obsolete], [The macro `$1' is obsolete. -You should run autoupdate.])dnl -$2], - [$3])dnl -]) - - -# AU_ALIAS(OLD-NAME, NEW-NAME) -# ---------------------------- -# The OLD-NAME is no longer used, just use NEW-NAME instead. There is -# little difference with using AU_DEFUN but the fact there is little -# interest in running the test suite on both OLD-NAME and NEW-NAME. -# This macro makes it possible to distinguish such cases. -# -# Do not use `defn' since then autoupdate would replace an old macro -# call with the new macro body instead of the new macro call. -m4_define([AU_ALIAS], -[AU_DEFUN([$1], [$2($][@)])]) - - - -## ------------------------- ## -## Interface to autoheader. ## -## ------------------------- ## - - -# AH_OUTPUT(KEY, TEXT) -# -------------------- -# Pass TEXT to autoheader. -# This macro is `read' only via `autoconf --trace', it outputs nothing. -m4_define([AH_OUTPUT], []) - - -# AH_VERBATIM(KEY, TEMPLATE) -# -------------------------- -# If KEY is direct (i.e., no indirection such as in KEY=$my_func which -# may occur if there is AC_CHECK_FUNCS($my_func)), issue an autoheader -# TEMPLATE associated to the KEY. Otherwise, do nothing. TEMPLATE is -# output as is, with no formating. -m4_define([AH_VERBATIM], -[AS_LITERAL_IF([$1], - [AH_OUTPUT([$1], AS_ESCAPE([[$2]]))]) -]) - - -# _AH_VERBATIM_OLD(KEY, TEMPLATE) -# ------------------------------- -# Same as above, but with bugward compatibility. -m4_define([_AH_VERBATIM_OLD], -[AS_LITERAL_IF([$1], - [AH_OUTPUT([$1], _AS_QUOTE([[$2]]))]) -]) - - -# AH_TEMPLATE(KEY, DESCRIPTION) -# ----------------------------- -# Issue an autoheader template for KEY, i.e., a comment composed of -# DESCRIPTION (properly wrapped), and then #undef KEY. -m4_define([AH_TEMPLATE], -[AH_VERBATIM([$1], - m4_text_wrap([$2 */], [ ], [/* ])[ -#undef $1])]) - - -# _AH_TEMPLATE_OLD(KEY, DESCRIPTION) -# ---------------------------------- -# Same as above, but with bugward compatibility. -m4_define([_AH_TEMPLATE_OLD], -[_AH_VERBATIM_OLD([$1], - m4_text_wrap([$2 */], [ ], [/* ])[ -#undef $1])]) - - -# AH_TOP(TEXT) -# ------------ -# Output TEXT at the top of `config.h.in'. -m4_define([AH_TOP], -[m4_define([_AH_COUNTER], m4_incr(_AH_COUNTER))dnl -AH_VERBATIM([0000]_AH_COUNTER, [$1])]) - - -# AH_BOTTOM(TEXT) -# --------------- -# Output TEXT at the bottom of `config.h.in'. -m4_define([AH_BOTTOM], -[m4_define([_AH_COUNTER], m4_incr(_AH_COUNTER))dnl -AH_VERBATIM([zzzz]_AH_COUNTER, [$1])]) - -# Initialize. -m4_define([_AH_COUNTER], [0]) - - - - ## ----------------------------- ## ## Implementing Autoconf loops. ## ## ----------------------------- ## diff --git a/tests/Makefile.am b/tests/Makefile.am index b63d02af0..de946e76e 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -23,6 +23,7 @@ AUTOMAKE_OPTIONS = gnits SUITE_GENERATED = \ aclang.at acc.at acfortran.at \ acgeneral.at acstatus.at \ + acautoheader.at acautoupdate.at \ acspecific.at acfunctions.at acheaders.at actypes.at \ aclibs.at acprograms.at @@ -62,6 +63,8 @@ testsuite: $(top_srcdir)/lib/m4sugar/m4sugar.m4 \ # thanks God for VPATH. Hm... MACRO_FILES = $(top_srcdir)/lib/autoconf/general.m4 \ $(top_srcdir)/lib/autoconf/status.m4 \ + $(top_srcdir)/lib/autoconf/autoheader.m4 \ + $(top_srcdir)/lib/autoconf/autoupdate.m4 \ $(top_srcdir)/lib/autoconf/specific.m4 \ $(top_srcdir)/lib/autoconf/functions.m4 \ $(top_srcdir)/lib/autoconf/lang.m4 \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 270c441a1..5f63b5e65 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -69,6 +69,7 @@ AUTOMAKE_OPTIONS = gnits SUITE_GENERATED = \ aclang.at acc.at acfortran.at \ acgeneral.at acstatus.at \ + acautoheader.at acautoupdate.at \ acspecific.at acfunctions.at acheaders.at actypes.at \ aclibs.at acprograms.at @@ -97,6 +98,8 @@ AUTOM4TE = autom4te_perllibdir='$(top_srcdir)/lib' ../bin/autom4te # thanks God for VPATH. Hm... MACRO_FILES = $(top_srcdir)/lib/autoconf/general.m4 \ $(top_srcdir)/lib/autoconf/status.m4 \ + $(top_srcdir)/lib/autoconf/autoheader.m4 \ + $(top_srcdir)/lib/autoconf/autoupdate.m4 \ $(top_srcdir)/lib/autoconf/specific.m4 \ $(top_srcdir)/lib/autoconf/functions.m4 \ $(top_srcdir)/lib/autoconf/lang.m4 \ diff --git a/tests/suite.at b/tests/suite.at index 19ac7fd2d..dc6d6af3b 100644 --- a/tests/suite.at +++ b/tests/suite.at @@ -74,6 +74,8 @@ m4_include([semantics.at]) # for types requires looking for headers etc. m4_include([acgeneral.at]) m4_include([acstatus.at]) +m4_include([acautoheader.at]) +m4_include([acautoupdate.at]) m4_include([acspecific.at]) m4_include([acprograms.at]) m4_include([acheaders.at])