1 # |
|
2 # Copyright (c) 2011, 2014, 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 include $(SPEC) |
|
27 include MakeBase.gmk |
|
28 include JavaCompilation.gmk |
|
29 |
|
30 default: all |
|
31 |
|
32 include Tools.gmk |
|
33 |
|
34 JDK_OUT_CLASSES := $(wildcard $(JDK_OUTPUTDIR)/modules/*) |
|
35 $(eval $(call FillCacheFind, $(JDK_OUT_CLASSES))) |
|
36 |
|
37 include Profiles.gmk |
|
38 |
|
39 # |
|
40 # This makefile...so that altering will trigger rebuilding include/exclude-lists => jars |
|
41 # |
|
42 MAKEFILE = $(JDK_TOPDIR)/make/CreateJars.gmk |
|
43 # |
|
44 # And similarly for the Profiles |
|
45 PROFILE_MAKEFILES = $(JDK_TOPDIR)/make/Profiles.gmk $(JDK_TOPDIR)/make/profile-rtjar-includes.txt |
|
46 |
|
47 MAINMANIFEST := $(JDK_TOPDIR)/make/data/mainmanifest/manifest.mf |
|
48 BEANMANIFEST := $(JDK_TOPDIR)/make/data/swingbeaninfo/manifest.mf |
|
49 |
|
50 $(eval $(call MakeDir, $(IMAGES_OUTPUTDIR)/lib)) |
|
51 |
|
52 ########################################################################################## |
|
53 |
|
54 $(eval $(call SetupArchive,BUILD_JCONSOLE_JAR, , \ |
|
55 SRCS := $(JDK_OUTPUTDIR)/modules/jdk.jconsole, \ |
|
56 SUFFIXES := .class .gif .png .properties, \ |
|
57 INCLUDES := sun/tools/jconsole com/sun/tools/jconsole, \ |
|
58 JARMAIN := sun.tools.jconsole.JConsole, \ |
|
59 JAR := $(IMAGES_OUTPUTDIR)/lib/jconsole.jar, \ |
|
60 SKIP_METAINF := true)) |
|
61 |
|
62 |
|
63 ########################################################################################## |
|
64 |
|
65 $(eval $(call SetupArchive,BUILD_DNS_JAR, , \ |
|
66 SRCS := $(JDK_OUTPUTDIR)/modules/jdk.naming.dns, \ |
|
67 INCLUDES := sun/net/spi/nameservice/dns, \ |
|
68 EXTRA_FILES := META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor, \ |
|
69 JAR := $(IMAGES_OUTPUTDIR)/lib/ext/dnsns.jar, \ |
|
70 SKIP_METAINF := true)) |
|
71 |
|
72 |
|
73 ########################################################################################## |
|
74 |
|
75 LOCALEDATA_INCLUDE_LOCALES := ar be bg ca cs da de el es et fi fr ga hi hr hu in is it \ |
|
76 iw ja ko lt lv mk ms mt nl no pl pt ro ru sk sl sq sr sv \ |
|
77 th tr uk vi zh |
|
78 |
|
79 LOCALEDATA_INCLUDES := sun/util/resources/provider/NonEnLocaleDataMetaInfo.class |
|
80 LOCALEDATA_INCLUDES += $(addprefix sun/text/resources/, $(LOCALEDATA_INCLUDE_LOCALES)) \ |
|
81 $(addprefix sun/util/resources/, $(LOCALEDATA_INCLUDE_LOCALES)) |
|
82 |
|
83 LOCALEDATA_SERVICES_DIR := $(IMAGES_OUTPUTDIR)/localemetainfo |
|
84 |
|
85 LOCALEDATA_METAINF_SERVICES := $(LOCALEDATA_SERVICES_DIR)/META-INF/services/sun.util.locale.provider.LocaleDataMetaInfo |
|
86 |
|
87 $(LOCALEDATA_METAINF_SERVICES): $(JDK_TOPDIR)/src/jdk.localedata/META-INF/localedata-services/sun.util.locale.provider.LocaleDataMetaInfo |
|
88 $(install-file) |
|
89 |
|
90 $(eval $(call SetupArchive,BUILD_LOCALEDATA_JAR, \ |
|
91 $(LOCALEDATA_METAINF_SERVICES), \ |
|
92 SRCS := $(JDK_OUTPUTDIR)/modules/jdk.localedata \ |
|
93 $(LOCALEDATA_SERVICES_DIR), \ |
|
94 SUFFIXES := .class _dict _th, \ |
|
95 INCLUDES := $(LOCALEDATA_INCLUDES), \ |
|
96 EXTRA_FILES := META-INF/services/sun.util.locale.provider.LocaleDataMetaInfo, \ |
|
97 JAR := $(IMAGES_OUTPUTDIR)/lib/ext/localedata.jar, \ |
|
98 SKIP_METAINF := true)) |
|
99 |
|
100 ########################################################################################## |
|
101 # |
|
102 # Different variants of rt.jar are built based on the current profile. The output |
|
103 # directory is augmented with the profile name so that the final jar file and all the |
|
104 # intermediary list files will be in directory. This has the form lib$PROFILE rather than |
|
105 # lib/$PROFILE so that it won't get copied as part of the image generation process. |
|
106 # Each profile customizes the RT_JAR_EXCLUDES variable. |
|
107 # |
|
108 ########################################################################################## |
|
109 |
|
110 # Full JRE exclude list for rt.jar and resources.jar |
|
111 # This value should exclude types destined for jars other than rt.jar and resources.jar. |
|
112 # When building a Profile this value augments the profile specific exclusions |
|
113 RT_JAR_EXCLUDES += \ |
|
114 com/oracle/security/ucrypto \ |
|
115 com/sun/codemodel \ |
|
116 com/sun/crypto/provider \ |
|
117 com/sun/istack/internal/tools \ |
|
118 com/sun/jarsigner \ |
|
119 com/sun/java/accessibility \ |
|
120 com/sun/javadoc \ |
|
121 com/sun/jdi \ |
|
122 com/sun/net/ssl/internal/ssl \ |
|
123 com/sun/source \ |
|
124 com/sun/tools \ |
|
125 com/sun/xml/internal/dtdparser \ |
|
126 com/sun/xml/internal/rngom \ |
|
127 com/sun/xml/internal/xsom \ |
|
128 javax/crypto \ |
|
129 javax/swing/AbstractButtonBeanInfo.class \ |
|
130 javax/swing/beaninfo \ |
|
131 javax/swing/BoxBeanInfo.class \ |
|
132 javax/swing/JAppletBeanInfo.class \ |
|
133 javax/swing/JButtonBeanInfo.class \ |
|
134 javax/swing/JCheckBoxBeanInfo.class \ |
|
135 javax/swing/JCheckBoxMenuItemBeanInfo.class \ |
|
136 javax/swing/JColorChooserBeanInfo.class \ |
|
137 javax/swing/JComboBoxBeanInfo.class \ |
|
138 javax/swing/JComponentBeanInfo.class \ |
|
139 javax/swing/JDesktopPaneBeanInfo.class \ |
|
140 javax/swing/JDialogBeanInfo.class \ |
|
141 javax/swing/JEditorPaneBeanInfo.class \ |
|
142 javax/swing/JFileChooserBeanInfo.class \ |
|
143 javax/swing/JFormattedTextFieldBeanInfo.class \ |
|
144 javax/swing/JFrameBeanInfo.class \ |
|
145 javax/swing/JInternalFrameBeanInfo.class \ |
|
146 javax/swing/JLabelBeanInfo.class \ |
|
147 javax/swing/JLayeredPaneBeanInfo.class \ |
|
148 javax/swing/JListBeanInfo.class \ |
|
149 javax/swing/JMenuBarBeanInfo.class \ |
|
150 javax/swing/JMenuBeanInfo.class \ |
|
151 javax/swing/JMenuItemBeanInfo.class \ |
|
152 javax/swing/JOptionPaneBeanInfo.class \ |
|
153 javax/swing/JPanelBeanInfo.class \ |
|
154 javax/swing/JPasswordFieldBeanInfo.class \ |
|
155 javax/swing/JPopupMenuBeanInfo.class \ |
|
156 javax/swing/JProgressBarBeanInfo.class \ |
|
157 javax/swing/JRadioButtonBeanInfo.class \ |
|
158 javax/swing/JRadioButtonMenuItemBeanInfo.class \ |
|
159 javax/swing/JScrollBarBeanInfo.class \ |
|
160 javax/swing/JScrollPaneBeanInfo.class \ |
|
161 javax/swing/JSeparatorBeanInfo.class \ |
|
162 javax/swing/JSliderBeanInfo.class \ |
|
163 javax/swing/JSpinnerBeanInfo.class \ |
|
164 javax/swing/JSplitPaneBeanInfo.class \ |
|
165 javax/swing/JTabbedPaneBeanInfo.class \ |
|
166 javax/swing/JTableBeanInfo.class \ |
|
167 javax/swing/JTextAreaBeanInfo.class \ |
|
168 javax/swing/JTextFieldBeanInfo.class \ |
|
169 javax/swing/JTextPaneBeanInfo.class \ |
|
170 javax/swing/JToggleButtonBeanInfo.class \ |
|
171 javax/swing/JToolBarBeanInfo.class \ |
|
172 javax/swing/JTreeBeanInfo.class \ |
|
173 javax/swing/JWindowBeanInfo.class \ |
|
174 javax/swing/SwingBeanInfoBase.class \ |
|
175 javax/swing/text/JTextComponentBeanInfo.class \ |
|
176 jdk/nio/zipfs \ |
|
177 META-INF/services/com.sun.jdi.connect.Connector \ |
|
178 META-INF/services/com.sun.jdi.connect.spi.TransportService \ |
|
179 META-INF/services/com.sun.tools.attach.spi.AttachProvider \ |
|
180 META-INF/services/com.sun.tools.xjc.Plugin \ |
|
181 META-INF/services/javax.script.ScriptEngineFactory \ |
|
182 META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor \ |
|
183 META-INF/services/java.nio.file.spi.FileSystemProvider \ |
|
184 org/relaxng/datatype \ |
|
185 sun/awt/HKSCS.class \ |
|
186 sun/awt/motif/X11GB2312.class \ |
|
187 sun/awt/motif/X11GB2312$$$$Decoder.class \ |
|
188 sun/awt/motif/X11GB2312$$$$Encoder.class \ |
|
189 sun/awt/motif/X11GBK.class \ |
|
190 sun/awt/motif/X11GBK$$$$Encoder.class \ |
|
191 sun/awt/motif/X11KSC5601.class \ |
|
192 sun/awt/motif/X11KSC5601$$$$Decoder.class \ |
|
193 sun/awt/motif/X11KSC5601$$$$Encoder.class \ |
|
194 sun/jvmstat \ |
|
195 sun/net/spi/nameservice/dns \ |
|
196 sun/nio/cs/ext \ |
|
197 sun/rmi/rmic \ |
|
198 sun/security/ec \ |
|
199 sun/security/internal \ |
|
200 sun/security/mscapi \ |
|
201 sun/security/pkcs11 \ |
|
202 sun/security/provider/Sun.class \ |
|
203 sun/security/rsa/SunRsaSign.class \ |
|
204 sun/security/ssl \ |
|
205 sun/security/tools/jarsigner \ |
|
206 sun/swing/BeanInfoUtils.class \ |
|
207 sun/text/resources/cldr \ |
|
208 sun/tools/asm \ |
|
209 sun/tools/attach \ |
|
210 sun/tools/java \ |
|
211 sun/tools/javac \ |
|
212 sun/tools/jcmd \ |
|
213 sun/tools/jconsole \ |
|
214 sun/tools/jinfo \ |
|
215 sun/tools/jmap \ |
|
216 sun/tools/jps \ |
|
217 sun/tools/jstack \ |
|
218 sun/tools/jstat \ |
|
219 sun/tools/jstatd \ |
|
220 sun/tools/native2ascii \ |
|
221 sun/tools/serialver \ |
|
222 sun/tools/tree \ |
|
223 sun/tools/util \ |
|
224 sun/util/resources/provider/NonEnLocaleDataMetaInfo.class \ |
|
225 META-INF/services/sun.util.locale.provider.LocaleDataMetaInfo \ |
|
226 sun/util/resources/cldr \ |
|
227 $(LOCALEDATA_INCLUDES) \ |
|
228 com/oracle/jrockit/jfr \ |
|
229 oracle/jrockit/jfr \ |
|
230 jdk/jfr \ |
|
231 jdk/internal/dynalink \ |
|
232 jdk/nashorn \ |
|
233 sun/jvm \ |
|
234 toolbarButtonGraphics \ |
|
235 sa.properties \ |
|
236 com/sun/java/swing/action \ |
|
237 com/sun/java/swing/ui \ |
|
238 com/oracle/security \ |
|
239 # |
|
240 |
|
241 # Find all files in the classes dir to use as dependencies. This could be more fine granular. |
|
242 ALL_FILES_IN_CLASSES := $(call not-containing, _the., $(filter-out %javac_state, \ |
|
243 $(call CacheFind, $(JDK_OUT_CLASSES)))) |
|
244 |
|
245 RT_JAR_MANIFEST_FILE := $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar_manifest |
|
246 RESOURCE_JAR_MANIFEST_FILE := $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar_manifest |
|
247 |
|
248 $(RT_JAR_MANIFEST_FILE): $(MAINMANIFEST) $(BEANMANIFEST) |
|
249 $(MKDIR) -p $(@D) |
|
250 $(RM) $@ $@.tmp |
|
251 $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \ |
|
252 -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \ |
|
253 $(MAINMANIFEST) >> $@.tmp |
|
254 $(ECHO) >> $@.tmp |
|
255 $(CAT) $(BEANMANIFEST) >> $@.tmp |
|
256 $(MV) $@.tmp $@ |
|
257 |
|
258 $(RESOURCE_JAR_MANIFEST_FILE): $(MAINMANIFEST) |
|
259 $(MKDIR) -p $(@D) |
|
260 $(RM) $@ $@.tmp |
|
261 $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \ |
|
262 -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \ |
|
263 $(MAINMANIFEST) >> $@.tmp |
|
264 $(MV) $@.tmp $@ |
|
265 |
|
266 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.exclude: $(MAKEFILE) $(PROFILE_MAKEFILES) |
|
267 $(MKDIR) -p $(@D) |
|
268 $(RM) $@ $@.tmp |
|
269 $(call ListPathsSafely,RT_JAR_EXCLUDES,\n, >> $@.tmp) |
|
270 $(MV) $@.tmp $@ |
|
271 |
|
272 $(IMAGES_OUTPUTDIR)/lib/classlist: $(JDK_TOPDIR)/make/data/classlist/classlist.$(OPENJDK_TARGET_OS) \ |
|
273 $(MAKEFILE) |
|
274 $(MKDIR) -p $(@D) |
|
275 $(RM) $@ $@.tmp |
|
276 $(TOOL_ADDJSUM) $< $@.tmp |
|
277 $(MV) $@.tmp $@ |
|
278 |
|
279 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents: $(BUILD_TOOLS_JDK) $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.exclude \ |
|
280 $(ALL_FILES_IN_CLASSES) $(IMAGES_OUTPUTDIR)/lib/classlist |
|
281 $(MKDIR) -p $(@D) |
|
282 $(RM) $@ $@.tmp |
|
283 ($(CD) $(JDK_OUTPUTDIR)/modules && \ |
|
284 $(TOOL_JARREORDER) -m \ |
|
285 -o $@.tmp $(IMAGES_OUTPUTDIR)/lib/classlist $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.exclude . ) |
|
286 $(MV) $@.tmp $@ |
|
287 |
|
288 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar.contents: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents |
|
289 $(MKDIR) -p $(@D) |
|
290 $(RM) $@ $@.tmp |
|
291 $(GREP) -e '\.class$$' $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents > $@.tmp |
|
292 ifneq ($(PROFILE), ) |
|
293 # Add back classes from excluded packages (fixing the $ substitution in the process) |
|
294 # This currently won't work with modular build layout, but there currently are no |
|
295 # types needing to be re added. |
|
296 for type in $(subst \$$,\, $(RT_JAR_INCLUDE_TYPES)) ; do \ |
|
297 $(ECHO) $$type >> $@.tmp ; \ |
|
298 done |
|
299 endif |
|
300 $(MV) $@.tmp $@ |
|
301 |
|
302 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents |
|
303 $(MKDIR) -p $(@D) |
|
304 $(RM) $@ $@.tmp |
|
305 $(GREP) -v -e '\.class$$' \ |
|
306 -e '/_the\.' -e '^_the\.' -e '\\_the\.' -e ' _the\.' -e 'javac_state' \ |
|
307 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents > $@.tmp |
|
308 ifneq ($(PROFILE), ) |
|
309 # Strip out all META-INF/services/ entries |
|
310 $(GREP) -v -e 'META-INF/services/' $@.tmp > $@.tmp2 |
|
311 # Add back the required services |
|
312 # FIXME: On Solaris if PROFILE_INCLUDE_METAINF_SERVICES is not defined |
|
313 # we get a syntax error from sh. That doesn't happen on linux |
|
314 # Preserve any -C <dir> part of the original include line. |
|
315 for service in $(PROFILE_INCLUDE_METAINF_SERVICES) ; do \ |
|
316 $(GREP) -e "$$service" $@.tmp >> $@.tmp2; \ |
|
317 done |
|
318 $(MV) $@.tmp2 $@.tmp |
|
319 endif |
|
320 $(MV) $@.tmp $@ |
|
321 |
|
322 # This is a hack but I don't know how to make this fit into the existing scheme |
|
323 $(PROFILE_VERSION_CLASS_TARGETS): $(PROFILE_VERSION_JAVA_TARGETS) |
|
324 @$(JAVAC) -d $(@D)/../../ $(@D)/$(VERSION_JAVA_FILE) |
|
325 |
|
326 |
|
327 RT_JAR_CREATE_OPTIONS := c0fm |
|
328 RT_JAR_UPDATE_OPTIONS := u0f |
|
329 ifeq ($(COMPRESS_JARS), true) |
|
330 RT_JAR_CREATE_OPTIONS := cfm |
|
331 RT_JAR_UPDATE_OPTIONS := uf |
|
332 endif |
|
333 |
|
334 # This defines a target-specific variables to make the shell logic easier to see. |
|
335 # We need to find the Version.class file for the profile currently being built |
|
336 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/rt.jar: \ |
|
337 CLASS_FILE = $(if $(PROFILE), $(strip $(foreach class, $(PROFILE_VERSION_CLASS_TARGETS), $(if $(findstring $(PROFILE), $(class)), $(class)))), NO_SUCH_FILE) |
|
338 # This is the real target |
|
339 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/rt.jar: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar.contents $(RT_JAR_MANIFEST_FILE) $(PROFILE_VERSION_CLASS_TARGETS) |
|
340 $(ECHO) Creating rt.jar $(PROFILE) Compressed=$(COMPRESS_JARS) |
|
341 $(MKDIR) -p $(@D) |
|
342 $(RM) $@ $@.tmp |
|
343 $(CD) $(JDK_OUTPUTDIR)/modules && \ |
|
344 $(JAR) $(RT_JAR_CREATE_OPTIONS) $@.tmp $(RT_JAR_MANIFEST_FILE) \ |
|
345 @$(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar.contents && \ |
|
346 if [ -f $(CLASS_FILE) ]; then \ |
|
347 $(ECHO) Updating rt.jar $(PROFILE) && \ |
|
348 $(CD) $(patsubst %$(VERSION_CLASS_PATH), %, $(CLASS_FILE)) && \ |
|
349 $(JAR) $(RT_JAR_UPDATE_OPTIONS) $@.tmp $(VERSION_CLASS_PATH); \ |
|
350 fi |
|
351 $(MV) $@.tmp $@ |
|
352 |
|
353 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/resources.jar: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents \ |
|
354 $(RESOURCE_JAR_MANIFEST_FILE) |
|
355 $(ECHO) Creating resources.jar |
|
356 $(MKDIR) -p $(@D) |
|
357 $(RM) $@ $@.tmp |
|
358 $(CD) $(JDK_OUTPUTDIR)/modules && \ |
|
359 $(JAR) $(RT_JAR_CREATE_OPTIONS) $@.tmp $(RESOURCE_JAR_MANIFEST_FILE) \ |
|
360 @$(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents |
|
361 $(MV) $@.tmp $@ |
|
362 |
|
363 ########################################################################################## |
|
364 |
|
365 ifneq ($(OPENJDK_TARGET_OS), windows) |
|
366 CHARSETS_EXTRA_FILES := sun/awt/motif/X11GBK.class \ |
|
367 sun/awt/motif/X11GB2312$$$$Decoder.class \ |
|
368 sun/awt/motif/X11GB2312.class \ |
|
369 sun/awt/motif/X11KSC5601$$$$Decoder.class \ |
|
370 sun/awt/motif/X11KSC5601$$$$Encoder.class \ |
|
371 sun/awt/motif/X11GB2312$$$$Encoder.class \ |
|
372 sun/awt/motif/X11GBK$$$$Encoder.class \ |
|
373 sun/awt/motif/X11KSC5601.class |
|
374 endif |
|
375 |
|
376 $(eval $(call SetupArchive,BUILD_CHARSETS_JAR, , \ |
|
377 SRCS := $(JDK_OUT_CLASSES), \ |
|
378 SUFFIXES := .class .dat, \ |
|
379 INCLUDES := sun/nio/cs/ext, \ |
|
380 EXTRA_FILES := sun/awt/HKSCS.class \ |
|
381 $(CHARSETS_EXTRA_FILES), \ |
|
382 JAR := $(IMAGES_OUTPUTDIR)/lib/charsets.jar, \ |
|
383 SKIP_METAINF := true, \ |
|
384 CHECK_COMPRESS_JAR := true)) |
|
385 |
|
386 ########################################################################################## |
|
387 |
|
388 $(eval $(call SetupArchive,BUILD_ZIPFS_JAR, , \ |
|
389 SRCS := $(JDK_OUT_CLASSES), \ |
|
390 INCLUDES := jdk/nio/zipfs, \ |
|
391 EXTRA_FILES := META-INF/services/java.nio.file.spi.FileSystemProvider, \ |
|
392 JAR := $(IMAGES_OUTPUTDIR)/lib/ext/zipfs.jar, \ |
|
393 SKIP_METAINF := true, \ |
|
394 CHECK_COMPRESS_JAR := true)) |
|
395 |
|
396 ########################################################################################## |
|
397 |
|
398 ifndef OPENJDK |
|
399 ifeq ($(ENABLE_JFR), true) |
|
400 $(eval $(call SetupArchive,BUILD_JFR_JAR, , \ |
|
401 SRCS := $(JDK_OUTPUTDIR)/modules/jdk.jfr, \ |
|
402 SUFFIXES := .class .jfc .xsd, \ |
|
403 INCLUDES := com/oracle/jrockit/jfr \ |
|
404 oracle/jrockit/jfr \ |
|
405 jdk/jfr, \ |
|
406 JAR := $(IMAGES_OUTPUTDIR)/lib/jfr.jar, \ |
|
407 SKIP_METAINF := true, \ |
|
408 MANIFEST := $(MAINMANIFEST), \ |
|
409 CHECK_COMPRESS_JAR := true)) |
|
410 |
|
411 endif |
|
412 endif |
|
413 |
|
414 ########################################################################################## |
|
415 |
|
416 $(eval $(call SetupArchive,BUILD_JSSE_JAR, , \ |
|
417 SRCS := $(JDK_OUT_CLASSES), \ |
|
418 INCLUDES := sun/security/provider/Sun.class \ |
|
419 sun/security/rsa/SunRsaSign.class \ |
|
420 sun/security/ssl \ |
|
421 com/sun/net/ssl/internal/ssl, \ |
|
422 JAR := $(IMAGES_OUTPUTDIR)/lib/jsse.jar, \ |
|
423 SKIP_METAINF := true, \ |
|
424 MANIFEST := $(MAINMANIFEST), \ |
|
425 CHECK_COMPRESS_JAR := true)) |
|
426 |
|
427 ########################################################################################## |
|
428 |
|
429 $(eval $(call SetupArchive,BUILD_SWINGBEANS_JAR, , \ |
|
430 SRCS := $(JDK_OUTPUTDIR)/modules/java.desktop, \ |
|
431 SUFFIXES := BeanInfo.class .gif, \ |
|
432 INCLUDES := javax/swing sun/swing, \ |
|
433 EXCLUDES := javax/swing/plaf, \ |
|
434 EXTRA_FILES := javax/swing/SwingBeanInfoBase.class sun/swing/BeanInfoUtils.class, \ |
|
435 JAR := $(IMAGES_OUTPUTDIR)/lib/dt.jar, \ |
|
436 SKIP_METAINF := true)) |
|
437 |
|
438 ########################################################################################## |
|
439 |
|
440 # Get the CLDRVERSION |
|
441 include gensrc/GensrcCLDR.gmk |
|
442 |
|
443 CLDRDATA_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/cldrdata.jar |
|
444 |
|
445 CLDR_SERVICES_DIR := $(IMAGES_OUTPUTDIR)/cldrmetainfo |
|
446 |
|
447 CLDR_METAINF_SERVICES := $(CLDR_SERVICES_DIR)/META-INF/services/sun.util.locale.provider.LocaleDataMetaInfo |
|
448 |
|
449 $(CLDR_METAINF_SERVICES): $(JDK_TOPDIR)/src/jdk.localedata/META-INF/cldrdata-services/sun.util.locale.provider.LocaleDataMetaInfo |
|
450 $(install-file) |
|
451 |
|
452 $(eval $(call SetupArchive,BUILD_CLDRDATA_JAR, \ |
|
453 $(CLDR_METAINF_SERVICES), \ |
|
454 SRCS := $(JDK_OUTPUTDIR)/modules/jdk.localedata \ |
|
455 $(CLDR_SERVICES_DIR), \ |
|
456 SUFFIXES := .class, \ |
|
457 INCLUDES := sun/text/resources/cldr \ |
|
458 sun/util/resources/cldr, \ |
|
459 EXTRA_FILES := META-INF/services/sun.util.locale.provider.LocaleDataMetaInfo, \ |
|
460 JAR := $(CLDRDATA_JAR_DST), \ |
|
461 EXTRA_MANIFEST_ATTR := CLDR-Version: $(CLDRVERSION), \ |
|
462 SKIP_METAINF := true)) |
|
463 |
|
464 ########################################################################################## |
|
465 |
|
466 TOOLS_JAR_INCLUDES := \ |
|
467 com/sun/codemodel \ |
|
468 com/sun/istack/internal/tools \ |
|
469 com/sun/jarsigner \ |
|
470 com/sun/javadoc \ |
|
471 com/sun/jdi \ |
|
472 com/sun/source \ |
|
473 com/sun/tools/attach \ |
|
474 com/sun/tools/classfile \ |
|
475 com/sun/tools/corba \ |
|
476 com/sun/tools/doclets \ |
|
477 com/sun/tools/doclint \ |
|
478 com/sun/tools/example/debug/expr \ |
|
479 com/sun/tools/example/debug/tty \ |
|
480 com/sun/tools/hat \ |
|
481 com/sun/tools/internal/jxc \ |
|
482 com/sun/tools/internal/jxc/ap \ |
|
483 com/sun/tools/internal/ws \ |
|
484 com/sun/tools/internal/ws/wscompile/plugin/at_generated \ |
|
485 com/sun/tools/internal/xjc \ |
|
486 com/sun/tools/javac \ |
|
487 com/sun/tools/javadoc \ |
|
488 com/sun/tools/javah \ |
|
489 com/sun/tools/javap \ |
|
490 com/sun/tools/jdeps \ |
|
491 com/sun/tools/jdi \ |
|
492 com/sun/tools/script/shell \ |
|
493 com/sun/xml/internal/dtdparser \ |
|
494 com/sun/xml/internal/rngom \ |
|
495 com/sun/xml/internal/xsom \ |
|
496 org/relaxng/datatype \ |
|
497 sun/applet \ |
|
498 sun/jvmstat \ |
|
499 sun/rmi/rmic \ |
|
500 sun/security/tools/jarsigner \ |
|
501 sun/tools/asm \ |
|
502 sun/tools/attach \ |
|
503 sun/tools/jar \ |
|
504 sun/tools/java \ |
|
505 sun/tools/javac \ |
|
506 sun/tools/jcmd \ |
|
507 sun/tools/jinfo \ |
|
508 sun/tools/jmap \ |
|
509 sun/tools/jps \ |
|
510 sun/tools/jstack \ |
|
511 sun/tools/jstat \ |
|
512 sun/tools/jstatd \ |
|
513 sun/tools/native2ascii \ |
|
514 sun/tools/serialver \ |
|
515 sun/tools/tree \ |
|
516 sun/tools/util |
|
517 |
|
518 # The sjavac tools is not ready for public consumption. |
|
519 TOOLS_JAR_EXCLUDES = com/sun/tools/sjavac |
|
520 |
|
521 TOOLS_JAR_SRC := $(addprefix $(JDK_OUTPUTDIR)/modules/,\ |
|
522 java.corba \ |
|
523 java.desktop \ |
|
524 jdk.attach \ |
|
525 jdk.compiler \ |
|
526 jdk.dev \ |
|
527 jdk.javadoc \ |
|
528 jdk.jconsole \ |
|
529 jdk.jcmd \ |
|
530 jdk.jdi \ |
|
531 jdk.jvmstat \ |
|
532 jdk.rmic \ |
|
533 jdk.runtime \ |
|
534 jdk.xml.bind \ |
|
535 jdk.xml.ws \ |
|
536 ) |
|
537 # |
|
538 |
|
539 $(eval $(call SetupArchive,BUILD_TOOLS_JAR, , \ |
|
540 SRCS := $(TOOLS_JAR_SRC), \ |
|
541 SUFFIXES := .class .prp .gif .properties .xml .css .xsd .js .html .txt .java \ |
|
542 Tool aliasmap options, \ |
|
543 INCLUDES := $(TOOLS_JAR_INCLUDES), \ |
|
544 EXCLUDES := $(TOOLS_JAR_EXCLUDES), \ |
|
545 EXTRA_FILES := \ |
|
546 $(JDK_OUTPUTDIR)/modules/jdk.jdi/META-INF/services/com.sun.jdi.connect.Connector \ |
|
547 META-INF/services/com.sun.jdi.connect.spi.TransportService \ |
|
548 META-INF/services/com.sun.tools.attach.spi.AttachProvider \ |
|
549 META-INF/services/com.sun.tools.internal.ws.wscompile.Plugin \ |
|
550 META-INF/services/com.sun.tools.internal.xjc.Plugin, \ |
|
551 JAR := $(IMAGES_OUTPUTDIR)/lib/tools.jar, \ |
|
552 SKIP_METAINF := true, \ |
|
553 CHECK_COMPRESS_JAR := true)) |
|
554 |
|
555 |
|
556 ########################################################################################## |
|
557 |
|
558 include CORE_PKGS.gmk |
|
559 include NON_CORE_PKGS.gmk |
|
560 |
|
561 # The compiler should not issue a "Proprietary" warning when compiling |
|
562 # classes in the com.sun.java.swing.plaf packages, since we've always |
|
563 # allowed, and even advocated, extending them (see bug 6476749). |
|
564 # |
|
565 # This approach is NOT to be used as a general purpose way to avoid such |
|
566 # compiler warnings for non-core packages. The correct way is to document |
|
567 # the packages in NON_CORE_PKGS.gmk, and include them in the NON_CORE_PKGS |
|
568 # definition. |
|
569 # |
|
570 # Swing has taken this approach only as a temporary measure to avoid |
|
571 # the compiler warnings until we can properly document these packages. |
|
572 # This is covered under 6491853. |
|
573 EXCLUDE_PROPWARN_PKGS = com.sun.java.swing.plaf.windows \ |
|
574 com.sun.java.swing.plaf.motif \ |
|
575 com.sun.java.swing.plaf.gtk |
|
576 |
|
577 # |
|
578 # Include the exported private packages in ct.sym. |
|
579 # This is an interim solution until the ct.sym is replaced |
|
580 # with a new module system (being discussed for JDK 8). |
|
581 # |
|
582 EXPORTED_PRIVATE_PKGS = com.oracle.net \ |
|
583 com.oracle.nio |
|
584 |
|
585 $(IMAGES_OUTPUTDIR)/symbols/_the.symbols: $(IMAGES_OUTPUTDIR)/lib/rt.jar |
|
586 $(RM) -r $(IMAGES_OUTPUTDIR)/symbols/META-INF/sym |
|
587 $(MKDIR) -p $(IMAGES_OUTPUTDIR)/symbols/META-INF/sym |
|
588 $(JAVA) $(NEW_JAVAC) \ |
|
589 -bootclasspath "$(IMAGES_OUTPUTDIR)/lib/rt.jar" \ |
|
590 -XDprocess.packages -proc:only \ |
|
591 -processor com.sun.tools.javac.sym.CreateSymbols \ |
|
592 -Acom.sun.tools.javac.sym.Jar=$(IMAGES_OUTPUTDIR)/lib/rt.jar \ |
|
593 -Acom.sun.tools.javac.sym.Dest=$(IMAGES_OUTPUTDIR)/symbols/META-INF/sym/rt.jar \ |
|
594 -Acom.sun.tools.javac.sym.Profiles=profile-rtjar-includes.txt \ |
|
595 $(CORE_PKGS) $(NON_CORE_PKGS) $(EXCLUDE_PROPWARN_PKGS) $(EXPORTED_PRIVATE_PKGS) |
|
596 $(TOUCH) $@ |
|
597 |
|
598 $(eval $(call MakeDir, $(IMAGES_OUTPUTDIR)/symbols)) |
|
599 $(eval $(call SetupArchive,BUILD_CT_SYM, $(IMAGES_OUTPUTDIR)/symbols/_the.symbols, \ |
|
600 SRCS := $(IMAGES_OUTPUTDIR)/symbols, \ |
|
601 INCLUDES := META-INF/sym, \ |
|
602 JAR := $(IMAGES_OUTPUTDIR)/lib/ct.sym, \ |
|
603 CHECK_COMPRESS_JAR := true)) |
|
604 |
|
605 |
|
606 ########################################################################################## |
|
607 |
|
608 ifdef OPENJDK |
|
609 SRC_ZIP_INCLUDES = \ |
|
610 com \ |
|
611 java \ |
|
612 javax \ |
|
613 jdk \ |
|
614 org \ |
|
615 sun \ |
|
616 # |
|
617 SRC_ZIP_EXCLUDES = |
|
618 else |
|
619 SRC_ZIP_INCLUDES = \ |
|
620 com/sun/corba \ |
|
621 com/sun/image/codec/jpeg \ |
|
622 com/sun/imageio \ |
|
623 com/sun/java_cup \ |
|
624 com/sun/javadoc \ |
|
625 com/sun/java/swing \ |
|
626 com/sun/jmx \ |
|
627 com/sun/naming \ |
|
628 com/sun/org/apache \ |
|
629 com/sun/security/auth \ |
|
630 com/sun/security/jgss \ |
|
631 com/sun/source \ |
|
632 java \ |
|
633 javax/accessibility \ |
|
634 javax/annotation \ |
|
635 javax/imageio \ |
|
636 javax/lang \ |
|
637 javax/management \ |
|
638 javax/naming \ |
|
639 javax/print \ |
|
640 javax/rmi \ |
|
641 javax/script \ |
|
642 javax/security \ |
|
643 javax/sound \ |
|
644 javax/sql \ |
|
645 javax/swing \ |
|
646 javax/tools \ |
|
647 javax/xml \ |
|
648 org/ietf \ |
|
649 org/omg \ |
|
650 org/w3c/dom \ |
|
651 org/xml/sax \ |
|
652 # |
|
653 SRC_ZIP_EXCLUDES = javax/swing/beaninfo |
|
654 endif |
|
655 |
|
656 SRC_ZIP_SRCS := $(wildcard \ |
|
657 $(JDK_TOPDIR)/src/*/share/classes \ |
|
658 $(JDK_TOPDIR)/src/*/$(OPENJDK_TARGET_OS)/classes \ |
|
659 $(JDK_TOPDIR)/src/*/$(OPENJDK_TARGET_OS_API_DIR)/classes \ |
|
660 $(LANGTOOLS_TOPDIR)/src/*/share/classes \ |
|
661 $(CORBA_TOPDIR)/src/*/share/classes \ |
|
662 $(JAXP_TOPDIR)/src/*/share/classes \ |
|
663 $(JAXWS_TOPDIR)/src/*/share/classes \ |
|
664 $(JDK_OUTPUTDIR)/gensrc/j* \ |
|
665 $(JDK_OUTPUTDIR)/gendocsrc_rmic \ |
|
666 $(CORBA_OUTPUTDIR)/gensrc/j* \ |
|
667 ) \ |
|
668 # |
|
669 ifndef OPENJDK |
|
670 SRC_ZIP_SRCS += $(wildcard $(JDK_TOPDIR)/src/closed/*/share/classes) |
|
671 endif |
|
672 |
|
673 # Need to copy launcher src files into desired directory structure |
|
674 # before zipping the sources. |
|
675 $(eval $(call SetupCopyFiles,COPY_LAUNCHER_SRC, \ |
|
676 SRC := $(JDK_TOPDIR)/src/java.base, \ |
|
677 DEST := $(IMAGES_OUTPUTDIR)/src/launcher, \ |
|
678 FLATTEN := true, \ |
|
679 FILES := $(wildcard \ |
|
680 $(JDK_TOPDIR)/src/java.base/share/native/launcher/* \ |
|
681 $(JDK_TOPDIR)/src/java.base/share/native/libjli/* \ |
|
682 $(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_API_DIR)/native/libjli/java_md*))) |
|
683 |
|
684 LAUNCHER_ZIP_SRC := $(COPY_LAUNCHER_SRC) |
|
685 |
|
686 $(IMAGES_OUTPUTDIR)/src.zip: $(LAUNCHER_ZIP_SRC) |
|
687 |
|
688 # This dir needs to exist before macro is evaluated to avoid warning from find. |
|
689 $(eval $(call MakeDir, $(IMAGES_OUTPUTDIR)/src)) |
|
690 $(eval $(call SetupZipArchive,BUILD_SRC_ZIP, \ |
|
691 SRC := $(SRC_ZIP_SRCS) $(IMAGES_OUTPUTDIR)/src, \ |
|
692 INCLUDES := $(SRC_ZIP_INCLUDES) launcher, \ |
|
693 EXCLUDES := $(SRC_ZIP_EXCLUDES), \ |
|
694 SUFFIXES := .java .c .h, \ |
|
695 ZIP := $(IMAGES_OUTPUTDIR)/src.zip, \ |
|
696 EXTRA_DEPS := $(LAUNCHER_ZIP_SRC))) |
|
697 |
|
698 ########################################################################################## |
|
699 |
|
700 # This file is imported from hotspot in Import.gmk. Copying it into images/lib so that |
|
701 # all jars can be found in one place when creating images in Images.gmk. It needs to be |
|
702 # done here so that clean targets can be simple and accurate. |
|
703 $(IMAGES_OUTPUTDIR)/lib/sa-jdi.jar: $(HOTSPOT_DIST)/lib/sa-jdi.jar |
|
704 $(install-file) |
|
705 |
|
706 ########################################################################################## |
|
707 # |
|
708 # sec-bin.zip is used by builds where the corresponding sources are not available |
|
709 # |
|
710 $(eval $(call SetupZipArchive,BUILD_SEC_BIN_ZIP, \ |
|
711 SRC := $(JDK_OUTPUTDIR), \ |
|
712 INCLUDES := \ |
|
713 modules/java.base/javax/crypto \ |
|
714 modules/java.base/javax/crypto/spec \ |
|
715 modules/java.base/sun/security/internal/interfaces \ |
|
716 modules/java.base/sun/security/internal/spec \ |
|
717 modules/java.base/com/sun/crypto/provider \ |
|
718 modules/jdk.crypto.ec/sun/security/ec \ |
|
719 modules/jdk.crypto.mscapi/sun/security/mscapi \ |
|
720 modules/jdk.crypto.pkcs11/sun/security/pkcs11 \ |
|
721 modules/jdk.crypto.pkcs11/sun/security/pkcs11/wrapper \ |
|
722 modules/jdk.crypto.ucrypto/com/oracle/security/ucrypto \ |
|
723 modules/java.base/javax/net \ |
|
724 modules/java.base/javax/security/cert \ |
|
725 modules/java.base/com/sun/net/ssl \ |
|
726 modules/java.base/com/sun/security/cert \ |
|
727 modules/java.base/sun/net/www/protocol/https \ |
|
728 modules/java.base/sun/security/pkcs12 \ |
|
729 modules/java.base/sun/security/ssl \ |
|
730 modules/java.security.jgss/sun/security/krb5 \ |
|
731 modules/java.security.jgss/sun/security/krb5/internal \ |
|
732 modules/java.security.jgss/sun/security/krb5/internal/ccache \ |
|
733 modules/java.security.jgss/sun/security/krb5/internal/crypto \ |
|
734 modules/java.security.jgss/sun/security/krb5/internal/ktab \ |
|
735 modules/java.security.jgss/sun/security/krb5/internal/rcache \ |
|
736 modules/java.security.jgss/sun/security/krb5/internal/util, \ |
|
737 INCLUDE_FILES := modules/java.security.jgss/sun/security/jgss/spi/GSSContextSpi.class, \ |
|
738 EXCLUDES := modules/java.security.jgss/sun/security/krb5/internal/tools, \ |
|
739 ZIP := $(IMAGES_OUTPUTDIR)/sec-bin.zip)) |
|
740 |
|
741 JARS += $(IMAGES_OUTPUTDIR)/sec-bin.zip |
|
742 |
|
743 ########################################################################################## |
|
744 # |
|
745 # Windows specific binary security packages. |
|
746 # |
|
747 ifeq ($(OPENJDK_TARGET_OS), windows) |
|
748 # sec-windows-bin.zip is used by builds where the corresponding sources are not available |
|
749 $(eval $(call SetupZipArchive,BUILD_SEC_WINDOWS_BIN_ZIP, \ |
|
750 SRC := $(JDK_OUTPUTDIR), \ |
|
751 INCLUDES := modules/java.security.jgss/sun/security/krb5/internal/tools, \ |
|
752 ZIP := $(IMAGES_OUTPUTDIR)/sec-windows-bin.zip)) |
|
753 |
|
754 JARS += $(IMAGES_OUTPUTDIR)/sec-windows-bin.zip |
|
755 |
|
756 # JGSS files contain the native Kerberos library |
|
757 ifeq ($(OPENJDK_TARGET_CPU), x86_64) |
|
758 JGSS_ZIP_NAME = jgss-windows-x64-bin.zip |
|
759 else |
|
760 JGSS_ZIP_NAME = jgss-windows-i586-bin.zip |
|
761 endif |
|
762 |
|
763 $(eval $(call SetupZipArchive,BUILD_JGSS_BIN_ZIP, \ |
|
764 SRC := $(JDK_OUTPUTDIR), \ |
|
765 INCLUDE_FILES := bin/w2k_lsa_auth.dll \ |
|
766 bin/w2k_lsa_auth.map \ |
|
767 bin/w2k_lsa_auth.pdb, \ |
|
768 ZIP := $(IMAGES_OUTPUTDIR)/$(JGSS_ZIP_NAME))) |
|
769 |
|
770 JARS += $(IMAGES_OUTPUTDIR)/$(JGSS_ZIP_NAME) |
|
771 endif |
|
772 |
|
773 ########################################################################################## |
|
774 |
|
775 # This rule copies all jars from jdk/lib/... to images/lib/... to avoid having to track |
|
776 # which jars are where |
|
777 $(IMAGES_OUTPUTDIR)/lib/%: $(JDK_OUTPUTDIR)/lib/% |
|
778 $(install-file) |
|
779 |
|
780 ########################################################################################## |
|
781 |
|
782 # Import nashorn.jar from nashorn dist dir. |
|
783 $(IMAGES_OUTPUTDIR)/lib/ext/nashorn.jar: $(NASHORN_DIST)/nashorn.jar |
|
784 $(install-file) |
|
785 |
|
786 ########################################################################################## |
|
787 |
|
788 # Hook to include the corresponding custom file, if present. |
|
789 $(eval $(call IncludeCustomExtension, jdk, CreateJars.gmk)) |
|
790 |
|
791 ########################################################################################## |
|
792 |
|
793 all: $(JARS) |
|
794 |
|
795 .PHONY: default all |
|