doc: add apidoc target for doxygen API documentation
authorJanne Grunau <janne-libav@jannau.net>
Mon, 29 Oct 2012 15:26:59 +0000 (16:26 +0100)
committerAnton Khirnov <anton@khirnov.net>
Fri, 2 Nov 2012 17:28:56 +0000 (18:28 +0100)
Documentation includes only the externally visible API of the installed
headers.

Based on a patch by Anton Khirnov <anton@khirnov.net>.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
doc/Makefile
doc/doxy-wrapper.sh [new file with mode: 0755]
library.mak

index 6353034..d22de79 100644 (file)
@@ -14,6 +14,7 @@ DOCS = $(HTMLPAGES) $(MANPAGES) $(PODPAGES)
 
 all-$(CONFIG_DOC): documentation
 
+apidoc: doc/doxy/html
 documentation: $(DOCS)
 
 TEXIDEP = awk '/^@include/ { printf "$@: $(@D)/%s\n", $$2 }' <$< >$(@:%=%.d)
@@ -39,7 +40,10 @@ doc/%.1: TAG = MAN
 doc/%.1: doc/%.pod $(GENTEXI)
        $(M)pod2man --section=1 --center=" " --release=" " $< > $@
 
-$(DOCS): | doc/
+$(DOCS) doc/doxy/html: | doc/
+
+doc/doxy/html: $(SRC_PATH)/doc/Doxyfile $(INSTHEADERS)
+       $(M)$(SRC_PATH)/doc/doxy-wrapper.sh $(SRC_PATH) $^
 
 install-progs-$(CONFIG_DOC): install-man
 
@@ -54,7 +58,8 @@ uninstall-man:
 
 clean::
        $(RM) doc/*.html doc/*.pod doc/*.1 $(CLEANSUFFIXES:%=doc/%) doc/avoptions_*.texi
+       $(RM) -r doc/doxy/html
 
 -include $(wildcard $(DOCS:%=%.d))
 
-.PHONY: documentation
+.PHONY: apidoc documentation
diff --git a/doc/doxy-wrapper.sh b/doc/doxy-wrapper.sh
new file mode 100755 (executable)
index 0000000..6650e38
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+SRC_PATH="${1}"
+DOXYFILE="${2}"
+
+shift 2
+
+doxygen - <<EOF
+@INCLUDE        = ${DOXYFILE}
+INPUT           = $@
+HTML_HEADER     = ${SRC_PATH}/doc/doxy/header.html
+HTML_FOOTER     = ${SRC_PATH}/doc/doxy/footer.html
+HTML_STYLESHEET = ${SRC_PATH}/doc/doxy/doxy_stylesheet.css
+EOF
index cbfa0d4..33ec37f 100644 (file)
@@ -6,6 +6,8 @@ LIBVERSION := $(lib$(NAME)_VERSION)
 LIBMAJOR   := $(lib$(NAME)_VERSION_MAJOR)
 INCINSTDIR := $(INCDIR)/lib$(NAME)
 
+INSTHEADERS := $(INSTHEADERS) $(HEADERS:%=$(SUBDIR)%)
+
 all-$(CONFIG_STATIC): $(SUBDIR)$(LIBNAME)
 all-$(CONFIG_SHARED): $(SUBDIR)$(SLIBNAME)