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