blob: 18196bfdc0d3dab477c438c847bcc5320ee0f940 [file] [log] [blame]
#
# Copyright (c) 1998, 2005, 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 sun.rmi.*
#
BUILDDIR = ../../..
MODULE = rmi
PACKAGE = sun.rmi
PRODUCT = sun
LIBRARY = rmi
include $(BUILDDIR)/common/Defs.gmk
#
# Add use of a mapfile
#
FILES_m = mapfile-vers
include $(BUILDDIR)/common/Mapfile-vers.gmk
#
# Java files to compile.
#
AUTO_FILES_JAVA_DIRS = \
java/rmi \
sun/rmi/log \
sun/rmi/registry \
sun/rmi/runtime \
sun/rmi/server \
sun/rmi/transport \
com/sun/rmi
#
# Native files to compile.
#
FILES_c = \
sun/rmi/server/MarshalInputStream.c
#
# Add ambient vpath to pick up files not part of sun.rmi package
#
vpath %.c $(SHARE_SRC)/native/sun/rmi/server
#
# Exported files that require generated .h
#
FILES_export = \
sun/rmi/server/MarshalInputStream.java
#
# Link to JVM for JVM_LatestUserDefinedLoader
#
OTHER_LDLIBS = $(JVMLIB)
#
# Rules
#
include $(BUILDDIR)/common/Library.gmk
#
# Full package names of implementations requiring stubs
#
REMOTE_impls = \
sun.rmi.registry.RegistryImpl \
sun.rmi.transport.DGCImpl
ifeq ($(PLATFORM), windows)
build: stubs
else # PLATFORM
ifneq ($(ARCH_DATA_MODEL), 32)
build: stubs
else # ARCH_DATA_MODEL
build: stubs bin
endif
endif
clean clobber:: bin.clean
#
# Compile stubs and skeletons for remote implementations
# (use -v1.1 for backward interoperability)
#
# gnumake 3.78.1 on windows attempts to build the target even
# though it exists. Not sure why, but a check for file existence
# has been added...
#
$(CLASSBINDIR)/%_Skel.class $(CLASSBINDIR)/%_Stub.class: $(CLASSBINDIR)/%.class
if [ ! -s $@ ] ; \
then $(RMIC) -v1.1 -classpath \
"$(CLASSBINDIR)" \
-d $(CLASSBINDIR) '$(subst /,.,$(<:$(CLASSBINDIR)/%.class=%))' ; \
fi
@$(java-vm-cleanup)
REMOTE_files = $(subst .,/,$(REMOTE_impls))
FILES_stubs = $(REMOTE_files:%=$(CLASSBINDIR)/%_Stub.class)
FILES_skels = $(REMOTE_files:%=$(CLASSBINDIR)/%_Skel.class)
stubs: $(FILES_stubs) $(FILES_skels)
bin: $(BINDIR)/java-rmi.cgi
$(BINDIR)/java-rmi.cgi: $(PLATFORM_SRC)/bin/java-rmi.cgi.sh
$(install-file)
$(call chmod-file, a+x)
bin.clean:
$(RM) $(BINDIR)/java-rmi.cgi
.PHONY: stubs bin bin.clean