1501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown# Copyright (C) 2011 The Android Open Source Project
2501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown#
3501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown# Licensed under the Apache License, Version 2.0 (the "License");
4501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown# you may not use this file except in compliance with the License.
5501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown# You may obtain a copy of the License at
6501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown#
7501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown#      http://www.apache.org/licenses/LICENSE-2.0
8501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown#
9501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown# Unless required by applicable law or agreed to in writing, software
10501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown# distributed under the License is distributed on an "AS IS" BASIS,
11501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown# See the License for the specific language governing permissions and
13501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown# limitations under the License.
14501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown
15501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff BrownLOCAL_PATH:= $(call my-dir)
16501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown
1771363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughesgeneric_src_files := \
18501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown	backtrace.c \
19501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown	backtrace-helper.c \
20501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown	demangle.c \
21501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown	map_info.c \
22501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown	ptrace.c \
23501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown	symbol_table.c
24501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown
2571363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughesarm_src_files := \
26501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown	arch-arm/backtrace-arm.c \
27501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown	arch-arm/ptrace-arm.c
2871363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughes
2971363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughesx86_src_files := \
3071363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughes	arch-x86/backtrace-x86.c \
3171363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughes	arch-x86/ptrace-x86.c
3271363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughes
3371363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughesinclude $(CLEAR_VARS)
3471363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughes
3571363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott HughesLOCAL_SRC_FILES := $(generic_src_files)
3671363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughes
3771363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughesifeq ($(TARGET_ARCH),arm)
3871363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott HughesLOCAL_SRC_FILES += $(arm_src_files)
391a5a497795d3d9a3d9278ca9c23668ab9dc11587Jing YuLOCAL_CFLAGS += -DCORKSCREW_HAVE_ARCH
40501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brownendif
4110484a068412613aaf3924f63a0b2f61400c7d1eJeff Brownifeq ($(TARGET_ARCH),x86)
4271363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott HughesLOCAL_SRC_FILES += $(x86_src_files)
4310484a068412613aaf3924f63a0b2f61400c7d1eJeff BrownLOCAL_CFLAGS += -DCORKSCREW_HAVE_ARCH
4410484a068412613aaf3924f63a0b2f61400c7d1eJeff Brownendif
45231e3c83a3a70b11160fb0da108ebf2e0e7470e2Chris Dearmanifeq ($(TARGET_ARCH),mips)
46231e3c83a3a70b11160fb0da108ebf2e0e7470e2Chris DearmanLOCAL_SRC_FILES += \
47231e3c83a3a70b11160fb0da108ebf2e0e7470e2Chris Dearman	arch-mips/backtrace-mips.c \
48231e3c83a3a70b11160fb0da108ebf2e0e7470e2Chris Dearman	arch-mips/ptrace-mips.c
49231e3c83a3a70b11160fb0da108ebf2e0e7470e2Chris DearmanLOCAL_CFLAGS += -DCORKSCREW_HAVE_ARCH
50231e3c83a3a70b11160fb0da108ebf2e0e7470e2Chris Dearmanendif
51501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown
521a5a497795d3d9a3d9278ca9c23668ab9dc11587Jing YuLOCAL_SHARED_LIBRARIES += libdl libcutils libgccdemangle
53501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown
54501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff BrownLOCAL_CFLAGS += -std=gnu99 -Werror
55501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff BrownLOCAL_MODULE := libcorkscrew
56501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff BrownLOCAL_MODULE_TAGS := optional
57501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Brown
58501edd29b823ce1301d2effdd3a9e4b6e2b20b76Jeff Browninclude $(BUILD_SHARED_LIBRARY)
5971363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughes
6071363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughes# Build test.
6171363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughesinclude $(CLEAR_VARS)
6271363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott HughesLOCAL_SRC_FILES := test.c
6371363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott HughesLOCAL_CFLAGS += -std=gnu99 -Werror -fno-inline-small-functions
6471363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott HughesLOCAL_SHARED_LIBRARIES := libcorkscrew
6571363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott HughesLOCAL_MODULE := libcorkscrew_test
6671363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott HughesLOCAL_MODULE_TAGS := optional
6771363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughesinclude $(BUILD_EXECUTABLE)
6871363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughes
6971363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughes
7071363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughesifeq ($(HOST_OS)-$(HOST_ARCH),linux-x86)
7171363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughes
7271363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughes# Build libcorkscrew.
7371363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughesinclude $(CLEAR_VARS)
7471363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott HughesLOCAL_SRC_FILES += $(generic_src_files) $(x86_src_files)
7571363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott HughesLOCAL_CFLAGS += -DCORKSCREW_HAVE_ARCH
7671363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott HughesLOCAL_SHARED_LIBRARIES += libgccdemangle
7771363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott HughesLOCAL_STATIC_LIBRARIES += libcutils
7871363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott HughesLOCAL_LDLIBS += -ldl -lrt
7971363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott HughesLOCAL_CFLAGS += -std=gnu99 -Werror
8071363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott HughesLOCAL_MODULE := libcorkscrew
8171363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott HughesLOCAL_MODULE_TAGS := optional
8271363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughesinclude $(BUILD_HOST_SHARED_LIBRARY)
8371363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughes
8471363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughes# Build test.
8571363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughesinclude $(CLEAR_VARS)
8671363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott HughesLOCAL_SRC_FILES := test.c
8771363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott HughesLOCAL_CFLAGS += -std=gnu99 -Werror -fno-inline-small-functions
8871363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott HughesLOCAL_SHARED_LIBRARIES := libcorkscrew
8971363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott HughesLOCAL_MODULE := libcorkscrew_test
9071363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott HughesLOCAL_MODULE_TAGS := optional
9171363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughesinclude $(BUILD_HOST_EXECUTABLE)
9271363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughes
9371363a8075e7916c2166cbdd8a0bf5a180ed4d54Elliott Hughesendif # linux-x86
94