Android.mk revision 9569f04315c59c4347295946dc01eb046bfb1c47
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
1727ae7cb782821a4f2d3813522ee411cd978bcd85Stephen Hines# Don't build for unbundled branches
1827ae7cb782821a4f2d3813522ee411cd978bcd85Stephen Hinesifeq (,$(TARGET_BUILD_APPS))
1927ae7cb782821a4f2d3813522ee411cd978bcd85Stephen Hines
202ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_PATH := $(call my-dir)
212ef012e47441428f752c6a29d2927513669dda30Dan Albert
222ef012e47441428f752c6a29d2927513669dda30Dan AlbertLIBCXX_SRC_FILES := \
232ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/algorithm.cpp \
242ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/bind.cpp \
252ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/chrono.cpp \
262ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/condition_variable.cpp \
272ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/debug.cpp \
282ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/exception.cpp \
292ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/future.cpp \
302ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/hash.cpp \
312ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/ios.cpp \
322ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/iostream.cpp \
332ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/locale.cpp \
342ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/memory.cpp \
352ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/mutex.cpp \
362ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/new.cpp \
372ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/optional.cpp \
382ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/random.cpp \
392ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/regex.cpp \
402ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/shared_mutex.cpp \
412ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/stdexcept.cpp \
422ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/string.cpp \
432ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/strstream.cpp \
442ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/system_error.cpp \
452ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/thread.cpp \
462ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/typeinfo.cpp \
472ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/utility.cpp \
482ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/valarray.cpp \
492ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/stubs.cpp \
502ef012e47441428f752c6a29d2927513669dda30Dan Albert
512ef012e47441428f752c6a29d2927513669dda30Dan AlbertLIBCXX_CPPFLAGS := \
522ef012e47441428f752c6a29d2927513669dda30Dan Albert	-I$(LOCAL_PATH)/include/ \
532ef012e47441428f752c6a29d2927513669dda30Dan Albert	-std=c++11 \
548a6f7b1d423195c8b0f1e734c7f27d24786cc87fDan Albert	-nostdinc++ \
552ef012e47441428f752c6a29d2927513669dda30Dan Albert	-fexceptions \
562ef012e47441428f752c6a29d2927513669dda30Dan Albert
572ef012e47441428f752c6a29d2927513669dda30Dan Albertinclude $(CLEAR_VARS)
582ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_MODULE := libc++
592ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_CLANG := true
602ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_SRC_FILES := $(LIBCXX_SRC_FILES)
619569f04315c59c4347295946dc01eb046bfb1c47Dan AlbertLOCAL_CPPFLAGS := $(LIBCXX_CPPFLAGS) -Iexternal/libcxxrt/src -DLIBCXXRT
62f155054361cf84c0f3e5752d93c2f68675d47dcbDan AlbertLOCAL_RTTI_FLAG := -frtti
639569f04315c59c4347295946dc01eb046bfb1c47Dan AlbertLOCAL_STATIC_LIBRARIES := libcxxrt
649569f04315c59c4347295946dc01eb046bfb1c47Dan AlbertLOCAL_SHARED_LIBRARIES := libdl
652ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_SYSTEM_SHARED_LIBRARIES := libc
66226cd95300d2a7efbfa3f62c837d638e92c1f433Dan Albert
673486f698a3c0b7edb521f27e851d7362f63a114cStephen Hines# Bug: 14296739
683486f698a3c0b7edb521f27e851d7362f63a114cStephen Hines# The MIPS target in LLVM is spuriously generating a text relocation for
693486f698a3c0b7edb521f27e851d7362f63a114cStephen Hines# __gxx_personality_v0 in the .eh_frame section. This triggers a linker
703486f698a3c0b7edb521f27e851d7362f63a114cStephen Hines# warning, since it is not considered PIC. Disable warnings as errors
713486f698a3c0b7edb521f27e851d7362f63a114cStephen Hines# for this link step until we can get the bug fixed.
723486f698a3c0b7edb521f27e851d7362f63a114cStephen Hinesifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH), mips mips64))
733486f698a3c0b7edb521f27e851d7362f63a114cStephen HinesLOCAL_LDFLAGS := -Wl,--no-fatal-warnings
743486f698a3c0b7edb521f27e851d7362f63a114cStephen Hinesendif
753486f698a3c0b7edb521f27e851d7362f63a114cStephen Hines
76c10e7197c30a26cb5974353f39816aced1853e06Dan Albertifneq ($(TARGET_ARCH),arm)
77226cd95300d2a7efbfa3f62c837d638e92c1f433Dan Albert	LOCAL_SHARED_LIBRARIES += libdl
78226cd95300d2a7efbfa3f62c837d638e92c1f433Dan Albertendif
79226cd95300d2a7efbfa3f62c837d638e92c1f433Dan Albert
802ef012e47441428f752c6a29d2927513669dda30Dan Albertinclude $(BUILD_SHARED_LIBRARY)
812ef012e47441428f752c6a29d2927513669dda30Dan Albert
822ef012e47441428f752c6a29d2927513669dda30Dan Albertinclude $(CLEAR_VARS)
832ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_MODULE := libc++
842ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_CLANG := true
852ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_SRC_FILES := $(LIBCXX_SRC_FILES)
862ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_CPPFLAGS := $(LIBCXX_CPPFLAGS)
87f155054361cf84c0f3e5752d93c2f68675d47dcbDan AlbertLOCAL_RTTI_FLAG := -frtti
888a6f7b1d423195c8b0f1e734c7f27d24786cc87fDan AlbertLOCAL_LDFLAGS := -nodefaultlibs
898a6f7b1d423195c8b0f1e734c7f27d24786cc87fDan AlbertLOCAL_LDLIBS := -lc
90d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murray
91d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murrayifeq ($(HOST_OS), darwin)
929569f04315c59c4347295946dc01eb046bfb1c47Dan AlbertLOCAL_CPPFLAGS += -Iexternal/libcxxabi/include
938a6f7b1d423195c8b0f1e734c7f27d24786cc87fDan AlbertLOCAL_LDFLAGS += \
94d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murray            -Wl,-unexported_symbols_list,external/libcxx/lib/libc++unexp.exp  \
95d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murray            -Wl,-force_symbols_not_weak_list,external/libcxx/lib/notweak.exp \
96d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murray            -Wl,-force_symbols_weak_list,external/libcxx/lib/weak.exp
979569f04315c59c4347295946dc01eb046bfb1c47Dan AlbertLOCAL_STATIC_LIBRARIES := libc++abi
98d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murrayelse
999569f04315c59c4347295946dc01eb046bfb1c47Dan AlbertLOCAL_CPPFLAGS += -Iexternal/libcxxrt/src -DLIBCXXRT
1009569f04315c59c4347295946dc01eb046bfb1c47Dan AlbertLOCAL_STATIC_LIBRARIES := libcxxrt libcompiler_rt libunwind
1019569f04315c59c4347295946dc01eb046bfb1c47Dan AlbertLOCAL_LDLIBS += -lrt -lpthread -ldl
102d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murrayendif
103d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murray
1042ef012e47441428f752c6a29d2927513669dda30Dan Albertinclude $(BUILD_HOST_SHARED_LIBRARY)
10527ae7cb782821a4f2d3813522ee411cd978bcd85Stephen Hines
10627ae7cb782821a4f2d3813522ee411cd978bcd85Stephen Hinesendif  # TARGET_BUILD_APPS
107