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/sun/codemodel \ 139 com/sun/istack/internal/tools \ 140 com/sun/jarsigner \ 141 com/sun/java/accessibility \ 142 com/sun/javadoc \ 143 com/sun/jdi \ 144 com/sun/net/ssl/internal/ssl \ 145 com/sun/source \ 146 com/sun/tools \ 147 com/sun/xml/internal/dtdparser \ 148 com/sun/xml/internal/rngom \ 149 com/sun/xml/internal/xsom \ 150 javax/crypto \ 151 javax/swing/AbstractButtonBeanInfo.class \ 152 javax/swing/beaninfo \ 153 javax/swing/BoxBeanInfo.class \ 154 javax/swing/JAppletBeanInfo.class \ 155 javax/swing/JButtonBeanInfo.class \ 156 javax/swing/JCheckBoxBeanInfo.class \ 157 javax/swing/JCheckBoxMenuItemBeanInfo.class \ 158 javax/swing/JColorChooserBeanInfo.class \ 159 javax/swing/JComboBoxBeanInfo.class \ 160 javax/swing/JComponentBeanInfo.class \ 161 javax/swing/JDesktopPaneBeanInfo.class \ 162 javax/swing/JDialogBeanInfo.class \ 163 javax/swing/JEditorPaneBeanInfo.class \ 164 javax/swing/JFileChooserBeanInfo.class \ 165 javax/swing/JFormattedTextFieldBeanInfo.class \ 166 javax/swing/JFrameBeanInfo.class \ 167 javax/swing/JInternalFrameBeanInfo.class \ 168 javax/swing/JLabelBeanInfo.class \ 169 javax/swing/JLayeredPaneBeanInfo.class \ 170 javax/swing/JListBeanInfo.class \ 171 javax/swing/JMenuBarBeanInfo.class \ 172 javax/swing/JMenuBeanInfo.class \ 173 javax/swing/JMenuItemBeanInfo.class \ 174 javax/swing/JOptionPaneBeanInfo.class \ 175 javax/swing/JPanelBeanInfo.class \ 176 javax/swing/JPasswordFieldBeanInfo.class \ 177 javax/swing/JPopupMenuBeanInfo.class \ 178 javax/swing/JProgressBarBeanInfo.class \ 179 javax/swing/JRadioButtonBeanInfo.class \ 180 javax/swing/JRadioButtonMenuItemBeanInfo.class \ 181 javax/swing/JScrollBarBeanInfo.class \ 182 javax/swing/JScrollPaneBeanInfo.class \ 183 javax/swing/JSeparatorBeanInfo.class \ 184 javax/swing/JSliderBeanInfo.class \ 185 javax/swing/JSpinnerBeanInfo.class \ 186 javax/swing/JSplitPaneBeanInfo.class \ 187 javax/swing/JTabbedPaneBeanInfo.class \ 188 javax/swing/JTableBeanInfo.class \ 189 javax/swing/JTextAreaBeanInfo.class \ 190 javax/swing/JTextFieldBeanInfo.class \ 191 javax/swing/JTextPaneBeanInfo.class \ 192 javax/swing/JToggleButtonBeanInfo.class \ 193 javax/swing/JToolBarBeanInfo.class \ 194 javax/swing/JTreeBeanInfo.class \ 195 javax/swing/JWindowBeanInfo.class \ 196 javax/swing/SwingBeanInfoBase.class \ 197 javax/swing/text/JTextComponentBeanInfo.class \ 198 META-INF/services/com.sun.jdi.connect.Connector \ 199 META-INF/services/com.sun.jdi.connect.spi.TransportService \ 200 META-INF/services/com.sun.tools.attach.spi.AttachProvider \ 201 META-INF/services/com.sun.tools.xjc.Plugin \ 202 META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor \ 203 org/relaxng/datatype \ 204 sun/awt/HKSCS.class \ 205 sun/awt/motif/X11GB2312.class \ 206 sun/awt/motif/X11GB2312\$$$$Decoder.class \ 207 sun/awt/motif/X11GB2312\$$$$Encoder.class \ 208 sun/awt/motif/X11GBK.class \ 209 sun/awt/motif/X11GBK\$$$$Encoder.class \ 210 sun/awt/motif/X11KSC5601.class \ 211 sun/awt/motif/X11KSC5601\$$$$Decoder.class \ 212 sun/awt/motif/X11KSC5601\$$$$Encoder.class \ 213 sun/jvmstat \ 214 sun/net/spi/nameservice/dns \ 215 sun/nio/cs/ext \ 216 sun/rmi/rmic \ 217 sun/security/provider/Sun.class \ 218 sun/security/rsa/SunRsaSign.class \ 219 sun/security/ssl \ 220 sun/security/tools/jarsigner \ 221 sun/swing/BeanInfoUtils.class \ 222 sun/text/resources/cldr \ 223 sun/tools/asm \ 224 sun/tools/attach \ 225 sun/tools/java \ 226 sun/tools/javac \ 227 sun/tools/jcmd \ 228 sun/tools/jconsole \ 229 sun/tools/jinfo \ 230 sun/tools/jmap \ 231 sun/tools/jps \ 232 sun/tools/jstack \ 233 sun/tools/jstat \ 234 sun/tools/jstatd \ 235 sun/tools/native2ascii \ 236 sun/tools/serialver \ 237 sun/tools/tree \ 238 sun/tools/util \ 239 sun/util/cldr/CLDRLocaleDataMetaInfo.class \ 240 sun/util/resources/cldr \ 241 $(LOCALEDATA_INCLUDES) \ 242 com/oracle/jrockit/jfr \ 243 oracle/jrockit/jfr \ 244 jdk/jfr 245 246 ifeq ($(OPENJDK_TARGET_OS), macosx) 247 RT_JAR_EXCLUDES += com/sun/nio/sctp \ 248 sun/nio/ch/sctp 249 endif 250 251 # Find all files in the classes dir to use as dependencies. This could be more fine granular. 252 ALL_FILES_IN_CLASSES := $(call not-containing,_the.,$(filter-out %javac_state,\ 253 $(call CacheFind,$(JDK_OUTPUTDIR)/classes))) 254 255 RT_JAR_MANIFEST_FILE := $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar_manifest 256 RESOURCE_JAR_MANIFEST_FILE := $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar_manifest 257 258 $(RT_JAR_MANIFEST_FILE): $(MAINMANIFEST) $(BEANMANIFEST) 259 $(MKDIR) -p $(@D) 260 $(RM) $@ $@.tmp 261 $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \ 262 -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \ 263 $(MAINMANIFEST) >> $@.tmp 264 $(ECHO) >> $@.tmp 265 $(CAT) $(BEANMANIFEST) >> $@.tmp 266 $(MV) $@.tmp $@ 267 268 $(RESOURCE_JAR_MANIFEST_FILE): $(MAINMANIFEST) 269 $(MKDIR) -p $(@D) 270 $(RM) $@ $@.tmp 271 $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \ 272 -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \ 273 $(MAINMANIFEST) >> $@.tmp 274 $(MV) $@.tmp $@ 275 276 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.exclude: $(MAKEFILE) $(PROFILE_MAKEFILES) 277 $(MKDIR) -p $(@D) 278 $(RM) $@ $@.tmp 279 $(call ListPathsSafely,RT_JAR_EXCLUDES,\n, >> $@.tmp) 280 $(MV) $@.tmp $@ 281 282 $(IMAGES_OUTPUTDIR)/lib/classlist : $(JDK_TOPDIR)/make/tools/sharing/classlist.$(OPENJDK_TARGET_OS) \ 283 $(MAKEFILE) 284 $(MKDIR) -p $(@D) 285 $(RM) $@ $@.tmp 286 $(TOOL_ADDJSUM) $< $@.tmp 287 $(MV) $@.tmp $@ 288 289 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents: $(BUILD_TOOLS) $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.exclude \ 290 $(ALL_FILES_IN_CLASSES) $(IMAGES_OUTPUTDIR)/lib/classlist 291 $(MKDIR) -p $(@D) 292 $(RM) $@ $@.tmp 293 ($(CD) $(JDK_OUTPUTDIR)/classes && \ 294 $(TOOL_JARREORDER) \ 295 -o $@.tmp $(IMAGES_OUTPUTDIR)/lib/classlist $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.exclude . ) 296 $(MV) $@.tmp $@ 297 298 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar.contents: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents 299 $(MKDIR) -p $(@D) 300 $(RM) $@ $@.tmp 301 $(GREP) -e '\.class$$' $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents > $@.tmp 302 ifneq ($(PROFILE),) 303 # # Add back classes from excluded packages (fixing the $ substitution in the process) 304 for type in $(subst \$$,\, $(RT_JAR_INCLUDE_TYPES)) ; do \ 305 $(ECHO) $$type >> $@.tmp ; \ 306 done 307 endif 308 $(MV) $@.tmp $@ 309 310 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents 311 $(MKDIR) -p $(@D) 312 $(RM) $@ $@.tmp 313 $(GREP) -v -e '\.class$$' \ 314 -e '/_the\.*' -e '^_the\.*' -e '\\_the\.*' -e 'javac_state' \ 315 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents > $@.tmp 316 ifneq ($(PROFILE),) 317 # # Strip out all META-INF/services/ entries 318 $(GREP) -v -e 'META-INF/services/' $@.tmp > $@.tmp2 319 # # Add back the required services 320 # # FIXME: On Solaris if PROFILE_INCLUDE_METAINF_SERVICES is not defined 321 # # we get a syntax error from sh. That doesn't happen on linux 322 for service in $(PROFILE_INCLUDE_METAINF_SERVICES) ; do \ 323 $(ECHO) $$service >> $@.tmp2; \ 324 done 325 $(MV) $@.tmp2 $@.tmp 326 endif 327 $(MV) $@.tmp $@ 328 329 # This is a hack but I don't know how to make this fit into the existing scheme 330 $(PROFILE_VERSION_CLASS_TARGETS) : $(PROFILE_VERSION_JAVA_TARGETS) 331 @$(JAVAC) -d $(@D)/../../ $(@D)/$(VERSION_JAVA_FILE) 332 333 334 # Support for removing the addPropertyChangeListener and removePropertyChangeListener 335 # methods from classes that only go into the profile builds. 336 BEANLESS_CLASSES = $(IMAGES_OUTPUTDIR)/beanless 337 338 # When there are $ characters in filenames we have some very subtle interactions between 339 # make expansion and shell expansion. In this particular case $< will contain a single $ while 340 # $@ will contain \$. So we have to pass $< in single-quotes to avoid shell expansion 341 $(BEANLESS_CLASSES)/%: $(JDK_OUTPUTDIR)/classes/% 342 $(MKDIR) -p $(@D) 343 $(TOOL_REMOVEMETHODS) '$<' $@ addPropertyChangeListener removePropertyChangeListener 344 345 CLASSES_TO_DEBEAN = \ 346 java/util/logging/LogManager.class \ 347 java/util/jar/Pack200\$$Packer.class \ 348 java/util/jar/Pack200\$$Unpacker.class \ 349 com/sun/java/util/jar/pack/PackerImpl.class \ 350 com/sun/java/util/jar/pack/UnpackerImpl.class 351 352 ifneq ($(PROFILE),) 353 BEANLESS_CLASSES_TARGETS := $(addprefix $(BEANLESS_CLASSES)/, $(CLASSES_TO_DEBEAN)) 354 endif 355 356 357 RT_JAR_CREATE_OPTIONS := c0fm 358 RT_JAR_UPDATE_OPTIONS := u0f 359 ifeq ($(COMPRESS_JARS), true) 360 RT_JAR_CREATE_OPTIONS := cfm 361 RT_JAR_UPDATE_OPTIONS := uf 362 endif 363 364 # This defines a target-specific variables to make the shell logic easier to see. 365 # We need to find the Version.class file for the profile currently being built 366 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/rt.jar: \ 367 CLASS_FILE = $(if $(PROFILE),$(strip $(foreach class,$(PROFILE_VERSION_CLASS_TARGETS),$(if $(findstring $(PROFILE),$(class)),$(class)))), NO_SUCH_FILE) 368 # This is the real target 369 $(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) 370 $(ECHO) Creating rt.jar $(PROFILE) Compressed=$(COMPRESS_JARS) 371 $(MKDIR) -p $(@D) 372 $(RM) $@ $@.tmp 373 $(CD) $(JDK_OUTPUTDIR)/classes && \ 374 $(JAR) $(RT_JAR_CREATE_OPTIONS) $@.tmp $(RT_JAR_MANIFEST_FILE) \ 375 @$(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar.contents && \ 376 if [ -f $(CLASS_FILE) ]; then \ 377 $(ECHO) Updating rt.jar $(PROFILE) && \ 378 $(CD) $(patsubst %$(VERSION_CLASS_PATH),%,$(CLASS_FILE)) && \ 379 $(JAR) $(RT_JAR_UPDATE_OPTIONS) $@.tmp $(VERSION_CLASS_PATH); \ 380 $(CD) $(BEANLESS_CLASSES) && \ 381 $(JAR) $(RT_JAR_UPDATE_OPTIONS) $@.tmp $(CLASSES_TO_DEBEAN); \ 382 fi 383 $(MV) $@.tmp $@ 384 385 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/resources.jar: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents \ 386 $(RESOURCE_JAR_MANIFEST_FILE) 387 $(ECHO) Creating resources.jar 388 $(MKDIR) -p $(@D) 389 $(RM) $@ $@.tmp 390 $(CD) $(JDK_OUTPUTDIR)/classes && \ 391 $(JAR) $(RT_JAR_CREATE_OPTIONS) $@.tmp $(RESOURCE_JAR_MANIFEST_FILE) \ 392 @$(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents 393 $(MV) $@.tmp $@ 394 395 ########################################################################################## 396 397 ifneq ($(OPENJDK_TARGET_OS), windows) 398 CHARSETS_EXTRA_FILES:=sun/awt/motif/X11GBK.class \ 399 sun/awt/motif/X11GB2312\$$$$Decoder.class \ 400 sun/awt/motif/X11GB2312.class \ 401 sun/awt/motif/X11KSC5601\$$$$Decoder.class \ 402 sun/awt/motif/X11KSC5601\$$$$Encoder.class \ 403 sun/awt/motif/X11GB2312\$$$$Encoder.class \ 404 sun/awt/motif/X11GBK\$$$$Encoder.class \ 405 sun/awt/motif/X11KSC5601.class 406 endif 407 408 $(eval $(call SetupArchive,BUILD_CHARSETS_JAR,,\ 409 SRCS:=$(JDK_OUTPUTDIR)/classes, \ 410 SUFFIXES:=.class .dat,\ 411 INCLUDES:=sun/nio/cs/ext,\ 412 EXTRA_FILES := sun/awt/HKSCS.class \ 413 $(CHARSETS_EXTRA_FILES), \ 414 JAR:=$(IMAGES_OUTPUTDIR)/lib/charsets.jar, \ 415 SKIP_METAINF := true, \ 416 CHECK_COMPRESS_JAR:=true)) 417 418 ########################################################################################## 419 420 ifndef OPENJDK 421 ifeq ($(ENABLE_JFR), true) 422 $(eval $(call SetupArchive,BUILD_JFR_JAR,,\ 423 SRCS:=$(JDK_OUTPUTDIR)/classes,\ 424 SUFFIXES:=.class .jfc .xsd,\ 425 INCLUDES:=com/oracle/jrockit/jfr \ 426 oracle/jrockit/jfr \ 427 jdk/jfr,\ 428 JAR:=$(IMAGES_OUTPUTDIR)/lib/jfr.jar,\ 429 SKIP_METAINF:=true,\ 430 MANIFEST:=$(MAINMANIFEST), \ 431 CHECK_COMPRESS_JAR:=true)) 432 433 endif 434 endif 435 436 ########################################################################################## 437 438 $(eval $(call SetupArchive,BUILD_JSSE_JAR,,\ 439 SRCS:=$(JDK_OUTPUTDIR)/classes,\ 440 INCLUDES:=sun/security/provider/Sun.class \ 441 sun/security/rsa/SunRsaSign.class \ 442 sun/security/ssl \ 443 com/sun/net/ssl/internal/ssl,\ 444 JAR:=$(IMAGES_OUTPUTDIR)/lib/jsse.jar,\ 445 SKIP_METAINF:=true,\ 446 MANIFEST:=$(MAINMANIFEST), \ 447 CHECK_COMPRESS_JAR:=true)) 448 449 ########################################################################################## 450 451 $(eval $(call SetupArchive,BUILD_SWINGBEANS_JAR,,\ 452 SRCS:=$(JDK_OUTPUTDIR)/classes,\ 453 SUFFIXES:=BeanInfo.class .gif,\ 454 INCLUDES:=javax/swing sun/swing,\ 455 EXCLUDES:=javax/swing/plaf,\ 456 EXTRA_FILES:=javax/swing/SwingBeanInfoBase.class sun/swing/BeanInfoUtils.class,\ 457 JAR:=$(IMAGES_OUTPUTDIR)/lib/dt.jar,\ 458 SKIP_METAINF:=true)) 459 460 ########################################################################################## 461 462 # Get the CLDRVERSION 463 include GensrcCLDR.gmk 464 465 CLDRDATA_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/cldrdata.jar 466 467 $(eval $(call SetupArchive,BUILD_CLDRDATA_JAR,,\ 468 SRCS:=$(JDK_OUTPUTDIR)/classes,\ 469 SUFFIXES:=.class,\ 470 INCLUDES:=sun/text/resources/cldr \ 471 sun/util/cldr \ 472 sun/util/resources/cldr,\ 473 EXCLUDES:=sun/util/cldr/CLDRLocaleProviderAdapter,\ 474 JAR:=$(CLDRDATA_JAR_DST),\ 475 EXTRA_MANIFEST_ATTR:=CLDR-Version: $(CLDRVERSION),\ 476 SKIP_METAINF:=true)) 477 478 ########################################################################################## 479 480 TOOLS_JAR_INCLUDES := \ 481 com/sun/codemodel \ 482 com/sun/istack/internal/tools \ 483 com/sun/jarsigner \ 484 com/sun/javadoc \ 485 com/sun/jdi \ 486 com/sun/source \ 487 com/sun/tools/attach \ 488 com/sun/tools/classfile \ 489 com/sun/tools/corba \ 490 com/sun/tools/doclets \ 491 com/sun/tools/doclint \ 492 com/sun/tools/example/debug/expr \ 493 com/sun/tools/example/debug/tty \ 494 com/sun/tools/extcheck \ 495 com/sun/tools/hat \ 496 com/sun/tools/internal/jxc \ 497 com/sun/tools/internal/jxc/ap \ 498 com/sun/tools/internal/ws \ 499 com/sun/tools/internal/ws/wscompile/plugin/at_generated \ 500 com/sun/tools/internal/xjc \ 501 com/sun/tools/javac \ 502 com/sun/tools/javadoc \ 503 com/sun/tools/javah \ 504 com/sun/tools/javap \ 505 com/sun/tools/jdeps \ 506 com/sun/tools/jdi \ 507 com/sun/tools/script/shell \ 508 com/sun/xml/internal/dtdparser \ 509 com/sun/xml/internal/rngom \ 510 com/sun/xml/internal/xsom \ 511 org/relaxng/datatype \ 512 sun/applet \ 513 sun/jvmstat \ 514 sun/rmi/rmic \ 515 sun/security/tools/jarsigner \ 516 sun/tools/asm \ 517 sun/tools/attach \ 518 sun/tools/jar \ 519 sun/tools/java \ 520 sun/tools/javac \ 521 sun/tools/jcmd \ 522 sun/tools/jinfo \ 523 sun/tools/jmap \ 524 sun/tools/jps \ 525 sun/tools/jstack \ 526 sun/tools/jstat \ 527 sun/tools/jstatd \ 528 sun/tools/native2ascii \ 529 sun/tools/serialver \ 530 sun/tools/tree \ 531 sun/tools/util 532 533 # The sjavac tools is not ready for public consumption. 534 TOOLS_JAR_EXCLUDES=com/sun/tools/sjavac 535 536 $(eval $(call SetupArchive,BUILD_TOOLS_JAR,,\ 537 SRCS:=$(JDK_OUTPUTDIR)/classes,\ 538 SUFFIXES:=.class .prp .gif .properties .xml .css .xsd .js .html .txt .java \ 539 Tool aliasmap options,\ 540 INCLUDES:=$(TOOLS_JAR_INCLUDES),\ 541 EXCLUDES:=$(TOOLS_JAR_EXCLUDES),\ 542 EXTRA_FILES:=META-INF/services/com.sun.jdi.connect.Connector \ 543 META-INF/services/com.sun.jdi.connect.spi.TransportService \ 544 META-INF/services/com.sun.tools.attach.spi.AttachProvider \ 545 META-INF/services/com.sun.tools.internal.ws.wscompile.Plugin \ 546 META-INF/services/com.sun.tools.internal.xjc.Plugin,\ 547 JAR:=$(IMAGES_OUTPUTDIR)/lib/tools.jar,\ 548 SKIP_METAINF:=true, \ 549 CHECK_COMPRESS_JAR:=true)) 550 551 552 ########################################################################################## 553 554 include javadoc/CORE_PKGS.gmk 555 include javadoc/NON_CORE_PKGS.gmk 556 557 # The compiler should not issue a "Proprietary" warning when compiling 558 # classes in the com.sun.java.swing.plaf packages, since we've always 559 # allowed, and even advocated, extending them (see bug 6476749). 560 # 561 # This approach is NOT to be used as a general purpose way to avoid such 562 # compiler warnings for non-core packages. The correct way is to document 563 # the packages in NON_CORE_PKGS.gmk, and include them in the NON_CORE_PKGS 564 # definition. 565 # 566 # Swing has taken this approach only as a temporary measure to avoid 567 # the compiler warnings until we can properly document these packages. 568 # This is covered under 6491853. 569 EXCLUDE_PROPWARN_PKGS = com.sun.java.swing.plaf.windows \ 570 com.sun.java.swing.plaf.motif \ 571 com.sun.java.swing.plaf.gtk 572 573 # 574 # Include the exported private packages in ct.sym. 575 # This is an interim solution until the ct.sym is replaced 576 # with a new module system (being discussed for JDK 8). 577 # 578 EXPORTED_PRIVATE_PKGS = com.oracle.net \ 579 com.oracle.nio 580 581 $(IMAGES_OUTPUTDIR)/symbols/_the.symbols: $(IMAGES_OUTPUTDIR)/lib/rt.jar 582 $(RM) -r $(IMAGES_OUTPUTDIR)/symbols/META-INF/sym 583 $(MKDIR) -p $(IMAGES_OUTPUTDIR)/symbols/META-INF/sym 584 $(JAVA) $(NEW_JAVAC) \ 585 -bootclasspath $(JDK_OUTPUTDIR)/classes \ 586 -XDprocess.packages -proc:only \ 587 -processor com.sun.tools.javac.sym.CreateSymbols \ 588 -Acom.sun.tools.javac.sym.Jar=$(IMAGES_OUTPUTDIR)/lib/rt.jar \ 589 -Acom.sun.tools.javac.sym.Dest=$(IMAGES_OUTPUTDIR)/symbols/META-INF/sym/rt.jar \ 590 -Acom.sun.tools.javac.sym.Profiles=profile-rtjar-includes.txt \ 591 $(CORE_PKGS) $(NON_CORE_PKGS) $(EXCLUDE_PROPWARN_PKGS) $(EXPORTED_PRIVATE_PKGS) 592 $(TOUCH) $@ 593 594 $(eval $(call MakeDir,$(IMAGES_OUTPUTDIR)/symbols)) 595 $(eval $(call SetupArchive,BUILD_CT_SYM,$(IMAGES_OUTPUTDIR)/symbols/_the.symbols,\ 596 SRCS:=$(IMAGES_OUTPUTDIR)/symbols,\ 597 INCLUDES:=META-INF/sym,\ 598 JAR:=$(IMAGES_OUTPUTDIR)/lib/ct.sym, \ 599 CHECK_COMPRESS_JAR:=true)) 600 601 602 ########################################################################################## 603 604 SRC_ZIP_INCLUDES = \ 605 com/sun/corba \ 606 com/sun/image/codec/jpeg \ 607 com/sun/imageio \ 608 com/sun/java_cup \ 609 com/sun/javadoc \ 610 com/sun/java/swing \ 611 com/sun/jlex \ 612 com/sun/jmx \ 613 com/sun/naming \ 614 com/sun/org/apache \ 615 com/sun/security/auth \ 616 com/sun/security/jgss \ 617 com/sun/source \ 618 java/applet \ 619 java/awt \ 620 java/beans \ 621 java/io \ 622 java/lang \ 623 java/math \ 624 java/net \ 625 java/nio \ 626 java/rmi \ 627 java/security \ 628 java/sql \ 629 java/text \ 630 java/util \ 631 javax/accessibility \ 632 javax/annotation \ 633 javax/imageio \ 634 javax/lang \ 635 javax/management \ 636 javax/naming \ 637 javax/print \ 638 javax/rmi \ 639 javax/script \ 640 javax/security \ 641 javax/sound \ 642 javax/sql \ 643 javax/swing \ 644 javax/tools \ 645 javax/xml \ 646 org/ietf \ 647 org/omg \ 648 org/w3c/dom \ 649 org/xml/sax \ 650 sunw 651 652 SRC_ZIP_SRCS = $(JDK_TOPDIR)/src/share/classes $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes 653 SRC_ZIP_SRCS += $(JDK_OUTPUTDIR)/gensrc 654 SRC_ZIP_SRCS += $(JDK_OUTPUTDIR)/impsrc 655 SRC_ZIP_SRCS += $(JDK_OUTPUTDIR)/gendocsrc_rmic 656 ifndef OPENJDK 657 SRC_ZIP_SRCS += $(JDK_TOPDIR)/src/closed/share/classes 658 endif 659 660 # Need to copy launcher src files into desired directory structure 661 # before zipping the sources. 662 LAUNCHER_SRC_FILES := $(wildcard $(JDK_TOPDIR)/src/share/bin/*) \ 663 $(wildcard $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/java_md*) 664 LAUNCHER_ZIP_SRC := $(patsubst $(JDK_TOPDIR)/src/share/bin/%,$(IMAGES_OUTPUTDIR)/src/launcher/%,\ 665 $(patsubst $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/%,$(IMAGES_OUTPUTDIR)/src/launcher/%,\ 666 $(LAUNCHER_SRC_FILES))) 667 668 $(IMAGES_OUTPUTDIR)/src/launcher/%: $(JDK_TOPDIR)/src/share/bin/% 669 $(install-file) 670 671 $(IMAGES_OUTPUTDIR)/src/launcher/%: $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/% 672 $(install-file) 673 674 $(IMAGES_OUTPUTDIR)/src.zip: $(LAUNCHER_ZIP_SRC) 675 676 # This dir needs to exist before macro is evaluated to avoid warning from find. 677 $(eval $(call MakeDir,$(IMAGES_OUTPUTDIR)/src)) 678 $(eval $(call SetupZipArchive,BUILD_SRC_ZIP,\ 679 SRC:=$(SRC_ZIP_SRCS) $(IMAGES_OUTPUTDIR)/src,\ 680 INCLUDES:=$(SRC_ZIP_INCLUDES) launcher,\ 681 EXCLUDES:=javax/swing/beaninfo,\ 682 SUFFIXES:=.java .c .h,\ 683 ZIP:=$(IMAGES_OUTPUTDIR)/src.zip,\ 684 EXTRA_DEPS:=$(LAUNCHER_ZIP_SRC))) 685 686 ########################################################################################## 687 688 ifndef OPENJDK 689 ifeq ($(OPENJDK_TARGET_OS), windows) 690 691 $(eval $(call SetupArchive,BUILD_JACCESS_JAR,,\ 692 SRCS:=$(JDK_OUTPUTDIR)/classes,\ 693 INCLUDES:=com/sun/java/accessibility/util,\ 694 JAR:=$(IMAGES_OUTPUTDIR)/lib/ext/jaccess.jar,\ 695 SKIP_METAINF:=true)) 696 697 JARS += $(IMAGES_OUTPUTDIR)/lib/ext/jaccess.jar 698 699 ifeq ($(OPENJDK_TARGET_CPU_BITS), 32) 700 $(eval $(call SetupArchive,BUILD_ACCESSBRIDGE_32_JAR,,\ 701 SRCS:=$(JDK_OUTPUTDIR)/classes_ab/32bit $(JDK_OUTPUTDIR)/classes,\ 702 INCLUDES:=com/sun/java/accessibility,\ 703 JAR:=$(IMAGES_OUTPUTDIR)/lib/ext/access-bridge-32.jar,\ 704 SKIP_METAINF:=true)) 705 706 $(eval $(call SetupArchive,BUILD_ACCESSBRIDGE_LEGACY_JAR,,\ 707 SRCS:=$(JDK_OUTPUTDIR)/classes_ab/legacy $(JDK_OUTPUTDIR)/classes,\ 708 INCLUDES:=com/sun/java/accessibility,\ 709 JAR:=$(IMAGES_OUTPUTDIR)/lib/ext/access-bridge.jar,\ 710 SKIP_METAINF:=true)) 711 712 JARS += $(IMAGES_OUTPUTDIR)/lib/ext/access-bridge-32.jar \ 713 $(IMAGES_OUTPUTDIR)/lib/ext/access-bridge.jar 714 else 715 $(eval $(call SetupArchive,BUILD_ACCESSBRIDGE_64_JAR,,\ 716 SRCS:=$(JDK_OUTPUTDIR)/classes_ab/64bit $(JDK_OUTPUTDIR)/classes,\ 717 INCLUDES:=com/sun/java/accessibility,\ 718 EXCLUDES:=com/sun/java/accessibility/util/java,\ 719 JAR:=$(IMAGES_OUTPUTDIR)/lib/ext/access-bridge-64.jar,\ 720 SKIP_METAINF:=true)) 721 722 JARS += $(IMAGES_OUTPUTDIR)/lib/ext/access-bridge-64.jar 723 endif 724 endif 725 endif 726 727 ########################################################################################## 728 729 # 730 # This is an empty jar (only contains manifest) and fits poorly into framework... 731 # create simple rule instead 732 # 733 $(IMAGES_OUTPUTDIR)/lib/management-agent.jar : $(JDK_TOPDIR)/src/share/classes/sun/management/manifest 734 $(JAR) cfm $@ $< 735 736 ########################################################################################## 737 738 $(IMAGES_OUTPUTDIR)/lib/ext/zipfs.jar : $(JDK_OUTPUTDIR)/demo/nio/zipfs/zipfs.jar 739 $(install-file) 740 741 ########################################################################################## 742 743 ifeq ($(OPENJDK_TARGET_OS),macosx) 744 $(eval $(call SetupArchive,BUILD_JOBJC_JAR,,\ 745 SRCS:=$(JDK_OUTPUTDIR)/jobjc_classes,\ 746 JAR:=$(IMAGES_OUTPUTDIR)/lib/JObjC.jar, \ 747 JARINDEX:=true)) 748 endif 749 750 ########################################################################################## 751 752 ifndef OPENJDK 753 $(eval $(call SetupArchive,BUILD_ALT_RT_JAR,,\ 754 SRCS:=$(JDK_OUTPUTDIR)/altclasses_classes,\ 755 JAR:=$(IMAGES_OUTPUTDIR)/lib/alt-rt.jar)) 756 757 endif 758 759 ########################################################################################## 760 761 # This file is imported from hotspot in Import.gmk. Copying it into images/lib so that 762 # all jars can be found in one place when creating images in Images.gmk. It needs to be 763 # done here so that clean targets can be simple and accurate. 764 $(IMAGES_OUTPUTDIR)/lib/sa-jdi.jar: $(JDK_OUTPUTDIR)/lib/sa-jdi.jar 765 $(install-file) 766 767 ########################################################################################## 768 # 769 # sec-bin.zip is used by builds where the corresponding sources are not available 770 # 771 $(eval $(call SetupZipArchive,BUILD_SEC_BIN_ZIP,\ 772 SRC:=$(JDK_OUTPUTDIR),\ 773 INCLUDES:=classes/javax/net \ 774 classes/javax/security/cert \ 775 classes/com/sun/net/ssl \ 776 classes/com/sun/security/cert \ 777 classes/sun/net/www/protocol/https \ 778 classes/sun/security/pkcs12 \ 779 classes/sun/security/ssl \ 780 classes/sun/security/krb5 \ 781 classes/sun/security/krb5/internal \ 782 classes/sun/security/krb5/internal/ccache \ 783 classes/sun/security/krb5/internal/crypto \ 784 classes/sun/security/krb5/internal/ktab \ 785 classes/sun/security/krb5/internal/rcache \ 786 classes/sun/security/krb5/internal/util,\ 787 INCLUDE_FILES:=classes/sun/security/jgss/spi/GSSContextSpi.class,\ 788 EXCLUDES:=classes/sun/security/krb5/internal/tools,\ 789 ZIP:=$(IMAGES_OUTPUTDIR)/sec-bin.zip)) 790 791 JARS += $(IMAGES_OUTPUTDIR)/sec-bin.zip 792 793 ########################################################################################## 794 # 795 # Windows specific binary security packages. 796 # 797 ifeq ($(OPENJDK_TARGET_OS),windows) 798 # sec-windows-bin.zip is used by builds where the corresponding sources are not available 799 $(eval $(call SetupZipArchive,BUILD_SEC_WINDOWS_BIN_ZIP,\ 800 SRC:=$(JDK_OUTPUTDIR),\ 801 INCLUDES:=classes/sun/security/krb5/internal/tools,\ 802 ZIP:=$(IMAGES_OUTPUTDIR)/sec-windows-bin.zip)) 803 804 JARS += $(IMAGES_OUTPUTDIR)/sec-windows-bin.zip 805 806 # JGSS files contain the native Kerberos library 807 ifeq ($(OPENJDK_TARGET_CPU),x86_64) 808 JGSS_ZIP_NAME=jgss-windows-x64-bin.zip 809 else 810 JGSS_ZIP_NAME=jgss-windows-i586-bin.zip 811 endif 812 813 $(eval $(call SetupZipArchive,BUILD_JGSS_BIN_ZIP,\ 814 SRC:=$(JDK_OUTPUTDIR),\ 815 INCLUDE_FILES:=bin/w2k_lsa_auth.dll \ 816 bin/w2k_lsa_auth.map \ 817 bin/w2k_lsa_auth.pdb,\ 818 ZIP:=$(IMAGES_OUTPUTDIR)/$(JGSS_ZIP_NAME))) 819 820 JARS += $(IMAGES_OUTPUTDIR)/$(JGSS_ZIP_NAME) 821 endif 822 823 ########################################################################################## 824 825 # This rule copies all jars from jdk/lib/... to images/lib/... to avoid having to track 826 # which jars are where 827 $(IMAGES_OUTPUTDIR)/lib/%: $(JDK_OUTPUTDIR)/lib/% 828 $(install-file) 829 830 ########################################################################################## 831 832 # Import nashorn.jar from nashorn dist dir. 833 $(IMAGES_OUTPUTDIR)/lib/ext/nashorn.jar: $(NASHORN_DIST)/nashorn.jar 834 $(install-file) 835 836 ########################################################################################## 837 838 -include $(CUSTOM_MAKE_DIR)/CreateJars.gmk 839 840 ########################################################################################## 841 842 all: $(JARS) 843 844 .PHONY: default all