diff options
-rw-r--r-- | core/Makefile | 61 | ||||
-rwxr-xr-x | tools/fileslist.py | 4 |
2 files changed, 30 insertions, 35 deletions
diff --git a/core/Makefile b/core/Makefile index debe691..837b300 100644 --- a/core/Makefile +++ b/core/Makefile @@ -590,14 +590,6 @@ ifeq ($(INTERNAL_USERIMAGES_USE_EXT),true) INTERNAL_USERIMAGES_DEPS := $(MKEXTUSERIMG) $(MAKE_EXT4FS) INTERNAL_USERIMAGES_BINARY_PATHS := $(sort $(dir $(INTERNAL_USERIMAGES_DEPS))) -# Calculate size of all files for device image and report on filesizes -# $(1): src directory -define calculate-userimage-ext-size - @echo Calculating image size... - @find $(1) -type f | xargs du -k | sort -gr > $(PRODUCT_OUT)/imagesize-report.txt - @du -s -h -k $(1) -endef - # $(1): src directory # $(2): output file # $(3): mount point @@ -731,9 +723,6 @@ endif # ----------------------------------------------------------------- # system image # -systemimage_intermediates := \ - $(call intermediates-dir-for,PACKAGING,systemimage) -BUILT_SYSTEMIMAGE := $(systemimage_intermediates)/system.img INTERNAL_SYSTEMIMAGE_FILES := $(filter $(TARGET_OUT)/%, \ $(ALL_PREBUILT) \ @@ -741,12 +730,38 @@ INTERNAL_SYSTEMIMAGE_FILES := $(filter $(TARGET_OUT)/%, \ $(ALL_GENERATED_SOURCES) \ $(ALL_DEFAULT_INSTALLED_MODULES)) +FULL_SYSTEMIMAGE_DEPS := $(INTERNAL_SYSTEMIMAGE_FILES) $(INTERNAL_USERIMAGES_DEPS) +# ----------------------------------------------------------------- +# installed file list +# Depending on anything that $(BUILT_SYSTEMIMAGE) depends on. +# We put installed-files.txt ahead of image itself in the dependency graph +# so that we can get the size stat even if the build fails due to too large +# system image. +INSTALLED_FILES_FILE := $(PRODUCT_OUT)/installed-files.txt +$(INSTALLED_FILES_FILE): $(FULL_SYSTEMIMAGE_DEPS) + @echo Installed file list: $@ + @mkdir -p $(dir $@) + @rm -f $@ + $(hide) build/tools/fileslist.py $(TARGET_OUT) > $@ + +.PHONY: installed-file-list +installed-file-list: $(INSTALLED_FILES_FILE) +ifneq ($(filter sdk win_sdk,$(MAKECMDGOALS)),) +$(call dist-for-goals, sdk win_sdk, $(INSTALLED_FILES_FILE)) +endif +ifneq ($(filter sdk_addon,$(MAKECMDGOALS)),) +$(call dist-for-goals, sdk_addon, $(INSTALLED_FILES_FILE)) +endif + +systemimage_intermediates := \ + $(call intermediates-dir-for,PACKAGING,systemimage) +BUILT_SYSTEMIMAGE := $(systemimage_intermediates)/system.img + ifeq ($(INTERNAL_USERIMAGES_USE_EXT),true) ## generate an ext image # $(1): output file define build-systemimage-target @echo "Target system fs image: $(1)" - $(call calculate-userimage-ext-size,$(TARGET_OUT)) $(call build-userimage-ext-target,$(TARGET_OUT),$(1),system,$(INTERNAL_USERIMAGES_EXT_VARIANT),$(BOARD_SYSTEMIMAGE_PARTITION_SIZE)) endef @@ -761,7 +776,7 @@ define build-systemimage-target endef endif # INTERNAL_USERIMAGES_USE_EXT -$(BUILT_SYSTEMIMAGE): $(INTERNAL_SYSTEMIMAGE_FILES) $(INTERNAL_USERIMAGES_DEPS) +$(BUILT_SYSTEMIMAGE): $(FULL_SYSTEMIMAGE_DEPS) $(INSTALLED_FILES_FILE) $(call build-systemimage-target,$@) INSTALLED_SYSTEMIMAGE := $(PRODUCT_OUT)/system.img @@ -1159,26 +1174,6 @@ endif # TARGET_DEVICE != generic* endif # TARGET_PRODUCT != sdk # ----------------------------------------------------------------- -# installed file list -# Depending on $(INSTALLED_SYSTEMIMAGE) ensures that it -# gets the DexOpt one if we're doing that. -INSTALLED_FILES_FILE := $(PRODUCT_OUT)/installed-files.txt -$(INSTALLED_FILES_FILE): $(INSTALLED_SYSTEMIMAGE) - @echo Installed file list: $@ - @mkdir -p $(dir $@) - @rm -f $@ - $(hide) build/tools/fileslist.py $(TARGET_OUT) $(TARGET_OUT_DATA) > $@ - -.PHONY: installed-file-list -installed-file-list: $(INSTALLED_FILES_FILE) -ifneq ($(filter sdk win_sdk,$(MAKECMDGOALS)),) -$(call dist-for-goals, sdk win_sdk, $(INSTALLED_FILES_FILE)) -endif -ifneq ($(filter sdk_addon,$(MAKECMDGOALS)),) -$(call dist-for-goals, sdk_addon, $(INSTALLED_FILES_FILE)) -endif - -# ----------------------------------------------------------------- # A zip of the tests that are built when running "make tests". # This is very similar to BUILT_TARGET_FILES_PACKAGE, but we # only grab SYSTEM and DATA, and it's called "*-tests-*.zip". diff --git a/tools/fileslist.py b/tools/fileslist.py index ae1b4b6..a11efaa 100755 --- a/tools/fileslist.py +++ b/tools/fileslist.py @@ -15,7 +15,7 @@ # limitations under the License. # -import os, sys +import operator, os, sys def get_file_size(path): st = os.lstat(path) @@ -37,9 +37,9 @@ def main(argv): output.append(row) except os.error: pass + output.sort(key=operator.itemgetter(0), reverse=True) for row in output: print "%12d %s" % row if __name__ == '__main__': main(sys.argv) - |