1 .DEFAULT_GOAL := all
 2 
 3 JAVA_HOME ?= $(abspath ../build/linux-x86_64-server-fastdebug/jdk)
 4 export PATH := ${JAVA_HOME}/bin:$(PATH)
 5 
 6 CTW_DIR := $(abspath ../test/hotspot/jtreg/testlibrary/ctw)
 7 CTW_DIST= ${CTW_DIR}/dist
 8 CTW_JAVA_OPTIONS := -XX:+CITime -XX:-TieredCompilation -XX:+UseTLAB -XX:+PrintCompilation -XX:+PrintOptoStatistics -XX:+UnlockExperimentalVMOptions -XX:+DoPartialEscapeAnalysis
 9 comma := ,
10 empty :=
11 space := $(empty) $(empty)
12 # CTWRunner accepts arguments with commas instead of spaces
13 CTW_RUNNER_JAVA_OPTIONS := $(subst $(space),$(comma),$(CTW_JAVA_OPTIONS))
14 CONF ?= linux-x86_64-server-fastdebug
15 JTREG_COMMON = JAVA_OPTIONS=-XX:+UnlockExperimentalVMOptions -XX:+DoPartialEscapeAnalysis
16 JTREG_PARANOID=VM_OPTIONS=-ea -esa -XX:CompileThreshold=100
17 
18 set_jdk:
19 	if [ -e ${JAVA_HOME} ]; then \
20 		echo "choose ${JAVA_HOME}"; \
21 		java -version; \
22 	else \
23 		echo "can't find valid jdk!"; \
24 		exit 1; \
25 	fi
26 
27 classes := $(patsubst %.java, %.class, $(wildcard *.java))
28 
29 %.class: %.java
30 	javac --add-exports java.base/jdk.internal.misc=ALL-UNNAMED $<
31 
32 smoketest: set_jdk $(classes)
33 	./auto.rb
34 
35 $(CTW_DIST):
36 	${MAKE} -C ${CTW_DIR} all
37 
38 run-ctw: set_jdk ${CTW_DIST}
39 	cd ${CTW_DIST}; \
40 	JAVA_OPTIONS="-Dsun.hotspot.tools.ctwrunner.ctw_extra_args=${CTW_RUNNER_JAVA_OPTIONS}" JAVA_HOME=${JAVA_HOME} ./ctwrunner.sh modules:java.base
41 
42 run-ctw-no-inline: set_jdk ${CTW_DIST}
43 	cd ${CTW_DIST}; \
44 	JAVA_OPTIONS="${CTW_JAVA_OPTIONS} -XX:-Inline" JAVA_HOME=${JAVA_HOME} ./ctw.sh modules:java.base
45 
46 bootstrap-version: set_jdk
47 	java -Xcomp -XX:-TieredCompilation -XX:CICompilerCount=1 -Xbatch -XX:+UnlockExperimentalVMOptions -XX:+DoPartialEscapeAnalysis -version
48 
49 hotspot-tier1:
50 	cd ..; make test TEST="hotspot:tier1" CONF=${CONF} JREG="${JTREG_COMMON}"
51 
52 hotspot-tier1-paranoid:
53 	cd ..; make test TEST="hotspot:tier1" CONF=${CONF} JTREG="${JTREG_COMMON};${JTREG_PARANOID}"
54 
55 hotspot-tier2:
56 	cd ..; make test TEST="hotspot:tier2" CONF=${CONF} JREG="${JTREG_COMMON}"
57 
58 all: smoketest bootstrap-version
59 
60 clean:
61 	rm *.class *.log