doxygen \ref cross-references to groups or files from other libraries only work
when the .map file was present when the HTML was generated, and when that .map
file was listed in TAGFILES in the Doxyfile.
- Makefile.am: introduce a two-pass build for doxygen API docs.
- First build pass makes sure the .tag files are present.
- Second build pass picks up all the references, hence generates hyperlinks
- Add all libraries to TAGFILES of all other libraries, so we can from now on
freely criss-cross reference from everywhere to everywhere.
- Add all libraries' tag files as dependencies for all others.
Example: in upcoming tdef.h, I would like to cross reference to tdef_vty.h, and
vice versa, even though they are in libosmocore and libosmovty, respectively.
This is now possible.
We may still need to fix some problems with naming collisions, see for example
stats.h, which exists twice with identical doxygen handle (different source
dirs seems to not suffice for doxygen).
stats.h uses a rather crude '#ifdef unix' hack, which means that Doxygen
will not scan the body of the file. This patch ensures 'unix' is defined
to parse the stats.h body and thus have all relevant information in it
Especially for short descriptions, it is annoying to have to type \brief for
every single API doc.
Drop all \brief and enable the AUTOBRIEF feature of doxygen, which always takes
the first sentence of an API doc as the brief description.
Currently, files that omit the \file directive and all functions, enums,
structs lacking a doxygen style comment are completely missing from the doxygen
Set EXTRACT_ALL = YES so that all files and code items are at least listed in
the doxygen API.
When building out-of-srcdir, paths such as "src/gsm" will not find any
source files. Since the Doxyfiles are preprocessed, we can prepend
@srcdir@ to fix that.
Signed-off-by: Alex Badea <email@example.com>