# Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
default: all
include $(SPEC)
include MakeBase.gmk
################################################################################
# List of all possible directories for javadoc to look for sources
# Allow custom to overwrite.
JAVADOC_SOURCE_DIRS = \
$(SUPPORT_OUTPUTDIR)/gensrc/* \
$(if $(IMPORT_MODULES_SRC), $(IMPORT_MODULES_SRC)/*) \
$(JDK_TOPDIR)/src/*/$(OPENJDK_TARGET_OS)/classes \
$(JDK_TOPDIR)/src/*/$(OPENJDK_TARGET_OS_TYPE)/classes \
$(JDK_TOPDIR)/src/*/share/classes \
$(HOTSPOT_TOPDIR)/src/*/share/classes \
$(LANGTOOLS_TOPDIR)/src/*/share/classes \
$(NASHORN_TOPDIR)/src/*/share/classes \
$(CORBA_TOPDIR)/src/*/share/classes \
$(JAXP_TOPDIR)/src/*/share/classes \
$(JAXWS_TOPDIR)/src/*/share/classes \
$(SUPPORT_OUTPUTDIR)/rmic/* \
$(JDK_TOPDIR)/src/*/share/doc/stub \
#
# Should we use -Xdocrootparent? Allow custom to overwrite.
DOCROOTPARENT_FLAG = TRUE
# The core api index file is the target for the core api javadocs rule
# and needs to be defined early so that all other javadoc rules may
# depend on it.
CORE_INDEX_FILE := $(JAVADOC_OUTPUTDIR)/api/index.html
# URLs
JAVADOC_BASE_URL := http://docs.oracle.com/javase/$(VERSION_SPECIFICATION)/docs
BUG_SUBMIT_URL := http://bugreport.java.com/bugreport/
################################################################################
# Text snippets
FULL_COMPANY_NAME := Oracle and/or its affiliates
COMPANY_ADDRESS := 500 Oracle Parkway
Redwood Shores, CA 94065 USA
BUG_SUBMIT_LINE := Submit a bug or feature
COMMON_BOTTOM_TEXT := $(BUG_SUBMIT_LINE)
Java is a trademark or registered \
trademark of $(FULL_COMPANY_NAME) in the US and other countries.
CORE_BOTTOM_COPYRIGHT_URL := {@docroot}/../legal/cpyr.html
CORE_BOTTOM_TEXT := $(BUG_SUBMIT_LINE) \
For further API reference and developer documentation, see \
Java SE \
Documentation. That documentation contains more detailed, \
developer-targeted descriptions, with conceptual overviews, definitions of \
terms, workarounds, and working code examples.
ifeq ($(VERSION_IS_GA), true)
DRAFT_HEADER :=
DRAFT_BOTTOM :=
DRAFT_WINTITLE :=
CORE_TOP_EARLYACCESS :=
else
# We need a draft format when not building the GA version.
DRAFT_HEADER :=
DRAFT $(VERSION_STRING)
DRAFT_BOTTOM :=
DRAFT $(VERSION_STRING)
ifeq ($(VERSION_BUILD), 0)
DRAFT_WINTITLE := [ad-hoc build]
else
DRAFT_WINTITLE := [build $(VERSION_BUILD)]
endif
CORE_TOP_EARLYACCESS := \
\
\
Please note that the specifications and other information contained herein are \
not final and are subject to change. The information is being made available \
to you solely for purpose of evaluation.
endif
################################################################################
# Support functions for SetupJavadocGeneration
# Print an option line to the target file
# Arguments:
# arg 1: the option name
# arg 2-3: optional arguments to the option
define AddOption
$(PRINTF) "%s$(if $(strip $2), '%s',)$(if $(strip $3), '%s',)\n" \
"$(strip $1)"$(if $(strip $2), '$(strip $2)',)$(if $(strip $3), \
'$(strip $3)',) >> $@
endef
# This function goes to great pains to exactly mimic the old behavior
# in all details, including whitespace.
# Note that COPYRIGHT_YEAR is the current year (from spec.gmk)
# Arguments:
# arg 1: first copyright year
# arg 2: copyright url (optional)
# arg 3: free-form text snippet (optional)
define GenerateBottom
$(if $(strip $3), $(strip $3))
$(if \
$(strip $2),Copyright,Copyright) \
© $(strip $1), $(COPYRIGHT_YEAR), $(FULL_COMPANY_NAME). \
$(COMPANY_ADDRESS). All rights reserved.
endef
# Speed up finding by filling cache
$(eval $(call FillCacheFind, $(wildcard $(JAVADOC_SOURCE_DIRS))))
################################################################################
# Setup make rules for running javadoc.
#
# Parameter 1 is the name of the rule. This name is used as variable prefix,
# and the targets generated are listed in a variable by that name. Note that
# the index.html file will work as a "touch file" for all the magnitude of
# files that are generated by javadoc.
#
# Remaining parameters are named arguments. These include:
# MODULES - Modules to include
# PACKAGES - Packages to include
# IS_CORE - Set to TRUE for the Core API package which needs special treatment
# API_ROOT - Where to base the documentation (jre or jdk)
# DEST_DIR - A directory relative to the API root
# OVERVIEW - Path to a html overview file
# TITLE - Default title to use for the more specific versions below
# WINDOW_TITLE - Title to use in -windowtitle. Computed from TITLE if empty.
# HEADER_TITLE - Title to use in -header. Computed from TITLE if empty.
# DOC_TITLE - Title to use in -doctitle. Computed from TITLE if empty.
# FIRST_COPYRIGHT_YEAR - First year this bundle was introduced
# DISABLED_DOCLINT - Doclint warnings to exclude.
# DOCLINT_PACKAGES - Optional -Xdoclint/package value
# SPLIT_INDEX - Enable -splitIndex (split index-all.html if it is too large)
# BOTTOM_COPYRIGHT_URL - Copyright URL to use in -bottom
# BOTTOM_TEXT - Extra text to use in -bottom
# EXTRA_TOP - Additional -top data
#
SetupJavadocGeneration = $(NamedParamsMacroTemplate)
define SetupJavadocGenerationBody
ifeq ($$($1_IS_CORE), TRUE)
$1_JAVA := $$(JAVA)
$1_OUTPUT_DIRNAME := api
else
$1_JAVA := $$(JAVA_SMALL)
$1_OUTPUT_DIRNAME := $$($1_API_ROOT)/api/$$($1_DEST_DIR)
# Compute a relative path to core root.
# The non-core api javadocs need to be able to access the root of the core
# api directory, so for jdk/api or jre/api to get to the core api/
# directory we would use this
$1_RELATIVE_CORE_DIR := $$(strip $$(subst $$(call DirToDotDot, \
$$(JAVADOC_OUTPUTDIR))/,, $$(call DirToDotDot, \
$$(JAVADOC_OUTPUTDIR)/$$($1_OUTPUT_DIRNAME))))
$1_DEPS += $(CORE_INDEX_FILE)
endif
ifneq ($$($1_OVERVIEW), )
$1_DEPS += $$($1_OVERVIEW)
endif
ifeq ($$($1_DISABLED_DOCLINT), )
$1_DOCLINT := all
else
# Create a string like "all,-syntax,-html"
$1_DOCLINT := all,$$(call CommaList, $$(addprefix -, $$($1_DISABLED_DOCLINT)))
endif
ifeq ($$($1_DOC_TITLE), )
$1_DOC_TITLE := $$($1_TITLE)
endif
ifeq ($$($1_WINDOW_TITLE), )
$1_WINDOW_TITLE := $$(strip $$(subst ™,, $$($1_TITLE)))
endif
ifeq ($$($1_HEADER_TITLE), )
$1_HEADER_TITLE := $$(strip $$(subst ™,, $$($1_TITLE)))
endif
$1_HEADER := $$($1_HEADER_TITLE)
ifeq ($$($1_BOTTOM_TEXT), )
$1_BOTTOM_TEXT := $(COMMON_BOTTOM_TEXT)
endif
$1_BOTTOM := $$(call GenerateBottom, $$($1_FIRST_COPYRIGHT_YEAR), \
$$($1_BOTTOM_COPYRIGHT_URL), $$($1_BOTTOM_TEXT))
# The index.html, options, and packages files
$1_INDEX_FILE := $$(JAVADOC_OUTPUTDIR)/$$($1_OUTPUT_DIRNAME)/index.html
$1_OPTIONS_FILE := $$(SUPPORT_OUTPUTDIR)/docs/$1.options
$1_PACKAGES_FILE := $$(SUPPORT_OUTPUTDIR)/docs/$1.packages
$1_PACKAGES_VARDEPS := $$($1_PACKAGES)
$1_PACKAGES_VARDEPS_FILE := $$(call DependOnVariable, $1_PACKAGES_VARDEPS, \
$$($1_PACKAGES_FILE).vardeps)
# Rule for creating a file with the package names in it
$$($1_PACKAGES_FILE): $$($1_PACKAGES_VARDEPS_FILE)
$$(call LogInfo, Creating Javadoc package file for $1)
$$(call MakeDir, $$(@D))
$$(ECHO) $$($1_PACKAGES) | $$(TR) ' ' '\n' > $$@
$1_OPTIONS_VARDEPS := $$($1_EXTRA_TOP) \
$$($DOCROOTPARENT_FLAG) $$(JAVADOC_BASE_URL) $$($1_DISABLED_DOCLINT) \
$$($1_DOCLINT_PACKAGES) $$(JAVADOC_SOURCE_DIRS) $$($1_MODULES) \
$$($1_SPLIT_INDEX) $$($1_OVERVIEW) $$($1_DOC_TITLE) $$($1_WINDOW_TITLE) \
$$(DRAFT_WINTITLE) $$($1_HEADER) $$(DRAFT_HEADER) $$($1_BOTTOM) \
$$(DRAFT_BOTTOM)) $$($1_RELATIVE_CORE_DIR) $$(JAVADOC_OUTPUTDIR)
$1_OPTIONS_VARDEPS_FILE := $$(call DependOnVariable, $1_OPTIONS_VARDEPS, \
$$($1_OPTIONS_FILE).vardeps)
# Rule for creating a file with javadoc options in it
$$($1_OPTIONS_FILE): $$($1_OPTIONS_VARDEPS_FILE)
$$(call LogInfo, Creating Javadoc options file for $1)
$$(call MakeDir, $$(@D))
$$(RM) $$@
$$(call AddOption, -XDignore.symbol.file=true)
ifneq ($$(LOG_LEVEL), trace)
$$(call AddOption, -quiet)
endif
$$(call AddOption, -use)
$$(call AddOption, -keywords)
ifneq ($$($DOCROOTPARENT_FLAG), )
$$(call AddOption, -Xdocrootparent, $(JAVADOC_BASE_URL))
endif
# In order to get a specific ordering it's necessary to specify the total
# ordering of tags as the tags are otherwise ordered in order of definition.
$$(call AddOption, -tag, beaninfo:X)
$$(call AddOption, -tag, revised:X)
$$(call AddOption, -tag, since.unbundled:X)
$$(call AddOption, -tag, spec:X)
$$(call AddOption, -tag, specdefault:X)
$$(call AddOption, -tag, Note:X)
$$(call AddOption, -tag, ToDo:X)
$$(call AddOption, -tag, apiNote:a:API Note:)
$$(call AddOption, -tag, implSpec:a:Implementation Requirements:)
$$(call AddOption, -tag, implNote:a:Implementation Note:)
$$(call AddOption, -tag, param)
$$(call AddOption, -tag, return)
$$(call AddOption, -tag, throws)
$$(call AddOption, -tag, since)
$$(call AddOption, -tag, version)
$$(call AddOption, -tag, serialData)
$$(call AddOption, -tag, factory)
$$(call AddOption, -tag, see)
$$(call AddOption, -tag, \
jvms:a:See The Java™ Virtual Machine Specification:)
$$(call AddOption, -tag, \
jls:a:See The Java™ Language Specification:)
$$(call AddOption, -Xdoclint:$$($1_DOCLINT))
ifneq ($$($1_DOCLINT_PACKAGES), )
$$(call AddOption, -Xdoclint/package:$$(call CommaList, $$($1_DOCLINT_PACKAGES)))
endif
$$(call AddOption, --system, none)
$$(call AddOption, --module-source-path, $$(subst ",, $$(call PathList, $$(JAVADOC_SOURCE_DIRS))))
$$(call AddOption, --add-modules, $$(call CommaList, $$($1_MODULES)))
$$(call AddOption, -encoding, ISO-8859-1)
$$(call AddOption, -breakiterator)
$$(call AddOption, -serialwarn)
$$(call AddOption, -notimestamp)
ifneq ($$($1_SPLIT_INDEX), )
$$(call AddOption, -splitIndex)
endif
ifneq ($$($1_OVERVIEW), )
$$(call AddOption, -overview, $$($1_OVERVIEW))
endif
$$(call AddOption, -doctitle, $$($1_DOC_TITLE))
$$(call AddOption, -windowtitle, $$($1_WINDOW_TITLE) $$(DRAFT_WINTITLE))
$$(call AddOption, -header, $$($1_HEADER)$$(DRAFT_HEADER))
$$(call AddOption, -bottom, $$($1_BOTTOM)$$(DRAFT_BOTTOM))
ifneq ($$($1_RELATIVE_CORE_DIR), )
$$(call AddOption, -linkoffline, $$($1_RELATIVE_CORE_DIR)/api, $$(JAVADOC_OUTPUTDIR)/api/)
endif
ifneq ($$($1_EXTRA_TOP), )
$$(call AddOption, -top, $$($1_EXTRA_TOP))
endif
$1_PACKAGE_DEPS := $$(call CacheFind, $$(wildcard $$(foreach p, \
$$(subst .,/,$$(strip $$($1_PACKAGES))), \
$$(addsuffix /$$p, $$(wildcard $$(JAVADOC_SOURCE_DIRS))))))
# Rule for actually running javadoc
$$($1_INDEX_FILE): $$($1_OPTIONS_FILE) $$($1_PACKAGES_FILE) \
$$($1_PACKAGE_DEPS) $$($1_DEPS)
$$(call LogWarn, Generating Javadoc for $$($1_OUTPUT_DIRNAME))
$$(call MakeDir, $$(@D))
ifneq ($$(findstring $$(LOG_LEVEL), debug trace),)
$$(ECHO) "Contents of $$($1_OPTIONS_FILE):" `$$(CAT) $$($1_OPTIONS_FILE)`
$$(ECHO) "Contents of $$($1_PACKAGES_FILE):" `$$(CAT) $$($1_PACKAGES_FILE)`
endif
$$(call ExecuteWithLog, $$(SUPPORT_OUTPUTDIR)/docs/$1.javadoc, \
$$($1_JAVA) -Djava.awt.headless=true $(NEW_JAVADOC) -d $$(@D) \
@$$($1_OPTIONS_FILE) @$$($1_PACKAGES_FILE))
$$(TOUCH) $$($1_INDEX_FILE)
# The output returned will be the index.html file
$1 := $$($1_INDEX_FILE)
endef
################################################################################
# Core packages are all packages beginning with java, javax or org, except a few
# excludes.
ALL_PKG_DIRS := $(dir $(filter %.java, $(call CacheFind, \
$(wildcard $(JAVADOC_SOURCE_DIRS)))))
ALL_SRC_PREFIXES := $(addsuffix /%, $(wildcard $(JAVADOC_SOURCE_DIRS)))
ALL_PKG_DIRNAMES := $(foreach prefix, $(ALL_SRC_PREFIXES), \
$(patsubst $(prefix),%, $(filter $(prefix), $(ALL_PKG_DIRS))))
ALL_PACKAGES := $(sort $(subst /,., $(patsubst %/, %, $(ALL_PKG_DIRNAMES))))
JAVA_PACKAGES := $(filter java.%, $(ALL_PACKAGES))
JAVAX_PACKAGES := $(filter javax.%, $(ALL_PACKAGES))
ORG_PACKAGES := $(filter org.%, $(ALL_PACKAGES))
# Allow custom makefile to add more excluded packages
CORE_EXCLUDED_PACKAGES += \
java.awt.dnd.peer \
java.awt.peer \
javax.smartcardio \
org.jcp.xml.dsig.internal% \
org.w3c.dom.css \
org.w3c.dom.html \
org.w3c.dom.stylesheets \
org.w3c.dom.xpath \
#
CORE_PACKAGES := $(filter-out $(CORE_EXCLUDED_PACKAGES), \
$(JAVA_PACKAGES) $(JAVAX_PACKAGES) $(ORG_PACKAGES))
$(eval $(call SetupJavadocGeneration, coredocs, \
MODULES := java.se.ee, \
PACKAGES := $(CORE_PACKAGES), \
IS_CORE := TRUE, \
OVERVIEW := $(JDK_TOPDIR)/src/java.base/share/classes/overview-core.html, \
WINDOW_TITLE := Java Platform SE $(VERSION_SPECIFICATION), \
HEADER_TITLE := Java™ Platform
Standard Ed. $(VERSION_SPECIFICATION), \
DOC_TITLE := Java™ Platform$(COMMA) Standard Edition \
$(VERSION_SPECIFICATION)
API Specification, \
FIRST_COPYRIGHT_YEAR := 1993, \
DISABLED_DOCLINT := accessibility html missing syntax, \
DOCLINT_PACKAGES := -org.omg.* jdk.internal.logging.*, \
SPLIT_INDEX := TRUE, \
BOTTOM_COPYRIGHT_URL := $(CORE_BOTTOM_COPYRIGHT_URL), \
BOTTOM_TEXT := $(CORE_BOTTOM_TEXT), \
EXTRA_TOP := $(CORE_TOP_EARLYACCESS), \
))
TARGETS += $(coredocs)
################################################################################
$(eval $(call SetupJavadocGeneration, docletapi, \
MODULES := jdk.javadoc, \
PACKAGES := \
jdk.javadoc.doclet \
jdk.javadoc.doclet.taglet \
jdk.javadoc.doclets, \
API_ROOT := jdk, \
DEST_DIR := javadoc/doclet, \
TITLE := Doclet API, \
FIRST_COPYRIGHT_YEAR := 1993, \
))
TARGETS += $(docletapi)
################################################################################
$(eval $(call SetupJavadocGeneration, old-docletapi, \
MODULES := jdk.javadoc, \
PACKAGES := com.sun.javadoc, \
API_ROOT := jdk, \
DEST_DIR := javadoc/old/doclet, \
TITLE := Doclet API, \
FIRST_COPYRIGHT_YEAR := 1993, \
))
TARGETS += $(old-docletapi)
################################################################################
$(eval $(call SetupJavadocGeneration, tagletapi, \
MODULES := jdk.javadoc, \
PACKAGES := com.sun.tools.doclets, \
API_ROOT := jdk, \
DEST_DIR := javadoc/old/taglet, \
TITLE := Taglet API, \
FIRST_COPYRIGHT_YEAR := 1993, \
))
TARGETS += $(tagletapi)
################################################################################
$(eval $(call SetupJavadocGeneration, domapi, \
MODULES := \
java.xml \
jdk.xml.dom, \
PACKAGES := \
org.w3c.dom \
org.w3c.dom.bootstrap \
org.w3c.dom.ls \
org.w3c.dom.ranges \
org.w3c.dom.traversal \
org.w3c.dom.html \
org.w3c.dom.stylesheets \
org.w3c.dom.css \
org.w3c.dom.events \
org.w3c.dom.views, \
API_ROOT := jre, \
DEST_DIR := plugin/dom, \
TITLE := Common DOM API, \
FIRST_COPYRIGHT_YEAR := 2005, \
DISABLED_DOCLINT := accessibility html missing, \
SPLIT_INDEX := TRUE, \
))
TARGETS += $(domapi)
################################################################################
$(eval $(call SetupJavadocGeneration, jdi, \
MODULES := jdk.jdi, \
PACKAGES := \
com.sun.jdi \
com.sun.jdi.event \
com.sun.jdi.request \
com.sun.jdi.connect \
com.sun.jdi.connect.spi, \
API_ROOT := jdk, \
DEST_DIR := jpda/jdi, \
OVERVIEW := $(JDK_TOPDIR)/src/jdk.jdi/share/classes/jdi-overview.html, \
TITLE := Java™ Debug Interface, \
FIRST_COPYRIGHT_YEAR := 1999, \
DISABLED_DOCLINT := accessibility missing syntax, \
SPLIT_INDEX := TRUE, \
))
TARGETS += $(jdi)
################################################################################
$(eval $(call SetupJavadocGeneration, jaas, \
MODULES := jdk.security.auth, \
PACKAGES := \
com.sun.security.auth \
com.sun.security.auth.callback \
com.sun.security.auth.login \
com.sun.security.auth.module, \
API_ROOT := jre, \
DEST_DIR := security/jaas/spec, \
OVERVIEW := $(JDK_TOPDIR)/src/jdk.security.auth/share/classes/jaas-overview.html, \
TITLE := Java™ Authentication and Authorization Service, \
FIRST_COPYRIGHT_YEAR := 1998, \
DISABLED_DOCLINT := missing, \
))
TARGETS += $(jaas)
################################################################################
$(eval $(call SetupJavadocGeneration, jgss, \
MODULES := jdk.security.jgss, \
PACKAGES := com.sun.security.jgss, \
API_ROOT := jre, \
DEST_DIR := security/jgss/spec, \
OVERVIEW := $(JDK_TOPDIR)/src/java.security.jgss/share/classes/jgss-overview.html, \
TITLE := Java™ GSS-API Utilities, \
FIRST_COPYRIGHT_YEAR := 2000, \
))
TARGETS += $(jgss)
################################################################################
$(eval $(call SetupJavadocGeneration, smartcardio, \
MODULES := java.smartcardio, \
PACKAGES := javax.smartcardio, \
API_ROOT := jre, \
DEST_DIR := security/smartcardio/spec, \
TITLE := Java™ Smart Card I/O, \
FIRST_COPYRIGHT_YEAR := 2005, \
))
TARGETS += $(smartcardio)
################################################################################
$(eval $(call SetupJavadocGeneration, httpserver, \
MODULES := jdk.httpserver, \
PACKAGES := \
com.sun.net.httpserver \
com.sun.net.httpserver.spi, \
API_ROOT := jre, \
DEST_DIR := net/httpserver/spec, \
TITLE := Java™ HTTP Server, \
FIRST_COPYRIGHT_YEAR := 2005, \
DISABLED_DOCLINT := accessibility missing syntax, \
))
TARGETS += $(httpserver)
################################################################################
$(eval $(call SetupJavadocGeneration, jsobject, \
MODULES := jdk.jsobject, \
PACKAGES := netscape.javascript, \
API_ROOT := jre, \
DEST_DIR := plugin/jsobject, \
FIRST_COPYRIGHT_YEAR := 1993, \
TITLE := Java™ JSObject Doc, \
))
TARGETS += $(jsobject)
################################################################################
$(eval $(call SetupJavadocGeneration, mgmt, \
MODULES := jdk.management, \
PACKAGES := com.sun.management, \
API_ROOT := jre, \
DEST_DIR := management/extension, \
OVERVIEW := $(JDK_TOPDIR)/src/java.management/share/classes/mgmt-overview.html, \
TITLE := Monitoring and Management Interface for the Java™ Platform, \
FIRST_COPYRIGHT_YEAR := 2003, \
DISABLED_DOCLINT := accessibility missing reference, \
))
TARGETS += $(mgmt)
################################################################################
$(eval $(call SetupJavadocGeneration, attach, \
MODULES := jdk.attach, \
PACKAGES := \
com.sun.tools.attach \
com.sun.tools.attach.spi, \
API_ROOT := jdk, \
DEST_DIR := attach/spec, \
TITLE := Attach API, \
FIRST_COPYRIGHT_YEAR := 2005, \
DISABLED_DOCLINT := reference, \
))
TARGETS += $(attach)
################################################################################
$(eval $(call SetupJavadocGeneration, jconsole, \
MODULES := jdk.jconsole, \
PACKAGES := com.sun.tools.jconsole, \
API_ROOT := jdk, \
DEST_DIR := jconsole/spec, \
TITLE := JConsole API, \
FIRST_COPYRIGHT_YEAR := 2006, \
))
TARGETS += $(jconsole)
################################################################################
$(eval $(call SetupJavadocGeneration, jshellapi, \
MODULES := jdk.jshell, \
PACKAGES := \
jdk.jshell \
jdk.jshell.spi \
jdk.jshell.execution, \
API_ROOT := jdk, \
DEST_DIR := jshell, \
OVERVIEW := $(LANGTOOLS_TOPDIR)/src/jdk.jshell/share/classes/jdk/jshell/overview.html, \
TITLE := JShell API, \
FIRST_COPYRIGHT_YEAR := 2015, \
))
TARGETS += $(jshellapi)
################################################################################
$(eval $(call SetupJavadocGeneration, treeapi, \
MODULES := jdk.compiler, \
PACKAGES := \
com.sun.source.doctree \
com.sun.source.tree \
com.sun.source.util, \
API_ROOT := jdk, \
DEST_DIR := javac/tree, \
TITLE := Compiler Tree API, \
FIRST_COPYRIGHT_YEAR := 2005, \
SPLIT_INDEX := TRUE, \
))
TARGETS += $(treeapi)
################################################################################
$(eval $(call SetupJavadocGeneration, nashornapi, \
MODULES := jdk.scripting.nashorn, \
PACKAGES := \
jdk.nashorn.api.scripting \
jdk.nashorn.api.tree, \
API_ROOT := jdk, \
DEST_DIR := nashorn, \
TITLE := Nashorn API, \
FIRST_COPYRIGHT_YEAR := 2014, \
SPLIT_INDEX := TRUE, \
))
TARGETS += $(nashornapi)
################################################################################
$(eval $(call SetupJavadocGeneration, dynalinkapi, \
MODULES := jdk.dynalink, \
PACKAGES := \
jdk.dynalink \
jdk.dynalink.beans \
jdk.dynalink.linker \
jdk.dynalink.linker.support \
jdk.dynalink.support, \
API_ROOT := jdk, \
DEST_DIR := dynalink, \
TITLE := Dynalink API, \
FIRST_COPYRIGHT_YEAR := 2015, \
))
TARGETS += $(dynalinkapi)
################################################################################
$(eval $(call SetupJavadocGeneration, sctp, \
MODULES := jdk.sctp, \
PACKAGES := com.sun.nio.sctp, \
API_ROOT := jre, \
DEST_DIR := nio/sctp/spec, \
TITLE := SCTP API, \
FIRST_COPYRIGHT_YEAR := 2009, \
))
TARGETS += $(sctp)
################################################################################
$(eval $(call SetupJavadocGeneration, jaccess, \
MODULES := jdk.accessibility, \
PACKAGES := com.sun.java.accessibility.util, \
API_ROOT := jre, \
DEST_DIR := accessibility/jaccess/spec, \
TITLE := JACCESS API, \
FIRST_COPYRIGHT_YEAR := 2002, \
))
TARGETS += $(jaccess)
################################################################################
$(eval $(call SetupJavadocGeneration, jdknet, \
MODULES := jdk.net, \
PACKAGES := jdk.net, \
API_ROOT := jre, \
DEST_DIR := net/socketoptions/spec, \
TITLE := jdk.net API, \
FIRST_COPYRIGHT_YEAR := 2014, \
DISABLED_DOCLINT := missing, \
))
TARGETS += $(jdknet)
################################################################################
# TODO: Need to decide when the plugin API is ready to publish as experimental API.
# This target is temporarily added for internal use for now.
$(eval $(call SetupJavadocGeneration, jlinkplugins, \
MODULES := jdk.jlink, \
PACKAGES := jdk.tools.jlink.plugin, \
API_ROOT := jdk, \
DEST_DIR := jlink, \
TITLE := JLink Plugin API - EXPERIMENTAL, \
FIRST_COPYRIGHT_YEAR := 2015, \
DISABLED_DOCLINT := html missing syntax, \
))
TARGETS += $(jlinkplugins)
################################################################################
# Copy JDWP html file
JDWP_HTML := $(SUPPORT_OUTPUTDIR)/gensrc/jdk.jdi/jdwp-protocol.html
$(eval $(call SetupCopyFiles, COPY_JDWP_HTML, \
FILES := $(JDWP_HTML), \
DEST := $(JAVADOC_OUTPUTDIR)/platform/jpda/jdwp, \
))
COPY_TARGETS += $(COPY_JDWP_HTML)
################################################################################
# Copy JVMTI html file
# Pick jvmti.html from any jvm variant, they are all the same.
JVMTI_HTML := $(firstword \
$(wildcard $(HOTSPOT_OUTPUTDIR)/variant-*/gensrc/jvmtifiles/jvmti.html))
$(eval $(call SetupCopyFiles, COPY_JVMTI_HTML, \
FILES := $(JVMTI_HTML), \
DEST := $(JAVADOC_OUTPUTDIR)/platform/jvmti, \
))
COPY_TARGETS += $(COPY_JVMTI_HTML)
################################################################################
# Optional target which bundles all generated javadocs into a zip archive.
# The dependency on docs is handled in Main.gmk.
# Add the core docs as prerequisite to the archive to trigger a rebuild
# if the core docs were rebuilt. Ideally any doc rebuild should trigger
# this, but the way prerequisites are currently setup in this file, that
# is hard to achieve.
JAVADOC_ARCHIVE_NAME := jdk-$(VERSION_STRING)-docs.zip
JAVADOC_ARCHIVE_ASSEMBLY_DIR := $(SUPPORT_OUTPUTDIR)/docs/zip-docs
JAVADOC_ARCHIVE_DIR := $(OUTPUT_ROOT)/bundles
JAVADOC_ARCHIVE := $(JAVADOC_ARCHIVE_DIR)/$(JAVADOC_ARCHIVE_NAME)
$(JAVADOC_ARCHIVE): $(CORE_INDEX_FILE)
$(call LogInfo, Compressing javadoc to single $(JAVADOC_ARCHIVE_NAME))
$(MKDIR) -p $(JAVADOC_ARCHIVE_DIR)
$(RM) -r $(JAVADOC_ARCHIVE_ASSEMBLY_DIR)
$(MKDIR) -p $(JAVADOC_ARCHIVE_ASSEMBLY_DIR)
all_roots=`$(FIND) $(JAVADOC_OUTPUTDIR) | $(GREP) index.html | grep -v old/doclet`; \
pushd $(JAVADOC_ARCHIVE_ASSEMBLY_DIR); \
for index_file in $${all_roots} ; do \
target_dir=`dirname $${index_file}`; \
name=`$(ECHO) $${target_dir} | $(SED) "s;/spec;;" | $(SED) "s;.*/;;"`; \
$(LN) -s $${target_dir} $${name}; \
done; \
$(ZIP) -q -r $(JAVADOC_ARCHIVE) * ; \
popd ;
ZIP_TARGETS += $(JAVADOC_ARCHIVE)
################################################################################
# Hook to include the corresponding custom file, if present.
$(eval $(call IncludeCustomExtension, , Javadoc.gmk))
################################################################################
docs-javadoc: $(TARGETS)
docs-copy: $(COPY_TARGETS)
docs-zip: $(ZIP_TARGETS)
all: docs-javadoc docs-copy docs-zip
.PHONY: default all docs-javadoc docs-copy docs-zip