PRODUCT_BOOT_JARS as a list of jar names separated by space

This makes it easier for OEMs to extend the PRODUCT_BOOT_JARS in their
product configuration files.

Change-Id: I5feca2f808b1914c275f28c7a4c38cca2ba6851f
diff --git a/core/dex_preopt.mk b/core/dex_preopt.mk
index c9530c2..160f128 100644
--- a/core/dex_preopt.mk
+++ b/core/dex_preopt.mk
@@ -8,8 +8,8 @@
 endif
 
 # list of boot classpath jars for dexpreopt
-DEXPREOPT_BOOT_JARS := $(PRODUCT_BOOT_JARS)
-DEXPREOPT_BOOT_JARS_MODULES := $(subst :, ,$(DEXPREOPT_BOOT_JARS))
+DEXPREOPT_BOOT_JARS := $(subst $(space),:,$(PRODUCT_BOOT_JARS))
+DEXPREOPT_BOOT_JARS_MODULES := $(PRODUCT_BOOT_JARS)
 PRODUCT_BOOTCLASSPATH := $(subst $(space),:,$(foreach m,$(DEXPREOPT_BOOT_JARS_MODULES),/system/framework/$(m).jar))
 
 DEXPREOPT_BUILD_DIR := $(OUT_DIR)
diff --git a/core/product_config.mk b/core/product_config.mk
index a2be30b..0574c66 100644
--- a/core/product_config.mk
+++ b/core/product_config.mk
@@ -280,7 +280,7 @@
 #############################################################################
 
 # A list of module names of BOOTCLASSPATH (jar files)
-PRODUCT_BOOT_JARS := $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_BOOT_JARS)
+PRODUCT_BOOT_JARS := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_BOOT_JARS))
 
 # Find the device that this product maps to.
 TARGET_DEVICE := $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_DEVICE)
diff --git a/target/product/core_base.mk b/target/product/core_base.mk
index cde2b85..658e502 100644
--- a/target/product/core_base.mk
+++ b/target/product/core_base.mk
@@ -67,5 +67,20 @@
     voip-common
 
 $(call inherit-product, $(SRC_TARGET_DIR)/product/core_minimal.mk)
-# Override the PRODUCT_BOOT_JARS set in core_minimal.mk
-PRODUCT_BOOT_JARS := core:conscrypt:okhttp:core-junit:bouncycastle:ext:framework:framework2:telephony-common:voip-common:mms-common:android.policy:services:apache-xml:webviewchromium
+# Override the PRODUCT_BOOT_JARS set in core_minimal.mk. The order matters.
+PRODUCT_BOOT_JARS := \
+    core \
+    conscrypt \
+    okhttp \
+    core-junit \
+    bouncycastle \
+    ext \
+    framework \
+    framework2 \
+    telephony-common \
+    voip-common \
+    mms-common \
+    android.policy \
+    services \
+    apache-xml \
+    webviewchromium
diff --git a/target/product/core_minimal.mk b/target/product/core_minimal.mk
index 159e7b2..21a6e8b 100644
--- a/target/product/core_minimal.mk
+++ b/target/product/core_minimal.mk
@@ -57,7 +57,20 @@
     sensorservice \
     uiautomator
 
-PRODUCT_BOOT_JARS := core:conscrypt:okhttp:core-junit:bouncycastle:ext:framework:framework2:android.policy:services:apache-xml:webviewchromium
+# The order of PRODUCT_BOOT_JARS matters.
+PRODUCT_BOOT_JARS := \
+    core \
+    conscrypt \
+    okhttp \
+    core-junit \
+    bouncycastle \
+    ext \
+    framework \
+    framework2 \
+    android.policy \
+    services \
+    apache-xml \
+    webviewchromium
 
 PRODUCT_RUNTIMES := runtime_libdvm_default
 PRODUCT_RUNTIMES += runtime_libart