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 include Tools.gmk 34 35 # 36 # This makefile...so that altering will trigger rebuilding include/exclude-lists => jars 37 # 38 MAKEFILE=$(JDK_TOPDIR)/makefiles/CreateJars.gmk 39 40 MAINMANIFEST := $(JDK_TOPDIR)/make/tools/manifest.mf 41 BEANMANIFEST := $(JDK_TOPDIR)/make/javax/swing/beaninfo/manifest 42 43 JARS:= 44 45 ########################################################################################## 46 47 JCONSOLE_JAR_DEPS := \ 48 $(shell $(FIND) $(JDK_OUTPUTDIR)/classes/sun/tools/jconsole/ -name "_the.package") \ 49 $(shell $(FIND) $(JDK_OUTPUTDIR)/classes/com/sun/tools/jconsole/ -name "_the.package") 50 51 $(eval $(call SetupArchive,BUILD_JCONSOLE_JAR,$(JCONSOLE_JAR_DEPS),\ 52 SRCS:=$(JDK_OUTPUTDIR)/classes,\ 53 SUFFIXES:=.class .gif .png .properties,\ 54 INCLUDES:=sun/tools/jconsole com/sun/tools/jconsole,\ 55 JARMAIN:=sun.tools.jconsole.JConsole,\ 56 JAR:=$(JDK_OUTPUTDIR)/lib/jconsole.jar,\ 57 SKIP_METAINF:=true)) 58 59 JARS+=$(JDK_OUTPUTDIR)/lib/jconsole.jar 60 61 ########################################################################################## 62 63 DNS_JAR_DEPS := \ 64 $(shell $(FIND) $(JDK_OUTPUTDIR)/classes/sun/net/spi/nameservice/dns/ -name "_the.package") \ 65 66 $(eval $(call SetupArchive,BUILD_DNS_JAR,$(DNS_JAR_DEPS),\ 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:=$(JDK_OUTPUTDIR)/lib/ext/dnsns.jar,\ 71 SKIP_METAINF:=true)) 72 73 JARS+=$(JDK_OUTPUTDIR)/lib/ext/dnsns.jar 74 75 ########################################################################################## 76 77 LOCALEDATA_INCLUDE_PATTERNS := \ 78 sun/text/resources/*_ar* \ 79 sun/text/resources/*_hi* \ 80 sun/text/resources/*_iw* \ 81 sun/text/resources/*_iw* \ 82 sun/text/resources/*_ja* \ 83 sun/text/resources/*_ko* \ 84 sun/text/resources/*_th.* \ 85 sun/text/resources/*_th_* \ 86 sun/text/resources/*_vi* \ 87 sun/text/resources/*_zh* \ 88 sun/text/resources/*Data_th \ 89 sun/text/resources/thai_dict \ 90 sun/util/resources/*_ar* \ 91 sun/util/resources/*_hi* \ 92 sun/util/resources/*_iw* \ 93 sun/util/resources/*_iw* \ 94 sun/util/resources/*_ja* \ 95 sun/util/resources/*_ko* \ 96 sun/util/resources/*_th_* \ 97 sun/util/resources/*_th.* \ 98 sun/util/resources/*_vi* \ 99 sun/util/resources/*_zh* 100 101 LOCALEDATA_INCLUDES := $(patsubst $(JDK_OUTPUTDIR)/classes/%,%,\ 102 $(foreach i,$(LOCALEDATA_INCLUDE_PATTERNS), $(wildcard $(JDK_OUTPUTDIR)/classes/$i))) 103 104 $(eval $(call SetupArchive,BUILD_LOCALEDATA_JAR,,\ 105 SRCS:=$(JDK_OUTPUTDIR)/classes,\ 106 SUFFIXES:=.class _dict _th,\ 107 INCLUDES:=$(LOCALEDATA_INCLUDES),\ 108 JAR:=$(JDK_OUTPUTDIR)/lib/ext/localedata.jar,\ 109 SKIP_METAINF:=true)) 110 111 JARS+=$(JDK_OUTPUTDIR)/lib/ext/localedata.jar 112 113 ########################################################################################## 114 # rt.jar and resources.jar are being built in the same way as in the old build. They require 115 # the files to be in a certain order and converting that is not easy and will not be needed 116 # in jigsaw anyway. 117 118 # Exclude list for rt.jar and resources.jar 119 RT_JAR_EXCLUDES := \ 120 com/sun/javadoc \ 121 com/sun/jdi \ 122 com/sun/jarsigner \ 123 com/sun/source \ 124 com/sun/istack/internal/tools \ 125 META-INF/services/com.sun.jdi.connect.Connector \ 126 META-INF/services/com.sun.jdi.connect.spi.TransportService \ 127 META-INF/services/com.sun.tools.xjc.Plugin \ 128 com/sun/tools \ 129 sun/jvmstat \ 130 sun/nio/cs/ext \ 131 sun/awt/HKSCS.class \ 132 sun/awt/motif/X11GB2312\$$$$Decoder.class \ 133 sun/awt/motif/X11GB2312\$$$$Encoder.class \ 134 sun/awt/motif/X11GB2312.class \ 135 sun/awt/motif/X11GBK\$$$$Encoder.class \ 136 sun/awt/motif/X11GBK.class \ 137 sun/awt/motif/X11KSC5601\$$$$Decoder.class \ 138 sun/awt/motif/X11KSC5601\$$$$Encoder.class \ 139 sun/awt/motif/X11KSC5601.class \ 140 META-INF/services/java.nio.charset.spi.CharsetProvider \ 141 sun/rmi/rmic \ 142 sun/tools/asm \ 143 sun/tools/java \ 144 sun/tools/javac \ 145 com/sun/tools/classfile \ 146 com/sun/tools/javap \ 147 sun/tools/jcmd \ 148 sun/tools/jconsole \ 149 sun/tools/jps \ 150 sun/tools/jstat \ 151 sun/tools/jstatd \ 152 sun/tools/native2ascii \ 153 sun/tools/serialver \ 154 sun/tools/tree \ 155 sun/tools/util \ 156 sun/security/tools/JarBASE64Encoder.class \ 157 sun/security/tools/JarSigner.class \ 158 sun/security/tools/JarSignerParameters.class \ 159 sun/security/tools/JarSignerResources.class \ 160 sun/security/tools/JarSignerResources_ja.class \ 161 sun/security/tools/JarSignerResources_zh_CN.class \ 162 sun/security/tools/SignatureFile\$$$$Block.class \ 163 sun/security/tools/SignatureFile.class \ 164 sun/security/tools/TimestampedSigner.class \ 165 sun/security/provider/Sun.class \ 166 sun/security/rsa/SunRsaSign.class \ 167 sun/security/ssl \ 168 sun/security/ec/ECDHKeyAgreement.class \ 169 sun/security/ec/ECDSASignature\$$$$Raw.class \ 170 sun/security/ec/ECDSASignature\$$$$SHA1.class \ 171 sun/security/ec/ECDSASignature\$$$$SHA224.class \ 172 sun/security/ec/ECDSASignature\$$$$SHA256.class \ 173 sun/security/ec/ECDSASignature\$$$$SHA384.class \ 174 sun/security/ec/ECDSASignature\$$$$SHA512.class \ 175 sun/security/ec/ECDSASignature.class \ 176 sun/security/ec/ECKeyPairGenerator.class \ 177 sun/security/ec/SunEC\$$$$1.class \ 178 sun/security/ec/SunEC.class \ 179 sun/security/ec/SunECEntries.class \ 180 sun/security/pkcs11 \ 181 com/sun/net/ssl/internal/ssl \ 182 javax/crypto \ 183 sun/security/internal \ 184 com/sun/crypto/provider \ 185 META-INF/services/com.sun.tools.attach.spi.AttachProvider \ 186 com/sun/tools/attach \ 187 org/relaxng/datatype \ 188 com/sun/codemodel \ 189 com/sun/xml/internal/dtdparser \ 190 com/sun/xml/internal/rngom \ 191 com/sun/xml/internal/xsom \ 192 com/sun/tools/script/shell \ 193 sun/tools/attach \ 194 sun/tools/jstack \ 195 sun/tools/jinfo \ 196 sun/tools/jmap \ 197 sun/net/spi/nameservice/dns \ 198 META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor \ 199 javax/swing/beaninfo \ 200 javax/swing/AbstractButtonBeanInfo.class \ 201 javax/swing/BoxBeanInfo.class \ 202 javax/swing/JAppletBeanInfo.class \ 203 javax/swing/JButtonBeanInfo.class \ 204 javax/swing/JCheckBoxBeanInfo.class \ 205 javax/swing/JCheckBoxMenuItemBeanInfo.class \ 206 javax/swing/JColorChooserBeanInfo.class \ 207 javax/swing/JComboBoxBeanInfo.class \ 208 javax/swing/JComponentBeanInfo.class \ 209 javax/swing/JDesktopPaneBeanInfo.class \ 210 javax/swing/JDialogBeanInfo.class \ 211 javax/swing/JEditorPaneBeanInfo.class \ 212 javax/swing/JFileChooserBeanInfo.class \ 213 javax/swing/JFormattedTextFieldBeanInfo.class \ 214 javax/swing/JFrameBeanInfo.class \ 215 javax/swing/JInternalFrameBeanInfo.class \ 216 javax/swing/JLabelBeanInfo.class \ 217 javax/swing/JLayeredPaneBeanInfo.class \ 218 javax/swing/JListBeanInfo.class \ 219 javax/swing/JMenuBarBeanInfo.class \ 220 javax/swing/JMenuBeanInfo.class \ 221 javax/swing/JMenuItemBeanInfo.class \ 222 javax/swing/JOptionPaneBeanInfo.class \ 223 javax/swing/JPanelBeanInfo.class \ 224 javax/swing/JPasswordFieldBeanInfo.class \ 225 javax/swing/JPopupMenuBeanInfo.class \ 226 javax/swing/JProgressBarBeanInfo.class \ 227 javax/swing/JRadioButtonBeanInfo.class \ 228 javax/swing/JRadioButtonMenuItemBeanInfo.class \ 229 javax/swing/JScrollBarBeanInfo.class \ 230 javax/swing/JScrollPaneBeanInfo.class \ 231 javax/swing/JSeparatorBeanInfo.class \ 232 javax/swing/JSliderBeanInfo.class \ 233 javax/swing/JSpinnerBeanInfo.class \ 234 javax/swing/JSplitPaneBeanInfo.class \ 235 javax/swing/JTabbedPaneBeanInfo.class \ 236 javax/swing/JTableBeanInfo.class \ 237 javax/swing/JTextAreaBeanInfo.class \ 238 javax/swing/JTextFieldBeanInfo.class \ 239 javax/swing/JTextPaneBeanInfo.class \ 240 javax/swing/JToggleButtonBeanInfo.class \ 241 javax/swing/JToolBarBeanInfo.class \ 242 javax/swing/JTreeBeanInfo.class \ 243 javax/swing/JWindowBeanInfo.class \ 244 javax/swing/SwingBeanInfoBase.class \ 245 javax/swing/text/JTextComponentBeanInfo.class \ 246 sun/swing/BeanInfoUtils.class \ 247 $(LOCALEDATA_INCLUDES) 248 249 # These files should never be put into rt.jar 250 # but due to a misstake...some are put there if embedded 251 # 252 ifneq ($(JAVASE_EMBEDDED), true) 253 # normal (correct) case 254 RT_JAR_EXCLUDES += \ 255 com/oracle/jrockit/jfr \ 256 oracle/jrockit/jfr 257 else 258 # embedded (broken) case 259 RT_JAR_EXCLUDES += \ 260 oracle/jrockit/jfr/parser \ 261 oracle/jrockit/jfr/tools \ 262 oracle/jrockit/jfr/NativeOptions.class \ 263 oracle/jrockit/jfr/RepositoryChunkHandler.class 264 endif 265 266 ifeq ($(OPENJDK_TARGET_OS), macosx) 267 RT_JAR_EXCLUDES += com/sun/nio/sctp \ 268 sun/nio/ch/sctp \ 269 sun/jdbc \ 270 sun/nio/ch/DevPollArrayWrapper\$$$$Updator.class \ 271 sun/nio/ch/DevPollArrayWrapper.class \ 272 sun/nio/ch/DevPollSelectorImpl.class \ 273 sun/nio/ch/DevPollSelectorProvider.class \ 274 sun/nio/ch/EPollArrayWrapper\$$$$Updator.class \ 275 sun/nio/ch/EPollArrayWrapper.class \ 276 sun/nio/ch/EPollSelectorImpl.class \ 277 sun/nio/ch/EPollSelectorProvider.class 278 endif 279 280 # Find all files in the classes dir to use as dependencies. This could be more fine granular. 281 ALL_FILES_IN_CLASSES := $(shell $(FIND) $(JDK_OUTPUTDIR)/classes -type f \ 282 | $(GREP) -v -e '/_the\.*' -e '^_the\.*') 283 284 RT_JAR_MANIFEST_FILE := $(JDK_OUTPUTDIR)/lib/_the.rt.jar_manifest 285 RESOURCE_JAR_MANIFEST_FILE := $(JDK_OUTPUTDIR)/lib/_the.resources.jar_manifest 286 287 $(RT_JAR_MANIFEST_FILE): $(MAINMANIFEST) $(BEANMANIFEST) 288 $(MKDIR) -p $(@D) 289 $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \ 290 -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \ 291 $(MAINMANIFEST) >> $@ 292 $(ECHO) >> $@ 293 $(CAT) $(BEANMANIFEST) >> $@ 294 295 $(RESOURCE_JAR_MANIFEST_FILE): $(MAINMANIFEST) 296 $(MKDIR) -p $(@D) 297 $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \ 298 -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \ 299 $(MAINMANIFEST) >> $@ 300 301 $(JDK_OUTPUTDIR)/lib/_the.jars.exclude: $(MAKEFILE) 302 $(MKDIR) -p $(@D) 303 $(call ListPathsSafely,RT_JAR_EXCLUDES,\n, >> $@) 304 305 $(JDK_OUTPUTDIR)/lib/classlist : $(JDK_TOPDIR)/make/tools/sharing/classlist.$(OPENJDK_TARGET_OS) \ 306 $(MAKEFILE) 307 $(MKDIR) -p $(@D) 308 $(RM) -f $@.temp 309 $(TOOL_ADDJSUM) $< $@.temp 310 $(MV) $@.temp $@ 311 312 $(JDK_OUTPUTDIR)/lib/_the.jars.contents: $(BUILD_TOOLS) $(JDK_OUTPUTDIR)/lib/_the.jars.exclude \ 313 $(ALL_FILES_IN_CLASSES) $(JDK_OUTPUTDIR)/lib/classlist 314 $(MKDIR) -p $(@D) 315 $(RM) $@.temp 316 ($(CD) $(JDK_OUTPUTDIR)/classes && \ 317 $(TOOL_JARREORDER) \ 318 -o $@.temp $(JDK_OUTPUTDIR)/lib/classlist $(JDK_OUTPUTDIR)/lib/_the.jars.exclude . ) 319 $(MV) $@.temp $@ 320 321 $(JDK_OUTPUTDIR)/lib/_the.rt.jar.contents: $(JDK_OUTPUTDIR)/lib/_the.jars.contents 322 $(GREP) -e '\.class$$' $(JDK_OUTPUTDIR)/lib/_the.jars.contents > $@ 323 324 $(JDK_OUTPUTDIR)/lib/_the.resources.jar.contents: $(JDK_OUTPUTDIR)/lib/_the.jars.contents 325 $(GREP) -v -e '\.class$$' -e '/_the\.*' -e '^_the\.*' $(JDK_OUTPUTDIR)/lib/_the.jars.contents > $@ 326 327 RT_JAR_CREATE_OPTIONS := c0fm 328 ifeq ($(COMPRESS_JARS), true) 329 RT_JAR_CREATE_OPTIONS := cfm 330 endif 331 332 $(JDK_OUTPUTDIR)/lib/rt.jar: $(JDK_OUTPUTDIR)/lib/_the.rt.jar.contents $(RT_JAR_MANIFEST_FILE) 333 $(ECHO) Creating rt.jar 334 $(CD) $(JDK_OUTPUTDIR)/classes && \ 335 $(JAR) $(RT_JAR_CREATE_OPTIONS) $@ $(RT_JAR_MANIFEST_FILE) \ 336 @$(JDK_OUTPUTDIR)/lib/_the.rt.jar.contents 337 338 $(JDK_OUTPUTDIR)/lib/resources.jar: $(JDK_OUTPUTDIR)/lib/_the.resources.jar.contents \ 339 $(RESOURCE_JAR_MANIFEST_FILE) 340 $(ECHO) Creating resources.jar 341 $(CD) $(JDK_OUTPUTDIR)/classes && \ 342 $(JAR) $(RT_JAR_CREATE_OPTIONS) $@ $(RESOURCE_JAR_MANIFEST_FILE) \ 343 @$(JDK_OUTPUTDIR)/lib/_the.resources.jar.contents 344 345 JARS+=$(JDK_OUTPUTDIR)/lib/rt.jar $(JDK_OUTPUTDIR)/lib/resources.jar 346 347 ########################################################################################## 348 349 CHARSETS_JAR_DEPS := 350 351 ifneq ($(OPENJDK_TARGET_OS), windows) 352 CHARSETS_EXTRA_FILES:=sun/awt/motif/X11GBK.class \ 353 sun/awt/motif/X11GB2312\$$$$Decoder.class \ 354 sun/awt/motif/X11GB2312.class \ 355 sun/awt/motif/X11KSC5601\$$$$Decoder.class \ 356 sun/awt/motif/X11KSC5601\$$$$Encoder.class \ 357 sun/awt/motif/X11GB2312\$$$$Encoder.class \ 358 sun/awt/motif/X11GBK\$$$$Encoder.class \ 359 sun/awt/motif/X11KSC5601.class 360 endif 361 362 $(eval $(call SetupArchive,BUILD_CHARSETS_JAR,$(CHARSETS_JAR_DEPS),\ 363 SRCS:=$(JDK_OUTPUTDIR)/classes, \ 364 SUFFIXES:=.class .dat,\ 365 INCLUDES:=sun/nio/cs/ext,\ 366 EXTRA_FILES := sun/awt/HKSCS.class \ 367 $(CHARSETS_EXTRA_FILES) \ 368 META-INF/services/java.nio.charset.spi.CharsetProvider, \ 369 JAR:=$(JDK_OUTPUTDIR)/lib/charsets.jar, \ 370 SKIP_METAINF := true, \ 371 CHECK_COMPRESS_JAR:=true)) 372 373 JARS+=$(JDK_OUTPUTDIR)/lib/charsets.jar 374 375 ########################################################################################## 376 377 ifeq ($(ENABLE_JFR), true) 378 $(eval $(call SetupArchive,BUILD_JFR_JAR,,\ 379 SRCS:=$(JDK_OUTPUTDIR)/classes,\ 380 INCLUDES:=com/oracle/jrockit/jfr \ 381 oracle/jrockit/jfr,\ 382 JAR:=$(JDK_OUTPUTDIR)/lib/jfr.jar,\ 383 SKIP_METAINF:=true,\ 384 MANIFEST:=$(MAINMANIFEST), \ 385 CHECK_COMPRESS_JAR:=true)) 386 387 JARS+=$(JDK_OUTPUTDIR)/lib/jfr.jar 388 endif 389 390 ########################################################################################## 391 392 $(eval $(call SetupArchive,BUILD_JSSE_JAR,,\ 393 SRCS:=$(JDK_OUTPUTDIR)/classes,\ 394 INCLUDES:=sun/security/provider/Sun.class \ 395 sun/security/rsa/SunRsaSign.class \ 396 sun/security/ssl \ 397 com/sun/net/ssl/internal/ssl,\ 398 JAR:=$(JDK_OUTPUTDIR)/lib/jsse.jar,\ 399 SKIP_METAINF:=true,\ 400 MANIFEST:=$(MAINMANIFEST), \ 401 CHECK_COMPRESS_JAR:=true)) 402 403 JARS+=$(JDK_OUTPUTDIR)/lib/jsse.jar 404 405 ########################################################################################## 406 407 ifneq ($(OPENJDK_TARGET_OS)-$(ARCH_DATA_MODEL),windows-64) 408 SUNPKCS11_JAR_DST := $(JDK_OUTPUTDIR)/lib/ext/sunpkcs11.jar 409 410 ifndef OPENJDK 411 412 SUNPKCS11_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/pkcs11/sunpkcs11.jar 413 414 $(SUNPKCS11_JAR_DST) : $(SUNPKCS11_JAR_SRC) 415 @$(ECHO) "\n>>>Installing prebuilt SunPKCS11 provider..." 416 $(RM) $@ 417 $(CP) $< $@ 418 419 else 420 421 $(eval $(call SetupArchive,BUILD_SUNPKCS11_JAR,$(SUNPKCS11_JAR_DEPS),\ 422 SRCS:=$(JDK_OUTPUTDIR)/classes, \ 423 SUFFIXES:=.class,\ 424 INCLUDES:=sun/security/pkcs11,\ 425 JAR:=$(SUNPKCS11_JAR_DST), \ 426 SKIP_METAINF := true)) 427 428 endif 429 430 JARS += $(SUNPKCS11_JAR_DST) 431 endif 432 433 ########################################################################################## 434 435 SUNEC_JAR_DST := $(JDK_OUTPUTDIR)/lib/ext/sunec.jar 436 437 ifndef OPENJDK 438 439 SUNEC_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/ec/sunec.jar 440 441 $(SUNEC_JAR_DST) : $(SUNEC_JAR_SRC) 442 @$(ECHO) "\n>>>Installing prebuilt SunEC provider..." 443 $(RM) $@ 444 $(CP) $< $@ 445 446 else 447 448 $(eval $(call SetupArchive,BUILD_SUNEC_JAR,,\ 449 SRCS:=$(JDK_OUTPUTDIR)/classes, \ 450 SUFFIXES:=.class,\ 451 INCLUDES:=sun/security/ec,\ 452 EXCLUDE_FILES := sun/security/ec/ECKeyFactory.class \ 453 sun/security/ec/ECParameters.class \ 454 sun/security/ec/ECPrivateKeyImpl.class \ 455 sun/security/ec/ECPublicKeyImpl.class \ 456 sun/security/ec/NamedCurve.class \ 457 sun/security/ec/ECKeyFactory*,\ 458 JAR:=$(SUNEC_JAR_DST), \ 459 SKIP_METAINF := true)) 460 461 endif 462 463 JARS += $(SUNEC_JAR_DST) 464 465 ########################################################################################## 466 467 $(eval $(call SetupArchive,BUILD_SWINGBEANS_JAR,,\ 468 SRCS:=$(JDK_OUTPUTDIR)/classes,\ 469 SUFFIXES:=BeanInfo.class .gif,\ 470 INCLUDES:=javax/swing sun/swing,\ 471 EXCLUDES:=javax/swing/plaf,\ 472 EXTRA_FILES:=javax/swing/SwingBeanInfoBase.class sun/swing/BeanInfoUtils.class,\ 473 JAR:=$(JDK_OUTPUTDIR)/lib/dt.jar,\ 474 SKIP_METAINF:=true)) 475 476 JARS+=$(JDK_OUTPUTDIR)/lib/dt.jar 477 478 ########################################################################################## 479 480 SUNJCE_PROVIDER_JAR_DST := $(JDK_OUTPUTDIR)/lib/ext/sunjce_provider.jar 481 482 ifndef OPENJDK 483 SUNJCE_PROVIDER_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/jce/sunjce_provider.jar 484 485 $(SUNJCE_PROVIDER_JAR_DST) : $(SUNJCE_PROVIDER_JAR_SRC) 486 @$(ECHO) "\n>>>Installing prebuilt SunJCE provider..." 487 $(RM) $@ 488 $(CP) $< $@ 489 else 490 491 $(eval $(call SetupArchive,BUILD_SUNJCE_PROVIDER_JAR,$(SUNJCE_PROVIDER_JAR_DEPS),\ 492 SRCS:=$(JDK_OUTPUTDIR)/classes, \ 493 SUFFIXES:=.class,\ 494 INCLUDES:= com/sun/crypto/provider,\ 495 JAR:=$(SUNJCE_PROVIDER_JAR_DST), \ 496 MANIFEST := $(JDK_TOPDIR)/make/tools/manifest.mf, \ 497 EXTRA_MANIFEST_ATTR := Extension-Name: javax.crypto\nImplementation-Vendor-Id: com.sun, \ 498 SKIP_METAINF := true)) 499 endif 500 501 JARS += $(SUNJCE_PROVIDER_JAR_DST) 502 503 JCE_JAR_DST := $(JDK_OUTPUTDIR)/lib/jce.jar 504 505 ifndef OPENJDK 506 507 JCE_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/jce/jce.jar 508 509 $(JCE_JAR_DST) : $(JCE_JAR_SRC) 510 @$(ECHO) "\n>>>Installing prebuilt jce.jar..." 511 $(RM) $@ 512 $(CP) $< $@ 513 514 else 515 516 $(eval $(call SetupArchive,BUILD_JCE_JAR,$(JCE_JAR_DEPS),\ 517 SRCS:=$(JDK_OUTPUTDIR)/classes, \ 518 SUFFIXES:=.class,\ 519 INCLUDES:= javax/crypto sun/security/internal,\ 520 JAR:=$(JCE_JAR_DST), \ 521 MANIFEST := $(JDK_TOPDIR)/make/tools/manifest.mf, \ 522 EXTRA_MANIFEST_ATTR := Extension-Name: javax.crypto\nImplementation-Vendor-Id: com.sun, \ 523 SKIP_METAINF := true)) 524 endif 525 526 JARS += $(JCE_JAR_DST) 527 528 ########################################################################################## 529 530 ifdef OPENJDK 531 532 # 533 # TODO fix so that SetupArchive does not write files into SRCS 534 # then we don't need this extra copying 535 # 536 US_EXPORT_POLICY_JAR_DST := $(JDK_OUTPUTDIR)/lib/security/US_export_policy.jar 537 US_EXPORT_POLICY_JAR_SRC_DIR := $(JDK_TOPDIR)/make/javax/crypto/policy/unlimited 538 US_EXPORT_POLICY_JAR_TMP := $(JDK_OUTPUTDIR)/US_export_policy_jar.tmp 539 540 $(US_EXPORT_POLICY_JAR_TMP)/% : $(US_EXPORT_POLICY_JAR_SRC_DIR)/% 541 $(MKDIR) -p $(@D) 542 $(CP) $< $@ 543 544 US_EXPORT_POLICY_JAR_DEPS := $(US_EXPORT_POLICY_JAR_TMP)/default_US_export.policy 545 546 $(eval $(call SetupArchive,BUILD_US_EXPORT_POLICY_JAR,$(US_EXPORT_POLICY_JAR_DEPS),\ 547 SRCS:=$(US_EXPORT_POLICY_JAR_TMP), \ 548 SUFFIXES:= .policy,\ 549 JAR:=$(US_EXPORT_POLICY_JAR_DST), \ 550 EXTRA_MANIFEST_ATTR := Crypto-Strength: unlimited, \ 551 SKIP_METAINF := true)) 552 553 JARS += $(US_EXPORT_POLICY_JAR_DST) 554 555 endif 556 557 ########################################################################################## 558 559 560 ifdef OPENJDK 561 562 # 563 # TODO fix so that SetupArchive does not write files into SRCS 564 # then we don't need this extra copying 565 # 566 LOCAL_POLICY_JAR_DST := $(JDK_OUTPUTDIR)/lib/security/local_policy.jar 567 LOCAL_POLICY_JAR_SRC_DIR := $(JDK_TOPDIR)/make/javax/crypto/policy/limited 568 LOCAL_POLICY_JAR_TMP := $(JDK_OUTPUTDIR)/local_policy_jar.tmp 569 570 LOCAL_POLICY_JAR_DEPS := $(LOCAL_POLICY_JAR_TMP)/exempt_local.policy $(LOCAL_POLICY_JAR_TMP)/default_local.policy 571 572 $(LOCAL_POLICY_JAR_TMP)/% : $(LOCAL_POLICY_JAR_SRC_DIR)/% 573 $(MKDIR) -p $(@D) 574 $(CP) $< $@ 575 576 $(eval $(call SetupArchive,BUILD_LOCAL_POLICY_JAR,$(LOCAL_POLICY_JAR_DEPS),\ 577 SRCS:=$(LOCAL_POLICY_JAR_TMP),\ 578 SUFFIXES:= .policy,\ 579 JAR:=$(LOCAL_POLICY_JAR_DST), \ 580 EXTRA_MANIFEST_ATTR := Crypto-Strength: limited, \ 581 SKIP_METAINF := true)) 582 583 JARS += $(LOCAL_POLICY_JAR_DST) 584 585 endif 586 587 ########################################################################################## 588 589 ifeq ($(OPENJDK_TARGET_OS),windows) 590 591 SUNMSCAPI_JAR_DST := $(JDK_OUTPUTDIR)/lib/ext/sunmscapi.jar 592 593 ifndef OPENJDK 594 SUNMSCAPI_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/mscapi/sunmscapi.jar 595 596 $(SUNMSCAPI_JAR_DST) : $(SUNMSCAPI_JAR_SRC) 597 @$(ECHO) "\n>>>Installing prebuilt SunMSCAPI provider..." 598 $(RM) $@ 599 $(CP) $< $@ 600 601 else 602 603 $(eval $(call SetupArchive,BUILD_SUNMSCAPI_JAR,$(SUNMSCAPI_JAR_DEPS),\ 604 SRCS:=$(JDK_OUTPUTDIR)/classes, \ 605 SUFFIXES:=.class,\ 606 INCLUDES:= sun/security/mscapi,\ 607 JAR:=$(SUNMSCAPI_JAR_DST), \ 608 MANIFEST := $(JDK_TOPDIR)/make/tools/manifest.mf, \ 609 EXTRA_MANIFEST_ATTR := Extension-Name: javax.crypto\nImplementation-Vendor-Id: com.sun, \ 610 SKIP_METAINF := true)) 611 endif 612 613 JARS += $(SUNMSCAPI_JAR_DST) 614 615 endif 616 617 ########################################################################################## 618 619 ifeq ($(OPENJDK_TARGET_OS),solaris) 620 ifndef OPENJDK 621 622 UCRYPTO_JAR_DST := $(JDK_OUTPUTDIR)/lib/ext/ucrypto.jar 623 UCRYPTO_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/ucrypto/ucrypto.jar 624 625 $(UCRYPTO_JAR_DST) : $(UCRYPTO_JAR_SRC) 626 @$(ECHO) "\n>>>Installing prebuilt OracleUcrypto provider..." 627 $(RM) $@ 628 $(CP) $< $@ 629 630 JARS += $(UCRYPTO_JAR_DST) 631 632 endif 633 endif 634 635 ########################################################################################## 636 637 TOOLS_JAR_INCLUDES := \ 638 sun/tools/asm \ 639 sun/tools/jar \ 640 sun/tools/java \ 641 sun/tools/javac \ 642 sun/tools/jcmd \ 643 sun/tools/jps \ 644 sun/tools/jstat \ 645 sun/tools/jstatd \ 646 sun/tools/native2ascii \ 647 sun/tools/serialver \ 648 sun/tools/tree \ 649 sun/tools/util \ 650 sun/security/tools/JarBASE64Encoder.class \ 651 sun/security/tools/JarSigner.class \ 652 sun/security/tools/JarSignerParameters.class \ 653 sun/security/tools/JarSignerResources.class \ 654 sun/security/tools/JarSignerResources_ja.class \ 655 sun/security/tools/JarSignerResources_zh_CN.class \ 656 sun/security/tools/SignatureFile* \ 657 sun/security/tools/TimestampedSigner.class \ 658 sun/rmi/rmic \ 659 sun/applet \ 660 sun/jvmstat \ 661 com/sun/javadoc \ 662 com/sun/jdi \ 663 com/sun/jarsigner \ 664 com/sun/source \ 665 com/sun/tools/classfile \ 666 com/sun/tools/doclets \ 667 com/sun/tools/example/debug/expr \ 668 com/sun/tools/example/debug/tty \ 669 com/sun/tools/extcheck \ 670 com/sun/tools/hat \ 671 com/sun/tools/javac \ 672 com/sun/tools/javadoc \ 673 com/sun/tools/javah \ 674 com/sun/tools/javap \ 675 com/sun/tools/corba \ 676 com/sun/tools/internal/xjc \ 677 com/sun/tools/internal/ws \ 678 com/sun/istack/internal/tools \ 679 com/sun/tools/internal/jxc/ap \ 680 com/sun/tools/internal/ws/wscompile/plugin/at_generated \ 681 com/sun/codemodel \ 682 com/sun/tools/internal/jxc \ 683 com/sun/xml/internal/rngom \ 684 com/sun/xml/internal/xsom \ 685 org/relaxng/datatype \ 686 com/sun/xml/internal/dtdparser \ 687 com/sun/tools/jdi \ 688 com/sun/tools/script/shell \ 689 com/sun/tools/attach \ 690 sun/tools/attach \ 691 sun/tools/jstack \ 692 sun/tools/jinfo \ 693 sun/tools/jmap 694 695 $(eval $(call SetupArchive,BUILD_TOOLS_JAR,$(TOOLS_JAR_DEPS),\ 696 SRCS:=$(JDK_OUTPUTDIR)/classes,\ 697 SUFFIXES:=.class .prp .gif .properties .xml .css .xsd .js .html .txt .java \ 698 Tool aliasmap options,\ 699 INCLUDES:=$(TOOLS_JAR_INCLUDES),\ 700 EXTRA_FILES:=META-INF/services/com.sun.jdi.connect.Connector \ 701 META-INF/services/com.sun.jdi.connect.spi.TransportService \ 702 META-INF/services/com.sun.tools.attach.spi.AttachProvider \ 703 META-INF/services/com.sun.tools.internal.ws.wscompile.Plugin \ 704 META-INF/services/com.sun.tools.internal.xjc.Plugin,\ 705 JAR:=$(JDK_OUTPUTDIR)/lib/tools.jar,\ 706 SKIP_METAINF:=true, \ 707 CHECK_COMPRESS_JAR:=true)) 708 709 JARS+=$(JDK_OUTPUTDIR)/lib/tools.jar 710 711 ########################################################################################## 712 713 include $(JDK_TOPDIR)/makefiles/docs/CORE_PKGS.gmk 714 include $(JDK_TOPDIR)/makefiles/docs/NON_CORE_PKGS.gmk 715 716 # The compiler should not issue a "Proprietary" warning when compiling 717 # classes in the com.sun.java.swing.plaf packages, since we've always 718 # allowed, and even advocated, extending them (see bug 6476749). 719 # 720 # This approach is NOT to be used as a general purpose way to avoid such 721 # compiler warnings for non-core packages. The correct way is to document 722 # the packages in NON_CORE_PKGS.gmk, and include them in the NON_CORE_PKGS 723 # definition. 724 # 725 # Swing has taken this approach only as a temporary measure to avoid 726 # the compiler warnings until we can properly document these packages. 727 # This is covered under 6491853. 728 EXCLUDE_PROPWARN_PKGS = com.sun.java.swing.plaf.windows \ 729 com.sun.java.swing.plaf.motif \ 730 com.sun.java.swing.plaf.gtk 731 732 # 733 # Include the exported private packages in ct.sym. 734 # This is an interim solution until the ct.sym is replaced 735 # with a new module system (being discussed for JDK 8). 736 # 737 EXPORTED_PRIVATE_PKGS = com.sun.servicetag \ 738 com.oracle.net \ 739 com.oracle.nio 740 741 $(IMAGES_OUTPUTDIR)/symbols/_the.symbols: $(JDK_OUTPUTDIR)/lib/rt.jar 742 $(RM) -rf $(IMAGES_OUTPUTDIR)/symbols/META-INF/sym 743 $(MKDIR) -p $(IMAGES_OUTPUTDIR)/symbols/META-INF/sym 744 $(JAVA) \ 745 -Xbootclasspath/a:$(JDK_OUTPUTDIR)/classes \ 746 $(JAVAC_JARS) \ 747 -XDprocess.packages -proc:only \ 748 -processor com.sun.tools.javac.sym.CreateSymbols \ 749 -Acom.sun.tools.javac.sym.Jar=$(JDK_OUTPUTDIR)/lib/rt.jar \ 750 -Acom.sun.tools.javac.sym.Dest=$(IMAGES_OUTPUTDIR)/symbols/META-INF/sym/rt.jar \ 751 $(CORE_PKGS) $(NON_CORE_PKGS) $(EXCLUDE_PROPWARN_PKGS) $(EXPORTED_PRIVATE_PKGS) 752 $(TOUCH) $@ 753 754 MAKE_SURE_DIR_EXISTS_DUMMY := $(shell $(MKDIR) -p $(IMAGES_OUTPUTDIR)/symbols) 755 $(eval $(call SetupArchive,BUILD_CT_SYM,$(IMAGES_OUTPUTDIR)/symbols/_the.symbols,\ 756 SRCS:=$(IMAGES_OUTPUTDIR)/symbols,\ 757 INCLUDES:=META-INF/sym,\ 758 JAR:=$(JDK_OUTPUTDIR)/lib/ct.sym, \ 759 CHECK_COMPRESS_JAR:=true)) 760 761 JARS+=$(JDK_OUTPUTDIR)/lib/ct.sym 762 763 ########################################################################################## 764 765 SRC_ZIP_INCLUDES = \ 766 java/applet \ 767 java/awt \ 768 java/beans \ 769 java/io \ 770 java/lang \ 771 java/math \ 772 java/net \ 773 java/nio \ 774 java/rmi \ 775 java/security \ 776 java/sql \ 777 java/text \ 778 java/util \ 779 com/sun/corba \ 780 com/sun/image/codec/jpeg \ 781 com/sun/imageio \ 782 com/sun/java/swing \ 783 com/sun/javadoc \ 784 com/sun/jmx \ 785 com/sun/source \ 786 com/sun/naming \ 787 com/sun/security/auth \ 788 com/sun/security/jgss \ 789 javax/accessibility \ 790 javax/annotation \ 791 javax/script \ 792 javax/imageio \ 793 javax/lang \ 794 javax/management \ 795 javax/naming \ 796 javax/print \ 797 javax/rmi \ 798 javax/security \ 799 javax/sound \ 800 javax/sql \ 801 javax/swing \ 802 javax/tools \ 803 javax/xml \ 804 com/sun/org/apache \ 805 com/sun/java_cup \ 806 com/sun/jlex \ 807 org/ietf \ 808 org/omg \ 809 org/w3c/dom \ 810 org/xml/sax \ 811 sunw 812 813 SRC_ZIP_SRCS = $(JDK_TOPDIR)/src/share/classes $(JDK_TOPDIR)/src/$(LEGACY_OPENJDK_TARGET_OS_API)/classes 814 SRC_ZIP_SRCS += $(JDK_OUTPUTDIR)/gensrc 815 SRC_ZIP_SRCS += $(JDK_OUTPUTDIR)/impsrc 816 SRC_ZIP_SRCS += $(JDK_OUTPUTDIR)/gendocsrc_rmic 817 ifndef OPENJDK 818 SRC_ZIP_SRCS += $(JDK_TOPDIR)/src/closed/share/classes 819 endif 820 821 # Need to copy launcher src files into desired directory structure 822 # before zipping the sources. 823 LAUNCHER_SRC_FILES := $(wildcard $(JDK_TOPDIR)/src/share/bin/*) \ 824 $(wildcard $(JDK_TOPDIR)/src/$(LEGACY_OPENJDK_TARGET_OS_API)/bin/java_md*) 825 LAUNCHER_ZIP_SRC := $(patsubst $(JDK_TOPDIR)/src/share/bin/%,$(IMAGES_OUTPUTDIR)/src/launcher/%,\ 826 $(patsubst $(JDK_TOPDIR)/src/$(LEGACY_OPENJDK_TARGET_OS_API)/bin/%,$(IMAGES_OUTPUTDIR)/src/launcher/%,\ 827 $(LAUNCHER_SRC_FILES))) 828 829 $(IMAGES_OUTPUTDIR)/src/launcher/%: $(JDK_TOPDIR)/src/share/bin/% 830 $(MKDIR) -p $(@D) 831 $(CP) $< $@ 832 833 $(IMAGES_OUTPUTDIR)/src/launcher/%: $(JDK_TOPDIR)/src/$(LEGACY_OPENJDK_TARGET_OS_API)/bin/% 834 $(MKDIR) -p $(@D) 835 $(CP) $< $@ 836 837 $(IMAGES_OUTPUTDIR)/src.zip: $(LAUNCHER_ZIP_SRC) 838 839 # This dir needs to exsist before macro is evaluated to avoid warning from find. 840 MAKE_SURE_DIR_EXISTS_DUMMY := $(shell $(MKDIR) -p $(IMAGES_OUTPUTDIR)/src) 841 $(eval $(call SetupZipArchive,BUILD_SRC_ZIP,\ 842 SRC:=$(SRC_ZIP_SRCS) $(IMAGES_OUTPUTDIR)/src,\ 843 INCLUDES:=$(SRC_ZIP_INCLUDES) launcher,\ 844 SUFFIXES:=.java .c .h,\ 845 ZIP:=$(IMAGES_OUTPUTDIR)/src.zip,\ 846 EXTRA_DEPS:=$(LAUNCHER_ZIP_SRC))) 847 848 JARS+=$(IMAGES_OUTPUTDIR)/src.zip 849 850 ########################################################################################## 851 852 all: $(JARS) 853 854 .PHONY: default all