1# 2# Copyright (C) 2014 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 17LOCAL_PATH:= $(call my-dir) 18 19common_cflags := \ 20 -Wall \ 21 -Werror \ 22 23common_conlyflags := \ 24 -std=gnu99 \ 25 26common_cppflags := \ 27 -std=gnu++11 \ 28 29build_host := false 30ifeq ($(HOST_OS),linux) 31ifeq ($(HOST_ARCH),$(filter $(HOST_ARCH),x86 x86_64)) 32build_host := true 33endif 34endif 35 36#------------------------------------------------------------------------- 37# The libbacktrace library. 38#------------------------------------------------------------------------- 39libbacktrace_src_files := \ 40 BacktraceImpl.cpp \ 41 BacktraceMap.cpp \ 42 BacktraceThread.cpp \ 43 thread_utils.c \ 44 45libbacktrace_shared_libraries_target := \ 46 libcutils \ 47 libgccdemangle \ 48 49libbacktrace_src_files += \ 50 UnwindCurrent.cpp \ 51 UnwindMap.cpp \ 52 UnwindPtrace.cpp \ 53 54libbacktrace_c_includes := \ 55 external/libunwind/include \ 56 57libbacktrace_shared_libraries := \ 58 libunwind \ 59 libunwind-ptrace \ 60 61libbacktrace_shared_libraries_host := \ 62 liblog \ 63 64libbacktrace_static_libraries_host := \ 65 libcutils \ 66 67libbacktrace_ldlibs_host := \ 68 -lpthread \ 69 -lrt \ 70 71module := libbacktrace 72module_tag := optional 73build_type := target 74build_target := SHARED_LIBRARY 75include $(LOCAL_PATH)/Android.build.mk 76build_type := host 77include $(LOCAL_PATH)/Android.build.mk 78 79# Don't build for unbundled branches 80ifeq (,$(TARGET_BUILD_APPS)) 81#------------------------------------------------------------------------- 82# The libbacktrace library (libc++) 83#------------------------------------------------------------------------- 84libbacktrace_libc++_src_files := \ 85 BacktraceImpl.cpp \ 86 BacktraceMap.cpp \ 87 BacktraceThread.cpp \ 88 thread_utils.c \ 89 90libbacktrace_libc++_shared_libraries_target := \ 91 libcutils \ 92 libgccdemangle \ 93 94libbacktrace_libc++_src_files += \ 95 UnwindCurrent.cpp \ 96 UnwindMap.cpp \ 97 UnwindPtrace.cpp \ 98 99libbacktrace_libc++_c_includes := \ 100 external/libunwind/include \ 101 102libbacktrace_libc++_shared_libraries := \ 103 libunwind \ 104 libunwind-ptrace \ 105 106libbacktrace_libc++_shared_libraries_host := \ 107 liblog \ 108 109libbacktrace_libc++_static_libraries_host := \ 110 libcutils \ 111 112libbacktrace_libc++_ldlibs_host := \ 113 -lpthread \ 114 -lrt \ 115 116libbacktrace_libc++_libc++ := true 117 118module := libbacktrace_libc++ 119module_tag := optional 120build_type := target 121build_target := SHARED_LIBRARY 122include $(LOCAL_PATH)/Android.build.mk 123build_type := host 124libbacktrace_libc++_multilib := both 125include $(LOCAL_PATH)/Android.build.mk 126libbacktrace_libc++_multilib := 127endif 128 129#------------------------------------------------------------------------- 130# The libbacktrace_test library needed by backtrace_test. 131#------------------------------------------------------------------------- 132libbacktrace_test_cflags := \ 133 -O0 \ 134 135libbacktrace_test_src_files := \ 136 backtrace_testlib.c \ 137 138module := libbacktrace_test 139module_tag := debug 140build_type := target 141build_target := SHARED_LIBRARY 142include $(LOCAL_PATH)/Android.build.mk 143build_type := host 144include $(LOCAL_PATH)/Android.build.mk 145 146#------------------------------------------------------------------------- 147# The backtrace_test executable. 148#------------------------------------------------------------------------- 149backtrace_test_cflags := \ 150 -fno-builtin \ 151 -O0 \ 152 -g \ 153 154backtrace_test_cflags_target := \ 155 -DENABLE_PSS_TESTS \ 156 157backtrace_test_src_files := \ 158 backtrace_test.cpp \ 159 GetPss.cpp \ 160 thread_utils.c \ 161 162backtrace_test_ldlibs_host := \ 163 -lpthread \ 164 -lrt \ 165 166backtrace_test_shared_libraries := \ 167 libbacktrace_test \ 168 libbacktrace \ 169 170backtrace_test_shared_libraries_target := \ 171 libcutils \ 172 173backtrace_test_static_libraries_host := \ 174 libcutils \ 175 176module := backtrace_test 177module_tag := debug 178build_type := target 179build_target := NATIVE_TEST 180include $(LOCAL_PATH)/Android.build.mk 181build_type := host 182include $(LOCAL_PATH)/Android.build.mk 183 184#---------------------------------------------------------------------------- 185# Special truncated libbacktrace library for mac. 186#---------------------------------------------------------------------------- 187ifeq ($(HOST_OS),darwin) 188 189include $(CLEAR_VARS) 190 191LOCAL_MODULE := libbacktrace 192LOCAL_MODULE_TAGS := optional 193 194LOCAL_SRC_FILES := \ 195 BacktraceMap.cpp \ 196 197include $(BUILD_HOST_SHARED_LIBRARY) 198 199# Don't build for unbundled branches 200ifeq (,$(TARGET_BUILD_APPS)) 201#------------------------------------------------------------------------- 202# The libbacktrace library (libc++) 203#------------------------------------------------------------------------- 204include $(CLEAR_VARS) 205 206LOCAL_MODULE := libbacktrace_libc++ 207LOCAL_MODULE_TAGS := optional 208 209LOCAL_SRC_FILES := \ 210 BacktraceMap.cpp \ 211 212LOCAL_MULTILIB := both 213 214include $(BUILD_HOST_SHARED_LIBRARY) 215 216endif # TARGET_BUILD_APPS 217 218endif # HOST_OS-darwin 219