diff --git a/core/main.mk b/core/main.mk index 7f2f786b28..c440f5569a 100644 --- a/core/main.mk +++ b/core/main.mk @@ -1281,6 +1281,26 @@ else # TARGET_BUILD_APPS # Building a full system-- the default is to build droidcore droid_targets: droidcore dist_files +ifdef USE_LOGICAL_PARTITIONS +ifdef BOARD_SUPER_PARTITION_SIZE +ifdef BOARD_SUPER_PARTITION_PARTITION_LIST + +droid_targets: check_android_partition_sizes + +.PHONY: check_android_partition_sizes +check_android_partition_sizes: partition_size_list=$(foreach p,$(BOARD_SUPER_PARTITION_PARTITION_LIST),$(BOARD_$(call to-upper,$(p))IMAGE_PARTITION_SIZE)) +check_android_partition_sizes: sum_sizes_expr=$(subst $(space),+,$(partition_size_list)) +check_android_partition_sizes: + if [ $$(( $(sum_sizes_expr) )) -gt $(BOARD_SUPER_PARTITION_SIZE) ]; then \ + echo The sum of sizes of all logical partitions is larger than BOARD_SUPER_PARTITION_SIZE.; \ + echo $(sum_sizes_expr) == $$(( $(sum_sizes_expr) )) '>' $(BOARD_SUPER_PARTITION_SIZE); \ + exit 1; \ + fi + +endif # BOARD_SUPER_PARTITION_PARTITION_LIST +endif # BOARD_SUPER_PARTITION_SIZE +endif # USE_LOGICAL_PARTITIONS + endif # TARGET_BUILD_APPS .PHONY: docs diff --git a/core/product.mk b/core/product.mk index 9eeacf06db..375fb724e0 100644 --- a/core/product.mk +++ b/core/product.mk @@ -380,6 +380,8 @@ _product_stash_var_list += \ _product_stash_var_list += \ BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE \ BOARD_VENDORIMAGE_PARTITION_RESERVED_SIZE \ + BOARD_SUPER_PARTITION_SIZE \ + BOARD_SUPER_PARTITION_PARTITION_LIST \ # # Mark the variables in _product_stash_var_list as readonly