Previously, "make" in the top-level dir resulted in:
> doxygen man.dox
> warning: Tag `XML_SCHEMA' at line 1787 of file `man.dox' has become
> obsolete.
> To avoid this warning please remove this line from your
> configuration file or upgrade it using "doxygen -u"
> warning: Tag `XML_DTD' at line 1793 of file `man.dox' has become
> obsolete.
Reference doxygen version: doxygen-1.8.10-6.fc22.x86_64.
This is to serve as a reference full-blown versions only to be
subsequently compacted...
Although this is not as rigorously correct as the previous arrangement
(introduced with 80834ea), i.e., from the perspective of
$(abs_top_builddir)/tests/Makefile (generated from from
$(top_srcdir)/tests/Makefile.am), for which $(top_builddir)
is literally "..":
- qbconfig.h is generated from $(top_srcdir)/include/qb/qbconfig.h.in
into $(top_builddir)/include/qb directory, and consumed from here
- rest of these header files are consumed directly from
$(top_srcdir)/include/qb directory
this new simplified variant:
- avoids code duplication (DRY)
- works thanks to VPATH in $(abs_top_builddir)/tests/Makefile
pointing to $(top_srcdir)/tests, which means that unsatisfied
dependencies on "$(top_builddir)/include/qb/%.h" (resolved to
"../include/qb/%.h") will be subsequently sought as
"$(top_srcdir)/tests/../include/qb/%.h", which has the same effect
as previous explicit "$(top_srcdir)/include/qb/%.h" specification
(note that such automatic VPATH provision is supported by automake
"since beginning" so no backward incompatibility is expected)
This is to prevent issues like the one being fixed with ebcff54
(https://github.com/ClusterLabs/libqb/pull/197).
Also, plain "make" invocation is dropped as it is an integral part
of "make rpm" (%build phase in libqb.spec).
That's because the code relies on (fairly unportable) treatment by the
linker, specifically ld linker from binutils suite:
<https://sourceware.org/binutils/docs/ld/Orphan-Sections.html>
and without that in place, QB_HAVE_ATTRIBUTE_SECTION cannot be enabled
as the __{start,stop}_SECNAME extern references in qb/qblog.h will not
get resolved at the link time.
This reduces repeated code significantly, and allows for easier
supervision of what's being grouped to the suites + possibly what
timeouts apply.
Note that some artificial test case identifiers (in check_array.c,
check_log.c, check_loop.c, check_rb.c, check_utils.c) got changed
so they now follow 1:1 the test (function) name that is being run
for the case at hand without the "test_" prefix (strict convention).
Exception to this are test_ipc_disp_* tests in check_ipc.c that got,
conversely, changed to test_ipc_dispatch_* to follow the test case
identifiers.
make check doesn't build the docs and so errors in that part of
the build system will not be checked without a normal 'make'.
Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
No reason not to do that. Situation with qbconfig.h is a bit more
complicated as this file gets generated from .in file and there is
currently no reliable inter-dir/makefile (siblings) targets
dependency tracking in place, AFAICT.