+# Multiple submakes are invoked in the same directory - e.g.
+# rpp-test-suite/Debug/GNUmakefile invokes Debug/GNUmakefile. We don't
+# want these targets to be invoked twice so we forbid parallel
+# invocation in this Makefile. Note that the submakes still run in
+# parallel.
+.NOTPARALLEL:
+
+subdir-build/%: print-targets
+ $(MAKE) -C $(@:subdir-%=%) $(MAKECMDGOALS)
+
+
+UNCRUSTIFY_FILES = $(shell git ls-files|git check-attr --stdin uncrustify|awk -F: '/uncrustify: set$$/ {print $$1}')
+UNCRUSTIFY_CFG = etc/uncrustify.cfg
+define UNCRUSTIFY_ALL
+$(foreach i,$(UNCRUSTIFY_FILES),git show HEAD:$i | uncrustify -c $(UNCRUSTIFY_CFG) -o $i
+)
+endef
+
+# Usage: Run 'make uncrustify' and then 'git add -p' to commit the
+# changes you agree with.
+uncrustify:
+ git diff --quiet # Check that the tree is clean
+ $(UNCRUSTIFY_ALL)
+
+
+include common.mk
+
+$(eval $(call release_rules,rpp-lib))
+release: $(RELEASE_BASENAME).zip