================================
README: build-system test series
================================

Description
===========

Tests 01 to 09 check the status of the source tree.

Tests 10 to 19 provide basic build-system consistency checking.

Tests 20 to 29 enforce good maintenance practices.

Tests
=====

01. Checks for the presence of Bazaar conflict markers. Reports any file
    that contains at least one.

02. Checks the lengths of source lines. Reports any source line longer
    than 132 characters.

03. Checks that each source file contains one - and only one - include
    of config.h. Fails in case of missing includes only.

10. Checks consistency between the following files:

      * config/specs/environment.conf
      * config/specs/options.conf
      * doc/build/config-template.ac

    This makes sure that all available environment variables and options can
    be activated in the build example files and that the build-config
    template is up-to-date with respect to the current configuration. If
    this is not the case, the list of problematic variables will be output
    to standard error and the command will return with a non-zero exit code.

11. Checks consistency of the build examples.

    This makes sure that all build example files produced by the build
    system are in sync with the current configuration. If this is not the
    case, the list of problematic variables will be output to standard error
    and the command will return with a non-zero exit code.

12. Checks the use of CPP options in the source code against a reference
    set of permitted options. Violations are fully reported.

13. Checks the generated build examples (in doc/build/config-examples/)
    against a set of reference files.

14. Checks that the dependencies and libraries of the main binaries are
    set in the right order.

20. Checks for the use of forbidden flags in the build examples.

    This makes sure that the FCFLAGS_EXTRA used in build-examples.conf
    do not contain any optimization flag. Might be extended to other
    flags in the future.

