build: unify mesa version by using a VERSION file

Rather than having to keep track of all the build systems and their respecitve
definition of the mesa version, use a single top file VERSION. Every build
system is responsible for reading/parsing the file and using it

v2:
* remove useless bulletpoint from the documentation, suggested by Matt
* "Androing is Linux. Use '/' in stead of '\'", spotted by Chad V
* use cleaner code to get the version in scons, suggested by Chad V

v3:
* ensure leading and trailing whitespace characters are stripped while parsing
* android: handle GNU shell commands approapriately

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
diff --git a/Android.common.mk b/Android.common.mk
index dd37104..3e6d4c3 100644
--- a/Android.common.mk
+++ b/Android.common.mk
@@ -33,9 +33,10 @@
 LOCAL_C_INCLUDES += \
 	$(MESA_TOP)/include
 
+MESA_VERSION=$(shell cat $(MESA_TOP)/VERSION)
 # define ANDROID_VERSION (e.g., 4.0.x => 0x0400)
 LOCAL_CFLAGS += \
-	-DPACKAGE_VERSION=\"9.3.0-devel\" \
+	-DPACKAGE_VERSION=\"$(MESA_VERSION)\" \
 	-DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\" \
 	-DANDROID_VERSION=0x0$(MESA_ANDROID_MAJOR_VERSION)0$(MESA_ANDROID_MINOR_VERSION)
 
diff --git a/Makefile.am b/Makefile.am
index 63e02c6..ce391c4 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -36,6 +36,7 @@
 EXTRA_FILES = \
 	aclocal.m4					\
 	configure					\
+	VERSION					\
 	bin/ar-lib					\
 	bin/compile					\
 	bin/config.sub					\
diff --git a/SConstruct b/SConstruct
index b00a7fe..de735e9 100644
--- a/SConstruct
+++ b/SConstruct
@@ -69,8 +69,10 @@
 #######################################################################
 # Environment setup
 
+with open("VERSION") as f:
+  mesa_version = f.read().strip()
 env.Append(CPPDEFINES = [
-    ('PACKAGE_VERSION', '\\"9.3.0-devel\\"'),
+    ('PACKAGE_VERSION', '\\"%s\\"' % mesa_version),
     ('PACKAGE_BUGREPORT', '\\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\\"'),
 ])
 
diff --git a/VERSION b/VERSION
new file mode 100644
index 0000000..b260649
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+9.3.0-devel
diff --git a/configure.ac b/configure.ac
index 425b6ee..62d06e0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -6,7 +6,8 @@
 m4_divert_once([HELP_END], [
 See docs/autoconf.html for more details on the options for Mesa.])
 
-AC_INIT([Mesa], [9.3.0-devel],
+m4_define(MESA_VERSION, m4_normalize(m4_include(VERSION)))
+AC_INIT([Mesa], [MESA_VERSION],
     [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
 AC_CONFIG_AUX_DIR([bin])
 AC_CONFIG_MACRO_DIR([m4])
diff --git a/docs/devinfo.html b/docs/devinfo.html
index bd11e5c..bf77259 100644
--- a/docs/devinfo.html
+++ b/docs/devinfo.html
@@ -193,15 +193,7 @@
 </p>
 
 
-<h3>Verify and update version info</h3>
-
-<dl>
-  <dt>SConstruct</dt>
-  <dt>Android.common.mk</dt>
-  <dd>PACKAGE_VERSION</dd>
-  <dt>configure.ac</dt>
-  <dd>AC_INIT</dd>
-</dl>
+<h3>Verify and update version info in VERSION</h3>
 
 <p>
 Create a docs/relnotes/x.y.z.html file.