Android.mk revision 94962fba20d5830a18f3ce0350d6cf299c04b8aa
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 := \ 202ef012e47441428f752c6a29d2927513669dda30Dan Albert src/algorithm.cpp \ 212ef012e47441428f752c6a29d2927513669dda30Dan Albert src/bind.cpp \ 222ef012e47441428f752c6a29d2927513669dda30Dan Albert src/chrono.cpp \ 232ef012e47441428f752c6a29d2927513669dda30Dan Albert src/condition_variable.cpp \ 242ef012e47441428f752c6a29d2927513669dda30Dan Albert src/debug.cpp \ 252ef012e47441428f752c6a29d2927513669dda30Dan Albert src/exception.cpp \ 262ef012e47441428f752c6a29d2927513669dda30Dan Albert src/future.cpp \ 272ef012e47441428f752c6a29d2927513669dda30Dan Albert src/hash.cpp \ 282ef012e47441428f752c6a29d2927513669dda30Dan Albert src/ios.cpp \ 292ef012e47441428f752c6a29d2927513669dda30Dan Albert src/iostream.cpp \ 302ef012e47441428f752c6a29d2927513669dda30Dan Albert src/locale.cpp \ 312ef012e47441428f752c6a29d2927513669dda30Dan Albert src/memory.cpp \ 322ef012e47441428f752c6a29d2927513669dda30Dan Albert src/mutex.cpp \ 332ef012e47441428f752c6a29d2927513669dda30Dan Albert src/new.cpp \ 342ef012e47441428f752c6a29d2927513669dda30Dan Albert src/optional.cpp \ 352ef012e47441428f752c6a29d2927513669dda30Dan Albert src/random.cpp \ 362ef012e47441428f752c6a29d2927513669dda30Dan Albert src/regex.cpp \ 372ef012e47441428f752c6a29d2927513669dda30Dan Albert src/shared_mutex.cpp \ 382ef012e47441428f752c6a29d2927513669dda30Dan Albert src/stdexcept.cpp \ 392ef012e47441428f752c6a29d2927513669dda30Dan Albert src/string.cpp \ 402ef012e47441428f752c6a29d2927513669dda30Dan Albert src/strstream.cpp \ 412ef012e47441428f752c6a29d2927513669dda30Dan Albert src/system_error.cpp \ 422ef012e47441428f752c6a29d2927513669dda30Dan Albert src/thread.cpp \ 432ef012e47441428f752c6a29d2927513669dda30Dan Albert src/typeinfo.cpp \ 442ef012e47441428f752c6a29d2927513669dda30Dan Albert src/utility.cpp \ 452ef012e47441428f752c6a29d2927513669dda30Dan Albert src/valarray.cpp \ 462ef012e47441428f752c6a29d2927513669dda30Dan Albert 476c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan AlbertLIBCXX_C_INCLUDES := \ 486c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albert $(LOCAL_PATH)/include/ \ 493bfb9441d653a9f8d3986193a7697a7c5b1411e5Dan Albert external/libcxxabi/include \ 506c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albert 512ef012e47441428f752c6a29d2927513669dda30Dan AlbertLIBCXX_CPPFLAGS := \ 522ef012e47441428f752c6a29d2927513669dda30Dan Albert -std=c++11 \ 538a6f7b1d423195c8b0f1e734c7f27d24786cc87fDan Albert -nostdinc++ \ 542ef012e47441428f752c6a29d2927513669dda30Dan 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) 623bfb9441d653a9f8d3986193a7697a7c5b1411e5Dan AlbertLOCAL_CPPFLAGS := $(LIBCXX_CPPFLAGS) 63f155054361cf84c0f3e5752d93c2f68675d47dcbDan AlbertLOCAL_RTTI_FLAG := -frtti 643bfb9441d653a9f8d3986193a7697a7c5b1411e5Dan AlbertLOCAL_WHOLE_STATIC_LIBRARIES := libc++abi libcompiler_rt 65c4ecec13b6921b9d3b4edec8cc02fd96a9c2e53bDan AlbertLOCAL_CXX_STL := none 666c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albertinclude $(BUILD_STATIC_LIBRARY) 676c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albert 686c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albert# target dynamic lib 696c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albertinclude $(CLEAR_VARS) 706c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan AlbertLOCAL_MODULE := libc++ 716c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan AlbertLOCAL_CLANG := true 72b82dd133946a06baa55832c389c0fdfadc0261bcDan AlbertLOCAL_WHOLE_STATIC_LIBRARIES := libc++_static 739569f04315c59c4347295946dc01eb046bfb1c47Dan AlbertLOCAL_SHARED_LIBRARIES := libdl 74c4ecec13b6921b9d3b4edec8cc02fd96a9c2e53bDan AlbertLOCAL_CXX_STL := none 75226cd95300d2a7efbfa3f62c837d638e92c1f433Dan Albert 76226cd95300d2a7efbfa3f62c837d638e92c1f433Dan Albert 772ef012e47441428f752c6a29d2927513669dda30Dan Albertinclude $(BUILD_SHARED_LIBRARY) 782ef012e47441428f752c6a29d2927513669dda30Dan Albert 796c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albert# host static lib 802ef012e47441428f752c6a29d2927513669dda30Dan Albertinclude $(CLEAR_VARS) 81b82dd133946a06baa55832c389c0fdfadc0261bcDan AlbertLOCAL_MODULE := libc++_static 822ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_CLANG := true 832ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_SRC_FILES := $(LIBCXX_SRC_FILES) 846c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan AlbertLOCAL_C_INCLUDES := $(LIBCXX_C_INCLUDES) 852ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_CPPFLAGS := $(LIBCXX_CPPFLAGS) 86f155054361cf84c0f3e5752d93c2f68675d47dcbDan AlbertLOCAL_RTTI_FLAG := -frtti 873bfb9441d653a9f8d3986193a7697a7c5b1411e5Dan AlbertLOCAL_WHOLE_STATIC_LIBRARIES := libc++abi 88ada2964799159589b4bffe1e1ba72c664cff094aIan RogersLOCAL_MULTILIB := both 89c4ecec13b6921b9d3b4edec8cc02fd96a9c2e53bDan AlbertLOCAL_CXX_STL := none 906c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albert 913bfb9441d653a9f8d3986193a7697a7c5b1411e5Dan Albertifneq ($(HOST_OS), darwin) 923bfb9441d653a9f8d3986193a7697a7c5b1411e5Dan AlbertLOCAL_WHOLE_STATIC_LIBRARIES += libcompiler_rt 936c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albertendif 943bfb9441d653a9f8d3986193a7697a7c5b1411e5Dan Albert 956c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albertinclude $(BUILD_HOST_STATIC_LIBRARY) 966c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albert 97b1300bde9cc0528ff84b91ed60ac80655218b4b0Ying Wang# Don't build for unbundled branches 98b1300bde9cc0528ff84b91ed60ac80655218b4b0Ying Wangifeq (,$(TARGET_BUILD_APPS)) 99b1300bde9cc0528ff84b91ed60ac80655218b4b0Ying Wang 1006c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albert# host dynamic lib 1016c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan Albertinclude $(CLEAR_VARS) 1026c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan AlbertLOCAL_MODULE := libc++ 1036c2fdb822e4b1feefe5a7f1829b11be927ee57f9Dan AlbertLOCAL_CLANG := true 1048a6f7b1d423195c8b0f1e734c7f27d24786cc87fDan AlbertLOCAL_LDFLAGS := -nodefaultlibs 105b82dd133946a06baa55832c389c0fdfadc0261bcDan AlbertLOCAL_WHOLE_STATIC_LIBRARIES := libc++_static 106ada2964799159589b4bffe1e1ba72c664cff094aIan RogersLOCAL_MULTILIB := both 107c4ecec13b6921b9d3b4edec8cc02fd96a9c2e53bDan AlbertLOCAL_CXX_STL := none 108d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murray 109d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murrayifeq ($(HOST_OS), darwin) 1108a6f7b1d423195c8b0f1e734c7f27d24786cc87fDan AlbertLOCAL_LDFLAGS += \ 111d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murray -Wl,-unexported_symbols_list,external/libcxx/lib/libc++unexp.exp \ 112d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murray -Wl,-force_symbols_not_weak_list,external/libcxx/lib/notweak.exp \ 113d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murray -Wl,-force_symbols_weak_list,external/libcxx/lib/weak.exp 114d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murrayelse 11594962fba20d5830a18f3ce0350d6cf299c04b8aaDan AlbertLOCAL_LDLIBS += -lrt -lpthread -ldl 116d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murrayendif 117d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murray 1182ef012e47441428f752c6a29d2927513669dda30Dan Albertinclude $(BUILD_HOST_SHARED_LIBRARY) 11927ae7cb782821a4f2d3813522ee411cd978bcd85Stephen Hines 1200f81d7634f698157ddef3061713caca314f59ca4Dan AlbertLIT := $(ANDROID_BUILD_TOP)/external/llvm/utils/lit/lit.py 12178f8c1981eed69d751b26958ea12262d4c663fe6Dan AlbertLIBCXX_CONFIGTESTS := $(ANDROID_BUILD_TOP)/external/libcxx/buildcmds/configtests.py 12278f8c1981eed69d751b26958ea12262d4c663fe6Dan AlbertLIBCXX_TEST_MK := $(ANDROID_BUILD_TOP)/external/libcxx/test.mk 12378f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert 12478f8c1981eed69d751b26958ea12262d4c663fe6Dan Alberttest-libcxx-target: test-libcxx-target-clang 12578f8c1981eed69d751b26958ea12262d4c663fe6Dan Alberttest-libcxx-host: test-libcxx-host-clang 12678f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert 12778f8c1981eed69d751b26958ea12262d4c663fe6Dan Alberttest-libcxx-target-clang: libc++ 12878f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert python $(LIBCXX_CONFIGTESTS) --compiler=clang 12978f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert LIT=$(LIT) LIT_MODE=device make -f $(LIBCXX_TEST_MK) 13078f8c1981eed69d751b26958ea12262d4c663fe6Dan Alberttest-libcxx-target-gcc: libc++ 13178f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert python $(LIBCXX_CONFIGTESTS) --compiler=gcc 13278f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert LIT=$(LIT) LIT_MODE=device make -f $(LIBCXX_TEST_MK) 13378f8c1981eed69d751b26958ea12262d4c663fe6Dan Alberttest-libcxx-target-clang-32: libc++ 13478f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert python $(LIBCXX_CONFIGTESTS) --bitness=32 --compiler=clang 13578f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert LIT=$(LIT) LIT_MODE=device make -f $(LIBCXX_TEST_MK) 13678f8c1981eed69d751b26958ea12262d4c663fe6Dan Alberttest-libcxx-target-gcc-32: libc++ 13778f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert python $(LIBCXX_CONFIGTESTS) --bitness=32 --compiler=gcc 13878f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert LIT=$(LIT) LIT_MODE=device make -f $(LIBCXX_TEST_MK) 13978f8c1981eed69d751b26958ea12262d4c663fe6Dan Alberttest-libcxx-target-clang-64: libc++ 14078f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert python $(LIBCXX_CONFIGTESTS) --bitness=64 --compiler=clang 14178f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert LIT=$(LIT) LIT_MODE=device make -f $(LIBCXX_TEST_MK) 14278f8c1981eed69d751b26958ea12262d4c663fe6Dan Alberttest-libcxx-target-gcc-64: libc++ 14378f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert python $(LIBCXX_CONFIGTESTS) --bitness=64 --compiler=gcc 14478f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert LIT=$(LIT) LIT_MODE=device make -f $(LIBCXX_TEST_MK) 14578f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert 14678f8c1981eed69d751b26958ea12262d4c663fe6Dan Alberttest-libcxx-host-clang: libc++ 14778f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert python $(LIBCXX_CONFIGTESTS) --compiler=clang --host 14878f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert LIT=$(LIT) LIT_MODE=host make -f $(LIBCXX_TEST_MK) 14978f8c1981eed69d751b26958ea12262d4c663fe6Dan Alberttest-libcxx-host-gcc: libc++ 15078f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert python $(LIBCXX_CONFIGTESTS) --compiler=gcc --host 15178f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert LIT=$(LIT) LIT_MODE=host make -f $(LIBCXX_TEST_MK) 15278f8c1981eed69d751b26958ea12262d4c663fe6Dan Alberttest-libcxx-host-clang-32: libc++ 15378f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert python $(LIBCXX_CONFIGTESTS) --bitness=32 --compiler=clang --host 15478f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert LIT=$(LIT) LIT_MODE=host make -f $(LIBCXX_TEST_MK) 15578f8c1981eed69d751b26958ea12262d4c663fe6Dan Alberttest-libcxx-host-gcc-32: libc++ 15678f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert python $(LIBCXX_CONFIGTESTS) --bitness=32 --compiler=gcc --host 15778f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert LIT=$(LIT) LIT_MODE=host make -f $(LIBCXX_TEST_MK) 15878f8c1981eed69d751b26958ea12262d4c663fe6Dan Alberttest-libcxx-host-clang-64: libc++ 15978f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert python $(LIBCXX_CONFIGTESTS) --bitness=64 --compiler=clang --host 16078f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert LIT=$(LIT) LIT_MODE=host make -f $(LIBCXX_TEST_MK) 16178f8c1981eed69d751b26958ea12262d4c663fe6Dan Alberttest-libcxx-host-gcc-64: libc++ 16278f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert python $(LIBCXX_CONFIGTESTS) --bitness=64 --compiler=gcc --host 16378f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert LIT=$(LIT) LIT_MODE=host make -f $(LIBCXX_TEST_MK) 1640f81d7634f698157ddef3061713caca314f59ca4Dan Albert 1650f81d7634f698157ddef3061713caca314f59ca4Dan Albert# Don't want to just make test-libcxx-(host|target) dependencies of this because 1660f81d7634f698157ddef3061713caca314f59ca4Dan Albert# the two families can't be run concurrently. 1670f81d7634f698157ddef3061713caca314f59ca4Dan Alberttest-libcxx: libc++ 16878f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert python buildcmds/configtests.py --host 1690f81d7634f698157ddef3061713caca314f59ca4Dan Albert LIT=$(LIT) LIT_MODE=host make -f $(ANDROID_BUILD_TOP)/external/libcxx/test.mk 17078f8c1981eed69d751b26958ea12262d4c663fe6Dan Albert python buildcmds/configtests.py 1710f81d7634f698157ddef3061713caca314f59ca4Dan Albert LIT=$(LIT) LIT_MODE=device make -f $(ANDROID_BUILD_TOP)/external/libcxx/test.mk 1720f81d7634f698157ddef3061713caca314f59ca4Dan Albert 17327ae7cb782821a4f2d3813522ee411cd978bcd85Stephen Hinesendif # TARGET_BUILD_APPS 174