jdk/make/CreateJars.gmk
changeset 25859 3317bb8137f4
parent 24965 bb8868e02e4d
child 26191 a0ff4b39d34b
equal deleted inserted replaced
25858:836adbf7a2cd 25859:3317bb8137f4
    24 #
    24 #
    25 
    25 
    26 include $(SPEC)
    26 include $(SPEC)
    27 include MakeBase.gmk
    27 include MakeBase.gmk
    28 include JavaCompilation.gmk
    28 include JavaCompilation.gmk
    29 include Setup.gmk
       
    30 
    29 
    31 default: all
    30 default: all
    32 
    31 
    33 include Tools.gmk
    32 include Tools.gmk
       
    33 
       
    34 JDK_OUT_CLASSES := $(wildcard $(JDK_OUTPUTDIR)/modules/*)
       
    35 $(eval $(call FillCacheFind, $(JDK_OUT_CLASSES)))
    34 
    36 
    35 include Profiles.gmk
    37 include Profiles.gmk
    36 
    38 
    37 #
    39 #
    38 # This makefile...so that altering will trigger rebuilding include/exclude-lists => jars
    40 # This makefile...so that altering will trigger rebuilding include/exclude-lists => jars
    48 $(eval $(call MakeDir, $(IMAGES_OUTPUTDIR)/lib))
    50 $(eval $(call MakeDir, $(IMAGES_OUTPUTDIR)/lib))
    49 
    51 
    50 ##########################################################################################
    52 ##########################################################################################
    51 
    53 
    52 $(eval $(call SetupArchive,BUILD_JCONSOLE_JAR, , \
    54 $(eval $(call SetupArchive,BUILD_JCONSOLE_JAR, , \
    53     SRCS := $(JDK_OUTPUTDIR)/classes, \
    55     SRCS := $(JDK_OUTPUTDIR)/modules/jdk.jconsole, \
    54     SUFFIXES := .class .gif .png .properties, \
    56     SUFFIXES := .class .gif .png .properties, \
    55     INCLUDES := sun/tools/jconsole com/sun/tools/jconsole, \
    57     INCLUDES := sun/tools/jconsole com/sun/tools/jconsole, \
    56     JARMAIN := sun.tools.jconsole.JConsole, \
    58     JARMAIN := sun.tools.jconsole.JConsole, \
    57     JAR := $(IMAGES_OUTPUTDIR)/lib/jconsole.jar, \
    59     JAR := $(IMAGES_OUTPUTDIR)/lib/jconsole.jar, \
    58     SKIP_METAINF := true))
    60     SKIP_METAINF := true))
    59 
    61 
    60 
    62 
    61 ##########################################################################################
    63 ##########################################################################################
    62 
    64 
    63 $(eval $(call SetupArchive,BUILD_DNS_JAR, , \
    65 $(eval $(call SetupArchive,BUILD_DNS_JAR, , \
    64     SRCS := $(JDK_OUTPUTDIR)/classes, \
    66     SRCS := $(JDK_OUTPUTDIR)/modules/jdk.naming.dns, \
    65     INCLUDES := sun/net/spi/nameservice/dns, \
    67     INCLUDES := sun/net/spi/nameservice/dns, \
    66     EXTRA_FILES := META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor, \
    68     EXTRA_FILES := META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor, \
    67     JAR := $(IMAGES_OUTPUTDIR)/lib/ext/dnsns.jar, \
    69     JAR := $(IMAGES_OUTPUTDIR)/lib/ext/dnsns.jar, \
    68     SKIP_METAINF := true))
    70     SKIP_METAINF := true))
    69 
    71 
    76 
    78 
    77 LOCALEDATA_INCLUDES := $(addprefix sun/text/resources/, $(LOCALEDATA_INCLUDE_LOCALES)) \
    79 LOCALEDATA_INCLUDES := $(addprefix sun/text/resources/, $(LOCALEDATA_INCLUDE_LOCALES)) \
    78     $(addprefix sun/util/resources/, $(LOCALEDATA_INCLUDE_LOCALES))
    80     $(addprefix sun/util/resources/, $(LOCALEDATA_INCLUDE_LOCALES))
    79 
    81 
    80 $(eval $(call SetupArchive,BUILD_LOCALEDATA_JAR, , \
    82 $(eval $(call SetupArchive,BUILD_LOCALEDATA_JAR, , \
    81     SRCS := $(JDK_OUTPUTDIR)/classes, \
    83     SRCS := $(JDK_OUTPUTDIR)/modules/jdk.localedata, \
    82     SUFFIXES := .class _dict _th, \
    84     SUFFIXES := .class _dict _th, \
    83     INCLUDES := $(LOCALEDATA_INCLUDES), \
    85     INCLUDES := $(LOCALEDATA_INCLUDES), \
    84     EXCLUDES := sun/text/resources/th/BreakIteratorRules_th.class, \
       
    85     JAR := $(IMAGES_OUTPUTDIR)/lib/ext/localedata.jar, \
    86     JAR := $(IMAGES_OUTPUTDIR)/lib/ext/localedata.jar, \
    86     SKIP_METAINF := true))
    87     SKIP_METAINF := true))
    87 
    88 
    88 ##########################################################################################
    89 ##########################################################################################
    89 #
    90 #
   163     jdk/nio/zipfs \
   164     jdk/nio/zipfs \
   164     META-INF/services/com.sun.jdi.connect.Connector \
   165     META-INF/services/com.sun.jdi.connect.Connector \
   165     META-INF/services/com.sun.jdi.connect.spi.TransportService \
   166     META-INF/services/com.sun.jdi.connect.spi.TransportService \
   166     META-INF/services/com.sun.tools.attach.spi.AttachProvider \
   167     META-INF/services/com.sun.tools.attach.spi.AttachProvider \
   167     META-INF/services/com.sun.tools.xjc.Plugin \
   168     META-INF/services/com.sun.tools.xjc.Plugin \
       
   169     META-INF/services/javax.script.ScriptEngineFactory \
   168     META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor \
   170     META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor \
   169     META-INF/services/java.nio.file.spi.FileSystemProvider \
   171     META-INF/services/java.nio.file.spi.FileSystemProvider \
   170     org/relaxng/datatype \
   172     org/relaxng/datatype \
   171     sun/awt/HKSCS.class \
   173     sun/awt/HKSCS.class \
   172     sun/awt/motif/X11GB2312.class \
   174     sun/awt/motif/X11GB2312.class \
   173     sun/awt/motif/X11GB2312\$$$$Decoder.class \
   175     sun/awt/motif/X11GB2312$$$$Decoder.class \
   174     sun/awt/motif/X11GB2312\$$$$Encoder.class \
   176     sun/awt/motif/X11GB2312$$$$Encoder.class \
   175     sun/awt/motif/X11GBK.class \
   177     sun/awt/motif/X11GBK.class \
   176     sun/awt/motif/X11GBK\$$$$Encoder.class \
   178     sun/awt/motif/X11GBK$$$$Encoder.class \
   177     sun/awt/motif/X11KSC5601.class \
   179     sun/awt/motif/X11KSC5601.class \
   178     sun/awt/motif/X11KSC5601\$$$$Decoder.class \
   180     sun/awt/motif/X11KSC5601$$$$Decoder.class \
   179     sun/awt/motif/X11KSC5601\$$$$Encoder.class \
   181     sun/awt/motif/X11KSC5601$$$$Encoder.class \
   180     sun/jvmstat \
   182     sun/jvmstat \
   181     sun/net/spi/nameservice/dns \
   183     sun/net/spi/nameservice/dns \
   182     sun/nio/cs/ext \
   184     sun/nio/cs/ext \
   183     sun/rmi/rmic \
   185     sun/rmi/rmic \
   184     sun/security/ec \
   186     sun/security/ec \
   210     sun/util/cldr/CLDRLocaleDataMetaInfo.class \
   212     sun/util/cldr/CLDRLocaleDataMetaInfo.class \
   211     sun/util/resources/cldr \
   213     sun/util/resources/cldr \
   212     $(LOCALEDATA_INCLUDES) \
   214     $(LOCALEDATA_INCLUDES) \
   213     com/oracle/jrockit/jfr \
   215     com/oracle/jrockit/jfr \
   214     oracle/jrockit/jfr \
   216     oracle/jrockit/jfr \
   215     jdk/jfr
   217     jdk/jfr \
       
   218     jdk/internal/dynalink \
       
   219     jdk/nashorn \
       
   220     sun/jvm \
       
   221     toolbarButtonGraphics \
       
   222     sa.properties \
       
   223     com/sun/java/swing/action \
       
   224     com/sun/java/swing/ui \
       
   225     com/oracle/security \
       
   226     #
   216 
   227 
   217 # Find all files in the classes dir to use as dependencies. This could be more fine granular.
   228 # Find all files in the classes dir to use as dependencies. This could be more fine granular.
   218 ALL_FILES_IN_CLASSES := $(call not-containing, _the., $(filter-out %javac_state, \
   229 ALL_FILES_IN_CLASSES := $(call not-containing, _the., $(filter-out %javac_state, \
   219     $(call CacheFind, $(JDK_OUTPUTDIR)/classes)))
   230     $(call CacheFind, $(JDK_OUT_CLASSES))))
   220 
   231 
   221 RT_JAR_MANIFEST_FILE := $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar_manifest
   232 RT_JAR_MANIFEST_FILE := $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar_manifest
   222 RESOURCE_JAR_MANIFEST_FILE := $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar_manifest
   233 RESOURCE_JAR_MANIFEST_FILE := $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar_manifest
   223 
   234 
   224 $(RT_JAR_MANIFEST_FILE): $(MAINMANIFEST) $(BEANMANIFEST)
   235 $(RT_JAR_MANIFEST_FILE): $(MAINMANIFEST) $(BEANMANIFEST)
   250 	$(MKDIR) -p $(@D)
   261 	$(MKDIR) -p $(@D)
   251 	$(RM) $@ $@.tmp
   262 	$(RM) $@ $@.tmp
   252 	$(TOOL_ADDJSUM) $< $@.tmp
   263 	$(TOOL_ADDJSUM) $< $@.tmp
   253 	$(MV) $@.tmp $@
   264 	$(MV) $@.tmp $@
   254 
   265 
   255 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents: $(BUILD_TOOLS) $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.exclude \
   266 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents: $(BUILD_TOOLS_JDK) $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.exclude \
   256     $(ALL_FILES_IN_CLASSES) $(IMAGES_OUTPUTDIR)/lib/classlist
   267     $(ALL_FILES_IN_CLASSES) $(IMAGES_OUTPUTDIR)/lib/classlist
   257 	$(MKDIR) -p $(@D)
   268 	$(MKDIR) -p $(@D)
   258 	$(RM) $@ $@.tmp
   269 	$(RM) $@ $@.tmp
   259 	($(CD) $(JDK_OUTPUTDIR)/classes && \
   270 	($(CD) $(JDK_OUTPUTDIR)/modules && \
   260 	$(TOOL_JARREORDER) \
   271 	$(TOOL_JARREORDER) -m \
   261 	    -o $@.tmp $(IMAGES_OUTPUTDIR)/lib/classlist $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.exclude . )
   272 	    -o $@.tmp $(IMAGES_OUTPUTDIR)/lib/classlist $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.exclude . )
   262 	$(MV) $@.tmp $@
   273 	$(MV) $@.tmp $@
   263 
   274 
   264 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar.contents: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents
   275 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar.contents: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents
   265 	$(MKDIR) -p $(@D)
   276 	$(MKDIR) -p $(@D)
   266 	$(RM) $@ $@.tmp
   277 	$(RM) $@ $@.tmp
   267 	$(GREP) -e '\.class$$' $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents > $@.tmp
   278 	$(GREP) -e '\.class$$' $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents > $@.tmp
   268         ifneq ($(PROFILE), )
   279         ifneq ($(PROFILE), )
   269           # # Add back classes from excluded packages (fixing the $ substitution in the process)
   280           # Add back classes from excluded packages (fixing the $ substitution in the process)
       
   281           # This currently won't work with modular build layout, but there currently are no 
       
   282           # types needing to be re added.
   270 	  for type in $(subst \$$,\, $(RT_JAR_INCLUDE_TYPES)) ; do \
   283 	  for type in $(subst \$$,\, $(RT_JAR_INCLUDE_TYPES)) ; do \
   271 	    $(ECHO) $$type >> $@.tmp ; \
   284 	    $(ECHO) $$type >> $@.tmp ; \
   272 	  done
   285 	  done
   273         endif
   286         endif
   274 	$(MV) $@.tmp $@
   287 	$(MV) $@.tmp $@
   275 
   288 
   276 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents
   289 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents
   277 	$(MKDIR) -p $(@D)
   290 	$(MKDIR) -p $(@D)
   278 	$(RM) $@ $@.tmp
   291 	$(RM) $@ $@.tmp
   279 	$(GREP) -v -e '\.class$$' \
   292 	$(GREP) -v -e '\.class$$' \
   280 	    -e '/_the\.*' -e '^_the\.*' -e '\\_the\.*' -e 'javac_state' \
   293 	    -e '/_the\.' -e '^_the\.' -e '\\_the\.' -e ' _the\.' -e 'javac_state' \
   281 	    $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents > $@.tmp
   294 	    $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents > $@.tmp
   282         ifneq ($(PROFILE), )
   295         ifneq ($(PROFILE), )
   283           # # Strip out all META-INF/services/ entries
   296           # Strip out all META-INF/services/ entries
   284 	  $(GREP) -v -e 'META-INF/services/' $@.tmp > $@.tmp2
   297 	  $(GREP) -v -e 'META-INF/services/' $@.tmp > $@.tmp2
   285           # # Add back the required services
   298           # Add back the required services
   286           # # FIXME: On Solaris if PROFILE_INCLUDE_METAINF_SERVICES is not defined
   299           # FIXME: On Solaris if PROFILE_INCLUDE_METAINF_SERVICES is not defined
   287           # # we get a syntax error from sh. That doesn't happen on linux
   300           # we get a syntax error from sh. That doesn't happen on linux
       
   301           # Preserve any -C <dir> part of the original include line.
   288 	  for service in $(PROFILE_INCLUDE_METAINF_SERVICES) ; do \
   302 	  for service in $(PROFILE_INCLUDE_METAINF_SERVICES) ; do \
   289 	    $(ECHO) $$service >> $@.tmp2; \
   303 	    $(GREP) -e "$$service" $@.tmp >> $@.tmp2; \
   290 	  done
   304 	  done
   291 	  $(MV) $@.tmp2 $@.tmp
   305 	  $(MV) $@.tmp2 $@.tmp
   292         endif
   306         endif
   293 	$(MV) $@.tmp $@
   307 	$(MV) $@.tmp $@
   294 
   308 
   311 # This is the real target
   325 # This is the real target
   312 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/rt.jar: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar.contents $(RT_JAR_MANIFEST_FILE) $(PROFILE_VERSION_CLASS_TARGETS)
   326 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/rt.jar: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar.contents $(RT_JAR_MANIFEST_FILE) $(PROFILE_VERSION_CLASS_TARGETS)
   313 	$(ECHO) Creating rt.jar $(PROFILE) Compressed=$(COMPRESS_JARS)
   327 	$(ECHO) Creating rt.jar $(PROFILE) Compressed=$(COMPRESS_JARS)
   314 	$(MKDIR) -p $(@D)
   328 	$(MKDIR) -p $(@D)
   315 	$(RM) $@ $@.tmp
   329 	$(RM) $@ $@.tmp
   316 	$(CD) $(JDK_OUTPUTDIR)/classes && \
   330 	$(CD) $(JDK_OUTPUTDIR)/modules && \
   317 	$(JAR) $(RT_JAR_CREATE_OPTIONS) $@.tmp $(RT_JAR_MANIFEST_FILE) \
   331 	$(JAR) $(RT_JAR_CREATE_OPTIONS) $@.tmp $(RT_JAR_MANIFEST_FILE) \
   318 	    @$(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar.contents && \
   332 	    @$(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar.contents && \
   319 	if [ -f $(CLASS_FILE) ]; then \
   333 	if [ -f $(CLASS_FILE) ]; then \
   320 	  $(ECHO) Updating rt.jar $(PROFILE) && \
   334 	  $(ECHO) Updating rt.jar $(PROFILE) && \
   321 	  $(CD) $(patsubst %$(VERSION_CLASS_PATH), %, $(CLASS_FILE)) && \
   335 	  $(CD) $(patsubst %$(VERSION_CLASS_PATH), %, $(CLASS_FILE)) && \
   326 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/resources.jar: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents \
   340 $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/resources.jar: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents \
   327     $(RESOURCE_JAR_MANIFEST_FILE)
   341     $(RESOURCE_JAR_MANIFEST_FILE)
   328 	$(ECHO) Creating resources.jar
   342 	$(ECHO) Creating resources.jar
   329 	$(MKDIR) -p $(@D)
   343 	$(MKDIR) -p $(@D)
   330 	$(RM) $@ $@.tmp
   344 	$(RM) $@ $@.tmp
   331 	$(CD) $(JDK_OUTPUTDIR)/classes && \
   345 	$(CD) $(JDK_OUTPUTDIR)/modules && \
   332 	$(JAR) $(RT_JAR_CREATE_OPTIONS) $@.tmp $(RESOURCE_JAR_MANIFEST_FILE) \
   346 	$(JAR) $(RT_JAR_CREATE_OPTIONS) $@.tmp $(RESOURCE_JAR_MANIFEST_FILE) \
   333 	    @$(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents
   347 	    @$(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents
   334 	$(MV) $@.tmp $@
   348 	$(MV) $@.tmp $@
   335 
   349 
   336 ##########################################################################################
   350 ##########################################################################################
   337 
   351 
   338 ifneq ($(OPENJDK_TARGET_OS), windows)
   352 ifneq ($(OPENJDK_TARGET_OS), windows)
   339   CHARSETS_EXTRA_FILES := sun/awt/motif/X11GBK.class \
   353   CHARSETS_EXTRA_FILES := sun/awt/motif/X11GBK.class \
   340       sun/awt/motif/X11GB2312\$$$$Decoder.class \
   354       sun/awt/motif/X11GB2312$$$$Decoder.class \
   341       sun/awt/motif/X11GB2312.class \
   355       sun/awt/motif/X11GB2312.class \
   342       sun/awt/motif/X11KSC5601\$$$$Decoder.class \
   356       sun/awt/motif/X11KSC5601$$$$Decoder.class \
   343       sun/awt/motif/X11KSC5601\$$$$Encoder.class \
   357       sun/awt/motif/X11KSC5601$$$$Encoder.class \
   344       sun/awt/motif/X11GB2312\$$$$Encoder.class \
   358       sun/awt/motif/X11GB2312$$$$Encoder.class \
   345       sun/awt/motif/X11GBK\$$$$Encoder.class \
   359       sun/awt/motif/X11GBK$$$$Encoder.class \
   346       sun/awt/motif/X11KSC5601.class
   360       sun/awt/motif/X11KSC5601.class
   347 endif
   361 endif
   348 
   362 
   349 $(eval $(call SetupArchive,BUILD_CHARSETS_JAR, , \
   363 $(eval $(call SetupArchive,BUILD_CHARSETS_JAR, , \
   350     SRCS := $(JDK_OUTPUTDIR)/classes, \
   364     SRCS := $(JDK_OUT_CLASSES), \
   351     SUFFIXES := .class .dat, \
   365     SUFFIXES := .class .dat, \
   352     INCLUDES := sun/nio/cs/ext, \
   366     INCLUDES := sun/nio/cs/ext, \
   353     EXTRA_FILES := sun/awt/HKSCS.class \
   367     EXTRA_FILES := sun/awt/HKSCS.class \
   354         $(CHARSETS_EXTRA_FILES), \
   368         $(CHARSETS_EXTRA_FILES), \
   355     JAR := $(IMAGES_OUTPUTDIR)/lib/charsets.jar, \
   369     JAR := $(IMAGES_OUTPUTDIR)/lib/charsets.jar, \
   357     CHECK_COMPRESS_JAR := true))
   371     CHECK_COMPRESS_JAR := true))
   358 
   372 
   359 ##########################################################################################
   373 ##########################################################################################
   360 
   374 
   361 $(eval $(call SetupArchive,BUILD_ZIPFS_JAR, , \
   375 $(eval $(call SetupArchive,BUILD_ZIPFS_JAR, , \
   362     SRCS := $(JDK_OUTPUTDIR)/classes, \
   376     SRCS := $(JDK_OUT_CLASSES), \
   363     INCLUDES := jdk/nio/zipfs, \
   377     INCLUDES := jdk/nio/zipfs, \
   364     EXTRA_FILES := META-INF/services/java.nio.file.spi.FileSystemProvider, \
   378     EXTRA_FILES := META-INF/services/java.nio.file.spi.FileSystemProvider, \
   365     JAR := $(IMAGES_OUTPUTDIR)/lib/ext/zipfs.jar, \
   379     JAR := $(IMAGES_OUTPUTDIR)/lib/ext/zipfs.jar, \
   366     SKIP_METAINF := true, \
   380     SKIP_METAINF := true, \
   367     CHECK_COMPRESS_JAR := true))
   381     CHECK_COMPRESS_JAR := true))
   369 ##########################################################################################
   383 ##########################################################################################
   370 
   384 
   371 ifndef OPENJDK
   385 ifndef OPENJDK
   372   ifeq ($(ENABLE_JFR), true)
   386   ifeq ($(ENABLE_JFR), true)
   373     $(eval $(call SetupArchive,BUILD_JFR_JAR, , \
   387     $(eval $(call SetupArchive,BUILD_JFR_JAR, , \
   374         SRCS := $(JDK_OUTPUTDIR)/classes, \
   388         SRCS := $(JDK_OUTPUTDIR)/modules/jdk.jfr, \
   375         SUFFIXES := .class .jfc .xsd, \
   389         SUFFIXES := .class .jfc .xsd, \
   376         INCLUDES := com/oracle/jrockit/jfr \
   390         INCLUDES := com/oracle/jrockit/jfr \
   377             oracle/jrockit/jfr \
   391             oracle/jrockit/jfr \
   378             jdk/jfr, \
   392             jdk/jfr, \
   379         JAR := $(IMAGES_OUTPUTDIR)/lib/jfr.jar, \
   393         JAR := $(IMAGES_OUTPUTDIR)/lib/jfr.jar, \
   385 endif
   399 endif
   386 
   400 
   387 ##########################################################################################
   401 ##########################################################################################
   388 
   402 
   389 $(eval $(call SetupArchive,BUILD_JSSE_JAR, , \
   403 $(eval $(call SetupArchive,BUILD_JSSE_JAR, , \
   390     SRCS := $(JDK_OUTPUTDIR)/classes, \
   404     SRCS := $(JDK_OUT_CLASSES), \
   391     INCLUDES := sun/security/provider/Sun.class \
   405     INCLUDES := sun/security/provider/Sun.class \
   392         sun/security/rsa/SunRsaSign.class \
   406         sun/security/rsa/SunRsaSign.class \
   393         sun/security/ssl \
   407         sun/security/ssl \
   394         com/sun/net/ssl/internal/ssl, \
   408         com/sun/net/ssl/internal/ssl, \
   395     JAR := $(IMAGES_OUTPUTDIR)/lib/jsse.jar, \
   409     JAR := $(IMAGES_OUTPUTDIR)/lib/jsse.jar, \
   398     CHECK_COMPRESS_JAR := true))
   412     CHECK_COMPRESS_JAR := true))
   399 
   413 
   400 ##########################################################################################
   414 ##########################################################################################
   401 
   415 
   402 $(eval $(call SetupArchive,BUILD_SWINGBEANS_JAR, , \
   416 $(eval $(call SetupArchive,BUILD_SWINGBEANS_JAR, , \
   403     SRCS := $(JDK_OUTPUTDIR)/classes, \
   417     SRCS := $(JDK_OUTPUTDIR)/modules/java.desktop, \
   404     SUFFIXES := BeanInfo.class .gif, \
   418     SUFFIXES := BeanInfo.class .gif, \
   405     INCLUDES := javax/swing sun/swing, \
   419     INCLUDES := javax/swing sun/swing, \
   406     EXCLUDES := javax/swing/plaf, \
   420     EXCLUDES := javax/swing/plaf, \
   407     EXTRA_FILES := javax/swing/SwingBeanInfoBase.class sun/swing/BeanInfoUtils.class, \
   421     EXTRA_FILES := javax/swing/SwingBeanInfoBase.class sun/swing/BeanInfoUtils.class, \
   408     JAR := $(IMAGES_OUTPUTDIR)/lib/dt.jar, \
   422     JAR := $(IMAGES_OUTPUTDIR)/lib/dt.jar, \
   414 include gensrc/GensrcCLDR.gmk
   428 include gensrc/GensrcCLDR.gmk
   415 
   429 
   416 CLDRDATA_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/cldrdata.jar
   430 CLDRDATA_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/cldrdata.jar
   417 
   431 
   418 $(eval $(call SetupArchive,BUILD_CLDRDATA_JAR, , \
   432 $(eval $(call SetupArchive,BUILD_CLDRDATA_JAR, , \
   419     SRCS := $(JDK_OUTPUTDIR)/classes, \
   433     SRCS := $(JDK_OUTPUTDIR)/modules/jdk.localedata \
       
   434         $(JDK_OUTPUTDIR)/modules/java.base, \
   420     SUFFIXES := .class, \
   435     SUFFIXES := .class, \
   421     INCLUDES := sun/text/resources/cldr \
   436     INCLUDES := sun/text/resources/cldr \
   422         sun/util/cldr \
   437         sun/util/cldr/CLDRLocaleDataMetaInfo.class \
   423         sun/util/resources/cldr, \
   438         sun/util/resources/cldr, \
   424     EXCLUDES := sun/util/cldr/CLDRLocaleProviderAdapter, \
       
   425     JAR := $(CLDRDATA_JAR_DST), \
   439     JAR := $(CLDRDATA_JAR_DST), \
   426     EXTRA_MANIFEST_ATTR := CLDR-Version: $(CLDRVERSION), \
   440     EXTRA_MANIFEST_ATTR := CLDR-Version: $(CLDRVERSION), \
   427     SKIP_METAINF := true))
   441     SKIP_METAINF := true))
   428 
   442 
   429 ##########################################################################################
   443 ##########################################################################################
   482     sun/tools/util
   496     sun/tools/util
   483 
   497 
   484 # The sjavac tools is not ready for public consumption.
   498 # The sjavac tools is not ready for public consumption.
   485 TOOLS_JAR_EXCLUDES = com/sun/tools/sjavac
   499 TOOLS_JAR_EXCLUDES = com/sun/tools/sjavac
   486 
   500 
       
   501 TOOLS_JAR_SRC := $(addprefix $(JDK_OUTPUTDIR)/modules/,\
       
   502     java.corba \
       
   503     java.desktop \
       
   504     jdk.attach \
       
   505     jdk.compiler \
       
   506     jdk.dev \
       
   507     jdk.javadoc \
       
   508     jdk.jconsole \
       
   509     jdk.jcmd \
       
   510     jdk.jdi \
       
   511     jdk.jvmstat \
       
   512     jdk.rmic \
       
   513     jdk.runtime \
       
   514     jdk.xml.bind \
       
   515     jdk.xml.ws \
       
   516     )
       
   517     #
       
   518 
   487 $(eval $(call SetupArchive,BUILD_TOOLS_JAR, , \
   519 $(eval $(call SetupArchive,BUILD_TOOLS_JAR, , \
   488     SRCS := $(JDK_OUTPUTDIR)/classes, \
   520     SRCS := $(TOOLS_JAR_SRC), \
   489     SUFFIXES := .class .prp .gif .properties .xml .css .xsd .js .html .txt .java \
   521     SUFFIXES := .class .prp .gif .properties .xml .css .xsd .js .html .txt .java \
   490         Tool aliasmap options, \
   522         Tool aliasmap options, \
   491     INCLUDES := $(TOOLS_JAR_INCLUDES), \
   523     INCLUDES := $(TOOLS_JAR_INCLUDES), \
   492     EXCLUDES := $(TOOLS_JAR_EXCLUDES), \
   524     EXCLUDES := $(TOOLS_JAR_EXCLUDES), \
   493     EXTRA_FILES := META-INF/services/com.sun.jdi.connect.Connector \
   525     EXTRA_FILES := \
       
   526         $(JDK_OUTPUTDIR)/modules/jdk.jdi/META-INF/services/com.sun.jdi.connect.Connector \
       
   527         $(JDK_OUTPUTDIR)/classes/META-INF/services/com.sun.jdi.connect.Connector \
   494         META-INF/services/com.sun.jdi.connect.spi.TransportService \
   528         META-INF/services/com.sun.jdi.connect.spi.TransportService \
   495         META-INF/services/com.sun.tools.attach.spi.AttachProvider \
   529         META-INF/services/com.sun.tools.attach.spi.AttachProvider \
   496         META-INF/services/com.sun.tools.internal.ws.wscompile.Plugin \
   530         META-INF/services/com.sun.tools.internal.ws.wscompile.Plugin \
   497         META-INF/services/com.sun.tools.internal.xjc.Plugin, \
   531         META-INF/services/com.sun.tools.internal.xjc.Plugin, \
   498     JAR := $(IMAGES_OUTPUTDIR)/lib/tools.jar, \
   532     JAR := $(IMAGES_OUTPUTDIR)/lib/tools.jar, \
   531 
   565 
   532 $(IMAGES_OUTPUTDIR)/symbols/_the.symbols: $(IMAGES_OUTPUTDIR)/lib/rt.jar
   566 $(IMAGES_OUTPUTDIR)/symbols/_the.symbols: $(IMAGES_OUTPUTDIR)/lib/rt.jar
   533 	$(RM) -r $(IMAGES_OUTPUTDIR)/symbols/META-INF/sym
   567 	$(RM) -r $(IMAGES_OUTPUTDIR)/symbols/META-INF/sym
   534 	$(MKDIR) -p $(IMAGES_OUTPUTDIR)/symbols/META-INF/sym
   568 	$(MKDIR) -p $(IMAGES_OUTPUTDIR)/symbols/META-INF/sym
   535 	$(JAVA) $(NEW_JAVAC) \
   569 	$(JAVA) $(NEW_JAVAC) \
   536 	    -bootclasspath $(JDK_OUTPUTDIR)/classes \
   570 	    -bootclasspath "$(IMAGES_OUTPUTDIR)/lib/rt.jar" \
   537 	    -XDprocess.packages -proc:only \
   571 	    -XDprocess.packages -proc:only \
   538 	    -processor com.sun.tools.javac.sym.CreateSymbols \
   572 	    -processor com.sun.tools.javac.sym.CreateSymbols \
   539 	    -Acom.sun.tools.javac.sym.Jar=$(IMAGES_OUTPUTDIR)/lib/rt.jar \
   573 	    -Acom.sun.tools.javac.sym.Jar=$(IMAGES_OUTPUTDIR)/lib/rt.jar \
   540 	    -Acom.sun.tools.javac.sym.Dest=$(IMAGES_OUTPUTDIR)/symbols/META-INF/sym/rt.jar \
   574 	    -Acom.sun.tools.javac.sym.Dest=$(IMAGES_OUTPUTDIR)/symbols/META-INF/sym/rt.jar \
   541 	    -Acom.sun.tools.javac.sym.Profiles=profile-rtjar-includes.txt \
   575 	    -Acom.sun.tools.javac.sym.Profiles=profile-rtjar-includes.txt \
   598         org/xml/sax \
   632         org/xml/sax \
   599         #
   633         #
   600     SRC_ZIP_EXCLUDES = javax/swing/beaninfo
   634     SRC_ZIP_EXCLUDES = javax/swing/beaninfo
   601 endif
   635 endif
   602 
   636 
   603 SRC_ZIP_SRCS = $(JDK_TOPDIR)/src/share/classes $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes
   637 SRC_ZIP_SRCS := $(wildcard \
   604 SRC_ZIP_SRCS += $(JDK_OUTPUTDIR)/gensrc
   638     $(JDK_TOPDIR)/src/*/share/classes \
   605 SRC_ZIP_SRCS += $(JDK_OUTPUTDIR)/impsrc
   639     $(JDK_TOPDIR)/src/*/$(OPENJDK_TARGET_OS)/classes \
   606 SRC_ZIP_SRCS += $(JDK_OUTPUTDIR)/gendocsrc_rmic
   640     $(JDK_TOPDIR)/src/*/$(OPENJDK_TARGET_OS_API_DIR)/classes \
       
   641     $(LANGTOOLS_TOPDIR)/src/*/share/classes \
       
   642     $(CORBA_TOPDIR)/src/*/share/classes \
       
   643     $(JAXP_TOPDIR)/src/*/share/classes \
       
   644     $(JAXWS_TOPDIR)/src/*/share/classes \
       
   645     $(JDK_OUTPUTDIR)/gensrc/j* \
       
   646     $(JDK_OUTPUTDIR)/gendocsrc_rmic \
       
   647     $(CORBA_OUTPUTDIR)/gensrc/j* \
       
   648     ) \
       
   649     #
   607 ifndef OPENJDK
   650 ifndef OPENJDK
   608   SRC_ZIP_SRCS += $(JDK_TOPDIR)/src/closed/share/classes
   651   SRC_ZIP_SRCS += $(wildcard $(JDK_TOPDIR)/src/closed/*/share/classes)
   609 endif
   652 endif
   610 
   653 
   611 # Need to copy launcher src files into desired directory structure
   654 # Need to copy launcher src files into desired directory structure
   612 # before zipping the sources.
   655 # before zipping the sources.
   613 LAUNCHER_SRC_FILES := $(wildcard $(JDK_TOPDIR)/src/share/bin/*) \
   656 $(eval $(call SetupCopyFiles,COPY_LAUNCHER_SRC, \
   614     $(wildcard $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/java_md*)
   657     SRC := $(JDK_TOPDIR)/src/java.base, \
   615 LAUNCHER_ZIP_SRC := $(patsubst $(JDK_TOPDIR)/src/share/bin/%, $(IMAGES_OUTPUTDIR)/src/launcher/%, \
   658     DEST := $(IMAGES_OUTPUTDIR)/src/launcher, \
   616     $(patsubst $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/%, $(IMAGES_OUTPUTDIR)/src/launcher/%, \
   659     FLATTEN := true, \
   617     $(LAUNCHER_SRC_FILES)))
   660     FILES := $(wildcard \
   618 
   661         $(JDK_TOPDIR)/src/java.base/share/native/launcher/* \
   619 $(IMAGES_OUTPUTDIR)/src/launcher/%: $(JDK_TOPDIR)/src/share/bin/%
   662         $(JDK_TOPDIR)/src/java.base/share/native/libjli/* \
   620 	$(install-file)
   663         $(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_API_DIR)/native/libjli/java_md*)))
   621 
   664 
   622 $(IMAGES_OUTPUTDIR)/src/launcher/%: $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/%
   665 LAUNCHER_ZIP_SRC := $(COPY_LAUNCHER_SRC)
   623 	$(install-file)
       
   624 
   666 
   625 $(IMAGES_OUTPUTDIR)/src.zip: $(LAUNCHER_ZIP_SRC)
   667 $(IMAGES_OUTPUTDIR)/src.zip: $(LAUNCHER_ZIP_SRC)
   626 
   668 
   627 # This dir needs to exist before macro is evaluated to avoid warning from find.
   669 # This dir needs to exist before macro is evaluated to avoid warning from find.
   628 $(eval $(call MakeDir, $(IMAGES_OUTPUTDIR)/src))
   670 $(eval $(call MakeDir, $(IMAGES_OUTPUTDIR)/src))
   634     ZIP := $(IMAGES_OUTPUTDIR)/src.zip, \
   676     ZIP := $(IMAGES_OUTPUTDIR)/src.zip, \
   635     EXTRA_DEPS := $(LAUNCHER_ZIP_SRC)))
   677     EXTRA_DEPS := $(LAUNCHER_ZIP_SRC)))
   636 
   678 
   637 ##########################################################################################
   679 ##########################################################################################
   638 
   680 
   639 ifndef OPENJDK
       
   640   ifeq ($(OPENJDK_TARGET_OS), windows)
       
   641 
       
   642     $(eval $(call SetupArchive,BUILD_JACCESS_JAR, , \
       
   643         SRCS := $(JDK_OUTPUTDIR)/classes, \
       
   644         INCLUDES := com/sun/java/accessibility/util, \
       
   645         JAR := $(IMAGES_OUTPUTDIR)/lib/ext/jaccess.jar, \
       
   646         SKIP_METAINF := true))
       
   647 
       
   648     JARS += $(IMAGES_OUTPUTDIR)/lib/ext/jaccess.jar
       
   649 
       
   650     ifeq ($(OPENJDK_TARGET_CPU_BITS), 32)
       
   651       $(eval $(call SetupArchive,BUILD_ACCESSBRIDGE_32_JAR, , \
       
   652           SRCS := $(JDK_OUTPUTDIR)/classes_ab/32bit, \
       
   653           INCLUDES := com/sun/java/accessibility, \
       
   654           JAR := $(IMAGES_OUTPUTDIR)/lib/ext/access-bridge-32.jar, \
       
   655           SKIP_METAINF := true))
       
   656 
       
   657       $(eval $(call SetupArchive,BUILD_ACCESSBRIDGE_LEGACY_JAR, , \
       
   658           SRCS := $(JDK_OUTPUTDIR)/classes_ab/legacy, \
       
   659           INCLUDES := com/sun/java/accessibility, \
       
   660           JAR := $(IMAGES_OUTPUTDIR)/lib/ext/access-bridge.jar, \
       
   661           SKIP_METAINF := true))
       
   662 
       
   663       JARS += $(IMAGES_OUTPUTDIR)/lib/ext/access-bridge-32.jar \
       
   664           $(IMAGES_OUTPUTDIR)/lib/ext/access-bridge.jar
       
   665     else
       
   666       $(eval $(call SetupArchive,BUILD_ACCESSBRIDGE_64_JAR, , \
       
   667           SRCS := $(JDK_OUTPUTDIR)/classes_ab/64bit, \
       
   668           INCLUDES := com/sun/java/accessibility, \
       
   669           JAR := $(IMAGES_OUTPUTDIR)/lib/ext/access-bridge-64.jar, \
       
   670           SKIP_METAINF := true))
       
   671 
       
   672       JARS += $(IMAGES_OUTPUTDIR)/lib/ext/access-bridge-64.jar
       
   673     endif
       
   674   endif
       
   675 endif
       
   676 
       
   677 ##########################################################################################
       
   678 
       
   679 # This file is imported from hotspot in Import.gmk. Copying it into images/lib so that
   681 # This file is imported from hotspot in Import.gmk. Copying it into images/lib so that
   680 # all jars can be found in one place when creating images in Images.gmk. It needs to be
   682 # all jars can be found in one place when creating images in Images.gmk. It needs to be
   681 # done here so that clean targets can be simple and accurate.
   683 # done here so that clean targets can be simple and accurate.
   682 $(IMAGES_OUTPUTDIR)/lib/sa-jdi.jar: $(JDK_OUTPUTDIR)/lib/sa-jdi.jar
   684 $(IMAGES_OUTPUTDIR)/lib/sa-jdi.jar: $(HOTSPOT_DIST)/lib/sa-jdi.jar
   683 	$(install-file)
   685 	$(install-file)
   684 
   686 
   685 ##########################################################################################
   687 ##########################################################################################
   686 #
   688 #
   687 # sec-bin.zip is used by builds where the corresponding sources are not available
   689 # sec-bin.zip is used by builds where the corresponding sources are not available
   688 #
   690 #
   689 $(eval $(call SetupZipArchive,BUILD_SEC_BIN_ZIP, \
   691 $(eval $(call SetupZipArchive,BUILD_SEC_BIN_ZIP, \
   690     SRC := $(JDK_OUTPUTDIR), \
   692     SRC := $(JDK_OUTPUTDIR), \
   691     INCLUDES := classes/javax/net \
   693     INCLUDES := modules/java.base/javax/net \
   692         classes/javax/security/cert \
   694         modules/java.base/javax/security/cert \
   693         classes/com/sun/net/ssl \
   695         modules/java.base/com/sun/net/ssl \
   694         classes/com/sun/security/cert \
   696         modules/java.base/com/sun/security/cert \
   695         classes/sun/net/www/protocol/https \
   697         modules/java.base/sun/net/www/protocol/https \
   696         classes/sun/security/pkcs12 \
   698         modules/java.base/sun/security/pkcs12 \
   697         classes/sun/security/ssl \
   699         modules/java.base/sun/security/ssl \
   698         classes/sun/security/krb5 \
   700         modules/java.security.jgss/sun/security/krb5 \
   699         classes/sun/security/krb5/internal \
   701         modules/java.security.jgss/sun/security/krb5/internal \
   700         classes/sun/security/krb5/internal/ccache \
   702         modules/java.security.jgss/sun/security/krb5/internal/ccache \
   701         classes/sun/security/krb5/internal/crypto \
   703         modules/java.security.jgss/sun/security/krb5/internal/crypto \
   702         classes/sun/security/krb5/internal/ktab \
   704         modules/java.security.jgss/sun/security/krb5/internal/ktab \
   703         classes/sun/security/krb5/internal/rcache \
   705         modules/java.security.jgss/sun/security/krb5/internal/rcache \
   704         classes/sun/security/krb5/internal/util, \
   706         modules/java.security.jgss/sun/security/krb5/internal/util, \
   705     INCLUDE_FILES := classes/sun/security/jgss/spi/GSSContextSpi.class, \
   707     INCLUDE_FILES := modules/java.security.jgss/sun/security/jgss/spi/GSSContextSpi.class, \
   706     EXCLUDES := classes/sun/security/krb5/internal/tools, \
   708     EXCLUDES := modules/java.security.jgss/sun/security/krb5/internal/tools, \
   707     ZIP := $(IMAGES_OUTPUTDIR)/sec-bin.zip))
   709     ZIP := $(IMAGES_OUTPUTDIR)/sec-bin.zip))
   708 
   710 
   709 JARS += $(IMAGES_OUTPUTDIR)/sec-bin.zip
   711 JARS += $(IMAGES_OUTPUTDIR)/sec-bin.zip
   710 
   712 
   711 ##########################################################################################
   713 ##########################################################################################
   714 #
   716 #
   715 ifeq ($(OPENJDK_TARGET_OS), windows)
   717 ifeq ($(OPENJDK_TARGET_OS), windows)
   716   # sec-windows-bin.zip is used by builds where the corresponding sources are not available
   718   # sec-windows-bin.zip is used by builds where the corresponding sources are not available
   717   $(eval $(call SetupZipArchive,BUILD_SEC_WINDOWS_BIN_ZIP, \
   719   $(eval $(call SetupZipArchive,BUILD_SEC_WINDOWS_BIN_ZIP, \
   718       SRC := $(JDK_OUTPUTDIR), \
   720       SRC := $(JDK_OUTPUTDIR), \
   719       INCLUDES := classes/sun/security/krb5/internal/tools, \
   721       INCLUDES := modules/java.security.jgss/sun/security/krb5/internal/tools, \
   720       ZIP := $(IMAGES_OUTPUTDIR)/sec-windows-bin.zip))
   722       ZIP := $(IMAGES_OUTPUTDIR)/sec-windows-bin.zip))
   721 
   723 
   722   JARS += $(IMAGES_OUTPUTDIR)/sec-windows-bin.zip
   724   JARS += $(IMAGES_OUTPUTDIR)/sec-windows-bin.zip
   723 
   725 
   724   # JGSS files contain the native Kerberos library
   726   # JGSS files contain the native Kerberos library