summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Carlstrom <bdc@google.com>2013-06-27 12:02:46 -0700
committerBrian Carlstrom <bdc@google.com>2013-06-27 16:49:15 -0700
commit1aeee8bb660cb91d1611ad0ba1b9eaf318cf2779 (patch)
tree3c2c88a03c43e43ab5bb2f8588884751c9b017ed
parentfcec57a1165dc78ca2630c017dd95bddce31e55a (diff)
downloadbuild-1aeee8bb660cb91d1611ad0ba1b9eaf318cf2779.zip
build-1aeee8bb660cb91d1611ad0ba1b9eaf318cf2779.tar.gz
build-1aeee8bb660cb91d1611ad0ba1b9eaf318cf2779.tar.bz2
Move from WITH_ART to PRODUCT_RUNTIMES
Change-Id: I3a9217b4aafc1f59d095169deb9eaeae17320505
-rw-r--r--buildspec.mk.default12
-rw-r--r--core/config.mk2
-rw-r--r--core/product.mk3
-rw-r--r--core/product_config.mk35
-rw-r--r--target/product/core_minimal.mk3
-rw-r--r--target/product/runtime_common.mk (renamed from target/product/dalvikvm.mk)23
-rw-r--r--target/product/runtime_libart.mk32
-rw-r--r--target/product/runtime_libart_default.mk22
-rw-r--r--target/product/runtime_libdvm.mk30
-rw-r--r--target/product/runtime_libdvm_default.mk22
10 files changed, 147 insertions, 37 deletions
diff --git a/buildspec.mk.default b/buildspec.mk.default
index 397194c..6f9e755 100644
--- a/buildspec.mk.default
+++ b/buildspec.mk.default
@@ -104,9 +104,15 @@ ifndef ENABLE_SVG
#ENABLE_SVG:=false
endif
-# To enable ART define WITH_ART:=true
-ifndef WITH_ART
-#WITH_ART:=true
+# OVERRIDE_RUNTIMES allows you to locally override PRODUCT_RUNTIMES.
+#
+# To only build ART, use "runtime_libart_default"
+# To use Dalvik but also include ART, use "runtime_libdvm_default runtime_libart"
+# To use ART but also include Dalvik, use "runtime_libart_default runtime_libdvm"
+ifndef OVERRIDE_RUNTIMES
+#OVERRIDE_RUNTIMES:=runtime_libart_default
+#OVERRIDE_RUNTIMES:=runtime_libdvm_default runtime_libart
+#OVERRIDE_RUNTIMES:=runtime_libart_default runtime_libdvm
endif
# when the build system changes such that this file must be updated, this
diff --git a/core/config.mk b/core/config.mk
index e7ee49f..beb4b31 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -123,7 +123,7 @@ TARGET_SHELL := mksh
# ---------------------------------------------------------------
# Try to include buildspec.mk, which will try to set stuff up.
-# If this file doesn't exist, the environemnt variables will
+# If this file doesn't exist, the environment variables will
# be used, and if that doesn't work, then the default is an
# arm build
ifndef ANDROID_BUILDSPEC
diff --git a/core/product.mk b/core/product.mk
index bbd0c31..89bce1d 100644
--- a/core/product.mk
+++ b/core/product.mk
@@ -95,7 +95,8 @@ _product_var_list := \
PRODUCT_RESTRICT_VENDOR_FILES \
PRODUCT_VENDOR_KERNEL_HEADERS \
PRODUCT_FACTORY_RAMDISK_MODULES \
- PRODUCT_FACTORY_BUNDLE_MODULES
+ PRODUCT_FACTORY_BUNDLE_MODULES \
+ PRODUCT_RUNTIMES
define dump-product
diff --git a/core/product_config.mk b/core/product_config.mk
index c8955f6..5c6975e 100644
--- a/core/product_config.mk
+++ b/core/product_config.mk
@@ -170,10 +170,6 @@ ifeq ($(WITH_HOST_DALVIK),)
endif
endif
-ifeq ($(WITH_ART),)
- WITH_ART := false
-endif
-
# ---------------------------------------------------------------
# Include the product definitions.
# We need to do this to translate TARGET_PRODUCT into its
@@ -356,11 +352,6 @@ PRODUCT_TAGS := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_TAGS))
PRODUCT_VENDOR_KERNEL_HEADERS := \
$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VENDOR_KERNEL_HEADERS)
-# Add the product-defined properties to the build properties.
-ADDITIONAL_BUILD_PROPERTIES := \
- $(ADDITIONAL_BUILD_PROPERTIES) \
- $(PRODUCT_PROPERTY_OVERRIDES)
-
# The OTA key(s) specified by the product config, if any. The names
# of these keys are stored in the target-files zip so that post-build
# signing tools can substitute them for the test key embedded by
@@ -370,3 +361,29 @@ PRODUCT_OTA_PUBLIC_KEYS := $(sort \
PRODUCT_EXTRA_RECOVERY_KEYS := $(sort \
$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_EXTRA_RECOVERY_KEYS))
+
+# Set PRODUCT_RUNTIME, allowing buildspec to override using OVERRIDE_RUNTIMES
+PRODUCT_RUNTIMES := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_RUNTIMES))
+ifneq ($(OVERRIDE_RUNTIMES),)
+ $(info Overriding PRODUCT_RUNTIMES=$(PRODUCT_RUNTIMES) with $(OVERRIDE_RUNTIMES))
+ PRODUCT_RUNTIMES := $(OVERRIDE_RUNTIMES)
+endif
+$(foreach runtime, $(PRODUCT_RUNTIMES), $(eval include $(SRC_TARGET_DIR)/product/$(runtime).mk))
+PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES += $(PRODUCT_PACKAGES)
+PRODUCT_PACKAGES :=
+
+# Add the product-defined properties to the build properties.
+#
+# Note that PRODUCT_PROPERTY_OVERRIDES can be extended by processing
+# the PRODUCT_PACKAGES which is why this is below that.
+#
+ADDITIONAL_BUILD_PROPERTIES := \
+ $(ADDITIONAL_BUILD_PROPERTIES) \
+ $(PRODUCT_PROPERTY_OVERRIDES)
+
+# ************************************************************************
+# ADD NEW PRODUCT_* VARIABLES ABOVE PRODUCT_RUNTIMES
+#
+# This is because including the PRODUCT_RUNTIMES can add to other
+# PRODUCT_* variables.
+# ************************************************************************
diff --git a/target/product/core_minimal.mk b/target/product/core_minimal.mk
index 3dab1a9..cf499cb 100644
--- a/target/product/core_minimal.mk
+++ b/target/product/core_minimal.mk
@@ -57,5 +57,6 @@ PRODUCT_PACKAGES += \
sensorservice \
uiautomator
+PRODUCT_RUNTIMES := runtime_libdvm_default
+
$(call inherit-product, $(SRC_TARGET_DIR)/product/base.mk)
-$(call inherit-product, $(SRC_TARGET_DIR)/product/dalvikvm.mk)
diff --git a/target/product/dalvikvm.mk b/target/product/runtime_common.mk
index beed32b..8b12bf6 100644
--- a/target/product/dalvikvm.mk
+++ b/target/product/runtime_common.mk
@@ -14,21 +14,7 @@
# limitations under the License.
#
-# Provides a functioning dalvikvm without Android frameworks
-
-ifeq ($(WITH_ART),false)
- PRODUCT_PACKAGES += \
- core \
- libdvm \
- dexopt
-else
- PRODUCT_PACKAGES += \
- core-libart \
- libart \
- dex2oat
- PRODUCT_PROPERTY_OVERRIDES += \
- dalvik.vm.lib=libart.so
-endif
+# Common runtime modules for both Dalvik and ART
PRODUCT_PACKAGES += \
apache-xml \
@@ -57,13 +43,6 @@ PRODUCT_PACKAGES += \
# host-only dependencies
ifeq ($(WITH_HOST_DALVIK),true)
- ifeq ($(WITH_ART),false)
- PRODUCT_PACKAGES += \
- core-hostdex
- else
- PRODUCT_PACKAGES += \
- core-libart-hostdex
- endif
PRODUCT_PACKAGES += \
apache-xml-hostdex \
bouncycastle-hostdex \
diff --git a/target/product/runtime_libart.mk b/target/product/runtime_libart.mk
new file mode 100644
index 0000000..ce09166
--- /dev/null
+++ b/target/product/runtime_libart.mk
@@ -0,0 +1,32 @@
+#
+# Copyright (C) 2013 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# Provides a functioning ART environment without Android frameworks
+
+PRODUCT_PACKAGES += \
+ core-libart \
+ libart \
+ dex2oat
+PRODUCT_PROPERTY_OVERRIDES += \
+ dalvik.vm.lib=libart.so
+
+# host-only dependencies
+ifeq ($(WITH_HOST_DALVIK),true)
+ PRODUCT_PACKAGES += \
+ core-libart-hostdex
+endif
+
+include $(SRC_TARGET_DIR)/product/runtime_common.mk
diff --git a/target/product/runtime_libart_default.mk b/target/product/runtime_libart_default.mk
new file mode 100644
index 0000000..49f4f45
--- /dev/null
+++ b/target/product/runtime_libart_default.mk
@@ -0,0 +1,22 @@
+#
+# Copyright (C) 2013 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# Set ART as the default runtime environment
+
+PRODUCT_PROPERTY_OVERRIDES += \
+ dalvik.vm.lib=libart.so
+
+include $(SRC_TARGET_DIR)/product/runtime_libart.mk
diff --git a/target/product/runtime_libdvm.mk b/target/product/runtime_libdvm.mk
new file mode 100644
index 0000000..e7647b8
--- /dev/null
+++ b/target/product/runtime_libdvm.mk
@@ -0,0 +1,30 @@
+#
+# Copyright (C) 2013 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# Provides a functioning Dalvik environment without Android frameworks
+
+PRODUCT_PACKAGES += \
+ core \
+ libdvm \
+ dexopt
+
+# host-only dependencies
+ifeq ($(WITH_HOST_DALVIK),true)
+ PRODUCT_PACKAGES += \
+ core-hostdex
+endif
+
+include $(SRC_TARGET_DIR)/product/runtime_common.mk
diff --git a/target/product/runtime_libdvm_default.mk b/target/product/runtime_libdvm_default.mk
new file mode 100644
index 0000000..bbe13bb
--- /dev/null
+++ b/target/product/runtime_libdvm_default.mk
@@ -0,0 +1,22 @@
+#
+# Copyright (C) 2013 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# Set Dalvik as the default runtime environment
+
+PRODUCT_PROPERTY_OVERRIDES += \
+ dalvik.vm.lib=libdvm.so
+
+include $(SRC_TARGET_DIR)/product/runtime_libdvm.mk