diff --git a/LinuxAddons/bin/generate_version_header_for_marlin b/LinuxAddons/bin/generate_version_header_for_marlin
index a7bef9a5a2..7160b77786 100755
--- a/LinuxAddons/bin/generate_version_header_for_marlin
+++ b/LinuxAddons/bin/generate_version_header_for_marlin
@@ -9,8 +9,16 @@ echo " * It does not get committed to the repository" >>"$OUTFILE"
echo " */" >>"$OUTFILE"
echo "" >>"$OUTFILE"
+echo "#define PROTOCOL_VERSION \"1.0\"" >>"$OUTFILE"
+echo "#define DEFAULT_SOURCE_URL \"https://github.com/MarlinFirmware/Marlin\"" >>"$OUTFILE"
+echo "#define DEFAULT_MACHINE_NAME \"Travis 3D Printer\"" >>"$OUTFILE"
+echo "#define DEFAULT_MACHINE_UUID \"3442baa1-08ee-435b-8a10-99d185bd43b8\"" >>"$OUTFILE"
+echo "" >>"$OUTFILE"
+
echo "#define BUILD_UNIX_DATETIME" `date +%s` >>"$OUTFILE"
echo "#define STRING_DISTRIBUTION_DATE" `date '+"%Y-%m-%d %H:%M"'` >>"$OUTFILE"
+echo "" >>"$OUTFILE"
+
( set +e
cd "$DIR"
BRANCH=`git symbolic-ref -q --short HEAD`
@@ -33,7 +41,5 @@ echo "#define STRING_DISTRIBUTION_DATE" `date '+"%Y-%m-%d %H:%M"'` >>"$OUTFILE"
URL=`git config --local --get remote.origin.url | sed "sx.*github.com.xhttps://github.com/x" | sed "sx\.gitx/x"`
if [ "x$URL" != "x" ] ; then
echo "#define SOURCE_CODE_URL \""$URL"\"" >>"$OUTFILE"
- echo "// Deprecated URL definition" >>"$OUTFILE"
- echo "#define FIRMWARE_URL \""$URL"\"" >>"$OUTFILE"
fi
)
diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h
index 97add8a214..edbeb44ab7 100644
--- a/Marlin/Configuration.h
+++ b/Marlin/Configuration.h
@@ -76,7 +76,7 @@
#if ENABLED(USE_AUTOMATIC_VERSIONING)
#include "_Version.h"
#else
- #include "Default_Version.h"
+ #include "Version.h"
#endif
// User-specified version info of this build to display in [Pronterface, etc] terminal window during
diff --git a/Marlin/Default_Version.h b/Marlin/Default_Version.h
deleted file mode 100644
index 95f37f2553..0000000000
--- a/Marlin/Default_Version.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * Marlin 3D Printer Firmware
- * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
- *
- * Based on Sprinter and grbl.
- * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- *
- */
-
-/**
- * This file is a placeholder for a file which could be distributed in an archive
- * It takes the place of an automatically created "_Version.h" which is generated during the build process
- */
-
-// #error "You must specify the following parameters related to your distribution"
-
-#if true
-#define SHORT_BUILD_VERSION "1.1.0-RCBugFix"
-#define DETAILED_BUILD_VERSION "1.1.0-RCBugFix From Archive"
-#define STRING_DISTRIBUTION_DATE "2016-04-16 12:00"
-// It might also be appropriate to define a location where additional information can be found
-// #define SOURCE_CODE_URL "http:// ..."
-#endif
diff --git a/Marlin/SanityCheck.h b/Marlin/SanityCheck.h
index 221c42eb50..89b77578a7 100644
--- a/Marlin/SanityCheck.h
+++ b/Marlin/SanityCheck.h
@@ -38,6 +38,41 @@
#error Versions of Arduino IDE prior to 1.6.0 are no longer supported, please update your toolkit.
#endif
+/**
+ * Marlin release, version and default string
+ */
+#ifndef SHORT_BUILD_VERSION
+ #error SHORT_BUILD_VERSION Information must be specified
+#endif
+
+#ifndef DETAILED_BUILD_VERSION
+ #error BUILD_VERSION Information must be specified
+#endif
+
+#ifndef STRING_DISTRIBUTION_DATE
+ #error STRING_DISTRIBUTION_DATE Information must be specified
+#endif
+
+#ifndef PROTOCOL_VERSION
+ #error PROTOCOL_VERSION Information must be specified
+#endif
+
+#ifndef MACHINE_NAME
+ #error MACHINE_NAME Information must be specified
+#endif
+
+#ifndef SOURCE_CODE_URL
+ #error SOURCE_CODE_URL Information must be specified
+#endif
+
+#ifndef DEFAULT_MACHINE_UUID
+ #error DEFAULT_MACHINE_UUID Information must be specified
+#endif
+
+#ifndef WEBSITE_URL
+ #error WEBSITE_URL Information must be specified
+#endif
+
/**
* Dual Stepper Drivers
*/
diff --git a/Marlin/Version.h b/Marlin/Version.h
new file mode 100644
index 0000000000..d8926d5cfd
--- /dev/null
+++ b/Marlin/Version.h
@@ -0,0 +1,74 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
+
+/**
+ * This file is the standard Marlin version identifier file, all fields can be
+ * overriden by the ones defined on _Version.h by using the Configuration.h
+ * directive USE_AUTOMATIC_VERSIONING.
+ */
+
+/**
+ * Marlin release version identifier
+ */
+#define SHORT_BUILD_VERSION "1.1.0-RCBugFix"
+
+/**
+ * Verbose version identifier which should contain a reference to the location
+ * from where the binary was downloaded or the source code was compiled.
+ */
+#define DETAILED_BUILD_VERSION SHORT_BUILD_VERSION " (Github)"
+
+/**
+ * The STRING_DISTRIBUTION_DATE represents when the binary file was built,
+ * here we define this default string as the date where the latest release
+ * version was tagged.
+ */
+#define STRING_DISTRIBUTION_DATE "2016-04-16 12:00"
+
+/**
+ * @todo: Missing documentation block
+ */
+#define PROTOCOL_VERSION "1.0"
+
+/**
+ * Defines a generic printer name to be output to the LCD after booting Marlin.
+ */
+#define MACHINE_NAME "3D Printer"
+
+/**
+ * The SOURCE_CODE_URL is the location where users will find the Marlin Source
+ * Code which is installed on the device. In most cases —unless the manufacturer
+ * has a distinct Github fork— the Source Code URL should just be the main
+ * Marlin repository.
+ */
+#define SOURCE_CODE_URL "https://github.com/MarlinFirmware/Marlin"
+
+/**
+ * Default generic printer UUID.
+ */
+#define DEFAULT_MACHINE_UUID "cede2a2f-41a2-4748-9b12-c55c62f367ff"
+
+/**
+ * The WEBSITE_URL is the location where users can get more information such as
+ * documentation about a specific Marlin release.
+ */
+#define WEBSITE_URL "http://marlinfw.org"
diff --git a/Marlin/language.h b/Marlin/language.h
index 0bbae448b3..e9a30a2d7d 100644
--- a/Marlin/language.h
+++ b/Marlin/language.h
@@ -66,43 +66,32 @@
#if ENABLED(USE_AUTOMATIC_VERSIONING)
#include "_Version.h"
#else
- #include "Default_Version.h"
+ #include "Version.h"
#endif
-#define PROTOCOL_VERSION "1.0"
-
-#ifndef DEFAULT_MACHINE_NAME
- #define DEFAULT_MACHINE_NAME "3D Printer"
+#ifdef DEFAULT_SOURCE_CODE_URL
+ #undef SOURCE_CODE_URL
+ #define SOURCE_CODE_URL DEFAULT_SOURCE_CODE_URL
#endif
#ifdef CUSTOM_MACHINE_NAME
+ #undef MACHINE_NAME
#define MACHINE_NAME CUSTOM_MACHINE_NAME
#else
- #define MACHINE_NAME DEFAULT_MACHINE_NAME
-#endif
-
-#ifndef DEFAULT_SOURCE_URL
- /**
- * The SOURCE_CODE_URL is the location where users will find the Marlin Source
- * Code which is installed on the device. In most cases —unless the manufacturer
- * has a distinct Github fork— the Source Code URL should just be the main
- * Marlin repository.
- */
- #define DEFAULT_SOURCE_URL "https://github.com/MarlinFirmware/Marlin"
-#endif
-
-#ifndef SOURCE_CODE_URL
- #define SOURCE_CODE_URL DEFAULT_SOURCE_URL
-#endif
-
-#ifndef DETAILED_BUILD_VERSION
- #error BUILD_VERSION Information must be specified
+ #ifdef DEFAULT_MACHINE_NAME
+ #undef MACHINE_NAME
+ #define MACHINE_NAME DEFAULT_MACHINE_NAME
+ #endif
#endif
#ifndef MACHINE_UUID
- #define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
+ #define MACHINE_UUID DEFAULT_MACHINE_UUID
#endif
+#ifdef DEFAULT_WEBSITE_URL
+ #undef WEBSITE_URL
+ #define WEBSITE_URL DEFAULT_WEBSITE_URL
+#endif
// Common LCD messages