duke@1: # duke@1: # Makefile to run jtreg and any other tests duke@1: # duke@1: duke@1: # Get OS/ARCH specifics duke@1: OSNAME = $(shell uname -s) duke@1: ifeq ($(OSNAME), SunOS) duke@1: PLATFORM = solaris duke@1: JT_PLATFORM = solaris duke@1: ARCH = $(shell uname -p) duke@1: ifeq ($(ARCH), i386) duke@1: ARCH=i586 duke@1: endif duke@1: endif duke@1: ifeq ($(OSNAME), Linux) duke@1: PLATFORM = linux duke@1: JT_PLATFORM = linux duke@1: ARCH = $(shell uname -m) duke@1: ifeq ($(ARCH), i386) duke@1: ARCH=i586 duke@1: endif duke@1: endif duke@1: ifeq ($(OSNAME), Windows_NT) duke@1: PLATFORM = windows duke@1: JT_PLATFORM = win32 duke@1: ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),ia64) duke@1: ARCH=ia64 duke@1: else duke@1: ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),AMD64) duke@1: ARCH=x64 duke@1: else duke@1: ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),EM64T) duke@1: ARCH=x64 duke@1: else duke@1: ARCH=i586 duke@1: endif duke@1: endif duke@1: endif duke@1: endif duke@1: duke@1: # Root of this test area (important to use full paths in some places) duke@1: TEST_ROOT := $(shell pwd) duke@1: duke@1: # Default bundle of all test results (passed or not) duke@1: JPRT_ARCHIVE_BUNDLE=$(TEST_ROOT)/JPRT_ARCHIVE_BUNDLE.zip duke@1: duke@1: # Default home for JTREG duke@1: ifeq ($(PLATFORM), windows) duke@1: SLASH_JAVA = J: duke@1: else duke@1: SLASH_JAVA = /java duke@1: endif duke@1: duke@1: # Default JTREG to run duke@1: JT_HOME = $(SLASH_JAVA)/svc/jct-tools3.2.2_02 duke@1: JTREG = $(JT_HOME)/$(JT_PLATFORM)/bin/jtreg duke@1: duke@1: # Default JDK for JTREG duke@1: ifdef JPRT_JAVA_HOME duke@1: JT_JAVA = $(JPRT_JAVA_HOME) duke@1: else duke@1: JT_JAVA = $(SLASH_JAVA)/re/jdk/1.6.0/archive/fcs/binaries/$(PLATFORM)-$(ARCH) duke@1: endif duke@1: duke@1: # Default JDK to test duke@1: TESTJAVA = $(SLASH_JAVA)/re/jdk/1.7.0/promoted/latest/binaries/$(PLATFORM)-$(ARCH) duke@1: TESTBOOTCLASSPATH = $(PRODUCT_HOME)/dist/lib/classes.jar duke@1: duke@1: # The test directories to run duke@1: DEFAULT_TESTDIRS = . duke@1: TESTDIRS = $(DEFAULT_TESTDIRS) duke@1: duke@1: # Root of all test results duke@1: TEST_OUTPUT_DIR = $(TEST_ROOT)/o_$(PLATFORM)-$(ARCH) duke@1: duke@1: # Export this setting and pass it in. duke@1: JAVA_TOOL_OPTIONS = -Djava.awt.headless=true duke@1: export JAVA_TOOL_OPTIONS duke@1: duke@1: # Default make rule duke@1: all javac javadoc javah javap apt: clean check jtreg-tests $(JPRT_ARCHIVE_BUNDLE) duke@1: @echo "Testing completed successfully" duke@1: duke@1: # for use with JPRT -testrule duke@1: all: TESTDIRS = . duke@1: javac fastjavac: TESTDIRS = tools/javac duke@1: javadoc: TESTDIRS = tools/javadoc com/sun/javadoc duke@1: javah: TESTDIRS = tools/javah duke@1: javap: TESTDIRS = tools/javap duke@1: apt: TESTDIRS = tools/apt duke@1: duke@1: fastjavac: SAMEVM = -samevm duke@1: duke@1: # Check to make sure these directories exist duke@1: check: $(JT_HOME) $(PRODUCT_HOME) $(JTREG) duke@1: duke@1: # Run the tests duke@1: jtreg-tests: FRC duke@1: ls /opt/jprt /opt/jprt/jdk* duke@1: @echo "Using export JAVA_TOOL_OPTIONS=$(JAVA_TOOL_OPTIONS)" duke@1: @rm -f -r $(TEST_OUTPUT_DIR)/JTwork $(TEST_OUTPUT_DIR)/JTreport duke@1: @mkdir -p $(TEST_OUTPUT_DIR) duke@1: JT_JAVA=$(JT_JAVA) $(JTREG) -k:\!ignore -a -v:fail,error $(SAMEVM) \ duke@1: -r:$(TEST_OUTPUT_DIR)/JTreport \ duke@1: -w:$(TEST_OUTPUT_DIR)/JTwork \ duke@1: -jdk:$(TESTJAVA) \ duke@1: -Xbootclasspath/p:$(TESTBOOTCLASSPATH) \ duke@1: $(JAVA_TOOL_OPTIONS:%=-vmoption:%) \ duke@1: $(JAVA_ARGS:%=-vmoption:%) \ duke@1: $(TESTDIRS) duke@1: duke@1: # Bundle up the results duke@1: $(JPRT_ARCHIVE_BUNDLE): FRC duke@1: @rm -f $@ duke@1: @mkdir -p $(@D) duke@1: ( cd $(TEST_OUTPUT_DIR) && zip -q -r $@ . ) duke@1: duke@1: # Cleanup duke@1: clean: duke@1: rm -f -r $(TEST_OUTPUT_DIR) duke@1: rm -f $(JPRT_ARCHIVE_BUNDLE) duke@1: duke@1: # Used to force a target rules to run duke@1: FRC: duke@1: duke@1: # Phony targets (e.g. these are not filenames) duke@1: .PHONY: all tests clean check duke@1: