101 lines
3.7 KiB
Makefile
101 lines
3.7 KiB
Makefile
#
|
|
# Copyright (C) 2011 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.
|
|
#
|
|
|
|
# ASan slows down dex2oat by ~3.5x, which translates into extremely slow first
|
|
# boot. Disabled to help speed up SANITIZE_TARGET mode.
|
|
# The supported way of using SANITIZE_TARGET is by first running a normal build,
|
|
# followed by a SANITIZE_TARGET=address build on top of it (in the same build
|
|
# tree). By disabling this module in SANITIZE_TARGET build, we keep the regular,
|
|
# uninstrumented version of it.
|
|
# Bug: 22233158
|
|
ifeq (,$(filter address, $(SANITIZE_TARGET)))
|
|
|
|
LOCAL_PATH := $(call my-dir)
|
|
|
|
include art/build/Android.executable.mk
|
|
|
|
DEX2OAT_SRC_FILES := \
|
|
dex2oat.cc
|
|
|
|
# TODO: Remove this when the framework (installd) supports pushing the
|
|
# right instruction-set parameter for the primary architecture.
|
|
ifneq ($(filter ro.zygote=zygote64,$(PRODUCT_DEFAULT_PROPERTY_OVERRIDES)),)
|
|
dex2oat_target_arch := 64
|
|
else
|
|
dex2oat_target_arch := 32
|
|
endif
|
|
|
|
ifeq ($(HOST_PREFER_32_BIT),true)
|
|
# We need to explicitly restrict the host arch to 32-bit only, as
|
|
# giving 'both' would make build-art-executable generate a build
|
|
# rule for a 64-bit dex2oat executable too.
|
|
dex2oat_host_arch := 32
|
|
else
|
|
dex2oat_host_arch := both
|
|
endif
|
|
|
|
ifeq ($(ART_BUILD_TARGET_NDEBUG),true)
|
|
$(eval $(call build-art-executable,dex2oat,$(DEX2OAT_SRC_FILES),libcutils libart-compiler libsigchain,art/compiler,target,ndebug,$(dex2oat_target_arch)))
|
|
endif
|
|
|
|
ifeq ($(ART_BUILD_TARGET_DEBUG),true)
|
|
$(eval $(call build-art-executable,dex2oat,$(DEX2OAT_SRC_FILES),libcutils libartd-compiler libsigchain,art/compiler,target,debug,$(dex2oat_target_arch)))
|
|
endif
|
|
|
|
# Note: the order is important because of static linking resolution.
|
|
DEX2OAT_STATIC_DEPENDENCIES := \
|
|
libziparchive-host \
|
|
libnativehelper \
|
|
libnativebridge \
|
|
libnativeloader \
|
|
libsigchain_dummy \
|
|
libvixl \
|
|
liblog \
|
|
libz \
|
|
libbacktrace \
|
|
libLLVMObject \
|
|
libLLVMBitReader \
|
|
libLLVMMC \
|
|
libLLVMMCParser \
|
|
libLLVMCore \
|
|
libLLVMSupport \
|
|
libcutils \
|
|
libunwindbacktrace \
|
|
libutils \
|
|
libbase \
|
|
liblz4 \
|
|
liblzma
|
|
|
|
# We always build dex2oat and dependencies, even if the host build is otherwise disabled, since they are used to cross compile for the target.
|
|
ifeq ($(ART_BUILD_HOST_NDEBUG),true)
|
|
$(eval $(call build-art-executable,dex2oat,$(DEX2OAT_SRC_FILES),libcutils libart-compiler libsigchain libziparchive-host liblz4,art/compiler,host,ndebug,$(dex2oat_host_arch)))
|
|
ifeq ($(ART_BUILD_HOST_STATIC),true)
|
|
$(eval $(call build-art-executable,dex2oat,$(DEX2OAT_SRC_FILES),libart libart-compiler libart $(DEX2OAT_STATIC_DEPENDENCIES),art/compiler,host,ndebug,$(dex2oat_host_arch),static))
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(ART_BUILD_HOST_DEBUG),true)
|
|
$(eval $(call build-art-executable,dex2oat,$(DEX2OAT_SRC_FILES),libcutils libartd-compiler libsigchain libziparchive-host liblz4,art/compiler,host,debug,$(dex2oat_host_arch)))
|
|
ifeq ($(ART_BUILD_HOST_STATIC),true)
|
|
$(eval $(call build-art-executable,dex2oat,$(DEX2OAT_SRC_FILES),libartd libartd-compiler libartd $(DEX2OAT_STATIC_DEPENDENCIES),art/compiler,host,debug,$(dex2oat_host_arch),static))
|
|
endif
|
|
endif
|
|
|
|
# Clear locals now they've served their purpose.
|
|
dex2oat_target_arch :=
|
|
dex2oat_host_arch :=
|
|
|
|
endif
|