8142336: Convert the SA agent build to modular build-infra makefiles
Reviewed-by: ihse, sla, dsamersoff, twisti
--- a/make/CompileJavaModules.gmk Mon Nov 23 14:41:54 2015 -0500
+++ b/make/CompileJavaModules.gmk Tue Nov 24 12:18:24 2015 +0100
@@ -361,6 +361,29 @@
################################################################################
+jdk.hotspot.agent_SRC += \
+ $(SUPPORT_OUTPUTDIR)/gensrc/jdk.hotspot.agent \
+ $(HOTSPOT_TOPDIR)/agent/src/share/classes \
+ #
+jdk.hotspot.agent_ADD_JAVAC_FLAGS := $(DISABLE_WARNINGS),-overrides
+jdk.hotspot.agent_COPY := .png sa.js .properties
+
+ifeq ($(MODULE), jdk.hotspot.agent)
+ ### Copy gif files
+ # Special handling to copy gif files in images/toolbarButtonGraphics \
+ # -> classes/toolbarButtonGraphics.
+ # These can't be handled by COPY to SetupJavaCompilation since they chop off
+ # one directory level.
+ $(eval $(call SetupCopyFiles, COPY_SA_IMAGES, \
+ SRC := $(HOTSPOT_TOPDIR)/agent/src/share/classes/images, \
+ DEST := $(JDK_OUTPUTDIR)/modules/$(MODULE), \
+ FILES := $(wildcard $(HOTSPOT_TOPDIR)/agent/src/share/classes/images/*/*/*.gif), \
+ ))
+ jdk.hotspot.agent: $(COPY_SA_IMAGES)
+endif
+
+################################################################################
+
jdk.internal.le_COPY := .properties
################################################################################
@@ -535,11 +558,6 @@
ifneq ($(BUILD_CRYPTO), true)
$1_CLASSPATH += $(JDK_OUTPUTDIR)/modules/$1
endif
- ifeq ($1, jdk.hotspot.agent)
- ## The source of this module is compiled elsewhere, hotspot, and imported.
- ## Service types are required in the classpath when compiing module-info
- $1_CLASSPATH := $$($1_CLASSPATH) $$(addprefix $(JDK_OUTPUTDIR)/modules/,jdk.hotspot.agent)
- endif
$1_JAVAC_FLAGS := -bootclasspath $(EMPTY_DIR) -extdirs $(EMPTY_DIR) -endorseddirs $(EMPTY_DIR) $$($1_ADD_JAVAC_FLAGS)
$$(eval $$(call SetupJavaCompilation,$1, \
--- a/make/Images.gmk Mon Nov 23 14:41:54 2015 -0500
+++ b/make/Images.gmk Tue Nov 24 12:18:24 2015 +0100
@@ -27,6 +27,7 @@
include $(SPEC)
include MakeBase.gmk
+include Modules.gmk
TOOL_TARGETS :=
JDK_TARGETS :=
@@ -64,8 +65,8 @@
MAIN_MODULES += jdk.deploy.osx
endif
-JRE_MODULES := $(MAIN_MODULES) $(PROVIDER_MODULES)
-JDK_MODULES := $(JRE_MODULES) $(TOOLS_MODULES)
+JRE_MODULES := $(filter-out $(MODULES_FILTER), $(MAIN_MODULES) $(PROVIDER_MODULES))
+JDK_MODULES := $(filter-out $(MODULES_FILTER), $(JRE_MODULES) $(TOOLS_MODULES))
# compact3 builds have additional modules
JDK_COMPACT3_MODULES := java.compact3 java.smartcardio jdk.httpserver jdk.naming.dns \
--- a/make/Main.gmk Mon Nov 23 14:41:54 2015 -0500
+++ b/make/Main.gmk Tue Nov 24 12:18:24 2015 +0100
@@ -53,8 +53,7 @@
$(eval $(call IncludeCustomExtension, , Main.gmk))
# All modules for the current target platform.
-# Manually add jdk.hotspot.agent for now.
-ALL_MODULES := $(call FindAllModules) jdk.hotspot.agent
+ALL_MODULES := $(call FindAllModules)
################################################################################
################################################################################
@@ -423,11 +422,6 @@
# virtual target.
jdk.jdwp.agent-libs: jdk.jdwp.agent-gensrc
- # Until the module system is in place, jdk.jdi-gensrc needs to combine service
- # loader configuration with jdk.hotspot.agent so is dependent on importing
- # hotspot.
- jdk.jdi-gensrc-jdk: import-hotspot
-
# The swing beans need to have java base properly generated to avoid errors
# in javadoc.
java.desktop-gensrc-jdk: java.base-gensrc
--- a/make/common/Modules.gmk Mon Nov 23 14:41:54 2015 -0500
+++ b/make/common/Modules.gmk Tue Nov 24 12:18:24 2015 +0100
@@ -30,6 +30,12 @@
include SetupJavaCompilers.gmk
################################################################################
+# Some platforms don't have the serviceability agent
+ifeq ($(INCLUDE_SA), false)
+ MODULES_FILTER += jdk.hotspot.agent
+endif
+
+################################################################################
# Module list macros
ALL_TOP_SRC_DIRS := \
@@ -43,21 +49,25 @@
#
# Find all modules with java sources by looking in the source dirs
+# jdk.hotspot.agent currently doesn't comply with source dir policy.
define FindJavaModules
$(filter-out $(MODULES_FILTER), $(sort $(notdir \
$(patsubst %/,%, $(dir $(patsubst %/,%, $(dir $(patsubst %/,%, $(dir \
$(wildcard $(patsubst %,%/*/share/classes/*, $(ALL_TOP_SRC_DIRS)) \
$(patsubst %,%/*/$(OPENJDK_TARGET_OS)/classes/*, $(ALL_TOP_SRC_DIRS)) \
- $(patsubst %,%/*/$(OPENJDK_TARGET_OS_TYPE)/classes/*, $(ALL_TOP_SRC_DIRS))))))))))))
+ $(patsubst %,%/*/$(OPENJDK_TARGET_OS_TYPE)/classes/*, $(ALL_TOP_SRC_DIRS))))))))))) \
+ jdk.hotspot.agent)
endef
# Find all modules with source for the target platform.
+# jdk.hotspot.agent currently doesn't comply with source dir policy.
define FindAllModules
$(sort $(filter-out $(MODULES_FILTER) 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_TYPE), $(ALL_TOP_SRC_DIRS))))))))
+ $(patsubst %, %/*/$(OPENJDK_TARGET_OS_TYPE), $(ALL_TOP_SRC_DIRS)))))) \
+ jdk.hotspot.agent))
endef
################################################################################
--- a/make/common/NativeCompilation.gmk Mon Nov 23 14:41:54 2015 -0500
+++ b/make/common/NativeCompilation.gmk Tue Nov 24 12:18:24 2015 +0100
@@ -294,6 +294,10 @@
# LD the linker to use, default is $(LD)
# OPTIMIZATION sets optimization level to NONE, LOW, HIGH, HIGHEST
# DISABLED_WARNINGS_<toolchain> Disable the given warnings for the specified toolchain
+# DISABLED_WARNINGS_C_<toolchain> Disable the given warnings for the specified toolchain
+# when compiling C code
+# DISABLED_WARNINGS_CXX_<toolchain> Disable the given warnings for the specified
+# toolchain when compiling C++ code
# STRIP_SYMBOLS Set to true to strip the final binary if the toolchain allows for it
# STRIPFLAGS Optionally change the flags given to the strip command
SetupNativeCompilation = $(NamedParamsMacroTemplate)
@@ -537,8 +541,12 @@
# Pick up disabled warnings, if possible on this platform.
ifneq ($(DISABLE_WARNING_PREFIX),)
- $1_EXTRA_CFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), $$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)))
- $1_EXTRA_CXXFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), $$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)))
+ $1_EXTRA_CFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), \
+ $$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)) \
+ $$($1_DISABLED_WARNINGS_C_$(TOOLCHAIN_TYPE)))
+ $1_EXTRA_CXXFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), \
+ $$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)) \
+ $$($1_DISABLED_WARNINGS_CXX_$(TOOLCHAIN_TYPE)))
endif
# Check if warnings should be considered errors.