# HG changeset patch # User ihse # Date 1538563874 -7200 # Node ID fe0fad5aebf5fa9732604dd2fef9ba53c4384edc # Parent c331ac5bc80a2b4e382c1fa47e8863436361b871 Move BuildMicrobenchmark.gmk to test directory. diff -r c331ac5bc80a -r fe0fad5aebf5 make/BuildMicrobenchmark.gmk --- a/make/BuildMicrobenchmark.gmk Wed Oct 03 12:49:52 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,113 +0,0 @@ -# -# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# This code is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 only, as -# published by the Free Software Foundation. Oracle designates this -# particular file as subject to the "Classpath" exception as provided -# by Oracle in the LICENSE file that accompanied this code. -# -# This code is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# version 2 for more details (a copy is included in the LICENSE file that -# accompanied this code). -# -# You should have received a copy of the GNU General Public License version -# 2 along with this work; if not, write to the Free Software Foundation, -# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -# or visit www.oracle.com if you need additional information or have any -# questions. -# - -# This must be the first rule -default: all - -include $(SPEC) -include MakeBase.gmk -include JavaCompilation.gmk -include SetupJavaCompilers.gmk - -ifeq ($(JMH_CORE_JAR), ) - $(info Error: JMH is missing. Please use configure --with-jmh.) - $(error Cannot continue) -endif - -#### Variables - -MICROBENCHMARK_SRC := $(TOPDIR)/test/micro -MICROBENCHMARK_JAR := $(IMAGES_OUTPUTDIR)/test/micro/microbenchmarks.jar - -MICROBENCHMARK_OUTPUT := $(SUPPORT_OUTPUTDIR)/test/micro -MICROBENCHMARK_CLASSES := $(MICROBENCHMARK_OUTPUT)/classes -MICROBENCHMARK_JAR_BIN := $(MICROBENCHMARK_OUTPUT)/jar - -JMH_UNPACKED_DIR := $(MICROBENCHMARK_OUTPUT)/jmh_jars -JMH_UNPACKED_JARS_DONE := $(JMH_UNPACKED_DIR)/_unpacked.marker - -# External dependencies -JMH_COMPILE_JARS := $(JMH_CORE_JAR) $(JMH_GENERATOR_JAR) -JMH_RUNTIME_JARS := $(JMH_CORE_JAR) $(JMH_COMMONS_MATH_JAR) $(JMH_JOPT_SIMPLE_JAR) - -MICROBENCHMARK_CLASSPATH := $(call PathList, $(JMH_COMPILE_JARS)) - -### - -# Need double \n to get new lines and no trailing spaces -MICROBENCHMARK_MANIFEST := Build: $(FULL_VERSION)\n\ -\nJMH-Version: $(JMH_VERSION)\n\ -\nName: OpenJDK Microbenchmark Suite - - -#### Compile Targets - -# Building microbenchmark requires the jdk.unsupported and java.management modules, -# and to have sjavac disabled. -$(eval $(call SetupJavaCompiler, MICROBENCHMARK_JAVA_COMPILER, \ - JVM := $(JAVA_SMALL) --add-modules jdk.unsupported --limit-modules java.management, \ - JAVAC := $(NEW_JAVAC), \ - DISABLE_SJAVAC := true, \ - FLAGS := --upgrade-module-path $(JDK_OUTPUTDIR)/modules --system none $(DISABLE_WARNINGS), \ - SERVER_DIR := $(SJAVAC_SERVER_DIR), \ - SERVER_JVM := $(SJAVAC_SERVER_JAVA), \ -)) - -# Build microbenchmark suite for the current JDK -$(eval $(call SetupJavaCompilation, BUILD_JDK_MICROBENCHMARK, \ - SETUP := MICROBENCHMARK_JAVA_COMPILER, \ - ADD_JAVAC_FLAGS := -cp $(MICROBENCHMARK_CLASSPATH) -Xlint -Werror, \ - SRC := $(MICROBENCHMARK_SRC), \ - BIN := $(MICROBENCHMARK_CLASSES), \ -)) - -$(BUILD_JDK_MICROBENCHMARK): $(JMH_COMPILE_JARS) - -# Unpacking dependencies for inclusion in the benchmark JARs -$(JMH_UNPACKED_JARS_DONE): $(JMH_RUNTIME_JARS) - $(RM) -r $(JMH_UNPACKED_DIR) - $(MKDIR) -p $(JMH_UNPACKED_DIR) - $(foreach jar, $(JMH_RUNTIME_JARS), \ - $$($(UNZIP) -oq $(jar) -d $(JMH_UNPACKED_DIR))) - $(RM) -r $(JMH_UNPACKED_DIR)/META-INF - $(RM) $(JMH_UNPACKED_DIR)/*.xml - $(TOUCH) $@ - -# Create benchmarks JAR file with benchmarks for both the old and new JDK -$(eval $(call SetupJarArchive, BUILD_JDK_JAR, \ - DEPENDENCIES := $(BUILD_JDK_MICROBENCHMARK) $(JMH_UNPACKED_JARS_DONE), \ - SRCS := $(MICROBENCHMARK_CLASSES) $(JMH_UNPACKED_DIR), \ - BIN := $(MICROBENCHMARK_JAR_BIN), \ - SUFFIXES := .*, \ - EXCLUDE_FILES:= _the.BUILD_JDK_MICROBENCHMARK_batch \ - _the.BUILD_JDK_MICROBENCHMARK.vardeps _unpacked.marker, \ - EXTRA_MANIFEST_ATTR := $(MICROBENCHMARK_MANIFEST), \ - JARMAIN := org.openjdk.jmh.Main, \ - JAR := $(MICROBENCHMARK_JAR), \ -)) - -all: $(MICROBENCHMARK_JAR) - -.PHONY: all diff -r c331ac5bc80a -r fe0fad5aebf5 make/Main.gmk --- a/make/Main.gmk Wed Oct 03 12:49:52 2018 +0200 +++ b/make/Main.gmk Wed Oct 03 12:51:14 2018 +0200 @@ -528,7 +528,7 @@ endif build-microbenchmark: - +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f BuildMicrobenchmark.gmk) + +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f test/BuildMicrobenchmark.gmk) ALL_TARGETS += prepare-test-image build-test-hotspot-jtreg-native \ test-image-hotspot-jtreg-native build-test-jdk-jtreg-native \ diff -r c331ac5bc80a -r fe0fad5aebf5 make/test/BuildMicrobenchmark.gmk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make/test/BuildMicrobenchmark.gmk Wed Oct 03 12:51:14 2018 +0200 @@ -0,0 +1,113 @@ +# +# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +# This must be the first rule +default: all + +include $(SPEC) +include MakeBase.gmk +include JavaCompilation.gmk +include SetupJavaCompilers.gmk + +ifeq ($(JMH_CORE_JAR), ) + $(info Error: JMH is missing. Please use configure --with-jmh.) + $(error Cannot continue) +endif + +#### Variables + +MICROBENCHMARK_SRC := $(TOPDIR)/test/micro +MICROBENCHMARK_JAR := $(IMAGES_OUTPUTDIR)/test/micro/microbenchmarks.jar + +MICROBENCHMARK_OUTPUT := $(SUPPORT_OUTPUTDIR)/test/micro +MICROBENCHMARK_CLASSES := $(MICROBENCHMARK_OUTPUT)/classes +MICROBENCHMARK_JAR_BIN := $(MICROBENCHMARK_OUTPUT)/jar + +JMH_UNPACKED_DIR := $(MICROBENCHMARK_OUTPUT)/jmh_jars +JMH_UNPACKED_JARS_DONE := $(JMH_UNPACKED_DIR)/_unpacked.marker + +# External dependencies +JMH_COMPILE_JARS := $(JMH_CORE_JAR) $(JMH_GENERATOR_JAR) +JMH_RUNTIME_JARS := $(JMH_CORE_JAR) $(JMH_COMMONS_MATH_JAR) $(JMH_JOPT_SIMPLE_JAR) + +MICROBENCHMARK_CLASSPATH := $(call PathList, $(JMH_COMPILE_JARS)) + +### + +# Need double \n to get new lines and no trailing spaces +MICROBENCHMARK_MANIFEST := Build: $(FULL_VERSION)\n\ +\nJMH-Version: $(JMH_VERSION)\n\ +\nName: OpenJDK Microbenchmark Suite + + +#### Compile Targets + +# Building microbenchmark requires the jdk.unsupported and java.management modules, +# and to have sjavac disabled. +$(eval $(call SetupJavaCompiler, MICROBENCHMARK_JAVA_COMPILER, \ + JVM := $(JAVA_SMALL) --add-modules jdk.unsupported --limit-modules java.management, \ + JAVAC := $(NEW_JAVAC), \ + DISABLE_SJAVAC := true, \ + FLAGS := --upgrade-module-path $(JDK_OUTPUTDIR)/modules --system none $(DISABLE_WARNINGS), \ + SERVER_DIR := $(SJAVAC_SERVER_DIR), \ + SERVER_JVM := $(SJAVAC_SERVER_JAVA), \ +)) + +# Build microbenchmark suite for the current JDK +$(eval $(call SetupJavaCompilation, BUILD_JDK_MICROBENCHMARK, \ + SETUP := MICROBENCHMARK_JAVA_COMPILER, \ + ADD_JAVAC_FLAGS := -cp $(MICROBENCHMARK_CLASSPATH) -Xlint -Werror, \ + SRC := $(MICROBENCHMARK_SRC), \ + BIN := $(MICROBENCHMARK_CLASSES), \ +)) + +$(BUILD_JDK_MICROBENCHMARK): $(JMH_COMPILE_JARS) + +# Unpacking dependencies for inclusion in the benchmark JARs +$(JMH_UNPACKED_JARS_DONE): $(JMH_RUNTIME_JARS) + $(RM) -r $(JMH_UNPACKED_DIR) + $(MKDIR) -p $(JMH_UNPACKED_DIR) + $(foreach jar, $(JMH_RUNTIME_JARS), \ + $$($(UNZIP) -oq $(jar) -d $(JMH_UNPACKED_DIR))) + $(RM) -r $(JMH_UNPACKED_DIR)/META-INF + $(RM) $(JMH_UNPACKED_DIR)/*.xml + $(TOUCH) $@ + +# Create benchmarks JAR file with benchmarks for both the old and new JDK +$(eval $(call SetupJarArchive, BUILD_JDK_JAR, \ + DEPENDENCIES := $(BUILD_JDK_MICROBENCHMARK) $(JMH_UNPACKED_JARS_DONE), \ + SRCS := $(MICROBENCHMARK_CLASSES) $(JMH_UNPACKED_DIR), \ + BIN := $(MICROBENCHMARK_JAR_BIN), \ + SUFFIXES := .*, \ + EXCLUDE_FILES:= _the.BUILD_JDK_MICROBENCHMARK_batch \ + _the.BUILD_JDK_MICROBENCHMARK.vardeps _unpacked.marker, \ + EXTRA_MANIFEST_ATTR := $(MICROBENCHMARK_MANIFEST), \ + JARMAIN := org.openjdk.jmh.Main, \ + JAR := $(MICROBENCHMARK_JAR), \ +)) + +all: $(MICROBENCHMARK_JAR) + +.PHONY: all