1e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# 2e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# Copyright (C) 2014 The Android Open Source Project 3e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# 4e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# Licensed under the Apache License, Version 2.0 (the "License"); 5e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# you may not use this file except in compliance with the License. 6e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# You may obtain a copy of the License at 7e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# 8e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# http://www.apache.org/licenses/LICENSE-2.0 9e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# 10e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# Unless required by applicable law or agreed to in writing, software 11e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# distributed under the License is distributed on an "AS IS" BASIS, 12e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# See the License for the specific language governing permissions and 14e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# limitations under the License. 15e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# 16e085735cbedc82b1064f05ff796e32e906a95036Dan Albert 17e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLOCAL_PATH := $(call my-dir) 18e085735cbedc82b1064f05ff796e32e906a95036Dan Albert 19e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLIBCXXABI_SRC_FILES := \ 2007bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/abort_message.cpp \ 2107bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/cxa_aux_runtime.cpp \ 2207bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/cxa_default_handlers.cpp \ 2307bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/cxa_demangle.cpp \ 2407bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/cxa_exception.cpp \ 2507bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/cxa_exception_storage.cpp \ 2607bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/cxa_guard.cpp \ 2707bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/cxa_handlers.cpp \ 2807bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/cxa_new_delete.cpp \ 2907bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/cxa_personality.cpp \ 304d4cef86f56f034acef8790572c173bc7db91eb1Dmitriy Ivanov src/cxa_thread_atexit.cpp \ 3107bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/cxa_unexpected.cpp \ 3207bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/cxa_vector.cpp \ 3307bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/cxa_virtual.cpp \ 3407bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/exception.cpp \ 3507bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/private_typeinfo.cpp \ 3607bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/stdexcept.cpp \ 3707bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/typeinfo.cpp \ 3887a9be28aceed80250cd1d1a47eb8afa0ee67b51Dan Albert 3907bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan AlbertLIBCXXABI_INCLUDES := \ 4096d7ecd753c2409ebb05511cd0098f0a3fa317a7Dan Albert $(LOCAL_PATH)/include \ 4196d7ecd753c2409ebb05511cd0098f0a3fa317a7Dan Albert external/libcxx/include \ 42e085735cbedc82b1064f05ff796e32e906a95036Dan Albert 43e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLIBCXXABI_RTTI_FLAG := -frtti 44e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLIBCXXABI_CPPFLAGS := \ 458e51add97ec958d86c1ed970dbc6dbf50e952112Dan Albert -std=c++14 \ 4607bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert -fexceptions \ 47e44dc7755bf137061288ca06515ccd0f0a0d2218Dan Albert -Wall \ 48e44dc7755bf137061288ca06515ccd0f0a0d2218Dan Albert -Wextra \ 49e44dc7755bf137061288ca06515ccd0f0a0d2218Dan Albert -Wno-unused-function \ 50e44dc7755bf137061288ca06515ccd0f0a0d2218Dan Albert -Werror \ 5107bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert 5207bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albertinclude $(CLEAR_VARS) 53ab22a8fc0e1fd348c19b99efa183ffd8c00af815Dan AlbertLOCAL_MODULE := libc++abi 54e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLOCAL_CLANG := true 55e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLOCAL_SRC_FILES := $(LIBCXXABI_SRC_FILES) 5607bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan AlbertLOCAL_C_INCLUDES := $(LIBCXXABI_INCLUDES) 578b90ac3b73e48894c4b7547ee4a04deff0ccc595Dan AlbertLOCAL_C_INCLUDES_arm := external/libunwind_llvm/include 588b90ac3b73e48894c4b7547ee4a04deff0ccc595Dan AlbertLOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include 594d4cef86f56f034acef8790572c173bc7db91eb1Dmitriy IvanovLOCAL_CPPFLAGS := $(LIBCXXABI_CPPFLAGS) -DHAVE___CXA_THREAD_ATEXIT_IMPL 60f4ce0f175347ef16883c76396cd63f028a68d036Dan AlbertLOCAL_CPPFLAGS_arm := -DLIBCXXABI_USE_LLVM_UNWINDER=1 61f4ce0f175347ef16883c76396cd63f028a68d036Dan AlbertLOCAL_CPPFLAGS_arm64 := -DLIBCXXABI_USE_LLVM_UNWINDER=0 62f4ce0f175347ef16883c76396cd63f028a68d036Dan AlbertLOCAL_CPPFLAGS_mips := -DLIBCXXABI_USE_LLVM_UNWINDER=0 63f4ce0f175347ef16883c76396cd63f028a68d036Dan AlbertLOCAL_CPPFLAGS_mips64 := -DLIBCXXABI_USE_LLVM_UNWINDER=0 64f4ce0f175347ef16883c76396cd63f028a68d036Dan AlbertLOCAL_CPPFLAGS_x86 := -DLIBCXXABI_USE_LLVM_UNWINDER=0 65f4ce0f175347ef16883c76396cd63f028a68d036Dan AlbertLOCAL_CPPFLAGS_x86_64 := -DLIBCXXABI_USE_LLVM_UNWINDER=0 66e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLOCAL_RTTI_FLAG := $(LIBCXXABI_RTTI_FLAG) 6796d7ecd753c2409ebb05511cd0098f0a3fa317a7Dan AlbertLOCAL_CXX_STL := none 6896d7ecd753c2409ebb05511cd0098f0a3fa317a7Dan AlbertLOCAL_SANITIZE := never 69873f8586ee0ba081b0537f84dc827a400d0bc73dDan Albertinclude $(BUILD_STATIC_LIBRARY) 70e085735cbedc82b1064f05ff796e32e906a95036Dan Albert 71e085735cbedc82b1064f05ff796e32e906a95036Dan Albertinclude $(CLEAR_VARS) 72ab22a8fc0e1fd348c19b99efa183ffd8c00af815Dan AlbertLOCAL_MODULE := libc++abi 73e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLOCAL_CLANG := true 74e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLOCAL_SRC_FILES := $(LIBCXXABI_SRC_FILES) 7507bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan AlbertLOCAL_C_INCLUDES := $(LIBCXXABI_INCLUDES) 768b90ac3b73e48894c4b7547ee4a04deff0ccc595Dan AlbertLOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include 77e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLOCAL_CPPFLAGS := $(LIBCXXABI_CPPFLAGS) 7896d7ecd753c2409ebb05511cd0098f0a3fa317a7Dan AlbertLOCAL_RTTI_FLAG := $(LIBCXXABI_RTTI_FLAG) 7996d7ecd753c2409ebb05511cd0098f0a3fa317a7Dan AlbertLOCAL_MULTILIB := both 802cf24ad3f1ff619533d195768ed66c83fb118472Dan AlbertLOCAL_CXX_STL := none 8196d7ecd753c2409ebb05511cd0098f0a3fa317a7Dan AlbertLOCAL_SANITIZE := never 8209437217701ee0d16962250b375698ceece839e8Tim Murray 8309437217701ee0d16962250b375698ceece839e8Tim Murrayifeq ($(HOST_OS),darwin) 8409437217701ee0d16962250b375698ceece839e8Tim Murray# libcxxabi really doesn't like the non-LLVM assembler on Darwin 8509437217701ee0d16962250b375698ceece839e8Tim MurrayLOCAL_ASFLAGS += -integrated-as 8609437217701ee0d16962250b375698ceece839e8Tim MurrayLOCAL_CFLAGS += -integrated-as 8709437217701ee0d16962250b375698ceece839e8Tim MurrayLOCAL_CPPFLAGS += -integrated-as 8809437217701ee0d16962250b375698ceece839e8Tim Murrayendif 8909437217701ee0d16962250b375698ceece839e8Tim Murray 90873f8586ee0ba081b0537f84dc827a400d0bc73dDan Albertinclude $(BUILD_HOST_STATIC_LIBRARY) 91