#
# Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
#
# Makefile for building RMI stubs of JMX Remote
#
BUILDDIR = ../../..
PACKAGE = javax.management
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
#
# Files to compile
#
# NO java files to compile: already compiled in javax/management/Makefile
# Note : some targets are double colon rules and some single colon rules
# within common included gmk files : that is why the following for loop
# has been duplicated.
# When building the openjdk, no snmp
ifndef OPENJDK
SUBDIRS = snmp
endif
include $(BUILDDIR)/common/Subdirs.gmk
all build:
$(SUBDIRS-loop)
clean clobber::
$(SUBDIRS-loop)
#
# Rules
#
include $(BUILDDIR)/common/Classes.gmk
build: stubs
#
# Clean up internal-use-only package.
#
clean ::
$(RM) -r $(CLASSDESTDIR)/com/sun/jmx \
$(CLASSDESTDIR)/com/sun/management/jmx \
$(CLASSDESTDIR)/org/omg/stub/javax/management/remote/rmi \
#
# The remainder of this makefile contains defs and rules
# for generating RMI stubs.
# With inspiration from com/sun/jndi/rmi/registry
#
#
# Full class names of implementations requiring stubs
#
REMOTE_impls = \
javax.management.remote.rmi.RMIConnectionImpl \
javax.management.remote.rmi.RMIServerImpl \
REMOTE_files = $(subst .,/,$(REMOTE_impls))
FILES_stubs = $(REMOTE_files:%=$(CLASSDESTDIR)/%_Stub.class)
FILES_ties = $(subst javax/management/remote/rmi/,javax/management/remote/rmi/_,$(REMOTE_files:%=$(CLASSDESTDIR)/%_Tie.class))
#
# Compile stubs and skeletons for remote implementations
#
# Keep generated RMI/JRMP Stub source files and copy them to GENSRCDIR
# so that javadoc can include them in the API (4997471)
#
# For RMI/IIOP call rmic a second time with -standardPackage option
# so that *_tie classes are generated in package without the prefix
# org.omg.stub (6375696)
#
# To ensure the latest stub generator files are picked up from corba repo
# when available, we need to run with latest rmic version available. rmic
# launch tool not built at this stage but we can invoke via rmi class.
RMIC_JAVA = $(OUTPUTDIR)/bin/java
# need to treat 64bit solaris differently
ifeq ($(PLATFORM)-$(LIBARCH), solaris-amd64)
RMIC_JAVA = $(OUTPUTDIR)/bin/amd64/java
endif
ifeq ($(PLATFORM)-$(LIBARCH), solaris-sparcv9)
RMIC_JAVA = $(OUTPUTDIR)/bin/sparcv9/java
endif
ifeq ($(CROSS_COMPILE_ARCH),)
RMIC = $(RMIC_JAVA) $(JAVA_TOOLS_FLAGS) -cp $(OUTPUTDIR)/classes sun.rmi.rmic.Main
endif
$(CLASSDESTDIR)/%_Stub.class: $(CLASSDESTDIR)/%.class
$(prep-target)
$(RMIC) -classpath "$(CLASSDESTDIR)" \
-d $(CLASSDESTDIR) \
-v1.2 \
-keepgenerated \
$(subst /,.,$(<:$(CLASSDESTDIR)/%.class=%))
$(MKDIR) -p $(@D:$(CLASSDESTDIR)/%=$(GENSRCDIR)/%)
$(CP) $(@:%.class=%.java) \
$(@D:$(CLASSDESTDIR)/%=$(GENSRCDIR)/%)
$(RMIC) -classpath "$(CLASSDESTDIR)" \
-d $(CLASSDESTDIR) \
-iiop -v1.2 \
$(subst /,.,$(<:$(CLASSDESTDIR)/%.class=%))
$(RMIC) $(HOTSPOT_INTERPRETER_FLAG) -classpath "$(CLASSDESTDIR)" \
-d $(CLASSDESTDIR) \
-iiop -v1.2 \
-standardPackage \
$(subst /,.,$(<:$(CLASSDESTDIR)/%.class=%))
@$(java-vm-cleanup)
stubs: $(FILES_stubs)