Move from WITH_ART to PRODUCT_RUNTIMES

Change-Id: I3a9217b4aafc1f59d095169deb9eaeae17320505
This commit is contained in:
Brian Carlstrom
2013-06-27 12:02:46 -07:00
parent fcec57a116
commit 1aeee8bb66
10 changed files with 147 additions and 37 deletions

View File

@@ -104,9 +104,15 @@ ifndef ENABLE_SVG
#ENABLE_SVG:=false #ENABLE_SVG:=false
endif endif
# To enable ART define WITH_ART:=true # OVERRIDE_RUNTIMES allows you to locally override PRODUCT_RUNTIMES.
ifndef WITH_ART #
#WITH_ART:=true # 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 endif
# when the build system changes such that this file must be updated, this # when the build system changes such that this file must be updated, this

View File

@@ -123,7 +123,7 @@ TARGET_SHELL := mksh
# --------------------------------------------------------------- # ---------------------------------------------------------------
# Try to include buildspec.mk, which will try to set stuff up. # 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 # be used, and if that doesn't work, then the default is an
# arm build # arm build
ifndef ANDROID_BUILDSPEC ifndef ANDROID_BUILDSPEC

View File

@@ -95,7 +95,8 @@ _product_var_list := \
PRODUCT_RESTRICT_VENDOR_FILES \ PRODUCT_RESTRICT_VENDOR_FILES \
PRODUCT_VENDOR_KERNEL_HEADERS \ PRODUCT_VENDOR_KERNEL_HEADERS \
PRODUCT_FACTORY_RAMDISK_MODULES \ PRODUCT_FACTORY_RAMDISK_MODULES \
PRODUCT_FACTORY_BUNDLE_MODULES PRODUCT_FACTORY_BUNDLE_MODULES \
PRODUCT_RUNTIMES
define dump-product define dump-product

View File

@@ -170,10 +170,6 @@ ifeq ($(WITH_HOST_DALVIK),)
endif endif
endif endif
ifeq ($(WITH_ART),)
WITH_ART := false
endif
# --------------------------------------------------------------- # ---------------------------------------------------------------
# Include the product definitions. # Include the product definitions.
# We need to do this to translate TARGET_PRODUCT into its # 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 := \ PRODUCT_VENDOR_KERNEL_HEADERS := \
$(PRODUCTS.$(INTERNAL_PRODUCT).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 # 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 # 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 # 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 \ PRODUCT_EXTRA_RECOVERY_KEYS := $(sort \
$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_EXTRA_RECOVERY_KEYS)) $(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.
# ************************************************************************

View File

@@ -57,5 +57,6 @@ PRODUCT_PACKAGES += \
sensorservice \ sensorservice \
uiautomator uiautomator
PRODUCT_RUNTIMES := runtime_libdvm_default
$(call inherit-product, $(SRC_TARGET_DIR)/product/base.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/base.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/dalvikvm.mk)

View File

@@ -14,21 +14,7 @@
# limitations under the License. # limitations under the License.
# #
# Provides a functioning dalvikvm without Android frameworks # Common runtime modules for both Dalvik and ART
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
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
apache-xml \ apache-xml \
@@ -57,13 +43,6 @@ PRODUCT_PACKAGES += \
# host-only dependencies # host-only dependencies
ifeq ($(WITH_HOST_DALVIK),true) ifeq ($(WITH_HOST_DALVIK),true)
ifeq ($(WITH_ART),false)
PRODUCT_PACKAGES += \
core-hostdex
else
PRODUCT_PACKAGES += \
core-libart-hostdex
endif
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
apache-xml-hostdex \ apache-xml-hostdex \
bouncycastle-hostdex \ bouncycastle-hostdex \

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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