From 59eaef078d9d85e24ea72bf8d5abd0436552f496 Mon Sep 17 00:00:00 2001 From: Hridya Valsaraju Date: Mon, 20 May 2019 11:10:24 -0700 Subject: [PATCH] Allow for the DTB image to be built by the Android build system. The current solution expects BOARD_PREBUILT_DTBIMAGE_DIR to contain prebuilt DTB files that are concatenated by the build system to create $OUT/dtb.img. In order to accommodate devices that build the dtb image locally, make boot.img creation depend on $OUT/dtb.img only when BOARD_PREBUILT_DTBIMAGE_DIR is undefined. Bug: 133161451 Test: Build with BOARD_PREBUILT_DTBIMAGE_DIR undefined and verify using unpack_bootimg.py that $OUT/dtb.img was included in boot.img. Change-Id: Iae2c634ccdc1d83589b26d382882f75fb8565a31 --- core/Makefile | 8 +++++--- core/board_config.mk | 6 ++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/core/Makefile b/core/Makefile index 603ad109b7..c0a8acc44f 100644 --- a/core/Makefile +++ b/core/Makefile @@ -857,12 +857,13 @@ $(call dist-for-goals, sdk win_sdk sdk_addon, $(INSTALLED_FILES_FILE_ROOT)) #------------------------------------------------------------------ # dtb - -ifdef BOARD_PREBUILT_DTBIMAGE_DIR +ifdef BOARD_INCLUDE_DTB_IN_BOOTIMG INSTALLED_DTBIMAGE_TARGET := $(PRODUCT_OUT)/dtb.img +ifdef BOARD_PREBUILT_DTBIMAGE_DIR $(INSTALLED_DTBIMAGE_TARGET) : $(sort $(wildcard $(BOARD_PREBUILT_DTBIMAGE_DIR)/*.dtb)) cat $^ > $@ endif +endif # ----------------------------------------------------------------- # the ramdisk @@ -3820,6 +3821,7 @@ $(BUILT_TARGET_FILES_PACKAGE): \ $(INTERNAL_SYSTEMOTHERIMAGE_FILES) \ $(INSTALLED_ANDROID_INFO_TXT_TARGET) \ $(INSTALLED_KERNEL_TARGET) \ + $(INSTALLED_DTBIMAGE_TARGET) \ $(INSTALLED_2NDBOOTLOADER_TARGET) \ $(BOARD_PREBUILT_DTBOIMAGE) \ $(BOARD_PREBUILT_RECOVERY_DTBOIMAGE) \ @@ -3872,7 +3874,7 @@ endif ifdef BOARD_INCLUDE_RECOVERY_ACPIO $(hide) cp $(BOARD_RECOVERY_ACPIO) $(zip_root)/$(PRIVATE_RECOVERY_OUT)/recovery_acpio endif -ifdef BOARD_INCLUDE_DTB_IN_BOOTIMG +ifdef INSTALLED_DTBIMAGE_TARGET $(hide) cp $(INSTALLED_DTBIMAGE_TARGET) $(zip_root)/$(PRIVATE_RECOVERY_OUT)/dtb endif ifdef INTERNAL_KERNEL_CMDLINE diff --git a/core/board_config.mk b/core/board_config.mk index 2580a33fa9..c3c66460a4 100644 --- a/core/board_config.mk +++ b/core/board_config.mk @@ -493,6 +493,12 @@ ifeq ($(PRODUCT_BUILD_GENERIC_OTA_PACKAGE),true) endif endif +ifdef BOARD_PREBUILT_DTBIMAGE_DIR + ifneq ($(BOARD_INCLUDE_DTB_IN_BOOTIMG),true) + $(error BOARD_PREBUILT_DTBIMAGE_DIR with 'BOARD_INCLUDE_DTB_IN_BOOTIMG != true' is not supported) + endif +endif + # Check BOARD_VNDK_VERSION define check_vndk_version $(eval vndk_path := prebuilts/vndk/v$(1)) \