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 all security jars, always build the jar, but for closed, install the prebuilt signed 471 # version instead of the newly built jar. Unsigned jars are treated as intermediate targets 472 # and explicitly added to the JARS list. For open, signing is not needed. See SignJars.gmk 473 # for more information. 474 475 SUNPKCS11_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunpkcs11.jar 476 SUNPKCS11_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/sunpkcs11.jar 477 478 $(eval $(call SetupArchive,BUILD_SUNPKCS11_JAR,,\ 479 SRCS:=$(JDK_OUTPUTDIR)/classes, \ 480 SUFFIXES:=.class,\ 481 INCLUDES:=sun/security/pkcs11,\ 482 JAR:=$(SUNPKCS11_JAR_UNSIGNED), \ 483 MANIFEST:=$(JCE_MANIFEST), \ 484 SKIP_METAINF := true)) 485 486 $(SUNPKCS11_JAR_UNSIGNED): $(JCE_MANIFEST) 487 488 ifndef OPENJDK 489 SUNPKCS11_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/pkcs11/sunpkcs11.jar 490 $(SUNPKCS11_JAR_DST) : $(SUNPKCS11_JAR_SRC) 491 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt SunPKCS11 provider..." 492 $(install-file) 493 else 494 $(SUNPKCS11_JAR_DST) : $(SUNPKCS11_JAR_UNSIGNED) 495 $(install-file) 496 endif 497 498 JARS += $(SUNPKCS11_JAR_UNSIGNED) 499 500 ########################################################################################## 501 502 SUNEC_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunec.jar 503 SUNEC_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/sunec.jar 504 505 $(eval $(call SetupArchive,BUILD_SUNEC_JAR,,\ 506 SRCS:=$(JDK_OUTPUTDIR)/classes, \ 507 SUFFIXES:=.class,\ 508 INCLUDES:=sun/security/ec,\ 509 JAR:=$(SUNEC_JAR_UNSIGNED), \ 510 MANIFEST:=$(JCE_MANIFEST), \ 511 SKIP_METAINF := true)) 512 513 $(SUNEC_JAR_UNSIGNED): $(JCE_MANIFEST) 514 515 ifndef OPENJDK 516 SUNEC_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/ec/sunec.jar 517 $(SUNEC_JAR_DST) : $(SUNEC_JAR_SRC) 518 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt SunEC provider..." 519 $(install-file) 520 else 521 $(SUNEC_JAR_DST) : $(SUNEC_JAR_UNSIGNED) 522 $(install-file) 523 endif 524 525 JARS += $(SUNEC_JAR_UNSIGNED) 526 527 ########################################################################################## 528 529 $(eval $(call SetupArchive,BUILD_SWINGBEANS_JAR,,\ 530 SRCS:=$(JDK_OUTPUTDIR)/classes,\ 531 SUFFIXES:=BeanInfo.class .gif,\ 532 INCLUDES:=javax/swing sun/swing,\ 533 EXCLUDES:=javax/swing/plaf,\ 534 EXTRA_FILES:=javax/swing/SwingBeanInfoBase.class sun/swing/BeanInfoUtils.class,\ 535 JAR:=$(IMAGES_OUTPUTDIR)/lib/dt.jar,\ 536 SKIP_METAINF:=true)) 537 538 ########################################################################################## 539 540 SUNJCE_PROVIDER_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunjce_provider.jar 541 SUNJCE_PROVIDER_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/sunjce_provider.jar 542 543 $(eval $(call SetupArchive,BUILD_SUNJCE_PROVIDER_JAR,,\ 544 SRCS:=$(JDK_OUTPUTDIR)/classes, \ 545 SUFFIXES:=.class,\ 546 INCLUDES:= com/sun/crypto/provider,\ 547 JAR:=$(SUNJCE_PROVIDER_JAR_UNSIGNED), \ 548 MANIFEST:=$(JCE_MANIFEST), \ 549 SKIP_METAINF := true)) 550 551 $(SUNJCE_PROVIDER_JAR_UNSIGNED): $(JCE_MANIFEST) 552 553 ifndef OPENJDK 554 SUNJCE_PROVIDER_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/jce/sunjce_provider.jar 555 $(SUNJCE_PROVIDER_JAR_DST) : $(SUNJCE_PROVIDER_JAR_SRC) 556 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt SunJCE provider..." 557 $(install-file) 558 else 559 $(SUNJCE_PROVIDER_JAR_DST) : $(SUNJCE_PROVIDER_JAR_UNSIGNED) 560 $(install-file) 561 endif 562 563 JARS += $(SUNJCE_PROVIDER_JAR_UNSIGNED) 564 565 ########################################################################################## 566 567 JCE_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/jce.jar 568 JCE_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/jce.jar 569 570 $(eval $(call SetupArchive,BUILD_JCE_JAR,,\ 571 SRCS:=$(JDK_OUTPUTDIR)/classes, \ 572 SUFFIXES:=.class,\ 573 INCLUDES:= javax/crypto sun/security/internal,\ 574 JAR:=$(JCE_JAR_UNSIGNED), \ 575 MANIFEST:=$(JCE_MANIFEST), \ 576 SKIP_METAINF := true)) 577 578 $(JCE_JAR_UNSIGNED): $(JCE_MANIFEST) 579 580 ifndef OPENJDK 581 JCE_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/jce/jce.jar 582 $(JCE_JAR_DST) : $(JCE_JAR_SRC) 583 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt jce.jar..." 584 $(install-file) 585 else 586 $(JCE_JAR_DST) : $(JCE_JAR_UNSIGNED) 587 $(install-file) 588 endif 589 590 JARS += $(JCE_JAR_UNSIGNED) 591 592 ########################################################################################## 593 594 US_EXPORT_POLICY_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/security/US_export_policy.jar 595 US_EXPORT_POLICY_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/US_export_policy.jar 596 597 # 598 # TODO fix so that SetupArchive does not write files into SRCS 599 # then we don't need this extra copying 600 # 601 # NOTE: We currently do not place restrictions on our limited export 602 # policy. This was not a typo. 603 # 604 US_EXPORT_POLICY_JAR_SRC_DIR := $(JDK_TOPDIR)/make/javax/crypto/policy/unlimited 605 US_EXPORT_POLICY_JAR_TMP := $(IMAGES_OUTPUTDIR)/US_export_policy_jar.tmp 606 607 $(US_EXPORT_POLICY_JAR_TMP)/% : $(US_EXPORT_POLICY_JAR_SRC_DIR)/% 608 $(install-file) 609 610 US_EXPORT_POLICY_JAR_DEPS := $(US_EXPORT_POLICY_JAR_TMP)/default_US_export.policy 611 612 $(eval $(call SetupArchive,BUILD_US_EXPORT_POLICY_JAR,$(US_EXPORT_POLICY_JAR_DEPS),\ 613 SRCS:=$(US_EXPORT_POLICY_JAR_TMP), \ 614 SUFFIXES:= .policy,\ 615 JAR:=$(US_EXPORT_POLICY_JAR_UNSIGNED), \ 616 EXTRA_MANIFEST_ATTR := Crypto-Strength: unlimited, \ 617 SKIP_METAINF := true)) 618 619 ifndef OPENJDK 620 $(US_EXPORT_POLICY_JAR_DST): $(JDK_TOPDIR)/make/closed/tools/crypto/jce/US_export_policy.jar 621 $(ECHO) $(LOG_INFO) Copying $(@F) 622 $(install-file) 623 else 624 $(US_EXPORT_POLICY_JAR_DST): $(US_EXPORT_POLICY_JAR_UNSIGNED) 625 $(install-file) 626 endif 627 628 JARS += $(US_EXPORT_POLICY_JAR_UNSIGNED) 629 630 ########################################################################################## 631 632 LOCAL_POLICY_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/security/local_policy.jar 633 LOCAL_POLICY_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/local_policy.jar 634 635 # 636 # TODO fix so that SetupArchive does not write files into SRCS 637 # then we don't need this extra copying 638 # 639 LOCAL_POLICY_JAR_TMP := $(IMAGES_OUTPUTDIR)/local_policy_jar.tmp 640 641 ifeq ($(UNLIMITED_CRYPTO), true) 642 LOCAL_POLICY_JAR_SRC_DIR := $(JDK_TOPDIR)/make/javax/crypto/policy/unlimited 643 LOCAL_POLICY_JAR_DEPS := $(LOCAL_POLICY_JAR_TMP)/default_local.policy 644 LOCAL_POLICY_JAR_ATTR := Crypto-Strength: unlimited 645 else 646 LOCAL_POLICY_JAR_SRC_DIR := $(JDK_TOPDIR)/make/javax/crypto/policy/limited 647 LOCAL_POLICY_JAR_DEPS := $(LOCAL_POLICY_JAR_TMP)/exempt_local.policy \ 648 $(LOCAL_POLICY_JAR_TMP)/default_local.policy 649 LOCAL_POLICY_JAR_ATTR := Crypto-Strength: limited 650 endif 651 652 $(LOCAL_POLICY_JAR_TMP)/% : $(LOCAL_POLICY_JAR_SRC_DIR)/% 653 $(install-file) 654 655 $(eval $(call SetupArchive,BUILD_LOCAL_POLICY_JAR,$(LOCAL_POLICY_JAR_DEPS),\ 656 SRCS:=$(LOCAL_POLICY_JAR_TMP),\ 657 SUFFIXES:= .policy,\ 658 JAR:=$(LOCAL_POLICY_JAR_UNSIGNED), \ 659 EXTRA_MANIFEST_ATTR := $(LOCAL_POLICY_JAR_ATTR), \ 660 SKIP_METAINF := true)) 661 662 ifndef OPENJDK 663 $(LOCAL_POLICY_JAR_DST): $(JDK_TOPDIR)/make/closed/tools/crypto/jce/local_policy.jar 664 $(ECHO) $(LOG_INFO) Copying $(@F) 665 $(install-file) 666 else 667 $(LOCAL_POLICY_JAR_DST): $(LOCAL_POLICY_JAR_UNSIGNED) 668 $(install-file) 669 endif 670 671 JARS += $(LOCAL_POLICY_JAR_UNSIGNED) 672 673 ########################################################################################## 674 675 ifeq ($(OPENJDK_TARGET_OS),windows) 676 677 SUNMSCAPI_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunmscapi.jar 678 SUNMSCAPI_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/sunmscapi.jar 679 680 $(eval $(call SetupArchive,BUILD_SUNMSCAPI_JAR,,\ 681 SRCS:=$(JDK_OUTPUTDIR)/classes, \ 682 SUFFIXES:=.class,\ 683 INCLUDES:= sun/security/mscapi,\ 684 JAR:=$(SUNMSCAPI_JAR_UNSIGNED), \ 685 MANIFEST:=$(JCE_MANIFEST), \ 686 SKIP_METAINF:=true)) 687 688 $(SUNMSCAPI_JAR_UNSIGNED): $(JCE_MANIFEST) 689 690 ifndef OPENJDK 691 SUNMSCAPI_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/mscapi/sunmscapi.jar 692 $(SUNMSCAPI_JAR_DST) : $(SUNMSCAPI_JAR_SRC) 693 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt SunMSCAPI provider..." 694 $(install-file) 695 else 696 $(SUNMSCAPI_JAR_DST) : $(SUNMSCAPI_JAR_UNSIGNED) 697 $(install-file) 698 endif 699 700 JARS += $(SUNMSCAPI_JAR_UNSIGNED) 701 702 endif 703 704 ########################################################################################## 705 706 ifeq ($(OPENJDK_TARGET_OS),solaris) 707 ifndef OPENJDK 708 709 UCRYPTO_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/ucrypto.jar 710 UCRYPTO_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/ucrypto.jar 711 UCRYPTO_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/ucrypto/ucrypto.jar 712 713 $(eval $(call SetupArchive,BUILD_UCRYPTO_JAR,,\ 714 SRCS:=$(JDK_OUTPUTDIR)/classes, \ 715 SUFFIXES:=.class,\ 716 INCLUDES:=com/oracle/security/ucrypto,\ 717 JAR:=$(UCRYPTO_JAR_UNSIGNED), \ 718 MANIFEST:=$(JCE_MANIFEST), \ 719 SKIP_METAINF:=true)) 720 721 $(UCRYPTO_JAR_UNSIGNED): $(JCE_MANIFEST) 722 723 $(UCRYPTO_JAR_DST) : $(UCRYPTO_JAR_SRC) 724 @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt OracleUcrypto provider..." 725 $(install-file) 726 727 JARS += $(UCRYPTO_JAR_UNSIGNED) 728 729 endif 730 endif 731 732 ########################################################################################## 733 734 # Get the CLDRVERSION 735 include GensrcCLDR.gmk 736 737 CLDRDATA_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/cldrdata.jar 738 739 $(eval $(call SetupArchive,BUILD_CLDRDATA_JAR,,\ 740 SRCS:=$(JDK_OUTPUTDIR)/classes,\ 741 SUFFIXES:=.class,\ 742 INCLUDES:=sun/text/resources/cldr \ 743 sun/util/cldr \ 744 sun/util/resources/cldr,\ 745 EXCLUDES:=sun/util/cldr/CLDRLocaleProviderAdapter,\ 746 JAR:=$(CLDRDATA_JAR_DST),\ 747 EXTRA_MANIFEST_ATTR:=CLDR-Version: $(CLDRVERSION),\ 748 SKIP_METAINF:=true)) 749 750 ########################################################################################## 751 752 TOOLS_JAR_INCLUDES := \ 753 com/sun/codemodel \ 754 com/sun/istack/internal/tools \ 755 com/sun/jarsigner \ 756 com/sun/javadoc \ 757 com/sun/jdi \ 758 com/sun/source \ 759 com/sun/tools/attach \ 760 com/sun/tools/classfile \ 761 com/sun/tools/corba \ 762 com/sun/tools/doclets \ 763 com/sun/tools/doclint \ 764 com/sun/tools/example/debug/expr \ 765 com/sun/tools/example/debug/tty \ 766 com/sun/tools/extcheck \ 767 com/sun/tools/hat \ 768 com/sun/tools/internal/jxc \ 769 com/sun/tools/internal/jxc/ap \ 770 com/sun/tools/internal/ws \ 771 com/sun/tools/internal/ws/wscompile/plugin/at_generated \ 772 com/sun/tools/internal/xjc \ 773 com/sun/tools/javac \ 774 com/sun/tools/javadoc \ 775 com/sun/tools/javah \ 776 com/sun/tools/javap \ 777 com/sun/tools/jdeps \ 778 com/sun/tools/jdi \ 779 com/sun/tools/script/shell \ 780 com/sun/xml/internal/dtdparser \ 781 com/sun/xml/internal/rngom \ 782 com/sun/xml/internal/xsom \ 783 org/relaxng/datatype \ 784 sun/applet \ 785 sun/jvmstat \ 786 sun/rmi/rmic \ 787 sun/security/tools/jarsigner \ 788 sun/tools/asm \ 789 sun/tools/attach \ 790 sun/tools/jar \ 791 sun/tools/java \ 792 sun/tools/javac \ 793 sun/tools/jcmd \ 794 sun/tools/jinfo \ 795 sun/tools/jmap \ 796 sun/tools/jps \ 797 sun/tools/jstack \ 798 sun/tools/jstat \ 799 sun/tools/jstatd \ 800 sun/tools/native2ascii \ 801 sun/tools/serialver \ 802 sun/tools/tree \ 803 sun/tools/util 804 805 # The sjavac tools is not ready for public consumption. 806 TOOLS_JAR_EXCLUDES=com/sun/tools/sjavac 807 808 $(eval $(call SetupArchive,BUILD_TOOLS_JAR,,\ 809 SRCS:=$(JDK_OUTPUTDIR)/classes,\ 810 SUFFIXES:=.class .prp .gif .properties .xml .css .xsd .js .html .txt .java \ 811 Tool aliasmap options,\ 812 INCLUDES:=$(TOOLS_JAR_INCLUDES),\ 813 EXCLUDES:=$(TOOLS_JAR_EXCLUDES),\ 814 EXTRA_FILES:=META-INF/services/com.sun.jdi.connect.Connector \ 815 META-INF/services/com.sun.jdi.connect.spi.TransportService \ 816 META-INF/services/com.sun.tools.attach.spi.AttachProvider \ 817 META-INF/services/com.sun.tools.internal.ws.wscompile.Plugin \ 818 META-INF/services/com.sun.tools.internal.xjc.Plugin,\ 819 JAR:=$(IMAGES_OUTPUTDIR)/lib/tools.jar,\ 820 SKIP_METAINF:=true, \ 821 CHECK_COMPRESS_JAR:=true)) 822 823 824 ########################################################################################## 825 826 include javadoc/CORE_PKGS.gmk 827 include javadoc/NON_CORE_PKGS.gmk 828 829 # The compiler should not issue a "Proprietary" warning when compiling 830 # classes in the com.sun.java.swing.plaf packages, since we've always 831 # allowed, and even advocated, extending them (see bug 6476749). 832 # 833 # This approach is NOT to be used as a general purpose way to avoid such 834 # compiler warnings for non-core packages. The correct way is to document 835 # the packages in NON_CORE_PKGS.gmk, and include them in the NON_CORE_PKGS 836 # definition. 837 # 838 # Swing has taken this approach only as a temporary measure to avoid 839 # the compiler warnings until we can properly document these packages. 840 # This is covered under 6491853. 841 EXCLUDE_PROPWARN_PKGS = com.sun.java.swing.plaf.windows \ 842 com.sun.java.swing.plaf.motif \ 843 com.sun.java.swing.plaf.gtk 844 845 # 846 # Include the exported private packages in ct.sym. 847 # This is an interim solution until the ct.sym is replaced 848 # with a new module system (being discussed for JDK 8). 849 # 850 EXPORTED_PRIVATE_PKGS = com.oracle.net \ 851 com.oracle.nio 852 853 $(IMAGES_OUTPUTDIR)/symbols/_the.symbols: $(IMAGES_OUTPUTDIR)/lib/rt.jar 854 $(RM) -r $(IMAGES_OUTPUTDIR)/symbols/META-INF/sym 855 $(MKDIR) -p $(IMAGES_OUTPUTDIR)/symbols/META-INF/sym 856 $(JAVA) $(NEW_JAVAC) \ 857 -bootclasspath $(JDK_OUTPUTDIR)/classes \ 858 -XDprocess.packages -proc:only \ 859 -processor com.sun.tools.javac.sym.CreateSymbols \ 860 -Acom.sun.tools.javac.sym.Jar=$(IMAGES_OUTPUTDIR)/lib/rt.jar \ 861 -Acom.sun.tools.javac.sym.Dest=$(IMAGES_OUTPUTDIR)/symbols/META-INF/sym/rt.jar \ 862 -Acom.sun.tools.javac.sym.Profiles=profile-rtjar-includes.txt \ 863 $(CORE_PKGS) $(NON_CORE_PKGS) $(EXCLUDE_PROPWARN_PKGS) $(EXPORTED_PRIVATE_PKGS) 864 $(TOUCH) $@ 865 866 $(eval $(call MakeDir,$(IMAGES_OUTPUTDIR)/symbols)) 867 $(eval $(call SetupArchive,BUILD_CT_SYM,$(IMAGES_OUTPUTDIR)/symbols/_the.symbols,\ 868 SRCS:=$(IMAGES_OUTPUTDIR)/symbols,\ 869 INCLUDES:=META-INF/sym,\ 870 JAR:=$(IMAGES_OUTPUTDIR)/lib/ct.sym, \ 871 CHECK_COMPRESS_JAR:=true)) 872 873 874 ########################################################################################## 875 876 SRC_ZIP_INCLUDES = \ 877 com/sun/corba \ 878 com/sun/image/codec/jpeg \ 879 com/sun/imageio \ 880 com/sun/java_cup \ 881 com/sun/javadoc \ 882 com/sun/java/swing \ 883 com/sun/jlex \ 884 com/sun/jmx \ 885 com/sun/naming \ 886 com/sun/org/apache \ 887 com/sun/security/auth \ 888 com/sun/security/jgss \ 889 com/sun/source \ 890 java/applet \ 891 java/awt \ 892 java/beans \ 893 java/io \ 894 java/lang \ 895 java/math \ 896 java/net \ 897 java/nio \ 898 java/rmi \ 899 java/security \ 900 java/sql \ 901 java/text \ 902 java/util \ 903 javax/accessibility \ 904 javax/annotation \ 905 javax/imageio \ 906 javax/lang \ 907 javax/management \ 908 javax/naming \ 909 javax/print \ 910 javax/rmi \ 911 javax/script \ 912 javax/security \ 913 javax/sound \ 914 javax/sql \ 915 javax/swing \ 916 javax/tools \ 917 javax/xml \ 918 org/ietf \ 919 org/omg \ 920 org/w3c/dom \ 921 org/xml/sax \ 922 sunw 923 924 SRC_ZIP_SRCS = $(JDK_TOPDIR)/src/share/classes $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes 925 SRC_ZIP_SRCS += $(JDK_OUTPUTDIR)/gensrc 926 SRC_ZIP_SRCS += $(JDK_OUTPUTDIR)/impsrc 927 SRC_ZIP_SRCS += $(JDK_OUTPUTDIR)/gendocsrc_rmic 928 ifndef OPENJDK 929 SRC_ZIP_SRCS += $(JDK_TOPDIR)/src/closed/share/classes 930 endif 931 932 # Need to copy launcher src files into desired directory structure 933 # before zipping the sources. 934 LAUNCHER_SRC_FILES := $(wildcard $(JDK_TOPDIR)/src/share/bin/*) \ 935 $(wildcard $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/java_md*) 936 LAUNCHER_ZIP_SRC := $(patsubst $(JDK_TOPDIR)/src/share/bin/%,$(IMAGES_OUTPUTDIR)/src/launcher/%,\ 937 $(patsubst $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/%,$(IMAGES_OUTPUTDIR)/src/launcher/%,\ 938 $(LAUNCHER_SRC_FILES))) 939 940 $(IMAGES_OUTPUTDIR)/src/launcher/%: $(JDK_TOPDIR)/src/share/bin/% 941 $(install-file) 942 943 $(IMAGES_OUTPUTDIR)/src/launcher/%: $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/% 944 $(install-file) 945 946 $(IMAGES_OUTPUTDIR)/src.zip: $(LAUNCHER_ZIP_SRC) 947 948 # This dir needs to exist before macro is evaluated to avoid warning from find. 949 $(eval $(call MakeDir,$(IMAGES_OUTPUTDIR)/src)) 950 $(eval $(call SetupZipArchive,BUILD_SRC_ZIP,\ 951 SRC:=$(SRC_ZIP_SRCS) $(IMAGES_OUTPUTDIR)/src,\ 952 INCLUDES:=$(SRC_ZIP_INCLUDES) launcher,\ 953 EXCLUDES:=javax/swing/beaninfo,\ 954 SUFFIXES:=.java .c .h,\ 955 ZIP:=$(IMAGES_OUTPUTDIR)/src.zip,\ 956 EXTRA_DEPS:=$(LAUNCHER_ZIP_SRC))) 957 958 ########################################################################################## 959 960 ifndef OPENJDK 961 ifeq ($(OPENJDK_TARGET_OS), windows) 962 963 $(eval $(call SetupArchive,BUILD_JACCESS_JAR,,\ 964 SRCS:=$(JDK_OUTPUTDIR)/classes,\ 965 INCLUDES:=com/sun/java/accessibility/util,\ 966 JAR:=$(IMAGES_OUTPUTDIR)/lib/ext/jaccess.jar,\ 967 SKIP_METAINF:=true)) 968 969 JARS += $(IMAGES_OUTPUTDIR)/lib/ext/jaccess.jar 970 971 ifeq ($(OPENJDK_TARGET_CPU_BITS), 32) 972 $(eval $(call SetupArchive,BUILD_ACCESSBRIDGE_32_JAR,,\ 973 SRCS:=$(JDK_OUTPUTDIR)/classes_ab/32bit $(JDK_OUTPUTDIR)/classes,\ 974 INCLUDES:=com/sun/java/accessibility,\ 975 JAR:=$(IMAGES_OUTPUTDIR)/lib/ext/access-bridge-32.jar,\ 976 SKIP_METAINF:=true)) 977 978 $(eval $(call SetupArchive,BUILD_ACCESSBRIDGE_LEGACY_JAR,,\ 979 SRCS:=$(JDK_OUTPUTDIR)/classes_ab/legacy $(JDK_OUTPUTDIR)/classes,\ 980 INCLUDES:=com/sun/java/accessibility,\ 981 JAR:=$(IMAGES_OUTPUTDIR)/lib/ext/access-bridge.jar,\ 982 SKIP_METAINF:=true)) 983 984 JARS += $(IMAGES_OUTPUTDIR)/lib/ext/access-bridge-32.jar \ 985 $(IMAGES_OUTPUTDIR)/lib/ext/access-bridge.jar 986 else 987 $(eval $(call SetupArchive,BUILD_ACCESSBRIDGE_64_JAR,,\ 988 SRCS:=$(JDK_OUTPUTDIR)/classes_ab/64bit $(JDK_OUTPUTDIR)/classes,\ 989 INCLUDES:=com/sun/java/accessibility,\ 990 EXCLUDES:=com/sun/java/accessibility/util/java,\ 991 JAR:=$(IMAGES_OUTPUTDIR)/lib/ext/access-bridge-64.jar,\ 992 SKIP_METAINF:=true)) 993 994 JARS += $(IMAGES_OUTPUTDIR)/lib/ext/access-bridge-64.jar 995 endif 996 endif 997 endif 998 999 ########################################################################################## 1000 1001 # 1002 # This is an empty jar (only contains manifest) and fits poorly into framework... 1003 # create simple rule instead 1004 # 1005 $(IMAGES_OUTPUTDIR)/lib/management-agent.jar : $(JDK_TOPDIR)/src/share/classes/sun/management/manifest 1006 $(JAR) cfm $@ $< 1007 1008 ########################################################################################## 1009 1010 $(IMAGES_OUTPUTDIR)/lib/ext/zipfs.jar : $(JDK_OUTPUTDIR)/demo/nio/zipfs/zipfs.jar 1011 $(install-file) 1012 1013 ########################################################################################## 1014 1015 ifeq ($(OPENJDK_TARGET_OS),macosx) 1016 $(eval $(call SetupArchive,BUILD_JOBJC_JAR,,\ 1017 SRCS:=$(JDK_OUTPUTDIR)/jobjc_classes,\ 1018 JAR:=$(IMAGES_OUTPUTDIR)/lib/JObjC.jar, \ 1019 JARINDEX:=true)) 1020 endif 1021 1022 ########################################################################################## 1023 1024 ifndef OPENJDK 1025 $(eval $(call SetupArchive,BUILD_ALT_RT_JAR,,\ 1026 SRCS:=$(JDK_OUTPUTDIR)/altclasses_classes,\ 1027 JAR:=$(IMAGES_OUTPUTDIR)/lib/alt-rt.jar)) 1028 1029 endif 1030 1031 ########################################################################################## 1032 1033 # This file is imported from hotspot in Import.gmk. Copying it into images/lib so that 1034 # all jars can be found in one place when creating images in Images.gmk. It needs to be 1035 # done here so that clean targets can be simple and accurate. 1036 $(IMAGES_OUTPUTDIR)/lib/sa-jdi.jar: $(JDK_OUTPUTDIR)/lib/sa-jdi.jar 1037 $(install-file) 1038 1039 ########################################################################################## 1040 # 1041 # sec-bin.zip is used by builds where the corresponding sources are not available 1042 # 1043 $(eval $(call SetupZipArchive,BUILD_SEC_BIN_ZIP,\ 1044 SRC:=$(JDK_OUTPUTDIR),\ 1045 INCLUDES:=classes/javax/net \ 1046 classes/javax/security/cert \ 1047 classes/com/sun/net/ssl \ 1048 classes/com/sun/security/cert \ 1049 classes/sun/net/www/protocol/https \ 1050 classes/sun/security/pkcs12 \ 1051 classes/sun/security/ssl \ 1052 classes/sun/security/krb5 \ 1053 classes/sun/security/krb5/internal \ 1054 classes/sun/security/krb5/internal/ccache \ 1055 classes/sun/security/krb5/internal/crypto \ 1056 classes/sun/security/krb5/internal/ktab \ 1057 classes/sun/security/krb5/internal/rcache \ 1058 classes/sun/security/krb5/internal/util,\ 1059 INCLUDE_FILES:=classes/sun/security/jgss/spi/GSSContextSpi.class,\ 1060 EXCLUDES:=classes/sun/security/krb5/internal/tools,\ 1061 ZIP:=$(IMAGES_OUTPUTDIR)/sec-bin.zip)) 1062 1063 JARS += $(IMAGES_OUTPUTDIR)/sec-bin.zip 1064 1065 ########################################################################################## 1066 # 1067 # Windows specific binary security packages. 1068 # 1069 ifeq ($(OPENJDK_TARGET_OS),windows) 1070 # sec-windows-bin.zip is used by builds where the corresponding sources are not available 1071 $(eval $(call SetupZipArchive,BUILD_SEC_WINDOWS_BIN_ZIP,\ 1072 SRC:=$(JDK_OUTPUTDIR),\ 1073 INCLUDES:=classes/sun/security/krb5/internal/tools,\ 1074 ZIP:=$(IMAGES_OUTPUTDIR)/sec-windows-bin.zip)) 1075 1076 JARS += $(IMAGES_OUTPUTDIR)/sec-windows-bin.zip 1077 1078 # JGSS files contain the native Kerberos library 1079 ifeq ($(OPENJDK_TARGET_CPU),x86_64) 1080 JGSS_ZIP_NAME=jgss-windows-x64-bin.zip 1081 else 1082 JGSS_ZIP_NAME=jgss-windows-i586-bin.zip 1083 endif 1084 1085 $(eval $(call SetupZipArchive,BUILD_JGSS_BIN_ZIP,\ 1086 SRC:=$(JDK_OUTPUTDIR),\ 1087 INCLUDE_FILES:=bin/w2k_lsa_auth.dll \ 1088 bin/w2k_lsa_auth.map \ 1089 bin/w2k_lsa_auth.pdb,\ 1090 ZIP:=$(IMAGES_OUTPUTDIR)/$(JGSS_ZIP_NAME))) 1091 1092 JARS += $(IMAGES_OUTPUTDIR)/$(JGSS_ZIP_NAME) 1093 endif 1094 1095 ########################################################################################## 1096 1097 # Import nashorn.jar from nashorn dist dir. 1098 $(IMAGES_OUTPUTDIR)/lib/ext/nashorn.jar: $(NASHORN_DIST)/nashorn.jar 1099 $(install-file) 1100 1101 ########################################################################################## 1102 1103 -include $(CUSTOM_MAKE_DIR)/CreateJars.gmk 1104 1105 ########################################################################################## 1106 1107 all: $(JARS) 1108 1109 .PHONY: default all