32 JDK_HOME := $(BOOTDIR) |
32 JDK_HOME := $(BOOTDIR) |
33 endif |
33 endif |
34 |
34 |
35 SRC_DIR = src |
35 SRC_DIR = src |
36 BUILD_DIR = build |
36 BUILD_DIR = build |
|
37 DST_DIR = dist |
37 OUTPUT_DIR = $(BUILD_DIR)/classes |
38 OUTPUT_DIR = $(BUILD_DIR)/classes |
38 TESTLIBRARY_DIR = ../../../../test/lib |
39 TESTLIBRARY_DIR = ../../../../../test/lib |
39 |
40 |
40 JAVAC = $(JDK_HOME)/bin/javac |
41 JAVAC = $(JDK_HOME)/bin/javac |
41 JAR = $(JDK_HOME)/bin/jar |
42 JAR = $(JDK_HOME)/bin/jar |
42 |
43 |
43 SRC_FILES = $(shell find $(SRC_DIR) $(TESTLIBRARY_DIR)/jdk/test/lib -name '*.java') |
44 SRC_FILES = $(shell find $(SRC_DIR) -name '*.java') |
|
45 LIB_FILES = $(shell find $(TESTLIBRARY_DIR)/jdk/test/lib/ \ |
|
46 $(TESTLIBRARY_DIR)/jdk/test/lib/process \ |
|
47 $(TESTLIBRARY_DIR)/jdk/test/lib/util \ |
|
48 -depth 1 -name '*.java') |
44 WB_SRC_FILES = $(shell find $(TESTLIBRARY_DIR)/sun/hotspot -name '*.java') |
49 WB_SRC_FILES = $(shell find $(TESTLIBRARY_DIR)/sun/hotspot -name '*.java') |
|
50 EXPORTS=--add-exports java.base/jdk.internal.jimage=ALL-UNNAMED \ |
|
51 --add-exports java.base/jdk.internal.misc=ALL-UNNAMED \ |
|
52 --add-exports java.base/jdk.internal.reflect=ALL-UNNAMED \ |
|
53 --add-exports java.base/jdk.internal.access=ALL-UNNAMED |
45 |
54 |
46 MAIN_CLASS = sun.hotspot.tools.ctw.CompileTheWorld |
55 MAIN_CLASS = sun.hotspot.tools.ctw.CompileTheWorld |
47 |
56 |
48 .PHONY: clean cleantmp |
57 .PHONY: clean cleantmp |
49 |
58 |
50 all: ctw.jar cleantmp |
59 all: $(DST_DIR)/ctw.zip cleantmp |
51 |
60 |
52 clean: cleantmp |
61 clean: cleantmp |
53 @rm -rf ctw.jar wb.jar |
62 @rm -rf $(DST_DIR) |
54 |
63 |
55 cleantmp: |
64 cleantmp: |
56 @rm -rf filelist wb_filelist manifest.mf |
65 @rm -rf filelist wb_filelist manifest.mf |
57 @rm -rf $(BUILD_DIR) |
66 @rm -rf $(BUILD_DIR) |
58 |
67 |
59 ctw.jar: filelist wb.jar |
68 $(DST_DIR): |
|
69 @mkdir -p $@ |
|
70 |
|
71 $(DST_DIR)/ctw.sh: $(DST_DIR) |
|
72 echo '$${JAVA_HOME}/bin/java $${JAVA_OPTIONS} $(EXPORTS) -jar -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:wb.jar -jar ctw.jar $$@' > $@ |
|
73 chmod a+x $@ |
|
74 |
|
75 $(DST_DIR)/ctw.jar: filelist $(DST_DIR)/wb.jar |
60 @mkdir -p $(OUTPUT_DIR) |
76 @mkdir -p $(OUTPUT_DIR) |
61 $(JAVAC) --add-exports java.base/jdk.internal.jimage=ALL-UNNAMED \ |
77 $(JAVAC) $(EXPORTS) -sourcepath $(SRC_DIR) -d $(OUTPUT_DIR) -cp $(DST_DIR)/wb.jar @filelist |
62 --add-exports java.base/jdk.internal.misc=ALL-UNNAMED \ |
|
63 --add-exports java.base/jdk.internal.reflect=ALL-UNNAMED \ |
|
64 -sourcepath $(SRC_DIR) -d $(OUTPUT_DIR) -cp wb.jar @filelist |
|
65 $(JAR) --create --file=$@ --main-class $(MAIN_CLASS) -C $(OUTPUT_DIR) . |
78 $(JAR) --create --file=$@ --main-class $(MAIN_CLASS) -C $(OUTPUT_DIR) . |
|
79 @rm -rf $(OUTPUT_DIR) |
66 |
80 |
67 wb.jar: wb_filelist |
81 $(DST_DIR)/wb.jar: wb_filelist $(DST_DIR) |
68 @mkdir -p $(OUTPUT_DIR) |
82 @mkdir -p $(OUTPUT_DIR) |
69 $(JAVAC) -sourcepath $(TESTLIBRARY_DIR) \ |
83 $(JAVAC) -sourcepath $(TESTLIBRARY_DIR) \ |
70 -d $(OUTPUT_DIR) \ |
84 -d $(OUTPUT_DIR) \ |
71 -cp $(OUTPUT_DIR) \ |
85 -cp $(OUTPUT_DIR) \ |
72 @wb_filelist |
86 @wb_filelist |
73 $(JAR) --create --file=$@ -C $(OUTPUT_DIR) . |
87 $(JAR) --create --file=$@ -C $(OUTPUT_DIR) . |
|
88 @rm -rf $(OUTPUT_DIR) |
|
89 |
|
90 $(DST_DIR)/ctw.zip: $(DST_DIR)/ctw.sh $(DST_DIR)/wb.jar $(DST_DIR)/ctw.jar |
|
91 zip -j $@ $? |
74 |
92 |
75 wb_filelist: $(WB_SRC_FILES) |
93 wb_filelist: $(WB_SRC_FILES) |
76 @rm -f $@ |
94 @rm -f $@ |
77 @echo $(WB_SRC_FILES) > $@ |
95 @echo $(WB_SRC_FILES) > $@ |
78 |
96 |
79 filelist: $(SRC_FILES) |
97 filelist: $(SRC_FILES) $(LIB_FILES) |
80 @rm -f $@ |
98 @rm -f $@ |
81 @echo $(SRC_FILES) > $@ |
99 @echo $(SRC_FILES) $(LIB_FILES) > $@ |