Use stlport prior to Marshmallow.

Change-Id: I83294568a5725e95fcf2d7490336bead35517bdf
Reviewed-on: https://swiftshader-review.googlesource.com/4362
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Greg Hartman <ghartman@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/Android.mk b/src/Android.mk
index 9a74930..4abc980 100644
--- a/src/Android.mk
+++ b/src/Android.mk
@@ -2,15 +2,19 @@
 
 COMMON_C_INCLUDES += \
 	bionic \
-	$(GCE_STLPORT_INCLUDES) \
-        $(LOCAL_PATH)/OpenGL/include \
-        $(LOCAL_PATH)/OpenGL/ \
-        $(LOCAL_PATH) \
-        $(LOCAL_PATH)/Renderer/ \
-        $(LOCAL_PATH)/Common/ \
-        $(LOCAL_PATH)/Shader/ \
-        $(LOCAL_PATH)/LLVM/include \
-        $(LOCAL_PATH)/Main/
+	$(LOCAL_PATH)/OpenGL/include \
+	$(LOCAL_PATH)/OpenGL/ \
+	$(LOCAL_PATH) \
+	$(LOCAL_PATH)/Renderer/ \
+	$(LOCAL_PATH)/Common/ \
+	$(LOCAL_PATH)/Shader/ \
+	$(LOCAL_PATH)/LLVM/include \
+	$(LOCAL_PATH)/Main/
+
+# Marshmallow does not have stlport, but comes with libc++ by default
+ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23 && echo PreMarshmallow),PreMarshmallow)
+COMMON_C_INCLUDES += external/stlport/stlport
+endif
 
 COMMON_SRC_FILES := \
 	Common/CPUID.cpp \
diff --git a/src/LLVM/Android.mk b/src/LLVM/Android.mk
index 8f2ec86..103ceec 100644
--- a/src/LLVM/Android.mk
+++ b/src/LLVM/Android.mk
@@ -417,9 +417,13 @@
 
 LOCAL_C_INCLUDES += \
 	bionic \
-	$(GCE_STLPORT_INCLUDES) \
 	$(LOCAL_PATH)/include-android \
 	$(LOCAL_PATH)/include \
 	$(LOCAL_PATH)/lib/Target/X86 \
 
+# Marshmallow does not have stlport, but comes with libc++ by default
+ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23 && echo PreMarshmallow),PreMarshmallow)
+LOCAL_C_INCLUDES += external/stlport/stlport
+endif
+
 include $(BUILD_STATIC_LIBRARY)
diff --git a/src/OpenGL/compiler/Android.mk b/src/OpenGL/compiler/Android.mk
index 612dcfe..2c4332f 100644
--- a/src/OpenGL/compiler/Android.mk
+++ b/src/OpenGL/compiler/Android.mk
@@ -2,7 +2,6 @@
 
 COMMON_C_INCLUDES := \
 	bionic \
-	$(GCE_STLPORT_INCLUDES) \
 	$(LOCAL_PATH)/../include \
 	$(LOCAL_PATH)/../ \
 	$(LOCAL_PATH)/../../ \
@@ -15,6 +14,11 @@
 	$(LOCAL_PATH)/../../Shader/ \
 	$(LOCAL_PATH)/../../Main/
 
+# Marshmallow does not have stlport, but comes with libc++ by default
+ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23 && echo PreMarshmallow),PreMarshmallow)
+COMMON_C_INCLUDES += external/stlport/stlport
+endif
+
 COMMON_CFLAGS := \
 	-DLOG_TAG=\"swiftshader_compiler\" \
 	-Wno-unused-parameter \
@@ -93,5 +97,6 @@
 	-UNDEBUG \
 	-g \
 	-O0
+
 LOCAL_C_INCLUDES := $(COMMON_C_INCLUDES)
 include $(BUILD_STATIC_LIBRARY)
diff --git a/src/OpenGL/libEGL/Android.mk b/src/OpenGL/libEGL/Android.mk
index 301b171..8de6dc1 100644
--- a/src/OpenGL/libEGL/Android.mk
+++ b/src/OpenGL/libEGL/Android.mk
@@ -24,7 +24,6 @@
 
 COMMON_C_INCLUDES := \
 	bionic \
-	$(GCE_STLPORT_INCLUDES) \
 	$(LOCAL_PATH)/../include \
 	$(LOCAL_PATH)/../ \
 	$(LOCAL_PATH)/../../
@@ -37,8 +36,13 @@
 	liblog \
 	libutils \
 	libcutils \
-	libhardware \
-	$(GCE_STLPORT_LIBS)
+	libhardware
+
+# Marshmallow does not have stlport, but comes with libc++ by default
+ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23 && echo PreMarshmallow),PreMarshmallow)
+COMMON_SHARED_LIBRARIES += libstlport
+COMMON_C_INCLUDES += external/stlport/stlport
+endif
 
 COMMON_LDFLAGS := \
 	-Wl,--version-script=$(LOCAL_PATH)/exports.map \
diff --git a/src/OpenGL/libGLES_CM/Android.mk b/src/OpenGL/libGLES_CM/Android.mk
index 4183d36..a67ec67 100644
--- a/src/OpenGL/libGLES_CM/Android.mk
+++ b/src/OpenGL/libGLES_CM/Android.mk
@@ -21,7 +21,6 @@
 COMMON_CFLAGS += -D__STDC_INT64__
 endif
 
-
 COMMON_SRC_FILES := \
 	Buffer.cpp \
 	Context.cpp \
@@ -38,18 +37,17 @@
 
 COMMON_C_INCLUDES := \
 	bionic \
-	$(GCE_STLPORT_INCLUDES) \
-        $(LOCAL_PATH)/../include \
-        $(LOCAL_PATH)/../ \
-        $(LOCAL_PATH)/../../ \
-        $(LOCAL_PATH)/../../LLVM/include-android \
-        $(LOCAL_PATH)/../../LLVM/include-linux \
-        $(LOCAL_PATH)/../../LLVM/include \
-        $(LOCAL_PATH)/../../LLVM/lib/Target/X86 \
-        $(LOCAL_PATH)/../../Renderer/ \
-        $(LOCAL_PATH)/../../Common/ \
-        $(LOCAL_PATH)/../../Shader/ \
-        $(LOCAL_PATH)/../../Main/
+	$(LOCAL_PATH)/../include \
+	$(LOCAL_PATH)/../ \
+	$(LOCAL_PATH)/../../ \
+	$(LOCAL_PATH)/../../LLVM/include-android \
+	$(LOCAL_PATH)/../../LLVM/include-linux \
+	$(LOCAL_PATH)/../../LLVM/include \
+	$(LOCAL_PATH)/../../LLVM/lib/Target/X86 \
+	$(LOCAL_PATH)/../../Renderer/ \
+	$(LOCAL_PATH)/../../Common/ \
+	$(LOCAL_PATH)/../../Shader/ \
+	$(LOCAL_PATH)/../../Main/
 
 COMMON_STATIC_LIBRARIES := libLLVM_swiftshader
 
@@ -59,8 +57,13 @@
 	libcutils \
 	libhardware \
 	libui \
-	libutils \
-	$(GCE_STLPORT_LIBS)
+	libutils
+
+# Marshmallow does not have stlport, but comes with libc++ by default
+ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23 && echo PreMarshmallow),PreMarshmallow)
+COMMON_SHARED_LIBRARIES += libstlport
+COMMON_C_INCLUDES += external/stlport/stlport
+endif
 
 COMMON_LDFLAGS := \
 	-Wl,--gc-sections \
diff --git a/src/OpenGL/libGLESv2/Android.mk b/src/OpenGL/libGLESv2/Android.mk
index b538e74..0b3ca6a 100644
--- a/src/OpenGL/libGLESv2/Android.mk
+++ b/src/OpenGL/libGLESv2/Android.mk
@@ -42,7 +42,6 @@
 
 COMMON_C_INCLUDES := \
 	bionic \
-	$(GCE_STLPORT_INCLUDES) \
 	$(LOCAL_PATH)/../include \
 	$(LOCAL_PATH)/../ \
 	$(LOCAL_PATH)/../../ \
@@ -64,8 +63,13 @@
 	libcutils \
 	libhardware \
 	libui \
-	libutils \
-	$(GCE_STLPORT_LIBS)
+	libutils
+
+# Marshmallow does not have stlport, but comes with libc++ by default
+ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23 && echo PreMarshmallow),PreMarshmallow)
+COMMON_SHARED_LIBRARIES += libstlport
+COMMON_C_INCLUDES += external/stlport/stlport
+endif
 
 COMMON_LDFLAGS := \
 	-Wl,--gc-sections \