-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))
+
+##########
+# 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