diff --git a/make/Main.gmk b/make/Main.gmk index c25856f5e3a..3f30e9b7fe4 100644 --- a/make/Main.gmk +++ b/make/Main.gmk @@ -285,9 +285,12 @@ test-image-jdk-jtreg-native: +($(CD) $(JDK_TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregNative.gmk \ test-image-jdk-jtreg-native) +build-test-lib: + +($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f BuildTestLib.gmk) + ALL_TARGETS += prepare-test-image build-test-hotspot-jtreg-native \ test-image-hotspot-jtreg-native build-test-jdk-jtreg-native \ - test-image-jdk-jtreg-native + test-image-jdk-jtreg-native build-test-lib ################################################################################ # Run tests @@ -553,7 +556,7 @@ ALL_TARGETS += default jdk images docs all CLEAN_DIRS += hotspot jdk bootcycle-build test buildtools support \ images make-support test-make bundles CLEAN_DIR_TARGETS := $(addprefix clean-, $(CLEAN_DIRS)) -CLEAN_TESTS += hotspot-jtreg-native jdk-jtreg-native +CLEAN_TESTS += hotspot-jtreg-native jdk-jtreg-native lib CLEAN_TEST_TARGETS += $(addprefix clean-test-, $(CLEAN_TESTS)) CLEAN_PHASES := gensrc java native include docs CLEAN_PHASE_TARGETS := $(addprefix clean-, $(CLEAN_PHASES)) diff --git a/make/test/BuildTestLib.gmk b/make/test/BuildTestLib.gmk new file mode 100644 index 00000000000..70c9da3c783 --- /dev/null +++ b/make/test/BuildTestLib.gmk @@ -0,0 +1,67 @@ +# +# Copyright (c) 2015, 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. +# + +default: all + +include $(SPEC) +include MakeBase.gmk +include JavaCompilation.gmk +include SetupJavaCompilers.gmk + +TARGETS := + +TEST_LIB_SOURCE_DIR := $(TOPDIR)/test/lib +TEST_LIB_SUPPORT := $(SUPPORT_OUTPUTDIR)/test/lib + +# Unfortunately, test-lib.jar does not compile properly without warnings. +$(eval $(call SetupJavaCompiler, BOOT_JAVAC_NOWARNINGS, \ + JAVAC := $(JAVAC), \ + FLAGS := -XDignore.symbol.file=true -g, \ +)) + +$(eval $(call SetupJavaCompilation, BUILD_WB_JAR, \ + SETUP := BOOT_JAVAC, \ + SRC := $(TEST_LIB_SOURCE_DIR)/sun, \ + BIN := $(TEST_LIB_SUPPORT), \ + JAR := $(TEST_LIB_SUPPORT)/wb.jar, \ +)) + +TARGETS += $(BUILD_WB_JAR) + +# test-lib.jar will contain only hprof classes until JDK-8081381 is resolved +$(eval $(call SetupJavaCompilation, BUILD_TEST_LIB_JAR, \ + SETUP := BOOT_JAVAC_NOWARNINGS, \ + SRC := $(TEST_LIB_SOURCE_DIR)/share/classes/jdk/test/lib/hprof, \ + BIN := $(TEST_LIB_SUPPORT), \ + JAR := $(TEST_LIB_SUPPORT)/test-lib.jar, \ +)) + +TARGETS += $(BUILD_TEST_LIB_JAR) + +########################################################################################## + +all: $(TARGETS) + +.PHONY: default all diff --git a/test/lib/Makefile b/test/lib/Makefile deleted file mode 100644 index 4bb734a5ee3..00000000000 --- a/test/lib/Makefile +++ /dev/null @@ -1,79 +0,0 @@ -# -# Copyright (c) 2013, 2015, 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. -# -# 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. -# - -# Utility Makefile that creates wb.jar, which is used to simplify using -# the Whitebox API outside the jtreg-testbase. - -ifneq "x$(ALT_BOOTDIR)" "x" - BOOTDIR := $(ALT_BOOTDIR) -endif - -ifeq "x$(BOOTDIR)" "x" - JDK_HOME := $(shell dirname $(shell which java))/.. -else - JDK_HOME := $(BOOTDIR) -endif - -SRC_DIR = ./ -BUILD_DIR = build -OUTPUT_DIR = $(BUILD_DIR)/classes - -JAVAC = $(JDK_HOME)/bin/javac -JAR = $(JDK_HOME)/bin/jar - -WB_SRC_FILES = $(shell find $(SRC_DIR)/sun/hotspot -name '*.java') -# test-lib.jar will contain only hprof classes until JDK-8081381 is resolved -SHARE_SRC_FILES = $(shell find $(SRC_DIR)/share/classes/jdk/test/lib/hprof -name '*.java') - -.PHONY: wb.filelist share.filelist clean cleantmp - -all: wb.jar test-lib.jar cleantmp - -wb.jar: wb.filelist - @mkdir -p $(OUTPUT_DIR) - $(JAVAC) -sourcepath $(SRC_DIR) -d $(OUTPUT_DIR) -cp $(OUTPUT_DIR) @wb.filelist - $(JAR) cf wb.jar -C $(OUTPUT_DIR) . - @rm -rf $(OUTPUT_DIR) - -wb.filelist: $(WB_SRC_FILES) - @rm -f $@ - @echo $(WB_SRC_FILES) > $@ - -test-lib.jar: share.filelist - @mkdir -p $(OUTPUT_DIR) - $(JAVAC) -sourcepath $(SRC_DIR) -d $(OUTPUT_DIR) -cp $(OUTPUT_DIR) @share.filelist - $(JAR) cf test-lib.jar -C $(OUTPUT_DIR) . - @rm -rf $(OUTPUT_DIR) - -share.filelist: $(SHARE_SRC_FILES) - @rm -f $@ - @echo $(SHARE_SRC_FILES) > $@ - -clean: cleantmp - @rm -rf wb.jar - @rm -rf test-list.jar - -cleantmp: - @rm -rf wb.filelist - @rm -rf share.filelist - @rm -rf $(BUILD_DIR)