Home | History | Annotate | Download | only in android
      1 # NOTE: `Android.mk` is automatically generated via the
      2 # `third_party/android/generate_android_mk.py` script. Changes should be applied
      3 # to `third_party/android/Android.mk.template`, and the script run to regenerate
      4 # `Android.mk`.
      5 
      6 # Copyright (C) 2015 The Android Open Source Project
      7 # All rights reserved.
      8 #
      9 # Redistribution and use in source and binary forms, with or without
     10 # modification, are permitted provided that the following conditions
     11 # are met:
     12 #  * Redistributions of source code must retain the above copyright
     13 #    notice, this list of conditions and the following disclaimer.
     14 #  * Redistributions in binary form must reproduce the above copyright
     15 #    notice, this list of conditions and the following disclaimer in
     16 #    the documentation and/or other materials provided with the
     17 #    distribution.
     18 #
     19 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     20 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     21 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
     22 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
     23 # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
     24 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
     25 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
     26 # OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
     27 # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
     28 # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
     29 # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     30 # SUCH DAMAGE.
     31 #
     32 #
     33 # Copyright (c) 2015 ARM Ltd
     34 # All rights reserved.
     35 #
     36 # Redistribution and use in source and binary forms, with or without
     37 # modification, are permitted provided that the following conditions
     38 # are met:
     39 # 1. Redistributions of source code must retain the above copyright
     40 #    notice, this list of conditions and the following disclaimer.
     41 # 2. Redistributions in binary form must reproduce the above copyright
     42 #    notice, this list of conditions and the following disclaimer in the
     43 #    documentation and/or other materials provided with the distribution.
     44 # 3. The name of the company may not be used to endorse or promote
     45 #    products derived from this software without specific prior written
     46 #    permission.
     47 #
     48 # THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
     49 # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
     50 # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     51 # IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     52 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
     53 # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
     54 # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
     55 # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
     56 # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     57 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     58 
     59 LOCAL_PATH:= $(call my-dir)
     60 
     61 vixl_root := $(LOCAL_PATH)/
     62 vixl_include_files := $(vixl_root)/src/
     63 
     64 vixl_src_files := \
     65   {vixl_sources}
     66 
     67 vixl_test_files := \
     68   {vixl_test_files}
     69 
     70 vixl_cpp_flags := \
     71   -DVIXL_INCLUDE_SIMULATOR \
     72   -DVIXL_GENERATE_SIMULATOR_INSTRUCTIONS_VALUE=0 \
     73   -Wall \
     74   -Wextra \
     75   -Werror \
     76   -fdiagnostics-show-option \
     77   -Wredundant-decls \
     78   -Wunreachable-code \
     79   -Wmissing-noreturn \
     80   -pedantic \
     81   -std=c++11 \
     82 
     83 # Explicitly enable the write-strings warning. VIXL uses
     84 # const correctly when handling string constants.
     85 vixl_cpp_flags += \
     86   -Wwrite-strings \
     87 
     88 vixl_cpp_flags_release := \
     89   $(vixl_cpp_flags) \
     90   -O3 \
     91 
     92 vixl_cpp_flags_debug := \
     93   $(vixl_cpp_flags) \
     94   -DVIXL_DEBUG \
     95   -UNDEBUG \
     96   -O2 \
     97   -ggdb3 \
     98 
     99 VIXL_COVERAGE := false
    100 
    101 ifeq ($(ART_COVERAGE), true)
    102   VIXL_COVERAGE := true
    103 endif
    104 
    105 include $(CLEAR_VARS)
    106 LOCAL_CLANG := true
    107 LOCAL_CPP_EXTENSION := .cc
    108 LOCAL_CPPFLAGS := $(vixl_cpp_flags_release)
    109 LOCAL_CLANG_CFLAGS := -Wimplicit-fallthrough
    110 LOCAL_C_INCLUDES := $(vixl_include_files)
    111 LOCAL_SRC_FILES :=  $(vixl_src_files)
    112 LOCAL_SHARED_LIBRARIES := liblog
    113 LOCAL_MODULE_TAGS := optional
    114 LOCAL_MODULE := libvixl
    115 LOCAL_SANITIZE_RECOVER := shift-exponent
    116 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
    117 include $(BUILD_SHARED_LIBRARY)
    118 
    119 include $(CLEAR_VARS)
    120 LOCAL_CLANG := true
    121 LOCAL_CPP_EXTENSION := .cc
    122 LOCAL_CPPFLAGS := $(vixl_cpp_flags_debug)
    123 LOCAL_CLANG_CFLAGS := -Wimplicit-fallthrough
    124 LOCAL_C_INCLUDES := $(vixl_include_files)
    125 LOCAL_SRC_FILES :=  $(vixl_src_files)
    126 LOCAL_SHARED_LIBRARIES := liblog
    127 LOCAL_MODULE_TAGS := optional
    128 LOCAL_MODULE := libvixld
    129 LOCAL_SANITIZE_RECOVER := shift-exponent
    130 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
    131 include $(BUILD_SHARED_LIBRARY)
    132 
    133 
    134 include $(CLEAR_VARS)
    135 LOCAL_CLANG := true
    136 LOCAL_CPP_EXTENSION := .cc
    137 LOCAL_CPPFLAGS := $(vixl_cpp_flags_release)
    138 LOCAL_CLANG_CFLAGS := -Wimplicit-fallthrough
    139 LOCAL_NATIVE_COVERAGE := $(VIXL_COVERAGE)
    140 LOCAL_C_INCLUDES := $(vixl_include_files)
    141 LOCAL_SRC_FILES :=  $(vixl_src_files)
    142 LOCAL_SHARED_LIBRARIES := liblog
    143 LOCAL_MODULE_TAGS := optional
    144 LOCAL_MODULE := libvixl
    145 LOCAL_SANITIZE_RECOVER := shift-exponent
    146 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
    147 LOCAL_MULTILIB := both
    148 include $(BUILD_HOST_SHARED_LIBRARY)
    149 
    150 include $(CLEAR_VARS)
    151 LOCAL_CLANG := true
    152 LOCAL_CPP_EXTENSION := .cc
    153 LOCAL_CPPFLAGS := $(vixl_cpp_flags_debug)
    154 LOCAL_CLANG_CFLAGS := -Wimplicit-fallthrough
    155 LOCAL_NATIVE_COVERAGE := $(VIXL_COVERAGE)
    156 LOCAL_C_INCLUDES := $(vixl_include_files)
    157 LOCAL_SRC_FILES :=  $(vixl_src_files)
    158 LOCAL_SHARED_LIBRARIES := liblog
    159 LOCAL_MODULE_TAGS := optional
    160 LOCAL_MODULE := libvixld
    161 LOCAL_SANITIZE_RECOVER := shift-exponent
    162 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
    163 LOCAL_MULTILIB := both
    164 include $(BUILD_HOST_SHARED_LIBRARY)
    165 
    166 # Static libraries for host
    167 include $(CLEAR_VARS)
    168 LOCAL_CLANG := true
    169 LOCAL_CPP_EXTENSION := .cc
    170 LOCAL_CPPFLAGS := $(vixl_cpp_flags_release)
    171 LOCAL_CLANG_CFLAGS := -Wimplicit-fallthrough
    172 LOCAL_NATIVE_COVERAGE := $(VIXL_COVERAGE)
    173 LOCAL_C_INCLUDES := $(vixl_include_files)
    174 LOCAL_SRC_FILES :=  $(vixl_src_files)
    175 LOCAL_STATIC_LIBRARIES := liblog
    176 LOCAL_MODULE_TAGS := optional
    177 LOCAL_MODULE := libvixl
    178 LOCAL_SANITIZE_RECOVER := shift-exponent
    179 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
    180 LOCAL_MULTILIB := both
    181 include $(BUILD_HOST_STATIC_LIBRARY)
    182 
    183 include $(CLEAR_VARS)
    184 LOCAL_CLANG := true
    185 LOCAL_CPP_EXTENSION := .cc
    186 LOCAL_CPPFLAGS := $(vixl_cpp_flags_debug)
    187 LOCAL_CLANG_CFLAGS := -Wimplicit-fallthrough
    188 LOCAL_NATIVE_COVERAGE := $(VIXL_COVERAGE)
    189 LOCAL_C_INCLUDES := $(vixl_include_files)
    190 LOCAL_SRC_FILES :=  $(vixl_src_files)
    191 LOCAL_STATIC_LIBRARIES := liblog
    192 LOCAL_MODULE_TAGS := optional
    193 LOCAL_MODULE := libvixld
    194 LOCAL_SANITIZE_RECOVER := shift-exponent
    195 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
    196 LOCAL_MULTILIB := both
    197 include $(BUILD_HOST_STATIC_LIBRARY)
    198 
    199 
    200 ######### VIXL HOST TESTS #########
    201 #
    202 # We only support 64bit host builds for now.
    203 # To run all the tests: vixl-test-runner --run_all
    204 #
    205 include $(CLEAR_VARS)
    206 LOCAL_CLANG := true
    207 LOCAL_CPP_EXTENSION := .cc
    208 LOCAL_CPPFLAGS := $(vixl_cpp_flags_debug)
    209 LOCAL_CLANG_CFLAGS := -Wimplicit-fallthrough
    210 LOCAL_NATIVE_COVERAGE := $(VIXL_COVERAGE)
    211 LOCAL_C_INCLUDES := $(vixl_include_files)
    212 LOCAL_SRC_FILES :=  $(vixl_test_files) $(vixl_src_files)
    213 LOCAL_MODULE_TAGS := optional
    214 LOCAL_MODULE_HOST_ARCH := x86_64
    215 LOCAL_FORCE_STATIC_EXECUTABLE := true
    216 LOCAL_MODULE := vixl-test-runner
    217 LOCAL_SANITIZE_RECOVER := shift-exponent
    218 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
    219 include $(BUILD_HOST_EXECUTABLE)
    220 
    221 .PHONY: run-vixl-tests
    222 run-vixl-tests: vixl-test-runner
    223 	$(vixl_root)/third_party/android/check_top_level_android_mk.sh
    224 	$(HOST_OUT)/bin/vixl-test-runner --run_all
    225 	$(HOST_OUT)/bin/vixl-test-runner --run_all --debugger
    226 	@echo vixl tests PASSED
    227