# ============================================================================= # DOCUMENTATION GENERATION # ============================================================================= C2_ROOT := $(call my-dir) C2_DOCS_ROOT := $(OUT_DIR)/target/common/docs/codec2 C2_OUT_TEMP := $(PRODUCT_OUT)/gen/ETC/Codec2-docs_intermediates C2_DOXY := $(or $(shell command -v doxygen),\ $(shell command -v /Applications/Doxygen.app/Contents/Resources/doxygen)) .PHONY: check-doxygen check-doxygen: ifndef C2_DOXY $(error 'doxygen is not available') endif $(C2_OUT_TEMP)/doxy-api.config: $(C2_ROOT)/docs/doxygen.config # only document include directory, no internal sections sed 's/\(^INPUT *=.*\)/\1include\//; \ s/\(^INTERNAL_DOCS *= *\).*/\1NO/; \ s/\(^ENABLED_SECTIONS *=.*\)INTERNAL\(.*\).*/\1\2/; \ s:\(^OUTPUT_DIRECTORY *= \)out:\1'$(OUT_DIR)':;' \ $(C2_ROOT)/docs/doxygen.config > $@ $(C2_OUT_TEMP)/doxy-internal.config: $(C2_ROOT)/docs/doxygen.config sed 's:\(^OUTPUT_DIRECTORY *= \)out\(.*\)api:\1'$(OUT_DIR)'\2internal:;' \ $(C2_ROOT)/docs/doxygen.config > $@ .PHONY: docs-api docs-api: $(C2_OUT_TEMP)/doxy-api.config check-doxygen echo API docs are building in $(C2_DOCS_ROOT)/api rm -rf $(C2_DOCS_ROOT)/api mkdir -p $(C2_DOCS_ROOT)/api $(C2_DOXY) $(C2_OUT_TEMP)/doxy-api.config .PHONY: docs-internal docs-internal: $(C2_OUT_TEMP)/doxy-internal.config check-doxygen echo Internal docs are building in $(C2_DOCS_ROOT)/internal rm -rf $(C2_DOCS_ROOT)/internal mkdir -p $(C2_DOCS_ROOT)/internal $(C2_DOXY) $(C2_OUT_TEMP)/doxy-internal.config .PHONY: docs-all docs-all: docs-api docs-internal include $(call all-makefiles-under,$(call my-dir))