1 # Copyright (C) 2011 The Android Open Source Project 2 # 3 # Licensed under the Apache License, Version 2.0 (the "License"); 4 # you may not use this file except in compliance with the License. 5 # You may obtain a copy of the License at 6 # 7 # http://www.apache.org/licenses/LICENSE-2.0 8 # 9 # Unless required by applicable law or agreed to in writing, software 10 # distributed under the License is distributed on an "AS IS" BASIS, 11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 # See the License for the specific language governing permissions and 13 # limitations under the License. 14 15 LOCAL_PATH:= $(call my-dir) 16 17 generic_src_files := \ 18 backtrace.c \ 19 backtrace-helper.c \ 20 demangle.c \ 21 map_info.c \ 22 ptrace.c \ 23 symbol_table.c 24 25 arm_src_files := \ 26 arch-arm/backtrace-arm.c \ 27 arch-arm/ptrace-arm.c 28 29 x86_src_files := \ 30 arch-x86/backtrace-x86.c \ 31 arch-x86/ptrace-x86.c 32 33 include $(CLEAR_VARS) 34 35 LOCAL_SRC_FILES := $(generic_src_files) 36 37 ifeq ($(TARGET_ARCH),arm) 38 LOCAL_SRC_FILES += $(arm_src_files) 39 LOCAL_CFLAGS += -DCORKSCREW_HAVE_ARCH 40 endif 41 ifeq ($(TARGET_ARCH),x86) 42 LOCAL_SRC_FILES += $(x86_src_files) 43 LOCAL_CFLAGS += -DCORKSCREW_HAVE_ARCH 44 endif 45 ifeq ($(TARGET_ARCH),mips) 46 LOCAL_SRC_FILES += \ 47 arch-mips/backtrace-mips.c \ 48 arch-mips/ptrace-mips.c 49 LOCAL_CFLAGS += -DCORKSCREW_HAVE_ARCH 50 endif 51 52 LOCAL_SHARED_LIBRARIES += libdl libcutils liblog libgccdemangle 53 54 LOCAL_CFLAGS += -std=gnu99 -Werror 55 LOCAL_MODULE := libcorkscrew 56 LOCAL_MODULE_TAGS := optional 57 58 include $(BUILD_SHARED_LIBRARY) 59 60 # Build test. 61 include $(CLEAR_VARS) 62 LOCAL_SRC_FILES := test.cpp 63 LOCAL_CFLAGS += -Werror -fno-inline-small-functions 64 LOCAL_SHARED_LIBRARIES := libcorkscrew 65 LOCAL_MODULE := libcorkscrew_test 66 LOCAL_MODULE_TAGS := optional 67 include $(BUILD_EXECUTABLE) 68 69 70 # TODO: reenable darwin-x86 71 # ifeq ($(HOST_ARCH),x86) 72 ifeq ($(HOST_OS)-$(HOST_ARCH),linux-x86) 73 74 # Build libcorkscrew. 75 include $(CLEAR_VARS) 76 LOCAL_SRC_FILES += $(generic_src_files) $(x86_src_files) 77 LOCAL_CFLAGS += -DCORKSCREW_HAVE_ARCH 78 LOCAL_STATIC_LIBRARIES += libcutils liblog 79 LOCAL_LDLIBS += -ldl 80 ifeq ($(HOST_OS),linux) 81 LOCAL_SHARED_LIBRARIES += libgccdemangle # TODO: is this even needed on Linux? 82 LOCAL_LDLIBS += -lrt 83 endif 84 LOCAL_CFLAGS += -std=gnu99 -Werror 85 LOCAL_MODULE := libcorkscrew 86 LOCAL_MODULE_TAGS := optional 87 include $(BUILD_HOST_SHARED_LIBRARY) 88 89 # Build test. 90 include $(CLEAR_VARS) 91 LOCAL_SRC_FILES := test.cpp 92 LOCAL_CFLAGS += -Werror 93 LOCAL_SHARED_LIBRARIES := libcorkscrew 94 LOCAL_MODULE := libcorkscrew_test 95 LOCAL_MODULE_TAGS := optional 96 include $(BUILD_HOST_EXECUTABLE) 97 98 endif # HOST_ARCH == x86 99