Fri, 01 Feb 2013 11:22:41 +0100
Merge
erikj@459 | 1 | # |
katleman@543 | 2 | # Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. |
erikj@459 | 3 | # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
erikj@459 | 4 | # |
erikj@459 | 5 | # This code is free software; you can redistribute it and/or modify it |
erikj@459 | 6 | # under the terms of the GNU General Public License version 2 only, as |
erikj@459 | 7 | # published by the Free Software Foundation. Oracle designates this |
erikj@459 | 8 | # particular file as subject to the "Classpath" exception as provided |
erikj@459 | 9 | # by Oracle in the LICENSE file that accompanied this code. |
erikj@459 | 10 | # |
erikj@459 | 11 | # This code is distributed in the hope that it will be useful, but WITHOUT |
erikj@459 | 12 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
erikj@459 | 13 | # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
erikj@459 | 14 | # version 2 for more details (a copy is included in the LICENSE file that |
erikj@459 | 15 | # accompanied this code). |
erikj@459 | 16 | # |
erikj@459 | 17 | # You should have received a copy of the GNU General Public License version |
erikj@459 | 18 | # 2 along with this work; if not, write to the Free Software Foundation, |
erikj@459 | 19 | # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
erikj@459 | 20 | # |
erikj@459 | 21 | # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
erikj@459 | 22 | # or visit www.oracle.com if you need additional information or have any |
erikj@459 | 23 | # questions. |
erikj@459 | 24 | # |
erikj@459 | 25 | |
erikj@459 | 26 | define SetupRMICompilation |
erikj@459 | 27 | # param 1 is a name for a variable to depend on. |
erikj@459 | 28 | # param 2 and up are named args. |
erikj@459 | 29 | # CLASSES:=List of classes to generate stubs for |
erikj@459 | 30 | # CLASSES_DIR:=Directory where to look for classes |
erikj@459 | 31 | # STUB_CLASSES_DIR:=Directory in where to put stub classes |
erikj@459 | 32 | # RUN_V11:=Set to run rmic with -v1.1 |
erikj@459 | 33 | # RUN_V12:=Set to run rmic with -v1.2 |
erikj@459 | 34 | # RUN_IIOP:=Set to run rmic with -iiop |
erikj@459 | 35 | # RUN_IIOP_STDPKG:=Set to run rmic with -iiop -standardPackage |
erikj@459 | 36 | # KEEP_GENERATED:=Set to keep generated sources around |
ohair@494 | 37 | $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15, $(if $($i),$1_$(strip $($i)))$(NEWLINE)) |
ohair@494 | 38 | $(call LogSetupMacroEntry,SetupRMICompilation($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15)) |
ohair@494 | 39 | $(if $(16),$(error Internal makefile error: Too many arguments to SetupRMICompilation, please update RMICompilation.gmk)) |
erikj@459 | 40 | |
erikj@459 | 41 | $1_DEP_FILE := $$($1_STUB_CLASSES_DIR)/$1_rmic |
erikj@459 | 42 | |
erikj@459 | 43 | $1_CLASSES_SLASH := $$(subst .,/,$$($1_CLASSES)) |
erikj@459 | 44 | $1_CLASS_FILES := $$(addprefix $$($1_CLASSES_DIR)/,$$(addsuffix .class,$$($1_CLASSES_SLASH))) |
erikj@459 | 45 | $1_STUB_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/,$$(addsuffix _Stub.class,$$($1_CLASSES_SLASH))) |
erikj@459 | 46 | $1_TARGETS := $$($1_STUB_FILES) |
erikj@459 | 47 | $1_ARGS := |
erikj@459 | 48 | ifneq (,$$($1_RUN_V11)) |
erikj@459 | 49 | $1_SKEL_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/,$$(addsuffix _Skel.class,$$($1_CLASSES_SLASH))) |
erikj@459 | 50 | $1_TARGETS += $$($1_SKEL_FILES) |
erikj@459 | 51 | $1_ARGS += -v1.1 |
erikj@459 | 52 | endif |
erikj@459 | 53 | ifneq (,$$($1_RUN_V12)) |
erikj@459 | 54 | $1_ARGS += -v1.2 |
erikj@459 | 55 | endif |
erikj@459 | 56 | |
erikj@459 | 57 | $1_TIE_BASE_FILES := $$(foreach f,$$($1_CLASSES_SLASH),$$(dir $$f)_$$(notdir $$f)) |
erikj@459 | 58 | $1_TIE_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/org/omg/stub/,$$(addsuffix _Tie.class,$$($1_TIE_BASE_FILES))) |
erikj@459 | 59 | $1_TIE_STDPKG_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/,$$(addsuffix _Tie.class,$$($1_TIE_BASE_FILES))) |
erikj@459 | 60 | |
erikj@459 | 61 | ifneq (,$$($1_RUN_IIOP)) |
erikj@459 | 62 | $1_TARGETS += $$($1_TIE_FILES) |
erikj@459 | 63 | $1_ARGS += -iiop |
erikj@459 | 64 | endif |
erikj@459 | 65 | ifneq (,$$($1_RUN_IIOP_STDPKG)) |
erikj@459 | 66 | $1_TARGETS += $$($1_TIE_STDPKG_FILES) |
erikj@459 | 67 | $1_ARGS2 := -iiop -standardPackage |
erikj@459 | 68 | endif |
erikj@459 | 69 | |
erikj@459 | 70 | ifneq (,$$($1_KEEP_GENERATED)) |
erikj@459 | 71 | $1_ARGS += -keepgenerated |
erikj@459 | 72 | $1_TARGETS += $$(subst .class,.java,$$($1_TARGETS)) |
erikj@459 | 73 | endif |
erikj@459 | 74 | |
erikj@459 | 75 | $1_DOLLAR_SAFE_CLASSES := $$(subst $$$$,\$$$$,$$($1_CLASSES)) |
erikj@459 | 76 | |
erikj@459 | 77 | $$($1_TARGETS): $$($1_DEP_FILE) $$($1_CLASS_FILES) |
erikj@459 | 78 | |
erikj@459 | 79 | $$($1_DEP_FILE): $$($1_CLASS_FILES) |
erikj@459 | 80 | $(MKDIR) -p $$($1_STUB_CLASSES_DIR) |
erikj@459 | 81 | if [ "x$$($1_ARGS)" != "x" ]; then \ |
ohair@494 | 82 | $(ECHO) $(LOG_INFO) Running rmic $$($1_ARGS) for $$($1_DOLLAR_SAFE_CLASSES) &&\ |
erikj@459 | 83 | $(RMIC) $$($1_ARGS) -classpath "$$($1_CLASSES_DIR)" \ |
erikj@459 | 84 | -d $$($1_STUB_CLASSES_DIR) $$($1_DOLLAR_SAFE_CLASSES);\ |
erikj@459 | 85 | fi; |
erikj@459 | 86 | if [ "x$$($1_ARGS2)" != "x" ]; then \ |
ohair@494 | 87 | $(ECHO) $(LOG_INFO) Running rmic $$($1_ARGS2) for $$($1_DOLLAR_SAFE_CLASSES) &&\ |
erikj@459 | 88 | $(RMIC) $$($1_ARGS2) -classpath "$$($1_CLASSES_DIR)" \ |
erikj@459 | 89 | -d $$($1_STUB_CLASSES_DIR) $$($1_DOLLAR_SAFE_CLASSES);\ |
erikj@459 | 90 | fi; |
erikj@459 | 91 | |
erikj@459 | 92 | |
erikj@459 | 93 | $1 := $$($1_TARGETS) |
erikj@459 | 94 | |
erikj@459 | 95 | # By marking as secondary, this "touch" file doesn't need to be touched and will never exist. |
erikj@459 | 96 | .SECONDARY: $$($1_DEP_FILE) |
erikj@459 | 97 | endef |