diff --git a/LUFA/Build/lufa_core.mk b/LUFA/Build/lufa_core.mk index cb06a701e6..990215276b 100644 --- a/LUFA/Build/lufa_core.mk +++ b/LUFA/Build/lufa_core.mk @@ -136,27 +136,33 @@ help: # Lists build modules included by the project makefile, in alphabetical order list_modules: - @echo Currently Used Build System Modules: $(PRINTABLE_LUFA_BUILD_MODULES) + @echo Currently Used Build System Modules: + @printf " %b" "$(PRINTABLE_LUFA_BUILD_MODULES:%= - %\n)" # Lists build targets included by the project makefile, in alphabetical order list_targets: - @echo Currently Available Build Targets: $(PRINTABLE_LUFA_BUILD_TARGETS) + @echo Currently Available Build Targets: + @printf " %b" "$(PRINTABLE_LUFA_BUILD_TARGETS:%= - %\n)" # Lists mandatory variables that must be set by the project makefile, in alphabetical order list_mandatory: - @echo Mandatory Variables for Included Modules: $(PRINTABLE_LUFA_MANDATORY_VARS) + @echo Mandatory Variables for Included Modules: + @printf " %b" "$(PRINTABLE_LUFA_MANDATORY_VARS:%= - %\n)" # Lists optional variables that must be set by the project makefile, in alphabetical order list_optional: - @echo Optional Variables for Included Modules: $(PRINTABLE_LUFA_OPTIONAL_VARS) + @echo Optional Variables for Included Modules: + @printf " %b" "$(PRINTABLE_LUFA_OPTIONAL_VARS:%= - %\n)" # Lists variables provided by the included build modules, in alphabetical order list_provided: - @echo Variables Provided by the Included Modules: $(PRINTABLE_LUFA_PROVIDED_VARS) + @echo Variables Provided by the Included Modules: + @printf " %b" "$(PRINTABLE_LUFA_PROVIDED_VARS:%= - %\n)" # Lists macros provided by the included build modules, in alphabetical order list_macros: - @echo Macros Provided by the Included Modules: $(PRINTABLE_LUFA_PROVIDED_MACROS) + @echo Macros Provided by the Included Modules: + @printf " %b" "$(PRINTABLE_LUFA_PROVIDED_MACROS:%= - %\n)" # Disable default in-built make rules (those that are needed are explicitly # defined, and doing so has performance benefits when recursively building) diff --git a/LUFA/Build/lufa_doxygen.mk b/LUFA/Build/lufa_doxygen.mk index 265ba6e93a..fe53b25247 100644 --- a/LUFA/Build/lufa_doxygen.mk +++ b/LUFA/Build/lufa_doxygen.mk @@ -7,7 +7,7 @@ # LUFA_BUILD_MODULES += DOXYGEN -LUFA_BUILD_TARGETS += doxygen +LUFA_BUILD_TARGETS += doxygen doxygen_upgrade doxygen_create LUFA_BUILD_MANDATORY_VARS += LUFA_PATH LUFA_BUILD_OPTIONAL_VARS += DOXYGEN_CONF DOXYGEN_FAIL_ON_WARNING DOXYGEN_OVERRIDE_PARAMS LUFA_BUILD_PROVIDED_VARS += @@ -23,6 +23,10 @@ LUFA_BUILD_PROVIDED_MACROS += # TARGETS: # # doxygen - Build Doxygen Documentation +# doxygen_create - Create a new Doxygen configuration file using +# the latest template +# doxygen_upgrade - Upgrade an existing Doxygen configuration file +# to the latest template # # MANDATORY PARAMETERS: # @@ -73,10 +77,24 @@ else DOXYGEN_CMD := $(BASE_DOXYGEN_CMD) endif +# Error if the specified Doxygen configuration file does not exist +$(DOXYGEN_CONF): + $(error Doxygen configuration file $@ does not exist) + # Builds the project documentation using the specified configuration file and the DOXYGEN tool -doxygen: +doxygen: $(DOXYGEN_CONF) @echo $(MSG_DOXYGEN_CMD) Configuration file \"$(DOXYGEN_CONF)\" with parameters \"$(DOXYGEN_OVERRIDE_PARAMS)\" $(DOXYGEN_CMD) +# Upgrades an existing Doxygen configuration file to the latest Doxygen template, preserving settings +doxygen_upgrade: $(DOXYGEN_CONF) + @echo $(MSG_DOXYGEN_CMD) Upgrading configuration file \"$(DOXYGEN_CONF)\" with latest template + doxygen -u $(DOXYGEN_CONF) > /dev/null + +# Creates a new Doxygen configuration file with the set file name +doxygen_create: + @echo $(MSG_DOXYGEN_CMD) Creating new configuration file \"$(DOXYGEN_CONF)\" with latest template + doxygen -g $(DOXYGEN_CONF) > /dev/null + # Phony build targets for this module -.PHONY: doxygen +.PHONY: doxygen doxygen_upgrade doxygen_create diff --git a/LUFA/DoxygenPages/BuildSystem.txt b/LUFA/DoxygenPages/BuildSystem.txt index 1394c21c06..45edef3f62 100644 --- a/LUFA/DoxygenPages/BuildSystem.txt +++ b/LUFA/DoxygenPages/BuildSystem.txt @@ -631,9 +631,9 @@ * * \section SSec_BuildModule_DOXYGEN_Requirements Requirements * This module requires the doxygen utility from the Doxygen website - * (http://www.stack.nl/~dimitri/doxygen/) to be available in your system's PATH - * variable. On *nix systems the doxygen utility can be installed via the project's source - * code or through the package manager. + * (http://www.doxygen.org/) to be available in your system's PATH variable. On *nix + * systems the doxygen utility can be installed via the project's source code or through + * the package manager. * * \section SSec_BuildModule_DOXYGEN_Targets Targets * @@ -642,6 +642,14 @@ *