# # Copyright (C) 2014 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # LOCAL_PATH:= $(call my-dir) libbacktrace_common_cflags := \ -Wall \ -Werror \ libbacktrace_common_conlyflags := \ -std=gnu99 \ libbacktrace_common_cppflags := \ -std=gnu++11 \ -I external/libunwind/include/tdep \ # The latest clang (r230699) does not allow SP/PC to be declared in inline asm lists. libbacktrace_common_clang_cflags += \ -Wno-inline-asm build_host := false ifeq ($(HOST_OS),linux) ifeq ($(HOST_ARCH),$(filter $(HOST_ARCH),x86 x86_64)) build_host := true endif endif LLVM_ROOT_PATH := external/llvm include $(LLVM_ROOT_PATH)/llvm.mk #------------------------------------------------------------------------- # The libbacktrace library. #------------------------------------------------------------------------- libbacktrace_src_files := \ Backtrace.cpp \ BacktraceCurrent.cpp \ BacktraceMap.cpp \ BacktracePtrace.cpp \ thread_utils.c \ ThreadEntry.cpp \ UnwindCurrent.cpp \ UnwindMap.cpp \ UnwindPtrace.cpp \ libbacktrace_shared_libraries := \ libbase \ liblog \ libunwind \ libbacktrace_static_libraries := \ libcutils module := libbacktrace module_tag := optional build_type := target build_target := SHARED_LIBRARY include $(LOCAL_PATH)/Android.build.mk build_type := host libbacktrace_multilib := both include $(LOCAL_PATH)/Android.build.mk libbacktrace_shared_libraries := libbacktrace_static_libraries := \ libbase \ liblog \ libunwind \ liblzma \ module := libbacktrace build_type := target build_target := STATIC_LIBRARY include $(LOCAL_PATH)/Android.build.mk build_type := host libbacktrace_multilib := both include $(LOCAL_PATH)/Android.build.mk #------------------------------------------------------------------------- # The libbacktrace_offline shared library. #------------------------------------------------------------------------- libbacktrace_offline_src_files := \ BacktraceOffline.cpp \ # Use shared llvm library on device to save space. libbacktrace_offline_shared_libraries := \ libbacktrace \ libbase \ liblog \ libunwind \ libutils \ libLLVM \ libbacktrace_offline_static_libraries := \ libziparchive \ libz \ module := libbacktrace_offline build_type := target build_target := SHARED_LIBRARY include $(LOCAL_PATH)/Android.build.mk libbacktrace_offline_shared_libraries := \ libbacktrace \ libbase \ liblog \ libunwind \ libziparchive-host \ # Use static llvm libraries on host to remove dependency on 32-bit llvm shared library # which is not included in the prebuilt. libbacktrace_offline_static_libraries := \ libLLVMObject \ libLLVMBitReader \ libLLVMMC \ libLLVMMCParser \ libLLVMCore \ libLLVMSupport \ module := libbacktrace_offline build_type := host libbacktrace_multilib := both include $(LOCAL_PATH)/Android.build.mk libbacktrace_offline_shared_libraries := libbacktrace_offline_static_libraries := \ libbacktrace \ libbase \ libcutils \ liblog \ libunwind \ liblzma \ libziparchive \ libz \ libLLVMObject \ libLLVMBitReader \ libLLVMMC \ libLLVMMCParser \ libLLVMCore \ libLLVMSupport \ module := libbacktrace_offline build_type := target build_target := STATIC_LIBRARY include $(LOCAL_PATH)/Android.build.mk #------------------------------------------------------------------------- # The libbacktrace_test library needed by backtrace_test. #------------------------------------------------------------------------- libbacktrace_test_cflags := \ -O0 \ libbacktrace_test_src_files := \ backtrace_testlib.c \ libbacktrace_test_strip_module := false module := libbacktrace_test module_tag := debug build_type := target build_target := SHARED_LIBRARY libbacktrace_test_multilib := both include $(LOCAL_PATH)/Android.build.mk build_type := host include $(LOCAL_PATH)/Android.build.mk #------------------------------------------------------------------------- # The backtrace_test executable. #------------------------------------------------------------------------- backtrace_test_cflags := \ -fno-builtin \ -O0 \ -g \ backtrace_test_cflags_target := \ -DENABLE_PSS_TESTS \ backtrace_test_src_files := \ backtrace_offline_test.cpp \ backtrace_test.cpp \ GetPss.cpp \ thread_utils.c \ backtrace_test_ldlibs_host := \ -lpthread \ -lrt \ backtrace_test_shared_libraries := \ libbacktrace_test \ libbacktrace \ libbacktrace_offline \ libbase \ libcutils \ libunwind \ backtrace_test_shared_libraries_target += \ libdl \ backtrace_test_ldlibs_host += \ -ldl \ backtrace_test_strip_module := false module := backtrace_test module_tag := debug build_type := target build_target := NATIVE_TEST backtrace_test_multilib := both include $(LOCAL_PATH)/Android.build.mk build_type := host include $(LOCAL_PATH)/Android.build.mk #---------------------------------------------------------------------------- # Special truncated libbacktrace library for mac. #---------------------------------------------------------------------------- ifeq ($(HOST_OS),darwin) include $(CLEAR_VARS) LOCAL_MODULE := libbacktrace LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := \ BacktraceMap.cpp \ LOCAL_MULTILIB := both include $(BUILD_HOST_SHARED_LIBRARY) endif # HOST_OS-darwin