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