Mercurial > hg > truffle
comparison make/jvmci.make @ 21718:b5bbf03bc17a
Improve makefile generator, exporting files into shared dir (JBS:GRAAL-52)
author | Stefan Anzinger <stefan.anzinger@oracle.com> |
---|---|
date | Thu, 04 Jun 2015 03:21:58 +0200 |
parents | |
children | cbe8cc0f79ce |
comparison
equal
deleted
inserted
replaced
21717:a3315bce5192 | 21718:b5bbf03bc17a |
---|---|
1 [?1034hVERBOSE= | |
2 TARGET=. | |
3 JDK= | |
4 | |
5 WGET=wget | |
6 JAVAC=$(JDK)/bin/javac -g -target 1.8 | |
7 JAR=$(JDK)/bin/jar | |
8 | |
9 EXPORT_DIR=export | |
10 EXPORTED_FILES_ADDITIONAL=$(TARGET)/options $(TARGET)/services | |
11 HS_COMMON_SRC=. | |
12 # where all other stuff built by mx (graal.jar) resides | |
13 MX_TARGET=. | |
14 PROVIDERS_INF=/META-INF/providers/ | |
15 SERVICES_INF=/META-INF/services/ | |
16 OPTIONS_INF=/META-INF/options/ | |
17 | |
18 ifeq ($(JDK),) | |
19 $(error Variable JDK must be set to a JDK installation.) | |
20 endif | |
21 ifneq ($(VERBOSE),) | |
22 SHELL=sh -x | |
23 endif | |
24 | |
25 define process_options = | |
26 $(eval providers=$(1)/$(PROVIDERS_INF)) | |
27 $(eval services=$(1)/$(SERVICES_INF)) | |
28 $(eval options=$(1)/$(OPTIONS_INF)) | |
29 test -d $(services) || mkdir -p $(services) | |
30 test ! -d $(providers) || (cd $(providers) && for i in $$(ls $(providers)); do c=$$(cat $$i); echo $$i >> $(services)$$c; rm $$i; done) | |
31 | |
32 # We're building all projects together with one javac call; thus we cannot determine, from which project the generated file is thus we hardcode it for now | |
33 $(eval vmconfig=$(1)/hotspot/HotSpotVMConfig.inline.hpp) | |
34 $(eval vmconfigDest=$(HS_COMMON_SRC)/../graal/com.oracle.jvmci.hotspot/src_gen/hotspot) | |
35 test ! -f $(vmconfig) || (mkdir -p $(vmconfigDest) && cp $(vmconfig) $(vmconfigDest)) | |
36 endef | |
37 | |
38 define extract = | |
39 $(eval TMP := $(shell mktemp -d)) | |
40 mkdir -p $(2); | |
41 cd $(TMP) && $(JAR) xf $(abspath $(1)) && ((test ! -d .$(SERVICES_INF) || cp -r .$(SERVICES_INF) $(abspath $(2))) && (test ! -d .$(OPTIONS_INF) || cp -r .$(OPTIONS_INF) $(abspath $(2)))) | |
42 rm -r $(TMP) | |
43 cp $(1) $(2) | |
44 endef | |
45 | |
46 | |
47 all: default | |
48 | |
49 export: all | |
50 mkdir -p $(EXPORT_DIR) | |
51 $(foreach export,$(EXPORTED_FILES),$(call extract,$(export),$(EXPORT_DIR))) | |
52 .PHONY: export | |
53 | |
54 | |
55 | |
56 EXPORTED_FILES += $(MX_TARGET)/build/truffle.jar | |
57 | |
58 EXPORTED_FILES += $(MX_TARGET)/build/graal.jar | |
59 | |
60 EXPORTED_FILES += $(MX_TARGET)/build/graal-truffle.jar | |
61 | |
62 JDK_BOOTCLASSPATH = $(JDK)/jre/lib/resources.jar:$(JDK)/jre/lib/rt.jar:$(JDK)/jre/lib/jsse.jar:$(JDK)/jre/lib/jce.jar:$(JDK)/jre/lib/charsets.jar:$(JDK)/jre/lib/jfr.jar | |
63 | |
64 COM_ORACLE_JVMCI_OPTIONS_PROCESSOR_SRC = $(shell find graal/com.oracle.jvmci.service/src -type f -name *.java 2> /dev/null) | |
65 COM_ORACLE_JVMCI_OPTIONS_PROCESSOR_SRC += $(shell find graal/com.oracle.jvmci.options/src -type f -name *.java 2> /dev/null) | |
66 COM_ORACLE_JVMCI_OPTIONS_PROCESSOR_SRC += $(shell find graal/com.oracle.jvmci.options.processor/src -type f -name *.java 2> /dev/null) | |
67 | |
68 COM_ORACLE_JVMCI_OPTIONS_PROCESSOR_JAR = $(TARGET)/graal/com.oracle.jvmci.options.processor/ap/com.oracle.jvmci.options.processor.jar | |
69 | |
70 COM_ORACLE_JVMCI_HOTSPOTVMCONFIG_PROCESSOR_SRC = $(shell find graal/com.oracle.jvmci.hotspotvmconfig/src -type f -name *.java 2> /dev/null) | |
71 COM_ORACLE_JVMCI_HOTSPOTVMCONFIG_PROCESSOR_SRC += $(shell find graal/com.oracle.jvmci.common/src -type f -name *.java 2> /dev/null) | |
72 COM_ORACLE_JVMCI_HOTSPOTVMCONFIG_PROCESSOR_SRC += $(shell find graal/com.oracle.jvmci.hotspotvmconfig.processor/src -type f -name *.java 2> /dev/null) | |
73 | |
74 COM_ORACLE_JVMCI_HOTSPOTVMCONFIG_PROCESSOR_JAR = $(TARGET)/graal/com.oracle.jvmci.hotspotvmconfig.processor/ap/com.oracle.jvmci.hotspotvmconfig.processor.jar | |
75 | |
76 JVMCI_SERVICE_SRC = $(shell find graal/com.oracle.jvmci.service/src -type f -name *.java 2> /dev/null) | |
77 | |
78 JVMCI_SERVICE_JAR = $(TARGET)/build/jvmci-service.jar | |
79 | |
80 JVMCI_SERVICE_DEP_JARS = lib/findbugs-SuppressFBWarnings.jar | |
81 | |
82 EXPORTED_FILES += $(JVMCI_SERVICE_JAR) | |
83 | |
84 JVMCI_HOTSPOT_SRC = $(shell find graal/com.oracle.jvmci.hotspotvmconfig/src -type f -name *.java 2> /dev/null) | |
85 JVMCI_HOTSPOT_SRC += $(shell find graal/com.oracle.jvmci.hotspotvmconfig/graal/com.oracle.jvmci.hotspotvmconfig/src_gen -type f -name *.java 2> /dev/null) | |
86 JVMCI_HOTSPOT_SRC += $(shell find graal/com.oracle.jvmci.hotspot/src -type f -name *.java 2> /dev/null) | |
87 JVMCI_HOTSPOT_SRC += $(shell find graal/com.oracle.jvmci.hotspot/graal/com.oracle.jvmci.hotspot/src_gen -type f -name *.java 2> /dev/null) | |
88 | |
89 JVMCI_HOTSPOT_JAR = $(TARGET)/build/jvmci-hotspot.jar | |
90 | |
91 JVMCI_HOTSPOT_DEP_JARS = $(TARGET)/build/jvmci-service.jar $(TARGET)/build/jvmci-api.jar lib/findbugs-SuppressFBWarnings.jar | |
92 | |
93 EXPORTED_FILES += $(JVMCI_HOTSPOT_JAR) | |
94 | |
95 JVMCI_API_SRC = $(shell find graal/com.oracle.jvmci.meta/src -type f -name *.java 2> /dev/null) | |
96 JVMCI_API_SRC += $(shell find graal/com.oracle.jvmci.code/src -type f -name *.java 2> /dev/null) | |
97 JVMCI_API_SRC += $(shell find graal/com.oracle.jvmci.runtime/src -type f -name *.java 2> /dev/null) | |
98 JVMCI_API_SRC += $(shell find graal/com.oracle.jvmci.options/src -type f -name *.java 2> /dev/null) | |
99 JVMCI_API_SRC += $(shell find graal/com.oracle.jvmci.common/src -type f -name *.java 2> /dev/null) | |
100 JVMCI_API_SRC += $(shell find graal/com.oracle.jvmci.debug/src -type f -name *.java 2> /dev/null) | |
101 | |
102 JVMCI_API_JAR = $(TARGET)/build/jvmci-api.jar | |
103 | |
104 JVMCI_API_DEP_JARS = $(TARGET)/build/jvmci-service.jar lib/findbugs-SuppressFBWarnings.jar | |
105 | |
106 EXPORTED_FILES += $(JVMCI_API_JAR) | |
107 | |
108 $(COM_ORACLE_JVMCI_OPTIONS_PROCESSOR_JAR): $(COM_ORACLE_JVMCI_OPTIONS_PROCESSOR_SRC) | |
109 $(eval TMP := $(shell mktemp -d)) | |
110 $(JAVAC) -d $(TMP) -bootclasspath $(JDK_BOOTCLASSPATH) $(COM_ORACLE_JVMCI_OPTIONS_PROCESSOR_SRC) | |
111 cp -r graal/com.oracle.jvmci.options.processor/src/META-INF $(TMP) | |
112 $(call process_options,$(TMP),False) | |
113 mkdir -p $$(dirname $(COM_ORACLE_JVMCI_OPTIONS_PROCESSOR_JAR)) | |
114 $(JAR) cf $(COM_ORACLE_JVMCI_OPTIONS_PROCESSOR_JAR) -C $(TMP) . | |
115 rm -r $(TMP) | |
116 | |
117 $(COM_ORACLE_JVMCI_HOTSPOTVMCONFIG_PROCESSOR_JAR): $(COM_ORACLE_JVMCI_HOTSPOTVMCONFIG_PROCESSOR_SRC) | |
118 $(eval TMP := $(shell mktemp -d)) | |
119 $(JAVAC) -d $(TMP) -bootclasspath $(JDK_BOOTCLASSPATH) $(COM_ORACLE_JVMCI_HOTSPOTVMCONFIG_PROCESSOR_SRC) | |
120 cp -r graal/com.oracle.jvmci.hotspotvmconfig.processor/src/META-INF $(TMP) | |
121 $(call process_options,$(TMP),False) | |
122 mkdir -p $$(dirname $(COM_ORACLE_JVMCI_HOTSPOTVMCONFIG_PROCESSOR_JAR)) | |
123 $(JAR) cf $(COM_ORACLE_JVMCI_HOTSPOTVMCONFIG_PROCESSOR_JAR) -C $(TMP) . | |
124 rm -r $(TMP) | |
125 | |
126 $(JVMCI_SERVICE_JAR): $(JVMCI_SERVICE_SRC) $(JVMCI_SERVICE_DEP_JARS) | |
127 $(eval TMP := $(shell mktemp -d)) | |
128 $(JAVAC) -d $(TMP) -bootclasspath $(JDK_BOOTCLASSPATH) -cp lib/findbugs-SuppressFBWarnings.jar $(JVMCI_SERVICE_SRC) | |
129 | |
130 $(call process_options,$(TMP),True) | |
131 mkdir -p $$(dirname $(JVMCI_SERVICE_JAR)) | |
132 $(JAR) cf $(JVMCI_SERVICE_JAR) -C $(TMP) . | |
133 rm -r $(TMP) | |
134 | |
135 $(JVMCI_HOTSPOT_JAR): $(JVMCI_HOTSPOT_SRC) $(COM_ORACLE_JVMCI_HOTSPOTVMCONFIG_PROCESSOR_JAR) $(COM_ORACLE_JVMCI_OPTIONS_PROCESSOR_JAR) $(JVMCI_HOTSPOT_DEP_JARS) | |
136 $(eval TMP := $(shell mktemp -d)) | |
137 $(JAVAC) -d $(TMP) -processorpath $(COM_ORACLE_JVMCI_HOTSPOTVMCONFIG_PROCESSOR_JAR):$(COM_ORACLE_JVMCI_OPTIONS_PROCESSOR_JAR) -bootclasspath $(JDK_BOOTCLASSPATH) -cp $(TARGET)/build/jvmci-service.jar:$(TARGET)/build/jvmci-api.jar:lib/findbugs-SuppressFBWarnings.jar $(JVMCI_HOTSPOT_SRC) | |
138 | |
139 $(call process_options,$(TMP),True) | |
140 mkdir -p $$(dirname $(JVMCI_HOTSPOT_JAR)) | |
141 $(JAR) cf $(JVMCI_HOTSPOT_JAR) -C $(TMP) . | |
142 rm -r $(TMP) | |
143 | |
144 $(JVMCI_API_JAR): $(JVMCI_API_SRC) $(JVMCI_API_DEP_JARS) | |
145 $(eval TMP := $(shell mktemp -d)) | |
146 $(JAVAC) -d $(TMP) -bootclasspath $(JDK_BOOTCLASSPATH) -cp $(TARGET)/build/jvmci-service.jar:lib/findbugs-SuppressFBWarnings.jar $(JVMCI_API_SRC) | |
147 | |
148 $(call process_options,$(TMP),True) | |
149 mkdir -p $$(dirname $(JVMCI_API_JAR)) | |
150 $(JAR) cf $(JVMCI_API_JAR) -C $(TMP) . | |
151 rm -r $(TMP) | |
152 | |
153 default: $(JVMCI_SERVICE_JAR) $(JVMCI_HOTSPOT_JAR) $(JVMCI_API_JAR) | |
154 .PHONY: default |