blob: e252765eaaded960ff10135c9997858072036439 [file] [log] [blame]
Brian Carlstrom7940e442013-07-12 13:46:57 -07001#
2# Copyright (C) 2011 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
Evgenii Stepanovc2f04742015-07-06 14:01:25 -070017# ASan slows down dex2oat by ~3.5x, which translates into extremely slow first
18# boot. Disabled to help speed up SANITIZE_TARGET mode.
19# The supported way of using SANITIZE_TARGET is by first running a normal build,
20# followed by a SANITIZE_TARGET=address build on top of it (in the same build
21# tree). By disabling this module in SANITIZE_TARGET build, we keep the regular,
22# uninstrumented version of it.
23# Bug: 22233158
Ivan Krasin33ddb742015-09-17 13:40:19 -070024ifeq (,$(filter address, $(SANITIZE_TARGET)))
Evgenii Stepanovc2f04742015-07-06 14:01:25 -070025
Brian Carlstrom7940e442013-07-12 13:46:57 -070026LOCAL_PATH := $(call my-dir)
27
28include art/build/Android.executable.mk
29
30DEX2OAT_SRC_FILES := \
31 dex2oat.cc
32
Andreas Gampe5a9cef82014-04-16 15:03:11 -070033# TODO: Remove this when the framework (installd) supports pushing the
34# right instruction-set parameter for the primary architecture.
35ifneq ($(filter ro.zygote=zygote64,$(PRODUCT_DEFAULT_PROPERTY_OVERRIDES)),)
Nicolas Geoffray4a4dd702014-12-05 11:55:41 +000036 dex2oat_target_arch := 64
Andreas Gampe5a9cef82014-04-16 15:03:11 -070037else
Nicolas Geoffray4a4dd702014-12-05 11:55:41 +000038 dex2oat_target_arch := 32
39endif
40
41# We need to explcitly give the arch, as giving 'both' will make the
42# build-art-executable rule compile dex2oat for 64bits.
43ifeq ($(HOST_PREFER_32_BIT),true)
44 dex2oat_host_arch := 32
45else
46 dex2oat_host_arch := both
Andreas Gampe5a9cef82014-04-16 15:03:11 -070047endif
48
Brian Carlstrom7940e442013-07-12 13:46:57 -070049ifeq ($(ART_BUILD_TARGET_NDEBUG),true)
Calin Juravle01aaf6e2015-06-19 22:05:39 +010050 $(eval $(call build-art-executable,dex2oat,$(DEX2OAT_SRC_FILES),libcutils libart-compiler libsigchain,art/compiler,target,ndebug,$(dex2oat_target_arch)))
Brian Carlstrom7940e442013-07-12 13:46:57 -070051endif
Calin Juravle65e069d2015-06-08 10:35:24 +010052
Brian Carlstrom7940e442013-07-12 13:46:57 -070053ifeq ($(ART_BUILD_TARGET_DEBUG),true)
Calin Juravle01aaf6e2015-06-19 22:05:39 +010054 $(eval $(call build-art-executable,dex2oat,$(DEX2OAT_SRC_FILES),libcutils libartd-compiler libsigchain,art/compiler,target,debug,$(dex2oat_target_arch)))
Brian Carlstrom7940e442013-07-12 13:46:57 -070055endif
56
Ian Rogersc5f17732014-06-05 20:48:42 -070057# We always build dex2oat and dependencies, even if the host build is otherwise disabled, since they are used to cross compile for the target.
Junmo Park03f92f42014-08-04 17:19:29 +090058ifeq ($(ART_BUILD_HOST_NDEBUG),true)
Calin Juravle01aaf6e2015-06-19 22:05:39 +010059 $(eval $(call build-art-executable,dex2oat,$(DEX2OAT_SRC_FILES),libcutils libart-compiler libsigchain libziparchive-host,art/compiler,host,ndebug,$(dex2oat_host_arch)))
Calin Juravle65e069d2015-06-08 10:35:24 +010060 ifeq ($(ART_BUILD_HOST_STATIC),true)
Yabin Cuif6010ec2015-09-21 20:28:36 -070061 $(eval $(call build-art-executable,dex2oat,$(DEX2OAT_SRC_FILES),libart libart-compiler libart libziparchive-host libnativehelper libnativebridge libsigchain_dummy libvixl liblog libz \
62 libbacktrace libLLVMObject libLLVMBitReader libLLVMMC libLLVMMCParser libLLVMCore libLLVMSupport libcutils libunwindbacktrace libutils libbase,art/compiler,host,ndebug,$(dex2oat_host_arch),static))
Calin Juravle65e069d2015-06-08 10:35:24 +010063 endif
Ian Rogersc5f17732014-06-05 20:48:42 -070064endif
Calin Juravle65e069d2015-06-08 10:35:24 +010065
Junmo Park03f92f42014-08-04 17:19:29 +090066ifeq ($(ART_BUILD_HOST_DEBUG),true)
Calin Juravle01aaf6e2015-06-19 22:05:39 +010067 $(eval $(call build-art-executable,dex2oat,$(DEX2OAT_SRC_FILES),libcutils libartd-compiler libsigchain libziparchive-host,art/compiler,host,debug,$(dex2oat_host_arch)))
Calin Juravle65e069d2015-06-08 10:35:24 +010068 ifeq ($(ART_BUILD_HOST_STATIC),true)
Yabin Cuif6010ec2015-09-21 20:28:36 -070069 $(eval $(call build-art-executable,dex2oat,$(DEX2OAT_SRC_FILES),libartd libartd-compiler libartd libziparchive-host libnativehelper libnativebridge libsigchain_dummy libvixld liblog libz \
70 libbacktrace libLLVMObject libLLVMBitReader libLLVMMC libLLVMMCParser libLLVMCore libLLVMSupport libcutils libunwindbacktrace libutils libbase,art/compiler,host,debug,$(dex2oat_host_arch),static))
Calin Juravle65e069d2015-06-08 10:35:24 +010071 endif
Brian Carlstrom7940e442013-07-12 13:46:57 -070072endif
Evgenii Stepanovc2f04742015-07-06 14:01:25 -070073
74endif