From 9669a00c34dc7545b2ca538b5aa0fde745483824 Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Mon, 28 Mar 2016 14:10:34 +1100
Subject: [PATCH] Added new LUFA_VERSION_RELEASE_TYPE macro to the library
 version header, to determine release type (thanks to NicoHood).

---
 LUFA/DoxygenPages/ChangeLog.txt |  1 +
 LUFA/Version.h                  | 23 +++++++++++++++++++----
 Maintenance/makefile            |  8 ++++----
 3 files changed, 24 insertions(+), 8 deletions(-)

diff --git a/LUFA/DoxygenPages/ChangeLog.txt b/LUFA/DoxygenPages/ChangeLog.txt
index 860f0b7c4..e0471888f 100644
--- a/LUFA/DoxygenPages/ChangeLog.txt
+++ b/LUFA/DoxygenPages/ChangeLog.txt
@@ -10,6 +10,7 @@
   *  <b>New:</b>
   *  - Core:
   *   - Added support for the Pololu A-Star Micro board (thanks to Joh Schneider)
+  *   - Added new \c LUFA_VERSION_RELEASE_TYPE macro to the library version header, to determine release type (thanks to NicoHood)
   *
   *  <b>Fixed:</b>
   *  - Core:
diff --git a/LUFA/Version.h b/LUFA/Version.h
index 66d6373b2..88b08ebf8 100644
--- a/LUFA/Version.h
+++ b/LUFA/Version.h
@@ -42,11 +42,26 @@
 
 	/* Public Interface - May be used in end-application: */
 		/* Macros: */
-			/** Indicates the version number of the library, as an integer. */
-			#define LUFA_VERSION_INTEGER     0x000000
+			/** \name LUFA Release Type Constants */
+			//@{
+				/** Constant for \ref LUFA_VERSION_RELEASE_TYPE indicating a development release. */
+				#define LUFA_VERSION_RELEASE_TYPE_DEVELOPMENT   0
 
-			/** Indicates the version number of the library, as a string. */
-			#define LUFA_VERSION_STRING      "000000"
+				/** Constant for \ref LUFA_VERSION_RELEASE_TYPE indicating a beta release. */
+				#define LUFA_VERSION_RELEASE_TYPE_BETA          1
+
+				/** Constant for \ref LUFA_VERSION_RELEASE_TYPE indicating a full official release. */
+				#define LUFA_VERSION_RELEASE_TYPE_FULL          2
+			//@}
+
+			/** Indicates the version number of the library, as an integer. \note This value is only updates in non-development releases. */
+			#define LUFA_VERSION_INTEGER              0x160328
+
+			/** Indicates the version number of the library, as a string. \note This value is only updates in non-development releases. */
+			#define LUFA_VERSION_STRING               "160328"
+
+			/** Indicates the release type of the library. */
+			#define LUFA_VERSION_RELEASE_TYPE         LUFA_VERSION_RELEASE_TYPE_DEVELOPMENT
 
 #endif
 
diff --git a/Maintenance/makefile b/Maintenance/makefile
index 7e7b6aa07..49b6adb58 100644
--- a/Maintenance/makefile
+++ b/Maintenance/makefile
@@ -71,12 +71,12 @@ bootloaders:
 # Check the working branch documentation, ensure no placeholder values
 check-documentation-placeholders:
 	@echo Checking for release suitability...
-	@if ( grep "XXXXXX" $(patsubst %/,%,$(LUFA_ROOT))/LUFA/DoxygenPages/*.txt > /dev/null ;); then \
-	  echo "  ERROR: Doxygen documentation has not been updated for release!";    \
+	@if ( grep " LUFA_VERSION_RELEASE_TYPE " $(patsubst %/,%,$(LUFA_ROOT))/LUFA/Version.h | grep "LUFA_VERSION_RELEASE_TYPE_DEVELOPMENT" > /dev/null ;); then          \
+	  echo "  ERROR: Version header has not been updated for release!";           \
 	  exit 1;                                                                     \
 	fi;
-	@if ( grep "000000" $(patsubst %/,%,$(LUFA_ROOT))/LUFA/Version.h > /dev/null ;); then          \
-	  echo "  ERROR: Version header has not been updated for release!";           \
+	@if ( grep "XXXXXX" $(patsubst %/,%,$(LUFA_ROOT))/LUFA/DoxygenPages/*.txt > /dev/null ;); then \
+	  echo "  ERROR: Doxygen documentation has not been updated for release!";    \
 	  exit 1;                                                                     \
 	fi;
 	@echo Done.
-- 
GitLab