Makefile revision 0:9a66ca7c79fa
1# 2# Makefile to run jtreg and any other tests 3# 4 5# Get OS/ARCH specifics 6OSNAME = $(shell uname -s) 7ifeq ($(OSNAME), SunOS) 8 PLATFORM = solaris 9 JT_PLATFORM = solaris 10 ARCH = $(shell uname -p) 11 ifeq ($(ARCH), i386) 12 ARCH=i586 13 endif 14endif 15ifeq ($(OSNAME), Linux) 16 PLATFORM = linux 17 JT_PLATFORM = linux 18 ARCH = $(shell uname -m) 19 ifeq ($(ARCH), i386) 20 ARCH=i586 21 endif 22endif 23ifeq ($(OSNAME), Windows_NT) 24 PLATFORM = windows 25 JT_PLATFORM = win32 26 ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),ia64) 27 ARCH=ia64 28 else 29 ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),AMD64) 30 ARCH=x64 31 else 32 ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),EM64T) 33 ARCH=x64 34 else 35 ARCH=i586 36 endif 37 endif 38 endif 39endif 40 41# Root of this test area (important to use full paths in some places) 42TEST_ROOT := $(shell pwd) 43 44# Default bundle of all test results (passed or not) 45JPRT_ARCHIVE_BUNDLE=$(TEST_ROOT)/JPRT_ARCHIVE_BUNDLE.zip 46 47# Default home for JTREG 48ifeq ($(PLATFORM), windows) 49 SLASH_JAVA = J: 50else 51 SLASH_JAVA = /java 52endif 53 54# Default JTREG to run 55JT_HOME = $(SLASH_JAVA)/svc/jct-tools3.2.2_02 56JTREG = $(JT_HOME)/$(JT_PLATFORM)/bin/jtreg 57 58# Default JDK for JTREG 59ifdef JPRT_JAVA_HOME 60 JT_JAVA = $(JPRT_JAVA_HOME) 61else 62 JT_JAVA = $(SLASH_JAVA)/re/jdk/1.6.0/archive/fcs/binaries/$(PLATFORM)-$(ARCH) 63endif 64 65# Default JDK to test 66TESTJAVA = $(SLASH_JAVA)/re/jdk/1.7.0/promoted/latest/binaries/$(PLATFORM)-$(ARCH) 67TESTBOOTCLASSPATH = $(PRODUCT_HOME)/dist/lib/classes.jar 68 69# The test directories to run 70DEFAULT_TESTDIRS = . 71TESTDIRS = $(DEFAULT_TESTDIRS) 72 73# Root of all test results 74TEST_OUTPUT_DIR = $(TEST_ROOT)/o_$(PLATFORM)-$(ARCH) 75 76# Export this setting and pass it in. 77JAVA_TOOL_OPTIONS = -Djava.awt.headless=true 78export JAVA_TOOL_OPTIONS 79 80# Default make rule 81all javac javadoc javah javap apt: clean check jtreg-tests $(JPRT_ARCHIVE_BUNDLE) 82 @echo "Testing completed successfully" 83 84# for use with JPRT -testrule 85all: TESTDIRS = . 86javac fastjavac: TESTDIRS = tools/javac 87javadoc: TESTDIRS = tools/javadoc com/sun/javadoc 88javah: TESTDIRS = tools/javah 89javap: TESTDIRS = tools/javap 90apt: TESTDIRS = tools/apt 91 92fastjavac: SAMEVM = -samevm 93 94# Check to make sure these directories exist 95check: $(JT_HOME) $(PRODUCT_HOME) $(JTREG) 96 97# Run the tests 98jtreg-tests: FRC 99 ls /opt/jprt /opt/jprt/jdk* 100 @echo "Using export JAVA_TOOL_OPTIONS=$(JAVA_TOOL_OPTIONS)" 101 @rm -f -r $(TEST_OUTPUT_DIR)/JTwork $(TEST_OUTPUT_DIR)/JTreport 102 @mkdir -p $(TEST_OUTPUT_DIR) 103 JT_JAVA=$(JT_JAVA) $(JTREG) -k:\!ignore -a -v:fail,error $(SAMEVM) \ 104 -r:$(TEST_OUTPUT_DIR)/JTreport \ 105 -w:$(TEST_OUTPUT_DIR)/JTwork \ 106 -jdk:$(TESTJAVA) \ 107 -Xbootclasspath/p:$(TESTBOOTCLASSPATH) \ 108 -exclude:bootclasspath-exclude.jtx \ 109 $(JAVA_TOOL_OPTIONS:%=-vmoption:%) \ 110 $(JAVA_ARGS:%=-vmoption:%) \ 111 $(TESTDIRS) 112 113# Bundle up the results 114$(JPRT_ARCHIVE_BUNDLE): FRC 115 @rm -f $@ 116 @mkdir -p $(@D) 117 ( cd $(TEST_OUTPUT_DIR) && zip -q -r $@ . ) 118 119# Cleanup 120clean: 121 rm -f -r $(TEST_OUTPUT_DIR) 122 rm -f $(JPRT_ARCHIVE_BUNDLE) 123 124# Used to force a target rules to run 125FRC: 126 127# Phony targets (e.g. these are not filenames) 128.PHONY: all tests clean check 129 130