• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1LOCAL_PATH := $(call my-dir)
2
3# Normally, we distribute the NDK with prebuilt binaries of STLport
4# in $LOCAL_PATH/libs/<abi>/. However,
5#
6
7STLPORT_FORCE_REBUILD := $(strip $(STLPORT_FORCE_REBUILD))
8ifndef STLPORT_FORCE_REBUILD
9  ifeq (,$(strip $(wildcard $(LOCAL_PATH)/libs/$(TARGET_ARCH_ABI)/libstlport_static$(TARGET_LIB_EXTENSION))))
10    $(call __ndk_info,WARNING: Rebuilding STLport libraries from sources!)
11    $(call __ndk_info,You might want to use $$NDK/build/tools/build-cxx-stl.sh --stl=stlport)
12    $(call __ndk_info,in order to build prebuilt versions to speed up your builds!)
13    STLPORT_FORCE_REBUILD := true
14  endif
15endif
16
17libstlport_path := $(LOCAL_PATH)
18
19libstlport_src_files := \
20        src/dll_main.cpp \
21        src/fstream.cpp \
22        src/strstream.cpp \
23        src/sstream.cpp \
24        src/ios.cpp \
25        src/stdio_streambuf.cpp \
26        src/istream.cpp \
27        src/ostream.cpp \
28        src/iostream.cpp \
29        src/codecvt.cpp \
30        src/collate.cpp \
31        src/ctype.cpp \
32        src/monetary.cpp \
33        src/num_get.cpp \
34        src/num_put.cpp \
35        src/num_get_float.cpp \
36        src/num_put_float.cpp \
37        src/numpunct.cpp \
38        src/time_facets.cpp \
39        src/messages.cpp \
40        src/locale.cpp \
41        src/locale_impl.cpp \
42        src/locale_catalog.cpp \
43        src/facets_byname.cpp \
44        src/complex.cpp \
45        src/complex_io.cpp \
46        src/complex_trig.cpp \
47        src/string.cpp \
48        src/bitset.cpp \
49        src/allocators.cpp \
50        src/c_locale.c \
51        src/cxa.c \
52
53libstlport_cflags := -D_GNU_SOURCE
54libstlport_cppflags := -fuse-cxa-atexit
55libstlport_c_includes := $(libstlport_path)/stlport
56
57#It is much more practical to include the sources of GAbi++ in our builds
58# of STLport. This is similar to what the GNU libstdc++ does (it includes
59# its own copy of libsupc++)
60#
61# This simplifies usage, since you only have to list a single library
62# as a dependency, instead of two, especially when using the standalone
63# toolchain.
64#
65include $(dir $(LOCAL_PATH))/gabi++/sources.mk
66
67libstlport_c_includes += $(libgabi++_c_includes)
68ifneq ($(strip $(filter-out $(NDK_KNOWN_ARCHS),$(TARGET_ARCH))),)
69libgabi++_src_files := src/delete.cc \
70                       src/new.cc
71endif
72
73ifneq ($(STLPORT_FORCE_REBUILD),true)
74
75$(call ndk_log,Using prebuilt STLport libraries)
76
77include $(CLEAR_VARS)
78LOCAL_MODULE := stlport_static
79LOCAL_SRC_FILES := libs/$(TARGET_ARCH_ABI)/lib$(LOCAL_MODULE)$(TARGET_LIB_EXTENSION)
80# For armeabi*, choose thumb mode unless LOCAL_ARM_MODE := arm
81ifneq (,$(filter armeabi%,$(TARGET_ARCH_ABI)))
82ifneq (arm,$(LOCAL_ARM_MODE))
83LOCAL_SRC_FILES := libs/$(TARGET_ARCH_ABI)/thumb/lib$(LOCAL_MODULE)$(TARGET_LIB_EXTENSION)
84endif
85endif
86LOCAL_EXPORT_C_INCLUDES := $(libstlport_c_includes)
87LOCAL_CPP_FEATURES := rtti
88include $(PREBUILT_STATIC_LIBRARY)
89
90include $(CLEAR_VARS)
91LOCAL_MODULE := stlport_shared
92LOCAL_SRC_FILES := libs/$(TARGET_ARCH_ABI)/lib$(LOCAL_MODULE)$(TARGET_SONAME_EXTENSION)
93# For armeabi*, choose thumb mode unless LOCAL_ARM_MODE := arm
94$(info TARGET_ARCH_ABI=$(TARGET_ARCH_ABI))
95$(info LOCAL_ARM_MODE=$(LOCAL_ARM_MODE))
96ifneq (,$(filter armeabi%,$(TARGET_ARCH_ABI)))
97ifneq (arm,$(LOCAL_ARM_MODE))
98LOCAL_SRC_FILES := libs/$(TARGET_ARCH_ABI)/thumb/lib$(LOCAL_MODULE)$(TARGET_SONAME_EXTENSION)
99endif
100endif
101LOCAL_EXPORT_C_INCLUDES := $(libstlport_c_includes)
102LOCAL_CPP_FEATURES := rtti
103include $(PREBUILT_SHARED_LIBRARY)
104
105else # STLPORT_FORCE_REBUILD == true
106
107$(call ndk_log,Rebuilding STLport libraries from sources)
108
109include $(CLEAR_VARS)
110LOCAL_MODULE := stlport_static
111LOCAL_CPP_EXTENSION := .cpp .cc
112LOCAL_SRC_FILES := $(libstlport_src_files)
113LOCAL_SRC_FILES += $(libgabi++_src_files:%=../gabi++/%)
114LOCAL_CFLAGS := $(libstlport_cflags)
115LOCAL_CPPFLAGS := $(libstlport_cppflags)
116LOCAL_C_INCLUDES := $(libstlport_c_includes)
117LOCAL_EXPORT_C_INCLUDES := $(libstlport_c_includes)
118LOCAL_CPP_FEATURES := rtti exceptions
119include $(BUILD_STATIC_LIBRARY)
120
121include $(CLEAR_VARS)
122LOCAL_MODULE := stlport_shared
123LOCAL_CPP_EXTENSION := .cpp .cc
124LOCAL_SRC_FILES := $(libstlport_src_files)
125LOCAL_SRC_FILES += $(libgabi++_src_files:%=../gabi++/%)
126LOCAL_CFLAGS := $(libstlport_cflags)
127LOCAL_CPPFLAGS := $(libstlport_cppflags)
128LOCAL_C_INCLUDES := $(libstlport_c_includes)
129LOCAL_EXPORT_C_INCLUDES := $(libstlport_c_includes)
130LOCAL_CPP_FEATURES := rtti exceptions
131include $(BUILD_SHARED_LIBRARY)
132
133endif # STLPORT_FORCE_REBUILD == true
134