12ef012e47441428f752c6a29d2927513669dda30Dan Albert# 22ef012e47441428f752c6a29d2927513669dda30Dan Albert# Copyright (C) 2014 The Android Open Source Project 32ef012e47441428f752c6a29d2927513669dda30Dan Albert# 42ef012e47441428f752c6a29d2927513669dda30Dan Albert# Licensed under the Apache License, Version 2.0 (the "License"); 52ef012e47441428f752c6a29d2927513669dda30Dan Albert# you may not use this file except in compliance with the License. 62ef012e47441428f752c6a29d2927513669dda30Dan Albert# You may obtain a copy of the License at 72ef012e47441428f752c6a29d2927513669dda30Dan Albert# 82ef012e47441428f752c6a29d2927513669dda30Dan Albert# http://www.apache.org/licenses/LICENSE-2.0 92ef012e47441428f752c6a29d2927513669dda30Dan Albert# 102ef012e47441428f752c6a29d2927513669dda30Dan Albert# Unless required by applicable law or agreed to in writing, software 112ef012e47441428f752c6a29d2927513669dda30Dan Albert# distributed under the License is distributed on an "AS IS" BASIS, 122ef012e47441428f752c6a29d2927513669dda30Dan Albert# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 132ef012e47441428f752c6a29d2927513669dda30Dan Albert# See the License for the specific language governing permissions and 142ef012e47441428f752c6a29d2927513669dda30Dan Albert# limitations under the License. 152ef012e47441428f752c6a29d2927513669dda30Dan Albert# 162ef012e47441428f752c6a29d2927513669dda30Dan Albert 172ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_PATH := $(call my-dir) 182ef012e47441428f752c6a29d2927513669dda30Dan Albert 192ef012e47441428f752c6a29d2927513669dda30Dan AlbertLIBCXX_SRC_FILES := \ 204b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/algorithm.cpp \ 214b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/any.cpp \ 224b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/bind.cpp \ 234b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/chrono.cpp \ 244b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/condition_variable.cpp \ 254b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/debug.cpp \ 264b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/exception.cpp \ 274b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/future.cpp \ 284b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/hash.cpp \ 294b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/ios.cpp \ 304b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/iostream.cpp \ 314b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/locale.cpp \ 324b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/memory.cpp \ 334b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/mutex.cpp \ 344b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/new.cpp \ 354b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/optional.cpp \ 364b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/random.cpp \ 374b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/regex.cpp \ 384b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/shared_mutex.cpp \ 394b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/stdexcept.cpp \ 404b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/string.cpp \ 414b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/strstream.cpp \ 424b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/system_error.cpp \ 434b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/thread.cpp \ 444b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/typeinfo.cpp \ 454b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/utility.cpp \ 464b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert src/valarray.cpp \ 472ef012e47441428f752c6a29d2927513669dda30Dan Albert 486c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan AlbertLIBCXX_C_INCLUDES := \ 494b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert $(LOCAL_PATH)/include/ \ 506c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albert 512ef012e47441428f752c6a29d2927513669dda30Dan AlbertLIBCXX_CPPFLAGS := \ 524b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert -std=c++14 \ 534b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert -nostdinc++ \ 544b1aaf93e296bcba5da602e1fb3976f9eb2e483dDan Albert -fexceptions \ 552ef012e47441428f752c6a29d2927513669dda30Dan Albert 566c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albert# target static lib 572ef012e47441428f752c6a29d2927513669dda30Dan Albertinclude $(CLEAR_VARS) 58b82dd133946a06baa55832c389c0fdfadc0261bcDan AlbertLOCAL_MODULE := libc++_static 592ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_CLANG := true 602ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_SRC_FILES := $(LIBCXX_SRC_FILES) 613bfb9441d653a9f8d3986193a7697a7c5b1411e5Dan AlbertLOCAL_C_INCLUDES := $(LIBCXX_C_INCLUDES) 620ad34dfe3079cca0c054801e0d217b0b493e6d3cDan AlbertLOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include external/libcxxabi/include 633bfb9441d653a9f8d3986193a7697a7c5b1411e5Dan AlbertLOCAL_CPPFLAGS := $(LIBCXX_CPPFLAGS) 64f155054361cf84c0f3e5752d93c2f68675d47dcbDan AlbertLOCAL_RTTI_FLAG := -frtti 658d0c51fdca1a571448c1eca58cbed4a520b2d1e2Dan AlbertLOCAL_WHOLE_STATIC_LIBRARIES := libc++abi 66c4ecec13b6921b9d3b4edec8cc02fd96a9c2e53bDan AlbertLOCAL_CXX_STL := none 676c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albertinclude $(BUILD_STATIC_LIBRARY) 686c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albert 696c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albert# target dynamic lib 706c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albertinclude $(CLEAR_VARS) 716c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan AlbertLOCAL_MODULE := libc++ 726c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan AlbertLOCAL_CLANG := true 736029517b25b101084e5c808b195f8e0b59cd8ac2Dan AlbertLOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include external/libcxxabi/include 74b82dd133946a06baa55832c389c0fdfadc0261bcDan AlbertLOCAL_WHOLE_STATIC_LIBRARIES := libc++_static 759569f04315c59c4347295946dc01eb046bfb1c47Dan AlbertLOCAL_SHARED_LIBRARIES := libdl 76c4ecec13b6921b9d3b4edec8cc02fd96a9c2e53bDan AlbertLOCAL_CXX_STL := none 772cfc479c0b2d2872bfc7b1257aa79452ae6331ffDan AlbertLOCAL_STATIC_LIBRARIES_arm := libunwind_llvm 782ea633775bea94317c426da71f3782ce322389fdDan AlbertLOCAL_LDFLAGS_arm := -Wl,--exclude-libs,libunwind_llvm.a 792ef012e47441428f752c6a29d2927513669dda30Dan Albertinclude $(BUILD_SHARED_LIBRARY) 802ef012e47441428f752c6a29d2927513669dda30Dan Albert 816c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albert# host static lib 822ef012e47441428f752c6a29d2927513669dda30Dan Albertinclude $(CLEAR_VARS) 83b82dd133946a06baa55832c389c0fdfadc0261bcDan AlbertLOCAL_MODULE := libc++_static 842ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_CLANG := true 852ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_SRC_FILES := $(LIBCXX_SRC_FILES) 866c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan AlbertLOCAL_C_INCLUDES := $(LIBCXX_C_INCLUDES) 870ad34dfe3079cca0c054801e0d217b0b493e6d3cDan AlbertLOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include external/libcxxabi/include 882ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_CPPFLAGS := $(LIBCXX_CPPFLAGS) 89f155054361cf84c0f3e5752d93c2f68675d47dcbDan AlbertLOCAL_RTTI_FLAG := -frtti 903bfb9441d653a9f8d3986193a7697a7c5b1411e5Dan AlbertLOCAL_WHOLE_STATIC_LIBRARIES := libc++abi 91ada2964799159589b4bffe1e1ba72c664cff094aIan RogersLOCAL_MULTILIB := both 92c4ecec13b6921b9d3b4edec8cc02fd96a9c2e53bDan AlbertLOCAL_CXX_STL := none 936c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albertinclude $(BUILD_HOST_STATIC_LIBRARY) 946c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albert 956c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albert# host dynamic lib 966c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albertinclude $(CLEAR_VARS) 976c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan AlbertLOCAL_MODULE := libc++ 986c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan AlbertLOCAL_CLANG := true 996029517b25b101084e5c808b195f8e0b59cd8ac2Dan AlbertLOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include external/libcxxabi/include 1008a6f7b1d423195c8b0f1e734c7f27d24786cc87fDan AlbertLOCAL_LDFLAGS := -nodefaultlibs 101b82dd133946a06baa55832c389c0fdfadc0261bcDan AlbertLOCAL_WHOLE_STATIC_LIBRARIES := libc++_static 102ada2964799159589b4bffe1e1ba72c664cff094aIan RogersLOCAL_MULTILIB := both 103c4ecec13b6921b9d3b4edec8cc02fd96a9c2e53bDan AlbertLOCAL_CXX_STL := none 104d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murray 105d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murrayifeq ($(HOST_OS), darwin) 1068a6f7b1d423195c8b0f1e734c7f27d24786cc87fDan AlbertLOCAL_LDFLAGS += \ 107d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murray -Wl,-unexported_symbols_list,external/libcxx/lib/libc++unexp.exp \ 108d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murray -Wl,-force_symbols_not_weak_list,external/libcxx/lib/notweak.exp \ 109d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murray -Wl,-force_symbols_weak_list,external/libcxx/lib/weak.exp 110d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murrayelse 11194962fba20d5830a18f3ce0350d6cf299c04b8aaDan AlbertLOCAL_LDLIBS += -lrt -lpthread -ldl 112d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murrayendif 113d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murray 1142ef012e47441428f752c6a29d2927513669dda30Dan Albertinclude $(BUILD_HOST_SHARED_LIBRARY) 11527ae7cb782821a4f2d3813522ee411cd978bcd85Stephen Hines 116b434402ea2d0544e3b4f4c63d2c9ac61b0d88789Dan Albertifdef LIBCXX_TESTING 117b434402ea2d0544e3b4f4c63d2c9ac61b0d88789Dan Albertinclude $(LOCAL_PATH)/buildcmds/Android.mk 118b434402ea2d0544e3b4f4c63d2c9ac61b0d88789Dan Albertendif 119