# # Copyright (c) 2007, 2018, 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 \ sun/misc, \ 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