jsoninfo: HTTP headers with CORS (if requested)
[olsrd.git] / doc / Makefile
1 TOPDIR = ..
2 include $(TOPDIR)/Makefile.inc
3
4 HTML_DIR = html
5 HTML_OUTPUT = $(HTML_DIR)/$(OS)
6
7 LATEX_DIR = latex
8 LATEX_OUTPUT = $(LATEX_DIR)/$(OS)
9
10 PDF_DIR = pdf
11 PDF_OUTPUT = $(PDF_DIR)/olsrd_$(OS).pdf
12
13 DOX_FILE = doxygen.conf
14 TMP_DOX_FILE = $(DOX_FILE).temp
15
16 OLSRD_VER = $(shell git describe --dirty --always)
17
18
19 DOC_DEFINES = $(shell ./getdefines.bash $(CPPFLAGS) $(CFLAGS))
20
21
22 # All excludes
23 # DOC_INPUT   = ../src ../android
24 # DOC_EXCLUDE = ../src/linux ../src/unix ../android ../src/win32 ../src/bsd
25
26 DOC_INPUT   = ../src ../android
27
28 ifeq ($(OS), linux)
29 DOC_DEFINES += __linux__
30 DOC_EXCLUDE = ../android ../src/win32 ../src/bsd
31 else
32 ifeq ($(OS), android)
33 DOC_DEFINES += __linux__ _ANDROID
34 DOC_EXCLUDE = ../src/win32 ../src/bsd
35 else
36 ifeq ($(OS), win32)
37 DOC_DEFINES += _WIN32
38 DOC_EXCLUDE = ../src/linux ../src/unix ../android ../src/bsd
39 else
40 $(error $(OS) not known to the doc makefile)
41 endif
42 endif
43 endif
44
45
46 all: default_target
47
48 default_target: doc
49
50 .PHONY: .gitignore doc clean
51
52 clean:
53         @echo "[$@] doc"
54         @rm -fr "$(HTML_DIR)" "$(LATEX_DIR)" "$(PDF_DIR)" "$(TMP_DOX_FILE)"
55
56 doc: $(DOX_FILE)
57         @echo "[$@] doc"
58         @echo "  Cleaning up $(OS) outputs..."
59         @rm -frv "$(HTML_OUTPUT)" "$(LATEX_OUTPUT)" "$(PDF_OUTPUT)"
60         @mkdir -pv "$(HTML_OUTPUT)"
61         @mkdir -pv "$(LATEX_OUTPUT)"
62         @mkdir -pv "$(PDF_DIR)"
63         @echo "  Generating doxygen configuration..."
64         @sed \
65           -e "s/__OLSRD_VER__/$(OLSRD_VER)/" \
66           -e "s#__OLSRD_NAME__#olsrd ($(OS))#" \
67           -e "s#__DEFINES__#$(DOC_DEFINES)#" \
68           -e "s#__INPUT__#$(DOC_INPUT)#" \
69           -e "s#__EXCLUDE__#$(DOC_EXCLUDE)#" \
70           -e "s#__HTML_OUTPUT__#$(HTML_OUTPUT)#" \
71           -e "s#__LATEX_OUTPUT__#$(LATEX_OUTPUT)#" \
72           "$(DOX_FILE)" > "$(TMP_DOX_FILE)"
73         @echo "  Running doxygen to create HTML..."
74         @doxygen "$(TMP_DOX_FILE)"
75         @rm -fv "$(TMP_DOX_FILE)"
76         @echo "  Running latex to create a PDF..."
77         @$(MAKE) -s -C $(LATEX_OUTPUT) all
78         @mkdir -pv "$(PDF_DIR)"
79         @mv -v "$(LATEX_OUTPUT)/refman.pdf" "$(PDF_OUTPUT)"
80         @rm -frv "$(LATEX_OUTPUT)"
81         @rmdir -v --ignore-fail-on-non-empty "$(LATEX_DIR)"
82         @echo "  Done"