# # 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) common_cflags := \ -Wall \ -Werror \ common_conlyflags := \ -std=gnu99 \ common_cppflags := \ -std=gnu++11 \ build_host := false ifeq ($(HOST_OS),linux) ifeq ($(HOST_ARCH),$(filter $(HOST_ARCH),x86 x86_64)) build_host := true endif endif #------------------------------------------------------------------------- # The libbacktrace library. #------------------------------------------------------------------------- libbacktrace_src_files := \ BacktraceImpl.cpp \ BacktraceMap.cpp \ BacktraceThread.cpp \ thread_utils.c \ libbacktrace_shared_libraries_target := \ libcutils \ libgccdemangle \ # To enable using libunwind on each arch, add it to this list. libunwind_architectures := arm arm64 x86 x86_64 ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),$(libunwind_architectures))) libbacktrace_src_files += \ UnwindCurrent.cpp \ UnwindMap.cpp \ UnwindPtrace.cpp \ libbacktrace_c_includes := \ external/libunwind/include \ libbacktrace_shared_libraries := \ libunwind \ libunwind-ptrace \ libbacktrace_shared_libraries_host := \ liblog \ libbacktrace_static_libraries_host := \ libcutils \ else libbacktrace_src_files += \ Corkscrew.cpp \ libbacktrace_c_includes := \ system/core/libcorkscrew \ libbacktrace_shared_libraries := \ libcorkscrew \ libbacktrace_shared_libraries_target += \ libdl \ libbacktrace_ldlibs_host := \ -ldl \ endif module := libbacktrace module_tag := optional build_type := target build_target := SHARED_LIBRARY include $(LOCAL_PATH)/Android.build.mk build_type := host 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 \ module := libbacktrace_test module_tag := debug build_type := target build_target := SHARED_LIBRARY 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 \ -DGTEST_HAS_STD_STRING \ ifneq ($(TARGET_ARCH),arm64) backtrace_test_cflags += -fstack-protector-all else $(info TODO: $(LOCAL_PATH)/Android.mk -fstack-protector not yet available for the AArch64 toolchain) common_cflags += -fno-stack-protector endif # arm64 backtrace_test_cflags_target := \ -DGTEST_OS_LINUX_ANDROID \ backtrace_test_src_files := \ backtrace_test.cpp \ thread_utils.c \ backtrace_test_ldlibs := \ -lpthread \ backtrace_test_ldlibs_host := \ -lrt \ backtrace_test_shared_libraries := \ libbacktrace_test \ libbacktrace \ backtrace_test_shared_libraries_target := \ libcutils \ module := backtrace_test module_tag := debug build_type := target build_target := NATIVE_TEST 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 \ include $(BUILD_HOST_SHARED_LIBRARY) endif # HOST_OS-darwin