AndroidBoot.mk: Allow NAND and eMMC variants to be built independently

Due to legacy reasons we always built NAND variant along with eMMC
variant.  Update to exposes top level rules to allow building just
NAND or eMMC variants as TARGET_NAND_BOOTLOADER and
TARGET_EMMC_BOOTLOADER respectively.

Targets using TARGET_BOOTLOADER continue to get both variants for
older targets that use it and is planned to be removed in future.

Change-Id: Ic86c7335c013f6d7dc7c30812dceb88d2ab54c08
diff --git a/AndroidBoot.mk b/AndroidBoot.mk
index 1e80106..9a058c7 100644
--- a/AndroidBoot.mk
+++ b/AndroidBoot.mk
@@ -1,8 +1,5 @@
 #Android makefile to build lk bootloader as a part of Android Build
 
-TARGET_BOOTLOADER := $(PRODUCT_OUT)/appsboot.mbn
-BOOTLOADER_OUT := $(TOP)/$(TARGET_OUT_INTERMEDIATES)/BOOTLOADER_OBJ
-
 ifeq ($(call is-android-codename,HONEYCOMB),true)
 CROSS_TOOL := ../../../prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
 else ifeq ($(call is-android-codename,ICECREAM_SANDWICH),true)
@@ -11,57 +8,44 @@
 CROSS_TOOL := ../../../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
 endif
 
-# Remove bootloader binary to trigger recompile when source changes
-appsbootldr_clean:
-	$(hide) rm -f $(TARGET_BOOTLOADER)
-	$(hide) rm -rf $(BOOTLOADER_OUT)
-
-$(BOOTLOADER_OUT):
-	mkdir -p $(BOOTLOADER_OUT)
-
-
-TARGET_EMMC := 0
-ifeq ($(TARGET_USERIMAGES_USE_EXT2),true)
-  TARGET_EMMC := 1
-endif
-ifeq ($(TARGET_USERIMAGES_USE_EXT3),true)
-  TARGET_EMMC := 1
-endif
-ifeq ($(TARGET_USERIMAGES_USE_EXT4),true)
-  TARGET_EMMC := 1
-endif
-
+# Set flags if we need to include security libs
 ifeq ($(TARGET_BOOTIMG_SIGNED),true)
   SIGNED_KERNEL := SIGNED_KERNEL=1
 else
   SIGNED_KERNEL := SIGNED_KERNEL=0
 endif
 
-ifeq ($(TARGET_EMMC),1)
-TARGET_BOOTLOADER_EMMC := $(PRODUCT_OUT)/EMMCBOOT.MBN
-BOOTLOADER_EMMC_OUT := $(TOP)/$(TARGET_OUT_INTERMEDIATES)/BOOTLOADER_EMMC_OBJ
+# NAND variant output
+TARGET_NAND_BOOTLOADER := $(PRODUCT_OUT)/appsboot.mbn
+NAND_BOOTLOADER_OUT := $(TARGET_OUT_INTERMEDIATES)/NAND_BOOTLOADER_OBJ
 
-emmc_appsbootldr_clean:
-	$(hide) rm -f $(TARGET_BOOTLOADER_EMMC)
-	$(hide) rm -rf $(BOOTLOADER_EMMC_OUT)
+$(NAND_BOOTLOADER_OUT):
+	mkdir -p $(NAND_BOOTLOADER_OUT)
 
-$(BOOTLOADER_EMMC_OUT):
-	mkdir -p $(BOOTLOADER_EMMC_OUT)
+# eMMC variant output
+TARGET_EMMC_BOOTLOADER := $(PRODUCT_OUT)/emmc_appsboot.mbn
+EMMC_BOOTLOADER_OUT := $(TARGET_OUT_INTERMEDIATES)/EMMC_BOOTLOADER_OBJ
 
-$(TARGET_BOOTLOADER): appsbootldr_clean emmc_appsbootldr_clean | $(BOOTLOADER_OUT) $(BOOTLOADER_EMMC_OUT)
-	$(MAKE) -C bootable/bootloader/lk TOOLCHAIN_PREFIX=$(CROSS_TOOL) BOOTLOADER_OUT=../../../$(BOOTLOADER_OUT) $(TARGET_PRODUCT) $(SIGNED_KERNEL)
-	$(MAKE) -C bootable/bootloader/lk TOOLCHAIN_PREFIX=$(CROSS_TOOL) BOOTLOADER_OUT=../../../$(BOOTLOADER_EMMC_OUT) $(TARGET_PRODUCT) EMMC_BOOT=1 $(SIGNED_KERNEL)
+$(EMMC_BOOTLOADER_OUT):
+	mkdir -p $(EMMC_BOOTLOADER_OUT)
 
-else
+# Top level for NAND variant targets
+$(TARGET_NAND_BOOTLOADER): $(NAND_BOOTLOADER_OUT)
+	$(MAKE) -C bootable/bootloader/lk TOOLCHAIN_PREFIX=$(CROSS_TOOL) BOOTLOADER_OUT=../../../$(NAND_BOOTLOADER_OUT) $(TARGET_PRODUCT) $(SIGNED_KERNEL)
 
-$(TARGET_BOOTLOADER): appsbootldr_clean | $(BOOTLOADER_OUT)
-	$(MAKE) -C bootable/bootloader/lk TOOLCHAIN_PREFIX=$(CROSS_TOOL) BOOTLOADER_OUT=../../../$(BOOTLOADER_OUT) $(TARGET_PRODUCT) $(SIGNED_KERNEL)
+# Top level for eMMC variant targets
+$(TARGET_EMMC_BOOTLOADER): $(EMMC_BOOTLOADER_OUT)
+	$(MAKE) -C bootable/bootloader/lk TOOLCHAIN_PREFIX=$(CROSS_TOOL) BOOTLOADER_OUT=../../../$(EMMC_BOOTLOADER_OUT) $(TARGET_PRODUCT) EMMC_BOOT=1 $(SIGNED_KERNEL)
 
-endif
+# Keep build NAND & eMMC as default for targets still using TARGET_BOOTLOADER
+TARGET_BOOTLOADER := $(PRODUCT_OUT)/EMMCBOOT.MBN
+$(TARGET_BOOTLOADER): $(NAND_BOOTLOADER_OUT) $(EMMC_BOOTLOADER_OUT) | $(TARGET_NAND_BOOTLOADER) $(TARGET_EMMC_BOOTLOADER)
 
-#build nandwrite as a part of Android Build
+#
+# Build nandwrite as a part of Android Build for NAND configurations
+#
 TARGET_NANDWRITE := $(PRODUCT_OUT)/obj/nandwrite/build-$(TARGET_PRODUCT)_nandwrite/lk
-NANDWRITE_OUT := $(TOP)/$(TARGET_OUT_INTERMEDIATES)/nandwrite
+NANDWRITE_OUT := $(TARGET_OUT_INTERMEDIATES)/nandwrite
 
 nandwrite_clean:
 	$(hide) rm -f $(TARGET_NANDWRITE)
@@ -73,4 +57,3 @@
 $(TARGET_NANDWRITE): nandwrite_clean | $(NANDWRITE_OUT)
 	@echo $(TARGET_PRODUCT)_nandwrite
 	$(MAKE) -C bootable/bootloader/lk TOOLCHAIN_PREFIX=$(CROSS_TOOL) BOOTLOADER_OUT=../../../$(NANDWRITE_OUT) $(TARGET_PRODUCT)_nandwrite BUILD_NANDWRITE=1
-