makefiles/Images.gmk
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File jdk Sdiff makefiles

makefiles/Images.gmk

Print this page




  24 #
  25 
  26 include $(SPEC)
  27 include MakeBase.gmk
  28 include JavaCompilation.gmk
  29 include Setup.gmk
  30 
  31 default: images
  32 
  33 # Prepare the find cache. Only used if running on windows.
  34 $(eval $(call FillCacheFind,\
  35     $(wildcard $(JDK_OUTPUTDIR)/bin \
  36                $(JDK_OUTPUTDIR)/lib \
  37                $(IMAGES_OUTPUTDIR)/lib \
  38                $(JDK_OUTPUTDIR)/include \
  39                $(JDK_OUTPUTDIR)/sample \
  40                $(JDK_OUTPUTDIR)/demo)))
  41 
  42 include Tools.gmk
  43 


  44 # Note: This double-colon rule is intentional, to support
  45 # custom make file integration.
  46 images:: jre-image jdk-image
  47 
  48 overlay-images: jre-overlay-image jdk-overlay-image
  49 
  50 
  51 -include $(CUSTOM_MAKE_DIR)/Images.gmk
  52 
  53 
  54 # Processing license files from source area to image area
  55 # These will be modified to have the platform specific EOL chars.
  56 define process-doc-file
  57         $(ECHO) $(LOG_INFO) Processing $(patsubst $(OUTPUT_ROOT)/%,%,$@)
  58         $(MKDIR) -p $(@D)
  59         $(RM) $@
  60         $(SED) 's/$$//g' $< > $@
  61         $(CHMOD) 444 $@
  62 endef
  63 


  67   # Param 3 - src file
  68   # Param 4 - variable to add targets to
  69 
  70   # Remove src dir root from src file
  71   $2_$3_FILE := $$(patsubst $1/%,%,$3)
  72 
  73   $2/$$($2_$3_FILE): $3
  74         $(ECHO) $(LOG_INFO) Copying $$(patsubst $(OUTPUT_ROOT)/%,%,$$@)
  75         $$(install-file)
  76 
  77   $4 += $2/$$($2_$3_FILE)
  78 endef
  79 
  80 ################################################################################
  81 #
  82 # JRE and JDK build rules
  83 #
  84 ################################################################################
  85 #
  86 # Variable prefixes explained:
  87 # JRE_ refers to files in the j2re-image.
  88 # JDK_ refers to files in the j2sdk-image outside of the jre subdir.
  89 # JDKJRE_ refers to files in the j2sdk-image inside the jre subdir.
  90 #
  91 
  92 ################################################################################
  93 # /bin dir
  94 
  95 NOT_JRE_BIN_FILES := \

  96         appletviewer$(EXE_SUFFIX) \
  97         extcheck$(EXE_SUFFIX) \
  98         idlj$(EXE_SUFFIX) \
  99         jar$(EXE_SUFFIX) \
 100         jarsigner$(EXE_SUFFIX) \
 101         java-rmi.cgi \
 102         javac$(EXE_SUFFIX) \
 103         javadoc$(EXE_SUFFIX) \
 104         javah$(EXE_SUFFIX) \
 105         javap$(EXE_SUFFIX) \
 106         jcmd$(EXE_SUFFIX) \
 107         jdb$(EXE_SUFFIX) \
 108         jps$(EXE_SUFFIX) \
 109         jrunscript$(EXE_SUFFIX) \
 110         jstat$(EXE_SUFFIX) \
 111         jstatd$(EXE_SUFFIX) \
 112         jstack$(EXE_SUFFIX) \
 113         packagebean$(SCRIPT_SUFFIX) \
 114         rmic$(EXE_SUFFIX) \
 115         serialver$(EXE_SUFFIX) \
 116         unregbean$(EXE_SUFFIX) \
 117         jconsole$(EXE_SUFFIX) \
 118         jinfo$(EXE_SUFFIX) \
 119         jmap$(EXE_SUFFIX) \
 120         native2ascii$(EXE_SUFFIX) \
 121         xjc$(EXE_SUFFIX) \
 122         wsgen$(EXE_SUFFIX) \
 123         wsimport$(EXE_SUFFIX) \
 124         schemagen$(EXE_SUFFIX) \
 125         jsadebugd$(EXE_SUFFIX) \
 126         jhat$(EXE_SUFFIX)

 127 
 128 WINDOWS_JDK_BIN_FILES = \
 129         $(EXE_SUFFIX) \
 130         $(LIBRARY_PREFIX)jli$(SHARED_LIBRARY_SUFFIX) \
 131         $(notdir $(MSVCR_DLL))
 132 
 133 WINDOWS_JDKJRE_BIN_FILES := \
 134         $(LIBRARY_PREFIX)attach$(SHARED_LIBRARY_SUFFIX) \
 135         $(SALIB_NAME)
 136 
 137 # Find all files in bin dir
 138 ALL_BIN_LIST := $(call CacheFind,$(JDK_OUTPUTDIR)/bin)
 139 
 140 # Prevent sjavac from entering the images.
 141 ALL_BIN_LIST := $(filter-out %/sjavac,$(ALL_BIN_LIST))
 142 
 143 # For unknown reason the debuginfo files for executables are not put into images
 144 # e.g filter them out
 145 ifneq ($(OPENJDK_TARGET_OS),windows)
 146     ALL_BIN_LIST := $(filter-out %.debuginfo %.diz, $(ALL_BIN_LIST))


 178 $(foreach f,$(filter-out $(OVERLAY_FILTER),$(JDK_BIN_LIST)),\
 179     $(eval $(call AddFileToCopy,$(JDK_OUTPUTDIR),$(JDK_IMAGE_DIR),$f,JDK_BIN_TARGETS)))
 180 $(foreach f,$(filter-out $(OVERLAY_FILTER),$(JDKJRE_BIN_LIST)),\
 181     $(eval $(call AddFileToCopy,$(JDK_OUTPUTDIR),$(JDK_IMAGE_DIR)/jre,$f,JDKJRE_BIN_TARGETS)))
 182 
 183 $(foreach f,$(filter $(OVERLAY_FILTER),$(JRE_BIN_LIST)),\
 184     $(eval $(call AddFileToCopy,$(JDK_OUTPUTDIR),$(JRE_OVERLAY_IMAGE_DIR),$f,JRE_BIN_TARGETS)))
 185 $(foreach f,$(filter $(OVERLAY_FILTER),$(JDK_BIN_LIST)),\
 186     $(eval $(call AddFileToCopy,$(JDK_OUTPUTDIR),$(JDK_OVERLAY_IMAGE_DIR),$f,JDK_BIN_TARGETS)))
 187 $(foreach f,$(filter $(OVERLAY_FILTER),$(JDKJRE_BIN_LIST)),\
 188     $(eval $(call AddFileToCopy,$(JDK_OUTPUTDIR),$(JDK_OVERLAY_IMAGE_DIR)/jre,$f,JDKJRE_BIN_TARGETS)))
 189 
 190 ################################################################################
 191 # /lib dir
 192 ifneq ($(OPENJDK_TARGET_OS), macosx)
 193     JDKJRE_LIB_FILES := \
 194         $(LIBRARY_PREFIX)attach$(SHARED_LIBRARY_SUFFIX) \
 195         $(SALIB_NAME)
 196 endif
 197 
 198 NOT_JRE_LIB_FILES := \

 199         tools.jar \
 200         jconsole.jar \
 201         sa-jdi.jar \
 202         dt.jar \
 203         orb.idl \
 204         ir.idl \
 205         ct.sym
 206 
 207 ifeq ($(OPENJDK_TARGET_OS), windows)
 208     NOT_JRE_LIB_FILES += jawt.lib jvm.lib

 209 endif
 210 
 211 JDK_LIB_FILES := $(NOT_JRE_LIB_FILES)
 212 ifeq ($(OPENJDK_TARGET_OS), linux)
 213     JDK_LIB_FILES += jexec
 214 endif
 215 
 216 # Find all files to copy from $(JDK_OUTPUTDIR)/lib
 217 # Jar files are not expected to be here
 218 ALL_JDKOUT_LIB_LIST := $(call not-containing,_the.,$(filter-out %.jar,\
 219                             $(call CacheFind,$(JDK_OUTPUTDIR)/lib)))
 220 # Find all files to copy from $(IMAGES_OUTPUTDIR)/lib
 221 # This is were the jar files are and might not exist if building overlay-images
 222 ifneq ($(wildcard $(IMAGES_OUTPUTDIR)/lib),)
 223     ALL_IMAGES_LIB_LIST := $(call not-containing,_the.,\
 224                             $(call CacheFind,$(IMAGES_OUTPUTDIR)/lib))
 225 endif
 226 
 227 # Filter files to copy for each destination
 228 JRE_JDKOUT_LIB_LIST := $(filter-out $(addprefix %,$(NOT_JRE_LIB_FILES) $(JDKJRE_LIB_FILES)),\


 589 endef
 590 
 591 define create-info-file
 592         $(MKDIR) -p $(@D)
 593         $(RM) $@
 594         $(call info-file-item, "JAVA_VERSION", "$(JDK_VERSION)")
 595         $(call info-file-item, "OS_NAME",      "$(REQUIRED_OS_NAME)")
 596         $(call info-file-item, "OS_VERSION",   "$(REQUIRED_OS_VERSION)")
 597         $(call info-file-item, "OS_ARCH",      "$(OPENJDK_TARGET_CPU_LEGACY)")
 598         $(call info-file-item, "SOURCE",       "$(ALL_SOURCE_TIPS)")
 599 endef
 600 
 601 ALL_SOURCE_TIPS = $(shell \
 602   if [ -f $(OUTPUT_ROOT)/source_tips ] ; then \
 603     $(CAT) $(OUTPUT_ROOT)/source_tips ; \
 604   fi)
 605 
 606 $(JRE_INFO_FILE): $(OUTPUT_ROOT)/spec.gmk $(OUTPUT_ROOT)/source_tips
 607         $(ECHO) $(LOG_INFO) Generating $(patsubst $(OUTPUT_ROOT)/%,%,$@)
 608         $(call create-info-file)



 609 
 610 $(JDK_INFO_FILE): $(OUTPUT_ROOT)/spec.gmk $(OUTPUT_ROOT)/source_tips
 611         $(ECHO) $(LOG_INFO) Generating $(patsubst $(OUTPUT_ROOT)/%,%,$@)
 612         $(call create-info-file)
 613 
 614 $(JRE_OVERLAY_INFO_FILE): $(OUTPUT_ROOT)/spec.gmk $(OUTPUT_ROOT)/source_tips
 615         $(ECHO) $(LOG_INFO) Generating $(patsubst $(OUTPUT_ROOT)/%,%,$@)
 616         $(call create-info-file)
 617 
 618 $(JDK_OVERLAY_INFO_FILE): $(OUTPUT_ROOT)/spec.gmk $(OUTPUT_ROOT)/source_tips
 619         $(ECHO) $(LOG_INFO) Generating $(patsubst $(OUTPUT_ROOT)/%,%,$@)
 620         $(call create-info-file)
 621 
 622 $(JDK_IMAGE_DIR)/src.zip: $(IMAGES_OUTPUTDIR)/src.zip
 623         $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@)
 624         $(install-file)
 625 
 626 ################################################################################
 627 # Post processing (strip etc)
 628 


 630     ifeq ($(OPENJDK_TARGET_OS), windows)
 631         EXEC_LIST_BIN:=$(filter-out %$(notdir $(MSVCR_DLL)),$(filter %.exe %.dll,$(ALL_BIN_LIST)))
 632     else
 633         # Find all executables in JDK_OUTPUTDIR since they exist when this makefile is parsed
 634         EXEC_LIST_BIN:=$(shell $(FILE) `$(FIND) $(JDK_OUTPUTDIR)/bin -type f -name \*$(EXE_SUFFIX)` \
 635                 | $(EGREP) 'ELF' | $(CUT) -d':' -f1)
 636         # On mac, the old build searches for static libraries for stripping instead of shared.
 637         # Not clear if it's intentional.
 638         ifneq ($(OPENJDK_TARGET_OS), macosx)
 639             EXEC_LIST_LIB:=$(shell $(FIND) $(JDK_OUTPUTDIR)/lib -type f -name \*$(SHARED_LIBRARY_SUFFIX))
 640         endif
 641     endif
 642     # Filter out sjavac
 643     EXEC_LIST_BIN:=$(filter-out %sjavac$(EXE_SUFFIX),$(EXEC_LIST_BIN))
 644 
 645     # Filter out the overlay specific bin files
 646     EXEC_LIST:=$(filter-out $(OVERLAY_FILTER),$(EXEC_LIST_BIN)) $(EXEC_LIST_LIB)
 647     EXEC_LIST_OVERLAY:=$(filter $(OVERLAY_FILTER),$(EXEC_LIST_BIN)) $(EXEC_LIST_LIB)
 648 
 649     # Filter out non JRE files and convert to unique touch files to depend on
 650     JRE_STRIP_LIST:=$(patsubst $(JDK_OUTPUTDIR)/%,$(IMAGES_OUTPUTDIR)/_strip_jre/%.stripped,\
 651                         $(filter-out $(addprefix %,$(NOT_JRE_BIN_FILES) $(NOT_JRE_LIB_FILES) $(JDKJRE_LIB_FILES)),\
 652                                  $(EXEC_LIST)))
 653 
 654     JDKJRE_STRIP_LIST:=$(patsubst $(JDK_OUTPUTDIR)/%, \
 655                         $(IMAGES_OUTPUTDIR)/_strip_jdk/jre/%.stripped, \
 656                         $(filter-out $(addprefix %,$(NOT_JRE_BIN_FILES) $(NOT_JRE_LIB_FILES)), $(EXEC_LIST)))
 657 
 658     JDK_BIN_STRIP_LIST:=$(patsubst $(JDK_OUTPUTDIR)/%, \
 659                           $(IMAGES_OUTPUTDIR)/_strip_jdk/%.stripped, \
 660                           $(filter-out $(JDK_OUTPUTDIR)/lib/%, $(EXEC_LIST)))
 661 
 662     # Do the same for overlay image
 663     JRE_OVERLAY_STRIP_LIST:=$(patsubst $(JDK_OUTPUTDIR)/%,$(IMAGES_OUTPUTDIR)/_strip_jre_overlay/%.stripped,\
 664                         $(filter-out $(addprefix %,$(NOT_JRE_BIN_FILES) $(NOT_JRE_LIB_FILES) $(JDKJRE_LIB_FILES)),\
 665                                  $(EXEC_LIST_OVERLAY)))
 666 
 667     JDKJRE_OVERLAY_STRIP_LIST:=$(patsubst $(JDK_OUTPUTDIR)/%, \
 668                         $(IMAGES_OUTPUTDIR)/_strip_jdk_overlay/jre/%.stripped, \
 669                         $(filter-out $(addprefix %,$(NOT_JRE_BIN_FILES) $(NOT_JRE_LIB_FILES)), $(EXEC_LIST_OVERLAY)))
 670 
 671     JDK_OVERLAY_BIN_STRIP_LIST:=$(patsubst $(JDK_OUTPUTDIR)/%, \
 672                           $(IMAGES_OUTPUTDIR)/_strip_jdk_overlay/%.stripped, \
 673                           $(filter-out $(JDK_OUTPUTDIR)/lib/%, $(EXEC_LIST_OVERLAY)))
 674 
 675     define mcs-file
 676         $(if $(POST_MCS_CMD),$(POST_MCS_CMD) $<)
 677     endef
 678 
 679     define strip-file
 680         $(ECHO) Stripping $(LOG_INFO) $(patsubst $(OUTPUT_ROOT)/%,%,$<)
 681         $(CHMOD) u+w $<
 682         $(POST_STRIP_CMD) $<
 683         $(call mcs-file)
 684         $(CHMOD) go-w $<
 685         $(MKDIR) -p $(@D)
 686         $(TOUCH) $@
 687     endef
 688 
 689     # Setup a rule for stripping files based on touch files
 690     $(IMAGES_OUTPUTDIR)/_strip_jre/%.stripped: $(JRE_IMAGE_DIR)/%
 691         $(call strip-file)
 692 
 693     $(IMAGES_OUTPUTDIR)/_strip_jdk/%.stripped: $(JDK_IMAGE_DIR)/%
 694         $(call strip-file)
 695 
 696     $(IMAGES_OUTPUTDIR)/_strip_jre_overlay/%.stripped: $(JRE_OVERLAY_IMAGE_DIR)/%
 697         $(call strip-file)
 698 
 699     $(IMAGES_OUTPUTDIR)/_strip_jdk_overlay/%.stripped: $(JDK_OVERLAY_IMAGE_DIR)/%
 700         $(call strip-file)
 701 
 702 endif
 703 
 704 ################################################################################
 705 # Main targets
 706 
 707 jre-image: $(JRE_BIN_TARGETS) $(JRE_LIB_TARGETS) $(JRE_IMAGE_DIR)/lib/applet \
 708         $(JRE_IMAGE_DIR)/lib/meta-index $(JRE_IMAGE_DIR)/lib/ext/meta-index \
 709         $(JRE_MAN_PAGE_LIST) $(JRE_DOC_TARGETS) $(JRE_INFO_FILE) $(JRE_STRIP_LIST)
 710 
 711 jdk-image: $(JDK_BIN_TARGETS) $(JDKJRE_BIN_TARGETS) \
 712         $(JDK_LIB_TARGETS) $(JDKJRE_LIB_TARGETS) \
 713         $(JDK_IMAGE_DIR)/jre/lib/applet \
 714         $(JDK_DEMO_TARGETS) \
 715         $(JDK_IMAGE_DIR)/jre/lib/meta-index $(JDK_IMAGE_DIR)/jre/lib/ext/meta-index \
 716         $(JDK_MAN_PAGE_LIST) $(JDK_SAMPLE_TARGETS) \
 717         $(JDK_DB_TARGETS) $(JDK_INCLUDE_TARGETS) \
 718         $(JDKJRE_DOC_TARGETS) $(JDK_DOC_TARGETS) \
 719         $(JDK_INFO_FILE) $(JDKJRE_STRIP_LIST) $(JDK_BIN_STRIP_LIST) \
 720         $(JDK_IMAGE_DIR)/src.zip
 721 
 722 jre-overlay-image: $(JRE_OVERLAY_BIN_TARGETS) $(JRE_OVERLAY_LIB_TARGETS) \
 723          $(JRE_OVERLAY_INFO_FILE) $(JRE_OVERLAY_STRIP_LIST)
 724 
 725 jdk-overlay-image: $(JDK_OVERLAY_BIN_TARGETS) $(JDKJRE_OVERLAY_BIN_TARGETS) \
 726         $(JDK_OVERLAY_LIB_TARGETS) $(JDKJRE_OVERLAY_LIB_TARGETS) \
 727         $(JDK_OVERLAY_DEMO_TARGETS) $(JDK_OVERLAY_INFO_FILE) \
 728         $(JDKJRE_OVERLAY_STRIP_LIST) $(JDK_OVERLAY_BIN_STRIP_LIST) 














 729 
 730 ################################################################################
 731 
 732 .PHONY: default images jre-image jdk-image


  24 #
  25 
  26 include $(SPEC)
  27 include MakeBase.gmk
  28 include JavaCompilation.gmk
  29 include Setup.gmk
  30 
  31 default: images
  32 
  33 # Prepare the find cache. Only used if running on windows.
  34 $(eval $(call FillCacheFind,\
  35     $(wildcard $(JDK_OUTPUTDIR)/bin \
  36                $(JDK_OUTPUTDIR)/lib \
  37                $(IMAGES_OUTPUTDIR)/lib \
  38                $(JDK_OUTPUTDIR)/include \
  39                $(JDK_OUTPUTDIR)/sample \
  40                $(JDK_OUTPUTDIR)/demo)))
  41 
  42 include Tools.gmk
  43 
  44 include Profiles.gmk
  45 
  46 # Note: This double-colon rule is intentional, to support
  47 # custom make file integration.
  48 images:: jre-image jdk-image
  49 
  50 overlay-images: jre-overlay-image jdk-overlay-image
  51 
  52 
  53 -include $(CUSTOM_MAKE_DIR)/Images.gmk
  54 
  55 
  56 # Processing license files from source area to image area
  57 # These will be modified to have the platform specific EOL chars.
  58 define process-doc-file
  59         $(ECHO) $(LOG_INFO) Processing $(patsubst $(OUTPUT_ROOT)/%,%,$@)
  60         $(MKDIR) -p $(@D)
  61         $(RM) $@
  62         $(SED) 's/$$//g' $< > $@
  63         $(CHMOD) 444 $@
  64 endef
  65 


  69   # Param 3 - src file
  70   # Param 4 - variable to add targets to
  71 
  72   # Remove src dir root from src file
  73   $2_$3_FILE := $$(patsubst $1/%,%,$3)
  74 
  75   $2/$$($2_$3_FILE): $3
  76         $(ECHO) $(LOG_INFO) Copying $$(patsubst $(OUTPUT_ROOT)/%,%,$$@)
  77         $$(install-file)
  78 
  79   $4 += $2/$$($2_$3_FILE)
  80 endef
  81 
  82 ################################################################################
  83 #
  84 # JRE and JDK build rules
  85 #
  86 ################################################################################
  87 #
  88 # Variable prefixes explained:
  89 # JRE_ refers to files in the j2re-*-image.
  90 # JDK_ refers to files in the j2sdk-image outside of the jre subdir.
  91 # JDKJRE_ refers to files in the j2sdk-image inside the jre subdir.
  92 #
  93 
  94 ################################################################################
  95 # /bin dir
  96 
  97 ifeq ($(PROFILE),)
  98     NOT_JRE_BIN_FILES := \
  99         appletviewer$(EXE_SUFFIX) \
 100         extcheck$(EXE_SUFFIX) \
 101         idlj$(EXE_SUFFIX) \
 102         jar$(EXE_SUFFIX) \
 103         jarsigner$(EXE_SUFFIX) \
 104         java-rmi.cgi \
 105         javac$(EXE_SUFFIX) \
 106         javadoc$(EXE_SUFFIX) \
 107         javah$(EXE_SUFFIX) \
 108         javap$(EXE_SUFFIX) \
 109         jcmd$(EXE_SUFFIX) \
 110         jdb$(EXE_SUFFIX) \
 111         jps$(EXE_SUFFIX) \
 112         jrunscript$(EXE_SUFFIX) \
 113         jstat$(EXE_SUFFIX) \
 114         jstatd$(EXE_SUFFIX) \
 115         jstack$(EXE_SUFFIX) \
 116         packagebean$(SCRIPT_SUFFIX) \
 117         rmic$(EXE_SUFFIX) \
 118         serialver$(EXE_SUFFIX) \
 119         unregbean$(EXE_SUFFIX) \
 120         jconsole$(EXE_SUFFIX) \
 121         jinfo$(EXE_SUFFIX) \
 122         jmap$(EXE_SUFFIX) \
 123         native2ascii$(EXE_SUFFIX) \
 124         xjc$(EXE_SUFFIX) \
 125         wsgen$(EXE_SUFFIX) \
 126         wsimport$(EXE_SUFFIX) \
 127         schemagen$(EXE_SUFFIX) \
 128         jsadebugd$(EXE_SUFFIX) \
 129         jhat$(EXE_SUFFIX)
 130 endif
 131 
 132 WINDOWS_JDK_BIN_FILES = \
 133         $(EXE_SUFFIX) \
 134         $(LIBRARY_PREFIX)jli$(SHARED_LIBRARY_SUFFIX) \
 135         $(notdir $(MSVCR_DLL))
 136 
 137 WINDOWS_JDKJRE_BIN_FILES := \
 138         $(LIBRARY_PREFIX)attach$(SHARED_LIBRARY_SUFFIX) \
 139         $(SALIB_NAME)
 140 
 141 # Find all files in bin dir
 142 ALL_BIN_LIST := $(call CacheFind,$(JDK_OUTPUTDIR)/bin)
 143 
 144 # Prevent sjavac from entering the images.
 145 ALL_BIN_LIST := $(filter-out %/sjavac,$(ALL_BIN_LIST))
 146 
 147 # For unknown reason the debuginfo files for executables are not put into images
 148 # e.g filter them out
 149 ifneq ($(OPENJDK_TARGET_OS),windows)
 150     ALL_BIN_LIST := $(filter-out %.debuginfo %.diz, $(ALL_BIN_LIST))


 182 $(foreach f,$(filter-out $(OVERLAY_FILTER),$(JDK_BIN_LIST)),\
 183     $(eval $(call AddFileToCopy,$(JDK_OUTPUTDIR),$(JDK_IMAGE_DIR),$f,JDK_BIN_TARGETS)))
 184 $(foreach f,$(filter-out $(OVERLAY_FILTER),$(JDKJRE_BIN_LIST)),\
 185     $(eval $(call AddFileToCopy,$(JDK_OUTPUTDIR),$(JDK_IMAGE_DIR)/jre,$f,JDKJRE_BIN_TARGETS)))
 186 
 187 $(foreach f,$(filter $(OVERLAY_FILTER),$(JRE_BIN_LIST)),\
 188     $(eval $(call AddFileToCopy,$(JDK_OUTPUTDIR),$(JRE_OVERLAY_IMAGE_DIR),$f,JRE_BIN_TARGETS)))
 189 $(foreach f,$(filter $(OVERLAY_FILTER),$(JDK_BIN_LIST)),\
 190     $(eval $(call AddFileToCopy,$(JDK_OUTPUTDIR),$(JDK_OVERLAY_IMAGE_DIR),$f,JDK_BIN_TARGETS)))
 191 $(foreach f,$(filter $(OVERLAY_FILTER),$(JDKJRE_BIN_LIST)),\
 192     $(eval $(call AddFileToCopy,$(JDK_OUTPUTDIR),$(JDK_OVERLAY_IMAGE_DIR)/jre,$f,JDKJRE_BIN_TARGETS)))
 193 
 194 ################################################################################
 195 # /lib dir
 196 ifneq ($(OPENJDK_TARGET_OS), macosx)
 197     JDKJRE_LIB_FILES := \
 198         $(LIBRARY_PREFIX)attach$(SHARED_LIBRARY_SUFFIX) \
 199         $(SALIB_NAME)
 200 endif
 201 
 202 ifeq ($(PROFILE),)
 203     NOT_JRE_LIB_FILES := \
 204         tools.jar \
 205         jconsole.jar \
 206         sa-jdi.jar \
 207         dt.jar \
 208         orb.idl \
 209         ir.idl \
 210         ct.sym
 211 
 212     ifeq ($(OPENJDK_TARGET_OS), windows)
 213       NOT_JRE_LIB_FILES += jawt.lib jvm.lib
 214     endif
 215 endif
 216 
 217 JDK_LIB_FILES := $(NOT_JRE_LIB_FILES)
 218 ifeq ($(OPENJDK_TARGET_OS), linux)
 219     JDK_LIB_FILES += jexec
 220 endif
 221 
 222 # Find all files to copy from $(JDK_OUTPUTDIR)/lib
 223 # Jar files are not expected to be here
 224 ALL_JDKOUT_LIB_LIST := $(call not-containing,_the.,$(filter-out %.jar,\
 225                             $(call CacheFind,$(JDK_OUTPUTDIR)/lib)))
 226 # Find all files to copy from $(IMAGES_OUTPUTDIR)/lib
 227 # This is were the jar files are and might not exist if building overlay-images
 228 ifneq ($(wildcard $(IMAGES_OUTPUTDIR)/lib),)
 229     ALL_IMAGES_LIB_LIST := $(call not-containing,_the.,\
 230                             $(call CacheFind,$(IMAGES_OUTPUTDIR)/lib))
 231 endif
 232 
 233 # Filter files to copy for each destination
 234 JRE_JDKOUT_LIB_LIST := $(filter-out $(addprefix %,$(NOT_JRE_LIB_FILES) $(JDKJRE_LIB_FILES)),\


 595 endef
 596 
 597 define create-info-file
 598         $(MKDIR) -p $(@D)
 599         $(RM) $@
 600         $(call info-file-item, "JAVA_VERSION", "$(JDK_VERSION)")
 601         $(call info-file-item, "OS_NAME",      "$(REQUIRED_OS_NAME)")
 602         $(call info-file-item, "OS_VERSION",   "$(REQUIRED_OS_VERSION)")
 603         $(call info-file-item, "OS_ARCH",      "$(OPENJDK_TARGET_CPU_LEGACY)")
 604         $(call info-file-item, "SOURCE",       "$(ALL_SOURCE_TIPS)")
 605 endef
 606 
 607 ALL_SOURCE_TIPS = $(shell \
 608   if [ -f $(OUTPUT_ROOT)/source_tips ] ; then \
 609     $(CAT) $(OUTPUT_ROOT)/source_tips ; \
 610   fi)
 611 
 612 $(JRE_INFO_FILE): $(OUTPUT_ROOT)/spec.gmk $(OUTPUT_ROOT)/source_tips
 613         $(ECHO) $(LOG_INFO) Generating $(patsubst $(OUTPUT_ROOT)/%,%,$@)
 614         $(call create-info-file)
 615 ifneq ($(PROFILE),)
 616         $(call info-file-item, "JAVA_PROFILE", "$(call profile_name, $(call profile_number, $(PROFILE)))")
 617 endif
 618 
 619 $(JDK_INFO_FILE): $(OUTPUT_ROOT)/spec.gmk $(OUTPUT_ROOT)/source_tips
 620         $(ECHO) $(LOG_INFO) Generating $(patsubst $(OUTPUT_ROOT)/%,%,$@)
 621         $(call create-info-file)
 622 
 623 $(JRE_OVERLAY_INFO_FILE): $(OUTPUT_ROOT)/spec.gmk $(OUTPUT_ROOT)/source_tips
 624         $(ECHO) $(LOG_INFO) Generating $(patsubst $(OUTPUT_ROOT)/%,%,$@)
 625         $(call create-info-file)
 626 
 627 $(JDK_OVERLAY_INFO_FILE): $(OUTPUT_ROOT)/spec.gmk $(OUTPUT_ROOT)/source_tips
 628         $(ECHO) $(LOG_INFO) Generating $(patsubst $(OUTPUT_ROOT)/%,%,$@)
 629         $(call create-info-file)
 630 
 631 $(JDK_IMAGE_DIR)/src.zip: $(IMAGES_OUTPUTDIR)/src.zip
 632         $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@)
 633         $(install-file)
 634 
 635 ################################################################################
 636 # Post processing (strip etc)
 637 


 639     ifeq ($(OPENJDK_TARGET_OS), windows)
 640         EXEC_LIST_BIN:=$(filter-out %$(notdir $(MSVCR_DLL)),$(filter %.exe %.dll,$(ALL_BIN_LIST)))
 641     else
 642         # Find all executables in JDK_OUTPUTDIR since they exist when this makefile is parsed
 643         EXEC_LIST_BIN:=$(shell $(FILE) `$(FIND) $(JDK_OUTPUTDIR)/bin -type f -name \*$(EXE_SUFFIX)` \
 644                 | $(EGREP) 'ELF' | $(CUT) -d':' -f1)
 645         # On mac, the old build searches for static libraries for stripping instead of shared.
 646         # Not clear if it's intentional.
 647         ifneq ($(OPENJDK_TARGET_OS), macosx)
 648             EXEC_LIST_LIB:=$(shell $(FIND) $(JDK_OUTPUTDIR)/lib -type f -name \*$(SHARED_LIBRARY_SUFFIX))
 649         endif
 650     endif
 651     # Filter out sjavac
 652     EXEC_LIST_BIN:=$(filter-out %sjavac$(EXE_SUFFIX),$(EXEC_LIST_BIN))
 653 
 654     # Filter out the overlay specific bin files
 655     EXEC_LIST:=$(filter-out $(OVERLAY_FILTER),$(EXEC_LIST_BIN)) $(EXEC_LIST_LIB)
 656     EXEC_LIST_OVERLAY:=$(filter $(OVERLAY_FILTER),$(EXEC_LIST_BIN)) $(EXEC_LIST_LIB)
 657 
 658     # Filter out non JRE files and convert to unique touch files to depend on
 659     JRE_STRIP_LIST:=$(patsubst $(JDK_OUTPUTDIR)/%,$(IMAGES_OUTPUTDIR)/_strip_jre$(PROFILE)/%.stripped,\
 660                         $(filter-out $(addprefix %,$(NOT_JRE_BIN_FILES) $(NOT_JRE_LIB_FILES) $(JDKJRE_LIB_FILES)),\
 661                                  $(EXEC_LIST)))
 662 
 663     JDKJRE_STRIP_LIST:=$(patsubst $(JDK_OUTPUTDIR)/%, \
 664                         $(IMAGES_OUTPUTDIR)/_strip_jdk/jre/%.stripped, \
 665                         $(filter-out $(addprefix %,$(NOT_JRE_BIN_FILES) $(NOT_JRE_LIB_FILES)), $(EXEC_LIST)))
 666 
 667     JDK_BIN_STRIP_LIST:=$(patsubst $(JDK_OUTPUTDIR)/%, \
 668                           $(IMAGES_OUTPUTDIR)/_strip_jdk/%.stripped, \
 669                           $(filter-out $(JDK_OUTPUTDIR)/lib/%, $(EXEC_LIST)))
 670 
 671     # Do the same for overlay image
 672     JRE_OVERLAY_STRIP_LIST:=$(patsubst $(JDK_OUTPUTDIR)/%,$(IMAGES_OUTPUTDIR)/_strip_jre_overlay/%.stripped,\
 673                         $(filter-out $(addprefix %,$(NOT_JRE_BIN_FILES) $(NOT_JRE_LIB_FILES) $(JDKJRE_LIB_FILES)),\
 674                                  $(EXEC_LIST_OVERLAY)))
 675 
 676     JDKJRE_OVERLAY_STRIP_LIST:=$(patsubst $(JDK_OUTPUTDIR)/%, \
 677                         $(IMAGES_OUTPUTDIR)/_strip_jdk_overlay/jre/%.stripped, \
 678                         $(filter-out $(addprefix %,$(NOT_JRE_BIN_FILES) $(NOT_JRE_LIB_FILES)), $(EXEC_LIST_OVERLAY)))
 679 
 680     JDK_OVERLAY_BIN_STRIP_LIST:=$(patsubst $(JDK_OUTPUTDIR)/%, \
 681                           $(IMAGES_OUTPUTDIR)/_strip_jdk_overlay/%.stripped, \
 682                           $(filter-out $(JDK_OUTPUTDIR)/lib/%, $(EXEC_LIST_OVERLAY)))
 683 
 684     define mcs-file
 685         $(if $(POST_MCS_CMD),$(POST_MCS_CMD) $<)
 686     endef
 687 
 688     define strip-file
 689         $(ECHO) Stripping $(LOG_INFO) $(patsubst $(OUTPUT_ROOT)/%,%,$<)
 690         $(CHMOD) u+w $<
 691         $(POST_STRIP_CMD) $<
 692         $(call mcs-file)
 693         $(CHMOD) go-w $<
 694         $(MKDIR) -p $(@D)
 695         $(TOUCH) $@
 696     endef
 697 
 698     # Setup a rule for stripping files based on touch files
 699     $(IMAGES_OUTPUTDIR)/_strip_jre$(PROFILE)/%.stripped: $(JRE_IMAGE_DIR)/%
 700         $(call strip-file)
 701 
 702     $(IMAGES_OUTPUTDIR)/_strip_jdk/%.stripped: $(JDK_IMAGE_DIR)/%
 703         $(call strip-file)
 704 
 705     $(IMAGES_OUTPUTDIR)/_strip_jre_overlay/%.stripped: $(JRE_OVERLAY_IMAGE_DIR)/%
 706         $(call strip-file)
 707 
 708     $(IMAGES_OUTPUTDIR)/_strip_jdk_overlay/%.stripped: $(JDK_OVERLAY_IMAGE_DIR)/%
 709         $(call strip-file)
 710 
 711 endif
 712 
 713 ################################################################################
 714 # Main targets
 715 
 716 jre-image: $(JRE_BIN_TARGETS) $(JRE_LIB_TARGETS) $(JRE_IMAGE_DIR)/lib/applet \
 717         $(JRE_IMAGE_DIR)/lib/meta-index $(JRE_IMAGE_DIR)/lib/ext/meta-index \
 718         $(JRE_MAN_PAGE_LIST) $(JRE_DOC_TARGETS) $(JRE_INFO_FILE) $(JRE_STRIP_LIST)
 719 
 720 jdk-image: $(JDK_BIN_TARGETS) $(JDKJRE_BIN_TARGETS) \
 721         $(JDK_LIB_TARGETS) $(JDKJRE_LIB_TARGETS) \
 722         $(JDK_IMAGE_DIR)/jre/lib/applet \
 723         $(JDK_DEMO_TARGETS) \
 724         $(JDK_IMAGE_DIR)/jre/lib/meta-index $(JDK_IMAGE_DIR)/jre/lib/ext/meta-index \
 725         $(JDK_MAN_PAGE_LIST) $(JDK_SAMPLE_TARGETS) \
 726         $(JDK_DB_TARGETS) $(JDK_INCLUDE_TARGETS) \
 727         $(JDKJRE_DOC_TARGETS) $(JDK_DOC_TARGETS) \
 728         $(JDK_INFO_FILE) $(JDKJRE_STRIP_LIST) $(JDK_BIN_STRIP_LIST) \
 729         $(JDK_IMAGE_DIR)/src.zip
 730 
 731 jre-overlay-image: $(JRE_OVERLAY_BIN_TARGETS) $(JRE_OVERLAY_LIB_TARGETS) \
 732          $(JRE_OVERLAY_INFO_FILE) $(JRE_OVERLAY_STRIP_LIST)
 733 
 734 jdk-overlay-image: $(JDK_OVERLAY_BIN_TARGETS) $(JDKJRE_OVERLAY_BIN_TARGETS) \
 735         $(JDK_OVERLAY_LIB_TARGETS) $(JDKJRE_OVERLAY_LIB_TARGETS) \
 736         $(JDK_OVERLAY_DEMO_TARGETS) $(JDK_OVERLAY_INFO_FILE) \
 737         $(JDKJRE_OVERLAY_STRIP_LIST) $(JDK_OVERLAY_BIN_STRIP_LIST) 
 738 
 739 ifneq ($(PROFILE),)
 740 # Files in lib$(PROFILE) are excluded from the generic copying routines so
 741 # we have to add them back in here
 742 $(foreach f,$(CUSTOM_PROFILE_JARS),\
 743     $(eval $(call AddFileToCopy,$(IMAGES_OUTPUTDIR)/lib$(PROFILE),$(JRE_IMAGE_DIR)/lib,$f,JRE_LIB_TARGETS)))
 744 
 745 profile-image: $(JRE_BIN_TARGETS) $(JRE_LIB_TARGETS) \
 746         $(JRE_IMAGE_DIR)/lib/meta-index $(JRE_IMAGE_DIR)/lib/ext/meta-index \
 747         $(JRE_INFO_FILE) $(JRE_STRIP_LIST)
 748 
 749 .PHONY: profile-image
 750 
 751 endif # Profile
 752 
 753 ################################################################################
 754 
 755 .PHONY: default images jre-image jdk-image
makefiles/Images.gmk
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File