make/Javadoc.gmk

Print this page

        

*** 219,228 **** --- 219,233 ---- COREAPI_DOCSDIR = $(DOCSDIR)/api JDK_API_DOCSDIR = $(DOCSDIR)/jdk/api JRE_API_DOCSDIR = $(DOCSDIR)/jre/api PLATFORM_DOCSDIR = $(DOCSDIR)/platform + JAVADOC_ARCHIVE_NAME := jdk-$(FULL_VERSION)-docs.zip + JAVADOC_ARCHIVE_ASSEMBLY_DIR := $(DOCSTMPDIR)/docs-zip + JAVADOC_ARCHIVE_DIR := $(OUTPUT_ROOT)/bundles + JAVADOC_ARCHIVE := $(JAVADOC_ARCHIVE_DIR)/$(JAVADOC_ARCHIVE_NAME) + # 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: JDKJRE2COREAPI = ../../api
*** 327,336 **** --- 332,372 ---- # all: docs docs: coredocs otherdocs + # + # Optional target which bundles all generated javadocs into a zip + # archive. The dependency on docs is handled in Main.gmk. Incremental + # building of docs is currently broken so if you invoke docs-zip after + # docs, the docs are always rebuilt. + # + + docs-zip: $(JAVADOC_ARCHIVE) + + # + # 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): $(COREAPI_INDEX_FILE) + @$(ECHO) $(LOG_INFO) "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) $(DOCSDIR) | $(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 ; + ################################################################# # Production Targets -- USE THESE TARGETS WHEN: # a) You're generating docs outside of release engineering's # standard control build. # b) The docs will be pushed to the web and/or included in
*** 1370,1375 **** # * MILESTONE defaults to internal unless set to beta, rc, or fcs on command line # ############################################################# .PHONY: all docs coredocs rel-docs otherdocs rel-coredocs \ ! sanitycheckcoredocs $(ALL_OTHER_TARGETS) --- 1406,1411 ---- # * MILESTONE defaults to internal unless set to beta, rc, or fcs on command line # ############################################################# .PHONY: all docs coredocs rel-docs otherdocs rel-coredocs \ ! sanitycheckcoredocs $(ALL_OTHER_TARGETS) docs-zip