102ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers# 202ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers# Copyright (C) 2012 The Android Open Source Project 302ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers# 402ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers# Licensed under the Apache License, Version 2.0 (the "License"); 502ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers# you may not use this file except in compliance with the License. 602ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers# You may obtain a copy of the License at 702ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers# 802ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers# http://www.apache.org/licenses/LICENSE-2.0 902ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers# 1002ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers# Unless required by applicable law or agreed to in writing, software 1102ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers# distributed under the License is distributed on an "AS IS" BASIS, 1202ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1302ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers# See the License for the specific language governing permissions and 1402ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers# limitations under the License. 1502ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers# 1602ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers 1702ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian RogersLOCAL_PATH := $(call my-dir) 1802ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers 19afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersinclude art/build/Android.common_build.mk 2002ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers 2102ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian RogersLIBART_DISASSEMBLER_SRC_FILES := \ 2202ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers disassembler.cc \ 2302ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers disassembler_arm.cc \ 24e6622be6c353c7178f34adf814c58370a51c5ed7Serban Constantinescu disassembler_arm64.cc \ 2502ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers disassembler_mips.cc \ 2602ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers disassembler_x86.cc 2702ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers 2802ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers# $(1): target or host 2902ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers# $(2): ndebug or debug 3002ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogersdefine build-libart-disassembler 3102ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers ifneq ($(1),target) 3202ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers ifneq ($(1),host) 3302ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers $$(error expected target or host for argument 1, received $(1)) 3402ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers endif 3502ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers endif 3602ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers ifneq ($(2),ndebug) 3702ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers ifneq ($(2),debug) 3802ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers $$(error expected ndebug or debug for argument 2, received $(2)) 3902ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers endif 4002ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers endif 4102ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers 4202ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers art_target_or_host := $(1) 4302ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers art_ndebug_or_debug := $(2) 4402ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers 4502ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers include $(CLEAR_VARS) 46bd5ea6a2f7c61c4cd7b66fead1bedd96e938369dIan Rogers ifeq ($$(art_target_or_host),host) 47bd5ea6a2f7c61c4cd7b66fead1bedd96e938369dIan Rogers LOCAL_IS_HOST_MODULE := true 4802ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers endif 4902ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers LOCAL_CPP_EXTENSION := $(ART_CPP_EXTENSION) 5002ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers ifeq ($$(art_ndebug_or_debug),ndebug) 5102ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers LOCAL_MODULE := libart-disassembler 5202ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers else # debug 5302ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers LOCAL_MODULE := libartd-disassembler 5402ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers endif 5502ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers 5602ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers LOCAL_MODULE_TAGS := optional 5702ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers LOCAL_MODULE_CLASS := SHARED_LIBRARIES 5802ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers 5902ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers LOCAL_SRC_FILES := $$(LIBART_DISASSEMBLER_SRC_FILES) 6002ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers 6102ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers ifeq ($$(art_target_or_host),target) 625ca4eaace8ba513f97309bbdc2e156de4b1d648aAndreas Gampe $(call set-target-local-clang-vars) 635ca4eaace8ba513f97309bbdc2e156de4b1d648aAndreas Gampe $(call set-target-local-cflags-vars,$(2)) 6402ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers else # host 6502ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers LOCAL_CLANG := $(ART_HOST_CLANG) 6602ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers LOCAL_CFLAGS += $(ART_HOST_CFLAGS) 675ca4eaace8ba513f97309bbdc2e156de4b1d648aAndreas Gampe ifeq ($$(art_ndebug_or_debug),debug) 685ca4eaace8ba513f97309bbdc2e156de4b1d648aAndreas Gampe LOCAL_CFLAGS += $(ART_HOST_DEBUG_CFLAGS) 695ca4eaace8ba513f97309bbdc2e156de4b1d648aAndreas Gampe else 705ca4eaace8ba513f97309bbdc2e156de4b1d648aAndreas Gampe LOCAL_CFLAGS += $(ART_HOST_NON_DEBUG_CFLAGS) 715ca4eaace8ba513f97309bbdc2e156de4b1d648aAndreas Gampe endif 7202ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers endif 7302ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers 7402ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers LOCAL_SHARED_LIBRARIES += liblog 7502ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers ifeq ($$(art_ndebug_or_debug),debug) 7602ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers LOCAL_SHARED_LIBRARIES += libartd 7702ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers else 7802ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers LOCAL_SHARED_LIBRARIES += libart 7902ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers endif 8002ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers 8102ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers LOCAL_C_INCLUDES += $(ART_C_INCLUDES) art/runtime 8202ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers 83afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers LOCAL_ADDITIONAL_DEPENDENCIES := art/build/Android.common_build.mk 8402ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk 852a0e954ecf7c60e6ec62d64b9382cc4ee447e224Dan Albert include external/libcxx/libcxx.mk 8602ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers ifeq ($$(art_target_or_host),target) 87e6622be6c353c7178f34adf814c58370a51c5ed7Serban Constantinescu LOCAL_SHARED_LIBRARIES += libcutils libvixl 8802ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers include $(BUILD_SHARED_LIBRARY) 8902ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers else # host 90e6622be6c353c7178f34adf814c58370a51c5ed7Serban Constantinescu LOCAL_STATIC_LIBRARIES += libcutils libvixl 9102ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers include $(BUILD_HOST_SHARED_LIBRARY) 9202ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers endif 9302ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogersendef 9402ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers 9502ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogersifeq ($(ART_BUILD_TARGET_NDEBUG),true) 9602ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers $(eval $(call build-libart-disassembler,target,ndebug)) 9702ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogersendif 9802ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogersifeq ($(ART_BUILD_TARGET_DEBUG),true) 9902ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogers $(eval $(call build-libart-disassembler,target,debug)) 10002ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogersendif 101c5f17732d8144491c642776b6b48c85dfadf4b52Ian Rogers# We always build dex2oat and dependencies, even if the host build is otherwise disabled, since they are used to cross compile for the target. 102c5f17732d8144491c642776b6b48c85dfadf4b52Ian Rogersifeq ($(ART_BUILD_NDEBUG),true) 103c5f17732d8144491c642776b6b48c85dfadf4b52Ian Rogers $(eval $(call build-libart-disassembler,host,ndebug)) 104c5f17732d8144491c642776b6b48c85dfadf4b52Ian Rogersendif 105c5f17732d8144491c642776b6b48c85dfadf4b52Ian Rogersifeq ($(ART_BUILD_DEBUG),true) 106c5f17732d8144491c642776b6b48c85dfadf4b52Ian Rogers $(eval $(call build-libart-disassembler,host,debug)) 10702ed4c04468ca5f5540c5b704ac3e2f30eb9e8f4Ian Rogersendif 108