+# Sphinx tries to keep track of which docs need to be built on its
+# own. We could do better, but we would have to duplicate all of the
+# information that we already gave Sphinx to make it work. Thus the
+# "doc" target will unconditionally invoke sphinx.
+.PHONY: doc
+doc: