doxygen: add source files as dependencies

So far, when modifying a source file, the doxygen docs were not regenerated
automatically. It required a manual 'rm -rf docs/core' or similar. Make it
rebuild automatically:

Add each library's source files to the list of dependencies for the first-pass
doxygen build.

Attention, since all libraries depend on the .map files of each other library,
and each library depends on its own source files, that means that a single
touch on one .c file anywhere will result in rebuilding the entire doxygen
docs. It is correct to do so, since any file may introduce \ref targets used
anywhere else. If you don't want that, --disable-doxygen.

Change-Id: I15ea96be6e7abe91264b91f0b06963a0f2d63b0b
This commit is contained in:
Neels Hofmeyr 2019-02-01 05:25:36 +01:00 committed by Neels Hofmeyr
parent 2fe50ac951
commit 375bf6dcc5
1 changed files with 25 additions and 7 deletions

View File

@ -51,43 +51,61 @@ $(html_DATA): $(top_builddir)/doc/core/html/index.html \
# circular dependency: we would rebuild all every time 'make' is invoked. # circular dependency: we would rebuild all every time 'make' is invoked.
# The .prep file also depends on all the source files for that library. # The .prep file also depends on all the source files for that library.
$(top_builddir)/doc/libosmocore.tag.prep: $(top_builddir)/Doxyfile.core $(top_builddir)/doc/libosmocore.tag.prep: $(top_builddir)/Doxyfile.core \
$(top_srcdir)/include/osmocom/core/*.h \
$(top_srcdir)/src/*.[hc] \
$(top_srcdir)/src/pseudotalloc/*.[hc]
rm -rf $(top_builddir)/doc/core; mkdir -p $(top_builddir)/doc/core rm -rf $(top_builddir)/doc/core; mkdir -p $(top_builddir)/doc/core
rm -rf $(top_builddir)/doc/libosmocore.map rm -rf $(top_builddir)/doc/libosmocore.map
-$(DOXYGEN) $(top_builddir)/Doxyfile.core -$(DOXYGEN) $(top_builddir)/Doxyfile.core
touch "$@" touch "$@"
$(top_builddir)/doc/libosmogsm.tag.prep: $(top_builddir)/Doxyfile.gsm $(top_builddir)/doc/libosmogsm.tag.prep: $(top_builddir)/Doxyfile.gsm \
$(top_srcdir)/include/osmocom/gsm/*.h \
$(top_srcdir)/include/osmocom/gsm/protocol/*.h \
$(top_srcdir)/include/osmocom/crypt/*.h \
$(top_srcdir)/src/gsm/*.c \
$(top_srcdir)/src/gsm/milenage/*.[hc]
rm -rf $(top_builddir)/doc/gsm; mkdir -p $(top_builddir)/doc/gsm rm -rf $(top_builddir)/doc/gsm; mkdir -p $(top_builddir)/doc/gsm
rm -rf $(top_builddir)/doc/libosmogsm.map rm -rf $(top_builddir)/doc/libosmogsm.map
-$(DOXYGEN) $(top_builddir)/Doxyfile.gsm -$(DOXYGEN) $(top_builddir)/Doxyfile.gsm
touch "$@" touch "$@"
$(top_builddir)/doc/libosmovty.tag.prep: $(top_builddir)/Doxyfile.vty $(top_builddir)/doc/libosmovty.tag.prep: $(top_builddir)/Doxyfile.vty \
$(top_srcdir)/include/osmocom/vty/*.h \
$(top_srcdir)/src/vty/*.c
rm -rf $(top_builddir)/doc/vty; mkdir -p $(top_builddir)/doc/vty rm -rf $(top_builddir)/doc/vty; mkdir -p $(top_builddir)/doc/vty
rm -rf $(top_builddir)/doc/libosmovty.map rm -rf $(top_builddir)/doc/libosmovty.map
-$(DOXYGEN) $(top_builddir)/Doxyfile.vty -$(DOXYGEN) $(top_builddir)/Doxyfile.vty
touch "$@" touch "$@"
$(top_builddir)/doc/libosmocodec.tag.prep: $(top_builddir)/Doxyfile.codec $(top_builddir)/doc/libosmocodec.tag.prep: $(top_builddir)/Doxyfile.codec \
$(top_srcdir)/include/osmocom/codec/*.h \
$(top_srcdir)/src/codec/*.c
rm -rf $(top_builddir)/doc/codec; mkdir -p $(top_builddir)/doc/codec rm -rf $(top_builddir)/doc/codec; mkdir -p $(top_builddir)/doc/codec
rm -rf $(top_builddir)/doc/libosmocodec.map rm -rf $(top_builddir)/doc/libosmocodec.map
-$(DOXYGEN) $(top_builddir)/Doxyfile.codec -$(DOXYGEN) $(top_builddir)/Doxyfile.codec
touch "$@" touch "$@"
$(top_builddir)/doc/libosmocoding.tag.prep: $(top_builddir)/Doxyfile.coding $(top_builddir)/doc/libosmocoding.tag.prep: $(top_builddir)/Doxyfile.coding \
$(top_srcdir)/include/osmocom/coding/*.h \
$(top_srcdir)/src/coding/*.c
rm -rf $(top_builddir)/doc/coding; mkdir -p $(top_builddir)/doc/coding rm -rf $(top_builddir)/doc/coding; mkdir -p $(top_builddir)/doc/coding
rm -rf $(top_builddir)/doc/libosmocoding.map rm -rf $(top_builddir)/doc/libosmocoding.map
-$(DOXYGEN) $(top_builddir)/Doxyfile.coding -$(DOXYGEN) $(top_builddir)/Doxyfile.coding
touch "$@" touch "$@"
$(top_builddir)/doc/libosmoctrl.tag.prep: $(top_builddir)/Doxyfile.ctrl $(top_builddir)/doc/libosmoctrl.tag.prep: $(top_builddir)/Doxyfile.ctrl \
$(top_srcdir)/include/osmocom/ctrl/*.h \
$(top_srcdir)/src/ctrl/*.c
rm -rf $(top_builddir)/doc/ctrl; mkdir -p $(top_builddir)/doc/ctrl rm -rf $(top_builddir)/doc/ctrl; mkdir -p $(top_builddir)/doc/ctrl
rm -rf $(top_builddir)/doc/libosmoctrl.map rm -rf $(top_builddir)/doc/libosmoctrl.map
-$(DOXYGEN) $(top_builddir)/Doxyfile.ctrl -$(DOXYGEN) $(top_builddir)/Doxyfile.ctrl
touch "$@" touch "$@"
$(top_builddir)/doc/libosmogb.tag.prep: $(top_builddir)/Doxyfile.gb $(top_builddir)/doc/libosmogb.tag.prep: $(top_builddir)/Doxyfile.gb \
$(top_srcdir)/include/osmocom/gprs/*.h \
$(top_srcdir)/src/gb/*.[hc]
rm -rf $(top_builddir)/doc/gb; mkdir -p $(top_builddir)/doc/gb rm -rf $(top_builddir)/doc/gb; mkdir -p $(top_builddir)/doc/gb
rm -rf $(top_builddir)/doc/libosmogb.map rm -rf $(top_builddir)/doc/libosmogb.map
-$(DOXYGEN) $(top_builddir)/Doxyfile.gb -$(DOXYGEN) $(top_builddir)/Doxyfile.gb