Home | History | Annotate | Download | only in libbacktrace
      1 #
      2 # Copyright (C) 2014 The Android Open Source Project
      3 #
      4 # Licensed under the Apache License, Version 2.0 (the "License");
      5 # you may not use this file except in compliance with the License.
      6 # You may obtain a copy of the License at
      7 #
      8 #      http://www.apache.org/licenses/LICENSE-2.0
      9 #
     10 # Unless required by applicable law or agreed to in writing, software
     11 # distributed under the License is distributed on an "AS IS" BASIS,
     12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 # See the License for the specific language governing permissions and
     14 # limitations under the License.
     15 #
     16 
     17 LOCAL_PATH:= $(call my-dir)
     18 
     19 common_cflags := \
     20 	-Wall \
     21 	-Werror \
     22 
     23 common_conlyflags := \
     24 	-std=gnu99 \
     25 
     26 common_cppflags := \
     27 	-std=gnu++11 \
     28 
     29 build_host := false
     30 ifeq ($(HOST_OS),linux)
     31 ifeq ($(HOST_ARCH),$(filter $(HOST_ARCH),x86 x86_64))
     32 build_host := true
     33 endif
     34 endif
     35 
     36 #-------------------------------------------------------------------------
     37 # The libbacktrace library.
     38 #-------------------------------------------------------------------------
     39 libbacktrace_src_files := \
     40 	BacktraceImpl.cpp \
     41 	BacktraceMap.cpp \
     42 	BacktraceThread.cpp \
     43 	thread_utils.c \
     44 
     45 libbacktrace_shared_libraries_target := \
     46 	libcutils \
     47 	libgccdemangle \
     48 
     49 libbacktrace_src_files += \
     50 	UnwindCurrent.cpp \
     51 	UnwindMap.cpp \
     52 	UnwindPtrace.cpp \
     53 
     54 libbacktrace_c_includes := \
     55 	external/libunwind/include \
     56 
     57 libbacktrace_shared_libraries := \
     58 	libunwind \
     59 	libunwind-ptrace \
     60 
     61 libbacktrace_shared_libraries_host := \
     62 	liblog \
     63 
     64 libbacktrace_static_libraries_host := \
     65 	libcutils \
     66 
     67 libbacktrace_ldlibs_host := \
     68 	-lpthread \
     69 	-lrt \
     70 
     71 module := libbacktrace
     72 module_tag := optional
     73 build_type := target
     74 build_target := SHARED_LIBRARY
     75 include $(LOCAL_PATH)/Android.build.mk
     76 build_type := host
     77 include $(LOCAL_PATH)/Android.build.mk
     78 
     79 # Don't build for unbundled branches
     80 ifeq (,$(TARGET_BUILD_APPS))
     81 #-------------------------------------------------------------------------
     82 # The libbacktrace library (libc++)
     83 #-------------------------------------------------------------------------
     84 libbacktrace_libc++_src_files := \
     85 	BacktraceImpl.cpp \
     86 	BacktraceMap.cpp \
     87 	BacktraceThread.cpp \
     88 	thread_utils.c \
     89 
     90 libbacktrace_libc++_shared_libraries_target := \
     91 	libcutils \
     92 	libgccdemangle \
     93 
     94 libbacktrace_libc++_src_files += \
     95 	UnwindCurrent.cpp \
     96 	UnwindMap.cpp \
     97 	UnwindPtrace.cpp \
     98 
     99 libbacktrace_libc++_c_includes := \
    100 	external/libunwind/include \
    101 
    102 libbacktrace_libc++_shared_libraries := \
    103 	libunwind \
    104 	libunwind-ptrace \
    105 
    106 libbacktrace_libc++_shared_libraries_host := \
    107 	liblog \
    108 
    109 libbacktrace_libc++_static_libraries_host := \
    110 	libcutils \
    111 
    112 libbacktrace_libc++_ldlibs_host := \
    113 	-lpthread \
    114 	-lrt \
    115 
    116 libbacktrace_libc++_libc++ := true
    117 
    118 module := libbacktrace_libc++
    119 module_tag := optional
    120 build_type := target
    121 build_target := SHARED_LIBRARY
    122 include $(LOCAL_PATH)/Android.build.mk
    123 build_type := host
    124 libbacktrace_libc++_multilib := both
    125 include $(LOCAL_PATH)/Android.build.mk
    126 libbacktrace_libc++_multilib :=
    127 endif
    128 
    129 #-------------------------------------------------------------------------
    130 # The libbacktrace_test library needed by backtrace_test.
    131 #-------------------------------------------------------------------------
    132 libbacktrace_test_cflags := \
    133 	-O0 \
    134 
    135 libbacktrace_test_src_files := \
    136 	backtrace_testlib.c \
    137 
    138 module := libbacktrace_test
    139 module_tag := debug
    140 build_type := target
    141 build_target := SHARED_LIBRARY
    142 include $(LOCAL_PATH)/Android.build.mk
    143 build_type := host
    144 include $(LOCAL_PATH)/Android.build.mk
    145 
    146 #-------------------------------------------------------------------------
    147 # The backtrace_test executable.
    148 #-------------------------------------------------------------------------
    149 backtrace_test_cflags := \
    150 	-fno-builtin \
    151 	-O0 \
    152 	-g \
    153 
    154 backtrace_test_cflags_target := \
    155 	-DENABLE_PSS_TESTS \
    156 
    157 backtrace_test_src_files := \
    158 	backtrace_test.cpp \
    159 	GetPss.cpp \
    160 	thread_utils.c \
    161 
    162 backtrace_test_ldlibs_host := \
    163 	-lpthread \
    164 	-lrt \
    165 
    166 backtrace_test_shared_libraries := \
    167 	libbacktrace_test \
    168 	libbacktrace \
    169 
    170 backtrace_test_shared_libraries_target := \
    171 	libcutils \
    172 
    173 backtrace_test_static_libraries_host := \
    174 	libcutils \
    175 
    176 module := backtrace_test
    177 module_tag := debug
    178 build_type := target
    179 build_target := NATIVE_TEST
    180 include $(LOCAL_PATH)/Android.build.mk
    181 build_type := host
    182 include $(LOCAL_PATH)/Android.build.mk
    183 
    184 #----------------------------------------------------------------------------
    185 # Special truncated libbacktrace library for mac.
    186 #----------------------------------------------------------------------------
    187 ifeq ($(HOST_OS),darwin)
    188 
    189 include $(CLEAR_VARS)
    190 
    191 LOCAL_MODULE := libbacktrace
    192 LOCAL_MODULE_TAGS := optional
    193 
    194 LOCAL_SRC_FILES := \
    195 	BacktraceMap.cpp \
    196 
    197 include $(BUILD_HOST_SHARED_LIBRARY)
    198 
    199 # Don't build for unbundled branches
    200 ifeq (,$(TARGET_BUILD_APPS))
    201 #-------------------------------------------------------------------------
    202 # The libbacktrace library (libc++)
    203 #-------------------------------------------------------------------------
    204 include $(CLEAR_VARS)
    205 
    206 LOCAL_MODULE := libbacktrace_libc++
    207 LOCAL_MODULE_TAGS := optional
    208 
    209 LOCAL_SRC_FILES := \
    210 	BacktraceMap.cpp \
    211 
    212 LOCAL_MULTILIB := both
    213 
    214 include $(BUILD_HOST_SHARED_LIBRARY)
    215 
    216 endif # TARGET_BUILD_APPS
    217 
    218 endif # HOST_OS-darwin
    219