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 17LOCAL_PATH := $(call my-dir) 18 19LIBCXXABI_SRC_FILES := \ 20 src/abort_message.cpp \ 21 src/cxa_aux_runtime.cpp \ 22 src/cxa_default_handlers.cpp \ 23 src/cxa_demangle.cpp \ 24 src/cxa_exception.cpp \ 25 src/cxa_exception_storage.cpp \ 26 src/cxa_guard.cpp \ 27 src/cxa_handlers.cpp \ 28 src/cxa_new_delete.cpp \ 29 src/cxa_personality.cpp \ 30 src/cxa_unexpected.cpp \ 31 src/cxa_vector.cpp \ 32 src/cxa_virtual.cpp \ 33 src/exception.cpp \ 34 src/fallback_malloc.ipp \ 35 src/private_typeinfo.cpp \ 36 src/stdexcept.cpp \ 37 src/typeinfo.cpp \ 38 39LLVM_UNWIND_SRC_FILES := \ 40 src/Unwind/libunwind.cpp \ 41 src/Unwind/Unwind-EHABI.cpp \ 42 src/Unwind/Unwind-sjlj.c \ 43 src/Unwind/UnwindLevel1-gcc-ext.c \ 44 src/Unwind/UnwindLevel1.c \ 45 src/Unwind/UnwindRegistersSave.S \ 46 src/Unwind/UnwindRegistersRestore.S \ 47 48LIBCXXABI_CFLAGS := \ 49 -I$(LOCAL_PATH)/include/ \ 50 51LIBCXXABI_RTTI_FLAG := -frtti 52LIBCXXABI_CPPFLAGS := \ 53 -Iexternal/libcxx/include/ \ 54 -std=c++11 \ 55 -fexceptions \ 56 57include $(CLEAR_VARS) 58LOCAL_MODULE := libc++abi 59LOCAL_CLANG := true 60LOCAL_SRC_FILES := $(LIBCXXABI_SRC_FILES) 61LOCAL_SRC_FILES_arm := $(LLVM_UNWIND_SRC_FILES) 62LOCAL_CFLAGS := $(LIBCXXABI_CFLAGS) 63LOCAL_CPPFLAGS := $(LIBCXXABI_CPPFLAGS) 64LOCAL_RTTI_FLAG := $(LIBCXXABI_RTTI_FLAG) 65LOCAL_WHOLE_STATIC_LIBRARIES_arm64 := libunwind 66LOCAL_WHOLE_STATIC_LIBRARIES_mips := libunwind 67LOCAL_WHOLE_STATIC_LIBRARIES_mips64 := libunwind 68LOCAL_WHOLE_STATIC_LIBRARIES_x86 := libunwind 69LOCAL_WHOLE_STATIC_LIBRARIES_x86_64 := libunwind 70LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 71include $(BUILD_STATIC_LIBRARY) 72 73include $(CLEAR_VARS) 74LOCAL_MODULE := libc++abi 75LOCAL_CLANG := true 76LOCAL_SRC_FILES := $(LIBCXXABI_SRC_FILES) 77LOCAL_CFLAGS := $(LIBCXXABI_CFLAGS) 78LOCAL_CPPFLAGS := $(LIBCXXABI_CPPFLAGS) 79 80ifeq ($(HOST_OS),darwin) 81LOCAL_SRC_FILES += $(LLVM_UNWIND_SRC_FILES) src/Unwind/Unwind_AppleExtras.cpp 82# libcxxabi really doesn't like the non-LLVM assembler on Darwin 83LOCAL_ASFLAGS += -integrated-as 84LOCAL_CFLAGS += -integrated-as 85LOCAL_CPPFLAGS += -integrated-as 86else 87LOCAL_WHOLE_STATIC_LIBRARIES := libunwindbacktrace 88endif 89 90LOCAL_RTTI_FLAG := $(LIBCXXABI_RTTI_FLAG) 91LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 92LOCAL_MULTILIB := both 93include $(BUILD_HOST_STATIC_LIBRARY) 94