1 # Copyright (c) 1997, 2013, 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 
  25 include $(SPEC)
  26 include MakeBase.gmk
  27 
  28 #################################################################
  29 #
  30 # CORE_PKGS environment variable has been moved to the following file
  31 #
  32 include CORE_PKGS.gmk
  33 #
  34 # Load environment variables for API package names that are not part of
  35 # the Java SE platform
  36 #
  37 include NON_CORE_PKGS.gmk
  38 
  39 
  40 .SUFFIXES: # Delete the default suffixes
  41 .SUFFIXES: .java
  42 
  43 #
  44 # Definitions for $(DOCSDIR), $(MKDIR), $(BINDIR), etc.
  45 #
  46 
  47 DOCSDIR=$(OUTPUT_ROOT)/docs
  48 TEMPDIR=$(OUTPUT_ROOT)/docstemp
  49 
  50 JDK_SHARE_SRC=$(JDK_TOPDIR)/src/share
  51 JDK_SHARE_CLASSES=$(JDK_SHARE_SRC)/classes
  52 
  53 JDK_IMPSRC = $(JDK_OUTPUTDIR)/impsrc
  54 
  55 JDK_GENSRC = $(JDK_OUTPUTDIR)/gensrc
  56 
  57 HOTSPOT_DOCS_IMPORT_PATH=$(HOTSPOT_OUTPUTDIR)/docs
  58 
  59 BUILD_NUMBER=$(JDK_BUILD_NUMBER)
  60 
  61 JAVADOC_CMD = $(JAVA) \
  62     -Xmx1024m \
  63     -Djava.awt.headless=true \
  64     $(NEW_JAVADOC) \
  65     -bootclasspath $(JDK_OUTPUTDIR)/classes
  66 
  67 # Copyright year for beginning of Java and some of the apis
  68 # (Needed when creating the javadocs)
  69 FIRST_COPYRIGHT_YEAR = 1993
  70 DOMAPI_FIRST_COPYRIGHT_YEAR = 2005
  71 MIRROR_FIRST_COPYRIGHT_YEAR = 2004
  72 DOCLETAPI_FIRST_COPYRIGHT_YEAR = 1993
  73 TAGLETAPI_FIRST_COPYRIGHT_YEAR = 1993
  74 JDI_FIRST_COPYRIGHT_YEAR = 1999
  75 JAAS_FIRST_COPYRIGHT_YEAR = 1998
  76 JGSS_FIRST_COPYRIGHT_YEAR = 2000
  77 SMARTCARDIO_FIRST_COPYRIGHT_YEAR = 2005
  78 HTTPSERVER_FIRST_COPYRIGHT_YEAR = 2005
  79 MGMT_FIRST_COPYRIGHT_YEAR = 2003
  80 ATTACH_FIRST_COPYRIGHT_YEAR = 2005
  81 JCONSOLE_FIRST_COPYRIGHT_YEAR = 2006
  82 SCTPAPI_FIRST_COPYRIGHT_YEAR = 2009
  83 TRACING_FIRST_COPYRIGHT_YEAR = 2008
  84 TREEAPI_FIRST_COPYRIGHT_YEAR = 2005
  85 JNLP_FIRST_COPYRIGHT_YEAR = 1998
  86 PLUGIN2_FIRST_COPYRIGHT_YEAR = 2007
  87 JDKNET_FIRST_COPYRIGHT_YEAR = 2014
  88 
  89 # Oracle name
  90 FULL_COMPANY_NAME = Oracle and/or its affiliates
  91 
  92 # Copyright address
  93 COMPANY_ADDRESS = 500 Oracle Parkway<br>Redwood Shores, CA 94065 USA.
  94 
  95 # The trademark symbol
  96 TRADEMARK = &trade;
  97 
  98 # Common copyright lines used
  99 # The word "Copyright" might optionally be a link to the file cpyr.html.
 100 # The first year of copyright may vary or not be available.
 101 # The address to the company might be optional.
 102 COMMA:= ,
 103 EMPTY:=
 104 SPACE:=$(EMPTY) $(EMPTY)
 105 COPYRIGHT_SYMBOL = &\#x00a9;
 106 # Macro to construct the copyright line
 107 # (The GNU make 3.78.1 "if" conditional is broken, fixed in GNU make 3.81)
 108 define CopyrightLine # optionalurl optionalfirstyear optionaladdress
 109 $(if $(strip $1),<a href="$(strip $1)">Copyright</a>,Copyright) \
 110 $(COPYRIGHT_SYMBOL) $(if $2,$2${COMMA},) $(COPYRIGHT_YEAR),\
 111 $(FULL_COMPANY_NAME). $3 All rights reserved.
 112 endef
 113 
 114 # Url to root of documents
 115 DOCSDIR_URL = {@docroot}/$(GET2DOCSDIR)
 116 
 117 # Url to copyright html file
 118 COPYRIGHT_URL = $(DOCSDIR_URL)/legal/cpyr.html
 119 
 120 # Url to bug filing site
 121 BUG_SUBMIT_URL = http://bugreport.java.com/bugreport/
 122 
 123 # Common line for how to submit a bug or rfe
 124 BUG_SUBMIT_LINE = <a href="$(BUG_SUBMIT_URL)">Submit a bug or feature</a>
 125 
 126 # Url to devdocs page
 127 # Was: http://java.sun.com/javase/6/webnotes/devdocs-vs-specs.html
 128 DEV_DOCS_URL-7 = http://download.oracle.com/javase/7/docs/index.html
 129 DEV_DOCS_URL-8 = http://download.oracle.com/javase/8/docs/index.html
 130 DEV_DOCS_URL = $(DEV_DOCS_URL-$(JDK_MINOR_VERSION))
 131 DOCS_BASE_URL = http://download.oracle.com/javase/7/docs
 132 
 133 # Common Java trademark line
 134 JAVA_TRADEMARK_LINE = Java is a trademark or registered trademark of \
 135 $(FULL_COMPANY_NAME) in the US and other countries.
 136 
 137 #################################################################
 138 # Macros:
 139 
 140 
 141 # List of all possible directories for javadoc to look for sources
 142 # NOTE: Quotes are required around sourcepath argument only on Windows.
 143 # Otherwise, you get "No packages or classes specified." due
 144 # to $(PATH_SEP) being interpreted as an end of
 145 # command (newline or shell ; character)
 146 ALL_SOURCE_DIRS = $(JDK_SHARE_CLASSES) \
 147     $(JDK_IMPSRC) \
 148     $(JDK_GENSRC) \
 149     $(JDK_OUTPUTDIR)/gendocsrc_rmic \
 150     $(JDK_TOPDIR)/src/solaris/classes \
 151     $(JDK_TOPDIR)/src/windows/classes \
 152     $(JDK_SHARE_SRC)/doc/stub
 153 
 154 # List of directories that actually exist
 155 ALL_EXISTING_SOURCE_DIRS := $(wildcard $(ALL_SOURCE_DIRS))
 156 
 157 # List with classpath separator between them
 158 EMPTY:=
 159 SPACE:= $(EMPTY) $(EMPTY)
 160 RELEASEDOCS_SOURCEPATH = \
 161     $(subst $(SPACE),$(PATH_SEP),$(strip $(ALL_SOURCE_DIRS)))
 162 
 163 define prep-target
 164         $(MKDIR) -p $(@D)
 165         $(RM) $@
 166 endef
 167 
 168 # Prep for javadoc creation, assumes $@ is an index.html file
 169 define prep-javadoc
 170         @if [ -f "$@" -a "$?" != "" ] ; then \
 171           $(ECHO) "# Dependencies have changed: $?"; \
 172         fi
 173         $(RM) -r $(@D)
 174         $(MKDIR) -p $(@D)
 175 endef
 176 
 177 $(eval $(call FillCacheFind, $(ALL_SOURCE_DIRS)))
 178 define PackageDependencies
 179   $(call CacheFind, $(foreach p, $(subst .,/,$1), $(addsuffix /$p, $(ALL_SOURCE_DIRS))))
 180 endef
 181 
 182 # Given a list of packages, add packages that exist to $@, print summary
 183 define PackageFilter # packages
 184         @if [ "$1" != "" ] ; then \
 185           for p in $1 ; do \
 186             pd=`$(ECHO) $${p} | $(SED) -e 's@[.]@/@g'`; \
 187             found="false"; \
 188             for cp in $(ALL_SOURCE_DIRS) ; do \
 189               if [ -d $${cp}/$${pd} ] ; then \
 190                 $(ECHO) "$${p}" >> $@; \
 191                 found="true"; \
 192                 break; \
 193               fi; \
 194             done; \
 195             if [ "$${found}" = "false" ] ; then \
 196               $(ECHO) "WARNING: Package not found: $${p}"; \
 197             fi; \
 198           done; \
 199         fi
 200 endef
 201 
 202 # Print out a summary of the javadoc command about to be run
 203 define JavadocSummary # optionsfile packagesfile
 204         @$(ECHO) "# Running javadoc for $(patsubst $(OUTPUT_ROOT)/%,%,$@)" $(LOG_WARN)
 205         @($(ECHO) "# Options (`$(BASENAME) $1`):"; $(SED) -e 's@^@#   @' $1) $(LOG_DEBUG)
 206         @($(ECHO) "# Packages (`$(BASENAME) $2`):";$(SED) -e 's@^@#   @' $2) $(LOG_DEBUG)
 207 endef
 208 
 209 #
 210 # Temporary directory for javadoc creation
 211 #
 212 DOCSTMPDIR = $(TEMPDIR)/doctmp
 213 
 214 #
 215 # Different api directories created from root directory
 216 #
 217 COREAPI_DOCSDIR = $(DOCSDIR)/api
 218 JDK_API_DOCSDIR = $(DOCSDIR)/jdk/api
 219 JRE_API_DOCSDIR = $(DOCSDIR)/jre/api
 220 PLATFORM_DOCSDIR = $(DOCSDIR)/platform
 221 
 222 # The non-core api javadocs need to be able to access the root of the core
 223 # api directory, so for jdk/api or jre/api to get to the core api/
 224 # directory we would use this:
 225 JDKJRE2COREAPI = ../../api
 226 
 227 # Common bottom argument
 228 define CommonBottom # year
 229 <font size="-1"><br> $(call CopyrightLine,,$1,)</font>
 230 endef
 231 
 232 # Common trademark bottom argument (Not sure why this is used sometimes)
 233 define CommonTrademarkBottom # year
 234 <font size="-1">\
 235 $(BUG_SUBMIT_LINE)<br>$(JAVA_TRADEMARK_LINE)<br>\
 236 $(call CopyrightLine,,$1,$(COMPANY_ADDRESS))\
 237 </font>
 238 endef
 239 
 240 # Common echo of option
 241 define OptionOnly # opt
 242         $(PRINTF) "%s\n" "$1"
 243 endef
 244 define OptionPair # opt arg
 245         $(PRINTF) "%s '%s'\n" "$1" '$2'
 246 endef
 247 define OptionTrip # opt arg arg
 248         $(PRINTF) "%s '%s' '%s'\n" "$1" '$2' '$3'
 249 endef
 250 
 251 # Core api bottom argument (with special sauce)
 252 COREAPI_BOTTOM = <font size="-1"> $(BUG_SUBMIT_LINE)\
 253 <br>For further API reference and developer documentation, \
 254 see <a href="$(DEV_DOCS_URL)" target="_blank">Java SE Documentation</a>. \
 255 That documentation contains more detailed, developer-targeted descriptions, \
 256 with conceptual overviews, definitions of terms, workarounds, \
 257 and working code examples.<br>\
 258 $(call CopyrightLine,$(COPYRIGHT_URL),$(FIRST_COPYRIGHT_YEAR),)\
 259 </font>
 260 
 261 # Common javadoc options used by all
 262 COMMON_JAVADOCFLAGS = \
 263     -XDignore.symbol.file=true \
 264     -quiet \
 265     -use \
 266     -keywords \
 267     -Xprofilespath $(JDK_TOPDIR)/make/profile-rtjar-includes.txt \
 268     $(ADDITIONAL_JAVADOCFLAGS)
 269 
 270 ifdef OPENJDK
 271   ADDITIONAL_JAVADOCFLAGS = \
 272       -Xdocrootparent $(DOCS_BASE_URL)
 273 else
 274   ADDITIONAL_JAVADOCFLAGS =
 275 endif
 276 
 277 # Draft used for non-fcs documents
 278 DRAFT_HEADER =
 279 ifneq ($(MILESTONE), fcs)
 280   DRAFT_HEADER = <br><strong>DRAFT&nbsp;$(MILESTONE)-$(BUILD_NUMBER)</strong>
 281   DRAFT_BOTTOM = <br><strong>DRAFT&nbsp;$(MILESTONE)-$(BUILD_NUMBER)</strong>
 282   DRAFT_WINTITLE = $(BUILD_NUMBER)
 283   # Early access top text (not used in FCS releases)
 284   COREAPI_TOP_EARLYACCESS = \
 285 <div style="background-color: \#EEEEEE"> \
 286 <div style="padding: 6px; margin-top: 2px; margin-bottom: 6px; \
 287 margin-left: 6px; margin-right: 6px; text-align: justify; \
 288 font-size: 80%; font-family: Helvetica, Arial, sans-serif; \
 289 font-weight: normal;"> \
 290 Please note that the specifications and other information \
 291 contained herein are not final and are subject to change. \
 292 The information is being made available to you solely for purpose of \
 293 evaluation. \
 294 </div> </div>
 295 
 296 endif
 297 
 298 #################################################################
 299 
 300 #
 301 # Default target is same as docs target, create core api and all others it can
 302 #
 303 
 304 all: docs
 305 docs: coredocs otherdocs
 306 
 307 #################################################################
 308 # Production Targets -- USE THESE TARGETS WHEN:
 309 # a) You're generating docs outside of release engineering's
 310 #    standard control build.
 311 # b) The docs will be pushed to the web and/or included in
 312 #    the downloaded doc bundle.
 313 #
 314 # See: Notes.html#releaseTargets
 315 # Note: Spaces precede ifdef/ifndef indents. Tabs precede target commands (!)
 316 #
 317 
 318 sanitycheckcoredocs:
 319         @$(ECHO) ""
 320         @$(ECHO) "Building core api docs with these values:"
 321         @$(ECHO) "    BUILD_NUMBER = $(BUILD_NUMBER)"
 322         @$(ECHO) "    MILESTONE = $(MILESTONE)"
 323         @$(ECHO) ""
 324         ifeq ($(BUILD_NUMBER), b00)
 325           @$(ECHO) "ERROR: Build number must be defined"
 326           @$(ECHO) "MILESTONE is set to $(MILESTONE)"
 327           @$(ECHO) ""
 328           exit 1
 329         endif
 330 
 331 #############################################################
 332 #
 333 # coredocs
 334 #
 335 COREAPI_DOCTITLE = Java$(TRADEMARK) Platform, Standard Edition \
 336 $(JDK_MINOR_VERSION)<br>API Specification
 337 COREAPI_WINDOWTITLE = Java Platform SE $(JDK_MINOR_VERSION)
 338 COREAPI_HEADER = \
 339 <strong>Java$(TRADEMARK)&nbsp;Platform<br>Standard&nbsp;Ed.&nbsp;$(JDK_MINOR_VERSION)</strong>
 340 
 341 # Java language specification cite
 342 TAG_JLS = jls:a:See <cite> \
 343 The Java&trade; Language Specification</cite>:
 344 
 345 # Overview file for core apis
 346 COREAPI_OVERVIEW = $(JDK_SHARE_CLASSES)/overview-core.html
 347 
 348 # The index.html, options, and packages files
 349 COREAPI_INDEX_FILE = $(COREAPI_DOCSDIR)/index.html
 350 COREAPI_OPTIONS_FILE = $(DOCSTMPDIR)/coredocs.options
 351 COREAPI_PACKAGES_FILE = $(DOCSTMPDIR)/coredocs.packages
 352 
 353 coredocs: $(COREAPI_INDEX_FILE)
 354 
 355 # Set relative location to core api document root
 356 $(COREAPI_INDEX_FILE): GET2DOCSDIR=..
 357 
 358 # Run javadoc if the index file is out of date or missing
 359 $(COREAPI_INDEX_FILE): $(COREAPI_OPTIONS_FILE) $(COREAPI_PACKAGES_FILE)
 360         $(prep-javadoc)
 361         $(call JavadocSummary,$(COREAPI_OPTIONS_FILE),$(COREAPI_PACKAGES_FILE))
 362         $(JAVADOC_CMD) -d $(@D) \
 363             @$(COREAPI_OPTIONS_FILE) @$(COREAPI_PACKAGES_FILE)
 364 
 365 # Create file with javadoc options in it
 366 $(COREAPI_OPTIONS_FILE): $(COREAPI_OVERVIEW)
 367         $(prep-target)
 368         @($(call OptionOnly,$(COMMON_JAVADOCFLAGS)) ; \
 369           $(call OptionOnly,-Xdoclint:none) ; \
 370           $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH)) ; \
 371           $(call OptionPair,-encoding,ISO-8859-1) ; \
 372           $(call OptionPair,-tag,beaninfo:X) ; \
 373           $(call OptionPair,-tag,revised:X) ; \
 374           $(call OptionPair,-tag,since.unbundled:X) ; \
 375           $(call OptionPair,-tag,spec:X) ; \
 376           $(call OptionPair,-tag,specdefault:X) ; \
 377           $(call OptionPair,-tag,Note:X) ; \
 378           $(call OptionPair,-tag,ToDo:X) ; \
 379           $(call OptionPair,-tag,apiNote:a:API Note:) ; \
 380           $(call OptionPair,-tag,implSpec:a:Implementation Requirements:) ; \
 381           $(call OptionPair,-tag,implNote:a:Implementation Note:) ; \
 382           $(call OptionPair,-tag,param) ; \
 383           $(call OptionPair,-tag,return) ; \
 384           $(call OptionPair,-tag,throws) ; \
 385           $(call OptionPair,-tag,since) ; \
 386           $(call OptionPair,-tag,version) ; \
 387           $(call OptionPair,-tag,serialData) ; \
 388           $(call OptionPair,-tag,factory) ; \
 389           $(call OptionPair,-tag,see) ; \
 390           $(call OptionPair,-tag,$(TAG_JLS)) ; \
 391           $(call OptionOnly,-splitIndex) ; \
 392           $(call OptionPair,-overview,$(COREAPI_OVERVIEW)) ; \
 393           $(call OptionPair,-doctitle,$(COREAPI_DOCTITLE)) ; \
 394           $(call OptionPair,-windowtitle,$(COREAPI_WINDOWTITLE) $(DRAFT_WINTITLE)) ; \
 395           $(call OptionPair,-header,$(COREAPI_HEADER)$(DRAFT_HEADER)) ; \
 396           $(call OptionPair,-bottom,$(COREAPI_BOTTOM)$(DRAFT_BOTTOM)) ; \
 397         ) >> $@
 398         ifdef COREAPI_TOP_EARLYACCESS
 399           @$(call OptionPair,-top,$(COREAPI_TOP_EARLYACCESS)) >> $@
 400         endif
 401 
 402 # Create a file with the package names in it
 403 $(COREAPI_PACKAGES_FILE): $(call PackageDependencies,$(CORE_PKGS))
 404         $(prep-target)
 405         $(call PackageFilter,$(CORE_PKGS))
 406 
 407 #############################################################
 408 #
 409 # docletapidocs
 410 #
 411 
 412 ALL_OTHER_TARGETS += docletapidocs
 413 
 414 DOCLETAPI_DOCDIR := $(JDK_API_DOCSDIR)/javadoc/doclet
 415 DOCLETAPI2COREAPI := ../../$(JDKJRE2COREAPI)
 416 DOCLETAPI_DOCTITLE := Doclet API
 417 DOCLETAPI_WINDOWTITLE := Doclet API
 418 DOCLETAPI_HEADER := <strong>Doclet API</strong>
 419 DOCLETAPI_BOTTOM := $(call CommonTrademarkBottom,$(DOCLETAPI_FIRST_COPYRIGHT_YEAR))
 420 DOCLETAPI_GROUPNAME := Packages
 421 DOCLETAPI_REGEXP := com.sun.javadoc
 422 # DOCLETAPI_PKGS is located in NON_CORE_PKGS.gmk
 423 
 424 # The index.html, options, and packages files
 425 DOCLETAPI_INDEX_FILE = $(DOCLETAPI_DOCDIR)/index.html
 426 DOCLETAPI_OPTIONS_FILE = $(DOCSTMPDIR)/docletapi.options
 427 DOCLETAPI_PACKAGES_FILE = $(DOCSTMPDIR)/docletapi.packages
 428 
 429 docletapidocs: $(DOCLETAPI_INDEX_FILE)
 430 
 431 # Set relative location to core api document root
 432 $(DOCLETAPI_INDEX_FILE): GET2DOCSDIR=$(DOCLETAPI2COREAPI)/..
 433 
 434 # Run javadoc if the index file is out of date or missing
 435 $(DOCLETAPI_INDEX_FILE): $(DOCLETAPI_OPTIONS_FILE) $(DOCLETAPI_PACKAGES_FILE) $(COREAPI_INDEX_FILE)
 436         $(prep-javadoc)
 437         $(call JavadocSummary,$(DOCLETAPI_OPTIONS_FILE),$(DOCLETAPI_PACKAGES_FILE))
 438         $(JAVADOC_CMD) -d $(@D) \
 439             @$(DOCLETAPI_OPTIONS_FILE) @$(DOCLETAPI_PACKAGES_FILE)
 440 
 441 # Create file with javadoc options in it
 442 $(DOCLETAPI_OPTIONS_FILE):
 443         $(prep-target)
 444         @($(call OptionOnly,$(COMMON_JAVADOCFLAGS)) ; \
 445           $(call OptionOnly,-Xdoclint:all) ; \
 446           $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH)) ; \
 447           $(call OptionPair,-encoding,ascii) ; \
 448           $(call OptionOnly,-breakiterator) ; \
 449           $(call OptionPair,-doctitle,$(DOCLETAPI_DOCTITLE)) ; \
 450           $(call OptionPair,-windowtitle,$(DOCLETAPI_WINDOWTITLE) $(DRAFT_WINTITLE)); \
 451           $(call OptionPair,-header,$(DOCLETAPI_HEADER)$(DRAFT_HEADER)) ; \
 452           $(call OptionPair,-bottom,$(DOCLETAPI_BOTTOM)$(DRAFT_BOTTOM)) ; \
 453           $(call OptionTrip,-group,$(DOCLETAPI_GROUPNAME),$(DOCLETAPI_REGEXP)); \
 454           $(call OptionTrip,-linkoffline,$(DOCLETAPI2COREAPI),$(COREAPI_DOCSDIR)/); \
 455         ) >> $@
 456 
 457 # Create a file with the package names in it
 458 $(DOCLETAPI_PACKAGES_FILE): $(call PackageDependencies,$(DOCLETAPI_PKGS)) 
 459         $(prep-target)
 460         $(call PackageFilter,$(DOCLETAPI_PKGS))
 461 
 462 #############################################################
 463 #
 464 # tagletapidocs
 465 #
 466 
 467 ALL_OTHER_TARGETS += tagletapidocs
 468 TAGLETAPI_DOCDIR := $(JDK_API_DOCSDIR)/javadoc/taglet
 469 TAGLETAPI2COREAPI := ../../$(JDKJRE2COREAPI)
 470 TAGLETAPI_BOTTOM := $(call CommonTrademarkBottom,$(TAGLETAPI_FIRST_COPYRIGHT_YEAR))
 471 # TAGLETAPI_FILE is located in NON_CORE_PKGS.gmk
 472 
 473 # Temporary directory (special generation rules)
 474 TAGLETAPI_TEMPDIR = $(DOCSTMPDIR)/taglets_temp
 475 
 476 # The index.html, options, and packages files
 477 TAGLETAPI_INDEX_FILE = $(TAGLETAPI_DOCDIR)/com/sun/tools/doclets/Taglet.html
 478 TAGLETAPI_OPTIONS_FILE = $(DOCSTMPDIR)/tagletapi.options
 479 TAGLETAPI_PACKAGES_FILE = $(DOCSTMPDIR)/tagletapi.packages
 480 
 481 tagletapidocs: $(TAGLETAPI_INDEX_FILE)
 482 
 483 # Set relative location to core api document root
 484 $(TAGLETAPI_INDEX_FILE): GET2DOCSDIR=$(TAGLETAPI2COREAPI)/..
 485 
 486 # Run javadoc if the index file is out of date or missing
 487 $(TAGLETAPI_INDEX_FILE): $(TAGLETAPI_OPTIONS_FILE) $(TAGLETAPI_PACKAGES_FILE) $(COREAPI_INDEX_FILE)
 488         $(prep-javadoc)
 489         $(RM) -r $(TAGLETAPI_TEMPDIR)
 490         $(MKDIR) -p $(TAGLETAPI_TEMPDIR)
 491         $(call JavadocSummary,$(TAGLETAPI_OPTIONS_FILE),$(TAGLETAPI_PACKAGES_FILE))
 492         $(JAVADOC_CMD) -d $(TAGLETAPI_TEMPDIR) \
 493             @$(TAGLETAPI_OPTIONS_FILE) @$(TAGLETAPI_PACKAGES_FILE)
 494         cp -r $(TAGLETAPI_TEMPDIR)/com $(TAGLETAPI_DOCDIR)
 495         cp $(TAGLETAPI_TEMPDIR)/stylesheet.css $(TAGLETAPI_DOCDIR)
 496         $(RM) -r $(TAGLETAPI_TEMPDIR)
 497 
 498 # Create file with javadoc options in it
 499 $(TAGLETAPI_OPTIONS_FILE):
 500         $(prep-target)
 501         @($(call OptionOnly,$(COMMON_JAVADOCFLAGS)) ; \
 502           $(call OptionOnly,-Xdoclint:all) ; \
 503           $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH)) ; \
 504           $(call OptionPair,-encoding,ascii) ; \
 505           $(call OptionOnly,-nonavbar) ; \
 506           $(call OptionOnly,-noindex) ; \
 507           $(call OptionPair,-bottom,$(TAGLETAPI_BOTTOM)$(DRAFT_BOTTOM)) ; \
 508           $(call OptionTrip,-linkoffline,$(TAGLETAPI2COREAPI),$(COREAPI_DOCSDIR)/); \
 509         ) >> $@
 510 
 511 # Create a file with the package names in it
 512 $(TAGLETAPI_PACKAGES_FILE): $(call PackageDependencies,$(TAGLETAPI_PKGS))
 513         $(prep-target)
 514         @($(ECHO) "$(JDK_IMPSRC)/$(TAGLETAPI_FILE)" ) > $@
 515 
 516 #############################################################
 517 #
 518 # domapidocs
 519 #
 520 
 521 ALL_OTHER_TARGETS += domapidocs
 522 
 523 DOMAPI_DOCDIR := $(JRE_API_DOCSDIR)/plugin/dom
 524 DOMAPI2COREAPI := ../../$(JDKJRE2COREAPI)
 525 DOMAPI_DOCTITLE := Common DOM API
 526 DOMAPI_WINDOWTITLE := Common DOM API
 527 DOMAPI_HEADER := <strong>Common DOM API</strong>
 528 DOMAPI_BOTTOM := $(call CommonTrademarkBottom,$(DOMAPI_FIRST_COPYRIGHT_YEAR))
 529 DOMAPI_GROUPNAME := Packages
 530 DOMAPI_REGEXP := org.w3c.dom*
 531 # DOMAPI_PKGS is located in NON_CORE_PKGS.gmk
 532 
 533 # The index.html, options, and packages files
 534 DOMAPI_INDEX_FILE = $(DOMAPI_DOCDIR)/index.html
 535 DOMAPI_OPTIONS_FILE = $(DOCSTMPDIR)/domapi.options
 536 DOMAPI_PACKAGES_FILE = $(DOCSTMPDIR)/domapi.packages
 537 
 538 domapidocs: $(DOMAPI_INDEX_FILE)
 539 
 540 # Set relative location to core api document root
 541 $(DOMAPI_INDEX_FILE): GET2DOCSDIR=$(DOMAPI2COREAPI)/..
 542 
 543 # Run javadoc if the index file is out of date or missing
 544 $(DOMAPI_INDEX_FILE): $(DOMAPI_OPTIONS_FILE) $(DOMAPI_PACKAGES_FILE) $(COREAPI_INDEX_FILE)
 545         $(prep-javadoc)
 546         $(call JavadocSummary,$(DOMAPI_OPTIONS_FILE),$(DOMAPI_PACKAGES_FILE))
 547         $(JAVADOC_CMD) -d $(@D) \
 548             @$(DOMAPI_OPTIONS_FILE) @$(DOMAPI_PACKAGES_FILE)
 549 
 550 # Create file with javadoc options in it
 551 $(DOMAPI_OPTIONS_FILE):
 552         $(prep-target)
 553         @($(call OptionOnly,$(COMMON_JAVADOCFLAGS)) ; \
 554           $(call OptionOnly,-Xdoclint:none) ; \
 555           $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH)) ; \
 556           $(call OptionPair,-encoding,ascii) ; \
 557           $(call OptionOnly,-splitIndex) ; \
 558           $(call OptionPair,-doctitle,$(DOMAPI_DOCTITLE)) ; \
 559           $(call OptionPair,-windowtitle,$(DOMAPI_WINDOWTITLE) $(DRAFT_WINTITLE)); \
 560           $(call OptionPair,-header,$(DOMAPI_HEADER)$(DRAFT_HEADER)) ; \
 561           $(call OptionPair,-bottom,$(DOMAPI_BOTTOM)$(DRAFT_BOTTOM)) ; \
 562           $(call OptionTrip,-group,$(DOMAPI_GROUPNAME),$(DOMAPI_REGEXP)); \
 563           $(call OptionTrip,-linkoffline,$(DOMAPI2COREAPI),$(COREAPI_DOCSDIR)/); \
 564         ) >> $@
 565 
 566 # Create a file with the package names in it
 567 $(DOMAPI_PACKAGES_FILE): $(call PackageDependencies,$(DOMAPI_PKGS))
 568         $(prep-target)
 569         $(call PackageFilter,$(DOMAPI_PKGS))
 570 
 571 #############################################################
 572 #
 573 # jpdadocs
 574 #
 575 
 576 ALL_OTHER_TARGETS += jpdadocs
 577 
 578 jpdadocs: jdidocs jdwpdocs jvmtidocs
 579 
 580 #############################################################
 581 #
 582 # jdidocs
 583 #
 584 
 585 ALL_OTHER_TARGETS += jdidocs
 586 
 587 JDI_DOCDIR := $(JDK_API_DOCSDIR)/jpda/jdi
 588 JDI2COREAPI := ../../$(JDKJRE2COREAPI)
 589 JDI_DOCTITLE := Java$(TRADEMARK) Debug Interface
 590 JDI_WINDOWTITLE := Java Debug Interface
 591 JDI_HEADER := <strong>Java Debug Interface</strong>
 592 JDI_BOTTOM := $(call CommonBottom,$(JDI_FIRST_COPYRIGHT_YEAR))
 593 JDI_OVERVIEW := $(JDK_SHARE_CLASSES)/jdi-overview.html
 594 # JDI_PKGS is located in NON_CORE_PKGS.gmk
 595 
 596 # The index.html, options, and packages files
 597 JDI_INDEX_FILE = $(JDI_DOCDIR)/index.html
 598 JDI_OPTIONS_FILE = $(DOCSTMPDIR)/jdi.options
 599 JDI_PACKAGES_FILE = $(DOCSTMPDIR)/jdi.packages
 600 
 601 jdidocs: $(JDI_INDEX_FILE)
 602 
 603 # Set relative location to core api document root
 604 $(JDI_INDEX_FILE): GET2DOCSDIR=$(JDI2COREAPI)/..
 605 
 606 # Run javadoc if the index file is out of date or missing
 607 $(JDI_INDEX_FILE): $(JDI_OPTIONS_FILE) $(JDI_PACKAGES_FILE) $(COREAPI_INDEX_FILE)
 608         $(prep-javadoc)
 609         $(call JavadocSummary,$(JDI_OPTIONS_FILE),$(JDI_PACKAGES_FILE))
 610         $(JAVADOC_CMD) -d $(@D) \
 611             @$(JDI_OPTIONS_FILE) @$(JDI_PACKAGES_FILE)
 612 
 613 # Create file with javadoc options in it
 614 $(JDI_OPTIONS_FILE): $(JDI_OVERVIEW)
 615         $(prep-target)
 616         @($(call OptionOnly,$(COMMON_JAVADOCFLAGS)) ; \
 617           $(call OptionOnly,-Xdoclint:none) ; \
 618           $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH)) ; \
 619           $(call OptionPair,-encoding,ascii) ; \
 620           $(call OptionPair,-overview,$(JDI_OVERVIEW)) ; \
 621           $(call OptionPair,-doctitle,$(JDI_DOCTITLE)) ; \
 622           $(call OptionPair,-windowtitle,$(JDI_WINDOWTITLE) $(DRAFT_WINTITLE)); \
 623           $(call OptionPair,-header,$(JDI_HEADER)$(DRAFT_HEADER)) ; \
 624           $(call OptionPair,-bottom,$(JDI_BOTTOM)$(DRAFT_BOTTOM)) ; \
 625           $(call OptionTrip,-linkoffline,$(JDI2COREAPI),$(COREAPI_DOCSDIR)/); \
 626         ) >> $@
 627 
 628 # Create a file with the package names in it
 629 $(JDI_PACKAGES_FILE): $(call PackageDependencies,$(JDI_PKGS))
 630         $(prep-target)
 631         $(call PackageFilter,$(JDI_PKGS))
 632 
 633 #############################################################
 634 #
 635 # jdwpdocs
 636 #
 637 
 638 ALL_OTHER_TARGETS += jdwpdocs
 639 
 640 JDWP_DOCDIR = $(PLATFORM_DOCSDIR)/jpda/jdwp
 641 
 642 jdwpdocs: $(JDWP_DOCDIR)/jdwp-protocol.html
 643 $(JDWP_DOCDIR)/jdwp-protocol.html : $(JDK_OUTPUTDIR)/gensrc_jdwp_doc/jdwp-protocol.html
 644         $(MKDIR) -p $(@D)
 645         $(RM) $@
 646         $(CP) $< $@
 647 
 648 #############################################################
 649 #
 650 # jvmtidocs
 651 #
 652 
 653 ALL_OTHER_TARGETS += jvmtidocs
 654 
 655 JVMTI_DOCDIR = $(PLATFORM_DOCSDIR)/jvmti
 656 JVMTI_HTML = $(HOTSPOT_DIST)/docs/platform/jvmti/jvmti.html
 657 
 658 jvmtidocs: $(JVMTI_DOCDIR)/jvmti.html
 659 $(JVMTI_DOCDIR)/jvmti.html:
 660         @$(prep-javadoc)
 661         @if [ -f $(JVMTI_HTML) ] ; then \
 662           $(CP) $(JVMTI_HTML) $@; \
 663         else \
 664           $(ECHO) "WARNING: Generated file does not exist: $(JVMTI_HTML)"; \
 665         fi
 666 
 667 #############################################################
 668 #
 669 # jaasdocs
 670 #
 671 
 672 ALL_OTHER_TARGETS += jaasdocs
 673 
 674 JAAS_DOCDIR := $(JRE_API_DOCSDIR)/security/jaas/spec
 675 JAAS2COREAPI := ../../../$(JDKJRE2COREAPI)
 676 JAAS_DOCTITLE := Java$(TRADEMARK) Authentication and Authorization Service
 677 JAAS_WINDOWTITLE := Java Authentication and Authorization Service
 678 JAAS_HEADER := <strong>Java Authentication and Authorization Service</strong>
 679 JAAS_BOTTOM := $(call CommonBottom,$(JAAS_FIRST_COPYRIGHT_YEAR))
 680 # JAAS_PKGS is located in NON_CORE_PKGS.gmk
 681 JAAS_OVERVIEW := $(JDK_SHARE_CLASSES)/com/sun/security/auth/jaas-overview.html
 682 
 683 # The index.html, options, and packages files
 684 JAAS_INDEX_FILE = $(JAAS_DOCDIR)/index.html
 685 JAAS_OPTIONS_FILE = $(DOCSTMPDIR)/jaas.options
 686 JAAS_PACKAGES_FILE = $(DOCSTMPDIR)/jaas.packages
 687 
 688 jaasdocs: $(JAAS_INDEX_FILE)
 689 
 690 # Set relative location to core api document root
 691 $(JAAS_INDEX_FILE): GET2DOCSDIR=$(JAAS2COREAPI)/..
 692 
 693 # Run javadoc if the index file is out of date or missing
 694 $(JAAS_INDEX_FILE): $(JAAS_OPTIONS_FILE) $(JAAS_PACKAGES_FILE) $(COREAPI_INDEX_FILE)
 695         $(prep-javadoc)
 696         $(call JavadocSummary,$(JAAS_OPTIONS_FILE),$(JAAS_PACKAGES_FILE))
 697         $(JAVADOC_CMD) -d $(@D) \
 698             @$(JAAS_OPTIONS_FILE) @$(JAAS_PACKAGES_FILE)
 699 
 700 # Create file with javadoc options in it
 701 $(JAAS_OPTIONS_FILE): $(JAAS_OVERVIEW)
 702         $(prep-target)
 703         @($(call OptionOnly,$(COMMON_JAVADOCFLAGS)) ; \
 704           $(call OptionOnly,-Xdoclint:none) ; \
 705           $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH)) ; \
 706           $(call OptionPair,-encoding,ascii) ; \
 707           $(call OptionPair,-overview,$(JAAS_OVERVIEW)) ; \
 708           $(call OptionPair,-doctitle,$(JAAS_DOCTITLE)) ; \
 709           $(call OptionPair,-windowtitle,$(JAAS_WINDOWTITLE) $(DRAFT_WINTITLE)); \
 710           $(call OptionPair,-header,$(JAAS_HEADER)$(DRAFT_HEADER)) ; \
 711           $(call OptionPair,-bottom,$(JAAS_BOTTOM)$(DRAFT_BOTTOM)) ; \
 712           $(call OptionTrip,-linkoffline,$(JAAS2COREAPI),$(COREAPI_DOCSDIR)/); \
 713         ) >> $@
 714 
 715 # Create a file with the package names in it
 716 $(JAAS_PACKAGES_FILE): $(call PackageDependencies,$(JAAS_PKGS))
 717         $(prep-target)
 718         $(call PackageFilter,$(JAAS_PKGS))
 719 
 720 #############################################################
 721 #
 722 # jgssdocs
 723 #
 724 
 725 ALL_OTHER_TARGETS += jgssdocs
 726 
 727 JGSS_DOCDIR := $(JRE_API_DOCSDIR)/security/jgss/spec
 728 JGSS2COREAPI := ../../../$(JDKJRE2COREAPI)
 729 JGSS_DOCTITLE := Java$(TRADEMARK) GSS-API Utilities
 730 JGSS_WINDOWTITLE := Java GSS-API Utilities
 731 JGSS_HEADER := <strong>Java GSS-API Utilities</strong>
 732 JGSS_BOTTOM := $(call CommonBottom,$(JGSS_FIRST_COPYRIGHT_YEAR))
 733 JGSS_OVERVIEW := $(JDK_SHARE_CLASSES)/com/sun/security/jgss/jgss-overview.html
 734 # JGSS_PKGS is located in NON_CORE_PKGS.gmk
 735 
 736 # The index.html, options, and packages files
 737 JGSS_INDEX_FILE = $(JGSS_DOCDIR)/index.html
 738 JGSS_OPTIONS_FILE = $(DOCSTMPDIR)/jgss.options
 739 JGSS_PACKAGES_FILE = $(DOCSTMPDIR)/jgss.packages
 740 
 741 jgssdocs: $(JGSS_INDEX_FILE)
 742 
 743 # Set relative location to core api document root
 744 $(JGSS_INDEX_FILE): GET2DOCSDIR=$(JGSS2COREAPI)/..
 745 
 746 # Run javadoc if the index file is out of date or missing
 747 $(JGSS_INDEX_FILE): $(JGSS_OPTIONS_FILE) $(JGSS_PACKAGES_FILE) $(COREAPI_INDEX_FILE)
 748         $(prep-javadoc)
 749         $(call JavadocSummary,$(JGSS_OPTIONS_FILE),$(JGSS_PACKAGES_FILE))
 750         $(JAVADOC_CMD) -d $(@D) \
 751             @$(JGSS_OPTIONS_FILE) @$(JGSS_PACKAGES_FILE)
 752 
 753 # Create file with javadoc options in it
 754 $(JGSS_OPTIONS_FILE): $(JGSS_OVERVIEW)
 755         $(prep-target)
 756         @($(call OptionOnly,$(COMMON_JAVADOCFLAGS)) ; \
 757           $(call OptionOnly,-Xdoclint:none) ; \
 758           $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH)) ; \
 759           $(call OptionPair,-encoding,ascii) ; \
 760           $(call OptionOnly,-nodeprecatedlist) ; \
 761           $(call OptionPair,-overview,$(JGSS_OVERVIEW)) ; \
 762           $(call OptionPair,-doctitle,$(JGSS_DOCTITLE)) ; \
 763           $(call OptionPair,-windowtitle,$(JGSS_WINDOWTITLE) $(DRAFT_WINTITLE)); \
 764           $(call OptionPair,-header,$(JGSS_HEADER)$(DRAFT_HEADER)) ; \
 765           $(call OptionPair,-bottom,$(JGSS_BOTTOM)$(DRAFT_BOTTOM)) ; \
 766           $(call OptionTrip,-linkoffline,$(JGSS2COREAPI),$(COREAPI_DOCSDIR)/); \
 767         ) >> $@
 768 
 769 # Create a file with the package names in it
 770 $(JGSS_PACKAGES_FILE): $(call PackageDependencies,$(JGSS_PKGS))
 771         $(prep-target)
 772         $(call PackageFilter,$(JGSS_PKGS))
 773 
 774 #############################################################
 775 #
 776 # smartcardiodocs
 777 #
 778 
 779 ALL_OTHER_TARGETS += smartcardiodocs
 780 
 781 SMARTCARDIO_DOCDIR := $(JRE_API_DOCSDIR)/security/smartcardio/spec
 782 SMARTCARDIO2COREAPI := ../../../$(JDKJRE2COREAPI)
 783 SMARTCARDIO_DOCTITLE := Java$(TRADEMARK) Smart Card I/O
 784 SMARTCARDIO_WINDOWTITLE := Java Smart Card I/O
 785 SMARTCARDIO_HEADER := <strong>Java Smart Card I/O</strong>
 786 SMARTCARDIO_BOTTOM := $(call CommonBottom,$(SMARTCARDIO_FIRST_COPYRIGHT_YEAR))
 787 # SMARTCARDIO_PKGS is located in NON_CORE_PKGS.gmk
 788 
 789 # The index.html, options, and packages files
 790 SMARTCARDIO_INDEX_FILE = $(SMARTCARDIO_DOCDIR)/index.html
 791 SMARTCARDIO_OPTIONS_FILE = $(DOCSTMPDIR)/smartcardio.options
 792 SMARTCARDIO_PACKAGES_FILE = $(DOCSTMPDIR)/smartcardio.packages
 793 
 794 smartcardiodocs: $(SMARTCARDIO_INDEX_FILE)
 795 
 796 # Set relative location to core api document root
 797 $(SMARTCARDIO_INDEX_FILE): GET2DOCSDIR=$(SMARTCARDIO2COREAPI)/..
 798 
 799 # Run javadoc if the index file is out of date or missing
 800 $(SMARTCARDIO_INDEX_FILE): $(SMARTCARDIO_OPTIONS_FILE) $(SMARTCARDIO_PACKAGES_FILE) $(COREAPI_INDEX_FILE)
 801         $(prep-javadoc)
 802         $(call JavadocSummary,$(SMARTCARDIO_OPTIONS_FILE),$(SMARTCARDIO_PACKAGES_FILE))
 803         $(JAVADOC_CMD) -d $(@D) \
 804             @$(SMARTCARDIO_OPTIONS_FILE) @$(SMARTCARDIO_PACKAGES_FILE)
 805 
 806 # Create file with javadoc options in it
 807 $(SMARTCARDIO_OPTIONS_FILE):
 808         $(prep-target)
 809         @($(call OptionOnly,$(COMMON_JAVADOCFLAGS)) ; \
 810           $(call OptionOnly,-Xdoclint:none) ; \
 811           $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH)) ; \
 812           $(call OptionPair,-encoding,ascii) ; \
 813           $(call OptionOnly,-nodeprecatedlist) ; \
 814           $(call OptionPair,-doctitle,$(SMARTCARDIO_DOCTITLE)) ; \
 815           $(call OptionPair,-windowtitle,$(SMARTCARDIO_WINDOWTITLE) $(DRAFT_WINTITLE)); \
 816           $(call OptionPair,-header,$(SMARTCARDIO_HEADER)$(DRAFT_HEADER)); \
 817           $(call OptionPair,-bottom,$(SMARTCARDIO_BOTTOM)$(DRAFT_BOTTOM)); \
 818           $(call OptionTrip,-linkoffline,$(SMARTCARDIO2COREAPI),$(COREAPI_DOCSDIR)/); \
 819         ) >> $@
 820 
 821 # Create a file with the package names in it
 822 $(SMARTCARDIO_PACKAGES_FILE): $(call PackageDependencies,$(SMARTCARDIO_PKGS))
 823         $(prep-target)
 824         $(call PackageFilter,$(SMARTCARDIO_PKGS))
 825 
 826 #############################################################
 827 #
 828 # httpserverdocs
 829 #
 830 
 831 ALL_OTHER_TARGETS += httpserverdocs
 832 
 833 HTTPSERVER_DOCDIR := $(JRE_API_DOCSDIR)/net/httpserver/spec
 834 HTTPSERVER2COREAPI := ../../../$(JDKJRE2COREAPI)
 835 HTTPSERVER_DOCTITLE := Java$(TRADEMARK) HTTP Server
 836 HTTPSERVER_WINDOWTITLE := Java HTTP Server
 837 HTTPSERVER_HEADER := <strong>Java HTTP Server</strong>
 838 HTTPSERVER_BOTTOM := $(call CommonBottom,$(HTTPSERVER_FIRST_COPYRIGHT_YEAR))
 839 # HTTPSERVER_PKGS is located in NON_CORE_PKGS.gmk
 840 
 841 HTTPSERVER_INDEX_HTML = $(HTTPSERVER_DOCDIR)/index.html
 842 HTTPSERVER_OPTIONS_FILE = $(DOCSTMPDIR)/httpserver.options
 843 HTTPSERVER_PACKAGES_FILE = $(DOCSTMPDIR)/httpserver.packages
 844 
 845 httpserverdocs: $(HTTPSERVER_INDEX_HTML)
 846 
 847 # Set relative location to core api document root
 848 $(HTTPSERVER_INDEX_HTML): GET2DOCSDIR=$(HTTPSERVER2COREAPI)/..
 849 
 850 # Run javadoc if the index file is out of date or missing
 851 $(HTTPSERVER_INDEX_HTML): $(HTTPSERVER_OPTIONS_FILE) $(HTTPSERVER_PACKAGES_FILE) $(COREAPI_INDEX_FILE)
 852         $(prep-javadoc)
 853         $(call JavadocSummary,$(HTTPSERVER_OPTIONS_FILE),$(HTTPSERVER_PACKAGES_FILE))
 854         $(JAVADOC_CMD) -d $(@D) \
 855             @$(HTTPSERVER_OPTIONS_FILE) @$(HTTPSERVER_PACKAGES_FILE)
 856 
 857 # Create file with javadoc options in it
 858 $(HTTPSERVER_OPTIONS_FILE):
 859         $(prep-target)
 860         @($(call OptionOnly,$(COMMON_JAVADOCFLAGS)) ; \
 861           $(call OptionOnly,-Xdoclint:none) ; \
 862           $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH)) ; \
 863           $(call OptionPair,-encoding,ascii) ; \
 864           $(call OptionOnly,-nodeprecatedlist) ; \
 865           $(call OptionPair,-doctitle,$(HTTPSERVER_DOCTITLE)) ; \
 866           $(call OptionPair,-windowtitle,$(HTTPSERVER_WINDOWTITLE) $(DRAFT_WINTITLE)); \
 867           $(call OptionPair,-header,$(HTTPSERVER_HEADER)$(DRAFT_HEADER)); \
 868           $(call OptionPair,-bottom,$(HTTPSERVER_BOTTOM)$(DRAFT_BOTTOM)); \
 869           $(call OptionTrip,-linkoffline,$(HTTPSERVER2COREAPI),$(COREAPI_DOCSDIR)/); \
 870         ) >> $@
 871 
 872 # Create a file with the package names in it
 873 $(HTTPSERVER_PACKAGES_FILE): $(call PackageDependencies,$(HTTPSERVER_PKGS))
 874         $(prep-target)
 875         $(call PackageFilter,$(HTTPSERVER_PKGS))
 876 
 877 #############################################################
 878 #
 879 # mgmtdocs
 880 #
 881 
 882 ALL_OTHER_TARGETS += mgmtdocs
 883 
 884 MGMT_DOCDIR := $(JRE_API_DOCSDIR)/management/extension
 885 MGMT2COREAPI := ../../$(JDKJRE2COREAPI)
 886 JVM_MIB_NAME := JVM-MANAGEMENT-MIB.mib
 887 JVM_MIB_SRC := $(JDK_TOPDIR)/src/closed/share/classes/sun/management/snmp/$(JVM_MIB_NAME)
 888 MGMT_DOCTITLE := Monitoring and Management Interface for the Java$(TRADEMARK) Platform
 889 MGMT_WINDOWTITLE := Monitoring and Management Interface for the Java Platform
 890 MGMT_HEADER := <strong>Monitoring and Management Interface for the Java Platform</strong>
 891 MGMT_BOTTOM := $(call CommonBottom,$(MGMT_FIRST_COPYRIGHT_YEAR))
 892 MGMT_OVERVIEW := $(JDK_SHARE_CLASSES)/com/sun/management/mgmt-overview.html
 893 # MGMT_PKGS is located in NON_CORE_PKGS.gmk
 894 
 895 # The index.html, options, and packages files
 896 MGMT_INDEX_FILE = $(MGMT_DOCDIR)/index.html
 897 MGMT_OPTIONS_FILE = $(DOCSTMPDIR)/mgmt.options
 898 MGMT_PACKAGES_FILE = $(DOCSTMPDIR)/mgmt.packages
 899 
 900 mgmtdocs: $(MGMT_INDEX_FILE)
 901 
 902 # Set relative location to core api document root
 903 $(MGMT_INDEX_FILE): GET2DOCSDIR=$(MGMT2COREAPI)/..
 904 
 905 # Run javadoc if the index file is out of date or missing
 906 $(MGMT_INDEX_FILE): $(MGMT_OPTIONS_FILE) $(MGMT_PACKAGES_FILE) $(COREAPI_INDEX_FILE)
 907         $(prep-javadoc)
 908         @if [ -f $(JVM_MIB_SRC) ] ; then \
 909           $(CP) $(JVM_MIB_SRC) $(@D)/.. ; \
 910         else \
 911           $(ECHO) "WARNING: File $(JVM_MIB_NAME) not available."; \
 912         fi
 913         $(call JavadocSummary,$(MGMT_OPTIONS_FILE),$(MGMT_PACKAGES_FILE))
 914         $(JAVADOC_CMD) -d $(@D) \
 915             @$(MGMT_OPTIONS_FILE) @$(MGMT_PACKAGES_FILE)
 916 
 917 # Create file with javadoc options in it
 918 $(MGMT_OPTIONS_FILE): $(MGMT_OVERVIEW)
 919         $(prep-target)
 920         @($(call OptionOnly,$(COMMON_JAVADOCFLAGS)) ; \
 921           $(call OptionOnly,-Xdoclint:none) ; \
 922           $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH)) ; \
 923           $(call OptionPair,-encoding,ascii) ; \
 924           $(call OptionOnly,-nodeprecatedlist) ; \
 925           $(call OptionPair,-overview,$(MGMT_OVERVIEW)) ; \
 926           $(call OptionPair,-doctitle,$(MGMT_DOCTITLE)) ; \
 927           $(call OptionPair,-windowtitle,$(MGMT_WINDOWTITLE) $(DRAFT_WINTITLE)); \
 928           $(call OptionPair,-header,$(MGMT_HEADER)$(DRAFT_HEADER)) ; \
 929           $(call OptionPair,-bottom,$(MGMT_BOTTOM)$(DRAFT_BOTTOM)) ; \
 930           $(call OptionTrip,-linkoffline,$(MGMT2COREAPI),$(COREAPI_DOCSDIR)/); \
 931         ) >> $@
 932 
 933 # Create a file with the package names in it
 934 $(MGMT_PACKAGES_FILE): $(call PackageDependencies,$(MGMT_PKGS))
 935         $(prep-target)
 936         $(call PackageFilter,$(MGMT_PKGS))
 937 
 938 #############################################################
 939 #
 940 # attachdocs
 941 #
 942 
 943 ALL_OTHER_TARGETS += attachdocs
 944 
 945 ATTACH_DOCDIR := $(JDK_API_DOCSDIR)/attach/spec
 946 ATTACH2COREAPI := ../../$(JDKJRE2COREAPI)
 947 ATTACH_DOCTITLE := Attach API
 948 ATTACH_WINDOWTITLE := Attach API
 949 ATTACH_HEADER := <strong>Attach API</strong>
 950 ATTACH_BOTTOM := $(call CommonBottom,$(ATTACH_FIRST_COPYRIGHT_YEAR))
 951 # ATTACH_PKGS is located in NON_CORE_PKGS.gmk
 952 
 953 ATTACH_INDEX_HTML = $(ATTACH_DOCDIR)/index.html
 954 ATTACH_OPTIONS_FILE = $(DOCSTMPDIR)/attach.options
 955 ATTACH_PACKAGES_FILE = $(DOCSTMPDIR)/attach.packages
 956 
 957 attachdocs: $(ATTACH_INDEX_HTML)
 958 
 959 # Set relative location to core api document root
 960 $(ATTACH_INDEX_HTML): GET2DOCSDIR=$(ATTACH2COREAPI)/..
 961 
 962 # Run javadoc if the index file is out of date or missing
 963 $(ATTACH_INDEX_HTML): $(ATTACH_OPTIONS_FILE) $(ATTACH_PACKAGES_FILE) $(COREAPI_INDEX_FILE)
 964         $(prep-javadoc)
 965         $(call JavadocSummary,$(ATTACH_OPTIONS_FILE),$(ATTACH_PACKAGES_FILE))
 966         $(JAVADOC_CMD) -d $(@D) \
 967             @$(ATTACH_OPTIONS_FILE) @$(ATTACH_PACKAGES_FILE)
 968 
 969 # Create file with javadoc options in it
 970 $(ATTACH_OPTIONS_FILE):
 971         $(prep-target)
 972         @($(call OptionOnly,$(COMMON_JAVADOCFLAGS)) ; \
 973           $(call OptionOnly,-Xdoclint:none) ; \
 974           $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH)) ; \
 975           $(call OptionPair,-encoding,ascii) ; \
 976           $(call OptionOnly,-nodeprecatedlist) ; \
 977           $(call OptionPair,-doctitle,$(ATTACH_DOCTITLE)) ; \
 978           $(call OptionPair,-windowtitle,$(ATTACH_WINDOWTITLE) $(DRAFT_WINTITLE)); \
 979           $(call OptionPair,-header,$(ATTACH_HEADER)$(DRAFT_HEADER)) ; \
 980           $(call OptionPair,-bottom,$(ATTACH_BOTTOM)$(DRAFT_BOTTOM)) ; \
 981           $(call OptionTrip,-linkoffline,$(ATTACH2COREAPI),$(COREAPI_DOCSDIR)/); \
 982         ) >> $@
 983 
 984 # Create a file with the package names in it
 985 $(ATTACH_PACKAGES_FILE): $(call PackageDependencies,$(ATTACH_PKGS))
 986         $(prep-target)
 987         $(call PackageFilter,$(ATTACH_PKGS))
 988 
 989 #############################################################
 990 #
 991 # jconsoledocs
 992 #
 993 
 994 ALL_OTHER_TARGETS += jconsoledocs
 995 
 996 JCONSOLE_DOCDIR := $(JDK_API_DOCSDIR)/jconsole/spec
 997 JCONSOLE2COREAPI := ../../$(JDKJRE2COREAPI)
 998 JCONSOLE_DOCTITLE := JConsole API
 999 JCONSOLE_WINDOWTITLE := JConsole API
1000 JCONSOLE_HEADER := <strong>JConsole API</strong>
1001 JCONSOLE_BOTTOM := $(call CommonBottom,$(JCONSOLE_FIRST_COPYRIGHT_YEAR))
1002 # JCONSOLE_PKGS is located in NON_CORE_PKGS.gmk
1003 
1004 JCONSOLE_INDEX_HTML = $(JCONSOLE_DOCDIR)/index.html
1005 JCONSOLE_OPTIONS_FILE = $(DOCSTMPDIR)/jconsole.options
1006 JCONSOLE_PACKAGES_FILE = $(DOCSTMPDIR)/jconsole.packages
1007 
1008 jconsoledocs: $(JCONSOLE_INDEX_HTML)
1009 
1010 # Set relative location to core api document root
1011 $(JCONSOLE_INDEX_HTML): GET2DOCSDIR=$(JCONSOLE2COREAPI)/..
1012 
1013 # Run javadoc if the index file is out of date or missing
1014 $(JCONSOLE_INDEX_HTML): $(JCONSOLE_OPTIONS_FILE) $(JCONSOLE_PACKAGES_FILE) $(COREAPI_INDEX_FILE)
1015         $(prep-javadoc)
1016         $(call JavadocSummary,$(JCONSOLE_OPTIONS_FILE),$(JCONSOLE_PACKAGES_FILE))
1017         $(JAVADOC_CMD) -d $(@D) \
1018             @$(JCONSOLE_OPTIONS_FILE) @$(JCONSOLE_PACKAGES_FILE)
1019 
1020 # Create file with javadoc options in it
1021 $(JCONSOLE_OPTIONS_FILE):
1022         $(prep-target)
1023         @($(call OptionOnly,$(COMMON_JAVADOCFLAGS)) ; \
1024           $(call OptionOnly,-Xdoclint:none) ; \
1025           $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH)) ; \
1026           $(call OptionPair,-encoding,ascii) ; \
1027           $(call OptionOnly,-nodeprecatedlist) ; \
1028           $(call OptionPair,-doctitle,$(JCONSOLE_DOCTITLE)) ; \
1029           $(call OptionPair,-windowtitle,$(JCONSOLE_WINDOWTITLE) $(DRAFT_WINTITLE)); \
1030           $(call OptionPair,-header,$(JCONSOLE_HEADER)$(DRAFT_HEADER)) ; \
1031           $(call OptionPair,-bottom,$(JCONSOLE_BOTTOM)$(DRAFT_BOTTOM)) ; \
1032           $(call OptionTrip,-linkoffline,$(JCONSOLE2COREAPI),$(COREAPI_DOCSDIR)/); \
1033         ) >> $@
1034 
1035 # Create a file with the package names in it
1036 $(JCONSOLE_PACKAGES_FILE): $(call PackageDependencies,$(JCONSOLE_PKGS))
1037         $(prep-target)
1038         $(call PackageFilter,$(JCONSOLE_PKGS))
1039 
1040 #############################################################
1041 #
1042 # treeapidocs
1043 #
1044 
1045 ALL_OTHER_TARGETS += treeapidocs
1046 
1047 TREEAPI_DOCDIR := $(JDK_API_DOCSDIR)/javac/tree
1048 TREEAPI2COREAPI := ../../$(JDKJRE2COREAPI)
1049 TREEAPI_DOCTITLE := Compiler Tree API
1050 TREEAPI_WINDOWTITLE := Compiler Tree API
1051 TREEAPI_HEADER := <strong>Compiler Tree API</strong>
1052 TREEAPI_BOTTOM := $(call CommonBottom,$(TREEAPI_FIRST_COPYRIGHT_YEAR))
1053 TREEAPI_GROUPNAME := Packages
1054 TREEAPI_REGEXP := com.sun.source.*
1055 # TREEAPI_PKGS is located in NON_CORE_PKGS.gmk
1056 
1057 TREEAPI_INDEX_HTML = $(TREEAPI_DOCDIR)/index.html
1058 TREEAPI_OPTIONS_FILE = $(DOCSTMPDIR)/treeapi.options
1059 TREEAPI_PACKAGES_FILE = $(DOCSTMPDIR)/treeapi.packages
1060 
1061 treeapidocs: $(TREEAPI_INDEX_HTML)
1062 
1063 # Set relative location to core api document root
1064 $(TREEAPI_INDEX_HTML): GET2DOCSDIR=$(TREEAPI2COREAPI)/..
1065 
1066 # Run javadoc if the index file is out of date or missing
1067 $(TREEAPI_INDEX_HTML): $(TREEAPI_OPTIONS_FILE) $(TREEAPI_PACKAGES_FILE) $(COREAPI_INDEX_FILE)
1068         $(prep-javadoc)
1069         $(call JavadocSummary,$(TREEAPI_OPTIONS_FILE),$(TREEAPI_PACKAGES_FILE))
1070         $(JAVADOC_CMD) -d $(@D) \
1071             @$(TREEAPI_OPTIONS_FILE) @$(TREEAPI_PACKAGES_FILE)
1072 
1073 # Create file with javadoc options in it
1074 $(TREEAPI_OPTIONS_FILE):
1075         $(prep-target)
1076         @($(call OptionOnly,$(COMMON_JAVADOCFLAGS)) ; \
1077           $(call OptionOnly,-Xdoclint:all) ; \
1078           $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH)) ; \
1079           $(call OptionPair,-encoding,ascii) ; \
1080           $(call OptionPair,-doctitle,$(TREEAPI_DOCTITLE)) ; \
1081           $(call OptionPair,-windowtitle,$(TREEAPI_WINDOWTITLE) $(DRAFT_WINTITLE)); \
1082           $(call OptionPair,-header,$(TREEAPI_HEADER)$(DRAFT_HEADER)) ; \
1083           $(call OptionPair,-tag,$(TAG_JLS)) ; \
1084           $(call OptionPair,-bottom,$(TREEAPI_BOTTOM)$(DRAFT_BOTTOM)) ; \
1085           $(call OptionTrip,-group,$(TREEAPI_GROUPNAME),$(TREEAPI_REGEXP)); \
1086           $(call OptionTrip,-linkoffline,$(TREEAPI2COREAPI),$(COREAPI_DOCSDIR)/); \
1087         ) >> $@
1088 
1089 # Create a file with the package names in it
1090 $(TREEAPI_PACKAGES_FILE): $(call PackageDependencies,$(TREEAPI_PKGS))
1091         $(prep-target)
1092         $(call PackageFilter,$(TREEAPI_PKGS))
1093 
1094 #############################################################
1095 #
1096 # sctpdocs
1097 #
1098 
1099 ALL_OTHER_TARGETS += sctpdocs
1100 
1101 SCTPAPI_DOCDIR := $(JRE_API_DOCSDIR)/nio/sctp/spec
1102 SCTPAPI2COREAPI := ../../../$(JDKJRE2COREAPI)
1103 SCTPAPI_DOCTITLE := SCTP API
1104 SCTPAPI_WINDOWTITLE := SCTP API
1105 SCTPAPI_HEADER := <strong>SCTP API</strong>
1106 SCTPAPI_BOTTOM := $(call CommonBottom,$(SCTPAPI_FIRST_COPYRIGHT_YEAR))
1107 # SCTPAPI_PKGS is located in NON_CORE_PKGS.gmk
1108 
1109 SCTPAPI_INDEX_HTML = $(SCTPAPI_DOCDIR)/index.html
1110 SCTPAPI_OPTIONS_FILE = $(DOCSTMPDIR)/sctp.options
1111 SCTPAPI_PACKAGES_FILE = $(DOCSTMPDIR)/sctp.packages
1112 
1113 sctpdocs: $(SCTPAPI_INDEX_HTML)
1114 
1115 # Set relative location to core api document root
1116 $(SCTPAPI_INDEX_HTML): GET2DOCSDIR=$(SCTPAPI2COREAPI)/..
1117 
1118 # Run javadoc if the index file is out of date or missing
1119 $(SCTPAPI_INDEX_HTML): $(SCTPAPI_OPTIONS_FILE) $(SCTPAPI_PACKAGES_FILE) $(COREAPI_INDEX_FILE)
1120         $(prep-javadoc)
1121         $(call JavadocSummary,$(SCTPAPI_OPTIONS_FILE),$(SCTPAPI_PACKAGES_FILE))
1122         $(JAVADOC_CMD) -d $(@D) \
1123             @$(SCTPAPI_OPTIONS_FILE) @$(SCTPAPI_PACKAGES_FILE)
1124 
1125 # Create file with javadoc options in it
1126 $(SCTPAPI_OPTIONS_FILE):
1127         $(prep-target)
1128         @($(call OptionOnly,$(COMMON_JAVADOCFLAGS)) ; \
1129           $(call OptionOnly,-Xdoclint:none) ; \
1130           $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH)) ; \
1131           $(call OptionPair,-encoding,ascii) ; \
1132           $(call OptionOnly,-nodeprecatedlist) ; \
1133           $(call OptionPair,-doctitle,$(SCTPAPI_DOCTITLE)) ; \
1134           $(call OptionPair,-windowtitle,$(SCTPAPI_WINDOWTITLE) $(DRAFT_WINTITLE)); \
1135           $(call OptionPair,-header,$(SCTPAPI_HEADER)$(DRAFT_HEADER)) ; \
1136           $(call OptionPair,-bottom,$(SCTPAPI_BOTTOM)$(DRAFT_BOTTOM)) ; \
1137           $(call OptionTrip,-linkoffline,$(SCTPAPI2COREAPI),$(COREAPI_DOCSDIR)/); \
1138         ) >> $@
1139 
1140 # Create a file with the package names in it
1141 $(SCTPAPI_PACKAGES_FILE): $(call PackageDependencies,$(SCTPAPI_PKGS))
1142         $(prep-target)
1143         $(call PackageFilter,$(SCTPAPI_PKGS))
1144 
1145 #############################################################
1146 #
1147 # jdk.net docs
1148 #
1149 
1150 ALL_OTHER_TARGETS += jdknetdocs
1151 
1152 JDKNET_DOCDIR := $(JRE_API_DOCSDIR)/net/socketoptions/spec
1153 JDKNET2COREAPI := ../../../$(JDKJRE2COREAPI)
1154 JDKNET_DOCTITLE := jdk.net API
1155 JDKNET_WINDOWTITLE := jdk.net API
1156 JDKNET_HEADER := <strong>jdk.net API</strong>
1157 JDKNET_BOTTOM := $(call CommonBottom,$(JDKNET_FIRST_COPYRIGHT_YEAR))
1158 JDKNET_PKGS := jdk.net
1159 
1160 JDKNET_INDEX_HTML = $(JDKNET_DOCDIR)/index.html
1161 JDKNET_OPTIONS_FILE = $(DOCSTMPDIR)/jdknet.options
1162 JDKNET_PACKAGES_FILE = $(DOCSTMPDIR)/jdknet.packages
1163 
1164 jdknetdocs: $(JDKNET_INDEX_HTML)
1165 
1166 # Set relative location to core api document root
1167 $(JDKNET_INDEX_HTML): GET2DOCSDIR=$(JDKNET2COREAPI)/..
1168 
1169 # Run javadoc if the index file is out of date or missing
1170 $(JDKNET_INDEX_HTML): $(JDKNET_OPTIONS_FILE) $(JDKNET_PACKAGES_FILE) $(COREAPI_INDEX_FILE)
1171         $(prep-javadoc)
1172         $(call JavadocSummary,$(JDKNET_OPTIONS_FILE),$(JDKNET_PACKAGES_FILE))
1173         $(JAVADOC_CMD) -d $(@D) \
1174             @$(JDKNET_OPTIONS_FILE) @$(JDKNET_PACKAGES_FILE)
1175 
1176 # Create file with javadoc options in it
1177 $(JDKNET_OPTIONS_FILE):
1178         $(prep-target)
1179         @($(call OptionOnly,$(COMMON_JAVADOCFLAGS)) ; \
1180           $(call OptionOnly,-Xdoclint:none) ; \
1181           $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH)) ; \
1182           $(call OptionPair,-encoding,ascii) ; \
1183           $(call OptionOnly,-nodeprecatedlist) ; \
1184           $(call OptionPair,-doctitle,$(JDKNET_DOCTITLE)) ; \
1185           $(call OptionPair,-windowtitle,$(JDKNET_WINDOWTITLE) $(DRAFT_WINTITLE)); \
1186           $(call OptionPair,-header,$(JDKNET_HEADER)$(DRAFT_HEADER)); \
1187           $(call OptionPair,-bottom,$(JDKNET_BOTTOM)$(DRAFT_BOTTOM)); \
1188           $(call OptionTrip,-linkoffline,$(JDKNET2COREAPI),$(COREAPI_DOCSDIR)/); \
1189         ) >> $@
1190 
1191 # Create a file with the package names in it
1192 $(JDKNET_PACKAGES_FILE): $(call PackageDependencies,$(JDKNET_PKGS))
1193         $(prep-target)
1194         $(call PackageFilter,$(JDKNET_PKGS))
1195 
1196 #############################################################
1197 #release version of core packages ########
1198 
1199 # The rel-coredocs and rel-docs targets were added by Eric Armstrong. rel-coredocs
1200 # assumes the kind of large, 32-bit machine used in the javapubs group's docs-release
1201 # process. It specifies memory settings accordingly to maximize performance.
1202 #
1203 # The performance settings, like the sanity check, are most important for the core
1204 # docs--the platform APIs. Running javadoc on those APIs takes a significant amount
1205 # of time and memory. Setting the initial heap size as large as possible is important
1206 # to prevent thrashing as the heap grows. Setting the maximum as large as necessary
1207 # is also important to keep the job from failing.
1208 #
1209 #    -J-Xmx512 sets a maximum of 512, which became necessary in 6.0
1210 #    -J-Xms256 sets starting size to 256 (default is 8)
1211 #
1212 # rel-coredocs also includes a sanity check to help ensure that BUILD_NUMBER and
1213 # MILESTONE are specified properly when docs are built outside of the normal release
1214 # engineering process, with the intention of releasing them on the web or in a downloaded
1215 # docs bundle. (When invoked in release engineering's control build, the values are always
1216 # set properly. But when the targets are run by themselves, they default to b00 and
1217 # "internal"--which silently sabotage the result of a build that can take many hours
1218 # to complete.
1219 
1220 # Maximize performance and ensure that build number & milestone are set.
1221 
1222 rel-coredocs: sanitycheckcoredocs
1223         $(MAKE) coredocs
1224 
1225 rel-docs: rel-coredocs $(ALL_OTHER_TARGETS)
1226 #
1227 # end of production targets
1228 
1229 otherdocs: $(ALL_OTHER_TARGETS)
1230 
1231 clean:
1232         $(RM) -r $(DOCSDIR) $(DOCSTMPDIR)
1233 
1234 #############################################################
1235 # DEBUG TARGET
1236 # List the values defined in the makefile hierarchy, to make sure everything
1237 # is set properly, and to help identify values we can use instead of making new ones.
1238 # (Most of them come from common/shared/Defs.gmk)
1239 #
1240 # Notes:
1241 # * BUILD_NUMBER defaults to b00 if not set on command line with BUILD_NUMBER=<value>
1242 # * MILESTONE defaults to internal unless set to beta, rc, or fcs on command line
1243 #
1244 
1245 #############################################################
1246 .PHONY: all docs coredocs rel-docs otherdocs rel-coredocs \
1247     sanitycheckcoredocs $(ALL_OTHER_TARGETS)