warnings
========

The warnings module allows to regularly build a package with more GCC warnings than the default warnings emitted by GCC.

It provides the following functionality:

  * You can select some warning options, such as -Wall, to be enabled whenever building with a GCC version that supports these options.  The user can choose to override these warning options by providing the opposite options in the CFLAGS variable at configuration time.

  * You can make these warnings apply to selected directories only.  In projects where subprojects are maintained by different people, or where parts of the source code are imported from external sources (for example from gnulib), it is useful to apply different warning options to different directories.

  * It allows to use -Werror at make distcheck time, to verify that on the maintainer's system, no warnings remain.  (Note that use of -Werror in CFLAGS does not work in general, because it may break autoconfiguration.)

To use this module, you need the following:

 1. In configure.ac, use for example

          gl_WARN_ADD([-Wall], [WARN_CFLAGS])
          gl_WARN_ADD([-Wpointer-arith], [WARN_CFLAGS])

 2. In the directories which shall use WARN_CFLAGS, use it in the definition of AM_CFLAGS, like this:

          AM_CFLAGS = $(WARN_CFLAGS)

     Note that the AM_CFLAGS is used in combination with CFLAGS and before CFLAGS in build rules emitted by Automake.  This allows the user to provide CFLAGS that override the WARN_CFLAGS.

Note that it is a bad idea to use gl_WARN_ADD([-Werror]).  The warnings emitted by GCC depend, to some extent, on the contents of the system header files, on the size and signedness of built-in types, etc. Use of -Werror would cause frustration to all users on platforms that the maintainer has not tested before the release.  It is better if maintainers use -Werror only for themselves (for example, during make distcheck, as mentioned above).