Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e5e8c5f2 authored by Ying Wang's avatar Ying Wang
Browse files

Move forward installed-files.txt in the dependency graph

Bug: 5265104
- Move installed-files.txt forward to ahead of system.img in the
dependency graph, so that even if the system.img fails to build due to
too large size we can still get the size stats.
- Change the script tools/fileslist.py to sort items in decreasing size.

Change-Id: I5913bc51971e341ffbfcf3fa449c987f126e409b
parent 44145f5b
Loading
Loading
Loading
Loading
+28 −33
Original line number Original line Diff line number Diff line
@@ -590,14 +590,6 @@ ifeq ($(INTERNAL_USERIMAGES_USE_EXT),true)
INTERNAL_USERIMAGES_DEPS := $(MKEXTUSERIMG) $(MAKE_EXT4FS)
INTERNAL_USERIMAGES_DEPS := $(MKEXTUSERIMG) $(MAKE_EXT4FS)
INTERNAL_USERIMAGES_BINARY_PATHS := $(sort $(dir $(INTERNAL_USERIMAGES_DEPS)))
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
# $(1): src directory
# $(2): output file
# $(2): output file
# $(3): mount point
# $(3): mount point
@@ -731,9 +723,6 @@ endif
# -----------------------------------------------------------------
# -----------------------------------------------------------------
# system image
# system image
#
#
systemimage_intermediates := \
	$(call intermediates-dir-for,PACKAGING,systemimage)
BUILT_SYSTEMIMAGE := $(systemimage_intermediates)/system.img


INTERNAL_SYSTEMIMAGE_FILES := $(filter $(TARGET_OUT)/%, \
INTERNAL_SYSTEMIMAGE_FILES := $(filter $(TARGET_OUT)/%, \
	$(ALL_PREBUILT) \
	$(ALL_PREBUILT) \
@@ -741,12 +730,38 @@ INTERNAL_SYSTEMIMAGE_FILES := $(filter $(TARGET_OUT)/%, \
	$(ALL_GENERATED_SOURCES) \
	$(ALL_GENERATED_SOURCES) \
	$(ALL_DEFAULT_INSTALLED_MODULES))
	$(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)
ifeq ($(INTERNAL_USERIMAGES_USE_EXT),true)
## generate an ext image
## generate an ext image
# $(1): output file
# $(1): output file
define build-systemimage-target
define build-systemimage-target
    @echo "Target system fs image: $(1)"
    @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))
    $(call build-userimage-ext-target,$(TARGET_OUT),$(1),system,$(INTERNAL_USERIMAGES_EXT_VARIANT),$(BOARD_SYSTEMIMAGE_PARTITION_SIZE))
endef
endef


@@ -761,7 +776,7 @@ define build-systemimage-target
endef
endef
endif # INTERNAL_USERIMAGES_USE_EXT
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,$@)
	$(call build-systemimage-target,$@)


INSTALLED_SYSTEMIMAGE := $(PRODUCT_OUT)/system.img
INSTALLED_SYSTEMIMAGE := $(PRODUCT_OUT)/system.img
@@ -1158,26 +1173,6 @@ endif # TARGET_NO_KERNEL != true
endif    # TARGET_DEVICE != generic*
endif    # TARGET_DEVICE != generic*
endif    # TARGET_PRODUCT != sdk
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".
# A zip of the tests that are built when running "make tests".
# This is very similar to BUILT_TARGET_FILES_PACKAGE, but we
# This is very similar to BUILT_TARGET_FILES_PACKAGE, but we
+2 −2
Original line number Original line Diff line number Diff line
@@ -15,7 +15,7 @@
# limitations under the License.
# limitations under the License.
#
#


import os, sys
import operator, os, sys


def get_file_size(path):
def get_file_size(path):
  st = os.lstat(path)
  st = os.lstat(path)
@@ -37,9 +37,9 @@ def main(argv):
          output.append(row)
          output.append(row)
        except os.error:
        except os.error:
          pass
          pass
  output.sort(key=operator.itemgetter(0), reverse=True)
  for row in output:
  for row in output:
    print "%12d  %s" % row
    print "%12d  %s" % row


if __name__ == '__main__':
if __name__ == '__main__':
  main(sys.argv)
  main(sys.argv)