autoconf-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: AC_PROG_WERROR


From: Daniel Jacobowitz
Subject: Re: AC_PROG_WERROR
Date: Thu, 16 Oct 2003 12:30:11 -0400
User-agent: Mutt/1.5.1i

On Fri, Oct 03, 2003 at 09:03:00AM +0200, Akim Demaille wrote:
> 
>  > On Thu, Oct 02, 2003 at 09:18:32AM +0200, Akim Demaille wrote:
>  >> Issues:
>  >> 
>  >> 1. I think the name is wrong indeed, and I'm not sure we want this
>  >> to be independent of the current language
>  >> 
>  >> 2. The documentation should make it clear when and why using this
>  >> macro
>  >> 
>  >> 3. NEWS it please :)
> 
>  > How's this?  Any better?
> 
> This is much better.  But:
> 
> ~/src/gnu % grep -i autoconf copyright.list | grep -i daniel      nostromo 
> 9:01
> ~/src/gnu % grep -i autoconf copyright.list | grep -i jaco       nostromo Err 
> 1
> 
> you don't seem to have filled the papers for Autoconf.  Could you do
> that?  You know the process, don't you?

Some time later...

Here's a version against current CVS.  Um, I added the NEWS to the
2.57g section, I don't remember if 2.57g was released or not...

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer

2003-10-16  Daniel Jacobowitz  <address@hidden>

        * lib/autoconf/lang.m4 (AC_LANG_WERROR): New macro.
        * lib/autoconf/general.m4 (_AC_COMPILE_IFELSE, _AC_PREPROC_IFELSE)
        (_AC_LINK_IFELSE): Check the werror flag.
        * doc/autoconf.texi (Generic Compiler Characteristics): Document
        AC_LANG_WERROR.
        * NEWS: Mention it.

Index: NEWS
===================================================================
RCS file: /cvsroot/autoconf/autoconf/NEWS,v
retrieving revision 1.313
diff -u -p -r1.313 NEWS
--- NEWS        8 Oct 2003 13:12:21 -0000       1.313
+++ NEWS        16 Oct 2003 16:24:11 -0000
@@ -7,6 +7,9 @@
 ** AC_CONFIG_MACRO_DIR
   Use this macro to declare the directory for local m4 macros for aclocal.
 
+** New macros
+  AC_LANG_WERROR
+
 * Major changes in Autoconf 2.57f
 
   Released 2003-10-01, by Akim Demaille.
Index: doc/autoconf.texi
===================================================================
RCS file: /cvsroot/autoconf/autoconf/doc/autoconf.texi,v
retrieving revision 1.769
diff -u -p -r1.769 autoconf.texi
--- doc/autoconf.texi   15 Oct 2003 22:56:22 -0000      1.769
+++ doc/autoconf.texi   16 Oct 2003 16:24:18 -0000
@@ -384,7 +384,7 @@ Types
 Compilers and Preprocessors
 
 * Specific Compiler Characteristics::  Some portability issues
-* Generic Compiler Characteristics::  Language independent tests
+* Generic Compiler Characteristics::  Language independent tests and features
 * C Compiler::                  Checking its characteristics
 * C++ Compiler::                Likewise
 * Fortran Compiler::            Likewise
@@ -5163,7 +5163,7 @@ compiling.
 
 @menu
 * Specific Compiler Characteristics::  Some portability issues
-* Generic Compiler Characteristics::  Language independent tests
+* Generic Compiler Characteristics::  Language independent tests and features
 * C Compiler::                  Checking its characteristics
 * C++ Compiler::                Likewise
 * Fortran Compiler::            Likewise
@@ -5230,6 +5230,17 @@ AC_CHECK_SIZEOF(int *)
 defines @code{SIZEOF_INT_P} to be 8 on DEC Alpha AXP systems.
 @end defmac
 
address@hidden AC_LANG_WERROR
address@hidden
+Normally Autoconf ignores warnings generated by the compiler, linker, and
+preprocessor.  If this macro is used, warnings will be treated as fatal
+errors instead for the current language.  This macro is useful when the
+results of configuration will be used where warnings are unacceptable; for
+instance, if parts of a program are built with the GCC @samp{-Werror}
+option.  If the whole program will be built using @samp{-Werror} it is
+often simpler to put @samp{-Werror} in @code{CFLAGS}, @code{CXXFLAGS}, et
+cetera.
address@hidden defmac
 
 @node C Compiler
 @subsection C Compiler Characteristics
Index: lib/autoconf/general.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/general.m4,v
retrieving revision 1.819
diff -u -p -r1.819 general.m4
--- lib/autoconf/general.m4     8 Oct 2003 13:12:24 -0000       1.819
+++ lib/autoconf/general.m4     16 Oct 2003 16:24:19 -0000
@@ -2069,6 +2069,7 @@ AC_DEFUN([_AC_PREPROC_IFELSE],
 if _AC_EVAL_STDERR([$ac_cpp conftest.$ac_ext]) >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_[]_AC_LANG_ABBREV[]_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_[]_AC_LANG_ABBREV[]_werror_flag
   else
     ac_cpp_err=
   fi
@@ -2150,7 +2151,9 @@ AC_DEFUN([AC_EGREP_HEADER],
 m4_define([_AC_COMPILE_IFELSE],
 [m4_ifvaln([$1], [AC_LANG_CONFTEST([$1])])dnl
 rm -f conftest.$ac_objext
-AS_IF([AC_TRY_EVAL(ac_compile) &&
+AS_IF([_AC_EVAL_STDERR($ac_compile) &&
+        AC_TRY_COMMAND([test -z "$ac_[]_AC_LANG_ABBREV[]_werror_flag"
+                        || test ! -s conftest.err]) &&
         AC_TRY_COMMAND([test -s conftest.$ac_objext])],
       [$2],
       [_AC_MSG_LOG_CONFTEST
@@ -2189,7 +2192,9 @@ AU_DEFUN([AC_TRY_COMPILE],
 m4_define([_AC_LINK_IFELSE],
 [m4_ifvaln([$1], [AC_LANG_CONFTEST([$1])])dnl
 rm -f conftest.$ac_objext conftest$ac_exeext
-AS_IF([AC_TRY_EVAL(ac_link) &&
+AS_IF([_AC_EVAL_STDERR($ac_link) &&
+        AC_TRY_COMMAND([test -z "$ac_[]_AC_LANG_ABBREV[]_werror_flag"
+                        || test ! -s conftest.err]) &&
         AC_TRY_COMMAND([test -s conftest$ac_exeext])],
       [$2],
       [_AC_MSG_LOG_CONFTEST
Index: lib/autoconf/lang.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/lang.m4,v
retrieving revision 1.165
diff -u -p -r1.165 lang.m4
--- lib/autoconf/lang.m4        3 Sep 2003 00:35:53 -0000       1.165
+++ lib/autoconf/lang.m4        16 Oct 2003 16:24:19 -0000
@@ -617,3 +617,11 @@ ac_objext=$OBJEXT
 ## ------------------------------- ##
 ## 4. Compilers' characteristics.  ##
 ## ------------------------------- ##
+
+# AC_LANG_WERROR
+# ------------------
+# Treat warnings from the current language's preprocessor, compiler, and
+# linker as fatal errors.
+AC_DEFUN([AC_LANG_WERROR],
+[m4_divert_text([DEFAULTS], [ac_[]_AC_LANG_ABBREV[]_werror_flag=no])
+ac_[]_AC_LANG_ABBREV[]_werror_flag=yes])# AC_LANG_WERROR




reply via email to

[Prev in Thread] Current Thread [Next in Thread]