diff --git a/Makefile b/Makefile
index b49ebe804f97c16e2bdcabb5d8b0ff9abf35c113..760335a2791cd8c99eb9932748ddc6e3e299344f 100644
--- a/Makefile
+++ b/Makefile
@@ -52,6 +52,9 @@ $(eval $(call mkabspath,GLUON_PACKAGEDIR))
 $(eval $(call mkabspath,GLUON_TARGETSDIR))
 $(eval $(call mkabspath,GLUON_PATCHESDIR))
 
+GLUON_VERSION := $(shell scripts/getversion.sh '.')
+GLUON_SITE_VERSION := $(shell scripts/getversion.sh '$(GLUON_SITEDIR)')
+
 GLUON_MULTIDOMAIN ?= 0
 GLUON_AUTOREMOVE ?= 0
 GLUON_DEBUG ?= 0
@@ -64,6 +67,7 @@ src-link gluon_base ../../package
 endef
 
 GLUON_VARS = \
+	GLUON_VERSION GLUON_SITE_VERSION \
 	GLUON_RELEASE GLUON_REGION GLUON_MULTIDOMAIN GLUON_AUTOREMOVE GLUON_DEBUG GLUON_MINIFY GLUON_DEPRECATED \
 	GLUON_DEVICES GLUON_TARGETSDIR GLUON_PATCHESDIR GLUON_TMPDIR GLUON_IMAGEDIR GLUON_PACKAGEDIR GLUON_DEBUGDIR \
 	GLUON_SITEDIR GLUON_RELEASE GLUON_AUTOUPDATER_BRANCH GLUON_AUTOUPDATER_ENABLED GLUON_LANGS GLUON_BASE_FEEDS \
diff --git a/scripts/getversion.sh b/scripts/getversion.sh
new file mode 100755
index 0000000000000000000000000000000000000000..cbb7cf602e302e88353a7a90ba03e1fe5f516f72
--- /dev/null
+++ b/scripts/getversion.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+if [ $# -ne 1 ]; then
+	echo >&2 "Usage: getversion.sh <directory>"
+	exit 1
+fi
+
+cd "$1" || exit 1
+
+git --git-dir=.git describe --always --abbrev=7 --dirty=+ 2>/dev/null && exit 0
+
+echo unknown
diff --git a/targets/generic b/targets/generic
index cd72112f745ce238a42cceb923283a6533a23f3e..b0943d9be8d4b3109aebe214210475fe037827d8 100644
--- a/targets/generic
+++ b/targets/generic
@@ -2,6 +2,8 @@ assert(env.GLUON_LANGS)
 
 
 config('GLUON_SITEDIR', env.GLUON_SITEDIR)
+config('GLUON_VERSION', env.GLUON_VERSION)
+config('GLUON_SITE_VERSION', env.GLUON_SITE_VERSION)
 config('GLUON_RELEASE', env.GLUON_RELEASE)
 
 try_config('GLUON_AUTOUPDATER_BRANCH', env.GLUON_AUTOUPDATER_BRANCH)