tch to merge nested test group Makefile.am files

Chris Johns chrisj at rtems.org
Mon Apr 9 04:42:09 UTC 2018


This series of patches removes the nested Makefile.am files from each test group
so each test group has a single Makefile.am. This is a large bild system change
with minor code changes to tests that depend on tar file systems.

A Makefile.am per test group is a balance between needing to nest make and
Makefile.am files we can manage and are not commit clash hot spots.

The change:

- Is the first step in being able to move to pkg-config definitions for the
  BSPs. The Makefile.am files include:

   include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP at .cfg

  and this can be removed when that support is added.

- Has been tested with SMP and multiprocesing on a couple of BSPs. I have not
  tested all BSPs. I expect some small issues.

- Small memory BSPs may have linking errors with the iconv, iconv_open, and
  iconv_close tests. The libtest/POSIX tests are now built as real
  executables. I am not sure how they were being built before. These tests are
  not designed to executed on targets so the executable has been given the
  extended extension of '.norun.exe' and the rtems-test command will need to be
  updated to filter these and not run them. This was the best of a limited
  number of ways this could be handled with automake without stepping outside
  what is standard and I did not want to go there again.

- Has a specific format for each test in the Makefile.am files. This format is
  to be used from now on. Each test has the various conditional logic
  statements it needs local to each test. There is no grouping by conditional
  logic and I would like it stay that way. This approach has been done to avoid
  mismatches with a large file where the start and end need to balance across a
  large number of tests. It also avoids the mess that comes from the various
  grouping of the conditional logic that exists, for example SMP and
  C++. Adding and removing a test is local to that test and this should help
  avoid merge conflicts.

- Has used where ever possible the standard automake support provided by the
  tool.

- Assumes continued use of a directory per test in a test group.

- Attempts to standadize the conditional logic labels used. There is more that
  can be done in this area (see samples) and once done that autoconf logic can
  be moved to a macro and made common to all test groups. Also the use of:

   if HAS_SMP
   else
    # someting
   endif

  has been removed. Please add a label, for example NO_SMP to configure.ac and
  use:

   if NO_SMP
    # something
   endif

- Has automake conditional logic for every test. The per test check is now done
  during the configure phase. It does add time to the configure phase hoever
  there is no other way to do this with automake's conditional logic. I feel
  the extra time taken is less than the time autoconf took to write all the
  Makefiles.

- The 'make-exe' define is not used and so the 'bsp-post-link' hook is not run
  either. As a result there is no map file created or size printed. You will
  have to find the executable and run the commands.

- Has removed the need for node directories with MP tests. Those directories
  have been removed.

- has remove the need for a per-filesystem test directory to exists. The screen
  and doc files in those directories have been merged into the specific test
  directory.

Chris


More information about the devel mailing list