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