makefiles/Makefile

changeset 349
a1b6b8f33d86
child 365
0c0b50c7b76a
equal deleted inserted replaced
347:1e2ac1ea3f6c 349:a1b6b8f33d86
1 #
2 # Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 #
5 # This code is free software; you can redistribute it and/or modify it
6 # under the terms of the GNU General Public License version 2 only, as
7 # published by the Free Software Foundation. Oracle designates this
8 # particular file as subject to the "Classpath" exception as provided
9 # by Oracle in the LICENSE file that accompanied this code.
10 #
11 # This code is distributed in the hope that it will be useful, but WITHOUT
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 # version 2 for more details (a copy is included in the LICENSE file that
15 # accompanied this code).
16 #
17 # You should have received a copy of the GNU General Public License version
18 # 2 along with this work; if not, write to the Free Software Foundation,
19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 #
21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 # or visit www.oracle.com if you need additional information or have any
23 # questions.
24 #
25
26 #
27 # Makefile for building the corba workspace.
28 #
29
30 include $(SPEC)
31 include MakeBase.gmk
32 include JavaCompilation.gmk
33 include IdlCompilation.gmk
34
35 default: all
36
37 JAVAC_JARS ?= "-Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar" \
38 -jar $(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar
39 # The Corba sources are old and generates a LOT of warnings.
40 # Disable these using Xlint, until someone cares to fix them.
41 DISABLE_CORBA_WARNINGS:=-Xlint:all,-deprecation,-unchecked,-serial,-fallthrough,-cast,-rawtypes,-static,-dep-ann
42
43 # The "generate old bytecode" javac setup uses the new compiler to compile for the
44 # boot jdk to generate tools that need to be run with the boot jdk.
45 # Thus we force the target bytecode to the boot jdk bytecode.
46 $(eval $(call SetupJavaCompiler,GENERATE_OLDBYTECODE,\
47 JVM:=$(JAVA),\
48 JAVAC:=$(JAVAC_JARS),\
49 FLAGS:=$(BOOT_JDK_SOURCETARGET) -bootclasspath $(BOOT_RTJAR) $(DISABLE_CORBA_WARNINGS),\
50 SERVER_DIR:=$(JAVAC_SERVERS),\
51 SERVER_JVM:=$(SERVER_JAVA),\
52 MODE:=$(JAVAC_USE_MODE),\
53 USE_DEPS:=$(JAVAC_USE_DEPS)))
54
55 # The "generate new bytecode" uses the new compiler to generate bytecode
56 # for the new jdk that is being built. The code compiled by this setup
57 # cannot necessarily be run with the boot jdk.
58 $(eval $(call SetupJavaCompiler,GENERATE_NEWBYTECODE,\
59 JVM:=$(JAVA),\
60 JAVAC:=$(JAVAC_JARS),\
61 FLAGS:=-Xprefer:source -XDignore.symbol.file=true \
62 -cp $(BOOT_JDK)/lib/tools.jar \
63 $(DISABLE_CORBA_WARNINGS),\
64 SERVER_DIR:=$(JAVAC_SERVERS),\
65 SERVER_JVM:=$(SERVER_JAVA),\
66 MODE:=$(JAVAC_USE_MODE),\
67 USE_DEPS:=$(JAVAC_USE_DEPS)))
68
69 $(eval $(call SetupJavaCompilation,BUILD_STRIPPROP,\
70 SETUP:=GENERATE_OLDBYTECODE,\
71 SRC:=$(CORBA_TOPDIR)/make/tools/src,\
72 BIN:=$(CORBA_OUTPUTDIR)/btclasses/stripprop_classes))
73
74 $(eval $(call SetupArchive,ARCHIVE_STRIPPROP,$(BUILD_STRIPPROP),\
75 SRCS:=$(CORBA_OUTPUTDIR)/btclasses/stripprop_classes,\
76 JAR:=$(CORBA_OUTPUTDIR)/btjars/stripproperties.jar,\
77 JARMAIN:=build.tools.stripproperties.StripPropertiesCorba))
78
79 $(eval $(call SetupJavaCompilation,BUILD_IDLJ,\
80 SETUP:=GENERATE_OLDBYTECODE,\
81 SRC:=$(CORBA_TOPDIR)/src/share/classes,\
82 BIN:=$(CORBA_OUTPUTDIR)/btclasses/idlj_classes,\
83 COPY:=.prp,\
84 INCLUDES:=com/sun/tools/corba/se/idl,\
85 EXCLUDE_FILES:=ResourceBundleUtil.java))
86
87 $(eval $(call SetupArchive,ARCHIVE_IDLJ,$(BUILD_IDLJ),\
88 SRCS:=$(CORBA_OUTPUTDIR)/btclasses/idlj_classes,\
89 SUFFIXES:=.class .prp,\
90 JAR:=$(CORBA_OUTPUTDIR)/btjars/idlj.jar,\
91 JARMAIN:=com.sun.tools.corba.se.idl.toJavaPortable.Compile))
92
93 $(eval $(call SetupJavaCompilation,BUILD_LOGUTIL,\
94 SETUP:=GENERATE_OLDBYTECODE,\
95 SRC:=$(CORBA_TOPDIR)/src/share/classes,\
96 BIN:=$(CORBA_OUTPUTDIR)/btclasses/logutil_classes,\
97 INCLUDES:=com/sun/tools/corba/se/logutil))
98
99 $(eval $(call SetupArchive,ARCHIVE_LOGUTIL,$(BUILD_LOGUTIL),\
100 SRCS:=$(CORBA_OUTPUTDIR)/btclasses/logutil_classes,\
101 JAR:=$(CORBA_OUTPUTDIR)/btjars/logutil.jar,\
102 JARMAIN:=com.sun.tools.corba.se.logutil.MC))
103
104 # Generate LogWrapper classes
105 $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/%SystemException.java : \
106 $(CORBA_TOPDIR)/src/share/classes/com/sun/corba/se/spi/logging/data/%.mc \
107 $(CORBA_OUTPUTDIR)/btjars/logutil.jar
108 mkdir -p $(@D)
109 rm -f $(@D)/_the_wrappers.d
110 echo Generating class file from $*.mc
111 $(JAVA) -jar $(CORBA_OUTPUTDIR)/btjars/logutil.jar make-class $< $(@D)
112
113 # Generate LogWrapper properties file by concatening resource files
114 $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/LogStrings.properties: \
115 $(CORBA_OUTPUTDIR)/logwrappers/ActivationSystemException.resource \
116 $(CORBA_OUTPUTDIR)/logwrappers/IORSystemException.resource \
117 $(CORBA_OUTPUTDIR)/logwrappers/InterceptorsSystemException.resource \
118 $(CORBA_OUTPUTDIR)/logwrappers/NamingSystemException.resource \
119 $(CORBA_OUTPUTDIR)/logwrappers/OMGSystemException.resource \
120 $(CORBA_OUTPUTDIR)/logwrappers/ORBUtilSystemException.resource \
121 $(CORBA_OUTPUTDIR)/logwrappers/POASystemException.resource \
122 $(CORBA_OUTPUTDIR)/logwrappers/UtilSystemException.resource
123 mkdir -p $(@D)
124 echo Concatenating 8 resource files into $(@F)
125 $(CAT) $^ > $@
126
127 # The resources files are generated from lisp-like .mc files.
128 $(CORBA_OUTPUTDIR)/logwrappers/%SystemException.resource : $(CORBA_TOPDIR)/src/share/classes/com/sun/corba/se/spi/logging/data/%.mc $(CORBA_OUTPUTDIR)/btjars/logutil.jar
129 mkdir -p $(@D)
130 rm -f $(@D)/_the_wrappers.d
131 echo Generating resource file from $*.mc
132 $(JAVA) -jar $(CORBA_OUTPUTDIR)/btjars/logutil.jar make-resource $< $(@D)
133
134
135 $(CORBA_OUTPUTDIR)/logwrappers/_the_wrappers.d : $(CORBA_OUTPUTDIR)/btjars/logutil.jar \
136 $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/ActivationSystemException.java \
137 $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/IORSystemException.java \
138 $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/InterceptorsSystemException.java \
139 $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/NamingSystemException.java \
140 $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/OMGSystemException.java \
141 $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/ORBUtilSystemException.java \
142 $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/POASystemException.java \
143 $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/UtilSystemException.java \
144 $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/LogStrings.properties
145 mkdir -p $(@D)
146 echo LOGWRAPPERS_ARE_CREATED=yes > $@
147
148 # Trigger the generation of the logwrappers. After the logwrapper classes and
149 # resources have been created, then the makefile will restart and the newly
150 # created java files will become part of the build further along in the makefile.
151 -include $(CORBA_OUTPUTDIR)/logwrappers/_the_wrappers.d
152
153 ifeq ($(LOGWRAPPERS_ARE_CREATED),yes)
154 $(eval $(call SetupIdlCompilation,BUILD_IDLS,\
155 IDLJ:=$(JAVA) -jar $(CORBA_OUTPUTDIR)/btjars/idlj.jar,\
156 SRC:=$(CORBA_TOPDIR)/src/share/classes,\
157 BIN:=$(CORBA_OUTPUTDIR)/gensrc,\
158 EXCLUDES:=com/sun/tools/corba/se/idl/% \
159 org/omg/CORBA/% \
160 com/sun/corba/se/GiopIDL/% \
161 org/omg/PortableServer/corba.idl,\
162 INCLUDES:=%,\
163 OLDIMPLBASES:=com/sun/corba/se/PortableActivationIDL/activation.idl \
164 com/sun/corba/se/spi/activation/activation.idl,\
165 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))
166
167 $(BUILD_IDLS) : $(CORBA_OUTPUTDIR)/btjars/idlj.jar
168
169 $(CORBA_OUTPUTDIR)/gensrc/_the_idls.d : $(BUILD_IDLS) $(CORBA_OUTPUTDIR)/btjars/idlj.jar
170 mkdir -p $(@D)
171 echo IDLS_ARE_CREATED=yes > $@
172
173 -include $(CORBA_OUTPUTDIR)/gensrc/_the_idls.d
174
175 ifeq ($(IDLS_ARE_CREATED),yes)
176 $(eval $(call SetupJavaCompilation,BUILD_CORBA,\
177 SETUP:=GENERATE_NEWBYTECODE,\
178 SRC:=$(CORBA_TOPDIR)/src/share/classes $(CORBA_OUTPUTDIR)/gensrc $(CORBA_OUTPUTDIR)/logwrappers,\
179 EXCLUDES:=com/sun/corba/se/PortableActivationIDL\
180 com/sun/tools/corba/se/logutil,\
181 EXCLUDE_FILES:=com/sun/corba/se/impl/presentation/rmi/JNDIStateFactoryImpl.java \
182 com/sun/corba/se/spi/presentation/rmi/StubWrapper.java \
183 com/sun/org/omg/CORBA/IDLTypeOperations.java \
184 com/sun/org/omg/CORBA/IRObjectOperations.java \
185 org/omg/PortableInterceptor/UNKNOWN.java \
186 com/sun/tools/corba/se/idl/ResourceBundleUtil.java\
187 com/sun/corba/se/impl/presentation/rmi/jndi.properties,\
188 COPY:=.prp LogStrings.properties,\
189 BIN:=$(CORBA_OUTPUTDIR)/classes))
190
191 # Separate src.zip call to include sources that were excluded in the build to
192 # mimic behavior in old build system.
193 $(eval $(call SetupZipArchive,ARCHIVE_BUILD_CORBA,\
194 SRC:=$(CORBA_TOPDIR)/src/share/classes $(CORBA_OUTPUTDIR)/gensrc $(CORBA_OUTPUTDIR)/logwrappers,\
195 ZIP:=$(CORBA_OUTPUTDIR)/dist/lib/src.zip))
196
197 $(BUILD_CORBA) : $(BUILD_IDLS) $(LOGWRAPPER_DEPENDENCIES)
198
199 # Run stripproperties on all sunorb resource files.
200 STRIP_PROP_SRC_FILES:=$(shell $(FIND) $(CORBA_TOPDIR)/src/share/classes -name "sunorb*.properties")
201 STRIP_PROP_FILES:=$(patsubst $(CORBA_TOPDIR)/src/share/classes/%,$(CORBA_OUTPUTDIR)/classes/%,\
202 $(STRIP_PROP_SRC_FILES))
203 # Simple delivery of zh_HK properties files just copies zh_TW properties files
204 STRIP_PROP_FILES+=$(patsubst $(CORBA_TOPDIR)/src/share/classes/%_zh_TW.properties,\
205 $(CORBA_OUTPUTDIR)/classes/%_zh_HK.properties,\
206 $(shell $(FIND) $(CORBA_TOPDIR)/src/share/classes -name "sunorb_zh_TW.properties"))
207 STRIP_PROP_SRC_FILES+=$(shell $(FIND) $(CORBA_TOPDIR)/src/share/classes -name "sunorb_zh_TW.properties")
208 STRIP_PROP_CMDLINE:=$(subst _SPACE_,$(SPACE),\
209 $(join $(addprefix -clean_SPACE_,$(STRIP_PROP_SRC_FILES)), \
210 $(addprefix _SPACE_,$(STRIP_PROP_FILES))))
211
212 $(CORBA_OUTPUTDIR)/_the.stripped_properties: $(STRIP_PROP_SRC_FILES) \
213 $(CORBA_OUTPUTDIR)/btjars/stripproperties.jar
214 $(MKDIR) -p $(sort $(dir $(STRIP_PROP_FILES)))
215 $(call ListPathsSafely,STRIP_PROP_CMDLINE,\n, >> $(CORBA_OUTPUTDIR)/_the.strip_prop.cmdline)
216 $(JAVA) -jar $(CORBA_OUTPUTDIR)/btjars/stripproperties.jar \
217 @$(CORBA_OUTPUTDIR)/_the.strip_prop.cmdline
218 $(TOUCH) $@
219
220 $(eval $(call SetupArchive,ARCHIVE_CORBA,\
221 $(BUILD_CORBA) $(CORBA_OUTPUTDIR)/_the.stripped_properties,\
222 SRCS:=$(CORBA_OUTPUTDIR)/classes,\
223 SUFFIXES:=.class .prp .properties,\
224 JAR:=$(CORBA_OUTPUTDIR)/dist/lib/classes.jar))
225
226 # The created classes.jar now contains Corba compiled to run on the target JDK
227 # and is ready for inclusion in jdk rt.jar.
228
229 # The created src.zip now contains .java and .properties files used to create the classes in classes.jar
230 # and is ready for inclusion into the jdk src.zip
231
232 BIN_FILES:=$(CORBA_TOPDIR)/src/share/classes/org/omg/CORBA/orb.idl $(CORBA_TOPDIR)/src/share/classes/org/omg/CORBA/ir.idl
233
234 $(CORBA_OUTPUTDIR)/dist/lib/bin.zip : $(BIN_FILES) $(CORBA_OUTPUTDIR)/dist/lib/classes.jar
235 mkdir -p $(CORBA_OUTPUTDIR)/dist/lib
236 mkdir -p $(CORBA_OUTPUTDIR)/lib
237 rm -f $@
238 echo Creating `basename $@`
239 cp $(CORBA_TOPDIR)/src/share/classes/org/omg/CORBA/*.idl $(CORBA_OUTPUTDIR)/lib
240 chmod ug+w $(CORBA_OUTPUTDIR)/lib/*
241 (cd $(CORBA_OUTPUTDIR); $(ZIP) -q $@ lib/orb.idl lib/ir.idl)
242
243 # The created bin.zip now contains the corba specific binaries: orb.idl, ir.idl
244
245 all: $(CORBA_OUTPUTDIR)/btjars/stripproperties.jar \
246 $(CORBA_OUTPUTDIR)/btjars/idlj.jar \
247 $(CORBA_OUTPUTDIR)/btjars/logutil.jar \
248 $(CORBA_OUTPUTDIR)/dist/lib/classes.jar \
249 $(CORBA_OUTPUTDIR)/dist/lib/src.zip \
250 $(CORBA_OUTPUTDIR)/dist/lib/bin.zip
251 endif
252 endif
253
254 clean:
255 rm -rf $(CORBA_OUTPUTDIR)
256
257 .PHONY: default all clean clobber

mercurial