Home | History | Annotate | Download | only in disassembler
      1 #
      2 # Copyright (C) 2012 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 
     17 LOCAL_PATH := $(call my-dir)
     18 
     19 include art/build/Android.common_build.mk
     20 
     21 LIBART_DISASSEMBLER_SRC_FILES := \
     22 	disassembler.cc \
     23 	disassembler_arm.cc \
     24 	disassembler_arm64.cc \
     25 	disassembler_mips.cc \
     26 	disassembler_x86.cc
     27 
     28 # $(1): target or host
     29 # $(2): ndebug or debug
     30 define build-libart-disassembler
     31   ifneq ($(1),target)
     32     ifneq ($(1),host)
     33       $$(error expected target or host for argument 1, received $(1))
     34     endif
     35   endif
     36   ifneq ($(2),ndebug)
     37     ifneq ($(2),debug)
     38       $$(error expected ndebug or debug for argument 2, received $(2))
     39     endif
     40   endif
     41 
     42   art_target_or_host := $(1)
     43   art_ndebug_or_debug := $(2)
     44 
     45   include $(CLEAR_VARS)
     46   ifeq ($$(art_target_or_host),host)
     47      LOCAL_IS_HOST_MODULE := true
     48   endif
     49   LOCAL_CPP_EXTENSION := $(ART_CPP_EXTENSION)
     50   ifeq ($$(art_ndebug_or_debug),ndebug)
     51     LOCAL_MODULE := libart-disassembler
     52   else # debug
     53     LOCAL_MODULE := libartd-disassembler
     54   endif
     55 
     56   LOCAL_MODULE_TAGS := optional
     57   LOCAL_MODULE_CLASS := SHARED_LIBRARIES
     58 
     59   LOCAL_SRC_FILES := $$(LIBART_DISASSEMBLER_SRC_FILES)
     60 
     61   ifeq ($$(art_target_or_host),target)
     62   	$(call set-target-local-clang-vars)
     63   	$(call set-target-local-cflags-vars,$(2))
     64   else # host
     65     LOCAL_CLANG := $(ART_HOST_CLANG)
     66     LOCAL_CFLAGS += $(ART_HOST_CFLAGS)
     67     ifeq ($$(art_ndebug_or_debug),debug)
     68       LOCAL_CFLAGS += $(ART_HOST_DEBUG_CFLAGS)
     69     else
     70       LOCAL_CFLAGS += $(ART_HOST_NON_DEBUG_CFLAGS)
     71     endif
     72   endif
     73 
     74   LOCAL_SHARED_LIBRARIES += liblog
     75   ifeq ($$(art_ndebug_or_debug),debug)
     76     LOCAL_SHARED_LIBRARIES += libartd
     77   else
     78     LOCAL_SHARED_LIBRARIES += libart
     79   endif
     80 
     81   LOCAL_C_INCLUDES += $(ART_C_INCLUDES) art/runtime
     82 
     83   LOCAL_ADDITIONAL_DEPENDENCIES := art/build/Android.common_build.mk
     84   LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
     85   include external/libcxx/libcxx.mk
     86   ifeq ($$(art_target_or_host),target)
     87     LOCAL_SHARED_LIBRARIES += libcutils libvixl
     88     include $(BUILD_SHARED_LIBRARY)
     89   else # host
     90     LOCAL_STATIC_LIBRARIES += libcutils libvixl
     91     include $(BUILD_HOST_SHARED_LIBRARY)
     92   endif
     93 endef
     94 
     95 ifeq ($(ART_BUILD_TARGET_NDEBUG),true)
     96   $(eval $(call build-libart-disassembler,target,ndebug))
     97 endif
     98 ifeq ($(ART_BUILD_TARGET_DEBUG),true)
     99   $(eval $(call build-libart-disassembler,target,debug))
    100 endif
    101 # We always build dex2oat and dependencies, even if the host build is otherwise disabled, since they are used to cross compile for the target.
    102 ifeq ($(ART_BUILD_NDEBUG),true)
    103   $(eval $(call build-libart-disassembler,host,ndebug))
    104 endif
    105 ifeq ($(ART_BUILD_DEBUG),true)
    106   $(eval $(call build-libart-disassembler,host,debug))
    107 endif
    108