make/common/RMICompilation.gmk

Thu, 31 Aug 2017 15:40:18 +0800

author
aoqi
date
Thu, 31 Aug 2017 15:40:18 +0800
changeset 1133
50aaf272884f
parent 912
a667caba1e84
parent 0
75a576e87639
permissions
-rw-r--r--

merge

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

mercurial