alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Java example source code file (BuildCorba.gmk)

This example Java source code file (BuildCorba.gmk) is included in the alvinalexander.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Learn more about this Java project at its project page.

Java - Java tags/keywords

bin, corba_outputdir, corba_topdir, echo, jar, java, license, mkdir, oracle, setup, src, strip_prop_src_files, the

The BuildCorba.gmk Java example source code

#
# Copyright (c) 2007, 2013, 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 the corba workspace.
#

# This must be the first rule
default: all

include $(SPEC)
include MakeBase.gmk
include JavaCompilation.gmk
include IdlCompilation.gmk

# The Corba sources are old and generates a LOT of warnings.
# Disable these using Xlint, until someone cares to fix them.
DISABLE_CORBA_WARNINGS := -Xlint:all,-deprecation,-unchecked,-serial,-fallthrough,-cast,-rawtypes,-static,-dep-ann

# The "generate old bytecode" javac setup uses the new compiler to compile for the
# boot jdk to generate tools that need to be run with the boot jdk.
# Thus we force the target bytecode to the boot jdk bytecode.
$(eval $(call SetupJavaCompiler,GENERATE_OLDBYTECODE, \
    JVM := $(JAVA), \
    JAVAC := $(NEW_JAVAC), \
    FLAGS := $(BOOT_JDK_SOURCETARGET) \
         -bootclasspath "$(BOOT_RTJAR)$(PATH_SEP)$(BOOT_TOOLSJAR)" \
         $(DISABLE_CORBA_WARNINGS), \
    SERVER_DIR := $(SJAVAC_SERVER_DIR), \
    SERVER_JVM := $(SJAVAC_SERVER_JAVA)))

# The "generate new bytecode" uses the new compiler to generate bytecode
# for the new jdk that is being built. The code compiled by this setup
# cannot necessarily be run with the boot jdk.
$(eval $(call SetupJavaCompiler,GENERATE_NEWBYTECODE, \
    JVM := $(JAVA), \
    JAVAC := $(NEW_JAVAC), \
    FLAGS := -cp $(BOOT_TOOLSJAR) -XDignore.symbol.file=true $(DISABLE_CORBA_WARNINGS), \
    SERVER_DIR := $(SJAVAC_SERVER_DIR), \
    SERVER_JVM := $(SJAVAC_SERVER_JAVA)))

$(eval $(call SetupJavaCompilation,BUILD_STRIPPROP, \
    SETUP := GENERATE_OLDBYTECODE, \
    SRC := $(CORBA_TOPDIR)/make/tools/src, \
    BIN := $(CORBA_OUTPUTDIR)/btclasses/stripprop_classes))

$(eval $(call SetupArchive,ARCHIVE_STRIPPROP, $(BUILD_STRIPPROP), \
    SRCS := $(CORBA_OUTPUTDIR)/btclasses/stripprop_classes, \
    JAR := $(CORBA_OUTPUTDIR)/btjars/stripproperties.jar, \
    JARMAIN := build.tools.stripproperties.StripPropertiesCorba))

$(eval $(call SetupJavaCompilation,BUILD_IDLJ, \
    SETUP := GENERATE_OLDBYTECODE, \
    SRC := $(CORBA_TOPDIR)/src/share/classes, \
    BIN := $(CORBA_OUTPUTDIR)/btclasses/idlj_classes, \
    COPY := .prp, \
    INCLUDES := com/sun/tools/corba/se/idl, \
    EXCLUDE_FILES := ResourceBundleUtil.java))

$(eval $(call SetupArchive,ARCHIVE_IDLJ, $(BUILD_IDLJ), \
    SRCS := $(CORBA_OUTPUTDIR)/btclasses/idlj_classes, \
    SUFFIXES := .class .prp, \
    JAR := $(CORBA_OUTPUTDIR)/btjars/idlj.jar, \
    JARMAIN := com.sun.tools.corba.se.idl.toJavaPortable.Compile))

$(eval $(call SetupJavaCompilation,BUILD_LOGUTIL, \
    SETUP := GENERATE_OLDBYTECODE, \
    SRC := $(CORBA_TOPDIR)/src/share/classes, \
    BIN := $(CORBA_OUTPUTDIR)/btclasses/logutil_classes, \
    INCLUDES := com/sun/tools/corba/se/logutil))

$(eval $(call SetupArchive,ARCHIVE_LOGUTIL, $(BUILD_LOGUTIL), \
    SRCS := $(CORBA_OUTPUTDIR)/btclasses/logutil_classes, \
    JAR := $(CORBA_OUTPUTDIR)/btjars/logutil.jar, \
    JARMAIN := com.sun.tools.corba.se.logutil.MC))

# Generate LogWrapper classes
$(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/%SystemException.java: \
    $(CORBA_TOPDIR)/src/share/classes/com/sun/corba/se/spi/logging/data/%.mc \
    $(CORBA_OUTPUTDIR)/btjars/logutil.jar
	$(MKDIR) -p $(@D)
	$(RM) -f $(@D)/_the_wrappers.d
	$(ECHO) $(LOG_INFO) Generating class file from $*.mc
	$(JAVA) -jar $(CORBA_OUTPUTDIR)/btjars/logutil.jar make-class $< $(@D)

# Generate LogWrapper properties file by concatening resource files
$(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/LogStrings.properties: \
    $(CORBA_OUTPUTDIR)/logwrappers/ActivationSystemException.resource \
    $(CORBA_OUTPUTDIR)/logwrappers/IORSystemException.resource \
    $(CORBA_OUTPUTDIR)/logwrappers/InterceptorsSystemException.resource \
    $(CORBA_OUTPUTDIR)/logwrappers/NamingSystemException.resource \
    $(CORBA_OUTPUTDIR)/logwrappers/OMGSystemException.resource \
    $(CORBA_OUTPUTDIR)/logwrappers/ORBUtilSystemException.resource \
    $(CORBA_OUTPUTDIR)/logwrappers/POASystemException.resource \
    $(CORBA_OUTPUTDIR)/logwrappers/UtilSystemException.resource
	$(MKDIR) -p $(@D)
	$(ECHO) $(LOG_INFO) Concatenating 8 resource files into $(@F)
	$(CAT) $^ > $@

# The resources files are generated from lisp-like .mc files.
$(CORBA_OUTPUTDIR)/logwrappers/%SystemException.resource: $(CORBA_TOPDIR)/src/share/classes/com/sun/corba/se/spi/logging/data/%.mc $(CORBA_OUTPUTDIR)/btjars/logutil.jar
	$(MKDIR) -p $(@D)
	$(RM) -f $(@D)/_the_wrappers.d
	$(ECHO) $(LOG_INFO) Generating resource file from $*.mc
	$(JAVA) -jar $(CORBA_OUTPUTDIR)/btjars/logutil.jar make-resource $< $(@D)


$(CORBA_OUTPUTDIR)/logwrappers/_the_wrappers.d: $(CORBA_OUTPUTDIR)/btjars/logutil.jar \
    $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/ActivationSystemException.java \
    $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/IORSystemException.java \
    $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/InterceptorsSystemException.java \
    $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/NamingSystemException.java \
    $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/OMGSystemException.java \
    $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/ORBUtilSystemException.java \
    $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/POASystemException.java \
    $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/UtilSystemException.java \
    $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/LogStrings.properties
	$(MKDIR) -p $(@D)
	$(ECHO) LOGWRAPPERS_ARE_CREATED = yes > $@

# Trigger the generation of the logwrappers. After the logwrapper classes and
# resources have been created, then the makefile will restart and the newly
# created java files will become part of the build further along in the makefile.
-include $(CORBA_OUTPUTDIR)/logwrappers/_the_wrappers.d

ifeq ($(LOGWRAPPERS_ARE_CREATED), yes)

  $(eval $(call SetupIdlCompilation,BUILD_IDLS, \
      IDLJ := $(JAVA) -jar $(CORBA_OUTPUTDIR)/btjars/idlj.jar, \
      SRC := $(CORBA_TOPDIR)/src/share/classes, \
      BIN := $(CORBA_OUTPUTDIR)/gensrc, \
      EXCLUDES := com/sun/tools/corba/se/idl/% \
          org/omg/CORBA/% \
          com/sun/corba/se/GiopIDL/% \
          org/omg/PortableServer/corba.idl, \
      INCLUDES := %, \
      OLDIMPLBASES := com/sun/corba/se/PortableActivationIDL/activation.idl \
          com/sun/corba/se/spi/activation/activation.idl, \
      DELETES := DYNANYDELETEFILES org/omg/DynamicAny/*POA* org/omg/DynamicAny/*Holder* org/omg/DynamicAny/DynValueBoxHelper.java org/omg/DynamicAny/DynValueCommonHelper.java org/omg/DynamicAny/_DynValueCommonStub.java org/omg/DynamicAny/_DynValueBoxStub.java org/omg/DynamicAny/DynAnyPackage/TypeMismatchHolder.java org/omg/DynamicAny/DynAnyPackage/InvalidValueHolder.java org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHolder.java IOPDELETEFILES org/omg/IOP/BI_DIR_IIOP.java org/omg/IOP/ChainBypassCheck.java org/omg/IOP/ChainBypassInfo.java org/omg/IOP/FORWARDED_IDENTITY.java org/omg/IOP/INVOCATION_POLICIES.java org/omg/IOP/LogicalThreadId.java org/omg/IOP/SendingContextRunTime.java org/omg/IOP/UnknownExceptionInfo.java org/omg/IOP/TaggedComponentSeqHolder.java POAHELHOLFILES org/omg/PortableServer/CurrentPackage/NoContextHolder.java org/omg/PortableServer/ForwardRequestHolder.java org/omg/PortableServer/IdAssignmentPolicyValueHelper.java org/omg/PortableServer/IdAssignmentPolicyValueHolder.java org/omg/PortableServer/IdUniquenessPolicyValueHelper.java org/omg/PortableServer/IdUniquenessPolicyValueHolder.java org/omg/PortableServer/ImplicitActivationPolicyValueHelper.java org/omg/PortableServer/ImplicitActivationPolicyValueHolder.java org/omg/PortableServer/LifespanPolicyValueHelper.java org/omg/PortableServer/LifespanPolicyValueHolder.java org/omg/PortableServer/ServantRetentionPolicyValueHelper.java org/omg/PortableServer/ServantRetentionPolicyValueHolder.java org/omg/PortableServer/ObjectIdHelper.java org/omg/PortableServer/ObjectIdHolder.java org/omg/PortableServer/POAListHelper.java org/omg/PortableServer/POAListHolder.java org/omg/PortableServer/POAManagerPackage/AdapterInactiveHolder.java org/omg/PortableServer/POAManagerPackage/StateHelper.java org/omg/PortableServer/POAManagerPackage/StateHolder.java org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHolder.java org/omg/PortableServer/POAPackage/AdapterNonExistentHolder.java org/omg/PortableServer/POAPackage/InvalidPolicyHolder.java org/omg/PortableServer/POAPackage/NoServantHolder.java org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHolder.java org/omg/PortableServer/POAPackage/ObjectNotActiveHolder.java org/omg/PortableServer/POAPackage/ServantAlreadyActiveHolder.java org/omg/PortableServer/POAPackage/ServantNotActiveHolder.java org/omg/PortableServer/POAPackage/WrongAdapterHolder.java org/omg/PortableServer/POAPackage/WrongPolicyHolder.java org/omg/PortableServer/RequestProcessingPolicyValueHelper.java org/omg/PortableServer/RequestProcessingPolicyValueHolder.java org/omg/PortableServer/ServantActivatorHolder.java org/omg/PortableServer/ServantLocatorHolder.java org/omg/PortableServer/ThreadPolicyValueHelper.java org/omg/PortableServer/ThreadPolicyValueHolder.java PIHELHOLFILES org/omg/PortableInterceptor/ClientRequestInfoHelper.java org/omg/PortableInterceptor/ClientRequestInterceptorHelper.java org/omg/PortableInterceptor/IORInfoHelper.java org/omg/PortableInterceptor/IORInterceptorHelper.java org/omg/PortableInterceptor/InterceptorHelper.java org/omg/PortableInterceptor/ORBInitInfoHelper.java org/omg/PortableInterceptor/ORBInitializerHelper.java org/omg/PortableInterceptor/PolicyFactoryHelper.java org/omg/PortableInterceptor/ReplyStatusHelper.java org/omg/PortableInterceptor/RequestInfoHelper.java org/omg/PortableInterceptor/ServerRequestInfoHelper.java org/omg/PortableInterceptor/ServerRequestInterceptorHelper.java org/omg/PortableInterceptor/SlotIdHelper.java org/omg/PortableInterceptor/ClientRequestInfoHolder.java org/omg/PortableInterceptor/ClientRequestInterceptorHolder.java org/omg/PortableInterceptor/CurrentHolder.java org/omg/PortableInterceptor/ForwardRequestHolder.java org/omg/PortableInterceptor/IORInfoHolder.java org/omg/PortableInterceptor/IORInterceptorHolder.java org/omg/PortableInterceptor/InterceptorHolder.java org/omg/PortableInterceptor/InvalidSlotHolder.java org/omg/PortableInterceptor/ORBInitInfoHolder.java org/omg/PortableInterceptor/ORBInitializerHolder.java org/omg/PortableInterceptor/PolicyFactoryHolder.java org/omg/PortableInterceptor/RequestInfoHolder.java org/omg/PortableInterceptor/ServerRequestInfoHolder.java org/omg/PortableInterceptor/ServerRequestInterceptorHolder.java org/omg/PortableInterceptor/TaggedComponentSeqHolder.java org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHolder.java org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHolder.java org/omg/IOP/CodecPackage/FormatMismatchHolder.java org/omg/IOP/CodecPackage/InvalidTypeForEncodingHolder.java org/omg/IOP/CodecPackage/TypeMismatchHolder.java org/omg/IOP/CodecHelper.java org/omg/IOP/EncodingFormatHelper.java org/omg/IOP/EncodingHelper.java org/omg/IOP/CodecFactoryPackage/UnknownEncodingHolder.java org/omg/IOP/CodecFactoryHolder.java org/omg/IOP/CodecHolder.java org/omg/IOP/EncodingHolder.java org/omg/IOP/TaggedComponentSeqHelper.java org/omg/Dynamic/ContextListHelper.java org/omg/Dynamic/ExceptionListHelper.java org/omg/Dynamic/ParameterHolder.java org/omg/Dynamic/ParameterListHolder.java org/omg/Dynamic/ExceptionListHolder.java org/omg/Dynamic/ParameterHelper.java org/omg/Dynamic/ParameterListHelper.java org/omg/Dynamic/RequestContextHelper.java CORBAX org/omg/CORBA/OctetSeqHelper.java org/omg/CORBA/OctetSeqHolder.java org/omg/CORBA/PolicyError.java org/omg/CORBA/RepositoryIdHelper.java))

  $(BUILD_IDLS): $(CORBA_OUTPUTDIR)/btjars/idlj.jar

  $(CORBA_OUTPUTDIR)/gensrc/_the_idls.d: $(BUILD_IDLS) $(CORBA_OUTPUTDIR)/btjars/idlj.jar
	$(MKDIR) -p $(@D)
	$(ECHO) IDLS_ARE_CREATED = yes > $@

  -include $(CORBA_OUTPUTDIR)/gensrc/_the_idls.d

  ifeq ($(IDLS_ARE_CREATED), yes)

    $(eval $(call SetupJavaCompilation,BUILD_CORBA, \
        SETUP := GENERATE_NEWBYTECODE, \
        SRC := $(CORBA_TOPDIR)/src/share/classes $(CORBA_OUTPUTDIR)/gensrc $(CORBA_OUTPUTDIR)/logwrappers, \
        EXCLUDES := com/sun/corba/se/PortableActivationIDL \
            com/sun/tools/corba/se/logutil, \
        EXCLUDE_FILES := com/sun/corba/se/impl/presentation/rmi/JNDIStateFactoryImpl.java \
            com/sun/corba/se/spi/presentation/rmi/StubWrapper.java \
            com/sun/org/omg/CORBA/IDLTypeOperations.java \
            com/sun/org/omg/CORBA/IRObjectOperations.java \
            org/omg/PortableInterceptor/UNKNOWN.java \
            com/sun/tools/corba/se/idl/ResourceBundleUtil.java \
            com/sun/corba/se/impl/presentation/rmi/jndi.properties, \
        COPY := .prp LogStrings.properties, \
        BIN := $(CORBA_OUTPUTDIR)/classes))

    $(eval $(call SetupJavaCompilation,BUILD_BOOTSTRAP_CORBA, \
        SETUP := GENERATE_OLDBYTECODE, \
        SRC := $(BUILD_CORBA_SRC), \
        EXCLUDES := $(BUILD_CORBA_EXCLUDES), \
        EXCLUDE_FILES := $(BUILD_CORBA_EXCLUDE_FILES), \
        COPY := $(BUILD_CORBA_COPY), \
        BIN := $(CORBA_OUTPUTDIR)/btclasses/corba_classes, \
        JAR := $(CORBA_OUTPUTDIR)/btjars/btcorba.jar))

    # Separate src.zip call to include sources that were excluded in the build to
    # mimic behavior in old build system.
    $(eval $(call SetupZipArchive,ARCHIVE_BUILD_CORBA, \
        SRC := $(CORBA_TOPDIR)/src/share/classes $(CORBA_OUTPUTDIR)/gensrc $(CORBA_OUTPUTDIR)/logwrappers, \
        ZIP := $(CORBA_OUTPUTDIR)/dist/lib/src.zip))

    $(BUILD_CORBA): $(BUILD_IDLS) $(LOGWRAPPER_DEPENDENCIES)

    # Run stripproperties on all sunorb resource files.
    STRIP_PROP_SRC_FILES := $(shell $(FIND) $(CORBA_TOPDIR)/src/share/classes -name "sunorb*.properties")
    STRIP_PROP_FILES := $(patsubst $(CORBA_TOPDIR)/src/share/classes/%, $(CORBA_OUTPUTDIR)/classes/%, \
        $(STRIP_PROP_SRC_FILES))
    # Simple delivery of zh_HK properties files just copies zh_TW properties files
    STRIP_PROP_FILES += $(patsubst $(CORBA_TOPDIR)/src/share/classes/%_zh_TW.properties, \
        $(CORBA_OUTPUTDIR)/classes/%_zh_HK.properties, \
        $(shell $(FIND) $(CORBA_TOPDIR)/src/share/classes -name "sunorb_zh_TW.properties"))
    STRIP_PROP_SRC_FILES += $(shell $(FIND) $(CORBA_TOPDIR)/src/share/classes -name "sunorb_zh_TW.properties")
    STRIP_PROP_CMDLINE := $(subst _SPACE_, $(SPACE), \
        $(join $(addprefix -clean_SPACE_, $(STRIP_PROP_SRC_FILES)), \
        $(addprefix _SPACE_, $(STRIP_PROP_FILES))))

    $(CORBA_OUTPUTDIR)/_the.stripped_properties: $(STRIP_PROP_SRC_FILES) \
        $(CORBA_OUTPUTDIR)/btjars/stripproperties.jar
		$(MKDIR) -p $(sort $(dir $(STRIP_PROP_FILES)))
		$(call ListPathsSafely,STRIP_PROP_CMDLINE,\n, >> $(CORBA_OUTPUTDIR)/_the.strip_prop.cmdline)
		$(JAVA) -jar $(CORBA_OUTPUTDIR)/btjars/stripproperties.jar \
		    @$(CORBA_OUTPUTDIR)/_the.strip_prop.cmdline
		$(TOUCH) $@

    $(eval $(call SetupArchive,ARCHIVE_CORBA, \
        $(BUILD_CORBA) $(CORBA_OUTPUTDIR)/_the.stripped_properties, \
        SRCS := $(CORBA_OUTPUTDIR)/classes, \
        SUFFIXES := .class .prp .properties, \
        JAR := $(CORBA_OUTPUTDIR)/dist/lib/classes.jar))

    # The created classes.jar now contains Corba compiled to run on the target JDK
    # and is ready for inclusion in jdk rt.jar.

    # The created src.zip now contains .java and .properties files used to create the classes in classes.jar
    # and is ready for inclusion into the jdk src.zip

    BIN_FILES := $(CORBA_TOPDIR)/src/share/classes/com/sun/tools/corba/se/idl/orb.idl \
        $(CORBA_TOPDIR)/src/share/classes/com/sun/tools/corba/se/idl/ir.idl

    $(CORBA_OUTPUTDIR)/dist/lib/bin.zip: $(BIN_FILES) $(CORBA_OUTPUTDIR)/dist/lib/classes.jar
	$(MKDIR) -p $(CORBA_OUTPUTDIR)/dist/lib
	$(MKDIR) -p $(CORBA_OUTPUTDIR)/lib
	$(RM) -f $@
	$(ECHO) Creating `basename $@`
	$(CP) $(BIN_FILES) $(CORBA_OUTPUTDIR)/lib
	$(CHMOD) ug+w $(CORBA_OUTPUTDIR)/lib/*
	(cd $(CORBA_OUTPUTDIR); $(ZIP) -q $@ lib/orb.idl lib/ir.idl)

    # The created bin.zip now contains the corba specific binaries: orb.idl, ir.idl

    all: $(CORBA_OUTPUTDIR)/btjars/stripproperties.jar \
        $(CORBA_OUTPUTDIR)/btjars/idlj.jar \
        $(CORBA_OUTPUTDIR)/btjars/logutil.jar \
        $(CORBA_OUTPUTDIR)/btjars/btcorba.jar \
        $(CORBA_OUTPUTDIR)/dist/lib/classes.jar \
        $(CORBA_OUTPUTDIR)/dist/lib/src.zip \
        $(CORBA_OUTPUTDIR)/dist/lib/bin.zip
  endif
endif

clean:
	$(RM) -rf $(CORBA_OUTPUTDIR)

.PHONY: default all clean clobber

Other Java examples (source code examples)

Here is a short list of links related to this Java BuildCorba.gmk source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.