|
1 # |
|
2 # Copyright (c) 2011, 2012 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 define SetupRMICompilation |
|
27 # param 1 is a name for a variable to depend on. |
|
28 # param 2 and up are named args. |
|
29 # CLASSES:=List of classes to generate stubs for |
|
30 # CLASSES_DIR:=Directory where to look for classes |
|
31 # STUB_CLASSES_DIR:=Directory in where to put stub classes |
|
32 # RUN_V11:=Set to run rmic with -v1.1 |
|
33 # RUN_V12:=Set to run rmic with -v1.2 |
|
34 # RUN_IIOP:=Set to run rmic with -iiop |
|
35 # RUN_IIOP_STDPKG:=Set to run rmic with -iiop -standardPackage |
|
36 # KEEP_GENERATED:=Set to keep generated sources around |
|
37 $(if $2,$1_$(strip $2)) |
|
38 $(if $3,$1_$(strip $3)) |
|
39 $(if $4,$1_$(strip $4)) |
|
40 $(if $5,$1_$(strip $5)) |
|
41 $(if $6,$1_$(strip $6)) |
|
42 $(if $7,$1_$(strip $7)) |
|
43 $(if $8,$1_$(strip $8)) |
|
44 $(if $9,$1_$(strip $9)) |
|
45 |
|
46 |
|
47 $1_DEP_FILE := $$($1_STUB_CLASSES_DIR)/$1_rmic |
|
48 |
|
49 $1_CLASSES_SLASH := $$(subst .,/,$$($1_CLASSES)) |
|
50 $1_CLASS_FILES := $$(addprefix $$($1_CLASSES_DIR)/,$$(addsuffix .class,$$($1_CLASSES_SLASH))) |
|
51 $1_STUB_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/,$$(addsuffix _Stub.class,$$($1_CLASSES_SLASH))) |
|
52 $1_TARGETS := $$($1_STUB_FILES) |
|
53 $1_ARGS := |
|
54 ifneq (,$$($1_RUN_V11)) |
|
55 $1_SKEL_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/,$$(addsuffix _Skel.class,$$($1_CLASSES_SLASH))) |
|
56 $1_TARGETS += $$($1_SKEL_FILES) |
|
57 $1_ARGS += -v1.1 |
|
58 endif |
|
59 ifneq (,$$($1_RUN_V12)) |
|
60 $1_ARGS += -v1.2 |
|
61 endif |
|
62 |
|
63 $1_TIE_BASE_FILES := $$(foreach f,$$($1_CLASSES_SLASH),$$(dir $$f)_$$(notdir $$f)) |
|
64 $1_TIE_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/org/omg/stub/,$$(addsuffix _Tie.class,$$($1_TIE_BASE_FILES))) |
|
65 $1_TIE_STDPKG_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/,$$(addsuffix _Tie.class,$$($1_TIE_BASE_FILES))) |
|
66 |
|
67 ifneq (,$$($1_RUN_IIOP)) |
|
68 $1_TARGETS += $$($1_TIE_FILES) |
|
69 $1_ARGS += -iiop |
|
70 endif |
|
71 ifneq (,$$($1_RUN_IIOP_STDPKG)) |
|
72 $1_TARGETS += $$($1_TIE_STDPKG_FILES) |
|
73 $1_ARGS2 := -iiop -standardPackage |
|
74 endif |
|
75 |
|
76 ifneq (,$$($1_KEEP_GENERATED)) |
|
77 $1_ARGS += -keepgenerated |
|
78 $1_TARGETS += $$(subst .class,.java,$$($1_TARGETS)) |
|
79 endif |
|
80 |
|
81 $1_DOLLAR_SAFE_CLASSES := $$(subst $$$$,\$$$$,$$($1_CLASSES)) |
|
82 |
|
83 $$($1_TARGETS): $$($1_DEP_FILE) $$($1_CLASS_FILES) |
|
84 |
|
85 $$($1_DEP_FILE): $$($1_CLASS_FILES) |
|
86 $(MKDIR) -p $$($1_STUB_CLASSES_DIR) |
|
87 if [ "x$$($1_ARGS)" != "x" ]; then \ |
|
88 $(ECHO) Running rmic $$($1_ARGS) for $$($1_DOLLAR_SAFE_CLASSES) &&\ |
|
89 $(RMIC) $$($1_ARGS) -classpath "$$($1_CLASSES_DIR)" \ |
|
90 -d $$($1_STUB_CLASSES_DIR) $$($1_DOLLAR_SAFE_CLASSES);\ |
|
91 fi; |
|
92 if [ "x$$($1_ARGS2)" != "x" ]; then \ |
|
93 $(ECHO) Running rmic $$($1_ARGS2) for $$($1_DOLLAR_SAFE_CLASSES) &&\ |
|
94 $(RMIC) $$($1_ARGS2) -classpath "$$($1_CLASSES_DIR)" \ |
|
95 -d $$($1_STUB_CLASSES_DIR) $$($1_DOLLAR_SAFE_CLASSES);\ |
|
96 fi; |
|
97 |
|
98 |
|
99 $1 := $$($1_TARGETS) |
|
100 |
|
101 # By marking as secondary, this "touch" file doesn't need to be touched and will never exist. |
|
102 .SECONDARY: $$($1_DEP_FILE) |
|
103 endef |