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 15LOCAL_PATH:= $(call my-dir) 16 17generic_src_files := \ 18 backtrace.c \ 19 backtrace-helper.c \ 20 demangle.c \ 21 map_info.c \ 22 ptrace.c \ 23 symbol_table.c 24 25arm_src_files := \ 26 arch-arm/backtrace-arm.c \ 27 arch-arm/ptrace-arm.c 28 29x86_src_files := \ 30 arch-x86/backtrace-x86.c \ 31 arch-x86/ptrace-x86.c 32 33include $(CLEAR_VARS) 34 35LOCAL_SRC_FILES := $(generic_src_files) 36 37ifeq ($(TARGET_ARCH),arm) 38LOCAL_SRC_FILES += $(arm_src_files) 39LOCAL_CFLAGS += -DCORKSCREW_HAVE_ARCH 40endif 41ifeq ($(TARGET_ARCH),x86) 42LOCAL_SRC_FILES += $(x86_src_files) 43LOCAL_CFLAGS += -DCORKSCREW_HAVE_ARCH 44endif 45ifeq ($(TARGET_ARCH),mips) 46LOCAL_SRC_FILES += \ 47 arch-mips/backtrace-mips.c \ 48 arch-mips/ptrace-mips.c 49LOCAL_CFLAGS += -DCORKSCREW_HAVE_ARCH 50endif 51 52LOCAL_SHARED_LIBRARIES += libdl libcutils liblog libgccdemangle 53 54LOCAL_CFLAGS += -std=gnu99 -Werror 55LOCAL_MODULE := libcorkscrew 56LOCAL_MODULE_TAGS := optional 57 58include $(BUILD_SHARED_LIBRARY) 59 60# Build test. 61include $(CLEAR_VARS) 62LOCAL_SRC_FILES := test.cpp 63LOCAL_CFLAGS += -Werror -fno-inline-small-functions 64LOCAL_SHARED_LIBRARIES := libcorkscrew 65LOCAL_MODULE := libcorkscrew_test 66LOCAL_MODULE_TAGS := optional 67include $(BUILD_EXECUTABLE) 68 69 70# TODO: reenable darwin-x86 71# ifeq ($(HOST_ARCH),x86) 72ifeq ($(HOST_OS)-$(HOST_ARCH),linux-x86) 73 74# Build libcorkscrew. 75include $(CLEAR_VARS) 76LOCAL_SRC_FILES += $(generic_src_files) $(x86_src_files) 77LOCAL_CFLAGS += -DCORKSCREW_HAVE_ARCH 78LOCAL_STATIC_LIBRARIES += libcutils liblog 79LOCAL_LDLIBS += -ldl 80ifeq ($(HOST_OS),linux) 81 LOCAL_SHARED_LIBRARIES += libgccdemangle # TODO: is this even needed on Linux? 82 LOCAL_LDLIBS += -lrt 83endif 84LOCAL_CFLAGS += -std=gnu99 -Werror 85LOCAL_MODULE := libcorkscrew 86LOCAL_MODULE_TAGS := optional 87include $(BUILD_HOST_SHARED_LIBRARY) 88 89# Build test. 90include $(CLEAR_VARS) 91LOCAL_SRC_FILES := test.cpp 92LOCAL_CFLAGS += -Werror 93LOCAL_SHARED_LIBRARIES := libcorkscrew 94LOCAL_MODULE := libcorkscrew_test 95LOCAL_MODULE_TAGS := optional 96include $(BUILD_HOST_EXECUTABLE) 97 98endif # HOST_ARCH == x86 99