From: Akim Demaille Date: Mon, 8 Oct 2001 08:21:34 +0000 (+0000) Subject: * lib/m4sugar/m4sugar.m4 (m4_provide_ifelse): Rename as... X-Git-Tag: AUTOCONF-2.52f~65 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=201baaa8dfdb124c1becf014164c0f5828aa5d2d;p=thirdparty%2Fautoconf.git * lib/m4sugar/m4sugar.m4 (m4_provide_ifelse): Rename as... (m4_provide_if): this. * lib/m4sugar/m4sh.m4 (AS_REQUIRE): New. * lib/autoconf/general.m4 (AS_DEFUN, AC_DEFUN_ONCE, AC_BEFORE) (AC_REQUIRE, AC_PROVIDE, AC_PROVIDE_IFELSE): Be exact copy of the M4sugar peer, i.e., drop the `AC_PROVIDE_$1' broken marker. --- diff --git a/ChangeLog b/ChangeLog index 5cf6ed2c3..f08076079 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2001-10-08 Akim Demaille + + * lib/m4sugar/m4sugar.m4 (m4_provide_ifelse): Rename as... + (m4_provide_if): this. + * lib/m4sugar/m4sh.m4 (AS_REQUIRE): New. + * lib/autoconf/general.m4 (AS_DEFUN, AC_DEFUN_ONCE, AC_BEFORE) + (AC_REQUIRE, AC_PROVIDE, AC_PROVIDE_IFELSE): Be exact copy of the + M4sugar peer, i.e., drop the `AC_PROVIDE_$1' broken marker. + 2001-10-08 Akim Demaille Use `add-log-current-defun-function' for ChangeLog creation. diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4 index c574a0db5..407d5edda 100644 --- a/lib/autoconf/general.m4 +++ b/lib/autoconf/general.m4 @@ -157,28 +157,25 @@ m4_copy([m4_divert_push],[AC_DIVERT_PUSH]) m4_copy([m4_divert_pop], [AC_DIVERT_POP]) -## ------------------------------- ## -## Defining macros in autoconf::. ## -## ------------------------------- ## - -# AC_DEFUN(NAME, EXPANSION) -# ------------------------- -# Same as `m4_define' but equip the macro with the needed machinery -# for `AC_REQUIRE'. -# -# We don't use this macro to define some frequently called macros that -# are not involved in ordering constraints, to save m4 processing. -m4_define([AC_DEFUN], -[m4_defun([$1], [$2[]AC_PROVIDE([$1])])]) +## ------------------------------------ ## +## Defining/requiring Autoconf macros. ## +## ------------------------------------ ## +# AC_DEFUN(NAME, EXPANSION) # AC_DEFUN_ONCE(NAME, EXPANSION) -# ------------------------------ -# As AC_DEFUN, but issues the EXPANSION only once, and warns if used -# several times. -m4_define([AC_DEFUN_ONCE], -[m4_defun_once([$1], [$2[]AC_PROVIDE([$1])])]) +# AC_BEFORE(THIS-MACRO-NAME, CALLED-MACRO-NAME) +# AC_REQUIRE(STRING) +# AC_PROVIDE(MACRO-NAME) +# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) +# ----------------------------------------------------------- +m4_copy([m4_defun], [AC_DEFUN]) +m4_copy([m4_defun_once], [AC_DEFUN_ONCE]) +m4_copy([m4_before], [AC_BEFORE]) +m4_copy([m4_require], [AC_REQUIRE]) +m4_copy([m4_provide], [AC_PROVIDE]) +m4_copy([m4_provide_if], [AC_PROVIDE_IFELSE]) # AC_OBSOLETE(THIS-MACRO-NAME, [SUGGESTION]) @@ -188,48 +185,6 @@ m4_define([AC_OBSOLETE], - - - -## ----------------------------- ## -## Dependencies between macros. ## -## ----------------------------- ## - - -# AC_BEFORE(THIS-MACRO-NAME, CALLED-MACRO-NAME) -# --------------------------------------------- -m4_define([AC_BEFORE], -[AC_PROVIDE_IFELSE([$2], [AC_DIAGNOSE([syntax], [$2 was called before $1])])]) - - -# AC_REQUIRE(STRING) -# ------------------ -# If STRING has never been AC_PROVIDE'd, then expand it. A macro must -# be AC_DEFUN'd if either it is AC_REQUIRE'd, or it AC_REQUIRE's. -m4_copy([m4_require], [AC_REQUIRE]) - - -# AC_PROVIDE(MACRO-NAME) -# ---------------------- -# Ideally we should just use `m4_provide($1)', but unfortunately many -# third party macros know that we use `AC_PROVIDE_$1' and they depend -# on it. -m4_define([AC_PROVIDE], -[m4_define([AC_PROVIDE_$1])m4_provide([$1])]) - - -# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) -# ----------------------------------------------------------- -# If MACRO-NAME is provided do IF-PROVIDED, else IF-NOT-PROVIDED. -# The purpose of this macro is to provide the user with a means to -# check macros which are provided without letting her know how the -# information is coded. -m4_define([AC_PROVIDE_IFELSE], -[m4_ifdef([AC_PROVIDE_$1], - [$2], [$3])]) - - - ## ----------------------------- ## ## Implementing Autoconf loops. ## ## ----------------------------- ## diff --git a/lib/m4sugar/m4sh.m4 b/lib/m4sugar/m4sh.m4 index ae89affc0..1b67796db 100644 --- a/lib/m4sugar/m4sh.m4 +++ b/lib/m4sugar/m4sh.m4 @@ -96,6 +96,43 @@ m4_copy([_m4_divert(M4SH-INIT)], [_m4_divert(NOTICE)]) ## ------------------------- ## +# AS_REQUIRE(NAME-TO-CHECK, [BODY-TO-EXPAND = NAME-TO-CHECK]) +# ----------------------------------------------------------- +# BODY-TO-EXPAND is some initialization which must be expanded in the +# M4SH-INIT section when expanded (required or not). For instance: +# +# m4_defun([_FOO_PREPARE], [foo=foo]) +# m4_defun([FOO], +# [m4_require([_FOO_PREPARE])dnl +# echo $foo]) +# +# m4_defun([_BAR_PREPARE], [bar=bar]) +# m4_defun([BAR], +# [AS_REQUIRE([_BAR_PREPARE])dnl +# echo $bar]) +# +# AS_INIT +# foo1=`FOO` +# foo2=`FOO` +# bar1=`BAR` +# bar2=`BAR` +# +# gives +# +# #! /bin/sh +# bar=bar +# +# foo1=`foo=foo +# echo $foo` +# foo2=`echo $foo` +# bar1=`echo $bar` +# bar2=`echo $bar` +# +m4_define([AS_REQUIRE], +[m4_provide_if([$1], [], + [m4_divert_text([M4SH-INIT], [$1])])]) + + # AS_SHELL_SANITIZE # ----------------- # Try to be as Bourne and/or POSIX as possible. diff --git a/lib/m4sugar/m4sugar.m4 b/lib/m4sugar/m4sugar.m4 index 18a2d44b5..bf993acbe 100644 --- a/lib/m4sugar/m4sugar.m4 +++ b/lib/m4sugar/m4sugar.m4 @@ -1193,9 +1193,9 @@ m4_define([$1], m4_define([m4_defun_once], [m4_define([m4_location($1)], m4_location)dnl m4_define([$1], - [m4_provide_ifelse([$1], - [m4_warn([syntax], [$1 invoked multiple times])], - [_m4_defun_pro([$1])$2[]_m4_defun_epi([$1])])])]) + [m4_provide_if([$1], + [m4_warn([syntax], [$1 invoked multiple times])], + [_m4_defun_pro([$1])$2[]_m4_defun_epi([$1])])])]) # m4_pattern_forbid(ERE) @@ -1220,8 +1220,8 @@ m4_define([m4_pattern_allow], []) # m4_before(THIS-MACRO-NAME, CALLED-MACRO-NAME) # --------------------------------------------- m4_define([m4_before], -[m4_provide_ifelse([$2], - [m4_warn([syntax], [$2 was called before $1])])]) +[m4_provide_if([$2], + [m4_warn([syntax], [$2 was called before $1])])]) # m4_require(NAME-TO-CHECK, [BODY-TO-EXPAND = NAME-TO-CHECK]) @@ -1262,17 +1262,17 @@ m4_ifdef([_m4_expanding($1)], [m4_fatal([$0: circular dependency of $1])])dnl m4_ifndef([_m4_divert_dump], [m4_fatal([$0: cannot be used outside of an m4_defun'd macro])])dnl -m4_provide_ifelse([$1], - [], - [m4_divert_push(m4_eval(m4_divnum - 1))dnl +m4_provide_if([$1], + [], + [m4_divert_push(m4_eval(m4_divnum - 1))dnl m4_default([$2], [$1]) m4_divert(m4_defn([_m4_divert_dump]))dnl m4_undivert(m4_defn([_m4_divert_diversion]))dnl m4_divert_pop(m4_defn([_m4_divert_dump]))])dnl -m4_provide_ifelse([$1], - [], - [m4_warn([syntax], - [$1 is m4_require'd but is not m4_defun'd])])dnl +m4_provide_if([$1], + [], + [m4_warn([syntax], + [$1 is m4_require'd but is not m4_defun'd])])dnl m4_expansion_stack_pop()dnl ]) @@ -1282,9 +1282,9 @@ m4_expansion_stack_pop()dnl # If TEXT has never been expanded, expand it *here*. Use WITNESS as # as a memory that TEXT has already been expanded. m4_define([m4_expand_once], -[m4_provide_ifelse(m4_ifval([$2], [[$2]], [[$1]]), - [], - [m4_provide(m4_ifval([$2], [[$2]], [[$1]]))[]$1])]) +[m4_provide_if(m4_ifval([$2], [[$2]], [[$1]]), + [], + [m4_provide(m4_ifval([$2], [[$2]], [[$1]]))[]$1])]) # m4_provide(MACRO-NAME) @@ -1293,13 +1293,13 @@ m4_define([m4_provide], [m4_define([m4_provide($1)])]) -# m4_provide_ifelse(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) -# ----------------------------------------------------------- +# m4_provide_if(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) +# ------------------------------------------------------- # If MACRO-NAME is provided do IF-PROVIDED, else IF-NOT-PROVIDED. # The purpose of this macro is to provide the user with a means to # check macros which are provided without letting her know how the # information is coded. -m4_define([m4_provide_ifelse], +m4_define([m4_provide_if], [m4_ifdef([m4_provide($1)], [$2], [$3])])