So we don't try to recreate directories just because they are older
than mkdirhier, since mkdirhier won't touch them.
# Don't try to delete directories:
.PRECIOUS: %/.
-%/. : $(MKDIRHIER)
+# Create build directories on demand. NB. the | below: this indicates
+# that $(MKDIRHIER) is an order-only dependency, which means that this
+# rule fires after building mkdirhier, but we won't try to recreate
+# directories if mkdirhier changes.
+%/. : | $(MKDIRHIER)
"$(MKDIRHIER)" $@
# -----------------------------------------------------------------------------