>> It's too late for doing that: AC_DEFUN_ONCE was introduced on 2004-10-11.
> 
> I know.
> 
>> Besides that, AC_DEFUN_ONCE and AC_DEFUN_IDEMPOTENT have really opposite
>> semantics. You cannot confuse people more than by using the same name for
>> two entities with opposite semantics.
> 
> It looks to me like, in the wild, AC_DEFUN_ONCE is used for idempotent
> macros (and in Autoconf too, see AC_CANONICAL_*).  The only correct use
> of AC_DEFUN_ONCE (where the warning *is* desired) is AC_NO_EXECUTABLES;
> and not even fully correct, as you'd want an error there.

Besides, what's the difference between expanding once only a macro, or
expanding once only a macro + give a warning?

  m4_define([m4_defun_once], [dnl
  m4_defun([_$0_$1], [$2])dnl
  m4_defun([$1], [m4_require([_$0_$1])])

Wouldn't this do the trick without regressions (except not giving the
warning anymore, but doing the right thing anyway)?

Paolo


Reply via email to