Android.mk revision d513b7a16f5bb182fbe3cab05bfe68dddff948ff
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
171a42fce230f3fdf47424db6f53da933355a9416eDan Albert# libcxx isn't working on mips yet
181a42fce230f3fdf47424db6f53da933355a9416eDan Albertifneq ($(TARGET_ARCH),$(filter $(TARGET_ARCH), mips mips64))
192ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_PATH := $(call my-dir)
202ef012e47441428f752c6a29d2927513669dda30Dan Albert
212ef012e47441428f752c6a29d2927513669dda30Dan AlbertLIBCXX_SRC_FILES := \
222ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/algorithm.cpp \
232ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/bind.cpp \
242ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/chrono.cpp \
252ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/condition_variable.cpp \
262ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/debug.cpp \
272ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/exception.cpp \
282ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/future.cpp \
292ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/hash.cpp \
302ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/ios.cpp \
312ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/iostream.cpp \
322ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/locale.cpp \
332ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/memory.cpp \
342ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/mutex.cpp \
352ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/new.cpp \
362ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/optional.cpp \
372ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/random.cpp \
382ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/regex.cpp \
392ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/shared_mutex.cpp \
402ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/stdexcept.cpp \
412ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/string.cpp \
422ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/strstream.cpp \
432ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/system_error.cpp \
442ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/thread.cpp \
452ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/typeinfo.cpp \
462ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/utility.cpp \
472ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/valarray.cpp \
482ef012e47441428f752c6a29d2927513669dda30Dan Albert	src/stubs.cpp \
492ef012e47441428f752c6a29d2927513669dda30Dan Albert
502ef012e47441428f752c6a29d2927513669dda30Dan AlbertLIBCXX_CPPFLAGS := \
512ef012e47441428f752c6a29d2927513669dda30Dan Albert	-I$(LOCAL_PATH)/include/ \
522ef012e47441428f752c6a29d2927513669dda30Dan Albert	-Iexternal/libcxxabi/include \
532ef012e47441428f752c6a29d2927513669dda30Dan Albert	-std=c++11 \
542ef012e47441428f752c6a29d2927513669dda30Dan Albert	-nostdlib \
552ef012e47441428f752c6a29d2927513669dda30Dan Albert	-fexceptions \
562ef012e47441428f752c6a29d2927513669dda30Dan Albert
572ef012e47441428f752c6a29d2927513669dda30Dan Albertinclude $(CLEAR_VARS)
582ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_MODULE := libc++
592ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_CLANG := true
602ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_SRC_FILES := $(LIBCXX_SRC_FILES)
612ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_CPPFLAGS := $(LIBCXX_CPPFLAGS)
622ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_SYSTEM_SHARED_LIBRARIES := libc
632ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_SHARED_LIBRARIES := libcxxabi
64226cd95300d2a7efbfa3f62c837d638e92c1f433Dan Albert
65c10e7197c30a26cb5974353f39816aced1853e06Dan Albertifneq ($(TARGET_ARCH),arm)
66226cd95300d2a7efbfa3f62c837d638e92c1f433Dan Albert	LOCAL_SHARED_LIBRARIES += libdl
67226cd95300d2a7efbfa3f62c837d638e92c1f433Dan Albertendif
68226cd95300d2a7efbfa3f62c837d638e92c1f433Dan Albert
692ef012e47441428f752c6a29d2927513669dda30Dan Albertinclude $(BUILD_SHARED_LIBRARY)
702ef012e47441428f752c6a29d2927513669dda30Dan Albert
712ef012e47441428f752c6a29d2927513669dda30Dan Albertinclude $(CLEAR_VARS)
722ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_MODULE := libc++
732ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_CLANG := true
742ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_SRC_FILES := $(LIBCXX_SRC_FILES)
752ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_CPPFLAGS := $(LIBCXX_CPPFLAGS)
76d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murray
77d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murrayifeq ($(HOST_OS), darwin)
78d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim MurrayLOCAL_LDFLAGS := \
79d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murray            -Wl,-unexported_symbols_list,external/libcxx/lib/libc++unexp.exp  \
80d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murray            -Wl,-reexported_symbols_list,external/libcxx/lib/libc++abi2.exp \
81d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murray            -Wl,-force_symbols_not_weak_list,external/libcxx/lib/notweak.exp \
82d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murray            -Wl,-force_symbols_weak_list,external/libcxx/lib/weak.exp
83d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murrayelse
84d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim MurrayLOCAL_LDFLAGS :=  -lrt -lpthread
85d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murrayendif
86d513b7a16f5bb182fbe3cab05bfe68dddff948ffTim Murray
872ef012e47441428f752c6a29d2927513669dda30Dan AlbertLOCAL_SHARED_LIBRARIES := libcxxabi
882ef012e47441428f752c6a29d2927513669dda30Dan Albertinclude $(BUILD_HOST_SHARED_LIBRARY)
891a42fce230f3fdf47424db6f53da933355a9416eDan Albertendif
90