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