Docs.gmk revision 2645:d273234a040d
1# Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. 2# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3# 4# This code is free software; you can redistribute it and/or modify it 5# under the terms of the GNU General Public License version 2 only, as 6# published by the Free Software Foundation. Oracle designates this 7# particular file as subject to the "Classpath" exception as provided 8# by Oracle in the LICENSE file that accompanied this code. 9# 10# This code is distributed in the hope that it will be useful, but WITHOUT 11# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 12# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 13# version 2 for more details (a copy is included in the LICENSE file that 14# accompanied this code). 15# 16# You should have received a copy of the GNU General Public License version 17# 2 along with this work; if not, write to the Free Software Foundation, 18# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 19# 20# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 21# or visit www.oracle.com if you need additional information or have any 22# questions. 23# 24 25default: all 26 27include $(SPEC) 28include MakeBase.gmk 29include Modules.gmk 30include ProcessMarkdown.gmk 31include ZipArchive.gmk 32include $(JDK_TOPDIR)/make/Tools.gmk 33include $(JDK_TOPDIR)/make/ModuleTools.gmk 34 35# This is needed to properly setup DOCS_MODULES. 36$(eval $(call ReadImportMetaData)) 37 38################################################################################ 39 40# Hook to include the corresponding custom file, if present. 41$(eval $(call IncludeCustomExtension, , Docs.gmk)) 42 43################################################################################ 44# Javadoc settings 45 46# On top of the sources that was used to compile the JDK, we need some 47# extra java.rmi sources that are used just for javadoc. 48MODULES_SOURCE_PATH := $(call PathList, $(call GetModuleSrcPath) \ 49 $(SUPPORT_OUTPUTDIR)/rmic/* $(JDK_TOPDIR)/src/*/share/doc/stub) 50 51# URLs 52JAVADOC_BASE_URL := http://www.oracle.com/pls/topic/lookup?ctx=javase9&id=homepage 53BUG_SUBMIT_URL := http://bugreport.java.com/bugreport/ 54COPYRIGHT_URL := {@docroot}/../legal/cpyr.html 55LICENSE_URL := http://www.oracle.com/technetwork/java/javase/terms/license/java9speclicense.html 56REDISTRIBUTION_URL := http://www.oracle.com/technetwork/java/redist-137594.html 57 58# In order to get a specific ordering it's necessary to specify the total 59# ordering of tags as the tags are otherwise ordered in order of definition. 60JAVADOC_TAGS := \ 61 -tag beaninfo:X \ 62 -tag revised:X \ 63 -tag since.unbundled:X \ 64 -tag spec:X \ 65 -tag specdefault:X \ 66 -tag Note:X \ 67 -tag ToDo:X \ 68 -tag 'apiNote:a:API Note:' \ 69 -tag 'implSpec:a:Implementation Requirements:' \ 70 -tag 'implNote:a:Implementation Note:' \ 71 -tag param \ 72 -tag return \ 73 -tag throws \ 74 -taglet build.tools.taglet.ModuleGraph \ 75 -tag since \ 76 -tag version \ 77 -tag serialData \ 78 -tag factory \ 79 -tag see \ 80 -tag 'jvms:a:See <cite>The Java™ Virtual Machine Specification</cite>:' \ 81 -tag 'jls:a:See <cite>The Java™ Language Specification</cite>:' \ 82 -taglet build.tools.taglet.ExtLink \ 83 -taglet build.tools.taglet.Incubating \ 84 -tagletpath $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \ 85 $(CUSTOM_JAVADOC_TAGS) \ 86 # 87 88# Which doclint checks to ignore 89JAVADOC_DISABLED_DOCLINT := accessibility html missing syntax reference 90 91# The initial set of options for javadoc 92JAVADOC_OPTIONS := -XDignore.symbol.file=true -use -keywords -notimestamp \ 93 -serialwarn -encoding ISO-8859-1 -breakiterator -splitIndex --system none \ 94 -html5 -javafx --expand-requires transitive 95 96# Should we add DRAFT stamps to the generated javadoc? 97ifeq ($(VERSION_IS_GA), true) 98 IS_DRAFT := false 99else 100 IS_DRAFT := true 101endif 102 103################################################################################ 104# General text snippets 105 106FULL_COMPANY_NAME := Oracle and/or its affiliates 107COMPANY_ADDRESS := 500 Oracle Parkway<br>Redwood Shores, CA 94065 USA 108 109ifeq ($(IS_DRAFT), true) 110 DRAFT_MARKER_STR := <br><strong>DRAFT $(VERSION_STRING)</strong> 111 ifeq ($(VERSION_BUILD), 0) 112 DRAFT_MARKER_TITLE := [ad-hoc build] 113 else 114 DRAFT_MARKER_TITLE := [build $(VERSION_BUILD)] 115 endif 116endif 117 118JAVADOC_WINDOW_TITLE := Java Platform SE $(VERSION_SPECIFICATION) \ 119 $(DRAFT_MARKER_TITLE) 120 121JAVADOC_HEADER_TITLE := $(subst $(SPACE), ,$(strip \ 122 <strong>Java™ Platform<br>Standard Ed. \ 123 $(VERSION_SPECIFICATION)</strong>$(DRAFT_MARKER_STR))) 124 125JAVADOC_BOTTOM := \ 126 <span style="font-size:smaller"> \ 127 <a href="$(BUG_SUBMIT_URL)">Submit a bug or feature</a><br> \ 128 For further API reference and developer documentation, see \ 129 <a href="$(JAVADOC_BASE_URL)" target="_blank">Java SE \ 130 Documentation</a>. That documentation contains more detailed, \ 131 developer-targeted descriptions, with conceptual overviews, definitions \ 132 of terms, workarounds, and working code examples.<br> \ 133 Java is a trademark or registered trademark of $(FULL_COMPANY_NAME) in \ 134 the US and other countries.<br> \ 135 <a href="$(COPYRIGHT_URL)">Copyright</a> \ 136 © 1993, $(COPYRIGHT_YEAR), $(FULL_COMPANY_NAME). \ 137 $(COMPANY_ADDRESS). All rights reserved. \ 138 Use is subject to <a href="$(LICENSE_URL)">license terms</a>. Also see the \ 139 <a href="$(REDISTRIBUTION_URL)">documentation redistribution policy</a>. \ 140 $(DRAFT_MARKER_STR)</span> 141 142JAVADOC_TOP := \ 143 <div style="background-color: $(HASH)EEEEEE"><div style="padding: 6px; \ 144 margin-top: 2px; margin-bottom: 6px; margin-left: 6px; margin-right: \ 145 6px; text-align: justify; font-size: 80%; font-family: Helvetica, Arial, \ 146 sans-serif; font-weight: normal;">Please note that the specifications \ 147 and other information contained herein are not final and are subject to \ 148 change. The information is being made available to you solely for \ 149 purpose of evaluation.</div></div> 150 151################################################################################ 152# JDK javadoc titles/text snippets 153 154JDK_JAVADOC_DOC_TITLE := Java™ Platform, Standard Edition Development Kit \ 155 (JDK™) $(VERSION_SPECIFICATION)<br>API Specification 156 157################################################################################ 158# Java SE javadoc titles/text snippets 159 160JAVASE_JAVADOC_DOC_TITLE := Java™ Platform, Standard Edition \ 161 $(VERSION_SPECIFICATION)<br>API Specification 162 163################################################################################ 164 165JDK_INDEX_TITLE := Java™ Platform, Standard Edition Development Kit \ 166 (JDK™) $(VERSION_SPECIFICATION) Specification<br>$(DRAFT_MARKER_TITLE) 167 168################################################################################ 169# Functions 170 171# Helper function for creating a png file from a dot file generated by the 172# GenGraphs tool. 173# param 1: SetupJavadocGeneration namespace ($1) 174# param 2: module name 175# 176define setup_gengraph_dot_to_png 177 $1_$2_DOT_SRC := $$($1_GENGRAPHS_DIR)/$2.dot 178 $1_$2_PNG_TARGET := $$($1_TARGET_DIR)/$2-graph.png 179 180 # For each module needing a graph, create a png file from the dot file 181 # generated by the GenGraphs tool and store it in the target dir. 182 $$($1_$2_PNG_TARGET): $$($1_GENGRAPHS_MARKER) 183 $$(call MakeDir, $$(@D)) 184 $$(call ExecuteWithLog, $$($1_$2_DOT_SRC), \ 185 $$(DOT) -Tpng -o $$($1_$2_PNG_TARGET) $$($1_$2_DOT_SRC)) 186 187 $1_MODULEGRAPH_TARGETS += $$($1_$2_PNG_TARGET) 188endef 189 190################################################################################ 191# Setup make rules for creating the API documentation, using javadoc and other 192# tools if needed. 193# 194# Parameter 1 is the name of the rule. This name is used as variable prefix. 195# Targets generated are returned as $1_JAVADOC_TARGETS and 196# $1_MODULEGRAPH_TARGETS. Note that the index.html file will work as a "touch 197# file" for all the magnitude of files that are generated by javadoc. 198# 199# Remaining parameters are named arguments. These include: 200# MODULES - Modules to generate javadoc for 201# NAME - The name of the javadoc compilation, to be presented to the user 202# TARGET_DIR - Where to store the output 203# OVERVIEW - Path to an html overview file 204# DOC_TITLE - Title to use in -doctitle. 205# WINDOW_TITLE - Title to use in -windowtitle. 206# HEADER_TITLE - Title to use in -header. 207# BOTTOM_TEXT - Text to use in -bottom. 208# TOP_TEXT - Text to use in -top. 209# 210SetupApiDocsGeneration = $(NamedParamsMacroTemplate) 211define SetupApiDocsGenerationBody 212 213 # Figure out all modules, both specified and transitive indirect exports, that 214 # will be processed by javadoc. 215 $1_INDIRECT_EXPORTS := $$(call FindTransitiveIndirectDepsForModules, $$($1_MODULES)) 216 $1_ALL_MODULES := $$(sort $$($1_MODULES) $$($1_INDIRECT_EXPORTS)) 217 218 ifeq ($$(ENABLE_FULL_DOCS), true) 219 # Tell the ModuleGraph taglet to generate html links to soon-to-be-created 220 # png files with module graphs. 221 $1_JAVA_ARGS += -DenableModuleGraph=true 222 endif 223 224 # Always include tags and basic options 225 $1_OPTIONS := $$(JAVADOC_TAGS) $$(JAVADOC_OPTIONS) 226 227 $1_OPTIONS += -overview $$($1_OVERVIEW) 228 $1_OPTIONS += --module-source-path $$(MODULES_SOURCE_PATH) 229 $1_OPTIONS += --module $$(call CommaList, $$($1_MODULES)) 230 231 # Create a string like "-Xdoclint:all,-syntax,-html,..." 232 $1_OPTIONS += -Xdoclint:all,$$(call CommaList, $$(addprefix -, \ 233 $$(JAVADOC_DISABLED_DOCLINT))) 234 235 $1_OPTIONS += -doctitle '$$($1_DOC_TITLE)' 236 $1_OPTIONS += -windowtitle '$$($1_WINDOW_TITLE)' 237 $1_OPTIONS += -header '$$($1_HEADER_TITLE)' 238 $1_OPTIONS += -bottom '$$($1_BOTTOM_TEXT)' 239 ifeq ($$(IS_DRAFT), true) 240 $1_OPTIONS += -top '$$($1_TOP_TEXT)' 241 endif 242 243 # Do not store debug level options in VARDEPS. 244 ifneq ($$(LOG_LEVEL), trace) 245 $1_LOG_OPTION += -quiet 246 else 247 $1_LOG_OPTION += -verbose 248 endif 249 250 $1_VARDEPS := $$($1_JAVA_ARGS) $$($1_OPTIONS) $$(MODULES_SOURCE_PATH) \ 251 $$($1_ALL_MODULES) 252 $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \ 253 $$(SUPPORT_OUTPUTDIR)/docs/$1.vardeps) 254 255 # Get a list of all files in all the source dirs for all included modules 256 $1_SOURCE_DEPS := $$(call CacheFind, $$(wildcard $$(foreach module, \ 257 $$($1_ALL_MODULES), $$(call FindModuleSrcDirs, $$(module))))) 258 259 # Javadoc creates a lot of files but use index.html as a marker 260 $$($1_TARGET_DIR)/index.html: $$(BUILD_TOOLS_JDK) $$($1_VARDEPS_FILE) \ 261 $$($1_SOURCE_DEPS) $$($1_OVERVIEW) 262 $$(call LogWarn, Generating $$($1_NAME) API javadoc for \ 263 $$(words $$($1_ALL_MODULES)) modules) 264 $$(call LogInfo, Javadoc modules: $$($1_ALL_MODULES)) 265 $$(call MakeDir, $$($1_TARGET_DIR)) 266 $$(call ExecuteWithLog, $$(SUPPORT_OUTPUTDIR)/docs/$1, \ 267 $$(JAVA) -Djava.awt.headless=true $$($1_JAVA_ARGS) \ 268 $$(NEW_JAVADOC) -d $$($1_TARGET_DIR) \ 269 $$(JAVADOC_TAGS) $$($1_OPTIONS) $$($1_LOG_OPTION)) 270 271 $1_JAVADOC_TARGETS := $$($1_TARGET_DIR)/index.html 272 273 ifeq ($$(ENABLE_FULL_DOCS), true) 274 # We have asked ModuleGraph to generate links to png files. Now we must 275 # produce the png files. 276 277 # Locate which modules has the @moduleGraph tag in their module-info.java 278 $1_MODULES_NEEDING_GRAPH := $$(strip $$(foreach m, $$($1_ALL_MODULES), \ 279 $$(if $$(shell $$(GREP) -e @moduleGraph \ 280 $$(wildcard $$(addsuffix /module-info.java, \ 281 $$(call FindModuleSrcDirs, $$m)))), \ 282 $$m) \ 283 )) 284 285 # First we run the GenGraph tool. It will query the module structure of the 286 # running JVM and output .dot files for all existing modules. 287 GENGRAPHS_PROPS := \ 288 $$(JDK_TOPDIR)/make/src/classes/build/tools/jigsaw/javadoc-graphs.properties 289 290 $1_GENGRAPHS_DIR := $$(SUPPORT_OUTPUTDIR)/docs/$1-gengraphs 291 $1_GENGRAPHS_MARKER := $$($1_GENGRAPHS_DIR)/_gengraphs_run.marker 292 293 $$($1_GENGRAPHS_MARKER): $$(BUILD_JIGSAW_TOOLS) $$(GENGRAPHS_PROPS) 294 $$(call LogInfo, Running gengraphs for $$($1_NAME) API documentation) 295 $$(call MakeDir, $$($1_GENGRAPHS_DIR)) 296 $$(call ExecuteWithLog, $$($1_GENGRAPHS_DIR)/gengraphs, \ 297 $$(TOOL_GENGRAPHS) --spec --output $$($1_GENGRAPHS_DIR) \ 298 --dot-attributes $$(GENGRAPHS_PROPS) && \ 299 $$(TOUCH) $$($1_GENGRAPHS_MARKER)) 300 301 # For each module needing a graph, create a png file from the dot file 302 # generated by the GenGraphs tool and store it in the target dir. 303 # They will depend on $1_GENGRAPHS_MARKER, and will be added to $1. 304 $$(foreach m, $$($1_MODULES_NEEDING_GRAPH), \ 305 $$(eval $$(call setup_gengraph_dot_to_png,$1,$$m)) \ 306 ) 307 endif 308endef 309 310################################################################################ 311# Setup generation of the JDK API documentation (javadoc + modulegraph) 312 313# All modules to have docs generated by docs-jdk-api target 314JDK_JAVADOC_MODULES := $(sort $(DOCS_MODULES)) 315 316JDK_JAVADOC_OVERVIEW := $(JDK_TOPDIR)/src/java.base/share/classes/overview-core.html 317 318$(eval $(call SetupApiDocsGeneration, JDK_API, \ 319 MODULES := $(JDK_JAVADOC_MODULES), \ 320 NAME := JDK, \ 321 TARGET_DIR := $(DOCS_OUTPUTDIR)/api, \ 322 OVERVIEW := $(JDK_JAVADOC_OVERVIEW), \ 323 DOC_TITLE := $(JDK_JAVADOC_DOC_TITLE), \ 324 WINDOW_TITLE := $(JAVADOC_WINDOW_TITLE), \ 325 HEADER_TITLE := $(JAVADOC_HEADER_TITLE), \ 326 BOTTOM_TEXT := $(JAVADOC_BOTTOM), \ 327 TOP_TEXT := $(JAVADOC_TOP), \ 328)) 329 330# Targets generated are returned in JDK_API_JAVADOC_TARGETS and 331# JDK_API_MODULEGRAPH_TARGETS. 332 333################################################################################ 334# Setup generation of the Java SE API documentation (javadoc + modulegraph) 335 336# The Java SE module scope is just java.se.ee and it's transitive indirect 337# exports. 338JAVASE_JAVADOC_MODULES := java.se.ee 339 340JAVASE_JAVADOC_OVERVIEW := $(JDK_TOPDIR)/src/java.base/share/classes/overview-core.html 341 342$(eval $(call SetupApiDocsGeneration, JAVASE_API, \ 343 MODULES := $(JAVASE_JAVADOC_MODULES), \ 344 NAME := Java SE, \ 345 TARGET_DIR := $(IMAGES_OUTPUTDIR)/javase-docs/api, \ 346 OVERVIEW := $(JAVASE_JAVADOC_OVERVIEW), \ 347 DOC_TITLE := $(JAVASE_JAVADOC_DOC_TITLE), \ 348 WINDOW_TITLE := $(JAVADOC_WINDOW_TITLE), \ 349 HEADER_TITLE := $(JAVADOC_HEADER_TITLE), \ 350 BOTTOM_TEXT := $(JAVADOC_BOTTOM), \ 351 TOP_TEXT := $(JAVADOC_TOP), \ 352)) 353 354# Targets generated are returned in JAVASE_API_JAVADOC_TARGETS and 355# JAVASE_API_MODULEGRAPH_TARGETS. 356 357################################################################################ 358 359JDK_INDEX_HTML := $(DOCS_OUTPUTDIR)/index.html 360JDK_INDEX_TOOLS_DIR := $(TOOLS_CLASSES_DIR)/build/tools/docs 361 362$(JDK_INDEX_HTML): $(BUILD_JIGSAW_TOOLS) \ 363 $(JDK_INDEX_TOOLS_DIR)/docs-bundle-page.html \ 364 $(JDK_INDEX_TOOLS_DIR)/docs-module-groups.properties 365 $(call LogInfo, Generating docs bundle index page) 366 $(MKDIR) -p $(@D) 367 $(TOOL_GEN_DOCS_BUNDLE_PAGE) --title '$(JDK_INDEX_TITLE)' \ 368 --output $@ 369 370JDK_INDEX_TARGETS := $(JDK_INDEX_HTML) 371 372# Copy the global resources 373GLOBAL_SPECS_RESOURCES_DIR := $(JDK_TOPDIR)/make/data/docs-resources/ 374$(eval $(call SetupCopyFiles, COPY_GLOBAL_RESOURCES, \ 375 SRC := $(GLOBAL_SPECS_RESOURCES_DIR), \ 376 FILES := $(call CacheFind, $(GLOBAL_SPECS_RESOURCES_DIR)), \ 377 DEST := $(DOCS_OUTPUTDIR), \ 378)) 379JDK_INDEX_TARGETS += $(COPY_GLOBAL_RESOURCES) 380 381################################################################################ 382# Copy JDK specs files 383 384# For all html documentation in $module/share/specs directories, copy it 385# unmodified 386 387ALL_MODULES := $(call FindAllModules) 388COPY_SPEC_FILTER := %.html %.gif %.jpg %.mib %.css 389 390$(foreach m, $(ALL_MODULES), \ 391 $(eval SPECS_$m := $(call FindModuleSpecsDirs, $m)) \ 392 $(foreach d, $(SPECS_$m), \ 393 $(if $(filter $(COPY_SPEC_FILTER), $(call CacheFind, $d)), \ 394 $(eval $(call SetupCopyFiles, COPY_$m, \ 395 SRC := $d, \ 396 FILES := $(filter $(COPY_SPEC_FILTER), $(call CacheFind, $d)), \ 397 DEST := $(DOCS_OUTPUTDIR)/specs/, \ 398 )) \ 399 $(eval JDK_SPECS_TARGETS += $(COPY_$m)) \ 400 ) \ 401 ) \ 402) 403 404ifeq ($(ENABLE_FULL_DOCS), true) 405 # For all markdown files in $module/share/specs directories, convert them to 406 # html. 407 408 GLOBAL_SPECS_DEFAULT_CSS_FILE := $(DOCS_OUTPUTDIR)/resources/jdk-default.css 409 410 $(foreach m, $(ALL_MODULES), \ 411 $(eval SPECS_$m := $(call FindModuleSpecsDirs, $m)) \ 412 $(foreach d, $(SPECS_$m), \ 413 $(if $(filter %.md, $(call CacheFind, $d)), \ 414 $(eval $(call SetupProcessMarkdown, CONVERT_MARKDOWN_$m_$(patsubst $(TOPDIR)/%,%,$d), \ 415 SRC := $d, \ 416 FILES := $(filter %.md, $(call CacheFind, $d)), \ 417 DEST := $(DOCS_OUTPUTDIR)/specs/, \ 418 CSS := $(GLOBAL_SPECS_DEFAULT_CSS_FILE), \ 419 )) \ 420 ) \ 421 $(eval JDK_SPECS_TARGETS += $(CONVERT_MARKDOWN_$m_$(patsubst $(TOPDIR)/%,%,$d))) \ 422 ) \ 423 ) 424endif 425 426# Special treatment for generated documentation 427 428JDWP_PROTOCOL := $(SUPPORT_OUTPUTDIR)/gensrc/jdk.jdi/jdwp-protocol.html 429$(eval $(call SetupCopyFiles, COPY_JDWP_PROTOCOL, \ 430 FILES := $(JDWP_PROTOCOL), \ 431 DEST := $(DOCS_OUTPUTDIR)/specs/jdwp, \ 432)) 433JDK_SPECS_TARGETS += $(COPY_JDWP_PROTOCOL) 434 435# Get jvmti.html from the main jvm variant (all variants' jvmti.html are identical). 436JVMTI_HTML := $(HOTSPOT_OUTPUTDIR)/variant-$(JVM_VARIANT_MAIN)/gensrc/jvmtifiles/jvmti.html 437$(eval $(call SetupCopyFiles, COPY_JVMTI_HTML, \ 438 FILES := $(JVMTI_HTML), \ 439 DEST := $(DOCS_OUTPUTDIR)/specs, \ 440)) 441JDK_SPECS_TARGETS += $(COPY_JVMTI_HTML) 442 443################################################################################ 444# Optional target which bundles all generated javadocs into a zip archive. 445 446JAVADOC_ZIP_NAME := jdk-$(VERSION_STRING)-docs.zip 447JAVADOC_ZIP_FILE := $(OUTPUT_ROOT)/bundles/$(JAVADOC_ZIP_NAME) 448 449$(eval $(call SetupZipArchive, BUILD_JAVADOC_ZIP, \ 450 SRC := $(DOCS_OUTPUTDIR), \ 451 ZIP := $(JAVADOC_ZIP_FILE), \ 452 EXTRA_DEPS := $(JDK_API_JAVADOC_TARGETS) $(JDK_API_MODULEGRAPH_TARGETS) \ 453 $(JDK_SPECS_TARGETS), \ 454)) 455 456ZIP_TARGETS += $(BUILD_JAVADOC_ZIP) 457 458################################################################################ 459 460docs-jdk-api-javadoc: $(JDK_API_JAVADOC_TARGETS) $(JDK_API_CUSTOM_TARGETS) 461 462docs-jdk-api-modulegraph: $(JDK_API_MODULEGRAPH_TARGETS) 463 464docs-javase-api-javadoc: $(JAVASE_API_JAVADOC_TARGETS) $(JAVASE_API_CUSTOM_TARGETS) 465 466docs-javase-api-modulegraph: $(JAVASE_API_MODULEGRAPH_TARGETS) 467 468docs-jdk-specs: $(JDK_SPECS_TARGETS) 469 470docs-jdk-index: $(JDK_INDEX_TARGETS) 471 472docs-zip: $(ZIP_TARGETS) 473 474all: docs-jdk-api-javadoc docs-jdk-api-modulegraph docs-javase-api-javadoc \ 475 docs-javase-api-modulegraph docs-jdk-specs docs-jdk-index docs-zip 476 477.PHONY: default all docs-jdk-api-javadoc docs-jdk-api-modulegraph \ 478 docs-javase-api-javadoc docs-javase-api-modulegraph docs-jdk-specs \ 479 docs-jdk-index docs-zip 480