make/Javadoc.gmk
changeset 42135 484c28d7fd1b
parent 42134 bbcdb49521b1
child 42136 f872c8278074
equal deleted inserted replaced
42134:bbcdb49521b1 42135:484c28d7fd1b
    48       #
    48       #
    49 
    49 
    50 # Should we use -Xdocrootparent? Allow custom to overwrite.
    50 # Should we use -Xdocrootparent? Allow custom to overwrite.
    51 DOCROOTPARENT_FLAG = TRUE
    51 DOCROOTPARENT_FLAG = TRUE
    52 
    52 
    53 # The core api index file is the target for the core api javadocs rule
       
    54 # and needs to be defined early so that all other javadoc rules may
       
    55 # depend on it.
       
    56 CORE_INDEX_FILE := $(JAVADOC_OUTPUTDIR)/api/index.html
       
    57 
       
    58 # URLs
    53 # URLs
    59 JAVADOC_BASE_URL := http://docs.oracle.com/javase/$(VERSION_SPECIFICATION)/docs
    54 JAVADOC_BASE_URL := http://docs.oracle.com/javase/$(VERSION_SPECIFICATION)/docs
    60 BUG_SUBMIT_URL := http://bugreport.java.com/bugreport/
    55 BUG_SUBMIT_URL := http://bugreport.java.com/bugreport/
    61 
    56 
    62 ################################################################################
    57 ################################################################################
    68 
    63 
    69 COMMON_BOTTOM_TEXT := $(BUG_SUBMIT_LINE)<br> Java is a trademark or registered \
    64 COMMON_BOTTOM_TEXT := $(BUG_SUBMIT_LINE)<br> Java is a trademark or registered \
    70     trademark of $(FULL_COMPANY_NAME) in the US and other countries.
    65     trademark of $(FULL_COMPANY_NAME) in the US and other countries.
    71 
    66 
    72 CORE_BOTTOM_COPYRIGHT_URL := {@docroot}/../legal/cpyr.html
    67 CORE_BOTTOM_COPYRIGHT_URL := {@docroot}/../legal/cpyr.html
    73 CORE_BOTTOM_TEXT := $(BUG_SUBMIT_LINE) \
    68 CORE_BOTTOM_TEXT := \
    74 <br>For further API reference and developer documentation, see \
    69     $(BUG_SUBMIT_LINE) \
    75 <a href="$(JAVADOC_BASE_URL)/index.html" target="_blank">Java SE \
    70     <br>For further API reference and developer documentation, see \
    76 Documentation</a>. That documentation contains more detailed, \
    71     <a href="$(JAVADOC_BASE_URL)/index.html" target="_blank">Java SE \
    77 developer-targeted descriptions, with conceptual overviews, definitions of \
    72     Documentation</a>. That documentation contains more detailed, \
    78 terms, workarounds, and working code examples.
    73     developer-targeted descriptions, with conceptual overviews, definitions of \
       
    74     terms, workarounds, and working code examples.
    79 
    75 
    80 ifeq ($(VERSION_IS_GA), true)
    76 ifeq ($(VERSION_IS_GA), true)
    81   DRAFT_HEADER :=
    77   DRAFT_MARKER :=
    82   DRAFT_BOTTOM :=
    78   DRAFT_WINDOW_TITLE_MARKER :=
    83   DRAFT_WINTITLE :=
    79   EARLYACCESS_TOP :=
    84   CORE_TOP_EARLYACCESS :=
       
    85 else
    80 else
    86   # We need a draft format when not building the GA version.
    81   # We need a draft format when not building the GA version.
    87   DRAFT_HEADER := <br><strong>DRAFT&nbsp;$(VERSION_STRING)</strong>
    82   DRAFT_MARKER := <br><strong>DRAFT&nbsp;$(VERSION_STRING)</strong>
    88   DRAFT_BOTTOM := <br><strong>DRAFT&nbsp;$(VERSION_STRING)</strong>
       
    89   ifeq ($(VERSION_BUILD), 0)
    83   ifeq ($(VERSION_BUILD), 0)
    90     DRAFT_WINTITLE := [ad-hoc build]
    84     DRAFT_WINDOW_TITLE_MARKER := $(SPACE)[ad-hoc build]
    91   else
    85   else
    92     DRAFT_WINTITLE := [build $(VERSION_BUILD)]
    86     DRAFT_WINDOW_TITLE_MARKER := $(SPACE)[build $(VERSION_BUILD)]
    93   endif
    87   endif
    94   CORE_TOP_EARLYACCESS := \
    88   EARLYACCESS_TOP := \
    95 <div style="background-color: $$(HASH)EEEEEE"> \
    89       <div style="background-color: $$(HASH)EEEEEE"><div style="padding: 6px; \
    96 <div style="padding: 6px; margin-top: 2px; margin-bottom: 6px; \
    90       margin-top: 2px; margin-bottom: 6px; margin-left: 6px; margin-right: \
    97 margin-left: 6px; margin-right: 6px; text-align: justify; font-size: 80%; \
    91       6px; text-align: justify; font-size: 80%; font-family: Helvetica, Arial, \
    98 font-family: Helvetica, Arial, sans-serif; font-weight: normal;"> \
    92       sans-serif; font-weight: normal;">Please note that the specifications \
    99 Please note that the specifications and other information contained herein are \
    93       and other information contained herein are not final and are subject to \
   100 not final and are subject to change. The information is being made available \
    94       change. The information is being made available to you solely for \
   101 to you solely for purpose of evaluation.</div></div>
    95       purpose of evaluation.</div></div>
   102 endif
    96 endif
   103 
    97 
   104 ################################################################################
    98 ################################################################################
       
    99 # Special treatment for the core package list. All separate "small" javadoc
       
   100 # invocation needs to be able to see the core package list.
       
   101 
       
   102 ALL_PKG_DIRS := $(dir $(filter %.java, $(call CacheFind, \
       
   103     $(wildcard $(JAVADOC_SOURCE_DIRS)))))
       
   104 ALL_SRC_PREFIXES := $(addsuffix /%, $(wildcard $(JAVADOC_SOURCE_DIRS)))
       
   105 ALL_PKG_DIRNAMES := $(foreach prefix, $(ALL_SRC_PREFIXES), \
       
   106     $(patsubst $(prefix),%, $(filter $(prefix), $(ALL_PKG_DIRS))))
       
   107 ALL_PACKAGES := $(sort $(subst /,., $(patsubst %/, %, $(ALL_PKG_DIRNAMES))))
       
   108 
       
   109 # Core packages are all packages beginning with java, javax or org, except a few
       
   110 # excludes.
       
   111 JAVA_PACKAGES := $(filter java.%, $(ALL_PACKAGES))
       
   112 JAVAX_PACKAGES := $(filter javax.%, $(ALL_PACKAGES))
       
   113 ORG_PACKAGES := $(filter org.%, $(ALL_PACKAGES))
       
   114 
       
   115 # Allow custom makefile to add more excluded packages
       
   116 CORE_EXCLUDED_PACKAGES += \
       
   117     java.awt.dnd.peer \
       
   118     java.awt.peer \
       
   119     javax.smartcardio \
       
   120     org.jcp.xml.dsig.internal% \
       
   121     org.w3c.dom.css \
       
   122     org.w3c.dom.html \
       
   123     org.w3c.dom.stylesheets \
       
   124     org.w3c.dom.xpath \
       
   125     #
       
   126 
       
   127 CORE_PACKAGES := $(filter-out $(CORE_EXCLUDED_PACKAGES), \
       
   128     $(JAVA_PACKAGES) $(JAVAX_PACKAGES) $(ORG_PACKAGES))
       
   129 
       
   130 CORE_PACKAGES_LIST_DIR := $(SUPPORT_OUTPUTDIR)/docs/core-packages
       
   131 CORE_PACKAGES_LIST_FILE := $(CORE_PACKAGES_LIST_DIR)/package-list
       
   132 
       
   133 CORE_PACKAGES_VARDEPS_FILE := $(call DependOnVariable, CORE_PACKAGES, \
       
   134     $(CORE_PACKAGES_LIST_FILE).vardeps)
       
   135 
       
   136 $(CORE_PACKAGES_LIST_FILE): $(CORE_PACKAGES_VARDEPS_FILE)
       
   137 	$(call MakeDir, $(@D))
       
   138 	$(eval $(call ListPathsSafely, CORE_PACKAGES, $@))
       
   139 
       
   140 ################################################################################
   105 # Support functions for SetupJavadocGeneration
   141 # Support functions for SetupJavadocGeneration
   106 
   142 
   107 # Print an option line to the target file
   143 # Generate the text used in the -bottom argument.
   108 # Arguments:
       
   109 # arg 1: the option name
       
   110 # arg 2-3: optional arguments to the option
       
   111 define AddOption
       
   112 	$(PRINTF) "%s$(if $(strip $2), '%s',)$(if $(strip $3), '%s',)\n" \
       
   113 	    "$(strip $1)"$(if $(strip $2), '$(strip $2)',)$(if $(strip $3), \
       
   114 	    '$(strip $3)',) >> $@
       
   115 endef
       
   116 
       
   117 # This function goes to great pains to exactly mimic the old behavior
       
   118 # in all details, including whitespace.
       
   119 # Note that COPYRIGHT_YEAR is the current year (from spec.gmk)
   144 # Note that COPYRIGHT_YEAR is the current year (from spec.gmk)
   120 # Arguments:
   145 # Arguments:
   121 # arg 1: first copyright year
   146 # arg 1: first copyright year
   122 # arg 2: copyright url (optional)
   147 # arg 2: copyright url (optional)
   123 # arg 3: free-form text snippet (optional)
   148 # arg 3: free-form text snippet (optional)
   128       $(COMPANY_ADDRESS). All rights reserved.</font>
   153       $(COMPANY_ADDRESS). All rights reserved.</font>
   129 endef
   154 endef
   130 
   155 
   131 # Speed up finding by filling cache
   156 # Speed up finding by filling cache
   132 $(eval $(call FillCacheFind, $(wildcard $(JAVADOC_SOURCE_DIRS))))
   157 $(eval $(call FillCacheFind, $(wildcard $(JAVADOC_SOURCE_DIRS))))
       
   158 
       
   159 # In order to get a specific ordering it's necessary to specify the total
       
   160 # ordering of tags as the tags are otherwise ordered in order of definition.
       
   161 DEFAULT_JAVADOC_TAGS := \
       
   162     -tag beaninfo:X \
       
   163     -tag revised:X \
       
   164     -tag since.unbundled:X \
       
   165     -tag spec:X \
       
   166     -tag specdefault:X \
       
   167     -tag Note:X \
       
   168     -tag ToDo:X \
       
   169     -tag 'apiNote:a:API Note:' \
       
   170     -tag 'implSpec:a:Implementation Requirements:' \
       
   171     -tag 'implNote:a:Implementation Note:' \
       
   172     -tag param \
       
   173     -tag return \
       
   174     -tag throws \
       
   175     -tag since \
       
   176     -tag version \
       
   177     -tag serialData \
       
   178     -tag factory \
       
   179     -tag see \
       
   180     -tag 'jvms:a:See <cite>The Java&trade; Virtual Machine Specification</cite>:' \
       
   181     -tag 'jls:a:See <cite>The Java&trade; Language Specification</cite>:' \
       
   182     #
       
   183 
       
   184 DEFAULT_JAVADOC_OPTIONS := -XDignore.symbol.file=true -use -keywords -notimestamp \
       
   185     -serialwarn -encoding ISO-8859-1 -breakiterator --system none
   133 
   186 
   134 ################################################################################
   187 ################################################################################
   135 # Setup make rules for running javadoc.
   188 # Setup make rules for running javadoc.
   136 #
   189 #
   137 # Parameter 1 is the name of the rule. This name is used as variable prefix,
   190 # Parameter 1 is the name of the rule. This name is used as variable prefix,
   169 
   222 
   170     # Compute a relative path to core root.
   223     # Compute a relative path to core root.
   171     # The non-core api javadocs need to be able to access the root of the core
   224     # The non-core api javadocs need to be able to access the root of the core
   172     # api directory, so for jdk/api or jre/api to get to the core api/
   225     # api directory, so for jdk/api or jre/api to get to the core api/
   173     # directory we would use this
   226     # directory we would use this
   174     $1_RELATIVE_CORE_DIR := $$(strip $$(subst $$(call DirToDotDot, \
   227     $1_RELATIVE_CORE_DIR := $$(call DirToDotDot, $$($1_OUTPUT_DIRNAME))/api
   175         $$(JAVADOC_OUTPUTDIR))/,, $$(call DirToDotDot, \
   228 
   176         $$(JAVADOC_OUTPUTDIR)/$$($1_OUTPUT_DIRNAME))))
   229     # We need to tell javadoc the directory in which to find the core package-list
   177 
   230     $1_OPTIONS += -linkoffline $$($1_RELATIVE_CORE_DIR) $$(CORE_PACKAGES_LIST_DIR)
   178     $1_DEPS += $(CORE_INDEX_FILE)
   231 
   179   endif
   232     $1_DEPS += $(CORE_PACKAGES_LIST_FILE)
   180 
   233   endif
   181   ifneq ($$($1_OVERVIEW), )
   234 
   182     $1_DEPS +=  $$($1_OVERVIEW)
   235   $1_OPTIONS += --add-modules $$(call CommaList, $$($1_MODULES))
   183   endif
   236 
   184 
   237   ifneq ($$(LOG_LEVEL), trace)
   185   ifeq ($$($1_DISABLED_DOCLINT), )
   238     $1_OPTIONS += -quiet
   186     $1_DOCLINT := all
   239   endif
   187   else
   240 
   188     # Create a string like "all,-syntax,-html"
   241   ifneq ($$($1_DISABLED_DOCLINT), )
   189     $1_DOCLINT := all,$$(call CommaList, $$(addprefix -, $$($1_DISABLED_DOCLINT)))
   242     # Create a string like ",-syntax,-html"
       
   243     $1_DOCLINT_EXCEPTIONS := ,$$(call CommaList, $$(addprefix -, $$($1_DISABLED_DOCLINT)))
       
   244   endif
       
   245   $1_OPTIONS += -Xdoclint:all$$($1_DOCLINT_EXCEPTIONS)
       
   246 
       
   247   ifneq ($$($1_DOCLINT_PACKAGES), )
       
   248     $1_OPTIONS += -Xdoclint/package:$$(call CommaList, $$($1_DOCLINT_PACKAGES))
   190   endif
   249   endif
   191 
   250 
   192   ifeq ($$($1_DOC_TITLE), )
   251   ifeq ($$($1_DOC_TITLE), )
   193     $1_DOC_TITLE := $$($1_TITLE)
   252     $1_DOC_TITLE := $$($1_TITLE)
   194   endif
   253   endif
       
   254   $1_OPTIONS += -doctitle '$$($1_DOC_TITLE)'
   195 
   255 
   196   ifeq ($$($1_WINDOW_TITLE), )
   256   ifeq ($$($1_WINDOW_TITLE), )
   197     $1_WINDOW_TITLE := $$(strip $$(subst &trade;,, $$($1_TITLE)))
   257     $1_WINDOW_TITLE := $$(strip $$(subst &trade;,, $$($1_TITLE)))
   198   endif
   258   endif
       
   259   $1_OPTIONS += -windowtitle '$$($1_WINDOW_TITLE)$$(DRAFT_WINDOW_TITLE_MARKER)'
   199 
   260 
   200   ifeq ($$($1_HEADER_TITLE), )
   261   ifeq ($$($1_HEADER_TITLE), )
   201     $1_HEADER_TITLE := $$(strip $$(subst &trade;,, $$($1_TITLE)))
   262     $1_HEADER_TITLE := $$(strip $$(subst &trade;,, $$($1_TITLE)))
   202   endif
   263   endif
   203   $1_HEADER := <strong>$$($1_HEADER_TITLE)</strong>
   264   $1_OPTIONS += -header '<strong>$$($1_HEADER_TITLE)</strong>$$(DRAFT_MARKER)'
       
   265 
       
   266   ifneq ($$($1_EXTRA_TOP), )
       
   267     $1_OPTIONS += -top '$$($1_EXTRA_TOP)'
       
   268   endif
   204 
   269 
   205   ifeq ($$($1_BOTTOM_TEXT), )
   270   ifeq ($$($1_BOTTOM_TEXT), )
   206     $1_BOTTOM_TEXT := $(COMMON_BOTTOM_TEXT)
   271     $1_BOTTOM_TEXT := $(COMMON_BOTTOM_TEXT)
   207   endif
   272   endif
   208 
       
   209   $1_BOTTOM := $$(call GenerateBottom, $$($1_FIRST_COPYRIGHT_YEAR), \
   273   $1_BOTTOM := $$(call GenerateBottom, $$($1_FIRST_COPYRIGHT_YEAR), \
   210       $$($1_BOTTOM_COPYRIGHT_URL), $$($1_BOTTOM_TEXT))
   274       $$($1_BOTTOM_COPYRIGHT_URL), $$($1_BOTTOM_TEXT))
   211 
   275   $1_OPTIONS += -bottom '$$($1_BOTTOM)$$(DRAFT_MARKER)'
   212   # The index.html, options, and packages files
   276 
   213   $1_INDEX_FILE := $$(JAVADOC_OUTPUTDIR)/$$($1_OUTPUT_DIRNAME)/index.html
   277   ifneq ($$($1_OVERVIEW), )
   214   $1_OPTIONS_FILE := $$(SUPPORT_OUTPUTDIR)/docs/$1.options
   278     $1_OPTIONS += -overview $$($1_OVERVIEW)
   215   $1_PACKAGES_FILE := $$(SUPPORT_OUTPUTDIR)/docs/$1.packages
   279     $1_DEPS +=  $$($1_OVERVIEW)
   216 
   280   endif
   217   $1_PACKAGES_VARDEPS := $$($1_PACKAGES)
   281 
   218   $1_PACKAGES_VARDEPS_FILE := $$(call DependOnVariable, $1_PACKAGES_VARDEPS, \
   282   ifneq ($$($1_SPLIT_INDEX), )
   219        $$($1_PACKAGES_FILE).vardeps)
   283     $1_OPTIONS += -splitIndex
   220 
   284   endif
   221   # Rule for creating a file with the package names in it
   285 
   222   $$($1_PACKAGES_FILE): $$($1_PACKAGES_VARDEPS_FILE)
   286   ifneq ($$($DOCROOTPARENT_FLAG), )
   223 	$$(call LogInfo, Creating Javadoc package file for $1)
   287     $1_OPTIONS += -Xdocrootparent $(JAVADOC_BASE_URL)
   224 	$$(call MakeDir, $$(@D))
   288   endif
   225 	$$(ECHO) $$($1_PACKAGES) | $$(TR) ' ' '\n' > $$@
   289 
   226 
   290   $1_VARDEPS := $$($1_OPTIONS) $$($1_PACKAGES)
   227   $1_OPTIONS_VARDEPS := $$($1_EXTRA_TOP) \
   291   $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
   228       $$($DOCROOTPARENT_FLAG) $$(JAVADOC_BASE_URL) $$($1_DISABLED_DOCLINT) \
   292        $$(SUPPORT_OUTPUTDIR)/docs/$1.vardeps)
   229       $$($1_DOCLINT_PACKAGES) $$(JAVADOC_SOURCE_DIRS) $$($1_MODULES) \
       
   230       $$($1_SPLIT_INDEX) $$($1_OVERVIEW) $$($1_DOC_TITLE) $$($1_WINDOW_TITLE) \
       
   231       $$(DRAFT_WINTITLE) $$($1_HEADER) $$(DRAFT_HEADER) $$($1_BOTTOM) \
       
   232       $$(DRAFT_BOTTOM)) $$($1_RELATIVE_CORE_DIR) $$(JAVADOC_OUTPUTDIR)
       
   233   $1_OPTIONS_VARDEPS_FILE := $$(call DependOnVariable, $1_OPTIONS_VARDEPS, \
       
   234        $$($1_OPTIONS_FILE).vardeps)
       
   235 
       
   236   # Rule for creating a file with javadoc options in it
       
   237   $$($1_OPTIONS_FILE): $$($1_OPTIONS_VARDEPS_FILE)
       
   238 	$$(call LogInfo, Creating Javadoc options file for $1)
       
   239 	$$(call MakeDir, $$(@D))
       
   240 	$$(RM) $$@
       
   241 	$$(call AddOption, -XDignore.symbol.file=true)
       
   242         ifneq ($$(LOG_LEVEL), trace)
       
   243 	  $$(call AddOption, -quiet)
       
   244         endif
       
   245 	$$(call AddOption, -use)
       
   246 	$$(call AddOption, -keywords)
       
   247         ifneq ($$($DOCROOTPARENT_FLAG), )
       
   248 	  $$(call AddOption, -Xdocrootparent, $(JAVADOC_BASE_URL))
       
   249         endif
       
   250         # In order to get a specific ordering it's necessary to specify the total
       
   251         # ordering of tags as the tags are otherwise ordered in order of definition.
       
   252 	$$(call AddOption, -tag, beaninfo:X)
       
   253 	$$(call AddOption, -tag, revised:X)
       
   254 	$$(call AddOption, -tag, since.unbundled:X)
       
   255 	$$(call AddOption, -tag, spec:X)
       
   256 	$$(call AddOption, -tag, specdefault:X)
       
   257 	$$(call AddOption, -tag, Note:X)
       
   258 	$$(call AddOption, -tag, ToDo:X)
       
   259 	$$(call AddOption, -tag, apiNote:a:API Note:)
       
   260 	$$(call AddOption, -tag, implSpec:a:Implementation Requirements:)
       
   261 	$$(call AddOption, -tag, implNote:a:Implementation Note:)
       
   262 	$$(call AddOption, -tag, param)
       
   263 	$$(call AddOption, -tag, return)
       
   264 	$$(call AddOption, -tag, throws)
       
   265 	$$(call AddOption, -tag, since)
       
   266 	$$(call AddOption, -tag, version)
       
   267 	$$(call AddOption, -tag, serialData)
       
   268 	$$(call AddOption, -tag, factory)
       
   269 	$$(call AddOption, -tag, see)
       
   270 	$$(call AddOption, -tag, \
       
   271             jvms:a:See <cite> The Java&trade; Virtual Machine Specification</cite>:)
       
   272 	$$(call AddOption, -tag, \
       
   273             jls:a:See <cite> The Java&trade; Language Specification</cite>:)
       
   274 	$$(call AddOption, -Xdoclint:$$($1_DOCLINT))
       
   275         ifneq ($$($1_DOCLINT_PACKAGES), )
       
   276 	  $$(call AddOption, -Xdoclint/package:$$(call CommaList, $$($1_DOCLINT_PACKAGES)))
       
   277         endif
       
   278 	$$(call AddOption, --system, none)
       
   279 	$$(call AddOption, --module-source-path, $$(subst ",, $$(call PathList, $$(JAVADOC_SOURCE_DIRS))))
       
   280 	$$(call AddOption, --add-modules, $$(call CommaList, $$($1_MODULES)))
       
   281 	$$(call AddOption, -encoding, ISO-8859-1)
       
   282 	$$(call AddOption, -breakiterator)
       
   283 	$$(call AddOption, -serialwarn)
       
   284 	$$(call AddOption, -notimestamp)
       
   285         ifneq ($$($1_SPLIT_INDEX), )
       
   286 	  $$(call AddOption, -splitIndex)
       
   287         endif
       
   288         ifneq ($$($1_OVERVIEW), )
       
   289 	  $$(call AddOption, -overview, $$($1_OVERVIEW))
       
   290         endif
       
   291 	$$(call AddOption, -doctitle, $$($1_DOC_TITLE))
       
   292 	$$(call AddOption, -windowtitle, $$($1_WINDOW_TITLE) $$(DRAFT_WINTITLE))
       
   293 	$$(call AddOption, -header, $$($1_HEADER)$$(DRAFT_HEADER))
       
   294 	$$(call AddOption, -bottom, $$($1_BOTTOM)$$(DRAFT_BOTTOM))
       
   295         ifneq ($$($1_RELATIVE_CORE_DIR), )
       
   296 	  $$(call AddOption, -linkoffline, $$($1_RELATIVE_CORE_DIR)/api, $$(JAVADOC_OUTPUTDIR)/api/)
       
   297         endif
       
   298         ifneq ($$($1_EXTRA_TOP), )
       
   299 	  $$(call AddOption, -top, $$($1_EXTRA_TOP))
       
   300         endif
       
   301 
   293 
   302   $1_PACKAGE_DEPS := $$(call CacheFind, $$(wildcard $$(foreach p, \
   294   $1_PACKAGE_DEPS := $$(call CacheFind, $$(wildcard $$(foreach p, \
   303       $$(subst .,/,$$(strip $$($1_PACKAGES))), \
   295       $$(subst .,/,$$(strip $$($1_PACKAGES))), \
   304       $$(addsuffix /$$p, $$(wildcard $$(JAVADOC_SOURCE_DIRS))))))
   296       $$(addsuffix /$$p, $$(wildcard $$(JAVADOC_SOURCE_DIRS))))))
   305 
   297 
       
   298   # If there are many packages, use an @-file...
       
   299   ifneq ($$(word 17, $$($1_PACKAGES)), )
       
   300     $1_PACKAGES_FILE := $$(SUPPORT_OUTPUTDIR)/docs/$1.packages
       
   301     $1_PACKAGES_ARG := @$$($1_PACKAGES_FILE)
       
   302   else
       
   303     $1_PACKAGES_ARG := $$($1_PACKAGES)
       
   304   endif
       
   305 
       
   306   # The index.html which is a marker for all the output from javadoc.
       
   307   $1_INDEX_FILE := $$(JAVADOC_OUTPUTDIR)/$$($1_OUTPUT_DIRNAME)/index.html
       
   308 
   306   # Rule for actually running javadoc
   309   # Rule for actually running javadoc
   307   $$($1_INDEX_FILE): $$($1_OPTIONS_FILE) $$($1_PACKAGES_FILE) \
   310   $$($1_INDEX_FILE): $$($1_VARDEPS_FILE) $$($1_PACKAGE_DEPS) $$($1_DEPS)
   308     $$($1_PACKAGE_DEPS) $$($1_DEPS)
   311 	$$(call LogWarn, Generating Javadoc from $$(words $$($1_PACKAGES)) package(s) for $$($1_OUTPUT_DIRNAME))
   309 	$$(call LogWarn, Generating Javadoc for $$($1_OUTPUT_DIRNAME))
       
   310 	$$(call MakeDir, $$(@D))
   312 	$$(call MakeDir, $$(@D))
   311         ifneq ($$(findstring $$(LOG_LEVEL), debug trace),)
   313         ifneq ($$($1_PACKAGES_FILE), )
   312 	  $$(ECHO) "Contents of $$($1_OPTIONS_FILE):" `$$(CAT) $$($1_OPTIONS_FILE)`
   314 	  $$(eval $$(call ListPathsSafely, $1_PACKAGES, $$($1_PACKAGES_FILE)))
   313 	  $$(ECHO) "Contents of $$($1_PACKAGES_FILE):" `$$(CAT) $$($1_PACKAGES_FILE)`
       
   314         endif
   315         endif
   315 	$$(call ExecuteWithLog, $$(SUPPORT_OUTPUTDIR)/docs/$1.javadoc, \
   316 	$$(call ExecuteWithLog, $$(SUPPORT_OUTPUTDIR)/docs/$1.javadoc, \
   316 	    $$($1_JAVA) -Djava.awt.headless=true $(NEW_JAVADOC) -d $$(@D) \
   317 	    $$($1_JAVA) -Djava.awt.headless=true $(NEW_JAVADOC) -d $$(@D) \
   317 	    @$$($1_OPTIONS_FILE) @$$($1_PACKAGES_FILE))
   318 	        $$(DEFAULT_JAVADOC_TAGS) $$(DEFAULT_JAVADOC_OPTIONS) \
   318 	$$(TOUCH) $$($1_INDEX_FILE)
   319 	        --module-source-path $$(call PathList, $$(JAVADOC_SOURCE_DIRS)) \
       
   320 	        $$($1_OPTIONS) $$($1_PACKAGES_ARG))
   319 
   321 
   320   # The output returned will be the index.html file
   322   # The output returned will be the index.html file
   321   $1 := $$($1_INDEX_FILE)
   323   $1 := $$($1_INDEX_FILE)
   322 endef
   324 endef
   323 
   325 
   324 ################################################################################
   326 ################################################################################
   325 
       
   326 # Core packages are all packages beginning with java, javax or org, except a few
       
   327 # excludes.
       
   328 
       
   329 ALL_PKG_DIRS := $(dir $(filter %.java, $(call CacheFind, \
       
   330     $(wildcard $(JAVADOC_SOURCE_DIRS)))))
       
   331 ALL_SRC_PREFIXES := $(addsuffix /%, $(wildcard $(JAVADOC_SOURCE_DIRS)))
       
   332 ALL_PKG_DIRNAMES := $(foreach prefix, $(ALL_SRC_PREFIXES), \
       
   333     $(patsubst $(prefix),%, $(filter $(prefix), $(ALL_PKG_DIRS))))
       
   334 ALL_PACKAGES := $(sort $(subst /,., $(patsubst %/, %, $(ALL_PKG_DIRNAMES))))
       
   335 
       
   336 JAVA_PACKAGES := $(filter java.%, $(ALL_PACKAGES))
       
   337 JAVAX_PACKAGES := $(filter javax.%, $(ALL_PACKAGES))
       
   338 ORG_PACKAGES := $(filter org.%, $(ALL_PACKAGES))
       
   339 
       
   340 # Allow custom makefile to add more excluded packages
       
   341 CORE_EXCLUDED_PACKAGES += \
       
   342     java.awt.dnd.peer \
       
   343     java.awt.peer \
       
   344     javax.smartcardio \
       
   345     org.jcp.xml.dsig.internal% \
       
   346     org.w3c.dom.css \
       
   347     org.w3c.dom.html \
       
   348     org.w3c.dom.stylesheets \
       
   349     org.w3c.dom.xpath \
       
   350     #
       
   351 
       
   352 CORE_PACKAGES := $(filter-out $(CORE_EXCLUDED_PACKAGES), \
       
   353     $(JAVA_PACKAGES) $(JAVAX_PACKAGES) $(ORG_PACKAGES))
       
   354 
   327 
   355 $(eval $(call SetupJavadocGeneration, coredocs, \
   328 $(eval $(call SetupJavadocGeneration, coredocs, \
   356     MODULES := java.se.ee, \
   329     MODULES := java.se.ee, \
   357     PACKAGES := $(CORE_PACKAGES), \
   330     PACKAGES := $(CORE_PACKAGES), \
   358     IS_CORE := TRUE, \
   331     IS_CORE := TRUE, \
   365     DISABLED_DOCLINT := accessibility html missing syntax, \
   338     DISABLED_DOCLINT := accessibility html missing syntax, \
   366     DOCLINT_PACKAGES := -org.omg.* jdk.internal.logging.*, \
   339     DOCLINT_PACKAGES := -org.omg.* jdk.internal.logging.*, \
   367     SPLIT_INDEX := TRUE, \
   340     SPLIT_INDEX := TRUE, \
   368     BOTTOM_COPYRIGHT_URL := $(CORE_BOTTOM_COPYRIGHT_URL), \
   341     BOTTOM_COPYRIGHT_URL := $(CORE_BOTTOM_COPYRIGHT_URL), \
   369     BOTTOM_TEXT := $(CORE_BOTTOM_TEXT), \
   342     BOTTOM_TEXT := $(CORE_BOTTOM_TEXT), \
   370     EXTRA_TOP := $(CORE_TOP_EARLYACCESS), \
   343     EXTRA_TOP := $(EARLYACCESS_TOP), \
   371 ))
   344 ))
   372 
   345 
   373 TARGETS += $(coredocs)
   346 TARGETS += $(coredocs)
   374 
   347 
   375 ################################################################################
   348 ################################################################################
   731 
   704 
   732 COPY_TARGETS += $(COPY_JVMTI_HTML)
   705 COPY_TARGETS += $(COPY_JVMTI_HTML)
   733 
   706 
   734 ################################################################################
   707 ################################################################################
   735 # Optional target which bundles all generated javadocs into a zip archive.
   708 # Optional target which bundles all generated javadocs into a zip archive.
   736 # The dependency on docs is handled in Main.gmk.
       
   737 
       
   738 # Add the core docs as prerequisite to the archive to trigger a rebuild
       
   739 # if the core docs were rebuilt. Ideally any doc rebuild should trigger
       
   740 # this, but the way prerequisites are currently setup in this file, that
       
   741 # is hard to achieve.
       
   742 
   709 
   743 JAVADOC_ARCHIVE_NAME := jdk-$(VERSION_STRING)-docs.zip
   710 JAVADOC_ARCHIVE_NAME := jdk-$(VERSION_STRING)-docs.zip
   744 JAVADOC_ARCHIVE_ASSEMBLY_DIR := $(SUPPORT_OUTPUTDIR)/docs/zip-docs
   711 JAVADOC_ARCHIVE_ASSEMBLY_DIR := $(SUPPORT_OUTPUTDIR)/docs/zip-docs
   745 JAVADOC_ARCHIVE_DIR := $(OUTPUT_ROOT)/bundles
   712 JAVADOC_ARCHIVE_DIR := $(OUTPUT_ROOT)/bundles
   746 JAVADOC_ARCHIVE := $(JAVADOC_ARCHIVE_DIR)/$(JAVADOC_ARCHIVE_NAME)
   713 JAVADOC_ARCHIVE := $(JAVADOC_ARCHIVE_DIR)/$(JAVADOC_ARCHIVE_NAME)
   747 
   714 
   748 $(JAVADOC_ARCHIVE): $(CORE_INDEX_FILE)
   715 $(JAVADOC_ARCHIVE): $(TARGETS) $(COPY_TARGETS)
   749 	$(call LogInfo, Compressing javadoc to single $(JAVADOC_ARCHIVE_NAME))
   716 	$(call LogInfo, Compressing javadoc to single $(JAVADOC_ARCHIVE_NAME))
   750 	$(MKDIR) -p $(JAVADOC_ARCHIVE_DIR)
   717 	$(MKDIR) -p $(JAVADOC_ARCHIVE_DIR)
   751 	$(RM) -r $(JAVADOC_ARCHIVE_ASSEMBLY_DIR)
   718 	$(RM) -r $(JAVADOC_ARCHIVE_ASSEMBLY_DIR)
   752 	$(MKDIR) -p $(JAVADOC_ARCHIVE_ASSEMBLY_DIR)
   719 	$(MKDIR) -p $(JAVADOC_ARCHIVE_ASSEMBLY_DIR)
   753 	all_roots=`$(FIND) $(JAVADOC_OUTPUTDIR) | $(GREP) index.html | grep -v old/doclet`; \
   720 	all_roots=`$(FIND) $(JAVADOC_OUTPUTDIR) | $(GREP) index.html | grep -v old/doclet`; \