Added new doxygen_upgrade and doxygen_create targets to the DOXYGEN build system...
authorDean Camera <dean@fourwalledcubicle.com>
Sat, 18 Aug 2012 12:07:05 +0000 (12:07 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Sat, 18 Aug 2012 12:07:05 +0000 (12:07 +0000)
LUFA/Build/lufa_core.mk
LUFA/Build/lufa_doxygen.mk
LUFA/DoxygenPages/BuildSystem.txt
LUFA/DoxygenPages/ChangeLog.txt
LUFA/makefile

index cb06a70..9902152 100644 (file)
@@ -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)
index 265ba6e..fe53b25 100644 (file)
@@ -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
index 1394c21..45edef3 100644 (file)
  *\r
  *  \section SSec_BuildModule_DOXYGEN_Requirements Requirements\r
  *  This module requires the <tt>doxygen</tt> utility from the Doxygen website\r
- *  (<a>http://www.stack.nl/~dimitri/doxygen/</a>) to be available in your system's <b>PATH</b>\r
- *  variable. On *nix systems the <tt>doxygen</tt> utility can be installed via the project's source\r
- *  code or through the package manager.\r
+ *  (<a>http://www.doxygen.org/</a>) to be available in your system's <b>PATH</b> variable. On *nix\r
+ *  systems the <tt>doxygen</tt> utility can be installed via the project's source code or through\r
+ *  the package manager.\r
  *\r
  *  \section SSec_BuildModule_DOXYGEN_Targets Targets\r
  *\r
  *    <td><tt>doxygen</tt></td>\r
  *    <td>Generate project documentation.</td>\r
  *   </tr>\r
+ *   <tr>\r
+ *    <td><tt>doxygen_create</tt></td>\r
+ *    <td>Create a new Doxygen configuration file using the latest template.</td>\r
+ *   </tr>\r
+ *   <tr>\r
+ *    <td><tt>doxygen_upgrade</tt></td>\r
+ *    <td>Upgrade an existing Doxygen configuration file to the latest template</td>\r
+ *   </tr>\r
  *  </table>\r
  *\r
  *  \section SSec_BuildModule_DOXYGEN_MandatoryParams Mandatory Parameters\r
index d4846bc..6dbd8ab 100644 (file)
@@ -10,6 +10,7 @@
   *  <b>New:</b>
   *  - Core:
   *   - Added support for the Arduino Leonardo board
+  *   - Added new doxygen_upgrade and doxygen_create targets to the DOXYGEN build system module
   *  - Library Applications:
   *   - <i>None</i>
   *
index 73e760b..ca5eacf 100644 (file)
 LUFA_VERSION_NUM        := $(shell grep LUFA_VERSION_STRING Version.h | cut -d'"' -f2)
 EXCLUDE_FROM_EXPORT     := Documentation DoxygenPages CodeTemplates Build *.conf *.tar *.o *.d *.lss *.lst *.hex *.elf *.hex *.eep *.map *.bin
 
+# Default target - no default action when attempting to build the core directly
 all:
 
+# Export the library core as a TAR archive for importing into an IDE
 export_tar:
        @echo Exporting LUFA library to a TAR archive...
        @tar -cf LUFA_$(LUFA_VERSION_NUM).tar --directory=. $(EXCLUDE_FROM_EXPORT:%=--exclude=%) *
        @tar -cf LUFA_$(LUFA_VERSION_NUM)_Code_Templates.tar CodeTemplates
        @echo Export LUFA_$(LUFA_VERSION_NUM).tar complete.
 
+# Display the LUFA version of this library copy
 version:
        @echo "LUFA $(LUFA_VERSION_NUM)"
 
@@ -36,6 +39,7 @@ else
   ARCH                    = {AVR8,UC3,XMEGA}
   DOXYGEN_OVERRIDE_PARAMS = QUIET=YES PROJECT_NUMBER=$(LUFA_VERSION_NUM)
   
+  # Remove all object and associated files from the LUFA library core
   clean:
        rm -f $(LUFA_SRC_ALL_FILES:%.c=%.o)
        rm -f $(LUFA_SRC_ALL_FILES:%.c=%.d)
@@ -46,5 +50,4 @@ else
   include Build/lufa_doxygen.mk
 endif
 
-
 .PHONY: all export_tar version clean
\ No newline at end of file