8058118: Generate modules.list during the build

Reviewed-by: alanb, ihse, tbell, mchung
This commit is contained in:
Erik Joelsson 2014-09-16 12:08:04 +02:00
parent 2edb29385b
commit beef993046
7 changed files with 50 additions and 69 deletions

View File

@ -70,8 +70,8 @@ else
# Run the makefile with an arbitrary SPEC using -p -q (quiet dry-run and dump rules) to find
# available PHONY targets. Use this list as valid targets to pass on to the repeated calls.
all_phony_targets := $(sort $(filter-out $(global_targets), $(strip $(shell \
cd $(root_dir)/make && $(MAKE) -f Main.gmk -p -q FRC SPEC=$(firstword $(SPEC)) | \
grep "^.PHONY:" | head -n 1 | cut -d " " -f 2-))))
cd $(root_dir)/make && $(MAKE) -f Main.gmk -p -q FRC SPEC=$(firstword $(SPEC)) \
-I $(root_dir)/make/common | grep "^.PHONY:" | head -n 1 | cut -d " " -f 2-))))
# Loop through the configurations and call the main-wrapper for each one. The wrapper
# target will execute with a single configuration loaded.
@ -115,12 +115,12 @@ else
main-wrapper:
ifneq ($(SEQUENTIAL_TARGETS), )
(cd $(root_dir)/make && $(MAKE) -f Main.gmk SPEC=$(SPEC) -j 1 \
(cd $(SRC_ROOT)/make && $(MAKE) -f Main.gmk SPEC=$(SPEC) -j 1 \
$(VERBOSE) VERBOSE=$(VERBOSE) LOG_LEVEL=$(LOG_LEVEL) $(SEQUENTIAL_TARGETS))
endif
ifneq ($(PARALLEL_TARGETS), )
@$(call AtMakeStart)
(cd $(root_dir)/make && $(BUILD_LOG_WRAPPER) $(MAKE) -f Main.gmk SPEC=$(SPEC) -j $(JOBS) \
(cd $(SRC_ROOT)/make && $(BUILD_LOG_WRAPPER) $(MAKE) -f Main.gmk SPEC=$(SPEC) -j $(JOBS) \
$(VERBOSE) VERBOSE=$(VERBOSE) LOG_LEVEL=$(LOG_LEVEL) $(PARALLEL_TARGETS) \
$(if $(filter true, $(OUTPUT_SYNC_SUPPORTED)), -O$(OUTPUT_SYNC)))
@$(call AtMakeEnd)

View File

@ -245,6 +245,7 @@ JDK_OUTPUTDIR=$(BUILD_OUTPUT)/jdk
NASHORN_OUTPUTDIR=$(BUILD_OUTPUT)/nashorn
IMAGES_OUTPUTDIR=$(BUILD_OUTPUT)/images
TESTMAKE_OUTPUTDIR=$(BUILD_OUTPUT)/testmake
MAKESUPPORT_OUTPUTDIR=$(BUILD_OUTPUT)/make-support
LANGTOOLS_DIST=$(LANGTOOLS_OUTPUTDIR)/dist
CORBA_DIST=$(CORBA_OUTPUTDIR)/dist

View File

@ -493,7 +493,7 @@ ALL_TARGETS += default all
# file.
CLEAN_COMPONENTS += langtools corba hotspot jdk nashorn images \
bootcycle-build docs docstemp test
bootcycle-build docs docstemp test make-support
CLEAN_TARGETS := $(addprefix clean-, $(CLEAN_COMPONENTS))
# Remove everything, except the output from configure.

View File

@ -26,6 +26,9 @@
ifndef _MODULES_GMK
_MODULES_GMK := 1
include JavaCompilation.gmk
include SetupJavaCompilers.gmk
################################################################################
# Module list macros
@ -50,8 +53,32 @@ define FindJavaModules
$(patsubst %,%/*/$(OPENJDK_TARGET_OS)/classes/*, $(ALL_TOP_SRC_DIRS))))))))))))
endef
MODULES_LIST_FILE := $(SRC_ROOT)/make/common/modules.list
MODULE_DEPS_MAKEFILE := $(OUTPUT_ROOT)/module-deps.gmk
# Find all modules with source for the target platform.
define FindAllModules
$(sort $(filter-out closed demo sample, $(notdir $(patsubst %/,%, $(dir \
$(wildcard $(patsubst %, %/*/share, $(ALL_TOP_SRC_DIRS)) \
$(patsubst %, %/*/$(OPENJDK_TARGET_OS), $(ALL_TOP_SRC_DIRS)) \
$(patsubst %, %/*/$(OPENJDK_TARGET_OS_API_DIR), $(ALL_TOP_SRC_DIRS))))))))
endef
################################################################################
$(eval $(call SetupJavaCompilation,BUILD_GENMODULESLIST, \
SETUP := BOOT_JAVAC, \
SRC := $(JDK_TOPDIR)/make/src/classes, \
INCLUDES := build/tools/module, \
BIN := $(MAKESUPPORT_OUTPUTDIR)/bt_classes_moduleslist))
TOOL_GENMODULESLIST = $(JAVA_SMALL) \
-cp "$(MAKESUPPORT_OUTPUTDIR)/bt_classes_moduleslist" \
build.tools.module.GenModulesList
MODULES_LIST_FILE := $(MAKESUPPORT_OUTPUTDIR)/modules.list
MODULE_DEPS_MAKEFILE := $(MAKESUPPORT_OUTPUTDIR)/module-deps.gmk
$(MODULES_LIST_FILE): $(SRC_ROOT)/modules.xml \
$(BUILD_GENMODULESLIST)
$(TOOL_GENMODULESLIST) -o $@ $(filter %.xml, $^)
$(MODULE_DEPS_MAKEFILE): $(MODULES_LIST_FILE)
$(CAT) $^ | $(SED) -e 's/^\([^:]*\):/DEPS_\1 :=/g' > $@
@ -63,14 +90,6 @@ define FindDepsForModule
$(DEPS_$(strip $1))
endef
# Find all modules with source for the target platform.
define FindAllModules
$(sort $(filter-out closed demo sample, $(notdir $(patsubst %/,%, $(dir \
$(wildcard $(patsubst %, %/*/share, $(ALL_TOP_SRC_DIRS)) \
$(patsubst %, %/*/$(OPENJDK_TARGET_OS), $(ALL_TOP_SRC_DIRS)) \
$(patsubst %, %/*/$(OPENJDK_TARGET_OS_API_DIR), $(ALL_TOP_SRC_DIRS))))))))
endef
################################################################################
# Hook to include the corresponding custom file, if present.

View File

@ -34,6 +34,12 @@ DISABLE_WARNINGS := -Xlint:all,-deprecation,-unchecked,-rawtypes,-cast,-serial,-
# make JAVAC_WARNINGS="-Xlint:all -Xmaxwarns 10000"
JAVAC_WARNINGS := -Xlint:all,-deprecation -Werror
# The BOOT_JAVAC setup uses the boot jdk compiler to compile the tools
# and the interim javac, to be run by the boot jdk.
$(eval $(call SetupJavaCompiler,BOOT_JAVAC, \
JAVAC := $(JAVAC), \
FLAGS := -XDignore.symbol.file=true -g -Xlint:all$(COMMA)-deprecation -Werror))
# Any java code executed during a JDK build to build other parts of the JDK must be
# executed by the bootstrap JDK (probably with -Xbootclasspath/p: ) and for this
# purpose must be built with -target PREVIOUS for bootstrapping purposes, which

View File

@ -1,54 +0,0 @@
java.base:
java.logging: java.base
java.security.sasl: java.logging java.base
java.naming: java.security.sasl java.base
java.security.acl: java.base
jdk.charsets: java.base
java.scripting: java.base
java.xml: java.base
java.sql: java.xml java.logging java.base
jdk.scripting.nashorn: java.scripting java.logging java.base
java.rmi: java.logging java.base
java.prefs: java.xml java.base
java.desktop: jdk.charsets java.prefs java.xml java.logging java.base
java.corba: java.naming java.rmi java.desktop java.logging java.base
java.compiler: java.logging java.base
jdk.compiler: java.compiler java.base
jdk.javadoc: java.compiler java.xml jdk.compiler java.base
jdk.rmic: java.corba jdk.compiler jdk.javadoc java.base
jdk.jvmstat: java.rmi java.base
jdk.attach: jdk.jvmstat java.base
jdk.jcmd: jdk.jvmstat jdk.attach java.base
jdk.jdi: jdk.attach java.base
jdk.hotspot.agent: java.rmi java.scripting java.desktop java.base jdk.jdi
jdk.hprof.agent: java.base
java.management: java.naming java.rmi java.logging java.base
jdk.jconsole: java.management jdk.jvmstat java.rmi jdk.attach java.desktop java.logging java.base
java.activation: java.desktop java.logging java.base
java.xml.bind: java.activation java.compiler java.xml java.desktop java.logging java.base
jdk.xml.bind: java.activation java.compiler java.xml.bind java.xml java.desktop java.logging jdk.compiler java.base
jdk.httpserver: java.logging java.base
java.annotations.common: java.base
java.xml.soap: java.activation java.xml.bind java.xml java.desktop java.logging java.base
java.xml.ws: java.activation java.management jdk.httpserver java.rmi java.annotations.common java.xml.bind java.xml java.desktop java.logging java.xml.soap java.base
jdk.xml.ws: jdk.xml.bind java.compiler java.rmi java.xml.ws java.xml.bind java.xml java.logging java.base
java.sql.rowset: java.naming java.sql java.xml java.logging java.base
java.instrument: java.base
java.security.jgss: java.naming java.security.sasl java.logging java.base
java.xml.crypto: java.xml java.logging java.base
jdk.localedata: java.base
jdk.crypto.ec: java.base
jdk.crypto.pkcs11: jdk.crypto.ec java.base
jdk.crypto.mscapi: java.base
jdk.naming.rmi: java.naming java.rmi java.base
jdk.zipfs: java.base
jdk.naming.dns: java.naming java.base
java.smartcardio: java.base
jdk.dev: jdk.xml.bind jdk.xml.ws java.scripting jdk.rmic java.xml jdk.compiler java.base
jdk.snmp: java.management java.security.acl java.logging java.base
jdk.jdwp.agent: java.base
jdk.security.auth: java.naming java.security.jgss java.base
jdk.sctp: java.base
jdk.runtime: java.desktop java.base
jdk.jfr: java.management java.xml java.base
jdk.deploy.osx: java.scripting java.desktop java.base

View File

@ -327,6 +327,7 @@
</export>
<export>
<name>sun.security.internal.spec</name>
<to>jdk.crypto.mscapi</to>
<to>jdk.crypto.pkcs11</to>
<to>jdk.crypto.ucrypto</to>
</export>
@ -731,6 +732,10 @@
<export>
<name>javax.swing.undo</name>
</export>
<export>
<name>sun.awt</name>
<to>oracle.accessbridge</to>
</export>
</module>
<module>
<name>java.instrument</name>
@ -1570,6 +1575,10 @@
<to>jdk.crypto.pkcs11</to>
</export>
</module>
<module>
<name>jdk.crypto.mscapi</name>
<depend>java.base</depend>
</module>
<module>
<name>jdk.crypto.pkcs11</name>
<depend>java.base</depend>