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 \ 93 sun/text/resources/en/FormatData_en_PH.class \ 94 sun/text/resources/en/FormatData_en_SG.class \ 95 sun/text/resources/en/FormatData_en_ZA.class \ 96 sun/util/resources/en/CalendarData_en_GB.class \ 97 sun/util/resources/en/CalendarData_en_IE.class \ 98 sun/util/resources/en/CalendarData_en_MT.class \ 99 sun/util/resources/en/CurrencyNames_en_AU.class \ 100 sun/util/resources/en/CurrencyNames_en_CA.class \ 101 sun/util/resources/en/CurrencyNames_en_GB.class \ 102 sun/util/resources/en/CurrencyNames_en_IE.class \ 103 sun/util/resources/en/CurrencyNames_en_IN.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/java/accessibility \ 144 com/sun/javadoc \ 145 com/sun/jdi \ 146 com/sun/net/ssl/internal/ssl \ 147 com/sun/source \ 148 com/sun/tools \ 149 com/sun/xml/internal/dtdparser \ 150 com/sun/xml/internal/rngom \ 151 com/sun/xml/internal/xsom \ 152 javax/crypto \ 153 javax/swing/AbstractButtonBeanInfo.class \ 154 javax/swing/beaninfo \ 155 javax/swing/BoxBeanInfo.class \ 156 javax/swing/JAppletBeanInfo.class \ 157 javax/swing/JButtonBeanInfo.class \ 158 javax/swing/JCheckBoxBeanInfo.class \ 159 javax/swing/JCheckBoxMenuItemBeanInfo.class \ 160 javax/swing/JColorChooserBeanInfo.class \ 161 javax/swing/JComboBoxBeanInfo.class \ 162 javax/swing/JComponentBeanInfo.class \ 163 javax/swing/JDesktopPaneBeanInfo.class \ 164 javax/swing/JDialogBeanInfo.class \ 165 javax/swing/JEditorPaneBeanInfo.class \ 166 javax/swing/JFileChooserBeanInfo.class \ 167 javax/swing/JFormattedTextFieldBeanInfo.class \ 168 javax/swing/JFrameBeanInfo.class \ 169 javax/swing/JInternalFrameBeanInfo.class \ 170 javax/swing/JLabelBeanInfo.class \ 171 javax/swing/JLayeredPaneBeanInfo.class \ 172 javax/swing/JListBeanInfo.class \ 173 javax/swing/JMenuBarBeanInfo.class \ 174 javax/swing/JMenuBeanInfo.class \ 175 javax/swing/JMenuItemBeanInfo.class \ 176 javax/swing/JOptionPaneBeanInfo.class \ 177 javax/swing/JPanelBeanInfo.class \ 178 javax/swing/JPasswordFieldBeanInfo.class \ 179 javax/swing/JPopupMenuBeanInfo.class \ 180 javax/swing/JProgressBarBeanInfo.class \ 181 javax/swing/JRadioButtonBeanInfo.class \ 182 javax/swing/JRadioButtonMenuItemBeanInfo.class \ 183 javax/swing/JScrollBarBeanInfo.class \ 184 javax/swing/JScrollPaneBeanInfo.class \ 185 javax/swing/JSeparatorBeanInfo.class \ 186 javax/swing/JSliderBeanInfo.class \ 187 javax/swing/JSpinnerBeanInfo.class \ 188 javax/swing/JSplitPaneBeanInfo.class \ 189 javax/swing/JTabbedPaneBeanInfo.class \ 190 javax/swing/JTableBeanInfo.class \ 191 javax/swing/JTextAreaBeanInfo.class \ 192 javax/swing/JTextFieldBeanInfo.class \ 193 javax/swing/JTextPaneBeanInfo.class \ 194 javax/swing/JToggleButtonBeanInfo.class \ 195 javax/swing/JToolBarBeanInfo.class \ 196 javax/swing/JTreeBeanInfo.class \ 197 javax/swing/JWindowBeanInfo.class \ 198 javax/swing/SwingBeanInfoBase.class \ 199 javax/swing/text/JTextComponentBeanInfo.class \ 200 META-INF/services/com.sun.jdi.connect.Connector \ 201 META-INF/services/com.sun.jdi.connect.spi.TransportService \ 202 META-INF/services/com.sun.tools.attach.spi.AttachProvider \ 203 META-INF/services/com.sun.tools.xjc.Plugin \ 204 META-INF/services/java.nio.charset.spi.CharsetProvider \ 205 META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor \ 206 org/relaxng/datatype \ 207 sun/awt/HKSCS.class \ 208 sun/awt/motif/X11GB2312.class \ 209 sun/awt/motif/X11GB2312\$$$$Decoder.class \ 210 sun/awt/motif/X11GB2312\$$$$Encoder.class \ 211 sun/awt/motif/X11GBK.class \ 212 sun/awt/motif/X11GBK\$$$$Encoder.class \ 213 sun/awt/motif/X11KSC5601.class \ 214 sun/awt/motif/X11KSC5601\$$$$Decoder.class \ 215 sun/awt/motif/X11KSC5601\$$$$Encoder.class \ 216 sun/jvmstat \ 217 sun/net/spi/nameservice/dns \ 218 sun/nio/cs/ext \ 219 sun/rmi/rmic \ 220 sun/security/ec/ECDHKeyAgreement.class \ 221 sun/security/ec/ECDSASignature.class \ 222 sun/security/ec/ECDSASignature\$$$$Raw.class \ 223 sun/security/ec/ECDSASignature\$$$$SHA1.class \ 224 sun/security/ec/ECDSASignature\$$$$SHA224.class \ 225 sun/security/ec/ECDSASignature\$$$$SHA256.class \ 226 sun/security/ec/ECDSASignature\$$$$SHA384.class \ 227 sun/security/ec/ECDSASignature\$$$$SHA512.class \ 228 sun/security/ec/ECKeyFactory.class \ 229 sun/security/ec/ECKeyPairGenerator.class \ 230 sun/security/ec/SunEC\$$$$1.class \ 231 sun/security/ec/SunEC.class \ 232 sun/security/ec/SunECEntries.class \ 233 sun/security/internal \ 234 sun/security/mscapi \ 235 sun/security/pkcs11 \ 236 sun/security/provider/Sun.class \ 237 sun/security/rsa/SunRsaSign.class \ 238 sun/security/ssl \ 239 sun/security/tools/jarsigner \ 240 sun/swing/BeanInfoUtils.class \ 241 sun/text/resources/cldr \ 242 sun/tools/asm \ 243 sun/tools/attach \ 244 sun/tools/java \ 245 sun/tools/javac \ 246 sun/tools/jcmd \ 247 sun/tools/jconsole \ 248 sun/tools/jinfo \ 249 sun/tools/jmap \ 250 sun/tools/jps \ 251 sun/tools/jstack \ 252 sun/tools/jstat \ 253 sun/tools/jstatd \ 254 sun/tools/native2ascii \ 255 sun/tools/serialver \ 256 sun/tools/tree \ 257 sun/tools/util \ 258 sun/util/cldr/CLDRLocaleDataMetaInfo.class \ 259 sun/util/resources/cldr \ 260 $(LOCALEDATA_INCLUDES) \ 261 com/oracle/jrockit/jfr \ 262 oracle/jrockit/jfr 263 264 ifeq ($(OPENJDK_TARGET_OS), macosx) 265 RT_JAR_EXCLUDES += com/sun/nio/sctp \ 266 sun/nio/ch/sctp 267 endif 268 269 # Find all files in the classes dir to use as dependencies. This could be more fine granular. 270 ALL_FILES_IN_CLASSES := $(call not-containing,_the.,$(filter-out %javac_state,\ 271 $(call CacheFind,$(JDK_OUTPUTDIR)/classes))) 272 273 RT_JAR_MANIFEST_FILE := $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar_manifest 274 RESOURCE_JAR_MANIFEST_FILE := $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar_manifest 275 276 $(RT_JAR_MANIFEST_FILE): $(MAINMANIFEST) $(BEANMANIFEST) 277 $(MKDIR) -p $(@D) 278 $(RM) $@ $@.tmp 279 $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \ 280 -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \ 281 $(MAINMANIFEST) >> $@.tmp 282 $(ECHO) >> $@.tmp 283 $(CAT) $(BEANMANIFEST) >> $@.tmp 284 $(MV) $@.tmp $@ 285 286 $(RESOURCE_JAR_MANIFEST_FILE): $(MAINMANIFEST) 287 $(MKDIR) -p $(@D) 288 $(RM) $@ $@.tmp 289 $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \ 290 -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \ 291 $(MAINMANIFEST) >> $@.tmp 292 $(MV) $@.tmp $@ 293 294 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.exclude: $(MAKEFILE) $(PROFILE_MAKEFILES) 295 $(MKDIR) -p $(@D) 296 $(RM) $@ $@.tmp 297 $(call ListPathsSafely,RT_JAR_EXCLUDES,\n, >> $@.tmp) 298 $(MV) $@.tmp $@ 299 300 $(IMAGES_OUTPUTDIR)/lib/classlist : $(JDK_TOPDIR)/make/tools/sharing/classlist.$(OPENJDK_TARGET_OS) \ 301 $(MAKEFILE) 302 $(MKDIR) -p $(@D) 303 $(RM) $@ $@.tmp 304 $(TOOL_ADDJSUM) $< $@.tmp 305 $(MV) $@.tmp $@ 306 307 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents: $(BUILD_TOOLS) $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.exclude \ 308 $(ALL_FILES_IN_CLASSES) $(IMAGES_OUTPUTDIR)/lib/classlist 309 $(MKDIR) -p $(@D) 310 $(RM) $@ $@.tmp 311 ($(CD) $(JDK_OUTPUTDIR)/classes && \ 312 $(TOOL_JARREORDER) \ 313 -o $@.tmp $(IMAGES_OUTPUTDIR)/lib/classlist $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.exclude . ) 314 $(MV) $@.tmp $@ 315 316 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar.contents: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents 317 $(MKDIR) -p $(@D) 318 $(RM) $@ $@.tmp 319 $(GREP) -e '\.class$$' $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents > $@.tmp 320 ifneq ($(PROFILE),) 321 # # Add back classes from excluded packages (fixing the $ substitution in the process) 322 for type in $(subst \$$,\, $(RT_JAR_INCLUDE_TYPES)) ; do \ 323 $(ECHO) $$type >> $@.tmp ; \ 324 done 325 endif 326 $(MV) $@.tmp $@ 327 328 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents 329 $(MKDIR) -p $(@D) 330 $(RM) $@ $@.tmp 331 $(GREP) -v -e '\.class$$' \ 332 -e '/_the\.*' -e '^_the\.*' -e '\\_the\.*' -e 'javac_state' \ 333 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents > $@.tmp 334 ifneq ($(PROFILE),) 335 # # Strip out all META-INF/services/ entries 336 $(GREP) -v -e 'META-INF/services/' $@.tmp > $@.tmp2 337 # # Add back the required services 338 # # FIXME: On Solaris if PROFILE_INCLUDE_METAINF_SERVICES is not defined 339 # # we get a syntax error from sh. That doesn't happen on linux 340 for service in $(PROFILE_INCLUDE_METAINF_SERVICES) ; do \ 341 $(ECHO) $$service >> $@.tmp2; \ 342 done 343 $(MV) $@.tmp2 $@.tmp 344 endif 345 $(MV) $@.tmp $@ 346 347 # This is a hack but I don't know how to make this fit into the existing scheme 348 $(PROFILE_VERSION_CLASS_TARGETS) : $(PROFILE_VERSION_JAVA_TARGETS) 349 @$(JAVAC) -d $(@D)/../../ $(@D)/$(VERSION_JAVA_FILE) 350 351 352 # Support for removing the addPropertyChangeListener and removePropertyChangeListener 353 # methods from classes that only go into the profile builds. 354 BEANLESS_CLASSES = $(IMAGES_OUTPUTDIR)/beanless 355 356 # When there are $ characters in filenames we have some very subtle interactions between 357 # make expansion and shell expansion. In this particular case $< will contain a single $ while 358 # $@ will contain \$. So we have to pass $< in single-quotes to avoid shell expansion 359 $(BEANLESS_CLASSES)/%: $(JDK_OUTPUTDIR)/classes/% 360 $(MKDIR) -p $(@D) 361 $(TOOL_REMOVEMETHODS) '$<' $@ addPropertyChangeListener removePropertyChangeListener 362 363 CLASSES_TO_DEBEAN = \ 364 java/util/logging/LogManager.class \ 365 java/util/jar/Pack200\$$Packer.class \ 366 java/util/jar/Pack200\$$Unpacker.class \ 367 com/sun/java/util/jar/pack/PackerImpl.class \ 368 com/sun/java/util/jar/pack/UnpackerImpl.class 369 370 ifneq ($(PROFILE),) 371 BEANLESS_CLASSES_TARGETS := $(addprefix $(BEANLESS_CLASSES)/, $(CLASSES_TO_DEBEAN)) 372 endif 373 374 375 RT_JAR_CREATE_OPTIONS := c0fm 376 RT_JAR_UPDATE_OPTIONS := u0f 377 ifeq ($(COMPRESS_JARS), true) 378 RT_JAR_CREATE_OPTIONS := cfm 379 RT_JAR_UPDATE_OPTIONS := uf 380 endif 381 382 # This defines a target-specific variables to make the shell logic easier to see. 383 # We need to find the Version.class file for the profile currently being built 384 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/rt.jar: \ 385 CLASS_FILE = $(if $(PROFILE),$(strip $(foreach class,$(PROFILE_VERSION_CLASS_TARGETS),$(if $(findstring $(PROFILE),$(class)),$(class)))), NO_SUCH_FILE) 386 # This is the real target 387 $(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) 388 $(ECHO) Creating rt.jar $(PROFILE) Compressed=$(COMPRESS_JARS) 389 $(MKDIR) -p $(@D) 390 $(RM) $@ $@.tmp 391 $(CD) $(JDK_OUTPUTDIR)/classes && \ 392 $(JAR) $(RT_JAR_CREATE_OPTIONS) $@.tmp $(RT_JAR_MANIFEST_FILE) \ 393 @$(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar.contents && \ 394 if [ -f $(CLASS_FILE) ]; then \ 395 $(ECHO) Updating rt.jar $(PROFILE) && \ 396 $(CD) $(patsubst %$(VERSION_CLASS_PATH),%,$(CLASS_FILE)) && \ 397 $(JAR) $(RT_JAR_UPDATE_OPTIONS) $@.tmp $(VERSION_CLASS_PATH); \ 398 $(CD) $(BEANLESS_CLASSES) && \ 399 $(JAR) $(RT_JAR_UPDATE_OPTIONS) $@.tmp $(CLASSES_TO_DEBEAN); \ 400 fi 401 $(MV) $@.tmp $@ 402 403 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/resources.jar: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents \ 404 $(RESOURCE_JAR_MANIFEST_FILE) 405 $(ECHO) Creating resources.jar 406 $(MKDIR) -p $(@D) 407 $(RM) $@ $@.tmp 408 $(CD) $(JDK_OUTPUTDIR)/classes && \ 409 $(JAR) $(RT_JAR_CREATE_OPTIONS) $@.tmp $(RESOURCE_JAR_MANIFEST_FILE) \ 410 @$(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents 411 $(MV) $@.tmp $@ 412 413 ########################################################################################## 414 415 ifneq ($(OPENJDK_TARGET_OS), windows) 416 CHARSETS_EXTRA_FILES:=sun/awt/motif/X11GBK.class \ 417 sun/awt/motif/X11GB2312\$$$$Decoder.class \ 418 sun/awt/motif/X11GB2312.class \ 419 sun/awt/motif/X11KSC5601\$$$$Decoder.class \ 420 sun/awt/motif/X11KSC5601\$$$$Encoder.class \ 421 sun/awt/motif/X11GB2312\$$$$Encoder.class \ 422 sun/awt/motif/X11GBK\$$$$Encoder.class \ 423 sun/awt/motif/X11KSC5601.class 424 endif 425 426 $(eval $(call SetupArchive,BUILD_CHARSETS_JAR,,\ 427 SRCS:=$(JDK_OUTPUTDIR)/classes, \ 428 SUFFIXES:=.class .dat,\ 429 INCLUDES:=sun/nio/cs/ext,\ 430 EXTRA_FILES := sun/awt/HKSCS.class \ 431 $(CHARSETS_EXTRA_FILES) \ 432 META-INF/services/java.nio.charset.spi.CharsetProvider, \ 433 JAR:=$(IMAGES_OUTPUTDIR)/lib/charsets.jar, \ 434 SKIP_METAINF := true, \ 435 CHECK_COMPRESS_JAR:=true)) 436 437 ########################################################################################## 438 439 ifndef OPENJDK 440 ifeq ($(ENABLE_JFR), true) 441 $(eval $(call SetupArchive,BUILD_JFR_JAR,,\ 442 SRCS:=$(JDK_OUTPUTDIR)/classes,\ 443 INCLUDES:=com/oracle/jrockit/jfr \ 444 oracle/jrockit/jfr,\ 445 JAR:=$(IMAGES_OUTPUTDIR)/lib/jfr.jar,\ 446 SKIP_METAINF:=true,\ 447 MANIFEST:=$(MAINMANIFEST), \ 448 CHECK_COMPRESS_JAR:=true)) 449 450 endif 451 endif 452 453 ########################################################################################## 454 455 $(eval $(call SetupArchive,BUILD_JSSE_JAR,,\ 456 SRCS:=$(JDK_OUTPUTDIR)/classes,\ 457 INCLUDES:=sun/security/provider/Sun.class \ 458 sun/security/rsa/SunRsaSign.class \ 459 sun/security/ssl \ 460 com/sun/net/ssl/internal/ssl,\ 461 JAR:=$(IMAGES_OUTPUTDIR)/lib/jsse.jar,\ 462 SKIP_METAINF:=true,\ 463 MANIFEST:=$(MAINMANIFEST), \ 464 CHECK_COMPRESS_JAR:=true)) 465 466 ########################################################################################## 467 # Create manifest for security jars 468 469 # 470 # Include these extra attributes for now, should probably take out. 471 # 472 JCE_MANIFEST := $(IMAGES_OUTPUTDIR)/lib/_the.security.manifest.mf 473 $(JCE_MANIFEST): $(MAINMANIFEST) 474 $(MKDIR) -p $(@D) 475 $(RM) $@ $@.tmp 476 $(SED) -e "s#@@RELEASE@@#$(JDK_VERSION)#" \ 477 -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \ 478 $(MAINMANIFEST) >> $@.tmp 479 $(ECHO) "Extension-Name: javax.crypto" >> $@.tmp 480 $(ECHO) "Implementation-Vendor-Id: com.sun" >> $@.tmp 481 $(MV) $@.tmp $@ 482 483 ########################################################################################## 484 # For all security jars, always build the jar, but for closed, install the prebuilt signed 485 # version instead of the newly built jar. Unsigned jars are treated as intermediate targets 486 # and explicitly added to the JARS list. For open, signing is not needed. See SignJars.gmk 487 # for more information. 488 489 SUNPKCS11_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunpkcs11.jar 490 SUNPKCS11_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/sunpkcs11.jar 491 492 $(eval $(call SetupArchive,BUILD_SUNPKCS11_JAR,,\ 493 SRCS:=$(JDK_OUTPUTDIR)/classes, \ 494 SUFFIXES:=.class,\ 495 INCLUDES:=sun/security/pkcs11,\ 496 JAR:=$(SUNPKCS11_JAR_UNSIGNED), \ 497 MANIFEST:=$(JCE_MANIFEST), \ 498 SKIP_METAINF := true)) 499 500 $(SUNPKCS11_JAR_UNSIGNED): $(JCE_MANIFEST) 501 502 ifndef OPENJDK 503 SUNPKCS11_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/pkcs11/sunpkcs11.jar 504 $(SUNPKCS11_JAR_DST) : $(SUNPKCS11_JAR_SRC) 505 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt SunPKCS11 provider..." 506 $(install-file) 507 else 508 $(SUNPKCS11_JAR_DST) : $(SUNPKCS11_JAR_UNSIGNED) 509 $(install-file) 510 endif 511 512 JARS += $(SUNPKCS11_JAR_UNSIGNED) 513 514 ########################################################################################## 515 516 SUNEC_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunec.jar 517 SUNEC_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/sunec.jar 518 519 $(eval $(call SetupArchive,BUILD_SUNEC_JAR,,\ 520 SRCS:=$(JDK_OUTPUTDIR)/classes, \ 521 SUFFIXES:=.class,\ 522 INCLUDES:=sun/security/ec,\ 523 JAR:=$(SUNEC_JAR_UNSIGNED), \ 524 MANIFEST:=$(JCE_MANIFEST), \ 525 SKIP_METAINF := true)) 526 527 $(SUNEC_JAR_UNSIGNED): $(JCE_MANIFEST) 528 529 ifndef OPENJDK 530 SUNEC_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/ec/sunec.jar 531 $(SUNEC_JAR_DST) : $(SUNEC_JAR_SRC) 532 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt SunEC provider..." 533 $(install-file) 534 else 535 $(SUNEC_JAR_DST) : $(SUNEC_JAR_UNSIGNED) 536 $(install-file) 537 endif 538 539 JARS += $(SUNEC_JAR_UNSIGNED) 540 541 ########################################################################################## 542 543 $(eval $(call SetupArchive,BUILD_SWINGBEANS_JAR,,\ 544 SRCS:=$(JDK_OUTPUTDIR)/classes,\ 545 SUFFIXES:=BeanInfo.class .gif,\ 546 INCLUDES:=javax/swing sun/swing,\ 547 EXCLUDES:=javax/swing/plaf,\ 548 EXTRA_FILES:=javax/swing/SwingBeanInfoBase.class sun/swing/BeanInfoUtils.class,\ 549 JAR:=$(IMAGES_OUTPUTDIR)/lib/dt.jar,\ 550 SKIP_METAINF:=true)) 551 552 ########################################################################################## 553 554 SUNJCE_PROVIDER_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunjce_provider.jar 555 SUNJCE_PROVIDER_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/sunjce_provider.jar 556 557 $(eval $(call SetupArchive,BUILD_SUNJCE_PROVIDER_JAR,,\ 558 SRCS:=$(JDK_OUTPUTDIR)/classes, \ 559 SUFFIXES:=.class,\ 560 INCLUDES:= com/sun/crypto/provider,\ 561 JAR:=$(SUNJCE_PROVIDER_JAR_UNSIGNED), \ 562 MANIFEST:=$(JCE_MANIFEST), \ 563 SKIP_METAINF := true)) 564 565 $(SUNJCE_PROVIDER_JAR_UNSIGNED): $(JCE_MANIFEST) 566 567 ifndef OPENJDK 568 SUNJCE_PROVIDER_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/jce/sunjce_provider.jar 569 $(SUNJCE_PROVIDER_JAR_DST) : $(SUNJCE_PROVIDER_JAR_SRC) 570 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt SunJCE provider..." 571 $(install-file) 572 else 573 $(SUNJCE_PROVIDER_JAR_DST) : $(SUNJCE_PROVIDER_JAR_UNSIGNED) 574 $(install-file) 575 endif 576 577 JARS += $(SUNJCE_PROVIDER_JAR_UNSIGNED) 578 579 ########################################################################################## 580 581 JCE_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/jce.jar 582 JCE_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/jce.jar 583 584 $(eval $(call SetupArchive,BUILD_JCE_JAR,,\ 585 SRCS:=$(JDK_OUTPUTDIR)/classes, \ 586 SUFFIXES:=.class,\ 587 INCLUDES:= javax/crypto sun/security/internal,\ 588 JAR:=$(JCE_JAR_UNSIGNED), \ 589 MANIFEST:=$(JCE_MANIFEST), \ 590 SKIP_METAINF := true)) 591 592 $(JCE_JAR_UNSIGNED): $(JCE_MANIFEST) 593 594 ifndef OPENJDK 595 JCE_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/jce/jce.jar 596 $(JCE_JAR_DST) : $(JCE_JAR_SRC) 597 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt jce.jar..." 598 $(install-file) 599 else 600 $(JCE_JAR_DST) : $(JCE_JAR_UNSIGNED) 601 $(install-file) 602 endif 603 604 JARS += $(JCE_JAR_UNSIGNED) 605 606 ########################################################################################## 607 608 US_EXPORT_POLICY_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/security/US_export_policy.jar 609 US_EXPORT_POLICY_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/US_export_policy.jar 610 611 # 612 # TODO fix so that SetupArchive does not write files into SRCS 613 # then we don't need this extra copying 614 # 615 # NOTE: We currently do not place restrictions on our limited export 616 # policy. This was not a typo. 617 # 618 US_EXPORT_POLICY_JAR_SRC_DIR := $(JDK_TOPDIR)/make/javax/crypto/policy/unlimited 619 US_EXPORT_POLICY_JAR_TMP := $(IMAGES_OUTPUTDIR)/US_export_policy_jar.tmp 620 621 $(US_EXPORT_POLICY_JAR_TMP)/% : $(US_EXPORT_POLICY_JAR_SRC_DIR)/% 622 $(install-file) 623 624 US_EXPORT_POLICY_JAR_DEPS := $(US_EXPORT_POLICY_JAR_TMP)/default_US_export.policy 625 626 $(eval $(call SetupArchive,BUILD_US_EXPORT_POLICY_JAR,$(US_EXPORT_POLICY_JAR_DEPS),\ 627 SRCS:=$(US_EXPORT_POLICY_JAR_TMP), \ 628 SUFFIXES:= .policy,\ 629 JAR:=$(US_EXPORT_POLICY_JAR_UNSIGNED), \ 630 EXTRA_MANIFEST_ATTR := Crypto-Strength: unlimited, \ 631 SKIP_METAINF := true)) 632 633 ifndef OPENJDK 634 $(US_EXPORT_POLICY_JAR_DST): $(JDK_TOPDIR)/make/closed/tools/crypto/jce/US_export_policy.jar 635 $(ECHO) $(LOG_INFO) Copying $(@F) 636 $(install-file) 637 else 638 $(US_EXPORT_POLICY_JAR_DST): $(US_EXPORT_POLICY_JAR_UNSIGNED) 639 $(install-file) 640 endif 641 642 JARS += $(US_EXPORT_POLICY_JAR_UNSIGNED) 643 644 ########################################################################################## 645 646 LOCAL_POLICY_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/security/local_policy.jar 647 LOCAL_POLICY_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/local_policy.jar 648 649 # 650 # TODO fix so that SetupArchive does not write files into SRCS 651 # then we don't need this extra copying 652 # 653 LOCAL_POLICY_JAR_TMP := $(IMAGES_OUTPUTDIR)/local_policy_jar.tmp 654 655 ifeq ($(UNLIMITED_CRYPTO), true) 656 LOCAL_POLICY_JAR_SRC_DIR := $(JDK_TOPDIR)/make/javax/crypto/policy/unlimited 657 LOCAL_POLICY_JAR_DEPS := $(LOCAL_POLICY_JAR_TMP)/default_local.policy 658 LOCAL_POLICY_JAR_ATTR := Crypto-Strength: unlimited 659 else 660 LOCAL_POLICY_JAR_SRC_DIR := $(JDK_TOPDIR)/make/javax/crypto/policy/limited 661 LOCAL_POLICY_JAR_DEPS := $(LOCAL_POLICY_JAR_TMP)/exempt_local.policy \ 662 $(LOCAL_POLICY_JAR_TMP)/default_local.policy 663 LOCAL_POLICY_JAR_ATTR := Crypto-Strength: limited 664 endif 665 666 $(LOCAL_POLICY_JAR_TMP)/% : $(LOCAL_POLICY_JAR_SRC_DIR)/% 667 $(install-file) 668 669 $(eval $(call SetupArchive,BUILD_LOCAL_POLICY_JAR,$(LOCAL_POLICY_JAR_DEPS),\ 670 SRCS:=$(LOCAL_POLICY_JAR_TMP),\ 671 SUFFIXES:= .policy,\ 672 JAR:=$(LOCAL_POLICY_JAR_UNSIGNED), \ 673 EXTRA_MANIFEST_ATTR := $(LOCAL_POLICY_JAR_ATTR), \ 674 SKIP_METAINF := true)) 675 676 ifndef OPENJDK 677 $(LOCAL_POLICY_JAR_DST): $(JDK_TOPDIR)/make/closed/tools/crypto/jce/local_policy.jar 678 $(ECHO) $(LOG_INFO) Copying $(@F) 679 $(install-file) 680 else 681 $(LOCAL_POLICY_JAR_DST): $(LOCAL_POLICY_JAR_UNSIGNED) 682 $(install-file) 683 endif 684 685 JARS += $(LOCAL_POLICY_JAR_UNSIGNED) 686 687 ########################################################################################## 688 689 ifeq ($(OPENJDK_TARGET_OS),windows) 690 691 SUNMSCAPI_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunmscapi.jar 692 SUNMSCAPI_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/sunmscapi.jar 693 694 $(eval $(call SetupArchive,BUILD_SUNMSCAPI_JAR,,\ 695 SRCS:=$(JDK_OUTPUTDIR)/classes, \ 696 SUFFIXES:=.class,\ 697 INCLUDES:= sun/security/mscapi,\ 698 JAR:=$(SUNMSCAPI_JAR_UNSIGNED), \ 699 MANIFEST:=$(JCE_MANIFEST), \ 700 SKIP_METAINF:=true)) 701 702 $(SUNMSCAPI_JAR_UNSIGNED): $(JCE_MANIFEST) 703 704 ifndef OPENJDK 705 SUNMSCAPI_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/mscapi/sunmscapi.jar 706 $(SUNMSCAPI_JAR_DST) : $(SUNMSCAPI_JAR_SRC) 707 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt SunMSCAPI provider..." 708 $(install-file) 709 else 710 $(SUNMSCAPI_JAR_DST) : $(SUNMSCAPI_JAR_UNSIGNED) 711 $(install-file) 712 endif 713 714 JARS += $(SUNMSCAPI_JAR_UNSIGNED) 715 716 endif 717 718 ########################################################################################## 719 720 ifeq ($(OPENJDK_TARGET_OS),solaris) 721 ifndef OPENJDK 722 723 UCRYPTO_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/ucrypto.jar 724 UCRYPTO_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/ucrypto.jar 725 UCRYPTO_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/ucrypto/ucrypto.jar 726 727 $(eval $(call SetupArchive,BUILD_UCRYPTO_JAR,,\ 728 SRCS:=$(JDK_OUTPUTDIR)/classes, \ 729 SUFFIXES:=.class,\ 730 INCLUDES:=com/oracle/security/ucrypto,\ 731 JAR:=$(UCRYPTO_JAR_UNSIGNED), \ 732 MANIFEST:=$(JCE_MANIFEST), \ 733 SKIP_METAINF:=true)) 734 735 $(UCRYPTO_JAR_UNSIGNED): $(JCE_MANIFEST) 736 737 $(UCRYPTO_JAR_DST) : $(UCRYPTO_JAR_SRC) 738 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt OracleUcrypto provider..." 739 $(install-file) 740 741 JARS += $(UCRYPTO_JAR_UNSIGNED) 742 743 endif 744 endif 745 746 ########################################################################################## 747 748 # Get the CLDRVERSION 749 include GensrcCLDR.gmk 750 751 CLDRDATA_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/cldrdata.jar 752 753 $(eval $(call SetupArchive,BUILD_CLDRDATA_JAR,,\ 754 SRCS:=$(JDK_OUTPUTDIR)/classes,\ 755 SUFFIXES:=.class,\ 756 INCLUDES:=sun/text/resources/cldr \ 757 sun/util/cldr \ 758 sun/util/resources/cldr,\ 759 EXCLUDES:=sun/util/cldr/CLDRLocaleProviderAdapter,\ 760 JAR:=$(CLDRDATA_JAR_DST),\ 761 EXTRA_MANIFEST_ATTR:=CLDR-Version: $(CLDRVERSION),\ 762 SKIP_METAINF:=true)) 763 764 ########################################################################################## 765 766 TOOLS_JAR_INCLUDES := \ 767 com/sun/codemodel \ 768 com/sun/istack/internal/tools \ 769 com/sun/jarsigner \ 770 com/sun/javadoc \ 771 com/sun/jdi \ 772 com/sun/source \ 773 com/sun/tools/attach \ 774 com/sun/tools/classfile \ 775 com/sun/tools/corba \ 776 com/sun/tools/doclets \ 777 com/sun/tools/doclint \ 778 com/sun/tools/example/debug/expr \ 779 com/sun/tools/example/debug/tty \ 780 com/sun/tools/extcheck \ 781 com/sun/tools/hat \ 782 com/sun/tools/internal/jxc \ 783 com/sun/tools/internal/jxc/ap \ 784 com/sun/tools/internal/ws \ 785 com/sun/tools/internal/ws/wscompile/plugin/at_generated \ 786 com/sun/tools/internal/xjc \ 787 com/sun/tools/javac \ 788 com/sun/tools/javadoc \ 789 com/sun/tools/javah \ 790 com/sun/tools/javap \ 791 com/sun/tools/jdeps \ 792 com/sun/tools/jdi \ 793 com/sun/tools/script/shell \ 794 com/sun/xml/internal/dtdparser \ 795 com/sun/xml/internal/rngom \ 796 com/sun/xml/internal/xsom \ 797 org/relaxng/datatype \ 798 sun/applet \ 799 sun/jvmstat \ 800 sun/rmi/rmic \ 801 sun/security/tools/jarsigner \ 802 sun/tools/asm \ 803 sun/tools/attach \ 804 sun/tools/jar \ 805 sun/tools/java \ 806 sun/tools/javac \ 807 sun/tools/jcmd \ 808 sun/tools/jinfo \ 809 sun/tools/jmap \ 810 sun/tools/jps \ 811 sun/tools/jstack \ 812 sun/tools/jstat \ 813 sun/tools/jstatd \ 814 sun/tools/native2ascii \ 815 sun/tools/serialver \ 816 sun/tools/tree \ 817 sun/tools/util 818 819 # The sjavac tools is not ready for public consumption. 820 TOOLS_JAR_EXCLUDES=com/sun/tools/sjavac 821 822 $(eval $(call SetupArchive,BUILD_TOOLS_JAR,,\ 823 SRCS:=$(JDK_OUTPUTDIR)/classes,\ 824 SUFFIXES:=.class .prp .gif .properties .xml .css .xsd .js .html .txt .java \ 825 Tool aliasmap options,\ 826 INCLUDES:=$(TOOLS_JAR_INCLUDES),\ 827 EXCLUDES:=$(TOOLS_JAR_EXCLUDES),\ 828 EXTRA_FILES:=META-INF/services/com.sun.jdi.connect.Connector \ 829 META-INF/services/com.sun.jdi.connect.spi.TransportService \ 830 META-INF/services/com.sun.tools.attach.spi.AttachProvider \ 831 META-INF/services/com.sun.tools.internal.ws.wscompile.Plugin \ 832 META-INF/services/com.sun.tools.internal.xjc.Plugin,\ 833 JAR:=$(IMAGES_OUTPUTDIR)/lib/tools.jar,\ 834 SKIP_METAINF:=true, \ 835 CHECK_COMPRESS_JAR:=true)) 836 837 838 ########################################################################################## 839 840 include javadoc/CORE_PKGS.gmk 841 include javadoc/NON_CORE_PKGS.gmk 842 843 # The compiler should not issue a "Proprietary" warning when compiling 844 # classes in the com.sun.java.swing.plaf packages, since we've always 845 # allowed, and even advocated, extending them (see bug 6476749). 846 # 847 # This approach is NOT to be used as a general purpose way to avoid such 848 # compiler warnings for non-core packages. The correct way is to document 849 # the packages in NON_CORE_PKGS.gmk, and include them in the NON_CORE_PKGS 850 # definition. 851 # 852 # Swing has taken this approach only as a temporary measure to avoid 853 # the compiler warnings until we can properly document these packages. 854 # This is covered under 6491853. 855 EXCLUDE_PROPWARN_PKGS = com.sun.java.swing.plaf.windows \ 856 com.sun.java.swing.plaf.motif \ 857 com.sun.java.swing.plaf.gtk 858 859 # 860 # Include the exported private packages in ct.sym. 861 # This is an interim solution until the ct.sym is replaced 862 # with a new module system (being discussed for JDK 8). 863 # 864 EXPORTED_PRIVATE_PKGS = com.oracle.net \ 865 com.oracle.nio 866 867 $(IMAGES_OUTPUTDIR)/symbols/_the.symbols: $(IMAGES_OUTPUTDIR)/lib/rt.jar 868 $(RM) -r $(IMAGES_OUTPUTDIR)/symbols/META-INF/sym 869 $(MKDIR) -p $(IMAGES_OUTPUTDIR)/symbols/META-INF/sym 870 $(JAVA) $(NEW_JAVAC) \ 871 -bootclasspath $(JDK_OUTPUTDIR)/classes \ 872 -XDprocess.packages -proc:only \ 873 -processor com.sun.tools.javac.sym.CreateSymbols \ 874 -Acom.sun.tools.javac.sym.Jar=$(IMAGES_OUTPUTDIR)/lib/rt.jar \ 875 -Acom.sun.tools.javac.sym.Dest=$(IMAGES_OUTPUTDIR)/symbols/META-INF/sym/rt.jar \ 876 -Acom.sun.tools.javac.sym.Profiles=profile-rtjar-includes.txt \ 877 $(CORE_PKGS) $(NON_CORE_PKGS) $(EXCLUDE_PROPWARN_PKGS) $(EXPORTED_PRIVATE_PKGS) 878 $(TOUCH) $@ 879 880 $(eval $(call MakeDir,$(IMAGES_OUTPUTDIR)/symbols)) 881 $(eval $(call SetupArchive,BUILD_CT_SYM,$(IMAGES_OUTPUTDIR)/symbols/_the.symbols,\ 882 SRCS:=$(IMAGES_OUTPUTDIR)/symbols,\ 883 INCLUDES:=META-INF/sym,\ 884 JAR:=$(IMAGES_OUTPUTDIR)/lib/ct.sym, \ 885 CHECK_COMPRESS_JAR:=true)) 886 887 888 ########################################################################################## 889 890 SRC_ZIP_INCLUDES = \ 891 com/sun/corba \ 892 com/sun/image/codec/jpeg \ 893 com/sun/imageio \ 894 com/sun/java_cup \ 895 com/sun/javadoc \ 896 com/sun/java/swing \ 897 com/sun/jlex \ 898 com/sun/jmx \ 899 com/sun/naming \ 900 com/sun/org/apache \ 901 com/sun/security/auth \ 902 com/sun/security/jgss \ 903 com/sun/source \ 904 java/applet \ 905 java/awt \ 906 java/beans \ 907 java/io \ 908 java/lang \ 909 java/math \ 910 java/net \ 911 java/nio \ 912 java/rmi \ 913 java/security \ 914 java/sql \ 915 java/text \ 916 java/util \ 917 javax/accessibility \ 918 javax/annotation \ 919 javax/imageio \ 920 javax/lang \ 921 javax/management \ 922 javax/naming \ 923 javax/print \ 924 javax/rmi \ 925 javax/script \ 926 javax/security \ 927 javax/sound \ 928 javax/sql \ 929 javax/swing \ 930 javax/tools \ 931 javax/xml \ 932 org/ietf \ 933 org/omg \ 934 org/w3c/dom \ 935 org/xml/sax \ 936 sunw 937 938 SRC_ZIP_SRCS = $(JDK_TOPDIR)/src/share/classes $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes 939 SRC_ZIP_SRCS += $(JDK_OUTPUTDIR)/gensrc 940 SRC_ZIP_SRCS += $(JDK_OUTPUTDIR)/impsrc 941 SRC_ZIP_SRCS += $(JDK_OUTPUTDIR)/gendocsrc_rmic 942 ifndef OPENJDK 943 SRC_ZIP_SRCS += $(JDK_TOPDIR)/src/closed/share/classes 944 endif 945 946 # Need to copy launcher src files into desired directory structure 947 # before zipping the sources. 948 LAUNCHER_SRC_FILES := $(wildcard $(JDK_TOPDIR)/src/share/bin/*) \ 949 $(wildcard $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/java_md*) 950 LAUNCHER_ZIP_SRC := $(patsubst $(JDK_TOPDIR)/src/share/bin/%,$(IMAGES_OUTPUTDIR)/src/launcher/%,\ 951 $(patsubst $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/%,$(IMAGES_OUTPUTDIR)/src/launcher/%,\ 952 $(LAUNCHER_SRC_FILES))) 953 954 $(IMAGES_OUTPUTDIR)/src/launcher/%: $(JDK_TOPDIR)/src/share/bin/% 955 $(install-file) 956 957 $(IMAGES_OUTPUTDIR)/src/launcher/%: $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/% 958 $(install-file) 959 960 $(IMAGES_OUTPUTDIR)/src.zip: $(LAUNCHER_ZIP_SRC) 961 962 # This dir needs to exist before macro is evaluated to avoid warning from find. 963 $(eval $(call MakeDir,$(IMAGES_OUTPUTDIR)/src)) 964 $(eval $(call SetupZipArchive,BUILD_SRC_ZIP,\ 965 SRC:=$(SRC_ZIP_SRCS) $(IMAGES_OUTPUTDIR)/src,\ 966 INCLUDES:=$(SRC_ZIP_INCLUDES) launcher,\ 967 EXCLUDES:=javax/swing/beaninfo,\ 968 SUFFIXES:=.java .c .h,\ 969 ZIP:=$(IMAGES_OUTPUTDIR)/src.zip,\ 970 EXTRA_DEPS:=$(LAUNCHER_ZIP_SRC))) 971 972 ########################################################################################## 973 974 ifndef OPENJDK 975 ifeq ($(OPENJDK_TARGET_OS), windows) 976 977 $(eval $(call SetupArchive,BUILD_JACCESS_JAR,,\ 978 SRCS:=$(JDK_OUTPUTDIR)/classes,\ 979 INCLUDES:=com/sun/java/accessibility/util,\ 980 JAR:=$(IMAGES_OUTPUTDIR)/lib/ext/jaccess.jar,\ 981 SKIP_METAINF:=true)) 982 983 JARS += $(IMAGES_OUTPUTDIR)/lib/ext/jaccess.jar 984 985 ifeq ($(OPENJDK_TARGET_CPU_BITS), 32) 986 $(eval $(call SetupArchive,BUILD_ACCESSBRIDGE_32_JAR,,\ 987 SRCS:=$(JDK_OUTPUTDIR)/classes_ab/32bit $(JDK_OUTPUTDIR)/classes,\ 988 INCLUDES:=com/sun/java/accessibility,\ 989 JAR:=$(IMAGES_OUTPUTDIR)/lib/ext/access-bridge-32.jar,\ 990 SKIP_METAINF:=true)) 991 992 $(eval $(call SetupArchive,BUILD_ACCESSBRIDGE_LEGACY_JAR,,\ 993 SRCS:=$(JDK_OUTPUTDIR)/classes_ab/legacy $(JDK_OUTPUTDIR)/classes,\ 994 INCLUDES:=com/sun/java/accessibility,\ 995 JAR:=$(IMAGES_OUTPUTDIR)/lib/ext/access-bridge.jar,\ 996 SKIP_METAINF:=true)) 997 998 JARS += $(IMAGES_OUTPUTDIR)/lib/ext/access-bridge-32.jar \ 999 $(IMAGES_OUTPUTDIR)/lib/ext/access-bridge.jar 1000 else 1001 $(eval $(call SetupArchive,BUILD_ACCESSBRIDGE_64_JAR,,\ 1002 SRCS:=$(JDK_OUTPUTDIR)/classes_ab/64bit $(JDK_OUTPUTDIR)/classes,\ 1003 INCLUDES:=com/sun/java/accessibility,\ 1004 EXCLUDES:=com/sun/java/accessibility/util/java,\ 1005 JAR:=$(IMAGES_OUTPUTDIR)/lib/ext/access-bridge-64.jar,\ 1006 SKIP_METAINF:=true)) 1007 1008 JARS += $(IMAGES_OUTPUTDIR)/lib/ext/access-bridge-64.jar 1009 endif 1010 endif 1011 endif 1012 1013 ########################################################################################## 1014 1015 # 1016 # This is an empty jar (only contains manifest) and fits poorly into framework... 1017 # create simple rule instead 1018 # 1019 $(IMAGES_OUTPUTDIR)/lib/management-agent.jar : $(JDK_TOPDIR)/src/share/classes/sun/management/manifest 1020 $(JAR) cfm $@ $< 1021 1022 ########################################################################################## 1023 1024 $(IMAGES_OUTPUTDIR)/lib/ext/zipfs.jar : $(JDK_OUTPUTDIR)/demo/nio/zipfs/zipfs.jar 1025 $(install-file) 1026 1027 ########################################################################################## 1028 1029 ifeq ($(OPENJDK_TARGET_OS),macosx) 1030 $(eval $(call SetupArchive,BUILD_JOBJC_JAR,,\ 1031 SRCS:=$(JDK_OUTPUTDIR)/jobjc_classes,\ 1032 JAR:=$(IMAGES_OUTPUTDIR)/lib/JObjC.jar, \ 1033 JARINDEX:=true)) 1034 endif 1035 1036 ########################################################################################## 1037 1038 ifndef OPENJDK 1039 $(eval $(call SetupArchive,BUILD_ALT_RT_JAR,,\ 1040 SRCS:=$(JDK_OUTPUTDIR)/altclasses_classes,\ 1041 JAR:=$(IMAGES_OUTPUTDIR)/lib/alt-rt.jar)) 1042 1043 endif 1044 1045 ########################################################################################## 1046 1047 # This file is imported from hotspot in Import.gmk. Copying it into images/lib so that 1048 # all jars can be found in one place when creating images in Images.gmk. It needs to be 1049 # done here so that clean targets can be simple and accurate. 1050 $(IMAGES_OUTPUTDIR)/lib/sa-jdi.jar: $(JDK_OUTPUTDIR)/lib/sa-jdi.jar 1051 $(install-file) 1052 1053 ########################################################################################## 1054 # 1055 # sec-bin.zip is used by builds where the corresponding sources are not available 1056 # 1057 $(eval $(call SetupZipArchive,BUILD_SEC_BIN_ZIP,\ 1058 SRC:=$(JDK_OUTPUTDIR),\ 1059 INCLUDES:=classes/javax/net \ 1060 classes/javax/security/cert \ 1061 classes/com/sun/net/ssl \ 1062 classes/com/sun/security/cert \ 1063 classes/sun/net/www/protocol/https \ 1064 classes/sun/security/pkcs12 \ 1065 classes/sun/security/ssl \ 1066 classes/sun/security/krb5 \ 1067 classes/sun/security/krb5/internal \ 1068 classes/sun/security/krb5/internal/ccache \ 1069 classes/sun/security/krb5/internal/crypto \ 1070 classes/sun/security/krb5/internal/ktab \ 1071 classes/sun/security/krb5/internal/rcache \ 1072 classes/sun/security/krb5/internal/util,\ 1073 INCLUDE_FILES:=classes/sun/security/jgss/spi/GSSContextSpi.class,\ 1074 EXCLUDES:=classes/sun/security/krb5/internal/tools,\ 1075 ZIP:=$(IMAGES_OUTPUTDIR)/sec-bin.zip)) 1076 1077 JARS += $(IMAGES_OUTPUTDIR)/sec-bin.zip 1078 1079 ########################################################################################## 1080 # 1081 # Windows specific binary security packages. 1082 # 1083 ifeq ($(OPENJDK_TARGET_OS),windows) 1084 # sec-windows-bin.zip is used by builds where the corresponding sources are not available 1085 $(eval $(call SetupZipArchive,BUILD_SEC_WINDOWS_BIN_ZIP,\ 1086 SRC:=$(JDK_OUTPUTDIR),\ 1087 INCLUDES:=classes/sun/security/krb5/internal/tools,\ 1088 ZIP:=$(IMAGES_OUTPUTDIR)/sec-windows-bin.zip)) 1089 1090 JARS += $(IMAGES_OUTPUTDIR)/sec-windows-bin.zip 1091 1092 # JGSS files contain the native Kerberos library 1093 ifeq ($(OPENJDK_TARGET_CPU),x86_64) 1094 JGSS_ZIP_NAME=jgss-windows-x64-bin.zip 1095 else 1096 JGSS_ZIP_NAME=jgss-windows-i586-bin.zip 1097 endif 1098 1099 $(eval $(call SetupZipArchive,BUILD_JGSS_BIN_ZIP,\ 1100 SRC:=$(JDK_OUTPUTDIR),\ 1101 INCLUDE_FILES:=bin/w2k_lsa_auth.dll \ 1102 bin/w2k_lsa_auth.map \ 1103 bin/w2k_lsa_auth.pdb,\ 1104 ZIP:=$(IMAGES_OUTPUTDIR)/$(JGSS_ZIP_NAME))) 1105 1106 JARS += $(IMAGES_OUTPUTDIR)/$(JGSS_ZIP_NAME) 1107 endif 1108 1109 ########################################################################################## 1110 1111 # Import nashorn.jar from nashorn dist dir. 1112 $(IMAGES_OUTPUTDIR)/lib/ext/nashorn.jar: $(NASHORN_DIST)/nashorn.jar 1113 $(install-file) 1114 1115 ########################################################################################## 1116 1117 -include $(CUSTOM_MAKE_DIR)/CreateJars.gmk 1118 1119 ########################################################################################## 1120 1121 all: $(JARS) 1122 1123 .PHONY: default all