1# =============================================================================
2# DOCUMENTATION GENERATION
3# =============================================================================
4C2_ROOT := $(call my-dir)
5
6C2_DOCS_ROOT := $(OUT_DIR)/target/common/docs/codec2
7
8C2_OUT_TEMP := $(PRODUCT_OUT)/gen/ETC/Codec2-docs_intermediates
9
10C2_DOXY := $(or $(shell command -v doxygen),\
11		$(shell command -v /Applications/Doxygen.app/Contents/Resources/doxygen))
12
13check-doxygen:
14ifndef C2_DOXY
15	$(error 'doxygen is not available')
16endif
17
18$(C2_OUT_TEMP)/doxy-api.config: $(C2_ROOT)/docs/doxygen.config
19	# only document include directory, no internal sections
20	sed 's/\(^INPUT *=.*\)/\1include\//; \
21	s/\(^INTERNAL_DOCS *= *\).*/\1NO/; \
22	s/\(^ENABLED_SECTIONS *=.*\)INTERNAL\(.*\).*/\1\2/; \
23	s:\(^OUTPUT_DIRECTORY *= \)out:\1'$(OUT_DIR)':;' \
24		$(C2_ROOT)/docs/doxygen.config > $@
25
26$(C2_OUT_TEMP)/doxy-internal.config: $(C2_ROOT)/docs/doxygen.config
27	sed 's:\(^OUTPUT_DIRECTORY *= \)out\(.*\)api:\1'$(OUT_DIR)'\2internal:;' \
28		$(C2_ROOT)/docs/doxygen.config > $@
29
30docs-api: $(C2_OUT_TEMP)/doxy-api.config check-doxygen
31	echo API docs are building in $(C2_DOCS_ROOT)/api
32	rm -rf $(C2_DOCS_ROOT)/api
33	mkdir -p $(C2_DOCS_ROOT)/api
34	$(C2_DOXY) $(C2_OUT_TEMP)/doxy-api.config
35
36docs-internal: $(C2_OUT_TEMP)/doxy-internal.config check-doxygen
37	echo Internal docs are building in $(C2_DOCS_ROOT)/internal
38	rm -rf $(C2_DOCS_ROOT)/internal
39	mkdir -p $(C2_DOCS_ROOT)/internal
40	$(C2_DOXY) $(C2_OUT_TEMP)/doxy-internal.config
41
42docs-all: docs-api docs-internal
43
44include $(call all-makefiles-under,$(call my-dir))
45