| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 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 | # | 
| Christopher Ferris | 7fb2287 | 2013-09-27 12:43:15 -0700 | [diff] [blame] | 16 |  | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 17 | LOCAL_PATH:= $(call my-dir) | 
| Christopher Ferris | 17e91d4 | 2013-10-21 13:30:52 -0700 | [diff] [blame] | 18 |  | 
| Christopher Ferris | 2c43cff | 2015-03-26 19:18:36 -0700 | [diff] [blame] | 19 | libbacktrace_common_cflags := \ | 
| Christopher Ferris | 17e91d4 | 2013-10-21 13:30:52 -0700 | [diff] [blame] | 20 | -Wall \ | 
| Christopher Ferris | 17e91d4 | 2013-10-21 13:30:52 -0700 | [diff] [blame] | 21 | -Werror \ | 
|  | 22 |  | 
| Christopher Ferris | 2c43cff | 2015-03-26 19:18:36 -0700 | [diff] [blame] | 23 | libbacktrace_common_conlyflags := \ | 
| Christopher Ferris | 17e91d4 | 2013-10-21 13:30:52 -0700 | [diff] [blame] | 24 | -std=gnu99 \ | 
|  | 25 |  | 
| Christopher Ferris | 2c43cff | 2015-03-26 19:18:36 -0700 | [diff] [blame] | 26 | libbacktrace_common_cppflags := \ | 
| Christopher Ferris | 17e91d4 | 2013-10-21 13:30:52 -0700 | [diff] [blame] | 27 | -std=gnu++11 \ | 
| Yabin Cui | 9e402bb | 2015-09-22 04:46:57 +0000 | [diff] [blame] | 28 | -I external/libunwind/include/tdep \ | 
| Christopher Ferris | 17e91d4 | 2013-10-21 13:30:52 -0700 | [diff] [blame] | 29 |  | 
| Stephen Hines | 035e9ba | 2015-03-31 09:39:20 -0700 | [diff] [blame] | 30 | # The latest clang (r230699) does not allow SP/PC to be declared in inline asm lists. | 
|  | 31 | libbacktrace_common_clang_cflags += \ | 
|  | 32 | -Wno-inline-asm | 
|  | 33 |  | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 34 | build_host := false | 
|  | 35 | ifeq ($(HOST_OS),linux) | 
|  | 36 | ifeq ($(HOST_ARCH),$(filter $(HOST_ARCH),x86 x86_64)) | 
|  | 37 | build_host := true | 
|  | 38 | endif | 
|  | 39 | endif | 
|  | 40 |  | 
| Yabin Cui | 9e402bb | 2015-09-22 04:46:57 +0000 | [diff] [blame] | 41 | LLVM_ROOT_PATH := external/llvm | 
|  | 42 | include $(LLVM_ROOT_PATH)/llvm.mk | 
|  | 43 |  | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 44 | #------------------------------------------------------------------------- | 
|  | 45 | # The libbacktrace library. | 
|  | 46 | #------------------------------------------------------------------------- | 
|  | 47 | libbacktrace_src_files := \ | 
| Christopher Ferris | 2c43cff | 2015-03-26 19:18:36 -0700 | [diff] [blame] | 48 | Backtrace.cpp \ | 
|  | 49 | BacktraceCurrent.cpp \ | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 50 | BacktraceMap.cpp \ | 
| Christopher Ferris | 2c43cff | 2015-03-26 19:18:36 -0700 | [diff] [blame] | 51 | BacktracePtrace.cpp \ | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 52 | thread_utils.c \ | 
| Christopher Ferris | 2c43cff | 2015-03-26 19:18:36 -0700 | [diff] [blame] | 53 | ThreadEntry.cpp \ | 
| Christopher Ferris | 17e91d4 | 2013-10-21 13:30:52 -0700 | [diff] [blame] | 54 | UnwindCurrent.cpp \ | 
| Christopher Ferris | df29061 | 2014-01-22 19:21:07 -0800 | [diff] [blame] | 55 | UnwindMap.cpp \ | 
| Christopher Ferris | 17e91d4 | 2013-10-21 13:30:52 -0700 | [diff] [blame] | 56 | UnwindPtrace.cpp \ | 
| Christopher Ferris | 7fb2287 | 2013-09-27 12:43:15 -0700 | [diff] [blame] | 57 |  | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 58 | libbacktrace_shared_libraries := \ | 
| Christopher Ferris | 2c43cff | 2015-03-26 19:18:36 -0700 | [diff] [blame] | 59 | libbase \ | 
| Christopher Ferris | 9e1ee2b | 2013-10-02 14:19:19 -0700 | [diff] [blame] | 60 | liblog \ | 
| Colin Cross | db134ca | 2015-04-28 17:49:42 -0700 | [diff] [blame] | 61 | libunwind \ | 
| Christopher Ferris | f67c641 | 2014-01-10 00:43:54 -0800 | [diff] [blame] | 62 |  | 
| Than McIntosh | 1e0fea2 | 2016-02-01 10:17:45 -0500 | [diff] [blame] | 63 | libbacktrace_static_libraries := \ | 
|  | 64 | libcutils | 
|  | 65 |  | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 66 | module := libbacktrace | 
|  | 67 | module_tag := optional | 
|  | 68 | build_type := target | 
|  | 69 | build_target := SHARED_LIBRARY | 
|  | 70 | include $(LOCAL_PATH)/Android.build.mk | 
|  | 71 | build_type := host | 
| Dan Albert | 0d7164d | 2014-11-11 15:15:21 -0800 | [diff] [blame] | 72 | libbacktrace_multilib := both | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 73 | include $(LOCAL_PATH)/Android.build.mk | 
| Calin Juravle | 28042b5 | 2015-06-08 14:30:52 +0100 | [diff] [blame] | 74 | libbacktrace_static_libraries := \ | 
|  | 75 | libbase \ | 
|  | 76 | liblog \ | 
|  | 77 | libunwind \ | 
|  | 78 |  | 
|  | 79 | build_target := STATIC_LIBRARY | 
|  | 80 | include $(LOCAL_PATH)/Android.build.mk | 
|  | 81 | libbacktrace_static_libraries := | 
| Christopher Ferris | 9e1ee2b | 2013-10-02 14:19:19 -0700 | [diff] [blame] | 82 |  | 
| Dan Albert | 40a46dd | 2014-05-19 10:10:37 -0700 | [diff] [blame] | 83 | #------------------------------------------------------------------------- | 
| Christopher Ferris | 8540216 | 2016-01-25 16:17:48 -0800 | [diff] [blame] | 84 | # The libbacktrace_offline shared library. | 
|  | 85 | #------------------------------------------------------------------------- | 
|  | 86 | libbacktrace_offline_src_files := \ | 
|  | 87 | BacktraceOffline.cpp \ | 
|  | 88 |  | 
| Yabin Cui | 02092b3 | 2016-03-18 18:46:08 -0700 | [diff] [blame] | 89 | # Use shared llvm library on device to save space. | 
| Yabin Cui | 578bc03 | 2016-04-13 21:21:47 -0700 | [diff] [blame] | 90 | libbacktrace_offline_shared_libraries_target := \ | 
| Christopher Ferris | 8540216 | 2016-01-25 16:17:48 -0800 | [diff] [blame] | 91 | libbacktrace \ | 
| Yabin Cui | 02092b3 | 2016-03-18 18:46:08 -0700 | [diff] [blame] | 92 | libbase \ | 
| Christopher Ferris | 8540216 | 2016-01-25 16:17:48 -0800 | [diff] [blame] | 93 | liblog \ | 
|  | 94 | libunwind \ | 
| Yabin Cui | 02092b3 | 2016-03-18 18:46:08 -0700 | [diff] [blame] | 95 | libutils \ | 
| Christopher Ferris | 8540216 | 2016-01-25 16:17:48 -0800 | [diff] [blame] | 96 | libLLVM \ | 
|  | 97 |  | 
| Yabin Cui | 578bc03 | 2016-04-13 21:21:47 -0700 | [diff] [blame] | 98 | libbacktrace_offline_static_libraries_target := \ | 
| Yabin Cui | 02092b3 | 2016-03-18 18:46:08 -0700 | [diff] [blame] | 99 | libziparchive \ | 
|  | 100 | libz \ | 
|  | 101 |  | 
| Christopher Ferris | 8540216 | 2016-01-25 16:17:48 -0800 | [diff] [blame] | 102 | # Use static llvm libraries on host to remove dependency on 32-bit llvm shared library | 
|  | 103 | # which is not included in the prebuilt. | 
| Yabin Cui | 578bc03 | 2016-04-13 21:21:47 -0700 | [diff] [blame] | 104 | libbacktrace_offline_static_libraries_host := \ | 
|  | 105 | libbacktrace \ | 
|  | 106 | libunwind \ | 
|  | 107 | libziparchive-host \ | 
|  | 108 | libz \ | 
|  | 109 | libbase \ | 
|  | 110 | liblog \ | 
|  | 111 | libutils \ | 
| Christopher Ferris | 8540216 | 2016-01-25 16:17:48 -0800 | [diff] [blame] | 112 | libLLVMObject \ | 
|  | 113 | libLLVMBitReader \ | 
|  | 114 | libLLVMMC \ | 
|  | 115 | libLLVMMCParser \ | 
|  | 116 | libLLVMCore \ | 
|  | 117 | libLLVMSupport \ | 
|  | 118 |  | 
|  | 119 | module := libbacktrace_offline | 
| Yabin Cui | 578bc03 | 2016-04-13 21:21:47 -0700 | [diff] [blame] | 120 | build_type := target | 
|  | 121 | build_target := STATIC_LIBRARY | 
|  | 122 | libbacktrace_offline_multilib := both | 
|  | 123 | include $(LOCAL_PATH)/Android.build.mk | 
| Christopher Ferris | 8540216 | 2016-01-25 16:17:48 -0800 | [diff] [blame] | 124 | build_type := host | 
| Christopher Ferris | 8540216 | 2016-01-25 16:17:48 -0800 | [diff] [blame] | 125 | include $(LOCAL_PATH)/Android.build.mk | 
|  | 126 |  | 
|  | 127 | #------------------------------------------------------------------------- | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 128 | # The libbacktrace_test library needed by backtrace_test. | 
|  | 129 | #------------------------------------------------------------------------- | 
|  | 130 | libbacktrace_test_cflags := \ | 
| Christopher Ferris | 7fb2287 | 2013-09-27 12:43:15 -0700 | [diff] [blame] | 131 | -O0 \ | 
|  | 132 |  | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 133 | libbacktrace_test_src_files := \ | 
|  | 134 | backtrace_testlib.c \ | 
| Christopher Ferris | 17e91d4 | 2013-10-21 13:30:52 -0700 | [diff] [blame] | 135 |  | 
| Yabin Cui | 9e402bb | 2015-09-22 04:46:57 +0000 | [diff] [blame] | 136 | libbacktrace_test_strip_module := false | 
|  | 137 |  | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 138 | module := libbacktrace_test | 
|  | 139 | module_tag := debug | 
|  | 140 | build_type := target | 
|  | 141 | build_target := SHARED_LIBRARY | 
| Christopher Ferris | 2c43cff | 2015-03-26 19:18:36 -0700 | [diff] [blame] | 142 | libbacktrace_test_multilib := both | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 143 | include $(LOCAL_PATH)/Android.build.mk | 
|  | 144 | build_type := host | 
|  | 145 | include $(LOCAL_PATH)/Android.build.mk | 
| Christopher Ferris | 7fb2287 | 2013-09-27 12:43:15 -0700 | [diff] [blame] | 146 |  | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 147 | #------------------------------------------------------------------------- | 
|  | 148 | # The backtrace_test executable. | 
|  | 149 | #------------------------------------------------------------------------- | 
|  | 150 | backtrace_test_cflags := \ | 
| Christopher Ferris | 17e91d4 | 2013-10-21 13:30:52 -0700 | [diff] [blame] | 151 | -fno-builtin \ | 
| Christopher Ferris | 17e91d4 | 2013-10-21 13:30:52 -0700 | [diff] [blame] | 152 | -O0 \ | 
|  | 153 | -g \ | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 154 |  | 
|  | 155 | backtrace_test_cflags_target := \ | 
| Christopher Ferris | e296091 | 2014-03-07 19:42:19 -0800 | [diff] [blame] | 156 | -DENABLE_PSS_TESTS \ | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 157 |  | 
|  | 158 | backtrace_test_src_files := \ | 
| Yabin Cui | 9e402bb | 2015-09-22 04:46:57 +0000 | [diff] [blame] | 159 | backtrace_offline_test.cpp \ | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 160 | backtrace_test.cpp \ | 
| Christopher Ferris | e296091 | 2014-03-07 19:42:19 -0800 | [diff] [blame] | 161 | GetPss.cpp \ | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 162 | thread_utils.c \ | 
|  | 163 |  | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 164 | backtrace_test_ldlibs_host := \ | 
| Ying Wang | 9f437d7 | 2014-05-07 15:36:05 -0700 | [diff] [blame] | 165 | -lpthread \ | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 166 | -lrt \ | 
|  | 167 |  | 
|  | 168 | backtrace_test_shared_libraries := \ | 
| Christopher Ferris | 7fb2287 | 2013-09-27 12:43:15 -0700 | [diff] [blame] | 169 | libbacktrace_test \ | 
|  | 170 | libbacktrace \ | 
| Christopher Ferris | 67aba68 | 2015-05-08 15:44:46 -0700 | [diff] [blame] | 171 | libbase \ | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 172 | libcutils \ | 
| Yabin Cui | 578bc03 | 2016-04-13 21:21:47 -0700 | [diff] [blame] | 173 | liblog \ | 
| Yabin Cui | 9e402bb | 2015-09-22 04:46:57 +0000 | [diff] [blame] | 174 | libunwind \ | 
| Christopher Ferris | 17e91d4 | 2013-10-21 13:30:52 -0700 | [diff] [blame] | 175 |  | 
| Christopher Ferris | 67aba68 | 2015-05-08 15:44:46 -0700 | [diff] [blame] | 176 | backtrace_test_shared_libraries_target += \ | 
|  | 177 | libdl \ | 
| Yabin Cui | 578bc03 | 2016-04-13 21:21:47 -0700 | [diff] [blame] | 178 | libutils \ | 
|  | 179 | libLLVM \ | 
|  | 180 |  | 
|  | 181 | backtrace_test_static_libraries := \ | 
|  | 182 | libbacktrace_offline \ | 
|  | 183 |  | 
|  | 184 | backtrace_test_static_libraries_target := \ | 
|  | 185 | libziparchive \ | 
|  | 186 | libz \ | 
|  | 187 |  | 
|  | 188 | backtrace_test_static_libraries_host := \ | 
|  | 189 | libziparchive-host \ | 
|  | 190 | libz \ | 
|  | 191 | libutils \ | 
|  | 192 | libLLVMObject \ | 
|  | 193 | libLLVMBitReader \ | 
|  | 194 | libLLVMMC \ | 
|  | 195 | libLLVMMCParser \ | 
|  | 196 | libLLVMCore \ | 
|  | 197 | libLLVMSupport \ | 
| Christopher Ferris | 67aba68 | 2015-05-08 15:44:46 -0700 | [diff] [blame] | 198 |  | 
|  | 199 | backtrace_test_ldlibs_host += \ | 
|  | 200 | -ldl \ | 
| Christopher Ferris | a2efd3a | 2014-05-06 15:23:59 -0700 | [diff] [blame] | 201 |  | 
| Yabin Cui | 9e402bb | 2015-09-22 04:46:57 +0000 | [diff] [blame] | 202 | backtrace_test_strip_module := false | 
|  | 203 |  | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 204 | module := backtrace_test | 
|  | 205 | module_tag := debug | 
|  | 206 | build_type := target | 
|  | 207 | build_target := NATIVE_TEST | 
| Christopher Ferris | 2c43cff | 2015-03-26 19:18:36 -0700 | [diff] [blame] | 208 | backtrace_test_multilib := both | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 209 | include $(LOCAL_PATH)/Android.build.mk | 
|  | 210 | build_type := host | 
|  | 211 | include $(LOCAL_PATH)/Android.build.mk | 
| Christopher Ferris | 17e91d4 | 2013-10-21 13:30:52 -0700 | [diff] [blame] | 212 |  | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 213 | #---------------------------------------------------------------------------- | 
|  | 214 | # Special truncated libbacktrace library for mac. | 
|  | 215 | #---------------------------------------------------------------------------- | 
|  | 216 | ifeq ($(HOST_OS),darwin) | 
| Christopher Ferris | 7fb2287 | 2013-09-27 12:43:15 -0700 | [diff] [blame] | 217 |  | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 218 | include $(CLEAR_VARS) | 
| Christopher Ferris | f67c641 | 2014-01-10 00:43:54 -0800 | [diff] [blame] | 219 |  | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 220 | LOCAL_MODULE := libbacktrace | 
|  | 221 | LOCAL_MODULE_TAGS := optional | 
|  | 222 |  | 
|  | 223 | LOCAL_SRC_FILES := \ | 
|  | 224 | BacktraceMap.cpp \ | 
|  | 225 |  | 
| Dan Albert | 5570c9b | 2014-11-13 14:54:10 -0800 | [diff] [blame] | 226 | LOCAL_MULTILIB := both | 
|  | 227 |  | 
| Christopher Ferris | 04b1e8c | 2014-01-30 01:13:33 -0800 | [diff] [blame] | 228 | include $(BUILD_HOST_SHARED_LIBRARY) | 
|  | 229 |  | 
|  | 230 | endif # HOST_OS-darwin |