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