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