On Fri, Apr 13, 2007 at 11:21:10AM +0300, Andrey Simonenko wrote: > > What is the better place for: > > 1. initialization of ac_X_werror_flag variables for all languages > (which say how to treat warnings). > 2. initialization of m4 _AC_LANG_X_WERROR_FLAG macro variables for > all languages (which are used for building stacks of settings). > All these variables should be initialized only once and for each > language. Right now this is not implemented, so single two calls: I decided to implement this in the following way: lang.m4: # AC_LANG_WERROR([VALUE]) # ----------------------- # How to treat warnings from the current language's preprocessor, compiler, # and linker (works in a stack-like fashion): # 1. No arguments: # Similarly to AC_LANG_WERROR([on]) # 2. One argument: # on -- treat warnings as fatal errors + remember previous value; # off -- do not treat warnings as fatal errors + remember previous value; # pop -- restore previous value. AC_DEFUN([AC_LANG_WERROR], [ m4_ifdef(_AC_LANG_[]_AC_LANG_ABBREV[]_WERROR_FLAG, [], [ m4_divert_text([DEFAULTS], [ m4_define(_AC_LANG_[]_AC_LANG_ABBREV[]_WERROR_FLAG, [off]) ac_[]_AC_LANG_ABBREV[]_werror_flag=])]) m4_if( $#, 1, [m4_if( [$1], [on], [ m4_pushdef(_AC_LANG_[]_AC_LANG_ABBREV[]_WERROR_FLAG, [on]) ac_[]_AC_LANG_ABBREV[]_werror_flag=yes], [$1], [off], [ m4_pushdef(_AC_LANG_[]_AC_LANG_ABBREV[]_WERROR_FLAG, [off]) ac_[]_AC_LANG_ABBREV[]_werror_flag=], [$1], [pop], [ m4_popdef(_AC_LANG_[]_AC_LANG_ABBREV[]_WERROR_FLAG) m4_ifdef(_AC_LANG_[]_AC_LANG_ABBREV[]_WERROR_FLAG, [], [m4_fatal([$0: unbalanced number of `on/off' and `pop' calls for] _AC_LANG)]) m4_if( m4_defn(_AC_LANG_[]_AC_LANG_ABBREV[]_WERROR_FLAG), [on], [ac_[]_AC_LANG_ABBREV[]_werror_flag=yes], m4_defn(_AC_LANG_[]_AC_LANG_ABBREV[]_WERROR_FLAG), [off], [ac_[]_AC_LANG_ABBREV[]_werror_flag=], [m4_fatal([$0: stack of values is damaged])])], [m4_fatal([$0: wrong argument: `$1'])])], $#, 0, [AC_LANG_WERROR([on])], [m4_fatal([$0: incorrect number of arguments: $#])]) ])# AC_LANG_WERROR Also I have a question. To remove all new line characters and extra white-space characters, which are produced by this macro, from the configure script, it is necessary to insert many dnl and make code of this macro unintended. Is this correct, or I misunderstand something? _______________________________________________ Autoconf mailing list Autoconf@xxxxxxx http://lists.gnu.org/mailman/listinfo/autoconf