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