8173303: Add module-subgraph images to main platform documentation
authormchung
Wed, 29 Mar 2017 09:41:55 -0700
changeset 44397 f932d6b9f7fe
parent 44311 7535d1c62993
child 44398 406532d25529
8173303: Add module-subgraph images to main platform documentation Reviewed-by: alanb, chegar, erikj, ihse, lancea
make/Javadoc.gmk
make/Main.gmk
--- a/make/Javadoc.gmk	Thu Mar 23 22:56:58 2017 +0000
+++ b/make/Javadoc.gmk	Wed Mar 29 09:41:55 2017 -0700
@@ -27,6 +27,7 @@
 include $(SPEC)
 include MakeBase.gmk
 include $(JDK_TOPDIR)/make/Tools.gmk
+include $(JDK_TOPDIR)/make/ModuleTools.gmk
 
 ################################################################################
 
@@ -174,6 +175,7 @@
     -tag param \
     -tag return \
     -tag throws \
+    -taglet build.tools.taglet.ModuleGraph \
     -tag since \
     -tag version \
     -tag serialData \
@@ -188,6 +190,13 @@
 DEFAULT_JAVADOC_OPTIONS := -XDignore.symbol.file=true -use -keywords -notimestamp \
     -serialwarn -encoding ISO-8859-1 -breakiterator --system none
 
+#
+# TODO: this should be set by the configure option.
+#
+ifndef ENABLE_MODULE_GRAPH
+   ENABLE_MODULE_GRAPH=false
+endif
+
 ################################################################################
 # Setup make rules for running javadoc.
 #
@@ -321,7 +330,8 @@
 	  $$(eval $$(call ListPathsSafely, $1_PACKAGES, $$($1_PACKAGES_FILE)))
         endif
 	$$(call ExecuteWithLog, $$(SUPPORT_OUTPUTDIR)/docs/$1.javadoc, \
-	    $$($1_JAVA) -Djava.awt.headless=true $(NEW_JAVADOC) -d $$(@D) \
+	    $$($1_JAVA) -Djava.awt.headless=true -DenableModuleGraph=$(ENABLE_MODULE_GRAPH) \
+		$(NEW_JAVADOC) -d $$(@D) \
 	        $$(DEFAULT_JAVADOC_TAGS) $$(DEFAULT_JAVADOC_OPTIONS) \
 	        --module-source-path $$(call PathList, $$(JAVADOC_SOURCE_DIRS)) \
 	        $$($1_OPTIONS) $$($1_PACKAGES_ARG))
@@ -735,18 +745,34 @@
 ZIP_TARGETS += $(JAVADOC_ARCHIVE)
 
 ################################################################################
+# generate .dot files for module graphs
+
+JAVADOC_MODULE_GRAPHS_DIR := $(SUPPORT_OUTPUTDIR)/docs/module-graphs
+JAVADOC_MODULE_GRAPHS := $(JAVADOC_MODULE_GRAPHS_DIR)/java.se.dot
+JAVADOC_MODULE_GRAPHS_PROPS := $(JDK_TOPDIR)/make/src/classes/build/tools/jigsaw/javadoc-graphs.properties
+
+$(JAVADOC_MODULE_GRAPHS): $(BUILD_JIGSAW_TOOLS) $(JAVADOC_MODULE_GRAPHS_PROPS)
+	$(MKDIR) -p $(@D)
+	$(TOOL_GENGRAPHS) --spec --output $(JAVADOC_MODULE_GRAPHS_DIR) \
+	    --dot-attributes $(JAVADOC_MODULE_GRAPHS_PROPS)
+
+MODULE_GRAPH_TARGETS += $(JAVADOC_MODULE_GRAPHS)
+
+################################################################################
 
 # Hook to include the corresponding custom file, if present.
 $(eval $(call IncludeCustomExtension, , Javadoc.gmk))
 
 ################################################################################
 
+docs-module-graphs: $(MODULE_GRAPH_TARGETS) 
+
 docs-javadoc: $(TARGETS)
 
 docs-copy: $(COPY_TARGETS)
 
 docs-zip: $(ZIP_TARGETS)
 
-all: docs-javadoc docs-copy docs-zip
+all: docs-module-graphs docs-javadoc docs-copy docs-zip
 
-.PHONY: default all docs-javadoc docs-copy docs-zip
+.PHONY: default all docs-module-graphs docs-javadoc docs-copy docs-zip
--- a/make/Main.gmk	Thu Mar 23 22:56:58 2017 +0000
+++ b/make/Main.gmk	Wed Mar 29 09:41:55 2017 -0700
@@ -363,6 +363,9 @@
 ################################################################################
 # Docs targets
 
+docs-module-graphs:
+	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Javadoc.gmk docs-module-graphs)
+
 docs-javadoc:
 	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Javadoc.gmk docs-javadoc)
 
@@ -375,7 +378,7 @@
 update-build-docs:
 	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f UpdateBuildDocs.gmk)
 
-ALL_TARGETS += docs-javadoc docs-copy docs-zip update-build-docs
+ALL_TARGETS += docs-module-graphs docs-javadoc docs-copy docs-zip update-build-docs
 
 ################################################################################
 # Cross compilation support
@@ -772,6 +775,8 @@
 
   bootcycle-images: jdk-image
 
+  docs-module-graphs: exploded-image buildtools-modules 
+
   docs-javadoc: $(GENSRC_TARGETS) rmic
 
   # The gensrc step for jdk.jdi creates an html file that is used by docs-copy.
@@ -929,7 +934,7 @@
 endif
 
 # This target builds the documentation image
-docs-image: docs-javadoc docs-copy
+docs-image: docs-module-graphs docs-javadoc docs-copy
 
 # This target builds the test image
 test-image: prepare-test-image test-image-hotspot-jtreg-native \