|
1 # |
|
2 # Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. |
|
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
|
4 # |
|
5 # This code is free software; you can redistribute it and/or modify it |
|
6 # under the terms of the GNU General Public License version 2 only, as |
|
7 # published by the Free Software Foundation. Oracle designates this |
|
8 # particular file as subject to the "Classpath" exception as provided |
|
9 # by Oracle in the LICENSE file that accompanied this code. |
|
10 # |
|
11 # This code is distributed in the hope that it will be useful, but WITHOUT |
|
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
14 # version 2 for more details (a copy is included in the LICENSE file that |
|
15 # accompanied this code). |
|
16 # |
|
17 # You should have received a copy of the GNU General Public License version |
|
18 # 2 along with this work; if not, write to the Free Software Foundation, |
|
19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
|
20 # |
|
21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
|
22 # or visit www.oracle.com if you need additional information or have any |
|
23 # questions. |
|
24 # |
|
25 |
|
26 default: all |
|
27 |
|
28 include $(SPEC) |
|
29 include MakeBase.gmk |
|
30 |
|
31 GENSRC_DIR := $(SUPPORT_OUTPUTDIR)/gensrc/$(MODULE) |
|
32 SRC_DIR := $(TOPDIR)/src/$(MODULE)/share/classes |
|
33 |
|
34 ################################################################################ |
|
35 |
|
36 PROC_SRC_SUBDIRS := \ |
|
37 org.graalvm.compiler.hotspot.management \ |
|
38 # |
|
39 |
|
40 PROC_SRC_DIRS := $(patsubst %, $(SRC_DIR)/%/src, $(PROC_SRC_SUBDIRS)) |
|
41 |
|
42 PROC_SRCS := $(filter %.java, $(call CacheFind, $(PROC_SRC_DIRS))) |
|
43 |
|
44 ALL_SRC_DIRS := $(SRC_DIR) $(wildcard $(SRC_DIR)/*/src) |
|
45 SOURCEPATH := $(call PathList, $(ALL_SRC_DIRS)) |
|
46 |
|
47 PROCESSOR_JARS := \ |
|
48 $(BUILDTOOLS_OUTPUTDIR)/jdk.vm.compiler.serviceprovider.processor.jar \ |
|
49 # |
|
50 PROCESSOR_PATH := $(call PathList, $(PROCESSOR_JARS)) |
|
51 |
|
52 $(GENSRC_DIR)/_gensrc_proc_done: $(PROC_SRCS) $(PROCESSOR_JARS) |
|
53 $(call MakeDir, $(@D)) |
|
54 $(eval $(call ListPathsSafely,PROC_SRCS,$(@D)/_gensrc_proc_files)) |
|
55 $(JAVA) $(NEW_JAVAC) \ |
|
56 -XDignore.symbol.file \ |
|
57 --upgrade-module-path $(JDK_OUTPUTDIR)/modules --system none \ |
|
58 -sourcepath $(SOURCEPATH) \ |
|
59 -implicit:none \ |
|
60 -proc:only \ |
|
61 -processorpath $(PROCESSOR_PATH) \ |
|
62 -d $(GENSRC_DIR) \ |
|
63 -s $(GENSRC_DIR) \ |
|
64 @$(@D)/_gensrc_proc_files |
|
65 $(TOUCH) $@ |
|
66 |
|
67 TARGETS += $(GENSRC_DIR)/_gensrc_proc_done |
|
68 |
|
69 ################################################################################ |
|
70 |
|
71 $(GENSRC_DIR)/module-info.java.extra: $(GENSRC_DIR)/_gensrc_proc_done |
|
72 $(ECHO) "" > $@; |
|
73 ($(CD) $(GENSRC_DIR)/META-INF/providers && \ |
|
74 p=""; \ |
|
75 impl=""; \ |
|
76 for i in $$($(GREP) '^' * | $(SORT) -t ':' -k 2 | $(SED) 's/:.*//'); do \ |
|
77 c=$$($(CAT) $$i | $(TR) -d '\n\r'); \ |
|
78 if test x$$p != x$$c; then \ |
|
79 if test x$$p != x; then \ |
|
80 $(ECHO) " ;" >> $@; \ |
|
81 fi; \ |
|
82 $(ECHO) "provides $$c with" >> $@; \ |
|
83 p=$$c; \ |
|
84 impl=""; \ |
|
85 fi; \ |
|
86 if test x$$impl != x; then \ |
|
87 $(ECHO) " , $$i" >> $@; \ |
|
88 else \ |
|
89 $(ECHO) " $$i" >> $@; \ |
|
90 fi; \ |
|
91 impl=$$i; \ |
|
92 done); \ |
|
93 $(ECHO) " ;" >> $@; |
|
94 |
|
95 TARGETS += $(GENSRC_DIR)/module-info.java.extra |
|
96 |
|
97 ################################################################################ |
|
98 |
|
99 all: $(TARGETS) |
|
100 |
|
101 .PHONY: default all |