-VERSION=$(shell cat VERSION)
-VERSIONTAG=nepi-$(VERSION)-pypi
-VERSIONTAR=nepi-$(VERSION).tar.gz
-ALREADY_SET=$(shell git tag | grep '^$(VERSIONTAG)$$')
+VERSION = $(shell cat VERSION)
+VERSIONTAG = nepi-$(VERSION)-pypi
+VERSIONTAR = nepi-$(VERSION).tar.gz
+GIT-TAG-ALREADY-SET = $(shell git tag | grep '^$(VERSIONTAG)$$')
+# to check for uncommitted changes
+GIT-CHANGES = $(shell echo $$(git diff HEAD | wc -l))
+GIT-URL = git://git.onelab.eu/nepi.git
+
+version: nepi/util/version.py
+nepi/util/version.py: VERSION nepi/util/version.py.in
+ sed -e "s,@VERSIONTAG@,$(VERSION),g" -e "s,@SCMURL@,$(GIT-URL),g" nepi/util/version.py.in > $@
+
+clean: version-clean
+version-clean:
+ rm -f nepi/util/version.py
+
+##########
+# depending on the value of USE_TWINE, we either do the upload with setup.py itself,
+# or with the help of twine which apparently is the only way that mario could find out on his setup
+define upload_pypi
+$(if $(USE_TWINE),./setup.py sdist && twine upload dist/* -r $(1),./setup.py sdist upload -r $(1))
+endef