Eric Blake wrote: > > m4_define([m4_defun_once], [dnl > > m4_defun([_$0_$1], [$2])dnl > > m4_defun([$1], [m4_require([_$0_$1])]) > > I like this idea. ... I don't think we need > AC_DEFUN_IDEMPOTENT; rather, we just make AC_DEFUN_ONCE the single macro > that is the user's way to declare that a macro body is only needed once.
I find this m4_defun_once interesting too: it incorporates the workaround that we previously used in gnulib. But before you jump to the conclusion that AC_DEFUN_IDEMPOTENT is not needed any more, can you please tell: - Can a macro defined with AC_DEFUN_ONCE be both required and invoked? - Is a warning issued when an AC_DEFUN_ONCEd macro is expanded twice? - Is a warning issued when an AC_DEFUN_ONCEd macro is being required after having already been expanded? Bruno