+# This is a chain of dependencies rather than a simple list simply to
+# avoid the messages getting interleaved in the case of a parallel
+# make invocation.
+.PHONY: verify-source-tree-and-version
+verify-source-tree-and-version: verify-no-dirty-code
+
+.PHONY: verify-no-dirty-code
+verify-no-dirty-code: verify-version-debian verify-version-python
+ifeq ($(IS_GIT),yes)
+ @printf "Checking that source tree is clean..."
+ifneq ($(shell git ls-files -m),)
+ @echo "No"
+ @echo "The following files have been modified since the most recent git commit:"
+ @echo ""
+ @git ls-files -m
+ @echo ""
+ @echo "The release will be made from the committed state, but perhaps you meant"
+ @echo "to commit this code first? Please clean this up to make it more clear."
+ @false
+else
+ @echo "Good"
+endif
+endif
+
+.PHONY: verify-version-debian
+verify-version-debian: verify-version-components
+ @echo -n "Checking that Debian package version is $(VERSION)-1..."
+ @if [ "$(VERSION)-1" != $$(dpkg-parsechangelog | grep ^Version | awk '{print $$2}') ] ; then \
+ (echo "No." && \
+ echo "Please edit version and debian/changelog to have consistent versions." && false) \
+ fi
+ @echo "Good."
+
+.PHONY: verify-version-python
+verify-version-python: verify-version-components
+ @echo -n "Checking that python bindings version is $(VERSION)..."
+ @if [ "$(VERSION)" != $$(python -c "execfile('$(PV_FILE)'); print __VERSION__") ] ; then \
+ (echo "No." && \
+ echo "Please edit version and $(PV_FILE) to have consistent versions." && false) \
+ fi
+ @echo "Good."