1 # 2 # Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 # 5 # This code is free software; you can redistribute it and/or modify it 6 # under the terms of the GNU General Public License version 2 only, as 7 # published by the Free Software Foundation. Oracle designates this 8 # particular file as subject to the "Classpath" exception as provided 9 # by Oracle in the LICENSE file that accompanied this code. 10 # 11 # This code is distributed in the hope that it will be useful, but WITHOUT 12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 # version 2 for more details (a copy is included in the LICENSE file that 15 # accompanied this code). 16 # 17 # You should have received a copy of the GNU General Public License version 18 # 2 along with this work; if not, write to the Free Software Foundation, 19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 # 21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 # or visit www.oracle.com if you need additional information or have any 23 # questions. 24 # 25 26 default: build 27 28 include $(SPEC) 29 include MakeBase.gmk 30 include JavaCompilation.gmk 31 include SetupJavaCompilers.gmk 32 include NativeCompilation.gmk 33 34 TARGETS := 35 36 ################################################################################ 37 38 FH_BASEDIR := $(TOPDIR)/test/failure_handler 39 FH_SUPPORT := $(SUPPORT_OUTPUTDIR)/test/failure_handler 40 FH_JAR := $(FH_SUPPORT)/jtregFailureHandler.jar 41 42 JTREG_JAR := $(JT_HOME)/lib/jtreg.jar 43 ifeq ($(wildcard $(JTREG_JAR)), ) 44 $(error Cannot build failure handler without jtreg) 45 endif 46 # tools.jar is only needed if it exists in the boot jdk 47 TOOLS_JAR := $(wildcard $(BOOT_JDK)/lib/tools.jar) 48 49 FH_CLASSPATH := $(call PathList, $(JTREG_JAR) $(TOOLS_JAR)) 50 51 $(eval $(call SetupJavaCompilation, BUILD_FAILURE_HANDLER, \ 52 SETUP := GENERATE_OLDBYTECODE, \ 53 SRC := $(FH_BASEDIR)/src/share/classes $(FH_BASEDIR)/src/share/conf, \ 54 BIN := $(FH_SUPPORT)/classes, \ 55 COPY := .properties, \ 56 CLASSPATH := $(JTREG_JAR) $(TOOLS_JAR), \ 57 JAR := $(FH_JAR), \ 58 )) 59 60 TARGETS += $(BUILD_FAILURE_HANDLER) 61 62 ################################################################################ 63 64 ifeq ($(call isTargetOs, windows), true) 65 66 $(eval $(call SetupNativeCompilation, BUILD_LIBTIMEOUT_HANDLER, \ 67 NAME := timeoutHandler, \ 68 SRC := $(FH_BASEDIR)/src/windows/native/libtimeoutHandler, \ 69 OBJECT_DIR := $(FH_SUPPORT)/libtimeoutHandler, \ 70 OUTPUT_DIR := $(FH_SUPPORT), \ 71 CFLAGS := $(CFLAGS_JDKLIB), \ 72 LDFLAGS := $(LDFLAGS_JDKLIB), \ 73 OPTIMIZATION := LOW, \ 74 )) 75 76 TARGETS += $(BUILD_LIBTIMEOUT_HANDLER) 77 78 endif 79 80 ################################################################################ 81 # Targets for building test-image. 82 ################################################################################ 83 84 # Copy to hotspot jtreg test image 85 $(eval $(call SetupCopyFiles, COPY_FH, \ 86 SRC := $(FH_SUPPORT), \ 87 DEST := $(TEST_IMAGE_DIR)/failure_handler, \ 88 FILES := $(FH_JAR) $(BUILD_LIBTIMEOUT_HANDLER), \ 89 )) 90 91 IMAGES_TARGETS += $(COPY_FH) 92 93 ################################################################################ 94 # Test the failure handler itself 95 ################################################################################ 96 # 97 # Use JTREG_TEST_OPTS for test VM options 98 # Use JTREG_TESTS for jtreg tests parameter 99 # 100 RUN_DIR := $(FH_SUPPORT)/test 101 # Add the dir of the dll to the path on windows 102 ifeq ($(call isTargetOs, windows), true) 103 export PATH := $(PATH);$(FH_SUPPORT) 104 endif 105 106 test: 107 $(RM) -r $(RUN_DIR) 108 $(MKDIR) -p $(RUN_DIR) 109 $(CD) $(FH_BASEDIR)/test && JT_JAVA=$(BOOT_JDK) $(JTREGEXE) \ 110 -jdk:$(BOOT_JDK) \ 111 $(JTREG_TEST_OPTS) \ 112 -timeout:0.1 -va -retain:all \ 113 -noreport \ 114 -agentvm \ 115 -thd:$(FH_JAR) \ 116 -th:jdk.test.failurehandler.jtreg.GatherProcessInfoTimeoutHandler \ 117 -od:$(FH_JAR) \ 118 -o:jdk.test.failurehandler.jtreg.GatherDiagnosticInfoObserver \ 119 -w:$(RUN_DIR)/JTwork -r:$(RUN_DIR)/JTreport \ 120 $(if $(JTREG_TESTS), $(JTREG_TESTS), .) \ 121 || true 122 123 ################################################################################ 124 125 build: $(TARGETS) 126 images: $(IMAGES_TARGETS) 127 128 .PHONY: all images test