1 #
2 # Copyright (c) 2011, 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 include $(SPEC)
27 include MakeBase.gmk
28 include JavaCompilation.gmk
29 include Setup.gmk
30
31 default: all
32
33 # Prepare the find cache. Only used if running on windows.
34 $(eval $(call FillCacheFind,$(JDK_OUTPUTDIR)/classes))
35
36 include Tools.gmk
37
38 #
39 # This makefile...so that altering will trigger rebuilding include/exclude-lists => jars
40 #
41 MAKEFILE=$(JDK_TOPDIR)/makefiles/CreateJars.gmk
42
43 MAINMANIFEST := $(JDK_TOPDIR)/make/tools/manifest.mf
44 BEANMANIFEST := $(JDK_TOPDIR)/make/javax/swing/beaninfo/manifest
45
46 JARS:=
47
48 $(eval $(call MakeDir,$(IMAGES_OUTPUTDIR)/lib))
49
50 ##########################################################################################
51
52 $(eval $(call SetupArchive,BUILD_JCONSOLE_JAR,,\
53 SRCS:=$(JDK_OUTPUTDIR)/classes,\
54 SUFFIXES:=.class .gif .png .properties,\
55 INCLUDES:=sun/tools/jconsole com/sun/tools/jconsole,\
56 JARMAIN:=sun.tools.jconsole.JConsole,\
57 JAR:=$(IMAGES_OUTPUTDIR)/lib/jconsole.jar,\
58 SKIP_METAINF:=true))
59
60 JARS+=$(IMAGES_OUTPUTDIR)/lib/jconsole.jar
61
62 ##########################################################################################
63
64 $(eval $(call SetupArchive,BUILD_DNS_JAR,,\
65 SRCS:=$(JDK_OUTPUTDIR)/classes,\
66 INCLUDES:=sun/net/spi/nameservice/dns,\
67 EXTRA_FILES:=META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor,\
68 JAR:=$(IMAGES_OUTPUTDIR)/lib/ext/dnsns.jar,\
69 SKIP_METAINF:=true))
70
71 JARS+=$(IMAGES_OUTPUTDIR)/lib/ext/dnsns.jar
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 := $(addprefix sun/text/resources/,$(LOCALEDATA_INCLUDE_LOCALES)) \
80 $(addprefix sun/util/resources/,$(LOCALEDATA_INCLUDE_LOCALES))
81
82 # For non-US English locale data
83
84 LOCALEDATA_INCLUDES += \
85 sun/text/resources/en/FormatData_en_AU.class \
86 sun/text/resources/en/FormatData_en_CA.class \
87 sun/text/resources/en/FormatData_en_GB.class \
88 sun/text/resources/en/FormatData_en_IE.class \
89 sun/text/resources/en/FormatData_en_IN.class \
90 sun/text/resources/en/FormatData_en_MT.class \
91 sun/text/resources/en/FormatData_en_NZ.class \
103 sun/util/resources/en/CurrencyNames_en_MT.class \
104 sun/util/resources/en/CurrencyNames_en_NZ.class \
105 sun/util/resources/en/CurrencyNames_en_PH.class \
106 sun/util/resources/en/CurrencyNames_en_SG.class \
107 sun/util/resources/en/CurrencyNames_en_ZA.class \
108 sun/util/resources/en/LocaleNames_en_MT.class \
109 sun/util/resources/en/LocaleNames_en_PH.class \
110 sun/util/resources/en/LocaleNames_en_SG.class \
111 sun/util/resources/en/TimeZoneNames_en_CA.class \
112 sun/util/resources/en/TimeZoneNames_en_GB.class \
113 sun/util/resources/en/TimeZoneNames_en_IE.class
114
115 $(eval $(call SetupArchive,BUILD_LOCALEDATA_JAR,,\
116 SRCS:=$(JDK_OUTPUTDIR)/classes,\
117 SUFFIXES:=.class _dict _th,\
118 INCLUDES:=$(LOCALEDATA_INCLUDES),\
119 EXCLUDES:=sun/text/resources/th/BreakIteratorRules_th.class,\
120 JAR:=$(IMAGES_OUTPUTDIR)/lib/ext/localedata.jar,\
121 SKIP_METAINF:=true))
122
123 JARS+=$(IMAGES_OUTPUTDIR)/lib/ext/localedata.jar
124
125 ##########################################################################################
126 # rt.jar and resources.jar are being built in the same way as in the old build. They require
127 # the files to be in a certain order and converting that is not easy and will not be needed
128 # in jigsaw anyway.
129
130 # Exclude list for rt.jar and resources.jar
131 RT_JAR_EXCLUDES := \
132 com/oracle/security \
133 com/sun/codemodel \
134 com/sun/crypto/provider \
135 com/sun/istack/internal/tools \
136 com/sun/jarsigner \
137 com/sun/javadoc \
138 com/sun/jdi \
139 com/sun/net/ssl/internal/ssl \
140 com/sun/source \
141 com/sun/tools \
142 com/sun/xml/internal/dtdparser \
143 com/sun/xml/internal/rngom \
144 com/sun/xml/internal/xsom \
145 javax/crypto \
146 javax/swing/AbstractButtonBeanInfo.class \
147 javax/swing/beaninfo \
148 javax/swing/BoxBeanInfo.class \
149 javax/swing/JAppletBeanInfo.class \
150 javax/swing/JButtonBeanInfo.class \
151 javax/swing/JCheckBoxBeanInfo.class \
233 sun/swing/BeanInfoUtils.class \
234 sun/text/resources/cldr \
235 sun/tools/asm \
236 sun/tools/attach \
237 sun/tools/java \
238 sun/tools/javac \
239 sun/tools/jcmd \
240 sun/tools/jconsole \
241 sun/tools/jinfo \
242 sun/tools/jmap \
243 sun/tools/jps \
244 sun/tools/jstack \
245 sun/tools/jstat \
246 sun/tools/jstatd \
247 sun/tools/native2ascii \
248 sun/tools/serialver \
249 sun/tools/tree \
250 sun/tools/util \
251 sun/util/cldr/CLDRLocaleDataMetaInfo.class \
252 sun/util/resources/cldr \
253 $(LOCALEDATA_INCLUDES)
254
255 # These files should never be put into rt.jar
256 # but due to a misstake...some are put there if embedded
257 #
258 ifneq ($(JAVASE_EMBEDDED), true)
259 # normal (correct) case
260 RT_JAR_EXCLUDES += \
261 com/oracle/jrockit/jfr \
262 oracle/jrockit/jfr
263 else
264 # embedded (broken) case
265 RT_JAR_EXCLUDES += \
266 oracle/jrockit/jfr/parser \
267 oracle/jrockit/jfr/tools \
268 oracle/jrockit/jfr/NativeOptions.class \
269 oracle/jrockit/jfr/RepositoryChunkHandler.class
270 endif
271
272 ifeq ($(OPENJDK_TARGET_OS), macosx)
273 RT_JAR_EXCLUDES += com/sun/nio/sctp \
274 sun/nio/ch/sctp
275 endif
276
277 # Find all files in the classes dir to use as dependencies. This could be more fine granular.
278 ALL_FILES_IN_CLASSES := $(call not-containing,_the.,$(filter-out %javac_state,\
279 $(call CacheFind,$(JDK_OUTPUTDIR)/classes)))
280
281 RT_JAR_MANIFEST_FILE := $(IMAGES_OUTPUTDIR)/lib/_the.rt.jar_manifest
282 RESOURCE_JAR_MANIFEST_FILE := $(IMAGES_OUTPUTDIR)/lib/_the.resources.jar_manifest
283
284 $(RT_JAR_MANIFEST_FILE): $(MAINMANIFEST) $(BEANMANIFEST)
285 $(MKDIR) -p $(@D)
286 $(RM) $@ $@.tmp
287 $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \
288 -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \
289 $(MAINMANIFEST) >> $@.tmp
290 $(ECHO) >> $@.tmp
291 $(CAT) $(BEANMANIFEST) >> $@.tmp
292 $(MV) $@.tmp $@
293
294 $(RESOURCE_JAR_MANIFEST_FILE): $(MAINMANIFEST)
295 $(MKDIR) -p $(@D)
296 $(RM) $@ $@.tmp
297 $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \
298 -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \
299 $(MAINMANIFEST) >> $@.tmp
300 $(MV) $@.tmp $@
301
302 $(IMAGES_OUTPUTDIR)/lib/_the.jars.exclude: $(MAKEFILE)
303 $(MKDIR) -p $(@D)
304 $(RM) $@ $@.tmp
305 $(call ListPathsSafely,RT_JAR_EXCLUDES,\n, >> $@.tmp)
306 $(MV) $@.tmp $@
307
308 $(IMAGES_OUTPUTDIR)/lib/classlist : $(JDK_TOPDIR)/make/tools/sharing/classlist.$(OPENJDK_TARGET_OS) \
309 $(MAKEFILE)
310 $(MKDIR) -p $(@D)
311 $(RM) $@ $@.tmp
312 $(TOOL_ADDJSUM) $< $@.tmp
313 $(MV) $@.tmp $@
314
315 $(IMAGES_OUTPUTDIR)/lib/_the.jars.contents: $(BUILD_TOOLS) $(IMAGES_OUTPUTDIR)/lib/_the.jars.exclude \
316 $(ALL_FILES_IN_CLASSES) $(IMAGES_OUTPUTDIR)/lib/classlist
317 $(MKDIR) -p $(@D)
318 $(RM) $@ $@.tmp
319 ($(CD) $(JDK_OUTPUTDIR)/classes && \
320 $(TOOL_JARREORDER) \
321 -o $@.tmp $(IMAGES_OUTPUTDIR)/lib/classlist $(IMAGES_OUTPUTDIR)/lib/_the.jars.exclude . )
322 $(MV) $@.tmp $@
323
324 $(IMAGES_OUTPUTDIR)/lib/_the.rt.jar.contents: $(IMAGES_OUTPUTDIR)/lib/_the.jars.contents
325 $(MKDIR) -p $(@D)
326 $(RM) $@ $@.tmp
327 $(GREP) -e '\.class$$' $(IMAGES_OUTPUTDIR)/lib/_the.jars.contents > $@.tmp
328 $(MV) $@.tmp $@
329
330 $(IMAGES_OUTPUTDIR)/lib/_the.resources.jar.contents: $(IMAGES_OUTPUTDIR)/lib/_the.jars.contents
331 $(MKDIR) -p $(@D)
332 $(RM) $@ $@.tmp
333 $(GREP) -v -e '\.class$$' \
334 -e '/_the\.*' -e '^_the\.*' -e '\\_the\.*' -e 'javac_state' \
335 $(IMAGES_OUTPUTDIR)/lib/_the.jars.contents > $@.tmp
336 $(MV) $@.tmp $@
337
338 RT_JAR_CREATE_OPTIONS := c0fm
339 ifeq ($(COMPRESS_JARS), true)
340 RT_JAR_CREATE_OPTIONS := cfm
341 endif
342
343 $(IMAGES_OUTPUTDIR)/lib/rt.jar: $(IMAGES_OUTPUTDIR)/lib/_the.rt.jar.contents $(RT_JAR_MANIFEST_FILE)
344 $(ECHO) Creating rt.jar
345 $(MKDIR) -p $(@D)
346 $(RM) $@ $@.tmp
347 $(CD) $(JDK_OUTPUTDIR)/classes && \
348 $(JAR) $(RT_JAR_CREATE_OPTIONS) $@.tmp $(RT_JAR_MANIFEST_FILE) \
349 @$(IMAGES_OUTPUTDIR)/lib/_the.rt.jar.contents
350 $(MV) $@.tmp $@
351
352 $(IMAGES_OUTPUTDIR)/lib/resources.jar: $(IMAGES_OUTPUTDIR)/lib/_the.resources.jar.contents \
353 $(RESOURCE_JAR_MANIFEST_FILE)
354 $(ECHO) Creating resources.jar
355 $(MKDIR) -p $(@D)
356 $(RM) $@ $@.tmp
357 $(CD) $(JDK_OUTPUTDIR)/classes && \
358 $(JAR) $(RT_JAR_CREATE_OPTIONS) $@.tmp $(RESOURCE_JAR_MANIFEST_FILE) \
359 @$(IMAGES_OUTPUTDIR)/lib/_the.resources.jar.contents
360 $(MV) $@.tmp $@
361
362 JARS+=$(IMAGES_OUTPUTDIR)/lib/rt.jar $(IMAGES_OUTPUTDIR)/lib/resources.jar
363
364 ##########################################################################################
365
366 ifneq ($(OPENJDK_TARGET_OS), windows)
367 CHARSETS_EXTRA_FILES:=sun/awt/motif/X11GBK.class \
368 sun/awt/motif/X11GB2312\$$$$Decoder.class \
369 sun/awt/motif/X11GB2312.class \
370 sun/awt/motif/X11KSC5601\$$$$Decoder.class \
371 sun/awt/motif/X11KSC5601\$$$$Encoder.class \
372 sun/awt/motif/X11GB2312\$$$$Encoder.class \
373 sun/awt/motif/X11GBK\$$$$Encoder.class \
374 sun/awt/motif/X11KSC5601.class
375 endif
376
377 $(eval $(call SetupArchive,BUILD_CHARSETS_JAR,,\
378 SRCS:=$(JDK_OUTPUTDIR)/classes, \
379 SUFFIXES:=.class .dat,\
380 INCLUDES:=sun/nio/cs/ext,\
381 EXTRA_FILES := sun/awt/HKSCS.class \
382 $(CHARSETS_EXTRA_FILES) \
383 META-INF/services/java.nio.charset.spi.CharsetProvider, \
384 JAR:=$(IMAGES_OUTPUTDIR)/lib/charsets.jar, \
385 SKIP_METAINF := true, \
386 CHECK_COMPRESS_JAR:=true))
387
388 JARS+=$(IMAGES_OUTPUTDIR)/lib/charsets.jar
389
390 ##########################################################################################
391
392 ifndef OPENJDK
393 ifeq ($(ENABLE_JFR), true)
394 $(eval $(call SetupArchive,BUILD_JFR_JAR,,\
395 SRCS:=$(JDK_OUTPUTDIR)/classes,\
396 INCLUDES:=com/oracle/jrockit/jfr \
397 oracle/jrockit/jfr,\
398 JAR:=$(IMAGES_OUTPUTDIR)/lib/jfr.jar,\
399 SKIP_METAINF:=true,\
400 MANIFEST:=$(MAINMANIFEST), \
401 CHECK_COMPRESS_JAR:=true))
402
403 JARS+=$(IMAGES_OUTPUTDIR)/lib/jfr.jar
404 endif
405 endif
406
407 ##########################################################################################
408
409 $(eval $(call SetupArchive,BUILD_JSSE_JAR,,\
410 SRCS:=$(JDK_OUTPUTDIR)/classes,\
411 INCLUDES:=sun/security/provider/Sun.class \
412 sun/security/rsa/SunRsaSign.class \
413 sun/security/ssl \
414 com/sun/net/ssl/internal/ssl,\
415 JAR:=$(IMAGES_OUTPUTDIR)/lib/jsse.jar,\
416 SKIP_METAINF:=true,\
417 MANIFEST:=$(MAINMANIFEST), \
418 CHECK_COMPRESS_JAR:=true))
419
420 JARS+=$(IMAGES_OUTPUTDIR)/lib/jsse.jar
421
422 ##########################################################################################
423 # Create manifest for security jars
424
425 #
426 # Include these extra attributes for now, should probably take out.
427 #
428 JCE_MANIFEST := $(IMAGES_OUTPUTDIR)/lib/_the.security.manifest.mf
429 $(JCE_MANIFEST): $(MAINMANIFEST)
430 $(MKDIR) -p $(@D)
431 $(RM) $@ $@.tmp
432 $(SED) -e "s#@@RELEASE@@#$(JDK_VERSION)#" \
433 -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \
434 $(MAINMANIFEST) >> $@.tmp
435 $(ECHO) "Extension-Name: javax.crypto" >> $@.tmp
436 $(ECHO) "Implementation-Vendor-Id: com.sun" >> $@.tmp
437 $(MV) $@.tmp $@
438
439 ##########################################################################################
440 # For all security jars, always build the jar, but for closed, install the prebuilt signed
441 # version instead of the newly built jar. For open, signing is not needed. See SignJars.gmk
442 # for more information.
443
444 SUNPKCS11_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunpkcs11.jar
445 SUNPKCS11_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/sunpkcs11.jar
446
447 $(eval $(call SetupArchive,BUILD_SUNPKCS11_JAR,,\
448 SRCS:=$(JDK_OUTPUTDIR)/classes, \
449 SUFFIXES:=.class,\
450 INCLUDES:=sun/security/pkcs11,\
451 JAR:=$(SUNPKCS11_JAR_UNSIGNED), \
452 MANIFEST:=$(JCE_MANIFEST), \
453 SKIP_METAINF := true))
454
455 $(SUNPKCS11_JAR_UNSIGNED): $(JCE_MANIFEST)
456
457 ifndef OPENJDK
458 SUNPKCS11_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/pkcs11/sunpkcs11.jar
459 $(SUNPKCS11_JAR_DST) : $(SUNPKCS11_JAR_SRC)
460 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt SunPKCS11 provider..."
461 $(install-file)
462 else
463 $(SUNPKCS11_JAR_DST) : $(SUNPKCS11_JAR_UNSIGNED)
464 $(install-file)
465 endif
466
467 JARS += $(SUNPKCS11_JAR_DST) $(SUNPKCS11_JAR_UNSIGNED)
468
469 ##########################################################################################
470
471 SUNEC_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunec.jar
472 SUNEC_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/sunec.jar
473
474 $(eval $(call SetupArchive,BUILD_SUNEC_JAR,,\
475 SRCS:=$(JDK_OUTPUTDIR)/classes, \
476 SUFFIXES:=.class,\
477 INCLUDES:=sun/security/ec,\
478 JAR:=$(SUNEC_JAR_UNSIGNED), \
479 MANIFEST:=$(JCE_MANIFEST), \
480 SKIP_METAINF := true))
481
482 $(SUNEC_JAR_UNSIGNED): $(JCE_MANIFEST)
483
484 ifndef OPENJDK
485 SUNEC_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/ec/sunec.jar
486 $(SUNEC_JAR_DST) : $(SUNEC_JAR_SRC)
487 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt SunEC provider..."
488 $(install-file)
489 else
490 $(SUNEC_JAR_DST) : $(SUNEC_JAR_UNSIGNED)
491 $(install-file)
492 endif
493
494 JARS += $(SUNEC_JAR_DST) $(SUNEC_JAR_UNSIGNED)
495
496 ##########################################################################################
497
498 $(eval $(call SetupArchive,BUILD_SWINGBEANS_JAR,,\
499 SRCS:=$(JDK_OUTPUTDIR)/classes,\
500 SUFFIXES:=BeanInfo.class .gif,\
501 INCLUDES:=javax/swing sun/swing,\
502 EXCLUDES:=javax/swing/plaf,\
503 EXTRA_FILES:=javax/swing/SwingBeanInfoBase.class sun/swing/BeanInfoUtils.class,\
504 JAR:=$(IMAGES_OUTPUTDIR)/lib/dt.jar,\
505 SKIP_METAINF:=true))
506
507 JARS+=$(IMAGES_OUTPUTDIR)/lib/dt.jar
508
509 ##########################################################################################
510
511 SUNJCE_PROVIDER_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunjce_provider.jar
512 SUNJCE_PROVIDER_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/sunjce_provider.jar
513
514 $(eval $(call SetupArchive,BUILD_SUNJCE_PROVIDER_JAR,,\
515 SRCS:=$(JDK_OUTPUTDIR)/classes, \
516 SUFFIXES:=.class,\
517 INCLUDES:= com/sun/crypto/provider,\
518 JAR:=$(SUNJCE_PROVIDER_JAR_UNSIGNED), \
519 MANIFEST:=$(JCE_MANIFEST), \
520 SKIP_METAINF := true))
521
522 $(SUNJCE_PROVIDER_JAR_UNSIGNED): $(JCE_MANIFEST)
523
524 ifndef OPENJDK
525 SUNJCE_PROVIDER_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/jce/sunjce_provider.jar
526 $(SUNJCE_PROVIDER_JAR_DST) : $(SUNJCE_PROVIDER_JAR_SRC)
527 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt SunJCE provider..."
528 $(install-file)
529 else
530 $(SUNJCE_PROVIDER_JAR_DST) : $(SUNJCE_PROVIDER_JAR_UNSIGNED)
531 $(install-file)
532 endif
533
534 JARS += $(SUNJCE_PROVIDER_JAR_DST) $(SUNJCE_PROVIDER_JAR_UNSIGNED)
535
536 ##########################################################################################
537
538 JCE_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/jce.jar
539 JCE_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/jce.jar
540
541 $(eval $(call SetupArchive,BUILD_JCE_JAR,,\
542 SRCS:=$(JDK_OUTPUTDIR)/classes, \
543 SUFFIXES:=.class,\
544 INCLUDES:= javax/crypto sun/security/internal,\
545 JAR:=$(JCE_JAR_UNSIGNED), \
546 MANIFEST:=$(JCE_MANIFEST), \
547 SKIP_METAINF := true))
548
549 $(JCE_JAR_UNSIGNED): $(JCE_MANIFEST)
550
551 ifndef OPENJDK
552 JCE_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/jce/jce.jar
553 $(JCE_JAR_DST) : $(JCE_JAR_SRC)
554 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt jce.jar..."
555 $(install-file)
556 else
557 $(JCE_JAR_DST) : $(JCE_JAR_UNSIGNED)
558 $(install-file)
559 endif
560
561 JARS += $(JCE_JAR_DST) $(JCE_JAR_UNSIGNED)
562
563 ##########################################################################################
564
565 US_EXPORT_POLICY_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/security/US_export_policy.jar
566 US_EXPORT_POLICY_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/US_export_policy.jar
567
568 #
569 # TODO fix so that SetupArchive does not write files into SRCS
570 # then we don't need this extra copying
571 #
572 # NOTE: We currently do not place restrictions on our limited export
573 # policy. This was not a typo.
574 #
575 US_EXPORT_POLICY_JAR_SRC_DIR := $(JDK_TOPDIR)/make/javax/crypto/policy/unlimited
576 US_EXPORT_POLICY_JAR_TMP := $(IMAGES_OUTPUTDIR)/US_export_policy_jar.tmp
577
578 $(US_EXPORT_POLICY_JAR_TMP)/% : $(US_EXPORT_POLICY_JAR_SRC_DIR)/%
579 $(install-file)
580
581 US_EXPORT_POLICY_JAR_DEPS := $(US_EXPORT_POLICY_JAR_TMP)/default_US_export.policy
582
583 $(eval $(call SetupArchive,BUILD_US_EXPORT_POLICY_JAR,$(US_EXPORT_POLICY_JAR_DEPS),\
584 SRCS:=$(US_EXPORT_POLICY_JAR_TMP), \
585 SUFFIXES:= .policy,\
586 JAR:=$(US_EXPORT_POLICY_JAR_UNSIGNED), \
587 EXTRA_MANIFEST_ATTR := Crypto-Strength: unlimited, \
588 SKIP_METAINF := true))
589
590 ifndef OPENJDK
591 $(US_EXPORT_POLICY_JAR_DST): $(JDK_TOPDIR)/make/closed/tools/crypto/jce/US_export_policy.jar
592 $(ECHO) $(LOG_INFO) Copying $(@F)
593 $(install-file)
594 else
595 $(US_EXPORT_POLICY_JAR_DST): $(US_EXPORT_POLICY_JAR_UNSIGNED)
596 $(install-file)
597 endif
598
599 JARS += $(US_EXPORT_POLICY_JAR_DST) $(US_EXPORT_POLICY_JAR_UNSIGNED)
600
601 ##########################################################################################
602
603 LOCAL_POLICY_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/security/local_policy.jar
604 LOCAL_POLICY_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/local_policy.jar
605
606 #
607 # TODO fix so that SetupArchive does not write files into SRCS
608 # then we don't need this extra copying
609 #
610 LOCAL_POLICY_JAR_TMP := $(IMAGES_OUTPUTDIR)/local_policy_jar.tmp
611
612 ifeq ($(UNLIMITED_CRYPTO), true)
613 LOCAL_POLICY_JAR_SRC_DIR := $(JDK_TOPDIR)/make/javax/crypto/policy/unlimited
614 LOCAL_POLICY_JAR_DEPS := $(LOCAL_POLICY_JAR_TMP)/default_local.policy
615 LOCAL_POLICY_JAR_ATTR := Crypto-Strength: unlimited
616 else
617 LOCAL_POLICY_JAR_SRC_DIR := $(JDK_TOPDIR)/make/javax/crypto/policy/limited
618 LOCAL_POLICY_JAR_DEPS := $(LOCAL_POLICY_JAR_TMP)/exempt_local.policy \
619 $(LOCAL_POLICY_JAR_TMP)/default_local.policy
622
623 $(LOCAL_POLICY_JAR_TMP)/% : $(LOCAL_POLICY_JAR_SRC_DIR)/%
624 $(install-file)
625
626 $(eval $(call SetupArchive,BUILD_LOCAL_POLICY_JAR,$(LOCAL_POLICY_JAR_DEPS),\
627 SRCS:=$(LOCAL_POLICY_JAR_TMP),\
628 SUFFIXES:= .policy,\
629 JAR:=$(LOCAL_POLICY_JAR_UNSIGNED), \
630 EXTRA_MANIFEST_ATTR := $(LOCAL_POLICY_JAR_ATTR), \
631 SKIP_METAINF := true))
632
633 ifndef OPENJDK
634 $(LOCAL_POLICY_JAR_DST): $(JDK_TOPDIR)/make/closed/tools/crypto/jce/local_policy.jar
635 $(ECHO) $(LOG_INFO) Copying $(@F)
636 $(install-file)
637 else
638 $(LOCAL_POLICY_JAR_DST): $(LOCAL_POLICY_JAR_UNSIGNED)
639 $(install-file)
640 endif
641
642 JARS += $(LOCAL_POLICY_JAR_DST) $(LOCAL_POLICY_JAR_UNSIGNED)
643
644 ##########################################################################################
645
646 ifeq ($(OPENJDK_TARGET_OS),windows)
647
648 SUNMSCAPI_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunmscapi.jar
649 SUNMSCAPI_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/sunmscapi.jar
650
651 $(eval $(call SetupArchive,BUILD_SUNMSCAPI_JAR,,\
652 SRCS:=$(JDK_OUTPUTDIR)/classes, \
653 SUFFIXES:=.class,\
654 INCLUDES:= sun/security/mscapi,\
655 JAR:=$(SUNMSCAPI_JAR_UNSIGNED), \
656 MANIFEST:=$(JCE_MANIFEST), \
657 SKIP_METAINF:=true))
658
659 $(SUNMSCAPI_JAR_UNSIGNED): $(JCE_MANIFEST)
660
661 ifndef OPENJDK
662 SUNMSCAPI_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/mscapi/sunmscapi.jar
663 $(SUNMSCAPI_JAR_DST) : $(SUNMSCAPI_JAR_SRC)
664 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt SunMSCAPI provider..."
665 $(install-file)
666 else
667 $(SUNMSCAPI_JAR_DST) : $(SUNMSCAPI_JAR_UNSIGNED)
668 $(install-file)
669 endif
670
671 JARS += $(SUNMSCAPI_JAR_DST) $(SUNMSCAPI_JAR_UNSIGNED)
672
673 endif
674
675 ##########################################################################################
676
677 ifeq ($(OPENJDK_TARGET_OS),solaris)
678 ifndef OPENJDK
679
680 UCRYPTO_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/ucrypto.jar
681 UCRYPTO_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/ucrypto.jar
682 UCRYPTO_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/ucrypto/ucrypto.jar
683
684 $(eval $(call SetupArchive,BUILD_UCRYPTO_JAR,,\
685 SRCS:=$(JDK_OUTPUTDIR)/classes, \
686 SUFFIXES:=.class,\
687 INCLUDES:=com/oracle/security/ucrypto,\
688 JAR:=$(UCRYPTO_JAR_UNSIGNED), \
689 MANIFEST:=$(JCE_MANIFEST), \
690 SKIP_METAINF:=true))
691
692 $(UCRYPTO_JAR_UNSIGNED): $(JCE_MANIFEST)
693
694 $(UCRYPTO_JAR_DST) : $(UCRYPTO_JAR_SRC)
695 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt OracleUcrypto provider..."
696 $(install-file)
697
698 JARS += $(UCRYPTO_JAR_DST) $(UCRYPTO_JAR_UNSIGNED)
699
700 endif
701 endif
702
703 ##########################################################################################
704
705 # Get the CLDRVERSION
706 include GensrcCLDR.gmk
707
708 CLDRDATA_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/cldrdata.jar
709
710 $(eval $(call SetupArchive,BUILD_CLDRDATA_JAR,,\
711 SRCS:=$(JDK_OUTPUTDIR)/classes,\
712 SUFFIXES:=.class,\
713 INCLUDES:=sun/text/resources/cldr \
714 sun/util/cldr \
715 sun/util/resources/cldr,\
716 EXCLUDES:=sun/util/cldr/CLDRLocaleProviderAdapter,\
717 JAR:=$(CLDRDATA_JAR_DST),\
718 EXTRA_MANIFEST_ATTR:=CLDR-Version: $(CLDRVERSION),\
719 SKIP_METAINF:=true))
720
721 JARS += $(CLDRDATA_JAR_DST)
722
723 ##########################################################################################
724
725 TOOLS_JAR_INCLUDES := \
726 com/sun/codemodel \
727 com/sun/istack/internal/tools \
728 com/sun/jarsigner \
729 com/sun/javadoc \
730 com/sun/jdi \
731 com/sun/source \
732 com/sun/tools/attach \
733 com/sun/tools/classfile \
734 com/sun/tools/corba \
735 com/sun/tools/doclets \
736 com/sun/tools/doclint \
737 com/sun/tools/example/debug/expr \
738 com/sun/tools/example/debug/tty \
739 com/sun/tools/extcheck \
740 com/sun/tools/hat \
741 com/sun/tools/internal/jxc \
742 com/sun/tools/internal/jxc/ap \
776 sun/tools/util
777
778 # The sjavac tools is not ready for public consumption.
779 TOOLS_JAR_EXCLUDES=com/sun/tools/sjavac
780
781 $(eval $(call SetupArchive,BUILD_TOOLS_JAR,,\
782 SRCS:=$(JDK_OUTPUTDIR)/classes,\
783 SUFFIXES:=.class .prp .gif .properties .xml .css .xsd .js .html .txt .java \
784 Tool aliasmap options,\
785 INCLUDES:=$(TOOLS_JAR_INCLUDES),\
786 EXCLUDES:=$(TOOLS_JAR_EXCLUDES),\
787 EXTRA_FILES:=META-INF/services/com.sun.jdi.connect.Connector \
788 META-INF/services/com.sun.jdi.connect.spi.TransportService \
789 META-INF/services/com.sun.tools.attach.spi.AttachProvider \
790 META-INF/services/com.sun.tools.internal.ws.wscompile.Plugin \
791 META-INF/services/com.sun.tools.internal.xjc.Plugin,\
792 JAR:=$(IMAGES_OUTPUTDIR)/lib/tools.jar,\
793 SKIP_METAINF:=true, \
794 CHECK_COMPRESS_JAR:=true))
795
796 JARS+=$(IMAGES_OUTPUTDIR)/lib/tools.jar
797
798 ##########################################################################################
799
800 include javadoc/CORE_PKGS.gmk
801 include javadoc/NON_CORE_PKGS.gmk
802
803 # The compiler should not issue a "Proprietary" warning when compiling
804 # classes in the com.sun.java.swing.plaf packages, since we've always
805 # allowed, and even advocated, extending them (see bug 6476749).
806 #
807 # This approach is NOT to be used as a general purpose way to avoid such
808 # compiler warnings for non-core packages. The correct way is to document
809 # the packages in NON_CORE_PKGS.gmk, and include them in the NON_CORE_PKGS
810 # definition.
811 #
812 # Swing has taken this approach only as a temporary measure to avoid
813 # the compiler warnings until we can properly document these packages.
814 # This is covered under 6491853.
815 EXCLUDE_PROPWARN_PKGS = com.sun.java.swing.plaf.windows \
816 com.sun.java.swing.plaf.motif \
817 com.sun.java.swing.plaf.gtk
818
819 #
820 # Include the exported private packages in ct.sym.
821 # This is an interim solution until the ct.sym is replaced
822 # with a new module system (being discussed for JDK 8).
823 #
824 EXPORTED_PRIVATE_PKGS = com.sun.servicetag \
825 com.oracle.net \
826 com.oracle.nio
827
828 $(IMAGES_OUTPUTDIR)/symbols/_the.symbols: $(IMAGES_OUTPUTDIR)/lib/rt.jar
829 $(RM) -r $(IMAGES_OUTPUTDIR)/symbols/META-INF/sym
830 $(MKDIR) -p $(IMAGES_OUTPUTDIR)/symbols/META-INF/sym
831 $(JAVA) $(JAVAC_JARS) \
832 -bootclasspath $(JDK_OUTPUTDIR)/classes \
833 -XDprocess.packages -proc:only \
834 -processor com.sun.tools.javac.sym.CreateSymbols \
835 -Acom.sun.tools.javac.sym.Jar=$(IMAGES_OUTPUTDIR)/lib/rt.jar \
836 -Acom.sun.tools.javac.sym.Dest=$(IMAGES_OUTPUTDIR)/symbols/META-INF/sym/rt.jar \
837 $(CORE_PKGS) $(NON_CORE_PKGS) $(EXCLUDE_PROPWARN_PKGS) $(EXPORTED_PRIVATE_PKGS)
838 $(TOUCH) $@
839
840 $(eval $(call MakeDir,$(IMAGES_OUTPUTDIR)/symbols))
841 $(eval $(call SetupArchive,BUILD_CT_SYM,$(IMAGES_OUTPUTDIR)/symbols/_the.symbols,\
842 SRCS:=$(IMAGES_OUTPUTDIR)/symbols,\
843 INCLUDES:=META-INF/sym,\
844 JAR:=$(IMAGES_OUTPUTDIR)/lib/ct.sym, \
845 CHECK_COMPRESS_JAR:=true))
846
847 JARS+=$(IMAGES_OUTPUTDIR)/lib/ct.sym
848
849 ##########################################################################################
850
851 SRC_ZIP_INCLUDES = \
852 com/sun/corba \
853 com/sun/image/codec/jpeg \
854 com/sun/imageio \
855 com/sun/java_cup \
856 com/sun/javadoc \
857 com/sun/java/swing \
858 com/sun/jlex \
859 com/sun/jmx \
860 com/sun/naming \
861 com/sun/org/apache \
862 com/sun/security/auth \
863 com/sun/security/jgss \
864 com/sun/source \
865 java/applet \
866 java/awt \
867 java/beans \
913 $(LAUNCHER_SRC_FILES)))
914
915 $(IMAGES_OUTPUTDIR)/src/launcher/%: $(JDK_TOPDIR)/src/share/bin/%
916 $(install-file)
917
918 $(IMAGES_OUTPUTDIR)/src/launcher/%: $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/%
919 $(install-file)
920
921 $(IMAGES_OUTPUTDIR)/src.zip: $(LAUNCHER_ZIP_SRC)
922
923 # This dir needs to exist before macro is evaluated to avoid warning from find.
924 $(eval $(call MakeDir,$(IMAGES_OUTPUTDIR)/src))
925 $(eval $(call SetupZipArchive,BUILD_SRC_ZIP,\
926 SRC:=$(SRC_ZIP_SRCS) $(IMAGES_OUTPUTDIR)/src,\
927 INCLUDES:=$(SRC_ZIP_INCLUDES) launcher,\
928 EXCLUDES:=javax/swing/beaninfo,\
929 SUFFIXES:=.java .c .h,\
930 ZIP:=$(IMAGES_OUTPUTDIR)/src.zip,\
931 EXTRA_DEPS:=$(LAUNCHER_ZIP_SRC)))
932
933 JARS+=$(IMAGES_OUTPUTDIR)/src.zip
934
935 ##########################################################################################
936
937 #
938 # This is an empty jar (only contains manifest) and fits poorly into framework...
939 # create simple rule instead
940 #
941 $(IMAGES_OUTPUTDIR)/lib/management-agent.jar : $(JDK_TOPDIR)/src/share/classes/sun/management/manifest
942 $(JAR) cfm $@ $<
943
944 JARS += $(IMAGES_OUTPUTDIR)/lib/management-agent.jar
945
946 ##########################################################################################
947
948 $(IMAGES_OUTPUTDIR)/lib/ext/zipfs.jar : $(JDK_OUTPUTDIR)/demo/nio/zipfs/zipfs.jar
949 $(install-file)
950
951 JARS += $(IMAGES_OUTPUTDIR)/lib/ext/zipfs.jar
952
953 ##########################################################################################
954
955 ifeq ($(OPENJDK_TARGET_OS),macosx)
956 $(eval $(call SetupArchive,BUILD_JOBJC_JAR,,\
957 SRCS:=$(JDK_OUTPUTDIR)/jobjc_classes,\
958 JAR:=$(IMAGES_OUTPUTDIR)/lib/JObjC.jar, \
959 JARINDEX:=true))
960
961 JARS += $(IMAGES_OUTPUTDIR)/lib/JObjC.jar
962 endif
963
964 ##########################################################################################
965
966 ifndef OPENJDK
967 $(eval $(call SetupArchive,BUILD_ALT_RT_JAR,,\
968 SRCS:=$(JDK_OUTPUTDIR)/altclasses_classes,\
969 JAR:=$(IMAGES_OUTPUTDIR)/lib/alt-rt.jar))
970
971 JARS += $(IMAGES_OUTPUTDIR)/lib/alt-rt.jar
972 endif
973
974 ##########################################################################################
975
976 # This file is imported from hotspot in Import.gmk. Copying it into images/lib so that
977 # all jars can be found in one place when creating images in Images.gmk. It needs to be
978 # done here so that clean targets can be simple and accurate.
979 $(IMAGES_OUTPUTDIR)/lib/sa-jdi.jar: $(JDK_OUTPUTDIR)/lib/sa-jdi.jar
980 $(install-file)
981
982 JARS += $(IMAGES_OUTPUTDIR)/lib/sa-jdi.jar
983
984 ##########################################################################################
985 #
986 # sec-bin.zip is used by builds where the corresponding sources are not available
987 #
988 $(eval $(call SetupZipArchive,BUILD_SEC_BIN_ZIP,\
989 SRC:=$(JDK_OUTPUTDIR),\
990 INCLUDES:=classes/javax/net \
991 classes/javax/security/cert \
992 classes/com/sun/net/ssl \
993 classes/com/sun/security/cert \
994 classes/sun/net/www/protocol/https \
995 classes/sun/security/pkcs12 \
996 classes/sun/security/ssl \
997 classes/sun/security/krb5 \
998 classes/sun/security/krb5/internal \
999 classes/sun/security/krb5/internal/ccache \
1000 classes/sun/security/krb5/internal/crypto \
1001 classes/sun/security/krb5/internal/ktab \
1002 classes/sun/security/krb5/internal/rcache \
|
1 #
2 # Copyright (c) 2011, 2013, 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 include Setup.gmk
30
31 default: all
32
33 # Prepare the find cache. Only used if running on windows.
34 $(eval $(call FillCacheFind,$(JDK_OUTPUTDIR)/classes))
35
36 include Tools.gmk
37
38 include Profiles.gmk
39
40 #
41 # This makefile...so that altering will trigger rebuilding include/exclude-lists => jars
42 #
43 MAKEFILE=$(JDK_TOPDIR)/makefiles/CreateJars.gmk
44 #
45 # And similarly for the Profiles
46 PROFILE_MAKEFILES=$(JDK_TOPDIR)/makefiles/Profiles.gmk $(JDK_TOPDIR)/makefiles/profile-rtjar-includes.txt
47
48 MAINMANIFEST := $(JDK_TOPDIR)/make/tools/manifest.mf
49 BEANMANIFEST := $(JDK_TOPDIR)/make/javax/swing/beaninfo/manifest
50
51 $(eval $(call MakeDir,$(IMAGES_OUTPUTDIR)/lib))
52
53 ##########################################################################################
54
55 $(eval $(call SetupArchive,BUILD_JCONSOLE_JAR,,\
56 SRCS:=$(JDK_OUTPUTDIR)/classes,\
57 SUFFIXES:=.class .gif .png .properties,\
58 INCLUDES:=sun/tools/jconsole com/sun/tools/jconsole,\
59 JARMAIN:=sun.tools.jconsole.JConsole,\
60 JAR:=$(IMAGES_OUTPUTDIR)/lib/jconsole.jar,\
61 SKIP_METAINF:=true))
62
63
64 ##########################################################################################
65
66 $(eval $(call SetupArchive,BUILD_DNS_JAR,,\
67 SRCS:=$(JDK_OUTPUTDIR)/classes,\
68 INCLUDES:=sun/net/spi/nameservice/dns,\
69 EXTRA_FILES:=META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor,\
70 JAR:=$(IMAGES_OUTPUTDIR)/lib/ext/dnsns.jar,\
71 SKIP_METAINF:=true))
72
73
74 ##########################################################################################
75
76 LOCALEDATA_INCLUDE_LOCALES := ar be bg ca cs da de el es et fi fr ga hi hr hu in is it \
77 iw ja ko lt lv mk ms mt nl no pl pt ro ru sk sl sq sr sv \
78 th tr uk vi zh
79
80 LOCALEDATA_INCLUDES := $(addprefix sun/text/resources/,$(LOCALEDATA_INCLUDE_LOCALES)) \
81 $(addprefix sun/util/resources/,$(LOCALEDATA_INCLUDE_LOCALES))
82
83 # For non-US English locale data
84
85 LOCALEDATA_INCLUDES += \
86 sun/text/resources/en/FormatData_en_AU.class \
87 sun/text/resources/en/FormatData_en_CA.class \
88 sun/text/resources/en/FormatData_en_GB.class \
89 sun/text/resources/en/FormatData_en_IE.class \
90 sun/text/resources/en/FormatData_en_IN.class \
91 sun/text/resources/en/FormatData_en_MT.class \
92 sun/text/resources/en/FormatData_en_NZ.class \
104 sun/util/resources/en/CurrencyNames_en_MT.class \
105 sun/util/resources/en/CurrencyNames_en_NZ.class \
106 sun/util/resources/en/CurrencyNames_en_PH.class \
107 sun/util/resources/en/CurrencyNames_en_SG.class \
108 sun/util/resources/en/CurrencyNames_en_ZA.class \
109 sun/util/resources/en/LocaleNames_en_MT.class \
110 sun/util/resources/en/LocaleNames_en_PH.class \
111 sun/util/resources/en/LocaleNames_en_SG.class \
112 sun/util/resources/en/TimeZoneNames_en_CA.class \
113 sun/util/resources/en/TimeZoneNames_en_GB.class \
114 sun/util/resources/en/TimeZoneNames_en_IE.class
115
116 $(eval $(call SetupArchive,BUILD_LOCALEDATA_JAR,,\
117 SRCS:=$(JDK_OUTPUTDIR)/classes,\
118 SUFFIXES:=.class _dict _th,\
119 INCLUDES:=$(LOCALEDATA_INCLUDES),\
120 EXCLUDES:=sun/text/resources/th/BreakIteratorRules_th.class,\
121 JAR:=$(IMAGES_OUTPUTDIR)/lib/ext/localedata.jar,\
122 SKIP_METAINF:=true))
123
124 ##########################################################################################
125 #
126 # Different variants of rt.jar are built based on the current profile. The output
127 # directory is augmented with the profile name so that the final jar file and all the
128 # intermediary list files will be in directory. This has the form lib$PROFILE rather than
129 # lib/$PROFILE so that it won't get copied as part of the image generation process.
130 # Each profile customizes the RT_JAR_EXCLUDES variable.
131 #
132 ##########################################################################################
133
134 # Full JRE exclude list for rt.jar and resources.jar
135 # This value should exclude types destined for jars other than rt.jar and resources.jar.
136 # When building a Profile this value augments the profile specific exclusions
137 RT_JAR_EXCLUDES += \
138 com/oracle/security \
139 com/sun/codemodel \
140 com/sun/crypto/provider \
141 com/sun/istack/internal/tools \
142 com/sun/jarsigner \
143 com/sun/javadoc \
144 com/sun/jdi \
145 com/sun/net/ssl/internal/ssl \
146 com/sun/source \
147 com/sun/tools \
148 com/sun/xml/internal/dtdparser \
149 com/sun/xml/internal/rngom \
150 com/sun/xml/internal/xsom \
151 javax/crypto \
152 javax/swing/AbstractButtonBeanInfo.class \
153 javax/swing/beaninfo \
154 javax/swing/BoxBeanInfo.class \
155 javax/swing/JAppletBeanInfo.class \
156 javax/swing/JButtonBeanInfo.class \
157 javax/swing/JCheckBoxBeanInfo.class \
239 sun/swing/BeanInfoUtils.class \
240 sun/text/resources/cldr \
241 sun/tools/asm \
242 sun/tools/attach \
243 sun/tools/java \
244 sun/tools/javac \
245 sun/tools/jcmd \
246 sun/tools/jconsole \
247 sun/tools/jinfo \
248 sun/tools/jmap \
249 sun/tools/jps \
250 sun/tools/jstack \
251 sun/tools/jstat \
252 sun/tools/jstatd \
253 sun/tools/native2ascii \
254 sun/tools/serialver \
255 sun/tools/tree \
256 sun/tools/util \
257 sun/util/cldr/CLDRLocaleDataMetaInfo.class \
258 sun/util/resources/cldr \
259 $(LOCALEDATA_INCLUDES) \
260 com/oracle/jrockit/jfr \
261 oracle/jrockit/jfr
262
263 ifeq ($(OPENJDK_TARGET_OS), macosx)
264 RT_JAR_EXCLUDES += com/sun/nio/sctp \
265 sun/nio/ch/sctp
266 endif
267
268 # Find all files in the classes dir to use as dependencies. This could be more fine granular.
269 ALL_FILES_IN_CLASSES := $(call not-containing,_the.,$(filter-out %javac_state,\
270 $(call CacheFind,$(JDK_OUTPUTDIR)/classes)))
271
272 RT_JAR_MANIFEST_FILE := $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar_manifest
273 RESOURCE_JAR_MANIFEST_FILE := $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar_manifest
274
275 $(RT_JAR_MANIFEST_FILE): $(MAINMANIFEST) $(BEANMANIFEST)
276 $(MKDIR) -p $(@D)
277 $(RM) $@ $@.tmp
278 $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \
279 -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \
280 $(MAINMANIFEST) >> $@.tmp
281 $(ECHO) >> $@.tmp
282 $(CAT) $(BEANMANIFEST) >> $@.tmp
283 $(MV) $@.tmp $@
284
285 $(RESOURCE_JAR_MANIFEST_FILE): $(MAINMANIFEST)
286 $(MKDIR) -p $(@D)
287 $(RM) $@ $@.tmp
288 $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \
289 -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \
290 $(MAINMANIFEST) >> $@.tmp
291 $(MV) $@.tmp $@
292
293 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.exclude: $(MAKEFILE) $(PROFILE_MAKEFILES)
294 $(MKDIR) -p $(@D)
295 $(RM) $@ $@.tmp
296 $(call ListPathsSafely,RT_JAR_EXCLUDES,\n, >> $@.tmp)
297 $(MV) $@.tmp $@
298
299 $(IMAGES_OUTPUTDIR)/lib/classlist : $(JDK_TOPDIR)/make/tools/sharing/classlist.$(OPENJDK_TARGET_OS) \
300 $(MAKEFILE)
301 $(MKDIR) -p $(@D)
302 $(RM) $@ $@.tmp
303 $(TOOL_ADDJSUM) $< $@.tmp
304 $(MV) $@.tmp $@
305
306 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents: $(BUILD_TOOLS) $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.exclude \
307 $(ALL_FILES_IN_CLASSES) $(IMAGES_OUTPUTDIR)/lib/classlist
308 $(MKDIR) -p $(@D)
309 $(RM) $@ $@.tmp
310 ($(CD) $(JDK_OUTPUTDIR)/classes && \
311 $(TOOL_JARREORDER) \
312 -o $@.tmp $(IMAGES_OUTPUTDIR)/lib/classlist $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.exclude . )
313 $(MV) $@.tmp $@
314
315 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar.contents: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents
316 $(MKDIR) -p $(@D)
317 $(RM) $@ $@.tmp
318 $(GREP) -e '\.class$$' $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents > $@.tmp
319 ifneq ($(PROFILE),)
320 # # Add back classes from excluded packages (fixing the $ substitution in the process)
321 for type in $(subst \$$,\, $(RT_JAR_INCLUDE_TYPES)) ; do \
322 $(ECHO) $$type >> $@.tmp ; \
323 done
324 endif
325 $(MV) $@.tmp $@
326
327 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents
328 $(MKDIR) -p $(@D)
329 $(RM) $@ $@.tmp
330 $(GREP) -v -e '\.class$$' \
331 -e '/_the\.*' -e '^_the\.*' -e '\\_the\.*' -e 'javac_state' \
332 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents > $@.tmp
333 ifneq ($(PROFILE),)
334 # # Strip out all META-INF/services/ entries
335 $(GREP) -v -e 'META-INF/services/' $@.tmp > $@.tmp2
336 # # Add back the required services
337 # # FIXME: On Solaris if PROFILE_INCLUDE_METAINF_SERVICES is not defined
338 # # we get a syntax error from sh. That doesn't happen on linux
339 for service in $(PROFILE_INCLUDE_METAINF_SERVICES) ; do \
340 $(ECHO) $$service >> $@.tmp2; \
341 done
342 $(MV) $@.tmp2 $@.tmp
343 endif
344 $(MV) $@.tmp $@
345
346 # This is a hack but I don't know how to make this fit into the existing scheme
347 $(PROFILE_VERSION_CLASS_TARGETS) : $(PROFILE_VERSION_JAVA_TARGETS)
348 @$(JAVAC) -d $(@D)/../../ $(@D)/$(VERSION_JAVA_FILE)
349
350
351 # Support for removing the addPropertyChangeListener and removePropertyChangeListener
352 # methods from classes that only go into the profile builds. For now the Pack200.Packer
353 # and Packer200.Unpacker classes have special handling because of the $ in the file
354 # name.
355 BEANLESS_CLASSES = $(IMAGES_OUTPUTDIR)/beanless
356
357 $(BEANLESS_CLASSES)/%: $(JDK_OUTPUTDIR)/classes/%
358 $(MKDIR) -p $(@D)
359 $(TOOL_REMOVEMETHODS) $< $@ addPropertyChangeListener removePropertyChangeListener
360
361 CLASSES_TO_DEBEAN = \
362 java/util/logging/LogManager.class \
363 com/sun/java/util/jar/pack/PackerImpl.class \
364 com/sun/java/util/jar/pack/UnpackerImpl.class
365
366 BEANLESS_CLASSES_TARGETS =
367 ifneq ($(PROFILE),)
368 BEANLESS_CLASSES_TARGETS := $(foreach c, $(CLASSES_TO_DEBEAN), $(BEANLESS_CLASSES)/$c)
369 endif
370
371
372 RT_JAR_CREATE_OPTIONS := c0fm
373 RT_JAR_UPDATE_OPTIONS := u0f
374 ifeq ($(COMPRESS_JARS), true)
375 RT_JAR_CREATE_OPTIONS := cfm
376 RT_JAR_UPDATE_OPTIONS := uf
377 endif
378
379 # This defines a target-specific variables to make the shell logic easier to see.
380 # We need to find the Version.class file for the profile currently being built
381 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/rt.jar: \
382 CLASS_FILE = $(if $(PROFILE),$(strip $(foreach class,$(PROFILE_VERSION_CLASS_TARGETS),$(if $(findstring $(PROFILE),$(class)),$(class)))), NO_SUCH_FILE)
383 # This is the real target
384 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/rt.jar: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar.contents $(RT_JAR_MANIFEST_FILE) $(PROFILE_VERSION_CLASS_TARGETS) $(BEANLESS_CLASSES_TARGETS)
385 $(ECHO) Creating rt.jar $(PROFILE) Compressed=$(COMPRESS_JARS)
386 $(MKDIR) -p $(@D)
387 $(RM) $@ $@.tmp
388 $(CD) $(JDK_OUTPUTDIR)/classes && \
389 $(JAR) $(RT_JAR_CREATE_OPTIONS) $@.tmp $(RT_JAR_MANIFEST_FILE) \
390 @$(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar.contents && \
391 if [ -f $(CLASS_FILE) ]; then \
392 $(ECHO) Updating rt.jar $(PROFILE) && \
393 $(CD) $(patsubst %$(VERSION_CLASS_PATH),%,$(CLASS_FILE)) && \
394 $(JAR) $(RT_JAR_UPDATE_OPTIONS) $@.tmp $(VERSION_CLASS_PATH); \
395 $(MKDIR) -p $(BEANLESS_CLASSES)/java/util/jar; \
396 $(TOOL_REMOVEMETHODS) $(JDK_OUTPUTDIR)/classes/java/util/jar/Pack200\$$Packer.class \
397 $(BEANLESS_CLASSES)/java/util/jar/Pack200\$$Packer.class addPropertyChangeListener removePropertyChangeListener; \
398 $(TOOL_REMOVEMETHODS) $(JDK_OUTPUTDIR)/classes/java/util/jar/Pack200\$$Unpacker.class \
399 $(BEANLESS_CLASSES)/java/util/jar/Pack200\$$Unpacker.class addPropertyChangeListener removePropertyChangeListener; \
400 $(CD) $(BEANLESS_CLASSES) && \
401 $(JAR) $(RT_JAR_UPDATE_OPTIONS) $@.tmp $(CLASSES_TO_DEBEAN) java/util/jar/* ; \
402 fi
403 $(MV) $@.tmp $@
404
405 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/resources.jar: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents \
406 $(RESOURCE_JAR_MANIFEST_FILE)
407 $(ECHO) Creating resources.jar
408 $(MKDIR) -p $(@D)
409 $(RM) $@ $@.tmp
410 $(CD) $(JDK_OUTPUTDIR)/classes && \
411 $(JAR) $(RT_JAR_CREATE_OPTIONS) $@.tmp $(RESOURCE_JAR_MANIFEST_FILE) \
412 @$(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents
413 $(MV) $@.tmp $@
414
415 ##########################################################################################
416
417 ifneq ($(OPENJDK_TARGET_OS), windows)
418 CHARSETS_EXTRA_FILES:=sun/awt/motif/X11GBK.class \
419 sun/awt/motif/X11GB2312\$$$$Decoder.class \
420 sun/awt/motif/X11GB2312.class \
421 sun/awt/motif/X11KSC5601\$$$$Decoder.class \
422 sun/awt/motif/X11KSC5601\$$$$Encoder.class \
423 sun/awt/motif/X11GB2312\$$$$Encoder.class \
424 sun/awt/motif/X11GBK\$$$$Encoder.class \
425 sun/awt/motif/X11KSC5601.class
426 endif
427
428 $(eval $(call SetupArchive,BUILD_CHARSETS_JAR,,\
429 SRCS:=$(JDK_OUTPUTDIR)/classes, \
430 SUFFIXES:=.class .dat,\
431 INCLUDES:=sun/nio/cs/ext,\
432 EXTRA_FILES := sun/awt/HKSCS.class \
433 $(CHARSETS_EXTRA_FILES) \
434 META-INF/services/java.nio.charset.spi.CharsetProvider, \
435 JAR:=$(IMAGES_OUTPUTDIR)/lib/charsets.jar, \
436 SKIP_METAINF := true, \
437 CHECK_COMPRESS_JAR:=true))
438
439 ##########################################################################################
440
441 ifndef OPENJDK
442 ifeq ($(ENABLE_JFR), true)
443 $(eval $(call SetupArchive,BUILD_JFR_JAR,,\
444 SRCS:=$(JDK_OUTPUTDIR)/classes,\
445 INCLUDES:=com/oracle/jrockit/jfr \
446 oracle/jrockit/jfr,\
447 JAR:=$(IMAGES_OUTPUTDIR)/lib/jfr.jar,\
448 SKIP_METAINF:=true,\
449 MANIFEST:=$(MAINMANIFEST), \
450 CHECK_COMPRESS_JAR:=true))
451
452 endif
453 endif
454
455 ##########################################################################################
456
457 $(eval $(call SetupArchive,BUILD_JSSE_JAR,,\
458 SRCS:=$(JDK_OUTPUTDIR)/classes,\
459 INCLUDES:=sun/security/provider/Sun.class \
460 sun/security/rsa/SunRsaSign.class \
461 sun/security/ssl \
462 com/sun/net/ssl/internal/ssl,\
463 JAR:=$(IMAGES_OUTPUTDIR)/lib/jsse.jar,\
464 SKIP_METAINF:=true,\
465 MANIFEST:=$(MAINMANIFEST), \
466 CHECK_COMPRESS_JAR:=true))
467
468 ##########################################################################################
469 # Create manifest for security jars
470
471 #
472 # Include these extra attributes for now, should probably take out.
473 #
474 JCE_MANIFEST := $(IMAGES_OUTPUTDIR)/lib/_the.security.manifest.mf
475 $(JCE_MANIFEST): $(MAINMANIFEST)
476 $(MKDIR) -p $(@D)
477 $(RM) $@ $@.tmp
478 $(SED) -e "s#@@RELEASE@@#$(JDK_VERSION)#" \
479 -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \
480 $(MAINMANIFEST) >> $@.tmp
481 $(ECHO) "Extension-Name: javax.crypto" >> $@.tmp
482 $(ECHO) "Implementation-Vendor-Id: com.sun" >> $@.tmp
483 $(MV) $@.tmp $@
484
485 ##########################################################################################
486 # For all security jars, always build the jar, but for closed, install the prebuilt signed
487 # version instead of the newly built jar. Unsigned jars are treated as intermediate targets
488 # and explicitly added to the JARS list. For open, signing is not needed. See SignJars.gmk
489 # for more information.
490
491 SUNPKCS11_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunpkcs11.jar
492 SUNPKCS11_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/sunpkcs11.jar
493
494 $(eval $(call SetupArchive,BUILD_SUNPKCS11_JAR,,\
495 SRCS:=$(JDK_OUTPUTDIR)/classes, \
496 SUFFIXES:=.class,\
497 INCLUDES:=sun/security/pkcs11,\
498 JAR:=$(SUNPKCS11_JAR_UNSIGNED), \
499 MANIFEST:=$(JCE_MANIFEST), \
500 SKIP_METAINF := true))
501
502 $(SUNPKCS11_JAR_UNSIGNED): $(JCE_MANIFEST)
503
504 ifndef OPENJDK
505 SUNPKCS11_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/pkcs11/sunpkcs11.jar
506 $(SUNPKCS11_JAR_DST) : $(SUNPKCS11_JAR_SRC)
507 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt SunPKCS11 provider..."
508 $(install-file)
509 else
510 $(SUNPKCS11_JAR_DST) : $(SUNPKCS11_JAR_UNSIGNED)
511 $(install-file)
512 endif
513
514 JARS += $(SUNPKCS11_JAR_UNSIGNED)
515
516 ##########################################################################################
517
518 SUNEC_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunec.jar
519 SUNEC_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/sunec.jar
520
521 $(eval $(call SetupArchive,BUILD_SUNEC_JAR,,\
522 SRCS:=$(JDK_OUTPUTDIR)/classes, \
523 SUFFIXES:=.class,\
524 INCLUDES:=sun/security/ec,\
525 JAR:=$(SUNEC_JAR_UNSIGNED), \
526 MANIFEST:=$(JCE_MANIFEST), \
527 SKIP_METAINF := true))
528
529 $(SUNEC_JAR_UNSIGNED): $(JCE_MANIFEST)
530
531 ifndef OPENJDK
532 SUNEC_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/ec/sunec.jar
533 $(SUNEC_JAR_DST) : $(SUNEC_JAR_SRC)
534 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt SunEC provider..."
535 $(install-file)
536 else
537 $(SUNEC_JAR_DST) : $(SUNEC_JAR_UNSIGNED)
538 $(install-file)
539 endif
540
541 JARS += $(SUNEC_JAR_UNSIGNED)
542
543 ##########################################################################################
544
545 $(eval $(call SetupArchive,BUILD_SWINGBEANS_JAR,,\
546 SRCS:=$(JDK_OUTPUTDIR)/classes,\
547 SUFFIXES:=BeanInfo.class .gif,\
548 INCLUDES:=javax/swing sun/swing,\
549 EXCLUDES:=javax/swing/plaf,\
550 EXTRA_FILES:=javax/swing/SwingBeanInfoBase.class sun/swing/BeanInfoUtils.class,\
551 JAR:=$(IMAGES_OUTPUTDIR)/lib/dt.jar,\
552 SKIP_METAINF:=true))
553
554 ##########################################################################################
555
556 SUNJCE_PROVIDER_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunjce_provider.jar
557 SUNJCE_PROVIDER_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/sunjce_provider.jar
558
559 $(eval $(call SetupArchive,BUILD_SUNJCE_PROVIDER_JAR,,\
560 SRCS:=$(JDK_OUTPUTDIR)/classes, \
561 SUFFIXES:=.class,\
562 INCLUDES:= com/sun/crypto/provider,\
563 JAR:=$(SUNJCE_PROVIDER_JAR_UNSIGNED), \
564 MANIFEST:=$(JCE_MANIFEST), \
565 SKIP_METAINF := true))
566
567 $(SUNJCE_PROVIDER_JAR_UNSIGNED): $(JCE_MANIFEST)
568
569 ifndef OPENJDK
570 SUNJCE_PROVIDER_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/jce/sunjce_provider.jar
571 $(SUNJCE_PROVIDER_JAR_DST) : $(SUNJCE_PROVIDER_JAR_SRC)
572 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt SunJCE provider..."
573 $(install-file)
574 else
575 $(SUNJCE_PROVIDER_JAR_DST) : $(SUNJCE_PROVIDER_JAR_UNSIGNED)
576 $(install-file)
577 endif
578
579 JARS += $(SUNJCE_PROVIDER_JAR_UNSIGNED)
580
581 ##########################################################################################
582
583 JCE_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/jce.jar
584 JCE_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/jce.jar
585
586 $(eval $(call SetupArchive,BUILD_JCE_JAR,,\
587 SRCS:=$(JDK_OUTPUTDIR)/classes, \
588 SUFFIXES:=.class,\
589 INCLUDES:= javax/crypto sun/security/internal,\
590 JAR:=$(JCE_JAR_UNSIGNED), \
591 MANIFEST:=$(JCE_MANIFEST), \
592 SKIP_METAINF := true))
593
594 $(JCE_JAR_UNSIGNED): $(JCE_MANIFEST)
595
596 ifndef OPENJDK
597 JCE_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/jce/jce.jar
598 $(JCE_JAR_DST) : $(JCE_JAR_SRC)
599 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt jce.jar..."
600 $(install-file)
601 else
602 $(JCE_JAR_DST) : $(JCE_JAR_UNSIGNED)
603 $(install-file)
604 endif
605
606 JARS += $(JCE_JAR_UNSIGNED)
607
608 ##########################################################################################
609
610 US_EXPORT_POLICY_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/security/US_export_policy.jar
611 US_EXPORT_POLICY_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/US_export_policy.jar
612
613 #
614 # TODO fix so that SetupArchive does not write files into SRCS
615 # then we don't need this extra copying
616 #
617 # NOTE: We currently do not place restrictions on our limited export
618 # policy. This was not a typo.
619 #
620 US_EXPORT_POLICY_JAR_SRC_DIR := $(JDK_TOPDIR)/make/javax/crypto/policy/unlimited
621 US_EXPORT_POLICY_JAR_TMP := $(IMAGES_OUTPUTDIR)/US_export_policy_jar.tmp
622
623 $(US_EXPORT_POLICY_JAR_TMP)/% : $(US_EXPORT_POLICY_JAR_SRC_DIR)/%
624 $(install-file)
625
626 US_EXPORT_POLICY_JAR_DEPS := $(US_EXPORT_POLICY_JAR_TMP)/default_US_export.policy
627
628 $(eval $(call SetupArchive,BUILD_US_EXPORT_POLICY_JAR,$(US_EXPORT_POLICY_JAR_DEPS),\
629 SRCS:=$(US_EXPORT_POLICY_JAR_TMP), \
630 SUFFIXES:= .policy,\
631 JAR:=$(US_EXPORT_POLICY_JAR_UNSIGNED), \
632 EXTRA_MANIFEST_ATTR := Crypto-Strength: unlimited, \
633 SKIP_METAINF := true))
634
635 ifndef OPENJDK
636 $(US_EXPORT_POLICY_JAR_DST): $(JDK_TOPDIR)/make/closed/tools/crypto/jce/US_export_policy.jar
637 $(ECHO) $(LOG_INFO) Copying $(@F)
638 $(install-file)
639 else
640 $(US_EXPORT_POLICY_JAR_DST): $(US_EXPORT_POLICY_JAR_UNSIGNED)
641 $(install-file)
642 endif
643
644 JARS += $(US_EXPORT_POLICY_JAR_UNSIGNED)
645
646 ##########################################################################################
647
648 LOCAL_POLICY_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/security/local_policy.jar
649 LOCAL_POLICY_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/local_policy.jar
650
651 #
652 # TODO fix so that SetupArchive does not write files into SRCS
653 # then we don't need this extra copying
654 #
655 LOCAL_POLICY_JAR_TMP := $(IMAGES_OUTPUTDIR)/local_policy_jar.tmp
656
657 ifeq ($(UNLIMITED_CRYPTO), true)
658 LOCAL_POLICY_JAR_SRC_DIR := $(JDK_TOPDIR)/make/javax/crypto/policy/unlimited
659 LOCAL_POLICY_JAR_DEPS := $(LOCAL_POLICY_JAR_TMP)/default_local.policy
660 LOCAL_POLICY_JAR_ATTR := Crypto-Strength: unlimited
661 else
662 LOCAL_POLICY_JAR_SRC_DIR := $(JDK_TOPDIR)/make/javax/crypto/policy/limited
663 LOCAL_POLICY_JAR_DEPS := $(LOCAL_POLICY_JAR_TMP)/exempt_local.policy \
664 $(LOCAL_POLICY_JAR_TMP)/default_local.policy
667
668 $(LOCAL_POLICY_JAR_TMP)/% : $(LOCAL_POLICY_JAR_SRC_DIR)/%
669 $(install-file)
670
671 $(eval $(call SetupArchive,BUILD_LOCAL_POLICY_JAR,$(LOCAL_POLICY_JAR_DEPS),\
672 SRCS:=$(LOCAL_POLICY_JAR_TMP),\
673 SUFFIXES:= .policy,\
674 JAR:=$(LOCAL_POLICY_JAR_UNSIGNED), \
675 EXTRA_MANIFEST_ATTR := $(LOCAL_POLICY_JAR_ATTR), \
676 SKIP_METAINF := true))
677
678 ifndef OPENJDK
679 $(LOCAL_POLICY_JAR_DST): $(JDK_TOPDIR)/make/closed/tools/crypto/jce/local_policy.jar
680 $(ECHO) $(LOG_INFO) Copying $(@F)
681 $(install-file)
682 else
683 $(LOCAL_POLICY_JAR_DST): $(LOCAL_POLICY_JAR_UNSIGNED)
684 $(install-file)
685 endif
686
687 JARS += $(LOCAL_POLICY_JAR_UNSIGNED)
688
689 ##########################################################################################
690
691 ifeq ($(OPENJDK_TARGET_OS),windows)
692
693 SUNMSCAPI_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunmscapi.jar
694 SUNMSCAPI_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/sunmscapi.jar
695
696 $(eval $(call SetupArchive,BUILD_SUNMSCAPI_JAR,,\
697 SRCS:=$(JDK_OUTPUTDIR)/classes, \
698 SUFFIXES:=.class,\
699 INCLUDES:= sun/security/mscapi,\
700 JAR:=$(SUNMSCAPI_JAR_UNSIGNED), \
701 MANIFEST:=$(JCE_MANIFEST), \
702 SKIP_METAINF:=true))
703
704 $(SUNMSCAPI_JAR_UNSIGNED): $(JCE_MANIFEST)
705
706 ifndef OPENJDK
707 SUNMSCAPI_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/mscapi/sunmscapi.jar
708 $(SUNMSCAPI_JAR_DST) : $(SUNMSCAPI_JAR_SRC)
709 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt SunMSCAPI provider..."
710 $(install-file)
711 else
712 $(SUNMSCAPI_JAR_DST) : $(SUNMSCAPI_JAR_UNSIGNED)
713 $(install-file)
714 endif
715
716 JARS += $(SUNMSCAPI_JAR_UNSIGNED)
717
718 endif
719
720 ##########################################################################################
721
722 ifeq ($(OPENJDK_TARGET_OS),solaris)
723 ifndef OPENJDK
724
725 UCRYPTO_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/ucrypto.jar
726 UCRYPTO_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/ucrypto.jar
727 UCRYPTO_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/ucrypto/ucrypto.jar
728
729 $(eval $(call SetupArchive,BUILD_UCRYPTO_JAR,,\
730 SRCS:=$(JDK_OUTPUTDIR)/classes, \
731 SUFFIXES:=.class,\
732 INCLUDES:=com/oracle/security/ucrypto,\
733 JAR:=$(UCRYPTO_JAR_UNSIGNED), \
734 MANIFEST:=$(JCE_MANIFEST), \
735 SKIP_METAINF:=true))
736
737 $(UCRYPTO_JAR_UNSIGNED): $(JCE_MANIFEST)
738
739 $(UCRYPTO_JAR_DST) : $(UCRYPTO_JAR_SRC)
740 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt OracleUcrypto provider..."
741 $(install-file)
742
743 JARS += $(UCRYPTO_JAR_UNSIGNED)
744
745 endif
746 endif
747
748 ##########################################################################################
749
750 # Get the CLDRVERSION
751 include GensrcCLDR.gmk
752
753 CLDRDATA_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/cldrdata.jar
754
755 $(eval $(call SetupArchive,BUILD_CLDRDATA_JAR,,\
756 SRCS:=$(JDK_OUTPUTDIR)/classes,\
757 SUFFIXES:=.class,\
758 INCLUDES:=sun/text/resources/cldr \
759 sun/util/cldr \
760 sun/util/resources/cldr,\
761 EXCLUDES:=sun/util/cldr/CLDRLocaleProviderAdapter,\
762 JAR:=$(CLDRDATA_JAR_DST),\
763 EXTRA_MANIFEST_ATTR:=CLDR-Version: $(CLDRVERSION),\
764 SKIP_METAINF:=true))
765
766 ##########################################################################################
767
768 TOOLS_JAR_INCLUDES := \
769 com/sun/codemodel \
770 com/sun/istack/internal/tools \
771 com/sun/jarsigner \
772 com/sun/javadoc \
773 com/sun/jdi \
774 com/sun/source \
775 com/sun/tools/attach \
776 com/sun/tools/classfile \
777 com/sun/tools/corba \
778 com/sun/tools/doclets \
779 com/sun/tools/doclint \
780 com/sun/tools/example/debug/expr \
781 com/sun/tools/example/debug/tty \
782 com/sun/tools/extcheck \
783 com/sun/tools/hat \
784 com/sun/tools/internal/jxc \
785 com/sun/tools/internal/jxc/ap \
819 sun/tools/util
820
821 # The sjavac tools is not ready for public consumption.
822 TOOLS_JAR_EXCLUDES=com/sun/tools/sjavac
823
824 $(eval $(call SetupArchive,BUILD_TOOLS_JAR,,\
825 SRCS:=$(JDK_OUTPUTDIR)/classes,\
826 SUFFIXES:=.class .prp .gif .properties .xml .css .xsd .js .html .txt .java \
827 Tool aliasmap options,\
828 INCLUDES:=$(TOOLS_JAR_INCLUDES),\
829 EXCLUDES:=$(TOOLS_JAR_EXCLUDES),\
830 EXTRA_FILES:=META-INF/services/com.sun.jdi.connect.Connector \
831 META-INF/services/com.sun.jdi.connect.spi.TransportService \
832 META-INF/services/com.sun.tools.attach.spi.AttachProvider \
833 META-INF/services/com.sun.tools.internal.ws.wscompile.Plugin \
834 META-INF/services/com.sun.tools.internal.xjc.Plugin,\
835 JAR:=$(IMAGES_OUTPUTDIR)/lib/tools.jar,\
836 SKIP_METAINF:=true, \
837 CHECK_COMPRESS_JAR:=true))
838
839
840 ##########################################################################################
841
842 include javadoc/CORE_PKGS.gmk
843 include javadoc/NON_CORE_PKGS.gmk
844
845 # The compiler should not issue a "Proprietary" warning when compiling
846 # classes in the com.sun.java.swing.plaf packages, since we've always
847 # allowed, and even advocated, extending them (see bug 6476749).
848 #
849 # This approach is NOT to be used as a general purpose way to avoid such
850 # compiler warnings for non-core packages. The correct way is to document
851 # the packages in NON_CORE_PKGS.gmk, and include them in the NON_CORE_PKGS
852 # definition.
853 #
854 # Swing has taken this approach only as a temporary measure to avoid
855 # the compiler warnings until we can properly document these packages.
856 # This is covered under 6491853.
857 EXCLUDE_PROPWARN_PKGS = com.sun.java.swing.plaf.windows \
858 com.sun.java.swing.plaf.motif \
859 com.sun.java.swing.plaf.gtk
860
861 #
862 # Include the exported private packages in ct.sym.
863 # This is an interim solution until the ct.sym is replaced
864 # with a new module system (being discussed for JDK 8).
865 #
866 EXPORTED_PRIVATE_PKGS = com.sun.servicetag \
867 com.oracle.net \
868 com.oracle.nio
869
870 $(IMAGES_OUTPUTDIR)/symbols/_the.symbols: $(IMAGES_OUTPUTDIR)/lib/rt.jar
871 $(RM) -r $(IMAGES_OUTPUTDIR)/symbols/META-INF/sym
872 $(MKDIR) -p $(IMAGES_OUTPUTDIR)/symbols/META-INF/sym
873 $(JAVA) $(JAVAC_JARS) \
874 -bootclasspath $(JDK_OUTPUTDIR)/classes \
875 -XDprocess.packages -proc:only \
876 -processor com.sun.tools.javac.sym.CreateSymbols \
877 -Acom.sun.tools.javac.sym.Jar=$(IMAGES_OUTPUTDIR)/lib/rt.jar \
878 -Acom.sun.tools.javac.sym.Dest=$(IMAGES_OUTPUTDIR)/symbols/META-INF/sym/rt.jar \
879 -Acom.sun.tools.javac.sym.Profiles=profile-rtjar-includes.txt \
880 $(CORE_PKGS) $(NON_CORE_PKGS) $(EXCLUDE_PROPWARN_PKGS) $(EXPORTED_PRIVATE_PKGS)
881 $(TOUCH) $@
882
883 $(eval $(call MakeDir,$(IMAGES_OUTPUTDIR)/symbols))
884 $(eval $(call SetupArchive,BUILD_CT_SYM,$(IMAGES_OUTPUTDIR)/symbols/_the.symbols,\
885 SRCS:=$(IMAGES_OUTPUTDIR)/symbols,\
886 INCLUDES:=META-INF/sym,\
887 JAR:=$(IMAGES_OUTPUTDIR)/lib/ct.sym, \
888 CHECK_COMPRESS_JAR:=true))
889
890
891 ##########################################################################################
892
893 SRC_ZIP_INCLUDES = \
894 com/sun/corba \
895 com/sun/image/codec/jpeg \
896 com/sun/imageio \
897 com/sun/java_cup \
898 com/sun/javadoc \
899 com/sun/java/swing \
900 com/sun/jlex \
901 com/sun/jmx \
902 com/sun/naming \
903 com/sun/org/apache \
904 com/sun/security/auth \
905 com/sun/security/jgss \
906 com/sun/source \
907 java/applet \
908 java/awt \
909 java/beans \
955 $(LAUNCHER_SRC_FILES)))
956
957 $(IMAGES_OUTPUTDIR)/src/launcher/%: $(JDK_TOPDIR)/src/share/bin/%
958 $(install-file)
959
960 $(IMAGES_OUTPUTDIR)/src/launcher/%: $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/%
961 $(install-file)
962
963 $(IMAGES_OUTPUTDIR)/src.zip: $(LAUNCHER_ZIP_SRC)
964
965 # This dir needs to exist before macro is evaluated to avoid warning from find.
966 $(eval $(call MakeDir,$(IMAGES_OUTPUTDIR)/src))
967 $(eval $(call SetupZipArchive,BUILD_SRC_ZIP,\
968 SRC:=$(SRC_ZIP_SRCS) $(IMAGES_OUTPUTDIR)/src,\
969 INCLUDES:=$(SRC_ZIP_INCLUDES) launcher,\
970 EXCLUDES:=javax/swing/beaninfo,\
971 SUFFIXES:=.java .c .h,\
972 ZIP:=$(IMAGES_OUTPUTDIR)/src.zip,\
973 EXTRA_DEPS:=$(LAUNCHER_ZIP_SRC)))
974
975 ##########################################################################################
976
977 #
978 # This is an empty jar (only contains manifest) and fits poorly into framework...
979 # create simple rule instead
980 #
981 $(IMAGES_OUTPUTDIR)/lib/management-agent.jar : $(JDK_TOPDIR)/src/share/classes/sun/management/manifest
982 $(JAR) cfm $@ $<
983
984 ##########################################################################################
985
986 $(IMAGES_OUTPUTDIR)/lib/ext/zipfs.jar : $(JDK_OUTPUTDIR)/demo/nio/zipfs/zipfs.jar
987 $(install-file)
988
989 ##########################################################################################
990
991 ifeq ($(OPENJDK_TARGET_OS),macosx)
992 $(eval $(call SetupArchive,BUILD_JOBJC_JAR,,\
993 SRCS:=$(JDK_OUTPUTDIR)/jobjc_classes,\
994 JAR:=$(IMAGES_OUTPUTDIR)/lib/JObjC.jar, \
995 JARINDEX:=true))
996 endif
997
998 ##########################################################################################
999
1000 ifndef OPENJDK
1001 $(eval $(call SetupArchive,BUILD_ALT_RT_JAR,,\
1002 SRCS:=$(JDK_OUTPUTDIR)/altclasses_classes,\
1003 JAR:=$(IMAGES_OUTPUTDIR)/lib/alt-rt.jar))
1004
1005 endif
1006
1007 ##########################################################################################
1008
1009 # This file is imported from hotspot in Import.gmk. Copying it into images/lib so that
1010 # all jars can be found in one place when creating images in Images.gmk. It needs to be
1011 # done here so that clean targets can be simple and accurate.
1012 $(IMAGES_OUTPUTDIR)/lib/sa-jdi.jar: $(JDK_OUTPUTDIR)/lib/sa-jdi.jar
1013 $(install-file)
1014
1015 ##########################################################################################
1016 #
1017 # sec-bin.zip is used by builds where the corresponding sources are not available
1018 #
1019 $(eval $(call SetupZipArchive,BUILD_SEC_BIN_ZIP,\
1020 SRC:=$(JDK_OUTPUTDIR),\
1021 INCLUDES:=classes/javax/net \
1022 classes/javax/security/cert \
1023 classes/com/sun/net/ssl \
1024 classes/com/sun/security/cert \
1025 classes/sun/net/www/protocol/https \
1026 classes/sun/security/pkcs12 \
1027 classes/sun/security/ssl \
1028 classes/sun/security/krb5 \
1029 classes/sun/security/krb5/internal \
1030 classes/sun/security/krb5/internal/ccache \
1031 classes/sun/security/krb5/internal/crypto \
1032 classes/sun/security/krb5/internal/ktab \
1033 classes/sun/security/krb5/internal/rcache \
|