Tweak the product graph formatting.
diff --git a/core/tasks/product-graph.mk b/core/tasks/product-graph.mk
index 5dc13a6..6442252 100644
--- a/core/tasks/product-graph.mk
+++ b/core/tasks/product-graph.mk
@@ -15,22 +15,34 @@
 #
 
 products_pdf := $(OUT_DIR)/products.pdf
+products_graph := $(products_pdf:%.pdf=%.dot)
 
-# This rule doens't include any nodes that don't inherit from
+$(products_graph):
+	@echo Product graph DOT: $@
+	$(hide) ( \
+		echo 'digraph {'; \
+		echo 'graph [ ratio=.5 ];'; \
+		$(foreach p,$(ALL_PRODUCTS), \
+			$(foreach d,$(PRODUCTS.$(strip $(p)).INHERITS_FROM), \
+			echo \"$(d)\" -\> \"$(p)\";)) \
+		$(foreach prod, \
+			$(sort $(foreach p,$(ALL_PRODUCTS), \
+				$(foreach d,$(PRODUCTS.$(strip $(p)).INHERITS_FROM), \
+					$(d))) \
+				$(foreach p,$(ALL_PRODUCTS),$(p))), \
+			echo \"$(prod)\" [ label=\"$(dir $(prod))\\n$(notdir $(prod))\"];) \
+		echo '}' \
+	) > $@
+
+# This rule doesn't include any nodes that don't inherit from
 # anything or don't have anything inherit from them, to make the
 # graph more readable.  To add that, add this line to the rule
 # below:
 #		$(foreach p,$(ALL_PRODUCTS), echo \"$(p)\";) \
 
-$(products_pdf):
-	$(hide) ( \
-		echo 'digraph {'; \
-		echo 'graph [ ratio = .6, pack=false];'; \
-		$(foreach p,$(ALL_PRODUCTS), \
-			$(foreach d,$(PRODUCTS.$(strip $(p)).INHERITS_FROM), \
-			echo \"$(d)\" -\> \"$(p)\";)) \
-		echo '}' \
-	) | dot -Tpdf -Nshape=box -o $@
+$(products_pdf): $(products_graph)
+	@echo Product graph PDF: $@
+	dot -Tpdf -Nshape=box -o $@ $<
 
 product-graph: $(products_pdf)