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