+
+
+
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/app/clean.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/clean.mak
new file mode 100644
index 00000000000..587b2dc7b64
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/app/clean.mak
@@ -0,0 +1,50 @@
+# -*- makefile -*- Time-stamp: <03/10/26 16:17:03 ptr>
+# $Id$
+
+clobber: clean
+ @if exist $(PRG) del /F /Q $(PRG)
+ @if exist $(PRG_DBG) del /F /Q $(PRG_DBG)
+ @if exist $(PRG_STLDBG) del /F /Q $(PRG_STLDBG)
+ @if exist $(PRG_A) del /F /Q $(PRG_A)
+ @if exist $(PRG_A_DBG) del /F /Q $(PRG_A_DBG)
+ @if exist $(PRG_A_STLDBG) del /F /Q $(PRG_A_STLDBG)
+ @if exist $(PDB_NAME_OUT) del /F /Q $(PDB_NAME_OUT)
+ @if exist $(PDB_NAME_OUT_DBG) del /F /Q $(PDB_NAME_OUT_DBG)
+ @if exist $(PDB_NAME_OUT_STLDBG) del /F /Q $(PDB_NAME_OUT_STLDBG)
+ @if exist $(MANIFEST_NAME_OUT) del /F /Q $(MANIFEST_NAME_OUT)
+ @if exist $(MANIFEST_NAME_OUT_DBG) del /F /Q $(MANIFEST_NAME_OUT_DBG)
+ @if exist $(MANIFEST_NAME_OUT_STLDBG) del /F /Q $(MANIFEST_NAME_OUT_STLDBG)
+ @if exist $(A_PDB_NAME_OUT) del /F /Q $(A_PDB_NAME_OUT)
+ @if exist $(A_PDB_NAME_OUT_DBG) del /F /Q $(A_PDB_NAME_OUT_DBG)
+ @if exist $(A_PDB_NAME_OUT_STLDBG) del /F /Q $(A_PDB_NAME_OUT_STLDBG)
+ @-if exist $(OUTPUT_DIR) rd $(OUTPUT_DIR)
+ @-if exist $(OUTPUT_DIR_DBG) rd $(OUTPUT_DIR_DBG)
+ @-if exist $(OUTPUT_DIR_STLDBG) rd $(OUTPUT_DIR_STLDBG)
+ @-if exist $(OUTPUT_DIR_A) rd $(OUTPUT_DIR_A)
+ @-if exist $(OUTPUT_DIR_A_DBG) rd $(OUTPUT_DIR_A_DBG)
+ @-if exist $(OUTPUT_DIR_A_STLDBG) rd $(OUTPUT_DIR_A_STLDBG)
+ @-if exist $(OUTPUT_TARGET_DIR) rd $(OUTPUT_TARGET_DIR)
+ @-if exist $(OUTPUT_ROOT_DIR) rd $(OUTPUT_ROOT_DIR)
+
+distclean: clobber
+ @if exist $(INSTALL_BIN_DIR)\$(PRG_NAME_BASE)$(EXE) del /F /Q $(INSTALL_BIN_DIR)\$(PRG_NAME_BASE)$(EXE)
+ @if exist $(INSTALL_BIN_DIR_DBG)\$(PRG_NAME_DBG_BASE)$(EXE) del /F /Q $(INSTALL_BIN_DIR_DBG)\$(PRG_NAME_DBG_BASE)$(EXE)
+ @if exist $(INSTALL_BIN_DIR_STLDBG)\$(PRG_NAME_STLDBG_BASE)$(EXE) del /F /Q $(INSTALL_BIN_DIR_STLDBG)\$(PRG_NAME_STLDBG_BASE)$(EXE)
+ @if exist $(INSTALL_STATIC_BIN_DIR)\$(PRG_NAME_A_BASE)$(EXE) del /F /Q $(INSTALL_STATIC_BIN_DIR)\$(PRG_NAME_A_BASE)$(EXE)
+ @if exist $(INSTALL_STATIC_BIN_DIR_DBG)\$(PRG_NAME_A_DBG_BASE)$(EXE) del /F /Q $(INSTALL_STATIC_BIN_DIR_DBG)\$(PRG_NAME_A_DBG_BASE)$(EXE)
+ @if exist $(INSTALL_STATIC_BIN_DIR_STLDBG)\$(PRG_NAME_A_STLDBG_BASE)$(EXE) del /F /Q $(INSTALL_STATIC_BIN_DIR_STLDBG)\$(PRG_NAME_A_STLDBG_BASE)$(EXE)
+ @if exist $(INSTALL_BIN_DIR)\$(PRG_NAME_BASE).pdb del /F /Q $(INSTALL_BIN_DIR)\$(PRG_NAME_BASE).pdb
+ @if exist $(INSTALL_BIN_DIR_DBG)\$(PRG_NAME_DBG_BASE).pdb del /F /Q $(INSTALL_BIN_DIR_DBG)\$(PRG_NAME_DBG_BASE).pdb
+ @if exist $(INSTALL_BIN_DIR_STLDBG)\$(PRG_NAME_STLDBG_BASE).pdb del /F /Q $(INSTALL_BIN_DIR_STLDBG)\$(PRG_NAME_STLDBG_BASE).pdb
+ @if exist $(INSTALL_STATIC_BIN_DIR)\$(PRG_NAME_A_BASE).pdb del /F /Q $(INSTALL_STATIC_BIN_DIR)\$(PRG_NAME_A_BASE).pdb
+ @if exist $(INSTALL_STATIC_BIN_DIR_DBG)\$(PRG_NAME_A_DBG_BASE).pdb del /F /Q $(INSTALL_STATIC_BIN_DIR_DBG)\$(PRG_NAME_A_DBG_BASE).pdb
+ @if exist $(INSTALL_STATIC_BIN_DIR_STLDBG)\$(PRG_NAME_A_STLDBG_BASE).pdb del /F /Q $(INSTALL_STATIC_BIN_DIR_STLDBG)\$(PRG_NAME_A_STLDBG_BASE).pdb
+ @if exist $(INSTALL_BIN_DIR)\$(PRG_NAME_BASE)$(EXE).manifest del /F /Q $(INSTALL_BIN_DIR)\$(PRG_NAME_BASE)$(EXE).manifest
+ @if exist $(INSTALL_BIN_DIR_DBG)\$(PRG_NAME_DBG_BASE)$(EXE).manifest del /F /Q $(INSTALL_BIN_DIR_DBG)\$(PRG_NAME_DBG_BASE)$(EXE).manifest
+ @if exist $(INSTALL_BIN_DIR_STLDBG)\$(PRG_NAME_STLDBG_BASE)$(EXE).manifest del /F /Q $(INSTALL_BIN_DIR_STLDBG)\$(PRG_NAME_STLDBG_BASE)$(EXE).manifest
+ @-if exist $(INSTALL_BIN_DIR) rd $(INSTALL_BIN_DIR)
+ @-if exist $(INSTALL_BIN_DIR_DBG) rd $(INSTALL_BIN_DIR_DBG)
+ @-if exist $(INSTALL_BIN_DIR_STLDBG) rd $(INSTALL_BIN_DIR_STLDBG)
+ @-if exist $(INSTALL_STATIC_BIN_DIR) rd $(INSTALL_STATIC_BIN_DIR)
+ @-if exist $(INSTALL_STATIC_BIN_DIR_DBG) rd $(INSTALL_STATIC_BIN_DIR_DBG)
+ @-if exist $(INSTALL_STATIC_BIN_DIR_STLDBG) rd $(INSTALL_STATIC_BIN_DIR_STLDBG)
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc-common.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc-common.mak
new file mode 100644
index 00000000000..38a30499dcc
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc-common.mak
@@ -0,0 +1,15 @@
+# -*- makefile -*- Time-stamp: <04/05/01 00:46:25 ptr>
+# $Id$
+
+# missing defines in this file: LDFLAGS_COMMON
+
+# For CE, the linker by default uses WinMain() as entry point, using this we make it use the standard main()
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /entry:"mainACRTStartup"
+
+!ifndef LDLIBS
+LDLIBS =
+!endif
+
+LDFLAGS_REL = $(LDFLAGS_REL) $(LDFLAGS_COMMON) $(LDSEARCH)
+LDFLAGS_DBG = $(LDFLAGS_DBG) $(LDFLAGS_COMMON) $(LDSEARCH)
+LDFLAGS_STLDBG = $(LDFLAGS_STLDBG) $(LDFLAGS_COMMON) $(LDSEARCH)
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc3.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc3.mak
new file mode 100644
index 00000000000..23469f6bb97
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc3.mak
@@ -0,0 +1,7 @@
+# -*- makefile -*- Time-stamp: <04/05/01 00:46:25 ptr>
+# $Id$
+
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /base:"0x00010000"
+
+!include evc-common.mak
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc4.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc4.mak
new file mode 100644
index 00000000000..24b0041cdda
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc4.mak
@@ -0,0 +1,6 @@
+# -*- makefile -*- Time-stamp: <04/03/31 08:08:12 ptr>
+# $Id$
+
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /base:"0x00010000"
+
+!include evc-common.mak
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc8.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc8.mak
new file mode 100644
index 00000000000..2ba28df9fe7
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc8.mak
@@ -0,0 +1,5 @@
+# build/Makefiles/nmake/app/evc8.mak
+
+LDFLAGS_COMMON = $(LDFLAGS_COMMON)
+
+!include evc-common.mak
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc9.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc9.mak
new file mode 100644
index 00000000000..0aef4da0bd8
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc9.mak
@@ -0,0 +1,5 @@
+# build/Makefiles/nmake/app/evc9.mak
+
+LDFLAGS_COMMON = $(LDFLAGS_COMMON)
+
+!include evc-common.mak
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/app/icl.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/icl.mak
new file mode 100644
index 00000000000..bf09570b9e6
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/app/icl.mak
@@ -0,0 +1,2 @@
+!include vc-common.mak
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/app/macro.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/macro.mak
new file mode 100644
index 00000000000..ee9ea3d2458
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/app/macro.mak
@@ -0,0 +1,29 @@
+# -*- makefile -*- Time-stamp: <03/09/28 17:22:37 ptr>
+# $Id$
+
+DBG_SUFFIX = d
+STLDBG_SUFFIX = stl$(DBG_SUFFIX)
+
+PRG_NAME_BASE = $(PRGNAME)
+PRG_NAME_DBG_BASE = $(PRGNAME)$(DBG_SUFFIX)
+PRG_NAME_STLDBG_BASE = $(PRGNAME)$(STLDBG_SUFFIX)
+PRG_NAME_A_BASE = $(PRGNAME)_static
+PRG_NAME_A_DBG_BASE = $(PRGNAME)$(DBG_SUFFIX)_static
+PRG_NAME_A_STLDBG_BASE = $(PRGNAME)$(STLDBG_SUFFIX)_static
+
+PRG = $(OUTPUT_DIR)\$(PRG_NAME_BASE)$(EXE)
+PRG_DBG = $(OUTPUT_DIR_DBG)\$(PRG_NAME_DBG_BASE)$(EXE)
+PRG_STLDBG = $(OUTPUT_DIR_STLDBG)\$(PRG_NAME_STLDBG_BASE)$(EXE)
+PRG_A = $(OUTPUT_DIR_A)\$(PRG_NAME_A_BASE)$(EXE)
+PRG_A_DBG = $(OUTPUT_DIR_A_DBG)\$(PRG_NAME_A_DBG_BASE)$(EXE)
+PRG_A_STLDBG = $(OUTPUT_DIR_A_STLDBG)\$(PRG_NAME_A_STLDBG_BASE)$(EXE)
+
+PDB_NAME_OUT = $(OUTPUT_DIR)\$(PRG_NAME_BASE).pdb
+PDB_NAME_OUT_DBG = $(OUTPUT_DIR_DBG)\$(PRG_NAME_DBG_BASE).pdb
+PDB_NAME_OUT_STLDBG = $(OUTPUT_DIR_STLDBG)\$(PRG_NAME_STLDBG_BASE).pdb
+MANIFEST_NAME_OUT = $(PRG).manifest
+MANIFEST_NAME_OUT_DBG = $(PRG_DBG).manifest
+MANIFEST_NAME_OUT_STLDBG = $(PRG_STLDBG).manifest
+A_PDB_NAME_OUT = $(OUTPUT_DIR_A)\$(PRG_NAME_A_BASE).pdb
+A_PDB_NAME_OUT_DBG = $(OUTPUT_DIR_A_DBG)\$(PRG_NAME_A_DBG_BASE).pdb
+A_PDB_NAME_OUT_STLDBG = $(OUTPUT_DIR_A_STLDBG)\$(PRG_NAME_A_STLDBG_BASE).pdb
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/app/rules-exe-windows.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/rules-exe-windows.mak
new file mode 100644
index 00000000000..b57bf163b3b
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/app/rules-exe-windows.mak
@@ -0,0 +1,29 @@
+# -*- makefile -*- Time-stamp: <03/10/26 23:11:03 ptr>
+# $Id$
+
+release-shared: $(OUTPUT_DIR) $(PRG)
+release-static: $(OUTPUT_DIR_A) $(PRG_A)
+
+dbg-shared: $(OUTPUT_DIR_DBG) $(PRG_DBG)
+dbg-static: $(OUTPUT_DIR_A_DBG) $(PRG_A_DBG)
+
+stldbg-shared: $(OUTPUT_DIR_STLDBG) $(PRG_STLDBG)
+stldbg-static: $(OUTPUT_DIR_A_STLDBG) $(PRG_A_STLDBG)
+
+$(PRG): $(OBJ) $(LIBSDEP)
+ $(LINK_cc_REL) $(LINK_OUTPUT_OPTION) $(OBJ) $(LDLIBS_REL) $(LDLIBS)
+
+$(PRG_A): $(OBJ_A) $(LIBSDEP)
+ $(LINK_cc_A_REL) $(LINK_OUTPUT_OPTION) $(OBJ_A) $(LDLIBS_A_REL) $(LDLIBS)
+
+$(PRG_DBG): $(OBJ_DBG) $(LIBSDEP)
+ $(LINK_cc_DBG) $(LINK_OUTPUT_OPTION) $(OBJ_DBG) $(LDLIBS_DBG) $(LDLIBS)
+
+$(PRG_A_DBG): $(OBJ_A_DBG) $(LIBSDEP)
+ $(LINK_cc_A_DBG) $(LINK_OUTPUT_OPTION) $(OBJ_A_DBG) $(LDLIBS_A_DBG) $(LDLIBS)
+
+$(PRG_STLDBG): $(OBJ_STLDBG) $(LIBSDEP)
+ $(LINK_cc_STLDBG) $(LINK_OUTPUT_OPTION) $(OBJ_STLDBG) $(LDLIBS_STLDBG) $(LDLIBS)
+
+$(PRG_A_STLDBG): $(OBJ_A_STLDBG) $(LIBSDEP)
+ $(LINK_cc_A_STLDBG) $(LINK_OUTPUT_OPTION) $(OBJ_A_STLDBG) $(LDLIBS_A_STLDBG) $(LDLIBS)
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/app/rules-install-a.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/rules-install-a.mak
new file mode 100644
index 00000000000..805117d9662
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/app/rules-install-a.mak
@@ -0,0 +1,16 @@
+# Time-stamp: <03/10/17 19:29:26 ptr>
+# $Id$
+
+install-static: install-release-static install-dbg-static install-stldbg-static
+
+install-release-static: release-static $(INSTALL_STATIC_BIN_DIR)
+ $(INSTALL_A) $(PRG_A) $(INSTALL_STATIC_BIN_DIR)
+ @if exist $(A_PDB_NAME_OUT) $(INSTALL_A) $(A_PDB_NAME_OUT) $(INSTALL_STATIC_BIN_DIR)
+
+install-dbg-static: dbg-static $(INSTALL_STATIC_BIN_DIR_DBG)
+ $(INSTALL_A) $(PRG_A_DBG) $(INSTALL_STATIC_BIN_DIR_DBG)
+ @if exist $(A_PDB_NAME_OUT_DBG) $(INSTALL_A) $(A_PDB_NAME_OUT_DBG) $(INSTALL_STATIC_BIN_DIR_DBG)
+
+install-stldbg-static: stldbg-static $(INSTALL_STATIC_BIN_DIR_STLDBG)
+ $(INSTALL_A) $(PRG_A_STLDBG) $(INSTALL_STATIC_BIN_DIR_STLDBG)
+ @if exist $(A_PDB_NAME_OUT_STLDBG) $(INSTALL_A) $(A_PDB_NAME_OUT_STLDBG) $(INSTALL_STATIC_BIN_DIR_STLDBG)
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/app/rules-install-so.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/rules-install-so.mak
new file mode 100644
index 00000000000..36e404b3fd9
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/app/rules-install-so.mak
@@ -0,0 +1,23 @@
+# Time-stamp: <03/10/26 16:42:14 ptr>
+# $Id$
+
+!ifndef INSTALL_TAGS
+INSTALL_TAGS= install-shared install-static
+!endif
+
+install: $(INSTALL_TAGS)
+
+install-release-shared: release-shared $(INSTALL_BIN_DIR)
+ $(INSTALL_SO) $(PRG) $(INSTALL_BIN_DIR)
+ $(INSTALL_SO) $(PDB_NAME_OUT) $(INSTALL_BIN_DIR)
+ @if exist $(MANIFEST_NAME_OUT) $(INSTALL_SO) $(MANIFEST_NAME_OUT) $(INSTALL_BIN_DIR)
+
+install-dbg-shared: dbg-shared $(INSTALL_BIN_DIR_DBG)
+ $(INSTALL_SO) $(PRG_DBG) $(INSTALL_BIN_DIR_DBG)
+ $(INSTALL_SO) $(PDB_NAME_OUT_DBG) $(INSTALL_BIN_DIR_DBG)
+ @if exist $(MANIFEST_NAME_OUT_DBG) $(INSTALL_SO) $(MANIFEST_NAME_OUT_DBG) $(INSTALL_BIN_DIR_DBG)
+
+install-stldbg-shared: stldbg-shared $(INSTALL_BIN_DIR_STLDBG)
+ $(INSTALL_SO) $(PRG_STLDBG) $(INSTALL_BIN_DIR_STLDBG)
+ $(INSTALL_SO) $(PDB_NAME_OUT_STLDBG) $(INSTALL_BIN_DIR_STLDBG)
+ @if exist $(MANIFEST_NAME_OUT_STLDBG) $(INSTALL_SO) $(MANIFEST_NAME_OUT_STLDBG) $(INSTALL_BIN_DIR_STLDBG)
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/app/top.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/top.mak
new file mode 100644
index 00000000000..4fb2f174909
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/app/top.mak
@@ -0,0 +1,15 @@
+# -*- makefile -*- Time-stamp: <03/09/28 18:46:10 ptr>
+# $Id$
+
+!ifndef LDFLAGS
+LDFLAGS =
+!endif
+
+!include $(RULESBASE)/$(USE_MAKE)/app/macro.mak
+!include $(RULESBASE)/$(USE_MAKE)/app/$(COMPILER_NAME).mak
+!include $(RULESBASE)/$(USE_MAKE)/app/rules-exe-$(OSNAME).mak
+
+!include $(RULESBASE)/$(USE_MAKE)/app/rules-install-so.mak
+!include $(RULESBASE)/$(USE_MAKE)/app/rules-install-a.mak
+
+!include $(RULESBASE)/$(USE_MAKE)/app/clean.mak
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc-common.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc-common.mak
new file mode 100644
index 00000000000..52334702bb9
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc-common.mak
@@ -0,0 +1,13 @@
+# -*- makefile -*- Time-stamp: <03/09/28 17:34:35 ptr>
+# $Id$
+
+!ifndef LDLIBS
+LDLIBS =
+!endif
+
+#LDSEARCH = $(LDSEARCH) /LIBPATH:"$(MSVC_LIB_DIR)"
+
+LDFLAGS_REL = $(LDFLAGS_REL) $(LDSEARCH)
+LDFLAGS_A_REL = $(LDFLAGS_A_REL) $(LDSEARCH)
+LDFLAGS_DBG = $(LDFLAGS_DBG) $(LDSEARCH)
+LDFLAGS_STLDBG = $(LDFLAGS_STLDBG) $(LDSEARCH)
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc6.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc6.mak
new file mode 100644
index 00000000000..e97c733a0b6
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc6.mak
@@ -0,0 +1,4 @@
+OPT_STLDBG = $(OPT_STLDBG) /Zm800
+OPT_STATIC_STLDBG = $(OPT_STATIC_STLDBG) /Zm800
+
+!include vc-common.mak
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc70.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc70.mak
new file mode 100644
index 00000000000..bf09570b9e6
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc70.mak
@@ -0,0 +1,2 @@
+!include vc-common.mak
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc71.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc71.mak
new file mode 100644
index 00000000000..864d80aad3f
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc71.mak
@@ -0,0 +1,3 @@
+
+!include vc-common.mak
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc8.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc8.mak
new file mode 100644
index 00000000000..864d80aad3f
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc8.mak
@@ -0,0 +1,3 @@
+
+!include vc-common.mak
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc9.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc9.mak
new file mode 100644
index 00000000000..864d80aad3f
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc9.mak
@@ -0,0 +1,3 @@
+
+!include vc-common.mak
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/clean.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/clean.mak
new file mode 100644
index 00000000000..af0351da4d5
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/clean.mak
@@ -0,0 +1,16 @@
+# -*- makefile -*- Time-stamp: <03/10/29 22:20:01 ptr>
+# $Id$
+
+clean:
+ @if exist $(OUTPUT_DIR)\*.o del /F /Q $(OUTPUT_DIR)\*.o
+ @if exist $(OUTPUT_DIR_DBG)\*.o del /F /Q $(OUTPUT_DIR_DBG)\*.o
+ @if exist $(OUTPUT_DIR_STLDBG)\*.o del /F /Q $(OUTPUT_DIR_STLDBG)\*.o
+ @if exist $(OUTPUT_DIR_A)\*.o del /F /Q $(OUTPUT_DIR_A)\*.o
+ @if exist $(OUTPUT_DIR_A_DBG)\*.o del /F /Q $(OUTPUT_DIR_A_DBG)\*.o
+ @if exist $(OUTPUT_DIR_A_STLDBG)\*.o del /F /Q $(OUTPUT_DIR_A_STLDBG)\*.o
+ @if exist $(OUTPUT_DIR)\*.obj del /F /Q $(OUTPUT_DIR)\*.obj
+ @if exist $(OUTPUT_DIR_DBG)\*.obj del /F /Q $(OUTPUT_DIR_DBG)\*.obj
+ @if exist $(OUTPUT_DIR_STLDBG)\*.obj del /F /Q $(OUTPUT_DIR_STLDBG)\*.obj
+ @if exist $(OUTPUT_DIR_A)\*.obj del /F /Q $(OUTPUT_DIR_A)\*.obj
+ @if exist $(OUTPUT_DIR_A_DBG)\*.obj del /F /Q $(OUTPUT_DIR_A_DBG)\*.obj
+ @if exist $(OUTPUT_DIR_A_STLDBG)\*.obj del /F /Q $(OUTPUT_DIR_A_STLDBG)\*.obj
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/evc-common.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/evc-common.mak
new file mode 100644
index 00000000000..c8d9c0a94e8
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/evc-common.mak
@@ -0,0 +1,92 @@
+# Time-stamp: <04/04/30 23:36:48 ptr>
+# $Id$
+
+# stuff not defined here: CXX, CC, DEFS_COMMON, CFLAGS_*, CXXFLAGS_*, OPT_COMMON
+
+LINK = link.exe
+RC = rc.exe
+
+!ifdef DEFS
+DEFS_REL = $(DEFS) $(DEFS_REL)
+DEFS_DBG = $(DEFS) $(DEFS_DBG)
+DEFS_STLDBG = $(DEFS) $(DEFS_STLDBG)
+DEFS_STATIC_REL = $(DEFS) $(DEFS_STATIC_REL)
+DEFS_STATIC_DBG = $(DEFS) $(DEFS_STATIC_DBG)
+DEFS_STATIC_STLDBG = $(DEFS) $(DEFS_STATIC_STLDBG)
+!endif
+!ifdef OPT
+OPT_REL = $(OPT) $(OPT_REL)
+OPT_DBG = $(OPT) $(OPT_DBG)
+OPT_STLDBG = $(OPT) $(OPT_STLDBG)
+OPT_STATIC_REL = $(OPT) $(OPT_STATIC_REL)
+OPT_STATIC_DBG = $(OPT) $(OPT_STATIC_DBG)
+OPT_STATIC_STLDBG = $(OPT) $(OPT_STATIC_STLDBG)
+!endif
+
+OUTPUT_OPTION = /Fo$@ /Fd"$(PDB_NAME_OUT)"
+OUTPUT_OPTION_DBG = /Fo$@ /Fd"$(PDB_NAME_OUT_DBG)"
+OUTPUT_OPTION_STLDBG = /Fo$@ /Fd"$(PDB_NAME_OUT_STLDBG)"
+OUTPUT_OPTION_STATIC = /Fo$@ /Fd"$(A_PDB_NAME_OUT)"
+OUTPUT_OPTION_STATIC_DBG = /Fo$@ /Fd"$(A_PDB_NAME_OUT_DBG)"
+OUTPUT_OPTION_STATIC_STLDBG = /Fo$@ /Fd"$(A_PDB_NAME_OUT_STLDBG)"
+LINK_OUTPUT_OPTION = /OUT:$@
+RC_OUTPUT_OPTION = /fo $@
+RC_OUTPUT_OPTION_DBG = /fo $@
+RC_OUTPUT_OPTION_STLDBG = /fo $@
+
+DEFS_REL = $(DEFS_REL) $(DEFS_COMMON)
+DEFS_STATIC_REL = $(DEFS_STATIC_REL) $(DEFS_COMMON)
+DEFS_DBG = $(DEFS_DBG) $(DEFS_COMMON)
+DEFS_STATIC_DBG = $(DEFS_STATIC_DBG) $(DEFS_COMMON)
+DEFS_STLDBG = $(DEFS_STLDBG) $(DEFS_COMMON)
+DEFS_STATIC_STLDBG = $(DEFS_STATIC_STLDBG) $(DEFS_COMMON)
+CPPFLAGS_REL = $(DEFS_REL) $(INCLUDES)
+CPPFLAGS_STATIC_REL = $(DEFS_STATIC_REL) $(INCLUDES)
+CPPFLAGS_DBG = $(DEFS_DBG) $(INCLUDES)
+CPPFLAGS_STATIC_DBG = $(DEFS_STATIC_DBG) $(INCLUDES)
+CPPFLAGS_STLDBG = $(DEFS_STLDBG) $(INCLUDES)
+CPPFLAGS_STATIC_STLDBG = $(DEFS_STATIC_STLDBG) $(INCLUDES)
+
+COMPILE_c_REL = $(CC) $(CFLAGS_REL) $(CPPFLAGS_REL) $(TARGET_ARCH) /c
+COMPILE_c_STATIC_REL = $(CC) $(CFLAGS_STATIC_REL) $(CPPFLAGS_STATIC_REL) $(TARGET_ARCH) /c
+COMPILE_c_DBG = $(CC) $(CFLAGS_DBG) $(CPPFLAGS_DBG) $(TARGET_ARCH) /c
+COMPILE_c_STATIC_DBG = $(CC) $(CFLAGS_STATIC_DBG) $(CPPFLAGS_STATIC_DBG) $(TARGET_ARCH) /c
+COMPILE_c_STLDBG = $(CC) $(CFLAGS_STLDBG) $(CPPFLAGS_STLDBG) $(TARGET_ARCH) /c
+COMPILE_c_STATIC_STLDBG = $(CC) $(CFLAGS_STATIC_STLDBG) $(CPPFLAGS_STATIC_STLDBG) $(TARGET_ARCH) /c
+COMPILE_cc_REL = $(CXX) $(CXXFLAGS_REL) $(CPPFLAGS_REL) $(TARGET_ARCH) /c
+COMPILE_cc_STATIC_REL = $(CXX) $(CXXFLAGS_STATIC_REL) $(CPPFLAGS_STATIC_REL) $(TARGET_ARCH) /c
+COMPILE_cc_DBG = $(CXX) $(CXXFLAGS_DBG) $(CPPFLAGS_DBG) $(TARGET_ARCH) /c
+COMPILE_cc_STATIC_DBG = $(CXX) $(CXXFLAGS_STATIC_DBG) $(CPPFLAGS_STATIC_DBG) $(TARGET_ARCH) /c
+COMPILE_cc_STLDBG = $(CXX) $(CXXFLAGS_STLDBG) $(CPPFLAGS_STLDBG) $(TARGET_ARCH) /c
+COMPILE_cc_STATIC_STLDBG = $(CXX) $(CXXFLAGS_STATIC_STLDBG) $(CPPFLAGS_STATIC_STLDBG) $(TARGET_ARCH) /c
+COMPILE_rc_REL = $(RC) $(RC_FLAGS_REL) /D "BUILD_INFOS=$(CPPFLAGS_REL)"
+COMPILE_rc_STATIC_REL = $(RC) $(RC_FLAGS_REL) /D "BUILD_INFOS=$(CPPFLAGS_STATIC_REL)"
+COMPILE_rc_DBG = $(RC) $(RC_FLAGS_DBG) /DBUILD=d /D "BUILD_INFOS=$(CPPFLAGS_DBG)"
+COMPILE_rc_STATIC_DBG = $(RC) $(RC_FLAGS_DBG) /DBUILD=d /D "BUILD_INFOS=$(CPPFLAGS_STATIC_DBG)"
+COMPILE_rc_STLDBG = $(RC) $(RC_FLAGS_STLDBG) /DBUILD=stld /D "BUILD_INFOS=$(CPPFLAGS_STLDBG) /D_STLP_DEBUG"
+COMPILE_rc_STATIC_STLDBG = $(RC) $(RC_FLAGS_STLDBG) /DBUILD=stld /D "BUILD_INFOS=$(CPPFLAGS_STATIC_STLDBG) /D_STLP_DEBUG"
+LINK_cc_REL = $(LINK) /nologo /incremental:no /debug /pdb:"$(PDB_NAME_OUT)" $(LDFLAGS_REL)
+LINK_cc_DBG = $(LINK) /nologo /incremental:no /debug /pdb:"$(PDB_NAME_OUT_DBG)" $(LDFLAGS_DBG)
+LINK_cc_STLDBG = $(LINK) /nologo /incremental:no /debug /pdb:"$(PDB_NAME_OUT_STLDBG)" $(LDFLAGS_STLDBG)
+LINK_cc_A_REL = $(LINK) /nologo /incremental:no /debug /pdb:"$(A_PDB_NAME_OUT)" $(LDFLAGS_REL)
+LINK_cc_A_DBG = $(LINK) /nologo /incremental:no /debug /pdb:"$(A_PDB_NAME_OUT_DBG)" $(LDFLAGS_DBG)
+LINK_cc_A_STLDBG = $(LINK) /nologo /incremental:no /debug /pdb:"$(A_PDB_NAME_OUT_STLDBG)" $(LDFLAGS_STLDBG)
+
+CDEPFLAGS = /FD /E
+CCDEPFLAGS = /FD /E
+
+# STLport DEBUG mode specific defines
+DEFS_STLDBG = $(DEFS_STLDBG) /D_DEBUG /D_STLP_DEBUG /DDEBUG
+DEFS_DBG = $(DEFS_DBG) /D_DEBUG /DDEBUG
+DEFS_REL = $(DEFS_REL) /DNDEBUG
+DEFS_STATIC_STLDBG = $(DEFS_STATIC_STLDBG) /D_DEBUG /D_STLP_DEBUG /DDEBUG /D_STLP_NO_FORCE_INSTANTIATE
+DEFS_STATIC_DBG = $(DEFS_STATIC_DBG) /D_DEBUG /DDEBUG /D_STLP_NO_FORCE_INSTANTIATE
+DEFS_STATIC_REL = $(DEFS_STATIC_REL) /DNDEBUG /D_STLP_NO_FORCE_INSTANTIATE
+
+# optimization and debug compiler flags
+OPT_REL = $(OPT_REL) /Zi /O2 $(OPT_COMMON)
+OPT_DBG = $(OPT_DBG) /Zi /Od $(OPT_COMMON)
+OPT_STLDBG = $(OPT_STLDBG) /Zi /Od $(OPT_COMMON)
+OPT_STATIC_REL = $(OPT_STATIC_REL) /Zi /O2 $(OPT_COMMON)
+OPT_STATIC_DBG = $(OPT_STATIC_DBG) /Zi /Od $(OPT_COMMON)
+OPT_STATIC_STLDBG = $(OPT_STATIC_STLDBG) /Zi /Od $(OPT_COMMON)
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/evc3.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/evc3.mak
new file mode 100644
index 00000000000..0db8b383545
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/evc3.mak
@@ -0,0 +1,83 @@
+# Time-stamp: <04/04/30 23:36:48 ptr>
+# $Id$
+
+!if "$(TARGET_PROC)" == ""
+!error No target processor configured! Please rerun configure.bat!
+!endif
+
+!if "$(CC)" == ""
+!error CC not set, run the proper WCE*.bat from this shell to set it!
+!endif
+
+# All the batchfiles to setup the environment yield different
+# compilers which they put into CC.
+CXX = $(CC)
+
+DEFS_COMMON = $(DEFS_COMMON) /D _WIN32_WCE=$(CEVERSION) /D UNDER_CE=$(CEVERSION) /D "UNICODE"
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) coredll.lib corelibc.lib /nodefaultlib:LIBC.lib /nodefaultlib:"oldnames.lib"
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /stack:0x10000,0x1000 /subsystem:WINDOWSCE /align:"4096"
+
+# increase compiler memory in order to compile deeply nested template code
+OPT_STLDBG = $(OPT_STLDBG) /Zm800
+OPT_STATIC_STLDBG = $(OPT_STATIC_STLDBG) /Zm800
+
+# activate global (whole program) optimizations
+OPT_REL = $(OPT_REL) /Og
+OPT_STATIC_REL = $(OPT_STATIC_REL) /Og
+
+# ARM specific settings
+!if "$(TARGET_PROC)" == "arm"
+DEFS_COMMON = $(DEFS_COMMON) /D "ARM" /D "_ARM_"
+OPT_COMMON = $(OPT_COMMON)
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /MACHINE:ARM
+!endif
+
+# x86 specific settings
+!if "$(TARGET_PROC)" == "x86"
+DEFS_COMMON = $(DEFS_COMMON) /D "x86" /D "_X86_"
+OPT_COMMON = $(OPT_COMMON)
+!if "$(TARGET_PROC_SUBTYPE)" == "emulator"
+DEFS_COMMON = $(DEFS_COMMON) /D "_STLP_WCE_TARGET_PROC_SUBTYPE_EMULATOR"
+!endif
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /MACHINE:X86 $(CEx86Corelibc)
+!endif
+
+# MIPS specific settings
+!if "$(TARGET_PROC)" == "mips"
+DEFS_COMMON = $(DEFS_COMMON) /D "_MIPS_" /D "MIPS" /D "$(TARGET_PROC_SUBTYPE)"
+OPT_COMMON = $(OPT_COMMON)
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /MACHINE:MIPS
+!endif
+
+# SH3 specific settings
+!if "$(TARGET_PROC)" == "sh3"
+DEFS_COMMON = $(DEFS_COMMON) /D "SH3" /D "_SH3_" /D "SHx"
+OPT_COMMON = $(OPT_COMMON)
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /MACHINE:SH3
+!endif
+
+# SH4 specific settings
+!if "$(TARGET_PROC)" == "sh4"
+DEFS_COMMON = $(DEFS_COMMON) /D "SH4" /D "_SH4_" /D "SHx"
+OPT_COMMON = $(OPT_COMMON) /Qsh4
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /MACHINE:SH4
+!endif
+
+
+# without exceptions
+CFLAGS_COMMON = /nologo /TC /W4 /GF
+CFLAGS_REL = $(CFLAGS_COMMON) $(OPT_REL)
+CFLAGS_STATIC_REL = $(CFLAGS_COMMON) $(OPT_STATIC_REL)
+CFLAGS_DBG = $(CFLAGS_COMMON) $(OPT_DBG)
+CFLAGS_STATIC_DBG = $(CFLAGS_COMMON) $(OPT_STATIC_DBG)
+CFLAGS_STLDBG = $(CFLAGS_COMMON) $(OPT_STLDBG)
+CFLAGS_STATIC_STLDBG = $(CFLAGS_COMMON) $(OPT_STATIC_STLDBG)
+CXXFLAGS_COMMON = /nologo /TP /W4 /GF
+CXXFLAGS_REL = $(CXXFLAGS_COMMON) $(OPT_REL)
+CXXFLAGS_STATIC_REL = $(CXXFLAGS_COMMON) $(OPT_STATIC_REL)
+CXXFLAGS_DBG = $(CXXFLAGS_COMMON) $(OPT_DBG)
+CXXFLAGS_STATIC_DBG = $(CXXFLAGS_COMMON) $(OPT_STATIC_DBG)
+CXXFLAGS_STLDBG = $(CXXFLAGS_COMMON) $(OPT_STLDBG)
+CXXFLAGS_STATIC_STLDBG = $(CXXFLAGS_COMMON) $(OPT_STATIC_STLDBG)
+
+!include evc-common.mak
\ No newline at end of file
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/evc4.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/evc4.mak
new file mode 100644
index 00000000000..582f65131fa
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/evc4.mak
@@ -0,0 +1,116 @@
+# Time-stamp: <04/03/31 07:55:19 ptr>
+# $Id$
+
+!if "$(TARGET_PROC)" == ""
+!error No target processor configured! Please rerun configure.bat!
+!endif
+
+!if "$(CC)" == ""
+!error CC not set, run the proper WCE*.bat from this shell to set it!
+!endif
+
+# All the batchfiles to setup the environment yield different
+# compilers which they put into CC.
+CXX = $(CC)
+
+DEFS_COMMON = $(DEFS_COMMON) /D _WIN32_WCE=$(CEVERSION) /D UNDER_CE=$(CEVERSION) /D "UNICODE"
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) coredll.lib corelibc.lib /nodefaultlib:LIBC.lib /nodefaultlib:OLDNAMES.lib
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /stack:0x10000,0x1000 /subsystem:WINDOWSCE /align:"4096"
+
+# increase compiler memory in order to compile deeply nested template code
+OPT_STLDBG = $(OPT_STLDBG) /Zm800
+OPT_STATIC_STLDBG = $(OPT_STATIC_STLDBG) /Zm800
+
+# activate global (whole program) optimizations
+OPT_REL = $(OPT_REL) /Og
+OPT_STATIC_REL = $(OPT_STATIC_REL) /Og
+
+# ARM specific settings
+!if "$(TARGET_PROC)" == "arm"
+DEFS_COMMON = $(DEFS_COMMON) /D "ARM" /D "_ARM_" /D "ARMV4"
+OPT_STATIC_STLDBG = $(OPT_STATIC_STLDBG) /Zm800
+OPT_COMMON = $(OPT_COMMON)
+# TODO: eVC4 IDE uses ARM for ARMV4 and THUMB for ARMV4I and ARMV4T
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /MACHINE:ARM
+# RTTI patch for PPC2003 SDK
+!if "$(PLATFORM)" == "POCKET PC 2003"
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) ccrtrtti.lib
+!endif
+!endif
+
+# x86 specific settings
+!if "$(TARGET_PROC)" == "x86"
+DEFS_COMMON = $(DEFS_COMMON) /D "x86" /D "_X86_" /D "_i386_"
+OPT_COMMON = $(OPT_COMMON) /Gs8192
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) $(CEx86Corelibc) /MACHINE:X86
+!if "$(TARGET_PROC_SUBTYPE)" == "emulator"
+DEFS_COMMON = $(DEFS_COMMON) /D "_STLP_WCE_TARGET_PROC_SUBTYPE_EMULATOR"
+!endif
+!if "$(PLATFORM)" == "POCKET PC 2003"
+# RTTI patch for PPC2003 SDK
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) ccrtrtti.lib
+!endif
+!endif
+
+# MIPS specific settings
+!if "$(TARGET_PROC)" == "mips"
+DEFS_COMMON = $(DEFS_COMMON) /D "_MIPS_" /D "MIPS" /D "$(TARGET_PROC_SUBTYPE)"
+OPT_COMMON = $(OPT_COMMON)
+
+# Note: one might think that MIPSII_FP and MIPSIV_FP should use /MACHINE:MIPSFPU
+# while MIPSII and MIPSIV should use /MACHINE:MIPS, but this is exactly how the
+# eVC4 IDE does it.
+!if "$(TARGET_PROC_SUBTYPE)" == ""
+!error "MIPS subtype not set"
+!elseif "$(TARGET_PROC_SUBTYPE)" == "MIPS16"
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /MACHINE:MIPS
+!elseif "$(TARGET_PROC_SUBTYPE)" == "MIPSII"
+OPT_COMMON = $(OPT_COMMON) /QMmips2 /QMFPE
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /MACHINE:MIPS
+!elseif "$(TARGET_PROC_SUBTYPE)" == "MIPSII_FP"
+OPT_COMMON = $(OPT_COMMON) /QMmips2 /QMFPE-
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /MACHINE:MIPS
+!elseif "$(TARGET_PROC_SUBTYPE)" == "MIPSIV"
+OPT_COMMON = $(OPT_COMMON) /QMmips4 /QMn32 /QMFPE
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /MACHINE:MIPSFPU
+!elseif "$(TARGET_PROC_SUBTYPE)" == "MIPSIV_FP"
+OPT_COMMON = $(OPT_COMMON) /QMmips4 /QMn32 /QMFPE-
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /MACHINE:MIPSFPU
+!else
+!error "unknown MIPS subtype"
+!endif
+
+!endif
+
+# SH3 specific settings
+!if "$(TARGET_PROC)" == "sh3"
+DEFS_COMMON = $(DEFS_COMMON) /D "SH3" /D "_SH3_" /D "SHx"
+OPT_COMMON = $(OPT_COMMON)
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /MACHINE:SH3
+!endif
+
+# SH4 specific settings
+!if "$(TARGET_PROC)" == "sh4"
+DEFS_COMMON = $(DEFS_COMMON) /D "SH4" /D "_SH4_" /D "SHx"
+OPT_COMMON = $(OPT_COMMON) /Qsh4
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /MACHINE:SH4
+!endif
+
+
+# exception handling support
+CFLAGS_COMMON = /nologo /TC /W4 /GF /GR /GX
+CFLAGS_REL = $(CFLAGS_COMMON) $(OPT_REL)
+CFLAGS_STATIC_REL = $(CFLAGS_COMMON) $(OPT_STATIC_REL)
+CFLAGS_DBG = $(CFLAGS_COMMON) $(OPT_DBG)
+CFLAGS_STATIC_DBG = $(CFLAGS_COMMON) $(OPT_STATIC_DBG)
+CFLAGS_STLDBG = $(CFLAGS_COMMON) $(OPT_STLDBG)
+CFLAGS_STATIC_STLDBG = $(CFLAGS_COMMON) $(OPT_STATIC_STLDBG)
+CXXFLAGS_COMMON = /nologo /TP /W4 /GF /GR /GX
+CXXFLAGS_REL = $(CXXFLAGS_COMMON) $(OPT_REL)
+CXXFLAGS_STATIC_REL = $(CXXFLAGS_COMMON) $(OPT_STATIC_REL)
+CXXFLAGS_DBG = $(CXXFLAGS_COMMON) $(OPT_DBG)
+CXXFLAGS_STATIC_DBG = $(CXXFLAGS_COMMON) $(OPT_STATIC_DBG)
+CXXFLAGS_STLDBG = $(CXXFLAGS_COMMON) $(OPT_STLDBG)
+CXXFLAGS_STATIC_STLDBG = $(CXXFLAGS_COMMON) $(OPT_STATIC_STLDBG)
+
+!include evc-common.mak
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/evc8.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/evc8.mak
new file mode 100644
index 00000000000..195169065a4
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/evc8.mak
@@ -0,0 +1,102 @@
+# build/Makefiles/nmake/evc8.mak
+
+# Note: _WIN32_WCE is defined as 420 for CE 4.2 but as 0x500 for CE 5.0!
+DEFS_COMMON = $(DEFS_COMMON) /D _WIN32_WCE=0x$(CEVERSION) /D UNDER_CE=1 /D "UNICODE"
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) coredll.lib corelibc.lib /nodefaultlib:LIBC.lib /nodefaultlib:OLDNAMES.lib
+!if "$(PLATFORM)" == "POCKET PC 2003"
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /subsystem:windowsce,4.20
+!else
+# TODO: the subsystem settings will have to be adjusted for CE5.01...
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /subsystem:windowsce,5.00
+!endif
+
+!if "$(TARGET_PROC)" == ""
+!error No target processor configured! Please rerun configure.bat!
+!endif
+
+!if "$(CC)" == ""
+CC=cl.exe
+!endif
+
+CXX = $(CC)
+
+# activate global optimisations (aka Link Time Code Generation)
+OPT_REL = $(OPT_REL) /GL
+LDFLAGS_REL = $(LDFLAGS_REL) /LTCG
+
+
+# make the compiler display absolute paths in diagnostics
+# While this is not necessary for STLport in any way, it is convenient when using
+# the VC8 IDE for building things because then you can click on diagnostics in
+# order to warp to the exact place in the code.
+OPT_COMMON = $(OPT_COMMON) /FC
+
+
+# ARM specific settings
+!if "$(TARGET_PROC)" == "arm"
+DEFS_COMMON = $(DEFS_COMMON) /D "ARM" /D "_ARM_" /D "$(TARGET_PROC_SUBTYPE)"
+OPT_COMMON = $(OPT_COMMON)
+!if "$(PLATFORM)" == "POCKET PC 2003"
+DEFS_COMMON = $(DEFS_COMMON) /DWIN32_PLATFORM_PSPC
+# Pocket PC 2003 doesn't support THUMB.
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) ccrtrtti.lib secchk.lib /machine:ARM
+!endif
+!endif
+
+# x86 specific settings
+!if "$(TARGET_PROC)" == "x86"
+DEFS_COMMON = $(DEFS_COMMON) /D "x86" /D "_X86_"
+OPT_COMMON = $(OPT_COMMON)
+!endif
+
+# MIPS specific settings
+!if "$(TARGET_PROC)" == "mips"
+DEFS_COMMON = $(DEFS_COMMON) /D "MIPS" /D "_MIPS_" /D "$(TARGET_PROC_SUBTYPE)"
+!if "$(TARGET_PROC_SUBTYPE)" == ""
+!error "MIPS subtype not set"
+!elseif "$(TARGET_PROC_SUBTYPE)" == "MIPSII"
+OPT_COMMON = $(OPT_COMMON) /QMmips2
+!else
+!error "unknown MIPS subtype"
+!endif
+!endif
+
+# SH4 specific settings
+!if "$(TARGET_PROC)" == "sh4"
+DEFS_COMMON = $(DEFS_COMMON) /D "SHx" /D "_SHX_" /D "SH4"
+OPT_COMMON = $(OPT_COMMON)
+!endif
+
+
+# Note: /GX for MSC<14 has been replaced with /EHsc
+CFLAGS_COMMON = /nologo /TC /W4 /GF /GR /EHsc
+CFLAGS_REL = $(CFLAGS_COMMON) $(OPT_REL)
+CFLAGS_STATIC_REL = $(CFLAGS_COMMON) $(OPT_STATIC_REL)
+CFLAGS_DBG = $(CFLAGS_COMMON) $(OPT_DBG)
+CFLAGS_STATIC_DBG = $(CFLAGS_COMMON) $(OPT_STATIC_DBG)
+CFLAGS_STLDBG = $(CFLAGS_COMMON) $(OPT_STLDBG)
+CFLAGS_STATIC_STLDBG = $(CFLAGS_COMMON) $(OPT_STATIC_STLDBG)
+CXXFLAGS_COMMON = /nologo /TP /W4 /GF /GR /EHsc
+CXXFLAGS_REL = $(CXXFLAGS_COMMON) $(OPT_REL)
+CXXFLAGS_STATIC_REL = $(CXXFLAGS_COMMON) $(OPT_STATIC_REL)
+CXXFLAGS_DBG = $(CXXFLAGS_COMMON) $(OPT_DBG)
+CXXFLAGS_STATIC_DBG = $(CXXFLAGS_COMMON) $(OPT_STATIC_DBG)
+CXXFLAGS_STLDBG = $(CXXFLAGS_COMMON) $(OPT_STLDBG)
+CXXFLAGS_STATIC_STLDBG = $(CXXFLAGS_COMMON) $(OPT_STATIC_STLDBG)
+
+# setup proper runtime (static/dynamic, debug/release)
+!ifdef WITH_STATIC_RTL
+OPT_DBG = $(OPT_DBG) /MTd
+OPT_STLDBG = $(OPT_STLDBG) /MTd
+OPT_REL = $(OPT_REL) /MT
+DEFS_REL = $(DEFS_REL) /D_STLP_USE_DYNAMIC_LIB
+DEFS_DBG = $(DEFS_DBG) /D_STLP_USE_DYNAMIC_LIB
+DEFS_STLDBG = $(DEFS_STLDBG) /D_STLP_USE_DYNAMIC_LIB
+!else
+OPT_DBG = $(OPT_DBG) /MDd
+OPT_STLDBG = $(OPT_STLDBG) /MDd
+OPT_REL = $(OPT_REL) /MD
+!endif
+
+
+!include evc-common.mak
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/evc9.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/evc9.mak
new file mode 100644
index 00000000000..a6dbfba1600
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/evc9.mak
@@ -0,0 +1,102 @@
+# build/Makefiles/nmake/evc9.mak
+
+# Note: _WIN32_WCE is defined as 420 for CE 4.2 but as 0x500 for CE 5.0!
+DEFS_COMMON = $(DEFS_COMMON) /D _WIN32_WCE=0x$(CEVERSION) /D UNDER_CE=1 /D "UNICODE"
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) coredll.lib corelibc.lib /nodefaultlib:LIBC.lib /nodefaultlib:OLDNAMES.lib
+!if "$(PLATFORM)" == "POCKET PC 2003"
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /subsystem:windowsce,4.20
+!else
+# TODO: the subsystem settings will have to be adjusted for CE5.01...
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /subsystem:windowsce,5.00
+!endif
+
+!if "$(TARGET_PROC)" == ""
+!error No target processor configured! Please rerun configure.bat!
+!endif
+
+!if "$(CC)" == ""
+CC=cl.exe
+!endif
+
+CXX = $(CC)
+
+# activate global optimisations (aka Link Time Code Generation)
+OPT_REL = $(OPT_REL) /GL
+LDFLAGS_REL = $(LDFLAGS_REL) /LTCG
+
+
+# make the compiler display absolute paths in diagnostics
+# While this is not necessary for STLport in any way, it is convenient when using
+# the VC8 IDE for building things because then you can click on diagnostics in
+# order to warp to the exact place in the code.
+OPT_COMMON = $(OPT_COMMON) /FC
+
+
+# ARM specific settings
+!if "$(TARGET_PROC)" == "arm"
+DEFS_COMMON = $(DEFS_COMMON) /D "ARM" /D "_ARM_" /D "$(TARGET_PROC_SUBTYPE)"
+OPT_COMMON = $(OPT_COMMON)
+!if "$(PLATFORM)" == "POCKET PC 2003"
+DEFS_COMMON = $(DEFS_COMMON) /DWIN32_PLATFORM_PSPC
+# Pocket PC 2003 doesn't support THUMB.
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) ccrtrtti.lib secchk.lib /machine:ARM
+!endif
+!endif
+
+# x86 specific settings
+!if "$(TARGET_PROC)" == "x86"
+DEFS_COMMON = $(DEFS_COMMON) /D "x86" /D "_X86_"
+OPT_COMMON = $(OPT_COMMON)
+!endif
+
+# MIPS specific settings
+!if "$(TARGET_PROC)" == "mips"
+DEFS_COMMON = $(DEFS_COMMON) /D "MIPS" /D "_MIPS_" /D "$(TARGET_PROC_SUBTYPE)"
+!if "$(TARGET_PROC_SUBTYPE)" == ""
+!error "MIPS subtype not set"
+!elseif "$(TARGET_PROC_SUBTYPE)" == "MIPSII"
+OPT_COMMON = $(OPT_COMMON) /QMmips2
+!else
+!error "unknown MIPS subtype"
+!endif
+!endif
+
+# SH4 specific settings
+!if "$(TARGET_PROC)" == "sh4"
+DEFS_COMMON = $(DEFS_COMMON) /D "SHx" /D "_SHX_" /D "SH4"
+OPT_COMMON = $(OPT_COMMON)
+!endif
+
+
+# Note: /GX for MSC<14 has been replaced with /EHsc
+CFLAGS_COMMON = /nologo /TC /WX /GF /GR /EHsc
+CFLAGS_REL = $(CFLAGS_COMMON) $(OPT_REL)
+CFLAGS_STATIC_REL = $(CFLAGS_COMMON) $(OPT_STATIC_REL)
+CFLAGS_DBG = $(CFLAGS_COMMON) $(OPT_DBG)
+CFLAGS_STATIC_DBG = $(CFLAGS_COMMON) $(OPT_STATIC_DBG)
+CFLAGS_STLDBG = $(CFLAGS_COMMON) $(OPT_STLDBG)
+CFLAGS_STATIC_STLDBG = $(CFLAGS_COMMON) $(OPT_STATIC_STLDBG)
+CXXFLAGS_COMMON = /nologo /TP /WX /GF /GR /EHsc
+CXXFLAGS_REL = $(CXXFLAGS_COMMON) $(OPT_REL)
+CXXFLAGS_STATIC_REL = $(CXXFLAGS_COMMON) $(OPT_STATIC_REL)
+CXXFLAGS_DBG = $(CXXFLAGS_COMMON) $(OPT_DBG)
+CXXFLAGS_STATIC_DBG = $(CXXFLAGS_COMMON) $(OPT_STATIC_DBG)
+CXXFLAGS_STLDBG = $(CXXFLAGS_COMMON) $(OPT_STLDBG)
+CXXFLAGS_STATIC_STLDBG = $(CXXFLAGS_COMMON) $(OPT_STATIC_STLDBG)
+
+# setup proper runtime (static/dynamic, debug/release)
+!ifdef WITH_STATIC_RTL
+OPT_DBG = $(OPT_DBG) /MTd
+OPT_STLDBG = $(OPT_STLDBG) /MTd
+OPT_REL = $(OPT_REL) /MT
+DEFS_REL = $(DEFS_REL) /D_STLP_USE_DYNAMIC_LIB
+DEFS_DBG = $(DEFS_DBG) /D_STLP_USE_DYNAMIC_LIB
+DEFS_STLDBG = $(DEFS_STLDBG) /D_STLP_USE_DYNAMIC_LIB
+!else
+OPT_DBG = $(OPT_DBG) /MDd
+OPT_STLDBG = $(OPT_STLDBG) /MDd
+OPT_REL = $(OPT_REL) /MD
+!endif
+
+
+!include evc-common.mak
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/extern.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/extern.mak
new file mode 100644
index 00000000000..c56816d4252
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/extern.mak
@@ -0,0 +1,91 @@
+# Time-stamp: <03/09/28 13:44:57 ptr>
+# $Id$
+
+#!ifndef MSVC_LIB_DIR
+#MSVC_LIB_DIR = $(MSVC_DIR)\Lib
+#!endif
+
+!ifndef SOAP_DIR
+SOAP_DIR = /opt/gSOAP-2.2.3
+!endif
+!ifndef BOOST_DIR
+BOOST_DIR = $(SRCROOT)/../extern/boost
+!endif
+!ifndef STLPORT_DIR
+STLPORT_DIR = ../../stlport
+!endif
+!ifndef CoMT_DIR
+CoMT_DIR = $(SRCROOT)
+!endif
+
+# This is Complement project (really not extern):
+
+!ifndef CoMT_LIB_DIR
+CoMT_LIB_DIR = $(INSTALL_LIB_DIR)
+!endif
+!ifndef CoMT_LIB_DIR_DBG
+CoMT_LIB_DIR_DBG = $(INSTALL_LIB_DIR_DBG)
+!endif
+!ifndef CoMT_LIB_DIR_STLDBG
+CoMT_LIB_DIR_STLDBG = $(INSTALL_LIB_DIR_STLDBG)
+!endif
+!ifndef CoMT_BIN_DIR
+CoMT_BIN_DIR = $(INSTALL_BIN_DIR)
+!endif
+!ifndef CoMT_BIN_DIR_DBG
+CoMT_BIN_DIR_DBG = $(INSTALL_BIN_DIR_DBG)
+!endif
+!ifndef CoMT_BIN_DIR_STLDBG
+CoMT_BIN_DIR_STLDBG = $(INSTALL_BIN_DIR_STLDBG)
+!endif
+
+!ifndef CoMT_INCLUDE_DIR
+CoMT_INCLUDE_DIR = $(CoMT_DIR)/include
+!endif
+
+# This file reflect versions of third-party libraries that
+# used in projects
+
+# STLport library
+!ifndef STLPORT_LIB_DIR
+!ifdef CROSS_COMPILING
+STLPORT_LIB_DIR = $(STLPORT_DIR)\lib\$(TARGET_NAME)
+!else
+STLPORT_LIB_DIR = $(STLPORT_DIR)\lib
+!endif
+!endif
+!ifndef STLPORT_INCLUDE_DIR
+STLPORT_INCLUDE_DIR = $(STLPORT_DIR)/stlport
+!endif
+!ifndef STLPORT_VER
+STLPORT_VER = 4.5.5
+!endif
+
+# PostgreSQL library version:
+
+#PG_INCLUDE ?= $(PG_DIR)/include
+#PG_LIB ?= $(PG_DIR)/lib
+#PG_LIB_VER_MAJOR = 2
+#PG_LIB_VER_MINOR = 1
+
+# Readline libraries version:
+
+#RL_INCLUDE ?= /usr/local/include/readline
+#RL_LIB ?= /usr/local/lib
+#RL_LIB_VER_MAJOR = 4
+#RL_LIB_VER_MINOR = 2
+
+# gSOAP (http://gsoap2.sourceforge.net)
+
+#gSOAP_INCLUDE_DIR ?= ${gSOAP_DIR}/include
+#gSOAP_LIB_DIR ?= ${gSOAP_DIR}/lib
+#gSOAP_BIN_DIR ?= ${gSOAP_DIR}/bin
+
+# boost (http://www.boost.org, http://boost.sourceforge.net)
+!ifdef STLP_BUILD_BOOST_PATH
+INCLUDES=$(INCLUDES) /I$(STLP_BUILD_BOOST_PATH)
+!endif
+
+# This file reflect versions of third-party libraries that
+# used in projects, with make-depend style
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/icl.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/icl.mak
new file mode 100644
index 00000000000..872ddef66a8
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/icl.mak
@@ -0,0 +1,10 @@
+
+CXX = icl
+CC = icl
+LINK = xilink
+
+CFLAGS_COMMON = /nologo /W4 /GR /GX
+CXXFLAGS_COMMON = /nologo /W4 /GR /GX
+
+!include $(RULESBASE)/$(USE_MAKE)/vc-common.mak
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/lib/clean.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/clean.mak
new file mode 100644
index 00000000000..2fecb4968e3
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/clean.mak
@@ -0,0 +1,62 @@
+# -*- makefile -*- Time-stamp: <03/10/26 16:17:03 ptr>
+# $Id$
+
+clobber: clean
+ @if exist $(SO_NAME_OUT) del /F /Q $(SO_NAME_OUT)
+ @if exist $(LIB_NAME_OUT) del /F /Q $(LIB_NAME_OUT)
+ @if exist $(EXP_NAME_OUT) del /F /Q $(EXP_NAME_OUT)
+ @if exist $(PDB_NAME_OUT) del /F /Q $(PDB_NAME_OUT)
+ @if exist $(RES_NAME_OUT) del /F /Q $(RES_NAME_OUT)
+ @if exist $(MANIFEST_NAME_OUT) del /F /Q $(MANIFEST_NAME_OUT)
+ @if exist $(A_NAME_OUT) del /F /Q $(A_NAME_OUT)
+ @if exist $(A_PDB_NAME_OUT) del /F /Q $(A_PDB_NAME_OUT)
+ @if exist $(SO_NAME_OUT_DBG) del /F /Q $(SO_NAME_OUT_DBG)
+ @if exist $(LIB_NAME_OUT_DBG) del /F /Q $(LIB_NAME_OUT_DBG)
+ @if exist $(EXP_NAME_OUT_DBG) del /F /Q $(EXP_NAME_OUT_DBG)
+ @if exist $(PDB_NAME_OUT_DBG) del /F /Q $(PDB_NAME_OUT_DBG)
+ @if exist $(RES_NAME_OUT_DBG) del /F /Q $(RES_NAME_OUT_DBG)
+ @if exist $(MANIFEST_NAME_OUT_DBG) del /F /Q $(MANIFEST_NAME_OUT_DBG)
+ @if exist $(A_NAME_OUT_DBG) del /F /Q $(A_NAME_OUT_DBG)
+ @if exist $(A_PDB_NAME_OUT_DBG) del /F /Q $(A_PDB_NAME_OUT_DBG)
+ @if exist $(SO_NAME_OUT_STLDBG) del /F /Q $(SO_NAME_OUT_STLDBG)
+ @if exist $(LIB_NAME_OUT_STLDBG) del /F /Q $(LIB_NAME_OUT_STLDBG)
+ @if exist $(EXP_NAME_OUT_STLDBG) del /F /Q $(EXP_NAME_OUT_STLDBG)
+ @if exist $(PDB_NAME_OUT_STLDBG) del /F /Q $(PDB_NAME_OUT_STLDBG)
+ @if exist $(RES_NAME_OUT_STLDBG) del /F /Q $(RES_NAME_OUT_STLDBG)
+ @if exist $(MANIFEST_NAME_OUT_STLDBG) del /F /Q $(MANIFEST_NAME_OUT_STLDBG)
+ @if exist $(A_NAME_OUT_STLDBG) del /F /Q $(A_NAME_OUT_STLDBG)
+ @if exist $(A_PDB_NAME_OUT_STLDBG) del /F /Q $(A_PDB_NAME_OUT_STLDBG)
+ @-if exist $(OUTPUT_DIR) rd $(OUTPUT_DIR)
+ @-if exist $(OUTPUT_DIR_DBG) rd $(OUTPUT_DIR_DBG)
+ @-if exist $(OUTPUT_DIR_STLDBG) rd $(OUTPUT_DIR_STLDBG)
+ @-if exist $(OUTPUT_DIR_A) rd $(OUTPUT_DIR_A)
+ @-if exist $(OUTPUT_DIR_A_DBG) rd $(OUTPUT_DIR_A_DBG)
+ @-if exist $(OUTPUT_DIR_A_STLDBG) rd $(OUTPUT_DIR_A_STLDBG)
+ @-if exist $(OUTPUT_TARGET_DIR) rd $(OUTPUT_TARGET_DIR)
+ @-if exist $(OUTPUT_ROOT_DIR) rd $(OUTPUT_ROOT_DIR)
+
+distclean: clobber
+ @if exist $(INSTALL_BIN_DIR)\$(SO_NAME) del /F /Q $(INSTALL_BIN_DIR)\$(SO_NAME)
+ @if exist $(INSTALL_BIN_DIR)\$(PDB_NAME) del /F /Q $(INSTALL_BIN_DIR)\$(PDB_NAME)
+ @if exist $(INSTALL_LIB_DIR)\$(LIB_NAME)del /F /Q $(INSTALL_LIB_DIR)\$(LIB_NAME)
+ @if exist $(INSTALL_LIB_DIR)\$(EXP_NAME) del /F /Q $(INSTALL_LIB_DIR)\$(EXP_NAME)
+ @if exist $(INSTALL_BIN_DIR_DBG)\$(SO_NAME_DBG) del /F /Q $(INSTALL_BIN_DIR_DBG)\$(SO_NAME_DBG)
+ @if exist $(INSTALL_BIN_DIR_DBG)\$(PDB_NAME_DBG) del /F /Q $(INSTALL_BIN_DIR_DBG)\$(PDB_NAME_DBG)
+ @if exist $(INSTALL_LIB_DIR_DBG)\$(LIB_NAME_DBG) del /F /Q $(INSTALL_LIB_DIR_DBG)\$(LIB_NAME_DBG)
+ @if exist $(INSTALL_LIB_DIR_DBG)\$(EXP_NAME_DBG) del /F /Q $(INSTALL_LIB_DIR_DBG)\$(EXP_NAME_DBG)
+ @if exist $(INSTALL_BIN_DIR_STLDBG)\$(SO_NAME_STLDBG) del /F /Q $(INSTALL_BIN_DIR_STLDBG)\$(SO_NAME_STLDBG)
+ @if exist $(INSTALL_BIN_DIR_STLDBG)\$(PDB_NAME_STLDBG) del /F /Q $(INSTALL_BIN_DIR_STLDBG)\$(PDB_NAME_STLDBG)
+ @if exist $(INSTALL_LIB_DIR_STLDBG)\$(LIB_NAME_STLDBG) del /F /Q $(INSTALL_LIB_DIR_STLDBG)\$(LIB_NAME_STLDBG)
+ @if exist $(INSTALL_LIB_DIR_STLDBG)\$(EXP_NAME_STLDBG) del /F /Q $(INSTALL_LIB_DIR_STLDBG)\$(EXP_NAME_STLDBG)
+ @if exist $(INSTALL_STATIC_LIB_DIR)\$(A_NAME) del /F /Q $(INSTALL_STATIC_LIB_DIR)\$(A_NAME)
+ @if exist $(INSTALL_STATIC_LIB_DIR)\$(A_PDB_NAME) del /F /Q $(INSTALL_STATIC_LIB_DIR)\$(A_PDB_NAME)
+ @if exist $(INSTALL_STATIC_LIB_DIR_DBG)\$(A_NAME_DBG) del /F /Q $(INSTALL_STATIC_LIB_DIR_DBG)\$(A_NAME_DBG)
+ @if exist $(INSTALL_STATIC_LIB_DIR_DBG)\$(A_PDB_NAME_DBG) del /F /Q $(INSTALL_STATIC_LIB_DIR_DBG)\$(A_PDB_NAME_DBG)
+ @if exist $(INSTALL_STATIC_LIB_DIR_STLDBG)\$(A_NAME_STLDBG) del /F /Q $(INSTALL_STATIC_LIB_DIR_STLDBG)\$(A_NAME_STLDBG)
+ @if exist $(INSTALL_STATIC_LIB_DIR_STLDBG)\$(A_PDB_NAME_STLDBG) del /F /Q $(INSTALL_STATIC_LIB_DIR_STLDBG)\$(A_PDB_NAME_STLDBG)
+ @-if exist $(INSTALL_BIN_DIR) rd $(INSTALL_BIN_DIR)
+ @-if exist $(INSTALL_BIN_DIR_DBG) rd $(INSTALL_BIN_DIR_DBG)
+ @-if exist $(INSTALL_BIN_DIR_STLDBG) rd $(INSTALL_BIN_DIR_STLDBG)
+ @-if exist $(INSTALL_STATIC_LIB_DIR) rd $(INSTALL_STATIC_LIB_DIR)
+ @-if exist $(INSTALL_STATIC_LIB_DIR_DBG) rd $(INSTALL_STATIC_LIB_DIR_DBG)
+ @-if exist $(INSTALL_STATIC_LIB_DIR_STLDBG) rd $(INSTALL_STATIC_LIB_DIR_STLDBG)
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc-common.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc-common.mak
new file mode 100644
index 00000000000..8c2d04f1ee7
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc-common.mak
@@ -0,0 +1,12 @@
+# -*- makefile -*- Time-stamp: <04/05/01 00:34:42 ptr>
+# $Id$
+
+# defines missing in this file: LDFLAGS_COMMON
+
+!ifndef LDLIBS
+LDLIBS =
+!endif
+
+LDFLAGS_REL = $(LDFLAGS_REL) /DLL $(LDSEARCH) $(LDFLAGS_COMMON) /VERSION:$(MAJOR).$(MINOR)
+LDFLAGS_DBG = $(LDFLAGS_DBG) /DLL $(LDSEARCH) $(LDFLAGS_COMMON) /VERSION:$(MAJOR).$(MINOR)
+LDFLAGS_STLDBG = $(LDFLAGS_STLDBG) /DLL $(LDSEARCH) $(LDFLAGS_COMMON) /VERSION:$(MAJOR).$(MINOR)
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc3.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc3.mak
new file mode 100644
index 00000000000..45c996265cf
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc3.mak
@@ -0,0 +1,6 @@
+# -*- makefile -*- Time-stamp: <04/05/01 00:34:42 ptr>
+# $Id$
+
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /base:"0x00100000"
+
+!include evc-common.mak
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc4.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc4.mak
new file mode 100644
index 00000000000..e787945c20d
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc4.mak
@@ -0,0 +1,6 @@
+# -*- makefile -*- Time-stamp: <04/03/31 08:10:19 ptr>
+# $Id$
+
+LDFLAGS_COMMON = $(LDFLAGS_COMMON) /base:"0x00100000"
+
+!include evc-common.mak
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc8.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc8.mak
new file mode 100644
index 00000000000..ebed01f9b8f
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc8.mak
@@ -0,0 +1,3 @@
+# build/Makefiles/nmake/lib/evc8.mak
+
+!include evc-common.mak
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc9.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc9.mak
new file mode 100644
index 00000000000..ee76fac4305
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc9.mak
@@ -0,0 +1,3 @@
+# build/Makefiles/nmake/lib/evc9.mak
+
+!include evc-common.mak
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/lib/icl.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/icl.mak
new file mode 100644
index 00000000000..1374169f2cc
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/icl.mak
@@ -0,0 +1,5 @@
+# -*- makefile -*- Time-stamp: <03/10/17 14:09:57 ptr>
+# $Id$
+
+!include $(RULESBASE)/$(USE_MAKE)/lib/vc-common.mak
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/lib/macro.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/macro.mak
new file mode 100644
index 00000000000..3c290a633d4
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/macro.mak
@@ -0,0 +1,98 @@
+# -*- makefile -*- Time-stamp: <04/03/22 22:17:22 ptr>
+# $Id$
+
+DBG_SUFFIX = d
+STLDBG_SUFFIX = stl$(DBG_SUFFIX)
+
+# default prefix: none
+!ifndef LIB_NAME_PREFIX
+LIB_NAME_PREFIX =
+!endif
+
+!ifdef LIB_MOTIF
+LIB_NAME_SUFFIX = _$(LIB_MOTIF).$(MAJOR).$(MINOR)
+!else
+LIB_NAME_SUFFIX = .$(MAJOR).$(MINOR)
+!endif
+
+!ifdef WITH_STATIC_RTL
+LIB_TYPE = _x
+!else
+LIB_TYPE =
+!endif
+
+# Shared libraries:
+
+SO_NAME_BASE = $(LIB_NAME_PREFIX)$(LIBNAME)$(LIB_TYPE)$(LIB_NAME_SUFFIX)
+SO_NAME = $(SO_NAME_BASE).$(SO)
+LIB_NAME = $(SO_NAME_BASE).$(LIBEXT)
+EXP_NAME = $(SO_NAME_BASE).$(EXP)
+PDB_NAME = $(SO_NAME_BASE).pdb
+RES_NAME = $(LIBNAME).res
+MANIFEST_NAME = $(SO_NAME).manifest
+
+SO_NAME_OUT = $(OUTPUT_DIR)\$(SO_NAME)
+LIB_NAME_OUT = $(OUTPUT_DIR)\$(LIB_NAME)
+EXP_NAME_OUT = $(OUTPUT_DIR)\$(EXP_NAME)
+PDB_NAME_OUT = $(OUTPUT_DIR)\$(PDB_NAME)
+RES_NAME_OUT = $(OUTPUT_DIR)\$(RES_NAME)
+MANIFEST_NAME_OUT = $(OUTPUT_DIR)\$(MANIFEST_NAME)
+
+SO_NAME_DBG_BASE = $(LIB_NAME_PREFIX)$(LIBNAME)$(DBG_SUFFIX)$(LIB_TYPE)$(LIB_NAME_SUFFIX)
+SO_NAME_DBG = $(SO_NAME_DBG_BASE).$(SO)
+LIB_NAME_DBG = $(SO_NAME_DBG_BASE).$(LIBEXT)
+EXP_NAME_DBG = $(SO_NAME_DBG_BASE).$(EXP)
+PDB_NAME_DBG = $(SO_NAME_DBG_BASE).pdb
+MANIFEST_NAME_DBG = $(SO_NAME_DBG).manifest
+
+SO_NAME_OUT_DBG = $(OUTPUT_DIR_DBG)\$(SO_NAME_DBG)
+LIB_NAME_OUT_DBG = $(OUTPUT_DIR_DBG)\$(LIB_NAME_DBG)
+EXP_NAME_OUT_DBG = $(OUTPUT_DIR_DBG)\$(EXP_NAME_DBG)
+PDB_NAME_OUT_DBG = $(OUTPUT_DIR_DBG)\$(PDB_NAME_DBG)
+RES_NAME_OUT_DBG = $(OUTPUT_DIR_DBG)\$(RES_NAME)
+MANIFEST_NAME_OUT_DBG = $(OUTPUT_DIR_DBG)\$(MANIFEST_NAME_DBG)
+
+SO_NAME_STLDBG_BASE = $(LIB_NAME_PREFIX)$(LIBNAME)$(STLDBG_SUFFIX)$(LIB_TYPE)$(LIB_NAME_SUFFIX)
+SO_NAME_STLDBG = $(SO_NAME_STLDBG_BASE).$(SO)
+LIB_NAME_STLDBG = $(SO_NAME_STLDBG_BASE).$(LIBEXT)
+EXP_NAME_STLDBG = $(SO_NAME_STLDBG_BASE).$(EXP)
+PDB_NAME_STLDBG = $(SO_NAME_STLDBG_BASE).pdb
+MANIFEST_NAME_STLDBG = $(SO_NAME_STLDBG).manifest
+
+SO_NAME_OUT_STLDBG = $(OUTPUT_DIR_STLDBG)\$(SO_NAME_STLDBG)
+LIB_NAME_OUT_STLDBG = $(OUTPUT_DIR_STLDBG)\$(LIB_NAME_STLDBG)
+EXP_NAME_OUT_STLDBG = $(OUTPUT_DIR_STLDBG)\$(EXP_NAME_STLDBG)
+PDB_NAME_OUT_STLDBG = $(OUTPUT_DIR_STLDBG)\$(PDB_NAME_STLDBG)
+RES_NAME_OUT_STLDBG = $(OUTPUT_DIR_STLDBG)\$(RES_NAME)
+MANIFEST_NAME_OUT_STLDBG = $(OUTPUT_DIR_STLDBG)\$(MANIFEST_NAME_STLDBG)
+
+# Static libraries:
+!ifdef LIB_MOTIF
+LIB_A_NAME_SUFFIX = _$(LIB_MOTIF)
+!else
+LIB_A_NAME_SUFFIX =
+!endif
+
+!ifdef WITH_DYNAMIC_RTL
+LIB_A_TYPE = _statix
+!else
+LIB_A_TYPE = _static
+!endif
+
+A_NAME_BASE = $(LIB_NAME_PREFIX)$(LIBNAME)$(LIB_A_TYPE)$(LIB_A_NAME_SUFFIX)
+A_NAME = $(A_NAME_BASE).$(ARCH)
+A_NAME_OUT = $(OUTPUT_DIR_A)\$(A_NAME)
+A_PDB_NAME = $(A_NAME_BASE).pdb
+A_PDB_NAME_OUT = $(OUTPUT_DIR_A)\$(A_PDB_NAME)
+
+A_NAME_DBG_BASE = $(LIB_NAME_PREFIX)$(LIBNAME)$(DBG_SUFFIX)$(LIB_A_TYPE)$(LIB_A_NAME_SUFFIX)
+A_NAME_DBG = $(A_NAME_DBG_BASE).$(ARCH)
+A_NAME_OUT_DBG = $(OUTPUT_DIR_A_DBG)\$(A_NAME_DBG)
+A_PDB_NAME_DBG = $(A_NAME_DBG_BASE).pdb
+A_PDB_NAME_OUT_DBG = $(OUTPUT_DIR_A_DBG)\$(A_PDB_NAME_DBG)
+
+A_NAME_STLDBG_BASE = $(LIB_NAME_PREFIX)$(LIBNAME)$(STLDBG_SUFFIX)$(LIB_A_TYPE)$(LIB_A_NAME_SUFFIX)
+A_NAME_STLDBG = $(A_NAME_STLDBG_BASE).$(ARCH)
+A_NAME_OUT_STLDBG = $(OUTPUT_DIR_A_STLDBG)\$(A_NAME_STLDBG)
+A_PDB_NAME_STLDBG = $(A_NAME_STLDBG_BASE).pdb
+A_PDB_NAME_OUT_STLDBG = $(OUTPUT_DIR_A_STLDBG)\$(A_PDB_NAME_STLDBG)
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-a.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-a.mak
new file mode 100644
index 00000000000..7aacb53b533
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-a.mak
@@ -0,0 +1,20 @@
+# -*- makefile -*- Time-stamp: <03/10/17 14:41:05 ptr>
+# $Id$
+
+# Shared libraries tags
+
+release-static: $(OUTPUT_DIR_A) $(A_NAME_OUT)
+
+dbg-static: $(OUTPUT_DIR_A_DBG) $(A_NAME_OUT_DBG)
+
+stldbg-static: $(OUTPUT_DIR_A_STLDBG) $(A_NAME_OUT_STLDBG)
+
+$(A_NAME_OUT): $(OBJ_A)
+ $(AR) $(AR_INS_R) $(AR_OUT) $(OBJ_A)
+
+$(A_NAME_OUT_DBG): $(OBJ_A_DBG)
+ $(AR) $(AR_INS_R) $(AR_OUT) $(OBJ_A_DBG)
+
+$(A_NAME_OUT_STLDBG): $(OBJ_A_STLDBG)
+ $(AR) $(AR_INS_R) $(AR_OUT) $(OBJ_A_STLDBG)
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-install-a.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-install-a.mak
new file mode 100644
index 00000000000..c46545680c8
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-install-a.mak
@@ -0,0 +1,17 @@
+# Time-stamp: <03/10/17 19:29:26 ptr>
+# $Id$
+
+install-static: install-release-static install-dbg-static install-stldbg-static
+
+install-release-static: release-static $(INSTALL_STATIC_LIB_DIR)
+ $(INSTALL_A) $(A_NAME_OUT) $(INSTALL_STATIC_LIB_DIR)
+ @if exist $(A_PDB_NAME_OUT) $(INSTALL_A) $(A_PDB_NAME_OUT) $(INSTALL_STATIC_LIB_DIR)
+
+install-dbg-static: dbg-static $(INSTALL_STATIC_LIB_DIR_DBG)
+ $(INSTALL_A) $(A_NAME_OUT_DBG) $(INSTALL_STATIC_LIB_DIR_DBG)
+ @if exist $(A_PDB_NAME_OUT_DBG) $(INSTALL_A) $(A_PDB_NAME_OUT_DBG) $(INSTALL_STATIC_LIB_DIR_DBG)
+
+install-stldbg-static: stldbg-static $(INSTALL_STATIC_LIB_DIR_STLDBG)
+ $(INSTALL_A) $(A_NAME_OUT_STLDBG) $(INSTALL_STATIC_LIB_DIR_STLDBG)
+ @if exist $(A_PDB_NAME_OUT_STLDBG) $(INSTALL_A) $(A_PDB_NAME_OUT_STLDBG) $(INSTALL_STATIC_LIB_DIR_STLDBG)
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-install-so.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-install-so.mak
new file mode 100644
index 00000000000..fba7bf7e29e
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-install-so.mak
@@ -0,0 +1,26 @@
+# Time-stamp: <03/10/26 16:42:14 ptr>
+# $Id$
+
+!ifndef INSTALL_TAGS
+INSTALL_TAGS= install-shared install-static
+!endif
+
+install: $(INSTALL_TAGS)
+
+install-release-shared: release-shared $(INSTALL_BIN_DIR) $(INSTALL_LIB_DIR)
+ $(INSTALL_SO) $(SO_NAME_OUT) $(INSTALL_BIN_DIR)
+ $(INSTALL_SO) $(PDB_NAME_OUT) $(INSTALL_BIN_DIR)
+ $(INSTALL_SO) $(LIB_NAME_OUT) $(INSTALL_LIB_DIR)
+ $(INSTALL_SO) $(EXP_NAME_OUT) $(INSTALL_LIB_DIR)
+
+install-dbg-shared: dbg-shared $(INSTALL_BIN_DIR_DBG) $(INSTALL_LIB_DIR_DBG)
+ $(INSTALL_SO) $(SO_NAME_OUT_DBG) $(INSTALL_BIN_DIR_DBG)
+ $(INSTALL_SO) $(PDB_NAME_OUT_DBG) $(INSTALL_BIN_DIR_DBG)
+ $(INSTALL_SO) $(LIB_NAME_OUT_DBG) $(INSTALL_LIB_DIR_DBG)
+ $(INSTALL_SO) $(EXP_NAME_OUT_DBG) $(INSTALL_LIB_DIR_DBG)
+
+install-stldbg-shared: stldbg-shared $(INSTALL_BIN_DIR_STLDBG) $(INSTALL_LIB_DIR_STLDBG)
+ $(INSTALL_SO) $(SO_NAME_OUT_STLDBG) $(INSTALL_BIN_DIR_STLDBG)
+ $(INSTALL_SO) $(PDB_NAME_OUT_STLDBG) $(INSTALL_BIN_DIR_STLDBG)
+ $(INSTALL_SO) $(LIB_NAME_OUT_STLDBG) $(INSTALL_LIB_DIR_STLDBG)
+ $(INSTALL_SO) $(EXP_NAME_OUT_STLDBG) $(INSTALL_LIB_DIR_STLDBG)
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-so.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-so.mak
new file mode 100644
index 00000000000..13f782ebf84
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-so.mak
@@ -0,0 +1,25 @@
+# -*- makefile -*- Time-stamp: <03/10/13 17:47:13 ptr>
+# $Id$
+
+# Shared libraries tags
+
+release-shared: $(OUTPUT_DIR) $(SO_NAME_OUT)
+
+dbg-shared: $(OUTPUT_DIR_DBG) $(SO_NAME_OUT_DBG)
+
+stldbg-shared: $(OUTPUT_DIR_STLDBG) $(SO_NAME_OUT_STLDBG)
+
+# .o{$(OUTPUT_DIR)}.o:
+
+$(SO_NAME_OUT): $(OBJ) $(RES) $(LIBSDEP)
+ $(LINK_cc_REL) $(LINK_OUTPUT_OPTION) $(OBJ) $(RES) $(LDLIBS)
+ @if exist $(MANIFEST_NAME_OUT) mt /nologo /manifest $(MANIFEST_NAME_OUT) /outputresource:$(SO_NAME_OUT);#2
+
+$(SO_NAME_OUT_DBG): $(OBJ_DBG) $(RES_DBG) $(LIBSDEP)
+ $(LINK_cc_DBG) $(LINK_OUTPUT_OPTION) $(OBJ_DBG) $(RES_DBG) $(LDLIBS)
+ @if exist $(MANIFEST_NAME_OUT_DBG) mt /nologo /manifest $(MANIFEST_NAME_OUT_DBG) /outputresource:$(SO_NAME_OUT_DBG);#2
+
+$(SO_NAME_OUT_STLDBG): $(OBJ_STLDBG) $(RES_STLDBG) $(LIBSDEP)
+ $(LINK_cc_STLDBG) $(LINK_OUTPUT_OPTION) $(OBJ_STLDBG) $(RES_STLDBG) $(LDLIBS)
+ @if exist $(MANIFEST_NAME_OUT_STLDBG) mt /nologo /manifest $(MANIFEST_NAME_OUT_STLDBG) /outputresource:$(SO_NAME_OUT_STLDBG);#2
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/lib/top.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/top.mak
new file mode 100644
index 00000000000..2aaf6a04569
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/top.mak
@@ -0,0 +1,14 @@
+# -*- makefile -*- Time-stamp: <03/10/26 16:04:46 ptr>
+# $Id$
+
+!ifndef LDFLAGS
+LDFLAGS =
+!endif
+
+!include $(RULESBASE)/$(USE_MAKE)/lib/macro.mak
+!include $(RULESBASE)/$(USE_MAKE)/lib/$(COMPILER_NAME).mak
+!include $(RULESBASE)/$(USE_MAKE)/lib/rules-so.mak
+!include $(RULESBASE)/$(USE_MAKE)/lib/rules-a.mak
+!include $(RULESBASE)/$(USE_MAKE)/lib/rules-install-so.mak
+!include $(RULESBASE)/$(USE_MAKE)/lib/rules-install-a.mak
+!include $(RULESBASE)/$(USE_MAKE)/lib/clean.mak
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc-common.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc-common.mak
new file mode 100644
index 00000000000..9e9ac8e4fef
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc-common.mak
@@ -0,0 +1,26 @@
+# -*- makefile -*- Time-stamp: <03/10/17 14:09:57 ptr>
+# $Id$
+
+
+# Oh, the commented below work for gmake 3.78.1 and above,
+# but phrase without tag not work for it. Since gmake 3.79
+# tag with assignment fail, but work assignment for all tags
+# (really that more correct).
+
+!ifndef LDLIBS
+LDLIBS =
+!endif
+
+#Per default MSVC vcvars32.bat script set the LIB environment
+#variable to get the native library, there is no need to add
+#them here
+#LDSEARCH = $(LDSEARCH) /LIBPATH:"$(MSVC_LIB_DIR)"
+
+LDFLAGS_REL = $(LDFLAGS_REL) /dll $(LDSEARCH)
+LDFLAGS_DBG = $(LDFLAGS_DBG) /dll $(LDSEARCH)
+LDFLAGS_STLDBG = $(LDFLAGS_STLDBG) /dll $(LDSEARCH)
+# LDFLAGS_STATIC = $(LDSEARCH)
+
+LDFLAGS_REL = $(LDFLAGS_REL) /version:$(MAJOR).$(MINOR)
+LDFLAGS_DBG = $(LDFLAGS_DBG) /version:$(MAJOR).$(MINOR)
+LDFLAGS_STLDBG = $(LDFLAGS_STLDBG) /version:$(MAJOR).$(MINOR)
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc6.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc6.mak
new file mode 100644
index 00000000000..4cde102da6e
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc6.mak
@@ -0,0 +1,6 @@
+# -*- makefile -*- Time-stamp: <03/10/17 14:09:57 ptr>
+# $Id$
+
+
+!include vc-common.mak
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc70.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc70.mak
new file mode 100644
index 00000000000..4cde102da6e
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc70.mak
@@ -0,0 +1,6 @@
+# -*- makefile -*- Time-stamp: <03/10/17 14:09:57 ptr>
+# $Id$
+
+
+!include vc-common.mak
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc71.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc71.mak
new file mode 100644
index 00000000000..4cde102da6e
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc71.mak
@@ -0,0 +1,6 @@
+# -*- makefile -*- Time-stamp: <03/10/17 14:09:57 ptr>
+# $Id$
+
+
+!include vc-common.mak
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc8.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc8.mak
new file mode 100644
index 00000000000..281b85a8219
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc8.mak
@@ -0,0 +1,5 @@
+# -*- makefile -*- Time-stamp: <03/10/17 14:09:57 ptr>
+# $Id$
+
+!include vc-common.mak
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc9.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc9.mak
new file mode 100644
index 00000000000..0c455e11c44
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc9.mak
@@ -0,0 +1,5 @@
+# -*- makefile -*- Time-stamp: <03/10/17 14:09:57 ptr>
+# $Id: vc9.mak 2403 2006-06-02 20:20:44Z dums $
+
+!include vc-common.mak
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/rules-o.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/rules-o.mak
new file mode 100644
index 00000000000..b1563e2966a
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/rules-o.mak
@@ -0,0 +1,176 @@
+# -*- Makefile -*- Time-stamp: <03/10/29 21:05:34 ptr>
+# $Id$
+
+# Rules for release output:
+
+.cpp{$(OUTPUT_DIR)}.o:
+ $(COMPILE_cc_REL) $(OUTPUT_OPTION) $<
+
+{..}.cpp{$(OUTPUT_DIR)}.o:
+ $(COMPILE_cc_REL) $(OUTPUT_OPTION) $<
+
+.cc{$(OUTPUT_DIR)}.o:
+ $(COMPILE_cc_REL) $(OUTPUT_OPTION) $<
+
+{..}.cc{$(OUTPUT_DIR)}.o:
+ $(COMPILE_cc_REL) $(OUTPUT_OPTION) $<
+
+.c{$(OUTPUT_DIR)}.o:
+ $(COMPILE_c_REL) $(OUTPUT_OPTION) $<
+
+{..}.c{$(OUTPUT_DIR)}.o:
+ $(COMPILE_c_REL) $(OUTPUT_OPTION) $<
+
+.rc{$(OUTPUT_DIR)}.res:
+ $(COMPILE_rc_REL) $(RC_OUTPUT_OPTION) $<
+
+{..}.rc{$(OUTPUT_DIR)}.res:
+ $(COMPILE_rc_REL) $(RC_OUTPUT_OPTION) $<
+
+!if "$(OUTPUT_DIR_A)" != "$(OUTPUT_DIR)"
+# Rules for release output (static):
+
+.cpp{$(OUTPUT_DIR_A)}.o:
+ $(COMPILE_cc_STATIC_REL) $(OUTPUT_OPTION) $<
+
+{..}.cpp{$(OUTPUT_DIR_A)}.o:
+ $(COMPILE_cc_STATIC_REL) $(OUTPUT_OPTION) $<
+
+.cc{$(OUTPUT_DIR_A)}.o:
+ $(COMPILE_cc_STATIC_REL) $(OUTPUT_OPTION) $<
+
+{..}.cc{$(OUTPUT_DIR_A)}.o:
+ $(COMPILE_cc_STATIC_REL) $(OUTPUT_OPTION) $<
+
+.c{$(OUTPUT_DIR_A)}.o:
+ $(COMPILE_c_STATIC_REL) $(OUTPUT_OPTION) $<
+
+{..}.c{$(OUTPUT_DIR_A)}.o:
+ $(COMPILE_c_STATIC_REL) $(OUTPUT_OPTION) $<
+
+.rc{$(OUTPUT_DIR_A)}.res:
+ $(COMPILE_rc_STATIC_REL) $(RC_OUTPUT_OPTION) $<
+
+{..}.rc{$(OUTPUT_DIR_A)}.res:
+ $(COMPILE_rc_STATIC_REL) $(RC_OUTPUT_OPTION) $<
+
+!endif
+
+# Rules for debug output:
+
+.cpp{$(OUTPUT_DIR_DBG)}.o:
+ $(COMPILE_cc_DBG) $(OUTPUT_OPTION_DBG) $<
+
+{..}.cpp{$(OUTPUT_DIR_DBG)}.o:
+ $(COMPILE_cc_DBG) $(OUTPUT_OPTION_DBG) $<
+
+.cc{$(OUTPUT_DIR_DBG)}.o:
+ $(COMPILE_cc_DBG) $(OUTPUT_OPTION_DBG) $<
+
+{..}.cc{$(OUTPUT_DIR_DBG)}.o:
+ $(COMPILE_cc_DBG) $(OUTPUT_OPTION_DBG) $<
+
+.c{$(OUTPUT_DIR_DBG)}.o:
+ $(COMPILE_c_DBG) $(OUTPUT_OPTION_DBG) $<
+
+{..}.c{$(OUTPUT_DIR_DBG)}.o:
+ $(COMPILE_c_DBG) $(OUTPUT_OPTION_DBG) $<
+
+.rc{$(OUTPUT_DIR_DBG)}.res:
+ $(COMPILE_rc_DBG) $(RC_OUTPUT_OPTION_DBG) $<
+
+{..}.rc{$(OUTPUT_DIR_DBG)}.res:
+ $(COMPILE_rc_DBG) $(RC_OUTPUT_OPTION_DBG) $<
+
+!if "$(OUTPUT_DIR_A_DBG)" != "$(OUTPUT_DIR_DBG)"
+# Rules for debug output (static):
+
+.cpp{$(OUTPUT_DIR_A_DBG)}.o:
+ $(COMPILE_cc_STATIC_DBG) $(OUTPUT_OPTION_STATIC_DBG) $<
+
+{..}.cpp{$(OUTPUT_DIR_A_DBG)}.o:
+ $(COMPILE_cc_STATIC_DBG) $(OUTPUT_OPTION_STATIC_DBG) $<
+
+.cc{$(OUTPUT_DIR_A_DBG)}.o:
+ $(COMPILE_cc_STATIC_DBG) $(OUTPUT_OPTION_STATIC_DBG) $<
+
+{..}.cc{$(OUTPUT_DIR_A_DBG)}.o:
+ $(COMPILE_cc_STATIC_DBG) $(OUTPUT_OPTION_STATIC_DBG) $<
+
+.c{$(OUTPUT_DIR_A_DBG)}.o:
+ $(COMPILE_c_STATIC_DBG) $(OUTPUT_OPTION_STATIC_DBG) $<
+
+{..}.c{$(OUTPUT_DIR_A_DBG)}.o:
+ $(COMPILE_c_STATIC_DBG) $(OUTPUT_OPTION_STATIC_DBG) $<
+
+.rc{$(OUTPUT_DIR_A_DBG)}.res:
+ $(COMPILE_rc_STATIC_DBG) $(RC_OUTPUT_OPTION_STATIC_DBG) $<
+
+{..}.rc{$(OUTPUT_DIR_A_DBG)}.res:
+ $(COMPILE_rc_STATIC_DBG) $(RC_OUTPUT_OPTION_STATIC_DBG) $<
+
+!endif
+
+# Rules for STLport debug output:
+
+.cpp{$(OUTPUT_DIR_STLDBG)}.o:
+ $(COMPILE_cc_STLDBG) $(OUTPUT_OPTION_STLDBG) $<
+
+{..}.cpp{$(OUTPUT_DIR_STLDBG)}.o:
+ $(COMPILE_cc_STLDBG) $(OUTPUT_OPTION_STLDBG) $<
+
+.cc{$(OUTPUT_DIR_STLDBG)}.o:
+ $(COMPILE_cc_STLDBG) $(OUTPUT_OPTION_STLDBG) $<
+
+{..}.cc{$(OUTPUT_DIR_STLDBG)}.o:
+ $(COMPILE_cc_STLDBG) $(OUTPUT_OPTION_STLDBG) $<
+
+.c{$(OUTPUT_DIR_STLDBG)}.o:
+ $(COMPILE_c_STLDBG) $(OUTPUT_OPTION_STLDBG) $<
+
+{..}.c{$(OUTPUT_DIR_STLDBG)}.o:
+ $(COMPILE_c_STLDBG) $(OUTPUT_OPTION_STLDBG) $<
+
+.rc{$(OUTPUT_DIR_STLDBG)}.res:
+ $(COMPILE_rc_STLDBG) $(RC_OUTPUT_OPTION_STLDBG) $<
+
+{..}.rc{$(OUTPUT_DIR_STLDBG)}.res:
+ $(COMPILE_rc_STLDBG) $(RC_OUTPUT_OPTION_STLDBG) $<
+
+!if "$(OUTPUT_DIR_A_STLDBG)" != "$(OUTPUT_DIR_STLDBG)"
+# Rules for STLport debug output (static):
+
+.cpp{$(OUTPUT_DIR_A_STLDBG)}.o:
+ $(COMPILE_cc_STATIC_STLDBG) $(OUTPUT_OPTION_STATIC_STLDBG) $<
+
+{..}.cpp{$(OUTPUT_DIR_A_STLDBG)}.o:
+ $(COMPILE_cc_STATIC_STLDBG) $(OUTPUT_OPTION_STATIC_STLDBG) $<
+
+.cc{$(OUTPUT_DIR_A_STLDBG)}.o:
+ $(COMPILE_cc_STATIC_STLDBG) $(OUTPUT_OPTION_STATIC_STLDBG) $<
+
+{..}.cc{$(OUTPUT_DIR_A_STLDBG)}.o:
+ $(COMPILE_cc_STATIC_STLDBG) $(OUTPUT_OPTION_STATIC_STLDBG) $<
+
+.c{$(OUTPUT_DIR_A_STLDBG)}.o:
+ $(COMPILE_c_STATIC_STLDBG) $(OUTPUT_OPTION_STATIC_STLDBG) $<
+
+{..}.c{$(OUTPUT_DIR_A_STLDBG)}.o:
+ $(COMPILE_c_STATIC_STLDBG) $(OUTPUT_OPTION_STATIC_STLDBG) $<
+
+.rc{$(OUTPUT_DIR_A_STLDBG)}.res:
+ $(COMPILE_rc_STATIC_STLDBG) $(RC_OUTPUT_OPTION_STATIC_STLDBG) $<
+
+{..}.rc{$(OUTPUT_DIR_A_STLDBG)}.res:
+ $(COMPILE_rc_STATIC_STLDBG) $(RC_OUTPUT_OPTION_STATIC_STLDBG) $<
+
+!endif
+
+!if EXIST( .\rules-o.mak )
+# Rules like
+# {$(BOOST_TST_SRC)}.cpp{$(OUTPUT_DIR)}.o:
+# $(COMPILE_cc_REL) $(OUTPUT_OPTION) $<
+# (this is due to bad path/string processing in bogus nmake)
+!include .\rules-o.mak
+!endif
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/sys.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/sys.mak
new file mode 100644
index 00000000000..c85d9a98dea
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/sys.mak
@@ -0,0 +1,28 @@
+# Time-stamp: <03/09/28 18:59:23 ptr>
+# $Id$
+
+# shared library:
+SO = dll
+# The cooool Microsoft programmers pass LIB from line below into environment var!!!!
+# LIB = lib
+LIBEXT = lib
+EXP = exp
+# executable:
+EXE = .exe
+
+# static library extention:
+ARCH = lib
+AR = lib /nologo
+AR_INS_R =
+AR_EXTR =
+AR_OUT = /out:$@
+
+INSTALL = copy
+
+INSTALL_SO = $(INSTALL)
+INSTALL_A = $(INSTALL)
+INSTALL_EXE = $(INSTALL)
+
+# compiler, compiler options
+!include $(RULESBASE)/$(USE_MAKE)/$(COMPILER_NAME).mak
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/sysid.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/sysid.mak
new file mode 100644
index 00000000000..9f9cc4e6975
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/sysid.mak
@@ -0,0 +1,18 @@
+# Time-stamp: <03/07/15 12:45:30 ptr>
+# $Id$
+
+!ifndef BUILD_DATE
+
+OSNAME = windows
+
+OSREL =
+M_ARCH = i386
+P_ARCH = i386
+NODENAME = unknown
+SYSVER =
+USER = unknown
+
+BUILD_SYSTEM =
+BUILD_DATE =
+
+!endif
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/targetdirs.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/targetdirs.mak
new file mode 100644
index 00000000000..651e9423cce
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/targetdirs.mak
@@ -0,0 +1,83 @@
+# Time-stamp: <04/04/30 23:41:02 ptr>
+# $Id$
+
+!ifdef TARGET_PROC
+TARGET_NAME=$(COMPILER_NAME)-$(TARGET_PROC)
+!else
+TARGET_NAME=$(COMPILER_NAME)
+!endif
+
+# special case for evc3/evc4 emulator compiles
+!if "$(TARGET_PROC)-$(TARGET_PROC_SUBTYPE)" == "x86-emulator"
+TARGET_NAME=$(COMPILER_NAME)-$(TARGET_PROC_SUBTYPE)
+!endif
+
+OUTPUT_ROOT_DIR = obj
+OUTPUT_TARGET_DIR = $(OUTPUT_ROOT_DIR)\$(TARGET_NAME)
+OUTPUT_DIR = $(OUTPUT_TARGET_DIR)\shared$(EXTRA_DIRS)
+OUTPUT_DIR_DBG = $(OUTPUT_TARGET_DIR)\shared-g$(EXTRA_DIRS)
+OUTPUT_DIR_STLDBG = $(OUTPUT_TARGET_DIR)\shared-stlg$(EXTRA_DIRS)
+OUTPUT_DIR_A = $(OUTPUT_TARGET_DIR)\static$(EXTRA_DIRS)
+OUTPUT_DIR_A_DBG = $(OUTPUT_TARGET_DIR)\static-g$(EXTRA_DIRS)
+OUTPUT_DIR_A_STLDBG = $(OUTPUT_TARGET_DIR)\static-stlg$(EXTRA_DIRS)
+
+# file to store generated dependencies for make:
+DEPENDS_COLLECTION = $(OUTPUT_TARGET_DIR)\.make.depend
+
+SRCROOT = $(SRCROOT:/=\)
+!ifdef CROSS_COMPILING
+TARGET_LIB_BIN_SUBFOLDER=$(TARGET_NAME)
+!else
+TARGET_LIB_BIN_SUBFOLDER=
+!endif
+INSTALL_LIB_DIR = $(SRCROOT)\..\lib\$(TARGET_LIB_BIN_SUBFOLDER)
+INSTALL_LIB_DIR_DBG = $(SRCROOT)\..\lib\$(TARGET_LIB_BIN_SUBFOLDER)
+INSTALL_LIB_DIR_STLDBG = $(SRCROOT)\..\lib\$(TARGET_LIB_BIN_SUBFOLDER)
+INSTALL_STATIC_LIB_DIR = $(SRCROOT)\..\lib\$(TARGET_LIB_BIN_SUBFOLDER)
+INSTALL_STATIC_LIB_DIR_DBG = $(SRCROOT)\..\lib\$(TARGET_LIB_BIN_SUBFOLDER)
+INSTALL_STATIC_LIB_DIR_STLDBG = $(SRCROOT)\..\lib\$(TARGET_LIB_BIN_SUBFOLDER)
+INSTALL_BIN_DIR = $(SRCROOT)\..\bin\$(TARGET_LIB_BIN_SUBFOLDER)
+INSTALL_BIN_DIR_DBG = $(SRCROOT)\..\bin\$(TARGET_LIB_BIN_SUBFOLDER)
+INSTALL_BIN_DIR_STLDBG = $(SRCROOT)\..\bin\$(TARGET_LIB_BIN_SUBFOLDER)
+INSTALL_STATIC_BIN_DIR = $(SRCROOT)\..\bin\$(TARGET_LIB_BIN_SUBFOLDER)
+INSTALL_STATIC_BIN_DIR_DBG = $(SRCROOT)\..\bin\$(TARGET_LIB_BIN_SUBFOLDER)
+INSTALL_STATIC_BIN_DIR_STLDBG = $(SRCROOT)\..\bin\$(TARGET_LIB_BIN_SUBFOLDER)
+
+
+OUTPUT_DIRS = $(OUTPUT_DIR) $(OUTPUT_DIR_DBG) $(OUTPUT_DIR_STLDBG)
+!if "$(OUTPUT_DIR_A)" != "$(OUTPUT_DIR)"
+OUTPUT_DIRS = $(OUTPUT_DIRS) $(OUTPUT_DIR_A)
+!endif
+!if "$(OUTPUT_DIR_A_DBG)" != "$(OUTPUT_DIR_DBG)"
+OUTPUT_DIRS = $(OUTPUT_DIRS) $(OUTPUT_DIR_A_DBG)
+!endif
+!if "$(OUTPUT_DIR_A_STLDBG)" != "$(OUTPUT_DIR_STLDBG)"
+OUTPUT_DIRS = $(OUTPUT_DIRS) $(OUTPUT_DIR_A_STLDBG)
+!endif
+
+
+# shortcut: all install lib dirs are the same
+INSTALL_LIB_DIRS = $(INSTALL_LIB_DIR)
+
+# shortcut: all install bin dirs are the same
+INSTALL_BIN_DIRS = $(INSTALL_BIN_DIR)
+
+INSTALL_DIRS = $(INSTALL_LIB_DIRS) $(INSTALL_BIN_DIRS)
+
+# replace slashes with backslashes; mkdir and copy don't like them.
+INSTALL_DIRS = $(INSTALL_DIRS:/=\)
+
+
+dirs: $(OUTPUT_DIRS) $(INSTALL_DIRS)
+
+output-dirs: $(OUTPUT_DIRS)
+install-dirs: $(INSTALL_DIRS)
+
+install-lib-dirs: $(INSTALL_LIB_DIRS)
+install-bin-dirs: $(INSTALL_BIN_DIRS)
+
+$(OUTPUT_DIRS):
+ @if not exist $@ mkdir $@
+
+$(INSTALL_DIRS):
+ @if not exist $@ mkdir $@
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/targets.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/targets.mak
new file mode 100644
index 00000000000..b244ad98295
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/targets.mak
@@ -0,0 +1,222 @@
+# Time-stamp: <04/05/01 00:45:03 ptr>
+# $Id$
+
+# dependency output parser
+#!include ${RULESBASE}/dparser-$(COMPILER_NAME).mak
+
+# if sources disposed in several dirs, calculate
+# appropriate rules; here is recursive call!
+
+#DIRS_UNIQUE_SRC := $(dir $(SRC_CPP) $(SRC_CC) $(SRC_C) )
+#DIRS_UNIQUE_SRC := $(sort $(DIRS_UNIQUE_SRC) )
+#include ${RULESBASE}/dirsrc.mak
+!include $(RULESBASE)/$(USE_MAKE)/rules-o.mak
+
+#ALLBASE := $(basename $(notdir $(SRC_CC) $(SRC_CPP) $(SRC_C)))
+ALLBASE = $(SRC_CC) $(SRC_CPP) $(SRC_C)
+#ALLOBJS := $(addsuffix .o,$(ALLBASE))
+
+# assemble objectfiles by concatenating sourcefiles and replacing extension with .o
+# follow tricks to avoid leading space if one of the macro undefined:
+# SRC_CC, SRC_CPP or SRC_C
+!ifdef SRC_CC
+ALLOBJS = $(SRC_CC:.cc=.o)
+!endif
+!ifdef SRC_CPP
+!ifdef ALLOBJS
+ALLOBJS = $(ALLOBJS) $(SRC_CPP:.cpp=.o)
+!else
+ALLOBJS = $(SRC_CPP:.cpp=.o)
+!endif
+!endif
+!ifdef SRC_C
+!ifdef ALLOBJS
+ALLOBJS = $(ALLOBJS) $(SRC_C:.c=.o)
+!else
+ALLOBJS = $(SRC_C:.c=.o)
+!endif
+!endif
+
+!ifdef SRC_RC
+ALLRESS = $(SRC_RC:.rc=.res)
+#ALLRESS = $(ALLRESS:../=)
+!endif
+# ALLOBJS = $(ALLOBJS:somedir/=)
+
+!if EXIST( .\nmake-src-prefix.mak )
+# Include strip of path to sources, i.e. macro like
+# ALLOBJS = $(ALLOBJS:..\..\..\..\..\..\explore/../extern/boost/libs/test/src/=)
+# ALLOBJS = $(ALLOBJS:../=)
+# ALLRESS = $(ALLRESS:../=)
+# Be careful about path spelling!
+# Pay attention the order of this macro! THE ORDER IS SIGNIFICANT!
+!include .\nmake-src-prefix.mak
+!endif
+
+ALLDEPS = $(SRC_CC:.cc=.d) $(SRC_CPP:.cpp=.d) $(SRC_C:.c=.d)
+
+#!if [echo ALLOBJS -$(ALLOBJS)-]
+#!endif
+
+# Following code adds a marker ('@') everywhere the path needs to be added.
+# The code searches for '.o' followed by whitespace and replaces it with '.o @'.
+# In a second stage, it removes all whitespace after an '@' sign, to cater for
+# the case where more than one whitespace character was separating objectfiles.
+
+# set marker (spaces are significant here!):
+OBJ_MARKED=$(ALLOBJS:.o =.o @)
+RES_MARKED=$(ALLRESS:.res =.res @)
+
+# remove unwanted space as result of line extending, like
+# target: dep1.cpp dep2.cpp \
+# dep3.cpp
+# (note, that if write '... dep2.cpp\', no white space happens)
+OBJ_MARKED=$(OBJ_MARKED:@ =@)
+RES_MARKED=$(RES_MARKED:@ =@)
+
+# unless empty, add marker at the beginning
+!if "$(OBJ_MARKED)"!=""
+OBJ_MARKED=@$(OBJ_MARKED)
+!endif
+!if "$(RES_MARKED)"!=""
+RES_MARKED=@$(RES_MARKED)
+!endif
+
+
+# second step, insert compiler/CPU part to path
+# Transform 'foo.o bar.o baz.o' to 'cc-xy/foo.o cc-xy/bar.o cc-xy/baz.o',
+# i.e. to add a prefix path to every objectfile. Now, the problem is that
+# nmake can't make substitutions where a string is replaced with the content
+# of a variable. IOW, this wont work:
+#OBJ=$(OBJ:@=%OUTPUT_DIR%/)
+# instead, we have to cater for every possible combination of compiler (and
+# target cpu when cross-compiling) by appropriate if/else clauses.
+
+!if "$(COMPILER_NAME)" == "evc4"
+!if "$(TARGET_PROC)" == "arm"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\evc4-arm\@)
+RES_MARKED=$(RES_MARKED:@=obj\evc4-arm\@)
+!elseif "$(TARGET_PROC)" == "x86"
+!if "$(TARGET_PROC_SUBTYPE)" == "emulator"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\evc4-emulator\@)
+RES_MARKED=$(RES_MARKED:@=obj\evc4-emulator\@)
+!else
+OBJ_MARKED=$(OBJ_MARKED:@=obj\evc4-x86\@)
+RES_MARKED=$(RES_MARKED:@=obj\evc4-x86\@)
+!endif
+!elseif "$(TARGET_PROC)" == "mips"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\evc4-mips\@)
+RES_MARKED=$(RES_MARKED:@=obj\evc4-mips\@)
+!elseif "$(TARGET_PROC)" == "sh3"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\evc4-sh3\@)
+RES_MARKED=$(RES_MARKED:@=obj\evc4-sh3\@)
+!elseif "$(TARGET_PROC)" == "sh4"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\evc4-sh4\@)
+RES_MARKED=$(RES_MARKED:@=obj\evc4-sh4\@)
+!else
+!error No target processor configured!
+!endif
+
+!elseif "$(COMPILER_NAME)" == "evc3"
+!if "$(TARGET_PROC)" == "arm"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\evc3-arm\@)
+RES_MARKED=$(RES_MARKED:@=obj\evc3-arm\@)
+!elseif "$(TARGET_PROC)" == "x86"
+!if "$(TARGET_PROC_SUBTYPE)" == "emulator"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\evc3-emulator\@)
+RES_MARKED=$(RES_MARKED:@=obj\evc3-emulator\@)
+!else
+OBJ_MARKED=$(OBJ_MARKED:@=obj\evc3-x86\@)
+RES_MARKED=$(RES_MARKED:@=obj\evc3-x86\@)
+!endif
+!elseif "$(TARGET_PROC)" == "mips"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\evc3-mips\@)
+RES_MARKED=$(RES_MARKED:@=obj\evc3-mips\@)
+!elseif "$(TARGET_PROC)" == "sh3"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\evc3-sh3\@)
+RES_MARKED=$(RES_MARKED:@=obj\evc3-sh3\@)
+!elseif "$(TARGET_PROC)" == "sh4"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\evc3-sh4\@)
+RES_MARKED=$(RES_MARKED:@=obj\evc3-sh4\@)
+!else
+!error No target processor configured!
+!endif
+
+!elseif "$(COMPILER_NAME)" == "evc8"
+!if "$(TARGET_PROC)" == ""
+!error No target processor configured!
+!elseif "$(TARGET_PROC)" == "arm"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\evc8-arm\@)
+RES_MARKED=$(RES_MARKED:@=obj\evc8-arm\@)
+!elseif "$(TARGET_PROC)" == "x86"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\evc8-x86\@)
+RES_MARKED=$(RES_MARKED:@=obj\evc8-x86\@)
+!elseif "$(TARGET_PROC)" == "mips"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\evc8-mips\@)
+RES_MARKED=$(RES_MARKED:@=obj\evc8-mips\@)
+!elseif "$(TARGET_PROC)" == "sh4"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\evc8-sh4\@)
+RES_MARKED=$(RES_MARKED:@=obj\evc8-sh4\@)
+!else
+!error Unknown target processor configured!
+!endif
+
+!elseif "$(COMPILER_NAME)" == "evc9"
+!if "$(TARGET_PROC)" == ""
+!error No target processor configured!
+!elseif "$(TARGET_PROC)" == "arm"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\evc9-arm\@)
+RES_MARKED=$(RES_MARKED:@=obj\evc9-arm\@)
+!elseif "$(TARGET_PROC)" == "x86"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\evc9-x86\@)
+RES_MARKED=$(RES_MARKED:@=obj\evc9-x86\@)
+!elseif "$(TARGET_PROC)" == "mips"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\evc9-mips\@)
+RES_MARKED=$(RES_MARKED:@=obj\evc9-mips\@)
+!elseif "$(TARGET_PROC)" == "sh4"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\evc9-sh4\@)
+RES_MARKED=$(RES_MARKED:@=obj\evc9-sh4\@)
+!else
+!error Unknown target processor configured!
+!endif
+
+!elseif "$(COMPILER_NAME)" == "vc6"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\vc6\@)
+RES_MARKED=$(RES_MARKED:@=obj\vc6\@)
+
+!elseif "$(COMPILER_NAME)" == "vc70"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\vc70\@)
+RES_MARKED=$(RES_MARKED:@=obj\vc70\@)
+
+!elseif "$(COMPILER_NAME)" == "vc71"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\vc71\@)
+RES_MARKED=$(RES_MARKED:@=obj\vc71\@)
+
+!elseif "$(COMPILER_NAME)" == "vc8"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\vc8\@)
+RES_MARKED=$(RES_MARKED:@=obj\vc8\@)
+
+!elseif "$(COMPILER_NAME)" == "vc9"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\vc9\@)
+RES_MARKED=$(RES_MARKED:@=obj\vc9\@)
+
+!elseif "$(COMPILER_NAME)" == "icl"
+OBJ_MARKED=$(OBJ_MARKED:@=obj\icl\@)
+RES_MARKED=$(RES_MARKED:@=obj\icl\@)
+!else
+!error No compiler configured
+!endif
+
+# last step, insert the linkage (shared/static) and release mode
+# (release/debug/stldebug) into the path
+OBJ=$(OBJ_MARKED:@=shared\)
+OBJ_DBG=$(OBJ_MARKED:@=shared-g\)
+OBJ_STLDBG=$(OBJ_MARKED:@=shared-stlg\)
+OBJ_A=$(OBJ_MARKED:@=static\)
+OBJ_A_DBG=$(OBJ_MARKED:@=static-g\)
+OBJ_A_STLDBG=$(OBJ_MARKED:@=static-stlg\)
+RES=$(RES_MARKED:@=shared\)
+RES_DBG=$(RES_MARKED:@=shared-g\)
+RES_STLDBG=$(RES_MARKED:@=shared-stlg\)
+
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/top.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/top.mak
new file mode 100644
index 00000000000..4d8b850feaf
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/top.mak
@@ -0,0 +1,60 @@
+# Time-stamp: <03/10/26 16:04:25 ptr>
+# $Id$
+
+.SUFFIXES: .o .cc
+
+!ifndef RULESBASE
+RULESBASE = $(SRCROOT)/Makefiles
+!endif
+
+!ifndef ALL_TAGS
+ALL_TAGS = all-shared all-static
+!endif
+
+#!if [echo $(ALL_TAGS)]
+#!endif
+#!if [echo $(RULESBASE)]
+#!endif
+
+all: dirs $(ALL_TAGS)
+
+all-dynamic: all-shared
+all-shared: release-shared dbg-shared stldbg-shared
+all-static: release-static dbg-static stldbg-static
+
+install-shared: install-release-shared install-dbg-shared install-stldbg-shared
+install-static: install-release-static install-dbg-static install-stldbg-static
+
+# define what make clone we use
+USE_MAKE = nmake
+# include file, generated by configure, if available
+!if EXIST( $(RULESBASE)/$(USE_MAKE)/config.mak )
+!include $(RULESBASE)/$(USE_MAKE)/config.mak
+!endif
+# identify OS and build date
+!include $(RULESBASE)/$(USE_MAKE)/sysid.mak
+# OS-specific definitions, like ar, ln, install, etc.
+!include $(RULESBASE)/$(USE_MAKE)/sys.mak
+# rules to make dirs for targets
+!include $(RULESBASE)/$(USE_MAKE)/targetdirs.mak
+# extern libraries
+!include $(RULESBASE)/$(USE_MAKE)/extern.mak
+
+# derive common targets (*.o, *.d),
+# build rules (including output catalogs)
+!include $(RULESBASE)/$(USE_MAKE)/targets.mak
+# dependency
+#include ${RULESBASE}/depend-$(COMPILER_NAME).mak
+
+# general clean
+!include $(RULESBASE)/$(USE_MAKE)/clean.mak
+
+# if target is library, rules for library
+!ifdef LIBNAME
+!include $(RULESBASE)/$(USE_MAKE)/lib/top.mak
+!endif
+
+# if target is program, rules for executable
+!ifdef PRGNAME
+!include $(RULESBASE)/$(USE_MAKE)/app/top.mak
+!endif
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/vc-common.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/vc-common.mak
new file mode 100644
index 00000000000..78d101fb539
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/vc-common.mak
@@ -0,0 +1,206 @@
+# Time-stamp: <04/02/04 14:15:31 ptr>
+# $Id$
+
+#INCLUDES = -I$(SRCROOT)/include
+#INCLUDES =
+
+!ifndef CXX
+CXX = cl
+!endif
+!ifndef CC
+CC = cl
+!endif
+!ifndef LINK
+LINK = link /fixed:no
+!endif
+!ifndef RC
+RC = rc
+!endif
+
+!if "$(COMPILER_NAME)" == "vc6"
+MSVC_VERSION=1200
+!else if "$(COMPILER_NAME)" == "vc70"
+MSVC_VERSION=1300
+!else if "$(COMPILER_NAME)" == "vc71"
+MSVC_VERSION=1310
+!else if "$(COMPILER_NAME)" == "vc80"
+MSVC_VERSION=1400
+!else
+MSVC_VERSION=1500
+!endif
+
+!ifdef WITH_STATIC_RTL
+!if defined (WITHOUT_THREAD) && ($(MSVC_VERSION) < 1400)
+OPT_DBG = $(OPT_DBG) /MLd
+OPT_STLDBG = $(OPT_STLDBG) /MLd
+OPT_REL = $(OPT_REL) /ML
+!else
+OPT_DBG = $(OPT_DBG) /MTd
+OPT_STLDBG = $(OPT_STLDBG) /MTd
+OPT_REL = $(OPT_REL) /MT
+!endif
+DEFS_REL = $(DEFS_REL) /D_STLP_USE_DYNAMIC_LIB
+DEFS_DBG = $(DEFS_DBG) /D_STLP_USE_DYNAMIC_LIB
+DEFS_STLDBG = $(DEFS_STLDBG) /D_STLP_USE_DYNAMIC_LIB
+!else
+OPT_DBG = $(OPT_DBG) /MDd
+OPT_STLDBG = $(OPT_STLDBG) /MDd
+OPT_REL = $(OPT_REL) /MD
+!endif
+
+!ifdef WITH_DYNAMIC_RTL
+OPT_STATIC_DBG = $(OPT_STATIC_DBG) /MDd
+OPT_STATIC_STLDBG = $(OPT_STATIC_STLDBG) /MDd
+OPT_STATIC_REL = $(OPT_STATIC_REL) /MD
+DEFS_STATIC_REL = $(DEFS_STATIC_REL) /D_STLP_USE_STATIC_LIB
+DEFS_STATIC_DBG = $(DEFS_STATIC_DBG) /D_STLP_USE_STATIC_LIB
+DEFS_STATIC_STLDBG = $(DEFS_STATIC_STLDBG) /D_STLP_USE_STATIC_LIB
+!else
+!if defined (WITHOUT_THREAD) && ($(MSVC_VERSION) < 1400)
+OPT_STATIC_DBG = $(OPT_STATIC_DBG) /MLd
+OPT_STATIC_STLDBG = $(OPT_STATIC_STLDBG) /MLd
+OPT_STATIC_REL = $(OPT_STATIC_REL) /ML
+!else
+OPT_STATIC_DBG = $(OPT_STATIC_DBG) /MTd
+OPT_STATIC_STLDBG = $(OPT_STATIC_STLDBG) /MTd
+OPT_STATIC_REL = $(OPT_STATIC_REL) /MT
+!endif
+!endif
+
+!ifdef WITHOUT_THREAD
+#Normally thread support activation is detected by STLport depending on the
+#compiler runtime version option (/ML /MLd); but as there is no more single
+#threaded runtime after VC.Net2003 we simply always define _STLP_NO_THREADS
+DEFS_REL = $(DEFS_REL) /D_STLP_NO_THREADS
+DEFS_DBG = $(DEFS_DBG) /D_STLP_NO_THREADS
+DEFS_STLDBG = $(DEFS_STLDBG) /D_STLP_NO_THREADS
+DEFS_STATIC_REL = $(DEFS_STATIC_REL) /D_STLP_NO_THREADS
+DEFS_STATIC_DBG = $(DEFS_STATIC_DBG) /D_STLP_NO_THREADS
+DEFS_STATIC_STLDBG = $(DEFS_STATIC_STLDBG) /D_STLP_NO_THREADS
+!endif
+
+DEFS = $(DEFS) /DWINVER=$(WINVER)
+
+!ifdef WITHOUT_RTTI
+!if $(MSVC_VERSION) >= 1400
+CXXFLAGS_COMMON = $(CXXFLAGS_COMMON) /GR-
+CFLAGS_COMMON = $(CFLAGS_COMMON) /GR-
+!endif
+!else
+!if $(MSVC_VERSION) < 1400
+CXXFLAGS_COMMON = $(CXXFLAGS_COMMON) /GR
+CFLAGS_COMMON = $(CFLAGS_COMMON) /GR
+!endif
+!endif
+
+!ifdef STLP_BUILD_BOOST_PATH
+CXXFLAGS_COMMON = $(CXXFLAGS_COMMON) /D_STLP_USE_BOOST_SUPPORT
+CFLAGS_COMMON = $(CFLAGS_COMMON) /D_STLP_USE_BOOST_SUPPORT
+!endif
+
+!ifdef DEFS
+DEFS_REL = $(DEFS) $(DEFS_REL)
+DEFS_DBG = $(DEFS) $(DEFS_DBG)
+DEFS_STLDBG = $(DEFS) $(DEFS_STLDBG)
+DEFS_STATIC_REL = $(DEFS) $(DEFS_STATIC_REL)
+DEFS_STATIC_DBG = $(DEFS) $(DEFS_STATIC_DBG)
+DEFS_STATIC_STLDBG = $(DEFS) $(DEFS_STATIC_STLDBG)
+!endif
+!ifdef OPT
+OPT_REL = $(OPT) $(OPT_REL)
+OPT_DBG = $(OPT) $(OPT_DBG)
+OPT_STLDBG = $(OPT) $(OPT_STLDBG)
+OPT_STATIC_REL = $(OPT) $(OPT_STATIC_REL)
+OPT_STATIC_DBG = $(OPT) $(OPT_STATIC_DBG)
+OPT_STATIC_STLDBG = $(OPT) $(OPT_STATIC_STLDBG)
+!endif
+
+!if "$(COMPILER_NAME)" != "icl"
+OUTPUT_OPTION = /Fo$@ /Fd$(PDB_NAME_OUT)
+OUTPUT_OPTION_DBG = /Fo$@ /Fd$(PDB_NAME_OUT_DBG)
+OUTPUT_OPTION_STLDBG = /Fo$@ /Fd$(PDB_NAME_OUT_STLDBG)
+OUTPUT_OPTION_STATIC = /Fo$@ /Fd$(A_PDB_NAME_OUT)
+OUTPUT_OPTION_STATIC_DBG = /Fo$@ /Fd$(A_PDB_NAME_OUT_DBG)
+OUTPUT_OPTION_STATIC_STLDBG = /Fo$@ /Fd$(A_PDB_NAME_OUT_STLDBG)
+!else
+OUTPUT_OPTION = /Fo$@
+OUTPUT_OPTION_DBG = /Fo$@
+OUTPUT_OPTION_STLDBG = /Fo$@
+OUTPUT_OPTION_STATIC = /Fo$@
+OUTPUT_OPTION_STATIC_DBG = /Fo$@
+OUTPUT_OPTION_STATIC_STLDBG = /Fo$@
+!endif
+
+LINK_OUTPUT_OPTION = /out:$@
+RC_OUTPUT_OPTION = /fo $@
+RC_OUTPUT_OPTION_DBG = /fo $@
+RC_OUTPUT_OPTION_STLDBG = /fo $@
+DEFS_REL = $(DEFS_REL) /DWIN32 /D_WINDOWS
+DEFS_STATIC_REL = $(DEFS_STATIC_REL) /DWIN32 /D_WINDOWS
+DEFS_DBG = $(DEFS_DBG) /DWIN32 /D_WINDOWS
+DEFS_STATIC_DBG = $(DEFS_STATIC_DBG) /DWIN32 /D_WINDOWS
+DEFS_STLDBG = $(DEFS_STLDBG) /DWIN32 /D_WINDOWS
+DEFS_STATIC_STLDBG = $(DEFS_STATIC_STLDBG) /DWIN32 /D_WINDOWS
+CPPFLAGS_REL = $(DEFS_REL) $(INCLUDES)
+CPPFLAGS_STATIC_REL = $(DEFS_STATIC_REL) $(INCLUDES)
+CPPFLAGS_DBG = $(DEFS_DBG) $(INCLUDES)
+CPPFLAGS_STATIC_DBG = $(DEFS_STATIC_DBG) $(INCLUDES)
+CPPFLAGS_STLDBG = $(DEFS_STLDBG) $(INCLUDES)
+CPPFLAGS_STATIC_STLDBG = $(DEFS_STATIC_STLDBG) $(INCLUDES)
+
+
+CFLAGS_REL = $(CFLAGS_COMMON) $(OPT_REL)
+CFLAGS_STATIC_REL = $(CFLAGS_COMMON) $(OPT_STATIC_REL)
+CFLAGS_DBG = $(CFLAGS_COMMON) $(OPT_DBG)
+CFLAGS_STATIC_DBG = $(CFLAGS_COMMON) $(OPT_STATIC_DBG)
+CFLAGS_STLDBG = $(CFLAGS_COMMON) $(OPT_STLDBG)
+CFLAGS_STATIC_STLDBG = $(CFLAGS_COMMON) $(OPT_STATIC_STLDBG)
+CXXFLAGS_REL = $(CXXFLAGS_COMMON) $(OPT_REL)
+CXXFLAGS_STATIC_REL = $(CXXFLAGS_COMMON) $(OPT_STATIC_REL)
+CXXFLAGS_DBG = $(CXXFLAGS_COMMON) $(OPT_DBG)
+CXXFLAGS_STATIC_DBG = $(CXXFLAGS_COMMON) $(OPT_STATIC_DBG)
+CXXFLAGS_STLDBG = $(CXXFLAGS_COMMON) $(OPT_STLDBG)
+CXXFLAGS_STATIC_STLDBG = $(CXXFLAGS_COMMON) $(OPT_STATIC_STLDBG)
+COMPILE_c_REL = $(CC) $(CFLAGS_REL) $(CPPFLAGS_REL) $(TARGET_ARCH) /c
+COMPILE_c_STATIC_REL = $(CC) $(CFLAGS_STATIC_REL) $(CPPFLAGS_STATIC_REL) $(TARGET_ARCH) /c
+COMPILE_c_DBG = $(CC) $(CFLAGS_DBG) $(CPPFLAGS_DBG) $(TARGET_ARCH) /c
+COMPILE_c_STATIC_DBG = $(CC) $(CFLAGS_STATIC_DBG) $(CPPFLAGS_STATIC_DBG) $(TARGET_ARCH) /c
+COMPILE_c_STLDBG = $(CC) $(CFLAGS_STLDBG) $(CPPFLAGS_STLDBG) $(TARGET_ARCH) /c
+COMPILE_c_STATIC_STLDBG = $(CC) $(CFLAGS_STATIC_STLDBG) $(CPPFLAGS_STATIC_STLDBG) $(TARGET_ARCH) /c
+COMPILE_cc_REL = $(CXX) $(CXXFLAGS_REL) $(CPPFLAGS_REL) $(TARGET_ARCH) /c
+COMPILE_cc_STATIC_REL = $(CXX) $(CXXFLAGS_STATIC_REL) $(CPPFLAGS_STATIC_REL) $(TARGET_ARCH) /c
+COMPILE_cc_DBG = $(CXX) $(CXXFLAGS_DBG) $(CPPFLAGS_DBG) $(TARGET_ARCH) /c
+COMPILE_cc_STATIC_DBG = $(CXX) $(CXXFLAGS_STATIC_DBG) $(CPPFLAGS_STATIC_DBG) $(TARGET_ARCH) /c
+COMPILE_cc_STLDBG = $(CXX) $(CXXFLAGS_STLDBG) $(CPPFLAGS_STLDBG) $(TARGET_ARCH) /c
+COMPILE_cc_STATIC_STLDBG = $(CXX) $(CXXFLAGS_STATIC_STLDBG) $(CPPFLAGS_STATIC_STLDBG) $(TARGET_ARCH) /c
+COMPILE_rc_REL = $(RC) $(RC_FLAGS_REL) /D "BUILD_INFOS=$(CXXFLAGS_REL)"
+COMPILE_rc_STATIC_REL = $(RC) $(RC_FLAGS_REL) /D "BUILD_INFOS=$(CXXFLAGS_STATIC_REL)"
+COMPILE_rc_DBG = $(RC) $(RC_FLAGS_DBG) /DBUILD=d /D "BUILD_INFOS=$(CXXFLAGS_DBG)"
+COMPILE_rc_STATIC_DBG = $(RC) $(RC_FLAGS_DBG) /DBUILD=d /D "BUILD_INFOS=$(CXXFLAGS_STATIC_DBG)"
+COMPILE_rc_STLDBG = $(RC) $(RC_FLAGS_STLDBG) /DBUILD=stld /D "BUILD_INFOS=$(CXXFLAGS_STLDBG) /D_STLP_DEBUG"
+COMPILE_rc_STATIC_STLDBG = $(RC) $(RC_FLAGS_STLDBG) /DBUILD=stld /D "BUILD_INFOS=$(CXXFLAGS_STATIC_STLDBG) /D_STLP_DEBUG"
+LINK_cc_REL = $(LINK) /nologo /incremental:no /debug /pdb:$(PDB_NAME_OUT) $(LDFLAGS_REL)
+LINK_cc_DBG = $(LINK) /nologo /incremental:no /debug /pdb:$(PDB_NAME_OUT_DBG) $(LDFLAGS_DBG)
+LINK_cc_STLDBG = $(LINK) /nologo /incremental:no /debug /pdb:$(PDB_NAME_OUT_STLDBG) $(LDFLAGS_STLDBG)
+LINK_cc_A_REL = $(LINK) /nologo /incremental:no /debug /pdb:$(A_PDB_NAME_OUT) $(LDFLAGS_A_REL)
+LINK_cc_A_DBG = $(LINK) /nologo /incremental:no /debug /pdb:$(A_PDB_NAME_OUT_DBG) $(LDFLAGS_DBG)
+LINK_cc_A_STLDBG = $(LINK) /nologo /incremental:no /debug /pdb:$(A_PDB_NAME_OUT_STLDBG) $(LDFLAGS_STLDBG)
+
+CDEPFLAGS = /FD /E
+CCDEPFLAGS = /FD /E
+
+# STLport DEBUG mode specific defines
+DEFS_STLDBG = $(DEFS_STLDBG) /D_DEBUG /D_STLP_DEBUG
+DEFS_DBG = $(DEFS_DBG) /D_DEBUG
+DEFS_REL = $(DEFS_REL) /DNDEBUG
+DEFS_STATIC_STLDBG = $(DEFS_STATIC_STLDBG) /D_DEBUG /D_STLP_DEBUG
+DEFS_STATIC_DBG = $(DEFS_STATIC_DBG) /D_DEBUG
+DEFS_STATIC_REL = $(DEFS_STATIC_REL) /DNDEBUG
+
+# optimization and debug compiler flags
+OPT_REL = $(OPT_REL) /Zi /O2
+OPT_DBG = $(OPT_DBG) /Zi
+OPT_STLDBG = $(OPT_STLDBG) /Zi
+OPT_STATIC_REL = $(OPT_STATIC_REL) /Zi /O2
+OPT_STATIC_DBG = $(OPT_STATIC_DBG) /Zi
+OPT_STATIC_STLDBG = $(OPT_STATIC_STLDBG) /Zi
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/vc6.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/vc6.mak
new file mode 100644
index 00000000000..87902c40c7c
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/vc6.mak
@@ -0,0 +1,6 @@
+
+CFLAGS_COMMON = /nologo /W4 /GX
+CXXFLAGS_COMMON = /nologo /W4 /GX
+
+!include vc-common.mak
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/vc70.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/vc70.mak
new file mode 100644
index 00000000000..d7b728d964d
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/vc70.mak
@@ -0,0 +1,10 @@
+#!ifndef MSVC_DIR
+#MSVC_DIR = c:\Program Files\Microsoft Visual Studio .NET\VC7
+#!endif
+
+CFLAGS_COMMON = /nologo /W4 /GX
+CXXFLAGS_COMMON = /nologo /W4 /GX
+
+
+!include vc-common.mak
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/vc71.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/vc71.mak
new file mode 100644
index 00000000000..917dbd540c0
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/vc71.mak
@@ -0,0 +1,13 @@
+#!ifndef MSVC_DIR
+#MSVC_DIR = c:\Program Files\Microsoft Visual Studio .NET 2003\VC7
+#!endif
+
+CFLAGS_COMMON = /nologo /W4 /GX
+CXXFLAGS_COMMON = /nologo /W4 /GX
+
+OPT_REL = $(OPT_REL) /GL
+LDFLAGS_REL = $(LDFLAGS_REL) /LTCG
+
+
+!include vc-common.mak
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/vc8.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/vc8.mak
new file mode 100644
index 00000000000..6320907f098
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/vc8.mak
@@ -0,0 +1,13 @@
+
+CFLAGS_COMMON = /nologo /W4 /Wp64 /EHsc
+CXXFLAGS_COMMON = /nologo /W4 /Wp64 /EHsc
+
+DEFS_STLDBG = /GS
+DEFS_STATIC_STLDBG = /GS
+
+OPT_REL = $(OPT_REL) /GL
+LDFLAGS_REL = $(LDFLAGS_REL) /LTCG
+
+
+!include vc-common.mak
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/nmake/vc9.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/vc9.mak
new file mode 100644
index 00000000000..4c8fef99fbe
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/nmake/vc9.mak
@@ -0,0 +1,13 @@
+
+CFLAGS_COMMON = /nologo /W4 /EHsc
+CXXFLAGS_COMMON = /nologo /W4 /EHsc
+
+DEFS_STLDBG = /GS
+DEFS_STATIC_STLDBG = /GS
+
+OPT_REL = $(OPT_REL) /GL
+LDFLAGS_REL = $(LDFLAGS_REL) /LTCG
+
+
+!include vc-common.mak
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-app.inc b/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-app.inc
new file mode 100644
index 00000000000..0ae45a4d1c4
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-app.inc
@@ -0,0 +1,5 @@
+# -*- makefile -*- Time-stamp: <02/04/17 11:04:32 ptr>
+# $Id$
+
+PRGNAME = prog
+SRC_CC = prog.cc
diff --git a/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-gcc-app b/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-gcc-app
new file mode 100644
index 00000000000..93748dfbb03
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-gcc-app
@@ -0,0 +1,26 @@
+# -*- Makefile -*- Time-stamp: <03/07/09 18:08:47 ptr>
+# $Id$
+
+SRCROOT := ../../..
+COMPILER_NAME := gcc
+
+include Makefile.inc
+include ${SRCROOT}/Makefiles/top.mak
+
+
+INCLUDES += -I$(SRCROOT)/include -I$(STLPORT_INCLUDE_DIR)
+
+release-shared: LDSEARCH = -L${STLPORT_LIB_DIR} -L${CoMT_LIB_DIR}
+stldbg-shared: LDSEARCH = -L${STLPORT_LIB_DIR} -L${CoMT_LIB_DIR_STLDBG}
+dbg-shared: LDSEARCH = -L${STLPORT_LIB_DIR} -L${CoMT_LIB_DIR_DBG}
+
+ifeq ($(OSNAME),sunos)
+release-shared : LDLIBS = -lstlport_gcc -lrt
+stldbg-shared : LDLIBS = -lstlport_gcc_stldebug -lrt
+dbg-shared : LDLIBS = -lstlport_gcc -lrt
+else
+release-shared : LDLIBS = -lstlport_gcc -lxmt_gcc
+stldbg-shared : LDLIBS = -lstlport_gcc_stldebug -lxmt_gcc_stl-g
+dbg-shared : LDLIBS = -lstlport_gcc -lxmt_gcc-g
+endif
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-gcc-lib b/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-gcc-lib
new file mode 100644
index 00000000000..b6bb2dc42e8
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-gcc-lib
@@ -0,0 +1,30 @@
+# -*- Makefile -*- Time-stamp: <03/07/09 18:08:47 ptr>
+# $Id$
+
+SRCROOT := ../..
+COMPILER_NAME := gcc
+
+STLPORT_LIB_DIR = /export/home/ptr/STLport.lab/STLport/lib
+STLPORT_INCLUDE_DIR = /export/home/ptr/STLport.lab/STLport/stlport
+include Makefile.inc
+include ${SRCROOT}/Makefiles/top.mak
+
+
+INCLUDES += -I$(SRCROOT)/include -I$(STLPORT_INCLUDE_DIR)
+
+ifeq ($(OSNAME),linux)
+release-shared: LDSEARCH = -L${STLPORT_LIB_DIR}
+stldbg-shared: LDSEARCH = -L${STLPORT_LIB_DIR}
+dbg-shared: LDSEARCH = -L${STLPORT_LIB_DIR}
+endif
+
+ifeq ($(OSNAME),sunos)
+release-shared : LDLIBS = -lstlport_gcc -lrt
+stldbg-shared : LDLIBS = -lstlport_gcc_stldebug -lrt
+dbg-shared : LDLIBS = -lstlport_gcc -lrt
+else
+release-shared : LDLIBS = -lstlport_gcc
+stldbg-shared : LDLIBS = -lstlport_gcc_stldebug
+dbg-shared : LDLIBS = -lstlport_gcc
+endif
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-lib.inc b/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-lib.inc
new file mode 100644
index 00000000000..d5e690b5d2f
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-lib.inc
@@ -0,0 +1,8 @@
+# -*- Makefile -*- Time-stamp: <03/07/05 21:43:31 ptr>
+# $Id$
+
+LIBNAME = mylib
+MAJOR = 1
+MINOR = 0
+PATCH = 0
+SRC_CC = file1.cc file2.cc
diff --git a/lib/3rdparty/stlport/build/Makefiles/ut/app-c/Makefile b/lib/3rdparty/stlport/build/Makefiles/ut/app-c/Makefile
new file mode 100644
index 00000000000..be2dc15b62c
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/ut/app-c/Makefile
@@ -0,0 +1,52 @@
+# -*- Makefile -*- Time-stamp: <06/11/13 23:03:45 ptr>
+
+SRCROOT := ../../..
+
+EXTRA_POST := checks
+EXTRA_POST_DBG := checks-dbg
+EXTRA_POST_STLDBG := checks-stldbg
+
+include Makefile.inc
+include ${SRCROOT}/Makefiles/gmake/top.mak
+
+ifndef WITHOUT_STLPORT
+LDFLAGS += -Wl,-rpath=${STLPORT_LIB_DIR}
+endif
+
+# Check that we really use C compiler here
+
+define ldd_check
+r=`ldd $(1) | grep $(2)`; if [ "$$r" != "" ]; then exit 1; fi
+endef
+
+
+checks:
+ file ${PRG} | grep ELF >/dev/null || exit 1
+ ${call ldd_check,${PRG},stlport}
+ ${call ldd_check,${PRG},stdc++}
+ ${call ldd_check,${PRG},gcc_s}
+ @echo
+ @echo release ok
+ @echo
+
+checks-dbg:
+ file ${PRG_DBG} | grep ELF >/dev/null || exit 1
+ ${call ldd_check,${PRG_DBG},stlport}
+ ${call ldd_check,${PRG_DBG},stdc++}
+ ${call ldd_check,${PRG_DBG},gcc_s}
+ @echo
+ @echo dbg ok
+ @echo
+
+ifndef WITHOUT_STLPORT
+checks-stldbg:
+ file ${PRG_STLDBG} | grep ELF >/dev/null || exit 1
+ ${call ldd_check,${PRG_STLDBG},stlport}
+ ${call ldd_check,${PRG_STLDBG},stdc++}
+ ${call ldd_check,${PRG_STLDBG},gcc_s}
+ @echo
+ @echo stldbg ok
+ @echo
+endif
+
+PHONY += checks checks-dbg checks-stldbg
diff --git a/lib/3rdparty/stlport/build/Makefiles/ut/app-c/Makefile.inc b/lib/3rdparty/stlport/build/Makefiles/ut/app-c/Makefile.inc
new file mode 100644
index 00000000000..08352541652
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/ut/app-c/Makefile.inc
@@ -0,0 +1,4 @@
+# -*- makefile -*- Time-stamp: <04/01/12 15:37:40 ptr>
+
+PRGNAME = test
+SRC_C = test.c
diff --git a/lib/3rdparty/stlport/build/Makefiles/ut/app-c/test.c b/lib/3rdparty/stlport/build/Makefiles/ut/app-c/test.c
new file mode 100644
index 00000000000..f8b643afbf2
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/ut/app-c/test.c
@@ -0,0 +1,4 @@
+int main()
+{
+ return 0;
+}
diff --git a/lib/3rdparty/stlport/build/Makefiles/ut/app1/Makefile b/lib/3rdparty/stlport/build/Makefiles/ut/app1/Makefile
new file mode 100644
index 00000000000..dab98289b43
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/ut/app1/Makefile
@@ -0,0 +1,36 @@
+# -*- Makefile -*- Time-stamp: <06/11/13 23:03:45 ptr>
+
+SRCROOT := ../../..
+
+EXTRA_POST := checks
+EXTRA_POST_DBG := checks-dbg
+EXTRA_POST_STLDBG := checks-stldbg
+
+include Makefile.inc
+include ${SRCROOT}/Makefiles/gmake/top.mak
+
+ifndef WITHOUT_STLPORT
+LDFLAGS += -Wl,-rpath=${STLPORT_LIB_DIR}
+endif
+
+checks:
+ file ${PRG} | grep ELF >/dev/null || exit 1
+ @echo
+ @echo release ok
+ @echo
+
+checks-dbg:
+ file ${PRG_DBG} | grep ELF >/dev/null || exit 1
+ @echo
+ @echo dbg ok
+ @echo
+
+ifndef WITHOUT_STLPORT
+checks-stldbg:
+ file ${PRG_STLDBG} | grep ELF >/dev/null || exit 1
+ @echo
+ @echo stldbg ok
+ @echo
+endif
+
+PHONY += checks checks-dbg checks-stldbg
diff --git a/lib/3rdparty/stlport/build/Makefiles/ut/app1/Makefile.inc b/lib/3rdparty/stlport/build/Makefiles/ut/app1/Makefile.inc
new file mode 100644
index 00000000000..8e6a037f421
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/ut/app1/Makefile.inc
@@ -0,0 +1,5 @@
+# -*- makefile -*- Time-stamp: <04/01/12 15:37:40 ptr>
+
+PRGNAME = test
+#SRC_C = test.c
+SRC_CC = test.cc
diff --git a/lib/3rdparty/stlport/build/Makefiles/ut/app1/test.cc b/lib/3rdparty/stlport/build/Makefiles/ut/app1/test.cc
new file mode 100644
index 00000000000..f8b643afbf2
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/ut/app1/test.cc
@@ -0,0 +1,4 @@
+int main()
+{
+ return 0;
+}
diff --git a/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/Makefile b/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/Makefile
new file mode 100644
index 00000000000..8e249bafac1
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/Makefile
@@ -0,0 +1,38 @@
+# -*- Makefile -*- Time-stamp: <06/11/13 23:03:45 ptr>
+
+SRCROOT := ../../..
+
+# EXTRA_POST := check-release-shared
+# EXTRA_POST_DBG := check-dbg-shared
+# EXTRA_POST_STLDBG := check-stldbg-shared
+
+include Makefile.inc
+include ${SRCROOT}/Makefiles/gmake/top.mak
+
+ifndef WITHOUT_STLPORT
+LDFLAGS += -Wl,-rpath=${STLPORT_LIB_DIR}
+endif
+
+check: check-release-shared check-dbg-shared check-stldbg-shared
+
+check-release-shared: release-shared
+ @echo Running 2 test cases...
+ @file ${test2_PRG} | grep ELF >/dev/null || exit 1
+ @file ${test3_PRG} | grep ELF >/dev/null || exit 1
+ @echo "*** No errors detected"
+
+check-dbg-shared: dbg-shared
+ @echo Running 2 test cases...
+ @file ${test2_PRG_DBG} | grep ELF >/dev/null || exit 1
+ @file ${test3_PRG_DBG} | grep ELF >/dev/null || exit 1
+ @echo "*** No errors detected"
+
+ifndef WITHOUT_STLPORT
+check-stldbg-shared: stldbg-shared
+ @echo Running 2 test cases...
+ @file ${test2_PRG_STLDBG} | grep ELF >/dev/null || exit 1
+ @file ${test3_PRG_STLDBG} | grep ELF >/dev/null || exit 1
+ @echo "*** No errors detected"
+endif
+
+PHONY += check check-release-shared check-dbg-shared check-stldbg-shared
diff --git a/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/Makefile.inc b/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/Makefile.inc
new file mode 100644
index 00000000000..fa016892233
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/Makefile.inc
@@ -0,0 +1,7 @@
+# -*- makefile -*- Time-stamp: <04/01/12 15:37:40 ptr>
+
+PRGNAMES = test2 test3
+#SRC_C = test.c
+SRC_CC = test.cc
+test2_SRC_CC = test2.cc
+test3_SRC_CC = test3.cc test31.cc
diff --git a/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/test2.cc b/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/test2.cc
new file mode 100644
index 00000000000..2f9269c7558
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/test2.cc
@@ -0,0 +1,4 @@
+int main()
+{
+ return 2;
+}
diff --git a/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/test3.cc b/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/test3.cc
new file mode 100644
index 00000000000..fe37fec0da6
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/test3.cc
@@ -0,0 +1,4 @@
+int main()
+{
+ return 3;
+}
diff --git a/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/test31.cc b/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/test31.cc
new file mode 100644
index 00000000000..cd0cebbc2a5
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/test31.cc
@@ -0,0 +1,4 @@
+int f()
+{
+ return 3;
+}
diff --git a/lib/3rdparty/stlport/build/Makefiles/ut/app2/Makefile b/lib/3rdparty/stlport/build/Makefiles/ut/app2/Makefile
new file mode 100644
index 00000000000..c81393d22da
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/ut/app2/Makefile
@@ -0,0 +1,42 @@
+# -*- Makefile -*- Time-stamp: <06/11/13 23:03:45 ptr>
+
+SRCROOT := ../../..
+
+EXTRA_POST := checks
+EXTRA_POST_DBG := checks-dbg
+EXTRA_POST_STLDBG := checks-stldbg
+
+include Makefile.inc
+include ${SRCROOT}/Makefiles/gmake/top.mak
+
+ifndef WITHOUT_STLPORT
+LDFLAGS += -Wl,-rpath=${STLPORT_LIB_DIR}
+endif
+
+checks:
+ file ${PRG} | grep ELF >/dev/null || exit 1
+ file ${test2_PRG} | grep ELF >/dev/null || exit 1
+ file ${test3_PRG} | grep ELF >/dev/null || exit 1
+ @echo
+ @echo release ok
+ @echo
+
+checks-dbg:
+ file ${PRG_DBG} | grep ELF >/dev/null || exit 1
+ file ${test2_PRG_DBG} | grep ELF >/dev/null || exit 1
+ file ${test3_PRG_DBG} | grep ELF >/dev/null || exit 1
+ @echo
+ @echo dbg ok
+ @echo
+
+ifndef WITHOUT_STLPORT
+checks-stldbg:
+ file ${PRG_STLDBG} | grep ELF >/dev/null || exit 1
+ file ${test2_PRG_STLDBG} | grep ELF >/dev/null || exit 1
+ file ${test3_PRG_STLDBG} | grep ELF >/dev/null || exit 1
+ @echo
+ @echo stldbg ok
+ @echo
+endif
+
+PHONY += checks checks-dbg checks-stldbg
diff --git a/lib/3rdparty/stlport/build/Makefiles/ut/app2/Makefile.inc b/lib/3rdparty/stlport/build/Makefiles/ut/app2/Makefile.inc
new file mode 100644
index 00000000000..2f694086c7f
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/ut/app2/Makefile.inc
@@ -0,0 +1,8 @@
+# -*- makefile -*- Time-stamp: <04/01/12 15:37:40 ptr>
+
+PRGNAME = test
+PRGNAMES = test2 test3
+#SRC_C = test.c
+SRC_CC = test.cc
+test2_SRC_CC = test2.cc
+test3_SRC_CC = test3.cc test31.cc
diff --git a/lib/3rdparty/stlport/build/Makefiles/ut/app2/test.cc b/lib/3rdparty/stlport/build/Makefiles/ut/app2/test.cc
new file mode 100644
index 00000000000..f8b643afbf2
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/ut/app2/test.cc
@@ -0,0 +1,4 @@
+int main()
+{
+ return 0;
+}
diff --git a/lib/3rdparty/stlport/build/Makefiles/ut/app2/test2.cc b/lib/3rdparty/stlport/build/Makefiles/ut/app2/test2.cc
new file mode 100644
index 00000000000..2f9269c7558
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/ut/app2/test2.cc
@@ -0,0 +1,4 @@
+int main()
+{
+ return 2;
+}
diff --git a/lib/3rdparty/stlport/build/Makefiles/ut/app2/test3.cc b/lib/3rdparty/stlport/build/Makefiles/ut/app2/test3.cc
new file mode 100644
index 00000000000..fe37fec0da6
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/ut/app2/test3.cc
@@ -0,0 +1,4 @@
+int main()
+{
+ return 3;
+}
diff --git a/lib/3rdparty/stlport/build/Makefiles/ut/app2/test31.cc b/lib/3rdparty/stlport/build/Makefiles/ut/app2/test31.cc
new file mode 100644
index 00000000000..cd0cebbc2a5
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/ut/app2/test31.cc
@@ -0,0 +1,4 @@
+int f()
+{
+ return 3;
+}
diff --git a/lib/3rdparty/stlport/build/Makefiles/ut/so1/Makefile b/lib/3rdparty/stlport/build/Makefiles/ut/so1/Makefile
new file mode 100644
index 00000000000..043cfd75bb4
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/ut/so1/Makefile
@@ -0,0 +1,18 @@
+# -*- Makefile -*- Time-stamp: <06/11/10 16:23:01 ptr>
+
+SRCROOT := ../../..
+EXTRA_POST := checks
+
+include Makefile.inc
+include ${SRCROOT}/Makefiles/gmake/top.mak
+
+INCLUDES += -I./include
+
+checks:
+ file ${SO_NAME_OUTxxx} | grep ELF >/dev/null || exit 1
+ file ${SO_NAME_OUTxx} | grep link >/dev/null || exit 1
+ file ${SO_NAME_OUTx} | grep link >/dev/null || exit 1
+ file ${SO_NAME_OUT} | grep link >/dev/null || exit 1
+
+PHONY += checks
+
diff --git a/lib/3rdparty/stlport/build/Makefiles/ut/so1/Makefile.inc b/lib/3rdparty/stlport/build/Makefiles/ut/so1/Makefile.inc
new file mode 100644
index 00000000000..90003c75f28
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/ut/so1/Makefile.inc
@@ -0,0 +1,8 @@
+# -*- Makefile -*- Time-stamp: <06/11/29 01:59:50 ptr>
+
+LIBNAME = test
+MAJOR = 0
+MINOR = 1
+PATCH = 2
+SRC_CC = test_cc.cc
+SRC_C = test_c.c
diff --git a/lib/3rdparty/stlport/build/Makefiles/ut/so1/test_c.cc b/lib/3rdparty/stlport/build/Makefiles/ut/so1/test_c.cc
new file mode 100644
index 00000000000..db4c5c2b6c1
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/ut/so1/test_c.cc
@@ -0,0 +1,4 @@
+int g()
+{
+ return 0;
+}
diff --git a/lib/3rdparty/stlport/build/Makefiles/ut/so1/test_cc.cc b/lib/3rdparty/stlport/build/Makefiles/ut/so1/test_cc.cc
new file mode 100644
index 00000000000..6ccdb8d86fa
--- /dev/null
+++ b/lib/3rdparty/stlport/build/Makefiles/ut/so1/test_cc.cc
@@ -0,0 +1,4 @@
+int f()
+{
+ return 0;
+}
diff --git a/lib/3rdparty/stlport/build/lib/CC.mak b/lib/3rdparty/stlport/build/lib/CC.mak
new file mode 100644
index 00000000000..a028dfad120
--- /dev/null
+++ b/lib/3rdparty/stlport/build/lib/CC.mak
@@ -0,0 +1,17 @@
+# -*- Makefile -*- Time-stamp: <03/10/12 20:35:49 ptr>
+
+SRCROOT := ..
+COMPILER_NAME := CC
+
+STLPORT_ETC_DIR = ../../etc
+STLPORT_INCLUDE_DIR = ../../stlport
+include Makefile.inc
+include ${SRCROOT}/Makefiles/gmake/top.mak
+
+INCLUDES += -I. -I$(STLPORT_INCLUDE_DIR)
+
+# options for build with boost support
+ifdef STLP_BUILD_BOOST_PATH
+INCLUDES += -I$(STLP_BUILD_BOOST_PATH)
+endif
+
diff --git a/lib/3rdparty/stlport/build/lib/Makefile.inc b/lib/3rdparty/stlport/build/lib/Makefile.inc
new file mode 100644
index 00000000000..97cb066dc2d
--- /dev/null
+++ b/lib/3rdparty/stlport/build/lib/Makefile.inc
@@ -0,0 +1,41 @@
+# -*- Makefile -*- Time-stamp: <06/09/08 11:50:49 ptr>
+
+LIBNAME = stlport
+MAJOR = 5
+MINOR = 2
+PATCH = 1
+SRC_CPP = ../../src/dll_main.cpp \
+ ../../src/fstream.cpp \
+ ../../src/strstream.cpp \
+ ../../src/sstream.cpp \
+ ../../src/ios.cpp \
+ ../../src/stdio_streambuf.cpp \
+ ../../src/istream.cpp \
+ ../../src/ostream.cpp \
+ ../../src/iostream.cpp \
+ ../../src/codecvt.cpp \
+ ../../src/collate.cpp \
+ ../../src/ctype.cpp \
+ ../../src/monetary.cpp \
+ ../../src/num_get.cpp \
+ ../../src/num_put.cpp \
+ ../../src/num_get_float.cpp \
+ ../../src/num_put_float.cpp \
+ ../../src/numpunct.cpp \
+ ../../src/time_facets.cpp \
+ ../../src/messages.cpp \
+ ../../src/locale.cpp \
+ ../../src/locale_impl.cpp \
+ ../../src/locale_catalog.cpp \
+ ../../src/facets_byname.cpp \
+ ../../src/complex.cpp \
+ ../../src/complex_io.cpp \
+ ../../src/complex_trig.cpp \
+ ../../src/string.cpp \
+ ../../src/bitset.cpp \
+ ../../src/allocators.cpp
+
+SRC_C = ../../src/c_locale.c \
+ ../../src/cxa.c
+
+SRC_RC = ../../src/stlport.rc
diff --git a/lib/3rdparty/stlport/build/lib/README b/lib/3rdparty/stlport/build/lib/README
new file mode 100644
index 00000000000..2f0e514a5f2
--- /dev/null
+++ b/lib/3rdparty/stlport/build/lib/README
@@ -0,0 +1,85 @@
+Quick start.
+
+ GNU Make (Linux, OpenBSD, FreeBSD, CygWin, etc.), with gcc:
+
+ make -f gcc.mak depend
+ make -f gcc.mak install
+
+ GNU Make (SunOS), with SunPro CC:
+
+ make -f CC.mak depend
+ make -f CC.mak install
+
+ Microsoft NMAKE (MS Windows), with VC6:
+
+ nmake /fmsvc.mak install
+
+
+Make system goals.
+
+ - all source files declared in one place (for all platforms and
+ compilers); the same is for base library (application) name and
+ version.
+ - derive object filenames from source filenames in make system
+ - source files may be situated in few catalogs
+ - avoid information duplication, if possible
+ - support cross-compilation
+
+
+Make targets.
+
+ release-static
+
+ build STLport as static library
+
+ dbg-static
+
+ build STLport as static library (with debug information)
+
+ stldbg-static
+
+ build STLport as static library (STLP_DEBUG mode, with debug information)
+
+ release-shared
+
+ build STLport as dynamic (shared) library
+
+ dbg-shared
+
+ STLport as dynamic (shared) library (with debug information)
+
+ stldbg-shared
+
+ build STLport as dynamic (shared) library (STLP_DEBUG mode, with
+ debug information)
+
+ all (default)
+
+ cumulative target for release,dbg,stldbg -shared on Unix-lile platforms
+ and plus release,dbg,stldbg -static on Windows.
+
+ depend
+
+ create dependency files (for performance reasons dependency not created
+ during compilation process); this target absent for MS NMAKE (due to pure
+ scripting opportunities)
+
+ install-release-shared
+ install-dbg-shared
+ install-stldbg-shared
+ install-release-static
+ install-dbg-static
+ install-stldbg-static
+
+ build and install appropriate libraries and related files, into
+ 'STLport/lib' and 'STLport/bin' (../../lib, relative position of this file)
+
+ install
+
+ cumulative target for install-*-shared on Unix-like platforms and
+ install-*-* on Windows.
+
+ clean
+
+ remove all intermediate files
+
diff --git a/lib/3rdparty/stlport/build/lib/aCC.mak b/lib/3rdparty/stlport/build/lib/aCC.mak
new file mode 100644
index 00000000000..eba15a62ac8
--- /dev/null
+++ b/lib/3rdparty/stlport/build/lib/aCC.mak
@@ -0,0 +1,17 @@
+# -*- Makefile -*- Time-stamp: <03/10/12 20:35:49 ptr>
+
+SRCROOT := ..
+COMPILER_NAME := aCC
+
+STLPORT_INCLUDE_DIR = ../../stlport
+include Makefile.inc
+include ${SRCROOT}/Makefiles/gmake/top.mak
+
+
+INCLUDES += -I$(STLPORT_INCLUDE_DIR)
+
+# options for build with boost support
+ifdef STLP_BUILD_BOOST_PATH
+INCLUDES += -I$(STLP_BUILD_BOOST_PATH)
+endif
+
diff --git a/lib/3rdparty/stlport/build/lib/bcc.mak b/lib/3rdparty/stlport/build/lib/bcc.mak
new file mode 100644
index 00000000000..3b0d6b943d9
--- /dev/null
+++ b/lib/3rdparty/stlport/build/lib/bcc.mak
@@ -0,0 +1,28 @@
+# -*- Makefile -*- Time-stamp: <03/10/12 20:35:49 ptr>
+
+SRCROOT := ..
+COMPILER_NAME := bcc
+
+STLPORT_INCLUDE_DIR = ../../stlport
+include Makefile.inc
+include ${SRCROOT}/Makefiles/gmake/top.mak
+
+ifneq ($(OSNAME),linux)
+OBJ_EXT := obj
+ifndef INCLUDE
+$(error Missing INCLUDE environment variable definition. Please see doc/README.borland \
+for instructions about how to prepare Borland compiler to build STLport libraries.)
+endif
+else
+DEFS += -D_GNU_SOURCE
+GCC_VERSION := $(shell gcc -dumpversion)
+DEFS += -DGCC_VERSION=$(GCC_VERSION)
+endif
+
+INCLUDES += -I$(STLPORT_INCLUDE_DIR)
+
+# options for build with boost support
+ifdef STLP_BUILD_BOOST_PATH
+INCLUDES += -I$(STLP_BUILD_BOOST_PATH)
+endif
+
diff --git a/lib/3rdparty/stlport/build/lib/dmc.mak b/lib/3rdparty/stlport/build/lib/dmc.mak
new file mode 100644
index 00000000000..07f1ed83542
--- /dev/null
+++ b/lib/3rdparty/stlport/build/lib/dmc.mak
@@ -0,0 +1,18 @@
+# -*- Makefile -*- Time-stamp: <03/10/12 20:35:49 ptr>
+
+SRCROOT := ..
+COMPILER_NAME := dmc
+OBJ_EXT := obj
+
+STLPORT_INCLUDE_DIR = ../../stlport
+include Makefile.inc
+include ${SRCROOT}/Makefiles/gmake/top.mak
+
+
+INCLUDES += -I$(STLPORT_INCLUDE_DIR)
+
+# options for build with boost support
+ifdef STLP_BUILD_BOOST_PATH
+INCLUDES += -I$(STLP_BUILD_BOOST_PATH)
+endif
+
diff --git a/lib/3rdparty/stlport/build/lib/evc.mak b/lib/3rdparty/stlport/build/lib/evc.mak
new file mode 100644
index 00000000000..b9c4d4f9c29
--- /dev/null
+++ b/lib/3rdparty/stlport/build/lib/evc.mak
@@ -0,0 +1,39 @@
+!if !EXIST(..\Makefiles\nmake\config.mak)
+!error No config file found, please run 'configure --help' first.
+!endif
+
+!include ..\Makefiles\nmake\config.mak
+
+!ifndef COMPILER_NAME
+!error No compiler set, please run 'configure --help' first and chose a compiler.
+!endif
+
+!if ("$(COMPILER_NAME)" != "evc3" && \
+ "$(COMPILER_NAME)" != "evc4" && \
+ "$(COMPILER_NAME)" != "evc8" && \
+ "$(COMPILER_NAME)" != "evc9")
+!error You picked the wrong makefile, please rerun configure script and follow the instructions.
+!endif
+
+SRCROOT=..
+
+STLPORT_INCLUDE_DIR = ../../stlport
+!include Makefile.inc
+
+CROSS_COMPILING=1
+
+DEFS_REL = /D_STLP_USE_DYNAMIC_LIB
+DEFS_DBG = /D_STLP_USE_DYNAMIC_LIB
+DEFS_STLDBG = /D_STLP_USE_DYNAMIC_LIB
+DEFS_STATIC_REL = /D_STLP_USE_STATIC_LIB
+DEFS_STATIC_DBG = /D_STLP_USE_STATIC_LIB
+DEFS_STATIC_STLDBG = /D_STLP_USE_STATIC_LIB
+
+INCLUDES=$(INCLUDES) /I "$(STLPORT_INCLUDE_DIR)"
+
+LDSEARCH=$(LDSEARCH) /LIBPATH:$(STLPORT_LIB_DIR)
+RC_FLAGS_REL = /I "$(STLPORT_INCLUDE_DIR)" /D "COMP=$(COMPILER_NAME)"
+RC_FLAGS_DBG = /I "$(STLPORT_INCLUDE_DIR)" /D "COMP=$(COMPILER_NAME)"
+RC_FLAGS_STLDBG = /I "$(STLPORT_INCLUDE_DIR)" /D "COMP=$(COMPILER_NAME)"
+
+!include $(SRCROOT)/Makefiles/nmake/top.mak
diff --git a/lib/3rdparty/stlport/build/lib/gcc.mak b/lib/3rdparty/stlport/build/lib/gcc.mak
new file mode 100644
index 00000000000..50bff7ec222
--- /dev/null
+++ b/lib/3rdparty/stlport/build/lib/gcc.mak
@@ -0,0 +1,26 @@
+# -*- Makefile -*- Time-stamp: <08/06/06 10:50:42 yeti>
+
+SRCROOT := ..
+COMPILER_NAME := gcc
+STLP_BUILD := 1
+
+STLPORT_INCLUDE_DIR = ../../stlport
+HEADERS_BASE = ${STLPORT_INCLUDE_DIR}
+
+include Makefile.inc
+include ${SRCROOT}/Makefiles/gmake/top.mak
+include ${SRCROOT}/Makefiles/gmake/subdirs.mak
+
+ifeq ($(OSNAME),linux)
+DEFS += -D_GNU_SOURCE
+endif
+
+# options for build with boost support
+ifdef STLP_BUILD_BOOST_PATH
+INCLUDES += -I$(STLP_BUILD_BOOST_PATH)
+endif
+
+SUBDIRS := ${SRCROOT}/test/unit
+
+check: all
+ +$(call doinsubdirs,${SUBDIRS})
diff --git a/lib/3rdparty/stlport/build/lib/icc.mak b/lib/3rdparty/stlport/build/lib/icc.mak
new file mode 100644
index 00000000000..9583a32c9a0
--- /dev/null
+++ b/lib/3rdparty/stlport/build/lib/icc.mak
@@ -0,0 +1,20 @@
+# -*- Makefile -*- Time-stamp: <03/10/12 20:35:49 ptr>
+
+SRCROOT := ..
+COMPILER_NAME := icc
+
+STLPORT_INCLUDE_DIR = ../../stlport
+include Makefile.inc
+include ${SRCROOT}/Makefiles/gmake/top.mak
+
+INCLUDES += -I$(STLPORT_INCLUDE_DIR)
+
+ifeq ($(OSNAME),linux)
+DEFS += -D_GNU_SOURCE
+endif
+
+# options for build with boost support
+ifdef STLP_BUILD_BOOST_PATH
+INCLUDES += -I$(STLP_BUILD_BOOST_PATH)
+endif
+
diff --git a/lib/3rdparty/stlport/build/lib/icl.mak b/lib/3rdparty/stlport/build/lib/icl.mak
new file mode 100644
index 00000000000..91f3bc4823c
--- /dev/null
+++ b/lib/3rdparty/stlport/build/lib/icl.mak
@@ -0,0 +1,5 @@
+
+COMPILER_NAME=icl
+
+!include msvc.mak
+
diff --git a/lib/3rdparty/stlport/build/lib/msvc.mak b/lib/3rdparty/stlport/build/lib/msvc.mak
new file mode 100644
index 00000000000..b4accdc4ecf
--- /dev/null
+++ b/lib/3rdparty/stlport/build/lib/msvc.mak
@@ -0,0 +1,36 @@
+!if !EXIST(..\Makefiles\nmake\config.mak)
+!error No config file found, please run 'configure --help' first.
+!endif
+
+!include ..\Makefiles\nmake\config.mak
+
+!ifndef COMPILER_NAME
+!error No compiler set, please run 'configure --help' first and chose a compiler.
+!endif
+
+!if (("$(COMPILER_NAME)" != "vc6") && \
+ ("$(COMPILER_NAME)" != "vc70") && \
+ ("$(COMPILER_NAME)" != "vc71") && \
+ ("$(COMPILER_NAME)" != "vc8") && \
+ ("$(COMPILER_NAME)" != "vc9") && \
+ ("$(COMPILER_NAME)" != "icl"))
+!error '$(COMPILER_NAME)' not supported by this make file, please rerun 'configure' script and follow instructions.
+!endif
+
+SRCROOT=..
+
+STLPORT_INCLUDE_DIR = ../../stlport
+!include Makefile.inc
+
+INCLUDES=$(INCLUDES) /I$(STLPORT_INCLUDE_DIR)
+
+RC_FLAGS_REL = /I$(STLPORT_INCLUDE_DIR) /D "COMP=$(COMPILER_NAME)"
+RC_FLAGS_DBG = /I$(STLPORT_INCLUDE_DIR) /D "COMP=$(COMPILER_NAME)"
+RC_FLAGS_STLDBG = /I$(STLPORT_INCLUDE_DIR) /D "COMP=$(COMPILER_NAME)"
+
+#Even if pure release and dbg targets do not need additionnal memory
+#to be built they might if user wants to build a STL safe release build
+#for instance.
+OPT = /Zm800
+
+!include $(SRCROOT)/Makefiles/nmake/top.mak
diff --git a/lib/3rdparty/stlport/build/lib/nmake-src-prefix.mak b/lib/3rdparty/stlport/build/lib/nmake-src-prefix.mak
new file mode 100644
index 00000000000..5da7426907b
--- /dev/null
+++ b/lib/3rdparty/stlport/build/lib/nmake-src-prefix.mak
@@ -0,0 +1,72 @@
+# -*- makefile -*- Time-stamp: <03/10/26 15:42:12 ptr>
+# $Id$
+
+ALLOBJS = $(ALLOBJS:../../src/=)
+ALLRESS = $(ALLRESS:../../src/=)
+
+#
+# rules for .cpp --> .o
+#
+
+{../../src}.cpp{$(OUTPUT_DIR)}.o:
+ $(COMPILE_cc_REL) $(OUTPUT_OPTION) $<
+
+{../../src}.cpp{$(OUTPUT_DIR_DBG)}.o:
+ $(COMPILE_cc_DBG) $(OUTPUT_OPTION_DBG) $<
+
+{../../src}.cpp{$(OUTPUT_DIR_STLDBG)}.o:
+ $(COMPILE_cc_STLDBG) $(OUTPUT_OPTION_STLDBG) $<
+
+{../../src}.cpp{$(OUTPUT_DIR_A)}.o:
+ $(COMPILE_cc_STATIC_REL) $(OUTPUT_OPTION_STATIC) $<
+
+{../../src}.cpp{$(OUTPUT_DIR_A_DBG)}.o:
+ $(COMPILE_cc_STATIC_DBG) $(OUTPUT_OPTION_STATIC_DBG) $<
+
+{../../src}.cpp{$(OUTPUT_DIR_A_STLDBG)}.o:
+ $(COMPILE_cc_STATIC_STLDBG) $(OUTPUT_OPTION_STATIC_STLDBG) $<
+
+#
+# rules for .c --> .o
+#
+
+{../../src}.c{$(OUTPUT_DIR)}.o:
+ $(COMPILE_c_REL) $(OUTPUT_OPTION) $<
+
+{../../src}.c{$(OUTPUT_DIR_DBG)}.o:
+ $(COMPILE_c_DBG) $(OUTPUT_OPTION_DBG) $<
+
+{../../src}.c{$(OUTPUT_DIR_STLDBG)}.o:
+ $(COMPILE_c_STLDBG) $(OUTPUT_OPTION_STLDBG) $<
+
+{../../src}.c{$(OUTPUT_DIR_A)}.o:
+ $(COMPILE_c_STATIC_REL) $(OUTPUT_OPTION_STATIC) $<
+
+{../../src}.c{$(OUTPUT_DIR_A_DBG)}.o:
+ $(COMPILE_c_STATIC_DBG) $(OUTPUT_OPTION_STATIC_DBG) $<
+
+{../../src}.c{$(OUTPUT_DIR_A_STLDBG)}.o:
+ $(COMPILE_c_STATIC_STLDBG) $(OUTPUT_OPTION_STATIC_STLDBG) $<
+
+#
+# rules for .rc --> .res
+#
+
+{../../src}.rc{$(OUTPUT_DIR)}.res:
+ $(COMPILE_rc_REL) $(RC_OUTPUT_OPTION) $<
+
+{../../src}.rc{$(OUTPUT_DIR_DBG)}.res:
+ $(COMPILE_rc_DBG) $(RC_OUTPUT_OPTION_DBG) $<
+
+{../../src}.rc{$(OUTPUT_DIR_STLDBG)}.res:
+ $(COMPILE_rc_STLDBG) $(RC_OUTPUT_OPTION_STLDBG) $<
+
+{../../src}.rc{$(OUTPUT_DIR_A)}.res:
+ $(COMPILE_rc_STATIC_REL) $(RC_OUTPUT_OPTION) $<
+
+{../../src}.rc{$(OUTPUT_DIR_A_DBG)}.res:
+ $(COMPILE_rc_STATIC_DBG) $(RC_OUTPUT_OPTION_DBG) $<
+
+{../../src}.rc{$(OUTPUT_DIR_A_STLDBG)}.res:
+ $(COMPILE_rc_STATIC_STLDBG) $(RC_OUTPUT_OPTION_STLDBG) $<
+
diff --git a/lib/3rdparty/stlport/build/misc/cxa_atexit/Makefile.inc b/lib/3rdparty/stlport/build/misc/cxa_atexit/Makefile.inc
new file mode 100644
index 00000000000..ac824683602
--- /dev/null
+++ b/lib/3rdparty/stlport/build/misc/cxa_atexit/Makefile.inc
@@ -0,0 +1,7 @@
+# -*- Makefile -*- Time-stamp: <05/05/16 22:07:32 ptr>
+
+LIBNAME = cxa
+MAJOR = 0
+MINOR = 0
+PATCH = 1
+SRC_C = ../../../src/cxa.c
diff --git a/lib/3rdparty/stlport/build/misc/cxa_atexit/gcc.mak b/lib/3rdparty/stlport/build/misc/cxa_atexit/gcc.mak
new file mode 100644
index 00000000000..d350e0ad5b8
--- /dev/null
+++ b/lib/3rdparty/stlport/build/misc/cxa_atexit/gcc.mak
@@ -0,0 +1,14 @@
+# -*- Makefile -*- Time-stamp: <03/10/12 20:35:49 ptr>
+# $Id$
+
+SRCROOT := ../..
+COMPILER_NAME := gcc
+
+include Makefile.inc
+include ${SRCROOT}/Makefiles/top.mak
+
+INCLUDES += -I$(STLPORT_INCLUDE_DIR)
+
+ifeq ($(OSNAME),linux)
+DEFS += -D_GNU_SOURCE
+endif
diff --git a/lib/3rdparty/stlport/build/test/eh/Makefile.inc b/lib/3rdparty/stlport/build/test/eh/Makefile.inc
new file mode 100644
index 00000000000..3067964baef
--- /dev/null
+++ b/lib/3rdparty/stlport/build/test/eh/Makefile.inc
@@ -0,0 +1,28 @@
+# -*- makefile -*- Time-stamp: <05/03/29 23:39:01 ptr>
+# $Id$
+
+# this is the version number of needed STLport library for linking
+LIBMAJOR = 5
+LIBMINOR = 2
+
+PRGNAME = eh_test
+SRC_CPP = ../../../test/eh/TestClass.cpp \
+ ../../../test/eh/main.cpp \
+ ../../../test/eh/nc_alloc.cpp \
+ ../../../test/eh/random_number.cpp \
+ ../../../test/eh/test_algo.cpp \
+ ../../../test/eh/test_algobase.cpp \
+ ../../../test/eh/test_list.cpp \
+ ../../../test/eh/test_slist.cpp \
+ ../../../test/eh/test_bit_vector.cpp \
+ ../../../test/eh/test_vector.cpp \
+ ../../../test/eh/test_deque.cpp \
+ ../../../test/eh/test_set.cpp \
+ ../../../test/eh/test_map.cpp \
+ ../../../test/eh/test_hash_map.cpp \
+ ../../../test/eh/test_hash_set.cpp \
+ ../../../test/eh/test_rope.cpp \
+ ../../../test/eh/test_string.cpp \
+ ../../../test/eh/test_bitset.cpp \
+ ../../../test/eh/test_valarray.cpp
+
diff --git a/lib/3rdparty/stlport/build/test/eh/bcc.mak b/lib/3rdparty/stlport/build/test/eh/bcc.mak
new file mode 100644
index 00000000000..202086736ad
--- /dev/null
+++ b/lib/3rdparty/stlport/build/test/eh/bcc.mak
@@ -0,0 +1,17 @@
+
+SRCROOT := ../..
+COMPILER_NAME := bcc
+OBJ_EXT := obj
+
+STLPORT_DIR := ../../..
+include Makefile.inc
+include ${SRCROOT}/Makefiles/gmake/top.mak
+
+INCLUDES += -I${STLPORT_INCLUDE_DIR}
+
+ifdef STLP_BUILD_BOOST_PATH
+INCLUDES += -I${STLP_BUILD_BOOST_PATH}
+endif
+
+LDSEARCH = -L${STLPORT_LIB_DIR}
+
diff --git a/lib/3rdparty/stlport/build/test/eh/evc.mak b/lib/3rdparty/stlport/build/test/eh/evc.mak
new file mode 100644
index 00000000000..031a043325a
--- /dev/null
+++ b/lib/3rdparty/stlport/build/test/eh/evc.mak
@@ -0,0 +1,35 @@
+!if !EXIST(..\..\Makefiles\nmake\config.mak)
+!error No config file found, please run 'configure --help' first.
+!endif
+
+!include ..\..\Makefiles\nmake\config.mak
+
+!ifndef COMPILER_NAME
+!error No compiler set, please run 'configure --help' first and chose a compiler.
+!endif
+
+!if ("$(COMPILER_NAME)" != "evc3" && \
+ "$(COMPILER_NAME)" != "evc4" && \
+ "$(COMPILER_NAME)" != "evc8" && \
+ "$(COMPILER_NAME)" != "evc9")
+!error You pick the wrong makefile, please rerun configure script and follow the instructions.
+!endif
+
+SRCROOT=../..
+STLPORT_DIR=../../..
+CROSS_COMPILING=1
+
+!include Makefile.inc
+
+INCLUDES=$(INCLUDES) /I "$(STLPORT_INCLUDE_DIR)" /I "cppunit" /I "$(STLPORT_DIR)/src/" /FI "warning_disable.h"
+
+DEFS_REL = /D_STLP_USE_DYNAMIC_LIB
+DEFS_DBG = /D_STLP_USE_DYNAMIC_LIB
+DEFS_STLDBG = /D_STLP_USE_DYNAMIC_LIB
+DEFS_STATIC_REL = /D_STLP_USE_STATIC_LIB
+DEFS_STATIC_DBG = /D_STLP_USE_STATIC_LIB
+DEFS_STATIC_STLDBG = /D_STLP_USE_STATIC_LIB
+
+LDSEARCH=$(LDSEARCH) /LIBPATH:$(STLPORT_LIB_DIR)
+
+!include $(SRCROOT)/Makefiles/nmake/top.mak
diff --git a/lib/3rdparty/stlport/build/test/eh/gcc.mak b/lib/3rdparty/stlport/build/test/eh/gcc.mak
new file mode 100644
index 00000000000..dde60e6299b
--- /dev/null
+++ b/lib/3rdparty/stlport/build/test/eh/gcc.mak
@@ -0,0 +1,30 @@
+# -*- Makefile -*- Time-stamp: <05/03/10 17:51:53 ptr>
+
+SRCROOT := ../..
+COMPILER_NAME := gcc
+
+ALL_TAGS := release-shared dbg-shared stldbg-shared
+STLPORT_DIR := ../../..
+include Makefile.inc
+include ${SRCROOT}/Makefiles/gmake/top.mak
+
+INCLUDES += -I${STLPORT_INCLUDE_DIR}
+DEFS += -D_STLP_NO_CUSTOM_IO
+
+ifdef STLP_BUILD_BOOST_PATH
+INCLUDES += -I${STLP_BUILD_BOOST_PATH}
+endif
+
+ifndef TARGET_OS
+release-shared: LDSEARCH = -L${STLPORT_LIB_DIR} -Wl,-R${STLPORT_LIB_DIR}
+dbg-shared: LDSEARCH = -L${STLPORT_LIB_DIR} -Wl,-R${STLPORT_LIB_DIR}
+stldbg-shared: LDSEARCH = -L${STLPORT_LIB_DIR} -Wl,-R${STLPORT_LIB_DIR}
+else
+release-shared: LDSEARCH = -L${STLPORT_LIB_DIR}
+dbg-shared: LDSEARCH = -L${STLPORT_LIB_DIR}
+stldbg-shared: LDSEARCH = -L${STLPORT_LIB_DIR}
+endif
+
+dbg-shared: DEFS += -D_STLP_DEBUG_UNINITIALIZED
+stldbg-shared: DEFS += -D_STLP_DEBUG_UNINITIALIZED
+
diff --git a/lib/3rdparty/stlport/build/test/eh/icl.mak b/lib/3rdparty/stlport/build/test/eh/icl.mak
new file mode 100644
index 00000000000..91f3bc4823c
--- /dev/null
+++ b/lib/3rdparty/stlport/build/test/eh/icl.mak
@@ -0,0 +1,5 @@
+
+COMPILER_NAME=icl
+
+!include msvc.mak
+
diff --git a/lib/3rdparty/stlport/build/test/eh/msvc.mak b/lib/3rdparty/stlport/build/test/eh/msvc.mak
new file mode 100644
index 00000000000..302708271f9
--- /dev/null
+++ b/lib/3rdparty/stlport/build/test/eh/msvc.mak
@@ -0,0 +1,34 @@
+!if !EXIST(..\..\Makefiles\nmake\config.mak)
+!error No config file found, please run 'configure --help' first.
+!endif
+
+!include ..\..\Makefiles\nmake\config.mak
+
+!ifndef COMPILER_NAME
+!error No compiler set, please run 'configure --help' first and chose a compiler.
+!endif
+
+!if (("$(COMPILER_NAME)" != "vc6") && \
+ ("$(COMPILER_NAME)" != "vc70") && \
+ ("$(COMPILER_NAME)" != "vc71") && \
+ ("$(COMPILER_NAME)" != "vc8") && \
+ ("$(COMPILER_NAME)" != "vc9") && \
+ ("$(COMPILER_NAME)" != "icl"))
+!error '$(COMPILER_NAME)' not supported by this make file, please rerun 'configure' script and follow instructions.
+!endif
+
+SRCROOT=../..
+STLPORT_DIR=../../..
+
+!include Makefile.inc
+
+!ifndef WITHOUT_STLPORT
+INCLUDES=$(INCLUDES) /I$(STLPORT_INCLUDE_DIR) /I$(STLPORT_DIR)/src /FI warning_disable.h
+!else
+INCLUDES=$(INCLUDES) /I$(STLPORT_DIR)/src /FI warning_disable.h
+DEFS=/DWITHOUT_STLPORT
+!endif
+
+LDSEARCH=$(LDSEARCH) /LIBPATH:$(STLPORT_LIB_DIR)
+
+!include $(SRCROOT)/Makefiles/nmake/top.mak
diff --git a/lib/3rdparty/stlport/build/test/eh/nmake-src-prefix.mak b/lib/3rdparty/stlport/build/test/eh/nmake-src-prefix.mak
new file mode 100644
index 00000000000..6a4d4737a64
--- /dev/null
+++ b/lib/3rdparty/stlport/build/test/eh/nmake-src-prefix.mak
@@ -0,0 +1,27 @@
+# -*- makefile -*- Time-stamp: <04/03/29 22:25:01 ptr>
+# $Id$
+
+ALLOBJS = $(ALLOBJS:../../../test/eh/=)
+
+#
+# rules for .cpp --> .o
+#
+
+{../../../test/eh}.cpp{$(OUTPUT_DIR)}.o:
+ $(COMPILE_cc_REL) $(OUTPUT_OPTION) $<
+
+{../../../test/eh}.cpp{$(OUTPUT_DIR_DBG)}.o:
+ $(COMPILE_cc_DBG) $(OUTPUT_OPTION_DBG) $<
+
+{../../../test/eh}.cpp{$(OUTPUT_DIR_STLDBG)}.o:
+ $(COMPILE_cc_STLDBG) $(OUTPUT_OPTION_STLDBG) $<
+
+{../../../test/eh}.cpp{$(OUTPUT_DIR_A)}.o:
+ $(COMPILE_cc_STATIC_REL) $(OUTPUT_OPTION_STATIC) $<
+
+{../../../test/eh}.cpp{$(OUTPUT_DIR_A_DBG)}.o:
+ $(COMPILE_cc_STATIC_DBG) $(OUTPUT_OPTION_STATIC_DBG) $<
+
+{../../../test/eh}.cpp{$(OUTPUT_DIR_A_STLDBG)}.o:
+ $(COMPILE_cc_STATIC_STLDBG) $(OUTPUT_OPTION_STATIC_STLDBG) $<
+
diff --git a/lib/3rdparty/stlport/build/test/unit/CC.mak b/lib/3rdparty/stlport/build/test/unit/CC.mak
new file mode 100644
index 00000000000..4d488a1a372
--- /dev/null
+++ b/lib/3rdparty/stlport/build/test/unit/CC.mak
@@ -0,0 +1,45 @@
+# -*- Makefile -*- Time-stamp: <08/06/12 16:25:17 ptr>
+
+SRCROOT := ../..
+COMPILER_NAME := CC
+-include ${SRCROOT}/Makefiles/gmake/config.mak
+ALL_TAGS = release-shared check-release
+CHECK_TAGS = check-release
+ifndef WITHOUT_STLPORT
+ALL_TAGS += stldbg-shared check-stldbg
+CHECK_TAGS += check-stldbg
+endif
+STLPORT_DIR ?= ../../..
+
+include Makefile.inc
+include ${SRCROOT}/Makefiles/gmake/top.mak
+
+ifdef WITHOUT_STLPORT
+DEFS += -DWITHOUT_STLPORT
+endif
+
+dbg-shared: DEFS += -D_STLP_DEBUG_UNINITIALIZED
+ifndef WITHOUT_STLPORT
+stldbg-shared: DEFS += -D_STLP_DEBUG_UNINITIALIZED
+endif
+
+ifdef STLP_BUILD_BOOST_PATH
+INCLUDES += -I${STLP_BUILD_BOOST_PATH}
+endif
+
+ifndef WITHOUT_STLPORT
+release-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR} -Qoption ld -R${STLPORT_DIR}/build/lib/${OUTPUT_DIR}
+dbg-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR_DBG} -Qoption ld -R${STLPORT_DIR}/build/lib/${OUTPUT_DIR_DBG}
+stldbg-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR_STLDBG} -Qoption ld -R${STLPORT_DIR}/build/lib/${OUTPUT_DIR_STLDBG}
+endif
+
+check-release: release-shared
+ -${OUTPUT_DIR}/${PRGNAME}
+
+ifndef WITHOUT_STLPORT
+check-stldbg: stldbg-shared
+ -${OUTPUT_DIR_STLDBG}/${PRGNAME}
+endif
+
+check: ${CHECK_TAGS}
+
diff --git a/lib/3rdparty/stlport/build/test/unit/Makefile.inc b/lib/3rdparty/stlport/build/test/unit/Makefile.inc
new file mode 100644
index 00000000000..cfbe180a5fa
--- /dev/null
+++ b/lib/3rdparty/stlport/build/test/unit/Makefile.inc
@@ -0,0 +1,190 @@
+# -*- makefile -*- Time-stamp: <07/06/27 20:39:05 ptr>
+
+# this is the version number of needed STLport library for linking
+LIBMAJOR = 5
+LIBMINOR = 2
+
+PRGNAME = stl_unit_test
+SRC_CPP = ../../../test/unit/cppunit/test_main.cpp \
+ ../../../test/unit/accum_test.cpp \
+ ../../../test/unit/adj_test.cpp \
+ ../../../test/unit/advance_test.cpp \
+ ../../../test/unit/alg_test.cpp \
+ ../../../test/unit/algorithm_header_test.cpp \
+ ../../../test/unit/allocator_test.cpp \
+ ../../../test/unit/bcompos_test.cpp \
+ ../../../test/unit/bind_test.cpp \
+ ../../../test/unit/binsert_test.cpp \
+ ../../../test/unit/bitset_test.cpp \
+ ../../../test/unit/bitset_header_test.cpp \
+ ../../../test/unit/bnegate_test.cpp \
+ ../../../test/unit/boost_check.cpp \
+ ../../../test/unit/bound_test.cpp \
+ ../../../test/unit/bsearch_test.cpp \
+ ../../../test/unit/bvector_test.cpp \
+ ../../../test/unit/cassert_header_test.cpp \
+ ../../../test/unit/cctype_header_test.cpp \
+ ../../../test/unit/cerrno_header_test.cpp \
+ ../../../test/unit/cfloat_header_test.cpp \
+ ../../../test/unit/ciso646_header_test.cpp \
+ ../../../test/unit/climits_header_test.cpp \
+ ../../../test/unit/clocale_header_test.cpp \
+ ../../../test/unit/cmath_test.cpp \
+ ../../../test/unit/cmath_header_test.cpp \
+ ../../../test/unit/codecvt_test.cpp \
+ ../../../test/unit/collate_facets_test.cpp \
+ ../../../test/unit/complex_header_test.cpp \
+ ../../../test/unit/config_test.cpp \
+ ../../../test/unit/copy_test.cpp \
+ ../../../test/unit/count_test.cpp \
+ ../../../test/unit/csetjmp_header_test.cpp \
+ ../../../test/unit/setjmp_header_test2.cpp \
+ ../../../test/unit/csignal_header_test.cpp \
+ ../../../test/unit/cstdarg_header_test.cpp \
+ ../../../test/unit/cstddef_header_test.cpp \
+ ../../../test/unit/cstdio_header_test.cpp \
+ ../../../test/unit/cstdlib_header_test.cpp \
+ ../../../test/unit/cstring_test.cpp \
+ ../../../test/unit/cstring_header_test.cpp \
+ ../../../test/unit/ctime_header_test.cpp \
+ ../../../test/unit/ctype_facets_test.cpp \
+ ../../../test/unit/cwchar_header_test.cpp \
+ ../../../test/unit/cwctype_header_test.cpp \
+ ../../../test/unit/deque_test.cpp \
+ ../../../test/unit/deque_header_test.cpp \
+ ../../../test/unit/divides_test.cpp \
+ ../../../test/unit/equal_test.cpp \
+ ../../../test/unit/exception_test.cpp \
+ ../../../test/unit/exception_header_test.cpp \
+ ../../../test/unit/epilog_test.cpp \
+ ../../../test/unit/fill_test.cpp \
+ ../../../test/unit/find_test.cpp \
+ ../../../test/unit/finsert_test.cpp \
+ ../../../test/unit/foreach_test.cpp \
+ ../../../test/unit/fstream_test.cpp \
+ ../../../test/unit/fstream_header_test.cpp \
+ ../../../test/unit/func_test.cpp \
+ ../../../test/unit/functional_header_test.cpp \
+ ../../../test/unit/generator_test.cpp \
+ ../../../test/unit/greater_test.cpp \
+ ../../../test/unit/hash_test.cpp \
+ ../../../test/unit/heap_test.cpp \
+ ../../../test/unit/includes_test.cpp \
+ ../../../test/unit/innerprod_test.cpp \
+ ../../../test/unit/inplace_test.cpp \
+ ../../../test/unit/insert_test.cpp \
+ ../../../test/unit/ioiter_test.cpp \
+ ../../../test/unit/iomanip_header_test.cpp \
+ ../../../test/unit/ios_header_test.cpp \
+ ../../../test/unit/iosfwd_header_test.cpp \
+ ../../../test/unit/iostream_header_test.cpp \
+ ../../../test/unit/iostream_test.cpp \
+ ../../../test/unit/iota_test.cpp \
+ ../../../test/unit/istmit_test.cpp \
+ ../../../test/unit/istream_header_test.cpp \
+ ../../../test/unit/iter_test.cpp \
+ ../../../test/unit/iterator_header_test.cpp \
+ ../../../test/unit/less_test.cpp \
+ ../../../test/unit/lexcmp_test.cpp \
+ ../../../test/unit/limits_test.cpp \
+ ../../../test/unit/limits_header_test.cpp \
+ ../../../test/unit/list_test.cpp \
+ ../../../test/unit/list_header_test.cpp \
+ ../../../test/unit/locale_test.cpp \
+ ../../../test/unit/locale_header_test.cpp \
+ ../../../test/unit/logic_test.cpp \
+ ../../../test/unit/macro_checks.cpp \
+ ../../../test/unit/map_test.cpp \
+ ../../../test/unit/map_header_test.cpp \
+ ../../../test/unit/max_test.cpp \
+ ../../../test/unit/memory_header_test.cpp \
+ ../../../test/unit/memory_test.cpp \
+ ../../../test/unit/merge_test.cpp \
+ ../../../test/unit/messages_facets_test.cpp \
+ ../../../test/unit/mfunptr_test.cpp \
+ ../../../test/unit/min_test.cpp \
+ ../../../test/unit/mismatch_test.cpp \
+ ../../../test/unit/modulus_test.cpp \
+ ../../../test/unit/money_facets_test.cpp \
+ ../../../test/unit/multiset_test.cpp \
+ ../../../test/unit/mvctor_test.cpp \
+ ../../../test/unit/mvctor_declaration_test.cpp \
+ ../../../test/unit/mvctor_traits_test.cpp \
+ ../../../test/unit/neq_test.cpp \
+ ../../../test/unit/new_header_test.cpp \
+ ../../../test/unit/nthelm_test.cpp \
+ ../../../test/unit/num_facets_test.cpp \
+ ../../../test/unit/num_put_get_test.cpp \
+ ../../../test/unit/numeric_header_test.cpp \
+ ../../../test/unit/ostmit_test.cpp \
+ ../../../test/unit/ostream_header_test.cpp \
+ ../../../test/unit/pair_test.cpp \
+ ../../../test/unit/partial_test.cpp \
+ ../../../test/unit/partition_test.cpp \
+ ../../../test/unit/perm_test.cpp \
+ ../../../test/unit/plusminus_test.cpp \
+ ../../../test/unit/ptr2_test.cpp \
+ ../../../test/unit/ptrspec_test.cpp \
+ ../../../test/unit/queue_test.cpp \
+ ../../../test/unit/queue_header_test.cpp \
+ ../../../test/unit/rawriter_test.cpp \
+ ../../../test/unit/reference_wrapper_test.cpp \
+ ../../../test/unit/resolve_name.cpp \
+ ../../../test/unit/reviter_test.cpp \
+ ../../../test/unit/rm_cp_test.cpp \
+ ../../../test/unit/rndshf_test.cpp \
+ ../../../test/unit/rope_test.cpp \
+ ../../../test/unit/rotate_test.cpp \
+ ../../../test/unit/search_test.cpp \
+ ../../../test/unit/set_test.cpp \
+ ../../../test/unit/set_header_test.cpp \
+ ../../../test/unit/setdiff_test.cpp \
+ ../../../test/unit/setinter_test.cpp \
+ ../../../test/unit/setunion_test.cpp \
+ ../../../test/unit/shared_ptr_test.cpp \
+ ../../../test/unit/slist_test.cpp \
+ ../../../test/unit/sort_test.cpp \
+ ../../../test/unit/sstream_test.cpp \
+ ../../../test/unit/sstream_header_test.cpp \
+ ../../../test/unit/stack_test.cpp \
+ ../../../test/unit/stack_header_test.cpp \
+ ../../../test/unit/stdexcept_header_test.cpp \
+ ../../../test/unit/stldbg_include.cpp \
+ ../../../test/unit/string_test.cpp \
+ ../../../test/unit/strstream_buffer_read_test.cpp \
+ ../../../test/unit/strstream_header_test.cpp \
+ ../../../test/unit/swap_test.cpp \
+ ../../../test/unit/times_test.cpp \
+ ../../../test/unit/transform_test.cpp \
+ ../../../test/unit/type_traits_test.cpp \
+ ../../../test/unit/typeinfo_header_test.cpp \
+ ../../../test/unit/unary_test.cpp \
+ ../../../test/unit/uninitialized_test.cpp \
+ ../../../test/unit/unique_test.cpp \
+ ../../../test/unit/unordered_test.cpp \
+ ../../../test/unit/utility_header_test.cpp \
+ ../../../test/unit/valarray_test.cpp \
+ ../../../test/unit/valarray_header_test.cpp \
+ ../../../test/unit/vector_test.cpp \
+ ../../../test/unit/vector_header_test.cpp \
+ ../../../test/unit/test_errno.cpp \
+ ../../../test/unit/time_facets_test.cpp
+
+SRC_C = ../../../test/unit/assert_header_test.c \
+ ../../../test/unit/ctype_header_test.c \
+ ../../../test/unit/c_limits_header_test.c \
+ ../../../test/unit/c_locale_header_test.c \
+ ../../../test/unit/errno_header_test.c \
+ ../../../test/unit/float_header_test.c \
+ ../../../test/unit/iso646_header_test.c \
+ ../../../test/unit/math_header_test.c \
+ ../../../test/unit/setjmp_header_test.c \
+ ../../../test/unit/signal_header_test.c \
+ ../../../test/unit/stdarg_header_test.c \
+ ../../../test/unit/stddef_header_test.c \
+ ../../../test/unit/stdio_header_test.c \
+ ../../../test/unit/stdlib_header_test.c \
+ ../../../test/unit/string_header_test.c \
+ ../../../test/unit/time_header_test.c \
+ ../../../test/unit/wchar_header_test.c \
+ ../../../test/unit/wctype_header_test.c
diff --git a/lib/3rdparty/stlport/build/test/unit/README b/lib/3rdparty/stlport/build/test/unit/README
new file mode 100644
index 00000000000..8fd2f8044a4
--- /dev/null
+++ b/lib/3rdparty/stlport/build/test/unit/README
@@ -0,0 +1,409 @@
+$Id$
+
+===========================
+STLport testing unit README
+===========================
+
+=======
+Purpose
+=======
+Provide independent STLport unit tests, with clearly defined pass/failed
+result for every single test without any user action (i.e. diff)
+and without any input request (i.e. files, cin input ...).
+
+=====
+Build
+=====
+Use makefile(s):
+
+make -f gcc.mak
+
+======================
+Running the test suite
+======================
+commad-line syntax as follows:
+ stl_unit_test [OPTIONS]
+ where OPTIONS are
+ -t=CLASS[::TEST] run the test class CLASS or member test CLASS::TEST
+ -f=FILE save output in file FILE instead of stdout
+
+examples:
+./stl_unit_test
+ - runs all tests registered with this unit
+
+./stl_unit_test -f=out.txt
+ - runs all tests registered with this unit but print results into out.txt instead of stdout
+
+./stl_unit_test -t=VectorTest
+ - runs all tests registered in VectorTest class
+
+./stl_unit_test -t=VectorTest::vec_test_1 -f=out.txt
+ - runs only VectorTest::vec_test_1() test, print result into out.txt instead of stdout
+
+==================
+CU mini background
+==================
+see:
+http://www.stlport.com/dcforum/DCForumID5/764.html
+
+Note: cppunit mini sources are modified from original!
+
+===============
+Adding new test
+===============
+You can add/create new tests easily just use _template.cpp as your new
+test class and do not forget to edit Makefile.inc
+
+For guide to CppUnit like tests see http://cppunit.sourceforge.net/
+
+==============================================
+Replacement of regression by unit tests:
+==============================================
+
+regression unit
+-----------------------------------------
+accum1.cpp accum_test.cpp
+accum2.cpp
+
+adjdiff0.cpp adj_test.cpp
+adjdiff1.cpp
+adjdiff2.cpp
+adjfind0.cpp
+adjfind1.cpp
+adjfind2.cpp
+
+advance.cpp advance_test.cpp
+
+alg1.cpp alg_test.cpp
+alg2.cpp
+alg3.cpp
+alg4.cpp
+alg5.cpp
+
+bcompos1.cpp bcompos_test.cpp
+bcompos2.cpp
+
+bind1st1.cpp bind_test.cpp
+bind1st2.cpp
+bind2nd1.cpp
+bind2nd2.cpp
+
+binsert1.cpp binsert_test.cpp
+binsert2.cpp
+
+binsrch1.cpp bsearch_test.cpp
+binsrch2.cpp
+
+bnegate1.cpp bnegate_test.cpp
+bnegate2.cpp
+
+bvec1.cpp bvector_test.cpp
+
+bug.cpp -
+
+copy1.cpp copy_test.cpp
+copy2.cpp
+copy3.cpp
+copy4.cpp
+copyb0.cpp
+copyb.cpp
+
+count0.cpp count_test.cpp
+count1.cpp
+countif1.cpp
+
+deque1.cpp deque_test.cpp
+
+divides.cpp divides_test.cpp
+
+eqlrnge0.cpp equal_test.cpp
+eqlrnge1.cpp
+eqlrnge2.cpp
+equal0.cpp
+equal1.cpp
+equal2.cpp
+equalto.cpp
+
+fill1.cpp fill_test.cpp
+filln1.cpp
+
+find0.cpp find_test.cpp
+find1.cpp
+findif0.cpp
+findif1.cpp
+
+finsert1.cpp finsert_test.cpp
+finsert2.cpp
+
+float_input.cpp floatio_test.cpp
+float_output.cpp
+
+foreach0.cpp foreach_test.cpp
+foreach1.cpp
+
+fstream1.cpp -
+
+func1.cpp func_test.cpp
+func2.cpp
+func3.cpp
+
+gener1.cpp generator_test.cpp
+gener2.cpp
+genern1.cpp
+genern2.cpp
+
+greateq.cpp greater_test.cpp
+greater.cpp
+
+hmap1.cpp hash_test.cpp
+hmmap1.cpp
+hmset1.cpp
+hset2.cpp
+
+incl0.cpp includes_test.cpp
+incl1.cpp
+incl2.cpp
+
+inplmrg1.cpp inplace_test.cpp
+inplmrg2.cpp
+
+inrprod0.cpp innerprod_test.cpp
+inrprod1.cpp
+inrprod2.cpp
+
+insert1.cpp insert_test.cpp
+insert2.cpp
+
+ioiter.cpp ioiter_test.cpp
+
+iota1.cpp iota_test.cpp
+
+istmit1.cpp istmit_test.cpp
+
+iter1.cpp iter_test.cpp
+iter2.cpp
+iter3.cpp
+iter4.cpp
+iterswp.cpp
+
+less.cpp less_test.cpp
+lesseq.cpp
+
+lexcmp1.cpp lexcmp_test.cpp
+lexcmp2.cpp
+
+list1.cpp list_test.cpp
+list2.cpp
+list3.cpp
+list4.cpp
+
+logicand.cpp logic_test.cpp
+logicnot.cpp
+logicor.cpp
+
+lwrbnd1.cpp bound_test.cpp
+lwrbnd2.cpp
+uprbnd1.cpp
+uprbnd2.cpp
+
+map1.cpp map_test.cpp
+mmap1.cpp
+mmap2.cpp
+
+max1.cpp max_test.cpp
+max2.cpp
+maxelem1.cpp
+maxelem2.cpp
+
+memfunptr.cpp mfunptr_test.cpp
+
+merge0.cpp merge_test.cpp
+merge1.cpp
+merge2.cpp
+
+min1.cpp min_test.cpp
+min2.cpp
+minelem1.cpp
+minelem2.cpp
+
+minus.cpp plusminus.cpp
+
+mismtch0.cpp mismatch_test.cpp
+mismtch1.cpp
+mismtch2.cpp
+
+mkheap0.cpp heap_test.cpp
+mkheap1.cpp
+pheap0.cpp
+pheap1.cpp
+
+modulus.cpp modulus_test.cpp
+
+move_constructor.cpp mvctor_test.cpp
+
+multiset.cpp multiset_test.cpp
+
+negate.cpp neq_test.cpp
+nequal.cpp
+
+nextprm0.cpp perm_test.cpp
+nextprm1.cpp
+nextprm2.cpp
+prevprm0.cpp
+prevprm1.cpp
+prevprm2.cpp
+
+nthelem0.cpp nthelm_test.cpp
+nthelem1.cpp
+nthelem2.cpp
+
+ostmit.cpp ostmit_test.cpp
+
+pair0.cpp pair_test.cpp
+pair1.cpp
+pair2.cpp
+
+parsrt0.cpp partial_test.cpp
+parsrt1.cpp
+parsrt2.cpp
+parsrtc0.cpp
+parsrtc1.cpp
+parsrtc2.cpp
+partsum0.cpp
+partsum1.cpp
+partsum2.cpp
+
+pqueue1.cpp queue_test.cpp
+queue1.cpp
+
+ptition0.cpp partition_test.cpp
+ptition1.cpp
+stblptn0.cpp
+stblptn1.cpp
+
+ptrbinf1.cpp ptr2_test.cpp
+ptrbinf2.cpp
+ptrunf1.cpp
+ptrunf2.cpp
+
+ptr_specialization.cpp ptrspec_test.cpp
+
+quiet_signal_nan.cpp -
+
+rawiter.cpp rawiter.cpp
+
+remcopy1.cpp rm_cp_test.cpp
+remcpif1.cpp
+remif1.cpp
+remove1.cpp
+repcpif1.cpp
+replace0.cpp
+replace1.cpp
+replcpy1.cpp
+replif1.cpp
+revcopy1.cpp
+reverse1.cpp
+
+reviter1.cpp reviter_test.cpp
+reviter2.cpp
+revbit1.cpp
+
+rndshuf0.cpp rndshf_test.cpp
+rndshuf1.cpp
+rndshuf2.cpp
+
+rotate0.cpp rotate_copy.cpp
+rotate1.cpp
+rotcopy0.cpp
+rotcopy1.cpp
+
+search0.cpp search_test.cpp
+search1.cpp
+search2.cpp
+
+seek.cpp -
+
+set.cpp set_test.cpp
+
+setdiff0.cpp setdiff_test.cpp
+setdiff1.cpp
+setdiff2.cpp
+setsymd0.cpp
+setsymd1.cpp
+setsymd2.cpp
+
+setintr0.cpp setinter_test.cpp
+setintr1.cpp
+setintr2.cpp
+
+setunon0.cpp setunion_test.cpp
+setunon1.cpp
+setunon2.cpp
+
+single.cpp -
+
+slist1.cpp slist_test.cpp
+
+sort1.cpp sort_test.cpp
+sort2.cpp
+stblsrt1.cpp
+stblsrt2.cpp
+
+sstream1.cpp -
+
+stack1.cpp stack_test.cpp
+stack2.cpp
+
+strass1.cpp -
+
+string1.cpp string_test.cpp
+string_mt.cpp
+short_string.cpp
+
+swap1.cpp swap_test.cpp
+swprnge1.cpp
+
+times.cpp times_test.cpp
+
+trnsfrm1.cpp transform_test.cpp
+trnsfrm2.cpp
+
+tstdeq.cpp -
+
+ucompos1.cpp unary_test.cpp
+ucompos2.cpp
+unegate1.cpp
+unegate2.cpp
+
+uniqcpy1.cpp unique_test.cpp
+uniqcpy2.cpp
+unique1.cpp
+unique2.cpp
+
+vec.cpp vector_test.cpp
+
+======
+Status
+======
+So far all tests from regression directory were ported except following ones:
+
+iter2.cpp (pointless - already tested in iter1.cpp,
+ see iter_test.cpp)
+move_constructor.cpp (not fully tested see mvctor_test.cpp)
+mset1.cpp (moved in multiset.cpp)
+mset3.cpp (moved in multiset.cpp)
+mset4.cpp (moved in multiset.cpp)
+mset5.cpp (moved in multiset.cpp)
+pair1.cpp (pointless - already tested in pair0.cpp,
+ see pair_test.cpp)
+pair2.cpp (pointless - already tested in pair0.cpp,
+ see pair_test.cpp)
+partsrt0.cpp (identic w ith parsrt0.cpp - tested in
+ pair_test.cpp )
+quiet_signal_nan.cpp
+revbit2.cpp (pointless - already tested in revbit1.cpp,
+ see reviter_test.cpp )
+rndshuf1.cpp (pointless - already tested in rndshuf0.cpp,
+ see rndshf_test.cpp )
+set1.cpp (moved in set.cpp)
+set2.cpp (moved in set.cpp)
diff --git a/lib/3rdparty/stlport/build/test/unit/STATUS b/lib/3rdparty/stlport/build/test/unit/STATUS
new file mode 100644
index 00000000000..ffc8f4ba60f
--- /dev/null
+++ b/lib/3rdparty/stlport/build/test/unit/STATUS
@@ -0,0 +1,856 @@
+=======================================================================
+Operational environment: cross for Linux 2.6.9 uClibc 0.9.27, IA32
+=======================================================================
+
+-----------------------------------------------------------------------
+Compiler: gcc 3.4.3 (cross-compiler)
+-----------------------------------------------------------------------
+Date: 2005-03-29
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: ptr (Petr Ovtchenkov)
+Status (release-shared): Fail 1 of 320 tests
+Notes: FloatIOTest::float_output_test
+
+ ../../../test/unit/floatio_test.cpp(64) : CPPUNIT_ASSERT(output.substr(18) == ".000000");
+ Use -fno-builtin option, as in uClibc build!
+Status (stldbg-shared): Fail 1 of 320 tests
+Notes: Same as notes for release (above)
+
+
+=======================================================================
+Operational environment: Linux 2.6.12/SMP glibc 2.2.5, IA32
+=======================================================================
+
+-----------------------------------------------------------------------
+Compiler: gcc 3.4.4
+-----------------------------------------------------------------------
+Date: 2005-11-20
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: ptr (Petr Ovtchenkov)
+Status (release-shared): All pass (334 tests)
+Notes:
+Status (stldbg-shared): All pass (334 tests)
+Notes:
+
+-----------------------------------------------------------------------
+Compiler: gcc 3.4.2
+-----------------------------------------------------------------------
+Date: 2005-09-05
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: ptr (Petr Ovtchenkov)
+Status (release-shared): All pass (331 tests)
+Notes:
+Status (stldbg-shared): All pass (331 tests)
+Notes:
+
+
+=======================================================================
+Operational environment: Linux 2.4.26/SMP glibc 2.2.5, IA32
+=======================================================================
+
+-----------------------------------------------------------------------
+Compiler: gcc 4.0.0
+-----------------------------------------------------------------------
+Date: 2005-04-25
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: ptr (Petr Ovtchenkov)
+Status (release-shared): All pass (324 tests)
+Notes:
+Status (stldbg-shared): All pass (324 tests)
+Notes:
+
+-----------------------------------------------------------------------
+Compiler: gcc 3.4.2
+-----------------------------------------------------------------------
+Date: 2005-06-25
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: ptr (Petr Ovtchenkov)
+Status (release-shared): All pass (327 tests)
+Notes:
+Status (stldbg-shared): All pass (327 tests)
+Notes:
+
+-----------------------------------------------------------------------
+Compiler: gcc 3.4.1
+-----------------------------------------------------------------------
+Date: 2004-10-18
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: ptr (Petr Ovtchenkov)
+Status (release-shared): All pass (298 tests)
+Notes:
+Status (stldbg-shared): All pass (298 tests)
+Notes:
+
+-----------------------------------------------------------------------
+Compiler: gcc 3.3.3
+-----------------------------------------------------------------------
+Date: 2004-08-26
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: ptr (Petr Ovtchenkov)
+Status (release-shared): All pass (282 tests)
+Notes:
+Status (stldbg-shared): All pass (282 tests)
+Notes:
+
+-----------------------------------------------------------------------
+Compiler: gcc 3.3.1
+-----------------------------------------------------------------------
+Date: 2004-08-26
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: ptr (Petr Ovtchenkov)
+Status (release-shared): All pass (282 tests)
+Notes:
+Status (stldbg-shared): All pass (282 tests)
+Notes:
+
+-----------------------------------------------------------------------
+Compiler: gcc 3.2.3
+-----------------------------------------------------------------------
+Date: 2004-08-27
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: ptr (Petr Ovtchenkov)
+Status (release-shared): All pass (282 tests)
+Notes:
+Status (stldbg-shared): All pass (282 tests)
+Notes:
+
+-----------------------------------------------------------------------
+Compiler: gcc 3.1.1
+-----------------------------------------------------------------------
+Date: 2004-08-27
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: ptr (Petr Ovtchenkov)
+Status (release-shared): All pass (282 tests)
+Notes:
+Status (stldbg-shared): All pass (282 tests)
+Notes:
+
+-----------------------------------------------------------------------
+Compiler: gcc 2.95.4 20011002 (Debian prerelease)
+-----------------------------------------------------------------------
+Date: 2004-10-29
+STLP Version: current CVS STLPORT_5_0 branch + some uncommited changes (locale-related)
+Reporter: ptr (Petr Ovtchenkov)
+Status (release-shared): All pass (300 tests)
+Notes: use -fPIC both in lib and app; avoid code that run in static objects
+ (compiler problems)
+Status (stldbg-shared): All pass (300 tests)
+Notes: see notes above
+
+-----------------------------------------------------------------------
+Compiler: Intel(R) C++ Compiler/32-bit 8.1 Build 20050207Z (aka 8.1 028)
+-----------------------------------------------------------------------
+Date: 2005-04-25
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: ptr (Petr Ovtchenkov)
+Status (release-shared): seems most tests itself pass, but run-time crash happens on exit
+Notes: bad_alloc tests crash:
+ #0 0x40359781 in kill () from /lib/libc.so.6
+ #1 0x40025e5e in pthread_kill () from /lib/libpthread.so.0
+ #2 0x40026339 in raise () from /lib/libpthread.so.0
+ #3 0x4035abe1 in abort () from /lib/libc.so.6
+ #4 0x402268d5 in GetCurrentFrame32 () from /opt/intel_cc_80/lib/libunwind.so.5
+ #5 0x40225ea9 in _Unwind_RaiseException_inner () from /opt/intel_cc_80/lib/libunwind.so.5
+ #6 0x402f7a55 in __cxa_throw (obj=0x0, tinfo=0x0, dest=0)
+ at ../../.././libstdc++-v3/libsupc++/eh_throw.cc:75
+ #7 0x0805fe57 in AllocatorTest::bad_alloc_test ()
+ #8 0x080602ba in AllocatorTest::myRun ()
+ #9 0x0804f5d3 in CppUnitMini::TestCase::run ()
+ #10 0x0804f466 in main ()
+
+ crash on exit:
+ #0 0x4039ea3b in free () from /lib/libc.so.6
+ #1 0x402f6711 in operator delete (ptr=0x0) at ../../.././libstdc++-v3/libsupc++/del_op.cc:40
+ #2 0x402f678d in operator delete[] (ptr=0x0) at ../../.././libstdc++-v3/libsupc++/del_opv.cc:36
+ #3 0x40293fb8 in ~ctype (this=0x835cd38)
+ at /export/hostel/build/compiler/gcc-3.4.1/i686-pc-linux-gnu/libstdc++-v3/include/bits/locale_facets.h:972
+ #4 0x40199c96 in _Fac_tidy () from /opt/intel_cc_80/lib/libcprts.so.5
+ #5 0x401f2658 in _Atexit_cleanup () from /opt/intel_cc_80/lib/libcprts.so.5
+ #6 0x401f26f5 in _AtexitTool::~_AtexitTool () from /opt/intel_cc_80/lib/libcprts.so.5
+ #7 0x4035c0a2 in __cxa_finalize () from /lib/libc.so.6
+ #8 0x4016bff6 in __icrt_terminate () from /opt/intel_cc_80/lib/libcprts.so.5
+ #9 0x401f4709 in _fini () from /opt/intel_cc_80/lib/libcprts.so.5
+ #10 0x4000a136 in _dl_fini () from /lib/ld-linux.so.2
+ #11 0x4035be53 in exit () from /lib/libc.so.6
+ #12 0x40349155 in __libc_start_main () from /lib/libc.so.6
+ #13 0x0804f311 in _start ()
+
+Status (stldbg-shared): same as for release-shared
+Notes: see notes above
+
+-----------------------------------------------------------------------
+Compiler: Intel(R) C++ Compiler/32-bit 7.1 Build 20030307Z
+-----------------------------------------------------------------------
+Date: 2004-08-27
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: ptr (Petr Ovtchenkov)
+Status (release-shared): run time fail
+Notes: stack corruption in queue test, due to compiler's
+ bad code
+Status (stldbg-shared): partially pass (282 tests, 1 fail)
+Notes: exception_test.cpp(58) : CPPUNIT_ASSERT(false);
+
+-----------------------------------------------------------------------
+Compiler: Intel(R) C++ Compiler/32-bit 8.0 Build 20031016Z
+-----------------------------------------------------------------------
+Date: 2004-08-27
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: ptr (Petr Ovtchenkov)
+Status (release-shared): compile-time fail
+Notes: compiler crash; was report that commercial compiler
+ free of this bug, but this was not tested
+Status (stldbg-shared): compile-time fail
+Notes: see notes above
+
+=======================================================================
+Operational environment: Linux 2.6.9-1.667/SMP AMD64
+=======================================================================
+
+-----------------------------------------------------------------------
+Compiler: gcc 3.4.2
+-----------------------------------------------------------------------
+Date: 2006-07-19
+STLP Version: current CVS STLPORT_5_1 branch
+Reporter: dums (Francois Dumont)
+Status (release-shared): All pass (376 tests)
+Notes:
+Status (dbg-shared): All pass (376 tests)
+Notes:
+Status (stldbg-shared): All pass (376 tests)
+Notes:
+
+=======================================================================
+Operational environment: Linux 2.6.17/SMP glibc 2.4.4, IA32
+=======================================================================
+
+-----------------------------------------------------------------------
+Compiler: gcc 4.1.1
+-----------------------------------------------------------------------
+Date: 2007-03-30
+STLP Version: SVN STLPORT_5_1 branch, revision 2982
+Reporter: dums (Francois Dumont)
+Status (release-shared): All pass (385 tests)
+Notes:
+Status (dbg-shared): All pass (385 tests)
+Notes:
+Status (stldbg-shared): All pass (385 tests)
+Notes:
+
+=======================================================================
+Operational environment: FreeBSD 5.3-RELEASE
+=======================================================================
+
+-----------------------------------------------------------------------
+Compiler: gcc 3.3.2
+-----------------------------------------------------------------------
+Date: 2005-04-04
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: Maxim Fomitchev
+Status (release-shared): Most tests pass
+Notes: Runtime crash near test UnorderedTest::hash_policy
+Status (stlg-shared): All pass (322 tests)
+Notes:
+Status (stldbg-shared): All pass (322 tests)
+Notes:
+
+-----------------------------------------------------------------------
+Compiler: gcc 3.4.5 (cross on Linux)
+-----------------------------------------------------------------------
+Date: 2005-12-22
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: Petr Ovtchenkov
+Status (release-shared): Build lib and unit tests
+Notes:
+Status (stlg-shared): Build lib
+Notes:
+Status (stldbg-shared): Build lib and unit tests
+Notes:
+
+=======================================================================
+Operational environment: FreeBSD 4.10-RELEASE
+=======================================================================
+
+-----------------------------------------------------------------------
+Compiler: gcc 3.3.2
+-----------------------------------------------------------------------
+Date: 2005-04-04
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: Maxim Fomitchev
+Status (release-shared): Most tests pass
+Notes: Runtime crash near test UnorderedTest::hash_policy
+Status (stlg-shared): All pass (322 tests)
+Notes:
+Status (stldbg-shared): All pass (322 tests)
+Notes:
+
+-----------------------------------------------------------------------
+Compiler: gcc 3.4.5 (cross on Linux)
+-----------------------------------------------------------------------
+Date: 2005-12-22
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: Petr Ovtchenkov
+Status (release-shared): Build lib and unit tests
+Notes:
+Status (stlg-shared): Build lib
+Notes:
+Status (stldbg-shared): Build lib and unit tests
+Notes:
+
+=======================================================================
+Operational environment: OpenBSD 3.6, IA32
+=======================================================================
+
+-----------------------------------------------------------------------
+Compiler: gcc 3.3.2
+-----------------------------------------------------------------------
+Date: 2005-03-24
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: ptr (Petr Ovtchenkov)
+Status (release-shared): Fail 2 of 320 tests
+Notes: ../../../test/unit/locale_test.cpp(213) : CPPUNIT_ASSERT(str_res[index++] == '1');
+ ../../../test/unit/limits_test.cpp(123) : CPPUNIT_ASSERT(test_integral_limits(wchar_t()));
+Status (stldbg-shared): most tests pass
+Notes: run-time fail in LocaleTest::money_put_get
+ ../../../stlport/stl/debug/_string.h(233): STL error : Index out of bounds
+ ../../../stlport/stl/debug/_string.h(233): STL assertion failure: __n < this->size()
+
+=======================================================================
+Operational environment: MacOS X 10.3 (Darwin 7.0.0), powerpc
+=======================================================================
+
+-----------------------------------------------------------------------
+Compiler: gcc 3.3.0 (Apple Computer, Inc. build 1666)
+-----------------------------------------------------------------------
+Date: 2005-12-23
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: Petr Ovtchenkov
+Status (release-shared): Fail
+Notes: UnorderedTest::user_case (i.e. crash may be in UnorderedTest::hash_policy)
+
+ Program received signal EXC_BAD_ACCESS, Could not access memory.
+ 0x000fe17c in stlp_std::__node_alloc::_M_deallocate(void*, unsigned long) ()
+Status (stldbg-shared): most tests pass
+Notes: Under debugger I see that fail 23 tests from 334
+ but without debugger program finish abnormally
+
+
+=======================================================================
+Operational environment: Novell Netware 6 Support Pack Revision 03
+=======================================================================
+
+-----------------------------------------------------------------------
+Compiler: Metrowerks CodeWarrior 8 (mwccnlm 3.0.3 build 356)
+-----------------------------------------------------------------------
+Date: 2005-06-10
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: ptr (Petr Ovtchenkov)
+Status (release-shared): not implemented
+Notes:
+Status (dbg-shared): not implemented
+Notes:
+Status (stldbg-shared): not implemented
+Notes:
+Status (release-static): Fail 11 of 323 tests
+Notes: FstreamTest:: fail;
+ cmath_test.cpp(77) : CPPUNIT_CHECK(ldiv_res.quot == 1l);
+Status (dbg-static): -
+Notes:
+Status (stldbg-static): -
+Notes:
+
+
+=======================================================================
+Operational environment: Windows XP Professionnal 2002 SP2
+=======================================================================
+
+-----------------------------------------------------------------------
+Compiler: Visual C++ 6 SP5
+-----------------------------------------------------------------------
+Date: 2007-09-04
+STLP Version: STLPORT_5_1 branch (revision 3172)
+Reporter: dums (Francois Dumont)
+Status (release-shared): All pass (389 tests, 10 ignored)
+Notes:
+Status (dbg-shared): All pass (389 tests, 10 ignored)
+Notes:
+Status (stldbg-shared): All pass (389 tests, 10 ignored)
+Notes:
+Status (release-static): All pass (389 tests, 10 ignored)
+Notes:
+Status (dbg-static): All pass (389 tests, 10 ignored)
+Notes:
+Status (stldbg-static): All pass (389 tests, 10 ignored)
+Notes:
+
+-----------------------------------------------------------------------
+Compiler: Visual C++ 2005 Express Version 8.0.50215-4400
+-----------------------------------------------------------------------
+Date: 2007-09-04
+STLP Version: STLPORT_5_1 branch (revision 3172)
+Reporter: dums (Francois Dumont)
+Status (release-shared): All pass (389 tests, 1 ignored)
+Notes:
+Status (dbg-shared): All pass (389 tests, 1 ignored)
+Notes:
+Status (stldbg-shared): All pass (389 tests, 1 ignored)
+Notes:
+Status (release-static): All pass (389 tests, 1 ignored)
+Notes:
+Status (dbg-static): All pass (389 tests, 1 ignored)
+Notes:
+Status (stldbg-static): All pass (389 tests, 1 ignored)
+Notes:
+
+-----------------------------------------------------------------------
+Compiler: Windows Server 2003 SP1 Platform SDK
+ (cross compiling for AMD64)
+ Tests run under Windows XP Pro 64
+-----------------------------------------------------------------------
+Date: 2005-08-16
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: Henrik Goldman (hg@x-formation.com, www.x-formation.com)
+Status (release-shared): All pass (327 tests)
+Notes:
+Status (dbg-shared): All pass (327 tests)
+Notes:
+Status (stldbg-shared): All pass (327 tests)
+Notes:
+Status (release-static): All pass (327 tests)
+Notes:
+Status (dbg-static): All pass (327 tests)
+Notes:
+Status (stldbg-static): All pass (327 tests)
+Notes:
+
+-----------------------------------------------------------------------
+Compiler: Visual C++ 2005 (Beta2) (8.0)
+ (cross compiling for AMD64)
+ Tests run under Windows XP Pro 64
+-----------------------------------------------------------------------
+Date: 2005-08-16
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: Henrik Goldman (hg@x-formation.com, www.x-formation.com)
+Status (release-shared): All pass (327 tests)
+Notes:
+Status (dbg-shared): All pass (327 tests)
+Notes:
+Status (stldbg-shared): All pass (327 tests)
+Notes:
+Status (release-static): All pass (327 tests)
+Notes:
+Status (dbg-static): All pass (327 tests)
+Notes:
+Status (stldbg-static): All pass (327 tests)
+Notes:
+
+-----------------------------------------------------------------------
+Compiler: Borland C++ compiler 5.5.1 (free version)
+-----------------------------------------------------------------------
+Date: 2007-09-04
+STLP Version: STLPORT_5_1 branch (revision 3171)
+Reporter: dums (Francois Dumont)
+Status (release-shared): 1 failure (390 tests, 6 ignored).
+Notes: The failure is on a specific Borland test
+ showing a bug in the Borland compiler.
+Status (dbg-shared): 1 failure (390 tests, 6 ignored).
+Notes: Idem release-shared
+Status (stldbg-shared): 1 failure (390 tests, 6 ignored).
+Notes: Idem release-shared.
+
+-----------------------------------------------------------------------
+Compiler: g++ 3.4.4 (cygwin special)
+-----------------------------------------------------------------------
+Date: 2007-09-04
+STLP Version: STLPORT_5_1 branch (revision 3171)
+Reporter: dums (Francois Dumont)
+Status (release-shared): 1 failure (390 tests)
+Notes: ExceptionTest::uncaught_exception fails when all tests
+ are run but succeed with only running it using the
+ -t=ExceptionTest option.
+Status (dbg-shared): 1 failure (390 tests)
+Notes: Idem release-shared.
+Status (stldbg-shared): 1 failure (390 tests)
+Notes: Idem release-shared.
+
+-----------------------------------------------------------------------
+Compiler: g++ 3.4.1 (mingw special, MinGW 3.9 runtime)
+-----------------------------------------------------------------------
+Date: 2007-03-31
+STLP Version: STLPORT_5_1 branch (revision 2982)
+Reporter: dums (Francois Dumont)
+Status (release-shared): 1 failure (385 tests)
+Notes: Idem cygwin report above.
+Status (dbg-shared): 1 failure (385 tests)
+Notes: Idem cygwin report above.
+Status (stldbg-shared): 1 failure (385 tests)
+Notes: Idem cygwin report above.
+
+=======================================================================
+Operational environment: Windows 2000 SP4
+=======================================================================
+
+-----------------------------------------------------------------------
+Compiler: Visual C++ 6 SP5
+-----------------------------------------------------------------------
+Date: 2005-03-15
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: ptr (Petr Ovtchenkov)
+Status (release-shared): All pass (317 tests)
+Notes: still some inconveniences with 'using' and
+ math functions, see comment in test/unit/resolve_name.cpp
+Status (dbg-shared): All pass (317 tests)
+Notes:
+Status (stldbg-shared): All pass (317 tests)
+Notes:
+Status (release-static): All pass (317 tests)
+Notes:
+Status (dbg-static): All pass (317 tests)
+Notes:
+Status (stldbg-static): All pass (317 tests)
+Notes:
+
+-----------------------------------------------------------------------
+Compiler: Visual C++ .Net 2002 (7.0)
+-----------------------------------------------------------------------
+Date: 2005-10-23
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: dums (Francois Dumont)
+Status (release-shared): All pass (325 tests)
+Notes:
+Status (dbg-shared): All pass (325 tests)
+Notes:
+Status (stldbg-shared): All pass (325 tests)
+Notes:
+Status (release-static): All pass (325 tests)
+Notes:
+Status (dbg-static): All pass (325 tests)
+Notes:
+Status (stldbg-static): All pass (325 tests)
+Notes:
+
+-----------------------------------------------------------------------
+Compiler: Visual C++ .Net 2003 (7.1)
+-----------------------------------------------------------------------
+Date: 2006-10-27
+STLP Version: STLPORT_5_1 branch (revision 2698)
+Reporter: dums (Francois Dumont)
+Status (release-shared): All pass (380 tests, 2 ignored)
+Notes:
+Status (dbg-shared): All pass (380 tests, 2 ignored)
+Notes:
+Status (stldbg-shared): All pass (380 tests, 2 ignored)
+Notes:
+Status (release-static): All pass (380 tests, 2 ignored)
+Notes:
+Status (dbg-static): All pass (380 tests, 2 ignored)
+Notes:
+Status (stldbg-static): All pass (380 tests, 2 ignored)
+Notes:
+
+-----------------------------------------------------------------------
+Compiler: Intel C++ compiler 9.0.28
+-----------------------------------------------------------------------
+Date: 2006-06-17
+STLP Version: current CVS HEAD
+Reporter: dums (Francois Dumont)
+Status (release-shared): 3 failures (368 tests, 2 ignored)
+Notes:
+Status (dbg-shared): All pass (368 tests, 2 ignored)
+Notes:
+Status (stldbg-shared): All pass (368 tests, 2 ignored)
+Notes:
+Status (release-static): 1 failure (368 tests, 2 ignored)
+Notes:
+Status (dbg-static): All pass (368 tests, 2 ignored)
+Notes:
+Status (stldbg-static): All pass (368 tests, 2 ignored)
+Notes:
+
+-----------------------------------------------------------------------
+Compiler: Borland C++ compiler 5.5.1 (free version)
+-----------------------------------------------------------------------
+Date: 2006-05-20
+STLP Version: current CVS HEAD
+Reporter: esanfo (Eric Sanford)
+Status (release-shared): 1 failure (367 tests, 3 ignores).
+Notes: MoveConstructorTest::nb_destructor_calls
+ fails without trivial constructor
+Status (dbg-shared): 1 failure (367 tests, 3 ignores).
+Notes: Same
+Status (stldbg-shared): 1 failure (367 tests, 3 ignores).
+Notes: Same
+Status (release-static): 1 failure (367 tests, 2 ignores).
+Notes: Same
+Status (dbg-static): 1 failure (367 tests, 2 ignores).
+Notes: Same
+Status (stldbg-static): 1 failure (367 tests, 2 ignores).
+Notes: Same
+
+-----------------------------------------------------------------------
+Compiler: Borland C++ compiler 5.6 (CBuilder6)
+-----------------------------------------------------------------------
+Date: 2006-05-20
+STLP Version: current CVS HEAD
+Reporter: esanfo (Eric Sanford)
+Status (release-shared): 1 failure (367 tests, 3 ignores).
+Notes: MoveConstructorTest::nb_destructor_calls
+ fails without trivial constructor
+Status (dbg-shared): 1 failure (367 tests, 3 ignores).
+Notes: Same
+Status (stldbg-shared): 1 failure (367 tests, 3 ignores).
+Notes: Same
+Status (release-static): 1 failure (367 tests, 2 ignores).
+Notes: Same
+Status (dbg-static): 1 failure (367 tests, 2 ignores).
+Notes: Same
+Status (stldbg-static): 1 failure (367 tests, 2 ignores).
+Notes: Same
+
+-----------------------------------------------------------------------
+Compiler: Borland C++ compiler 5.6.4 (CBuilderX)
+-----------------------------------------------------------------------
+Date: 2006-05-20
+STLP Version: current CVS HEAD
+Reporter: esanfo (Eric Sanford)
+Status (release-shared): 1 failure (367 tests, 3 ignores).
+Notes: MoveConstructorTest::nb_destructor_calls
+ fails without trivial constructor
+Status (dbg-shared): 1 failure (367 tests, 3 ignores).
+Notes: Same
+Status (stldbg-shared): 1 failure (367 tests, 3 ignores).
+Notes: Same
+Status (release-static): 1 failure (367 tests, 2 ignores).
+Notes: Same
+Status (dbg-static): 1 failure (367 tests, 2 ignores).
+Notes: Same
+Status (stldbg-static): 1 failure (367 tests, 2 ignores).
+Notes: Same
+
+-----------------------------------------------------------------------
+Compiler: Borland C++ compiler 5.81 (BDS 2006)
+-----------------------------------------------------------------------
+Date: 2006-05-20
+STLP Version: current CVS HEAD
+Reporter: esanfo (Eric Sanford)
+Status (release-shared): 1 failure (367 tests, 3 ignores).
+Notes: MoveConstructorTest::nb_destructor_calls
+ fails without trivial constructor
+Status (dbg-shared): 1 failure (367 tests, 3 ignores).
+Notes: Same
+Status (stldbg-shared): 1 failure (367 tests, 3 ignores).
+Notes: Same
+Status (release-static): 1 failure (367 tests, 3 ignores).
+Notes: Same
+Status (dbg-static): 1 failure (367 tests, 3 ignores).
+Notes: Same
+Status (stldbg-static): 1 failure (367 tests, 3 ignores).
+Notes: Same
+
+=======================================================================
+Operational environment: Windows CE 3.0 Pocket PC 2002 (iPAQ h3950)
+=======================================================================
+
+-----------------------------------------------------------------------
+Compiler: eMbedded Visual C++ 3.0
+-----------------------------------------------------------------------
+Date: 2006-09-07
+STLP Version: SVN branch STLPORT_5_1, revision 2569
+Reporter: mfink (Michael Fink)
+Status (release-shared): 1 failure (374 tests, 10 ignored)
+Notes:
+UnorderedTest::equal_range
+../../../test/unit\unordered_test.cpp(416) : CPPUNIT_ASSERT(distance(p.first, p.second) == 3);
+Status (dbg-shared): All pass (374 tests, 10 ignored)
+Notes:
+Status (stldbg-shared): Runtime failure
+Notes: Fails due to a bug in the ARM compiler
+Status (release-static): 1 failure (374 tests, 10 ignored)
+Notes:
+UnorderedTest::equal_range
+../../../test/unit\unordered_test.cpp(416) : CPPUNIT_ASSERT(distance(p.first, p.second) == 3);
+Status (dbg-static): All pass (374 tests, 10 ignored)
+Notes:
+Status (stldbg-shared): Runtime failure
+Notes: Fails due to a bug in the ARM compiler
+
+=======================================================================
+Operational environment: Windows CE 3.0 Pocket PC 2002 Emulator
+=======================================================================
+
+-----------------------------------------------------------------------
+Compiler: eMbedded Visual C++ 3.0
+-----------------------------------------------------------------------
+Date: 2006-09-07
+STLP Version: SVN branch STLPORT_5_1, revision 2569
+Reporter: mfink (Michael Fink)
+Status (release-shared): All pass (374 tests)
+Notes:
+Status (dbg-shared): All pass (374 tests)
+Notes:
+Status (stldbg-shared): All pass (374 tests)
+Notes:
+Status (release-static): All pass (374 tests)
+Notes:
+Status (dbg-static): All pass (374 tests)
+Notes:
+Status (stldbg-static): All pass (374 tests)
+Notes:
+
+=======================================================================
+Operational environment: Windows CE 4.2 Pocket PC 2003 SE (HTC Magician S100)
+=======================================================================
+
+-----------------------------------------------------------------------
+Compiler: eMbedded Visual C++ .NET SP4
+-----------------------------------------------------------------------
+Date: 2007-09-05
+STLP Version: SVN branch STLPORT_5_1, revision 3173
+Reporter: mfink (Michael Fink)
+Status (release-shared): All pass (388 tests)
+Notes:
+Status (dbg-shared): All pass (388 tests)
+Notes:
+Status (stldbg-shared): Runtime failure
+Notes: Fails due to a bug in the ARM compiler
+Status (release-static): All pass (388 tests)
+Notes:
+Status (dbg-static): All pass (388 tests)
+Notes:
+Status (stldbg-shared): Runtime failure
+Notes: Fails due to a bug in the ARM compiler
+
+=======================================================================
+Operational environment: Windows CE 4.2 Pocket PC 2003 Emulator
+=======================================================================
+
+-----------------------------------------------------------------------
+Compiler: eMbedded Visual C++ .NET SP4
+-----------------------------------------------------------------------
+Date: 2006-09-07
+STLP Version: SVN branch STLPORT_5_1, revision 2569
+Reporter: mfink (Michael Fink)
+Status (release-shared): All pass (375 tests)
+Notes:
+Status (dbg-shared): All pass (375 tests)
+Notes:
+Status (stldbg-shared): All pass (375 tests)
+Notes:
+Status (release-static): All pass (375 tests)
+Notes:
+Status (dbg-static): All pass (375 tests)
+Notes:
+Status (stldbg-static): All pass (375 tests)
+Notes:
+
+=======================================================================
+Operational environment: Microsoft Device Emulator 8.0.50727.42
+ Windows Mobile 2003 SE image
+=======================================================================
+
+-----------------------------------------------------------------------
+Compiler: eMbedded Visual C++ .NET SP4
+-----------------------------------------------------------------------
+Date: 2006-09-07
+STLP Version: SVN branch STLPORT_5_1, revision 2569
+Reporter: mfink (Michael Fink)
+Status (release-shared): All pass (375 tests)
+Notes:
+Status (dbg-shared): All pass (375 tests)
+Notes:
+Status (release-static): All pass (375 tests)
+Notes:
+Status (dbg-static): All pass (375 tests)
+Notes:
+
+=======================================================================
+Operational environment: Solaris 9, SPARC
+=======================================================================
+
+-----------------------------------------------------------------------
+Compiler: gcc 3.4.2
+-----------------------------------------------------------------------
+Date: 2004-09-27
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: ptr (Petr Ovtchenkov)
+Status (release-shared): Fail 5 of 290 tests
+Notes: fail tests with locale, as expected
+Status (stldbg-shared): Fail 5 of 290 tests
+Notes: fail tests with locale, as expected
+
+-----------------------------------------------------------------------
+Compiler: gcc 3.4.2
+-----------------------------------------------------------------------
+Date: 2004-09-14
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: ptr (Petr Ovtchenkov)
+Status (release-shared): runtime fail
+Notes: uncatched exception during locale test:
+ terminate called after throwing an instance of '_STL::runtime_error'
+ what(): locale error
+ It is like problem with exceptions, not with locale
+Status (stldbg-shared): runtime fail
+Notes:
+
+-----------------------------------------------------------------------
+Compiler: gcc 3.4.1
+-----------------------------------------------------------------------
+Date: 2004-09-14
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: ptr (Petr Ovtchenkov)
+Status (release-shared): runtime fail
+Notes: uncatched exception during locale test:
+ terminate called after throwing an instance of '_STL::runtime_error'
+ what(): locale error
+ It is like problem with exceptions, not with locale
+Status (stldbg-shared): runtime fail
+Notes:
+
+=======================================================================
+Operational environment: Solaris 10, SPARC
+=======================================================================
+
+-----------------------------------------------------------------------
+Compiler: Sun Studio 10, SunPro CC 5.7
+-----------------------------------------------------------------------
+Date: 2005-11-18
+STLP Version: current CVS STLPORT_5_0 branch
+Reporter: baker88 (Gail Baker)
+Status (release-shared): Fail 1 of 330 tests
+Notes: mvctor_test.cpp(839) : CPPUNIT_ASSERT(MovableStruct::nb_destruct_call == 7);
+Status (dbg-shared): Fail 1 of 330 tests
+Notes: mvctor_test.cpp(839) : CPPUNIT_ASSERT(MovableStruct::nb_destruct_call == 7);
+Status (stldbg-shared): Runtime failure
+Notes: PartitionTest::stblptn1
+ ../../stlport/stl/debug/_debug.c(518): STL assertion failure : __next && __next->_Owner() == __l
+ Abort(coredump)
+
+=======================================================================
+Operational environment: HP-UX B.11.23 ia64
+=======================================================================
+
+-----------------------------------------------------------------------
+Compiler: HP aC++/ANSI C B3910B A.06.06 [Nov 7 2005]
+-----------------------------------------------------------------------
+Date: 2006-09-25
+STLP Version: SVN branch STLPORT_5_1, revision 2613
+Reporter: Reporter: bgubenko (Boris Gubenko)
+Status (release-shared): 366 tests succeed, no failures
+Notes: tests hash_test and rope_test giving linker's unsat were disabled
+Status (dbg-shared): 366 tests succeed, no failures
+Notes: tests hash_test and rope_test giving linker's unsat were disabled
+Status (stldbg-shared): Could not build the tests because of some problem in makefile
+Notes: New test codecvt_test.cpp does not compile on HP-UX. It is believed
+ to be a problem with the test. Test author was notified.
+
+-----------------------------------------------------------------------
+Compiler: HP aC++/ANSI C B3910B A.06.06 [Nov 7 2005]
+-----------------------------------------------------------------------
+Date: 2006-10-13
+STLP Version: SVN branch STLPORT_5_1, revision 2664
+Reporter: bgubenko (Boris Gubenko)
+Status (release-shared): All pass (379 tests)
+Notes:
+Status (dbg-shared): All pass (379 tests)
+Notes:
+Status (stldbg-shared): All pass (379 tests)
+Notes:
diff --git a/lib/3rdparty/stlport/build/test/unit/aCC.mak b/lib/3rdparty/stlport/build/test/unit/aCC.mak
new file mode 100644
index 00000000000..8bf1218e44e
--- /dev/null
+++ b/lib/3rdparty/stlport/build/test/unit/aCC.mak
@@ -0,0 +1,48 @@
+# -*- Makefile -*- Time-stamp: <08/06/12 16:09:49 ptr>
+
+SRCROOT := ../..
+COMPILER_NAME := aCC
+-include ${SRCROOT}/Makefiles/gmake/config.mak
+ALL_TAGS = release-shared check-release
+CHECK_TAGS = check-release
+ifndef WITHOUT_STLPORT
+ALL_TAGS += stldbg-shared check-stldbg
+CHECK_TAGS += check-stldbg
+endif
+STLPORT_DIR ?= ../../..
+
+STLPORT_INCLUDE_DIR = ../../../stlport
+include Makefile.inc
+include ${SRCROOT}/Makefiles/gmake/top.mak
+
+ifdef WITHOUT_STLPORT
+DEFS += -DWITHOUT_STLPORT
+endif
+
+dbg-shared: DEFS += -D_STLP_DEBUG_UNINITIALIZED
+ifndef WITHOUT_STLPORT
+stldbg-shared: DEFS += -D_STLP_DEBUG_UNINITIALIZED
+endif
+
+INCLUDES += -I$(STLPORT_INCLUDE_DIR)
+
+ifdef STLP_BUILD_BOOST_PATH
+INCLUDES += -I${STLP_BUILD_BOOST_PATH}
+endif
+
+ifndef WITHOUT_STLPORT
+release-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR} -Wl,+b${STLPORT_DIR}/build/lib/${OUTPUT_DIR}
+dbg-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR_DBG} -Wl,+b${STLPORT_DIR}/build/lib/${OUTPUT_DIR_DBG}
+stldbg-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR_STLDBG} -Wl,+b${STLPORT_DIR}/build/lib/${OUTPUT_DIR_STLDBG}
+endif
+
+check-release: release-shared
+ -${OUTPUT_DIR}/${PRGNAME}
+
+ifndef WITHOUT_STLPORT
+check-stldbg: stldbg-shared
+ -${OUTPUT_DIR_STLDBG}/${PRGNAME}
+endif
+
+check: ${CHECK_TAGS}
+
diff --git a/lib/3rdparty/stlport/build/test/unit/bcc.mak b/lib/3rdparty/stlport/build/test/unit/bcc.mak
new file mode 100644
index 00000000000..f28b801566d
--- /dev/null
+++ b/lib/3rdparty/stlport/build/test/unit/bcc.mak
@@ -0,0 +1,30 @@
+# -*- Makefile -*- Time-stamp: <05/03/10 17:51:53 ptr>
+
+SRCROOT := ../..
+COMPILER_NAME := bcc
+
+STLPORT_DIR := ../../..
+include Makefile.inc
+include ${SRCROOT}/Makefiles/gmake/top.mak
+
+INCLUDES += -I${STLPORT_INCLUDE_DIR}
+
+ifneq ($(OSNAME),linux)
+OBJ_EXT := obj
+else
+DEFS += -D_GNU_SOURCE
+GCC_VERSION = $(shell gcc -dumpversion)
+DEFS += -DGCC_VERSION=$(GCC_VERSION)
+endif
+
+dbg-shared: DEFS += -D_STLP_DEBUG_UNINITIALIZED
+stldbg-shared: DEFS += -D_STLP_DEBUG_UNINITIALIZED
+dbg-static: DEFS += -D_STLP_DEBUG_UNINITIALIZED
+stldbg-static: DEFS += -D_STLP_DEBUG_UNINITIALIZED
+
+ifdef STLP_BUILD_BOOST_PATH
+INCLUDES += -I${STLP_BUILD_BOOST_PATH}
+endif
+
+LDSEARCH = -L${STLPORT_LIB_DIR}
+
diff --git a/lib/3rdparty/stlport/build/test/unit/dmc.mak b/lib/3rdparty/stlport/build/test/unit/dmc.mak
new file mode 100644
index 00000000000..95e5a447bc4
--- /dev/null
+++ b/lib/3rdparty/stlport/build/test/unit/dmc.mak
@@ -0,0 +1,24 @@
+# -*- Makefile -*- Time-stamp: <03/10/12 20:35:49 ptr>
+
+SRCROOT := ../..
+COMPILER_NAME := dmc
+OBJ_EXT := obj
+
+STLPORT_DIR := ../../..
+
+include Makefile.inc
+include ${SRCROOT}/Makefiles/gmake/top.mak
+
+
+INCLUDES += -I$(STLPORT_INCLUDE_DIR)
+
+dbg-shared: DEFS += -D_STLP_DEBUG_UNINITIALIZED
+stldbg-shared: DEFS += -D_STLP_DEBUG_UNINITIALIZED
+dbg-static: DEFS += -D_STLP_DEBUG_UNINITIALIZED
+stldbg-static: DEFS += -D_STLP_DEBUG_UNINITIALIZED
+
+# options for build with boost support
+ifdef STLP_BUILD_BOOST_PATH
+INCLUDES += -I$(STLP_BUILD_BOOST_PATH)
+endif
+
diff --git a/lib/3rdparty/stlport/build/test/unit/evc.mak b/lib/3rdparty/stlport/build/test/unit/evc.mak
new file mode 100644
index 00000000000..031a043325a
--- /dev/null
+++ b/lib/3rdparty/stlport/build/test/unit/evc.mak
@@ -0,0 +1,35 @@
+!if !EXIST(..\..\Makefiles\nmake\config.mak)
+!error No config file found, please run 'configure --help' first.
+!endif
+
+!include ..\..\Makefiles\nmake\config.mak
+
+!ifndef COMPILER_NAME
+!error No compiler set, please run 'configure --help' first and chose a compiler.
+!endif
+
+!if ("$(COMPILER_NAME)" != "evc3" && \
+ "$(COMPILER_NAME)" != "evc4" && \
+ "$(COMPILER_NAME)" != "evc8" && \
+ "$(COMPILER_NAME)" != "evc9")
+!error You pick the wrong makefile, please rerun configure script and follow the instructions.
+!endif
+
+SRCROOT=../..
+STLPORT_DIR=../../..
+CROSS_COMPILING=1
+
+!include Makefile.inc
+
+INCLUDES=$(INCLUDES) /I "$(STLPORT_INCLUDE_DIR)" /I "cppunit" /I "$(STLPORT_DIR)/src/" /FI "warning_disable.h"
+
+DEFS_REL = /D_STLP_USE_DYNAMIC_LIB
+DEFS_DBG = /D_STLP_USE_DYNAMIC_LIB
+DEFS_STLDBG = /D_STLP_USE_DYNAMIC_LIB
+DEFS_STATIC_REL = /D_STLP_USE_STATIC_LIB
+DEFS_STATIC_DBG = /D_STLP_USE_STATIC_LIB
+DEFS_STATIC_STLDBG = /D_STLP_USE_STATIC_LIB
+
+LDSEARCH=$(LDSEARCH) /LIBPATH:$(STLPORT_LIB_DIR)
+
+!include $(SRCROOT)/Makefiles/nmake/top.mak
diff --git a/lib/3rdparty/stlport/build/test/unit/gcc.mak b/lib/3rdparty/stlport/build/test/unit/gcc.mak
new file mode 100644
index 00000000000..1a94179d37c
--- /dev/null
+++ b/lib/3rdparty/stlport/build/test/unit/gcc.mak
@@ -0,0 +1,77 @@
+# -*- Makefile -*- Time-stamp: <08/06/06 11:01:34 yeti>
+
+SRCROOT := ../..
+COMPILER_NAME := gcc
+#NOT_USE_NOSTDLIB := 1
+#WITHOUT_STLPORT := 1
+-include ${SRCROOT}/Makefiles/gmake/config.mak
+ALL_TAGS = release-shared check-release
+CHECK_TAGS = check-release
+ifndef WITHOUT_STLPORT
+ALL_TAGS += stldbg-shared check-stldbg
+CHECK_TAGS += check-stldbg
+endif
+STLPORT_DIR ?= ../../..
+
+include Makefile.inc
+include ${SRCROOT}/Makefiles/gmake/top.mak
+
+ifdef WITHOUT_STLPORT
+DEFS += -DWITHOUT_STLPORT
+endif
+
+dbg-shared: DEFS += -D_STLP_DEBUG_UNINITIALIZED
+ifndef WITHOUT_STLPORT
+stldbg-shared: DEFS += -D_STLP_DEBUG_UNINITIALIZED
+endif
+
+ifdef STLP_BUILD_BOOST_PATH
+INCLUDES += -I${STLP_BUILD_BOOST_PATH}
+endif
+
+ifndef TARGET_OS
+ifndef WITHOUT_STLPORT
+
+ifeq ($(OSNAME), sunos)
+release-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR} -Wl,-R${STLPORT_DIR}/build/lib/${OUTPUT_DIR}
+dbg-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR_DBG} -Wl,-R${STLPORT_DIR}/build/lib/${OUTPUT_DIR_DBG}
+stldbg-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR_STLDBG} -Wl,-R${STLPORT_DIR}/build/lib/${OUTPUT_DIR_STLDBG}
+endif
+
+ifeq ($(OSNAME), freebsd)
+release-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR} -Wl,-R${STLPORT_DIR}/build/lib/${OUTPUT_DIR}
+dbg-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR_DBG} -Wl,-R${STLPORT_DIR}/build/lib/${OUTPUT_DIR_DBG}
+stldbg-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR_STLDBG} -Wl,-R${STLPORT_DIR}/build/lib/${OUTPUT_DIR_STLDBG}
+endif
+
+ifeq ($(OSNAME), openbsd)
+release-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR} -Wl,-R${STLPORT_DIR}/build/lib/${OUTPUT_DIR}
+dbg-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR_DBG} -Wl,-R${STLPORT_DIR}/build/lib/${OUTPUT_DIR_DBG}
+stldbg-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR_STLDBG} -Wl,-R${STLPORT_DIR}/build/lib/${OUTPUT_DIR_STLDBG}
+endif
+
+ifeq ($(OSNAME), linux)
+release-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR} -Wl,-rpath=${STLPORT_DIR}/build/lib/${OUTPUT_DIR}
+dbg-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR_DBG} -Wl,-rpath=${STLPORT_DIR}/build/lib/${OUTPUT_DIR_DBG}
+stldbg-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR_STLDBG} -Wl,-rpath=${STLPORT_DIR}/build/lib/${OUTPUT_DIR_STLDBG}
+endif
+
+ifeq ($(OSNAME), hp-ux)
+release-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR} -Wl,+b${STLPORT_DIR}/build/lib/${OUTPUT_DIR}
+dbg-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR_DBG} -Wl,+b${STLPORT_DIR}/build/lib/${OUTPUT_DIR_DBG}
+stldbg-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR_STLDBG} -Wl,+b${STLPORT_DIR}/build/lib/${OUTPUT_DIR_STLDBG}
+endif
+
+endif
+endif
+
+check-release: release-shared
+ -${OUTPUT_DIR}/${PRGNAME}
+
+ifndef WITHOUT_STLPORT
+check-stldbg: stldbg-shared
+ -${OUTPUT_DIR_STLDBG}/${PRGNAME}
+endif
+
+check: ${CHECK_TAGS}
+
diff --git a/lib/3rdparty/stlport/build/test/unit/icc.mak b/lib/3rdparty/stlport/build/test/unit/icc.mak
new file mode 100644
index 00000000000..c39a624aedc
--- /dev/null
+++ b/lib/3rdparty/stlport/build/test/unit/icc.mak
@@ -0,0 +1,74 @@
+# -*- Makefile -*- Time-stamp: <08/06/12 16:41:21 ptr>
+
+SRCROOT := ../..
+COMPILER_NAME := icc
+-include ${SRCROOT}/Makefiles/gmake/config.mak
+ALL_TAGS = release-shared check-release
+CHECK_TAGS = check-release
+ifndef WITHOUT_STLPORT
+ALL_TAGS += stldbg-shared check-stldbg
+CHECK_TAGS += check-stldbg
+endif
+STLPORT_DIR ?= ../../..
+
+include Makefile.inc
+include ${SRCROOT}/Makefiles/gmake/top.mak
+
+ifdef WITHOUT_STLPORT
+DEFS += -DWITHOUT_STLPORT
+endif
+
+dbg-shared: DEFS += -D_STLP_DEBUG_UNINITIALIZED
+ifndef WITHOUT_STLPORT
+stldbg-shared: DEFS += -D_STLP_DEBUG_UNINITIALIZED
+endif
+
+ifdef STLP_BUILD_BOOST_PATH
+INCLUDES += -I${STLP_BUILD_BOOST_PATH}
+endif
+
+ifndef WITHOUT_STLPORT
+release-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR} -Wl,-R${STLPORT_DIR}/build/lib/${OUTPUT_DIR}
+dbg-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR_DBG} -Wl,-R${STLPORT_DIR}/build/lib/${OUTPUT_DIR_DBG}
+stldbg-shared: LDFLAGS += -L${STLPORT_DIR}/build/lib/${OUTPUT_DIR_STLDBG} -Wl,-R${STLPORT_DIR}/build/lib/${OUTPUT_DIR_STLDBG}
+
+ifeq ($(OSNAME),linux)
+ifeq ($(CXX_VERSION_MAJOR),8)
+ifeq ($(CXX_VERSION_MINOR),0)
+# 8.0 build 20031016Z
+release-shared: LDLIBS = -lpthread -lstlport
+stldbg-shared: LDLIBS = -lpthread -lstlportstlg
+dbg-shared: LDLIBS = -lpthread -lstlportg
+else
+# 8.1 build 028
+release-shared: LDLIBS = -lpthread -lstlport -lcprts -lunwind
+stldbg-shared: LDLIBS = -lpthread -lstlportstlg -lcprts -lunwind
+dbg-shared: LDLIBS = -lpthread -lstlportg -lcprts -lunwind
+endif
+else
+ifeq ($(CXX_VERSION_MAJOR),9)
+# 9.0 build 20050430
+release-shared: LDLIBS = -lpthread -lstlport -lcprts -lunwind
+stldbg-shared: LDLIBS = -lpthread -lstlportstlg -lcprts -lunwind
+dbg-shared: LDLIBS = -lpthread -lstlportg -lcprts -lunwind
+else
+# 7.1 build 20030307Z
+release-shared: LDLIBS = -lpthread -lstlport
+stldbg-shared: LDLIBS = -lpthread -lstlportstlg
+dbg-shared: LDLIBS = -lpthread -lstlportg
+endif
+endif
+endif
+
+endif
+
+check-release: release-shared
+ -${OUTPUT_DIR}/${PRGNAME}
+
+ifndef WITHOUT_STLPORT
+check-stldbg: stldbg-shared
+ -${OUTPUT_DIR_STLDBG}/${PRGNAME}
+endif
+
+check: ${CHECK_TAGS}
+
diff --git a/lib/3rdparty/stlport/build/test/unit/icl.mak b/lib/3rdparty/stlport/build/test/unit/icl.mak
new file mode 100644
index 00000000000..5941f057938
--- /dev/null
+++ b/lib/3rdparty/stlport/build/test/unit/icl.mak
@@ -0,0 +1,7 @@
+
+COMPILER_NAME=icl
+
+OPT = /fp:strict
+
+!include msvc.mak
+
diff --git a/lib/3rdparty/stlport/build/test/unit/msvc.mak b/lib/3rdparty/stlport/build/test/unit/msvc.mak
new file mode 100644
index 00000000000..6cfa1a0a3d3
--- /dev/null
+++ b/lib/3rdparty/stlport/build/test/unit/msvc.mak
@@ -0,0 +1,43 @@
+!if EXIST(..\..\Makefiles\nmake\config.mak)
+!include ..\..\Makefiles\nmake\config.mak
+!endif
+
+
+!ifndef COMPILER_NAME
+!error No compiler set, please run 'configure --help' first and chose a compiler.
+!endif
+
+!if (("$(COMPILER_NAME)" != "vc6") && \
+ ("$(COMPILER_NAME)" != "vc70") && \
+ ("$(COMPILER_NAME)" != "vc71") && \
+ ("$(COMPILER_NAME)" != "vc8") && \
+ ("$(COMPILER_NAME)" != "vc9") && \
+ ("$(COMPILER_NAME)" != "icl"))
+!error '$(COMPILER_NAME)' not supported by this make file, please rerun 'configure' script and follow instructions.
+!endif
+
+SRCROOT=../..
+STLPORT_DIR=../../..
+
+!include Makefile.inc
+
+!ifndef WITHOUT_STLPORT
+INCLUDES=$(INCLUDES) /I$(STLPORT_INCLUDE_DIR) /I$(STLPORT_DIR)/src /FI warning_disable.h
+!else
+INCLUDES=$(INCLUDES) /I$(STLPORT_DIR)/src /FI warning_disable.h
+DEFS=/DWITHOUT_STLPORT
+!endif
+
+!if ("$(COMPILER_NAME)" != "icl")
+# Important in a number of builds.
+OPT = /Zm800
+!endif
+
+DEFS_DBG=/D_STLP_DEBUG_UNINITIALIZED
+DEFS_STLDBG=/D_STLP_DEBUG_UNINITIALIZED
+DEFS_STATIC_DBG=/D_STLP_DEBUG_UNINITIALIZED
+DEFS_STATIC_STLDBG=/D_STLP_DEBUG_UNINITIALIZED
+
+LDSEARCH=$(LDSEARCH) /LIBPATH:$(STLPORT_LIB_DIR)
+
+!include $(SRCROOT)/Makefiles/nmake/top.mak
diff --git a/lib/3rdparty/stlport/build/test/unit/nmake-src-prefix.mak b/lib/3rdparty/stlport/build/test/unit/nmake-src-prefix.mak
new file mode 100644
index 00000000000..290054f30b4
--- /dev/null
+++ b/lib/3rdparty/stlport/build/test/unit/nmake-src-prefix.mak
@@ -0,0 +1,71 @@
+# -*- makefile -*- Time-stamp: <04/03/29 22:25:01 ptr>
+# $Id$
+
+ALLOBJS = $(ALLOBJS:../../../test/unit/=)
+ALLOBJS = $(ALLOBJS:cppunit/=)
+
+#
+# rules for .cpp --> .o
+#
+
+{../../../test/unit}.cpp{$(OUTPUT_DIR)}.o:
+ $(COMPILE_cc_REL) $(OUTPUT_OPTION) $<
+
+{../../../test/unit}.cpp{$(OUTPUT_DIR_DBG)}.o:
+ $(COMPILE_cc_DBG) $(OUTPUT_OPTION_DBG) $<
+
+{../../../test/unit}.cpp{$(OUTPUT_DIR_STLDBG)}.o:
+ $(COMPILE_cc_STLDBG) $(OUTPUT_OPTION_STLDBG) $<
+
+{../../../test/unit}.cpp{$(OUTPUT_DIR_A)}.o:
+ $(COMPILE_cc_STATIC_REL) $(OUTPUT_OPTION_STATIC) $<
+
+{../../../test/unit}.cpp{$(OUTPUT_DIR_A_DBG)}.o:
+ $(COMPILE_cc_STATIC_DBG) $(OUTPUT_OPTION_STATIC_DBG) $<
+
+{../../../test/unit}.cpp{$(OUTPUT_DIR_A_STLDBG)}.o:
+ $(COMPILE_cc_STATIC_STLDBG) $(OUTPUT_OPTION_STATIC_STLDBG) $<
+
+#
+# rules for .c --> .o
+#
+
+{../../../test/unit}.c{$(OUTPUT_DIR)}.o:
+ $(COMPILE_c_REL) $(OUTPUT_OPTION) $<
+
+{../../../test/unit}.c{$(OUTPUT_DIR_DBG)}.o:
+ $(COMPILE_c_DBG) $(OUTPUT_OPTION_DBG) $<
+
+{../../../test/unit}.c{$(OUTPUT_DIR_STLDBG)}.o:
+ $(COMPILE_c_STLDBG) $(OUTPUT_OPTION_STLDBG) $<
+
+{../../../test/unit}.c{$(OUTPUT_DIR_A)}.o:
+ $(COMPILE_c_STATIC_REL) $(OUTPUT_OPTION_STATIC) $<
+
+{../../../test/unit}.c{$(OUTPUT_DIR_A_DBG)}.o:
+ $(COMPILE_c_STATIC_DBG) $(OUTPUT_OPTION_STATIC_DBG) $<
+
+{../../../test/unit}.c{$(OUTPUT_DIR_A_STLDBG)}.o:
+ $(COMPILE_c_STATIC_STLDBG) $(OUTPUT_OPTION_STATIC_STLDBG) $<
+
+#
+# rules for cppunit/.cpp --> .o
+#
+
+{../../../test/unit/cppunit}.cpp{$(OUTPUT_DIR)}.o:
+ $(COMPILE_cc_REL) $(OUTPUT_OPTION) $<
+
+{../../../test/unit/cppunit/}.cpp{$(OUTPUT_DIR_DBG)}.o:
+ $(COMPILE_cc_DBG) $(OUTPUT_OPTION_DBG) $<
+
+{../../../test/unit/cppunit}.cpp{$(OUTPUT_DIR_STLDBG)}.o:
+ $(COMPILE_cc_STLDBG) $(OUTPUT_OPTION_STLDBG) $<
+
+{../../../test/unit/cppunit}.cpp{$(OUTPUT_DIR_A)}.o:
+ $(COMPILE_cc_STATIC_REL) $(OUTPUT_OPTION_STATIC) $<
+
+{../../../test/unit/cppunit}.cpp{$(OUTPUT_DIR_A_DBG)}.o:
+ $(COMPILE_cc_STATIC_DBG) $(OUTPUT_OPTION_STATIC_DBG) $<
+
+{../../../test/unit/cppunit}.cpp{$(OUTPUT_DIR_A_STLDBG)}.o:
+ $(COMPILE_cc_STATIC_STLDBG) $(OUTPUT_OPTION_STATIC_STLDBG) $<
diff --git a/lib/3rdparty/stlport/configure b/lib/3rdparty/stlport/configure
new file mode 100644
index 00000000000..18caa2f4e4b
--- /dev/null
+++ b/lib/3rdparty/stlport/configure
@@ -0,0 +1,333 @@
+#!/bin/sh
+
+# Time-stamp: <08/06/07 15:22:19 yeti>
+
+base=`cd \`dirname $0\`; echo $PWD`
+
+configmak=$base/build/Makefiles/gmake/config.mak
+
+write_option() {
+ target=`echo $1 | sed -e 's/^[^=]*=//'`
+ echo $2 := $3$target >> ${configmak}
+}
+
+write_over_option() {
+ target=`echo $1 | sed -e 's/^[^=]*=//'`
+ echo $2 ?= $target >> ${configmak}
+}
+
+print_help() {
+ cat < base install path (/usr/local/)
+ --bindir= install path for executables (PREFIX/bin)
+ --libdir= install path for libraries (PREFIX/lib)
+ --includedir= install path for headers (PREFIX/include)
+
+ --target= target platform (cross-compiling)
+
+ --help print this help message and exit
+
+ --with-stlport= use STLport in catalog
+ --without-stlport compile without STLport
+ --with-boost= use boost headers in catalog
+ --with-system-boost use boost installed on this system
+ --with-msvc= use MS VC from this catalog
+ --with-mssdk= use MS SDK from this catalog
+ --with-extra-cxxflags=
+ pass extra options to C++ compiler
+ --with-extra-cflags=
+ pass extra options to C compiler
+ --with-extra-ldflags=
+ pass extra options to linker (via C/C++)
+ --use-static-gcc use static gcc libs instead of shared libgcc_s (useful for gcc compiler,
+ that was builded with --enable-shared [default]; if compiler was builded
+ with --disable-shared, static libraries will be used in any case)
+ --clean remove custom settings (file ${configmak})
+ and use default values
+ --with-cxx= use as C++ compiler (use --target= for cross-compilation)
+ --with-cc= use as C compiler (use --target= for cross-compilation)
+ --use-compiler-family= use compiler family; one of:
+ gcc GNU compilers (default)
+ icc Intel compilers
+ aCC HP's aCC compilers
+ CC SunPro's CC compilers
+ bcc Borland's compilers
+ --without-debug don't build debug variant
+ --without-stldebug don't build STLport's STLP_DEBUG mode
+ --enable-static build static
+ --disable-shared don't build shared
+ --with-lib-motif=
+ Use this option to customize the generated library name.
+ The motif will be used in the last place before version information,
+ separated by an underscore, ex:
+ stlportd_MOTIF.5.0.lib
+ stlportstld_static_MOTIF.5.1.lib
+ --without-thread Per default STLport libraries are built in order to be usable
+ in a multithreaded context. If you don't need this you can ask
+ for a not thread safe version with this option.
+ --without-rtti Disable RTTI when building libraries.
+ --with-static-rtl
+ --with-dynamic-rtl
+ Enables usage of static (libc.lib family) or dynamic (msvcrt.lib family)
+ C/C++ runtime library when linking with STLport. If you want your appli/dll
+ to link statically with STLport but using the dynamic C runtime use
+ --with-dynamic-rtl; if you want to link dynamicaly with STLport but using the
+ static C runtime use --with-static-rtl. See README.options for details.
+ Don't forget to signal the link method when building your appli or dll, in
+ stlport/stl/config/host.h set the following macro depending on the configure
+ option:
+ --with-static-rtl -> _STLP_USE_DYNAMIC_LIB"
+ --with-dynamic-rtl -> _STLP_USE_STATIC_LIB"
+ --windows-platform=
+ Targetted OS when building for Windows; one of:
+ win95 Windows 95
+ win98 Windows 98
+ winxp Windows XP and later (default)
+
+Environment variables:
+
+ \$CXX C++ compiler name (use --target= for cross-compilation)
+ \$CC C compiler name (use --target= for cross-compilation)
+ \$CXXFLAGS pass extra options to C++ compiler
+ \$CFLAGS pass extra options to C compiler
+ \$LDFLAGS pass extra options to linker (via C/C++)
+
+ Options has preference over environment variables.
+
+EOF
+}
+
+default_settings () {
+ # if [ "$boost_set" = "" ]; then
+ # write_option "${PWD}/external/boost" BOOST_DIR
+ # fi
+
+ # if [ -z "${stlport_set}" ]; then
+ # write_over_option "$base" STLPORT_DIR
+ # fi
+
+ # Set in Makefiles/gmake/top.mak
+ if [ -z "${compiler_family_set}" ]; then
+ # write_option gcc COMPILER_NAME
+ echo include gcc.mak > ${base}/build/lib/Makefile
+ echo include gcc.mak > ${base}/build/test/unit/Makefile
+ echo include gcc.mak > ${base}/build/test/eh/Makefile
+ fi
+
+ # Set in Makefiles/gmake/targetdirs.mak
+ # if [ -z "${prefix_set}" ]; then
+ # write_option "/usr/local" BASE_INSTALL_DIR '${DESTDIR}'
+ # fi
+}
+
+[ $# -eq 0 ] && { >${configmak}; default_settings; exit 0; }
+
+for a in $@ ; do
+ case $a in
+ --help)
+ print_help
+ exit 0
+ ;;
+ --clean)
+ rm -f ${configmak}
+ exit 0
+ ;;
+ esac
+done
+
+>${configmak}
+
+while :
+do
+ case $# in
+ 0)
+ break
+ ;;
+ esac
+ option="$1"
+ shift
+ case $option in
+ --target=*)
+ write_option "$option" TARGET_OS
+ target_set=y
+ ;;
+ --with-stlport=*)
+ write_option "$option" STLPORT_DIR
+ stlport_set=y
+ ;;
+ --without-stlport)
+ write_option 1 WITHOUT_STLPORT
+ stlport_set=y
+ ;;
+ --with-boost=*)
+ write_option "$option" BOOST_DIR
+ ;;
+ --with-system-boost)
+ write_option 1 USE_SYSTEM_BOOST
+ ;;
+ --with-msvc=*)
+ write_option "$option" MSVC_DIR
+ ;;
+ --with-mssdk=*)
+ write_option "$option" MSSDK_DIR
+ ;;
+ --with-extra-cxxflags=*)
+ write_option "$option" EXTRA_CXXFLAGS
+ cxxflags_set=y
+ ;;
+ --with-extra-cflags=*)
+ write_option "$option" EXTRA_CFLAGS
+ cflags_set=y
+ ;;
+ --with-extra-ldflags=*)
+ write_option "$option" EXTRA_LDFLAGS
+ ldflags_set=y
+ ;;
+ --with-lib-motif=*)
+ echo "Using $option in generated library names"
+ write_option "$option" LIB_MOTIF
+ ;;
+ --without-thread)
+ write_option 1 WITHOUT_THREAD
+ ;;
+ --without-rtti)
+ write_option 1 WITHOUT_RTTI
+ ;;
+ --with-dynamic-rtl)
+ write_option 1 WITH_DYNAMIC_RTL
+ ;;
+ --with-static-rtl)
+ write_option 1 WITH_STATIC_RTL
+ ;;
+ --use-static-gcc)
+ write_option 1 USE_STATIC_LIBGCC
+ ;;
+ --without-debug)
+ write_option 1 _NO_DBG_BUILD
+ ;;
+ --without-stldebug)
+ write_option 1 _NO_STLDBG_BUILD
+ ;;
+ --enable-static)
+ write_option 1 _STATIC_BUILD
+ ;;
+ --disable-shared)
+ write_option 1 _NO_SHARED_BUILD
+ ;;
+ --with-cxx=*)
+ write_option "$option" _FORCE_CXX
+ cxx_set=y
+ ;;
+ --with-cc=*)
+ write_option "$option" _FORCE_CC
+ cc_set=y
+ ;;
+ --use-compiler-family=*)
+ case `echo $option | sed -e 's/^[^=]*=//'` in
+ gcc|icc|aCC|CC|bcc|dmc)
+ target=`echo $option | sed -e 's/^[^=]*=//'`
+ echo COMPILER_NAME := $target >> ${configmak}
+ echo include $target.mak > ${base}/build/lib/Makefile
+ echo include $target.mak > ${base}/build/test/unit/Makefile
+ echo include $target.mak > ${base}/build/test/eh/Makefile
+ ;;
+ *)
+ echo "Not supported compilers family"
+ exit -1
+ ;;
+ esac
+ compiler_family_set=y
+ ;;
+ --prefix=*)
+ write_option "$option" BASE_INSTALL_DIR '${DESTDIR}'
+ prefix_set=y
+ ;;
+ --bindir=*)
+ write_option "$option" INSTALL_BIN_DIR '${DESTDIR}'
+ ;;
+ --libdir=*)
+ write_option "$option" INSTALL_LIB_DIR '${DESTDIR}'
+ ;;
+ --includedir=*)
+ write_option "$option" INSTALL_HDR_DIR '${DESTDIR}'
+ ;;
+ --windows-platform=*)
+ case `echo $option | sed -e 's/^[^=]*=//'` in
+ win95)
+ write_option 0x0400 WINVER
+ ;;
+ win98)
+ write_option 0x0410 WINVER
+ ;;
+ winxp)
+ write_option 0x0501 WINVER
+ ;;
+ *)
+ echo "Not supported windows platform"
+ exit -1
+ ;;
+ esac
+ ;;
+ *)
+ echo "Unknown configuration option '$option'"
+ exit -1
+ ;;
+ esac
+done
+
+if [ -n "${CXX}" ]; then
+ if [ -n "${cxx_set}" ]; then
+ echo "Both --with-cxx and \$CXX set, using the first"
+ elif [ -z "${target_set}" ]; then
+ write_option "${CXX}" _FORCE_CXX
+ else
+ echo "For cross-compilation with gcc use --target option only"
+ fi
+ if [ -z "${CC}" -a -z "${cc_set}" ]; then
+ echo "\$CXX set, but I don't see \$CC!"
+ fi
+fi
+
+if [ -n "${CC}" ]; then
+ if [ -n "${cxx_set}" ]; then
+ echo "Both --with-cc and \$CC set, using the first"
+ else
+ write_option "${CC}" _FORCE_CC
+ fi
+fi
+
+if [ -n "${CXXFLAGS}" ]; then
+ if [ -z "${cxxflags_set}" ]; then
+ write_option "${CXXFLAGS}" EXTRA_CXXFLAGS
+ else
+ echo "Both --with-extra-cxxflags and \$CXXFLAGS set, using the first"
+ fi
+fi
+
+if [ -n "${CFLAGS}" ]; then
+ if [ -z "${cflags_set}" ]; then
+ write_option "${CFLAGS}" EXTRA_CFLAGS
+ else
+ echo "Both --with-extra-cflags and \$CFLAGS set, using the first"
+ fi
+fi
+
+if [ -n "${LDFLAGS}" ]; then
+ if [ -z "${ldflags_set}" ]; then
+ write_option "${LDFLAGS}" EXTRA_LDFLAGS
+ else
+ echo "Both --with-extra-ldflags and \$LDFLAGS set, using the first"
+ fi
+fi
+
+# default settings
+
+default_settings
\ No newline at end of file
diff --git a/lib/3rdparty/stlport/configure.bat b/lib/3rdparty/stlport/configure.bat
new file mode 100644
index 00000000000..4f33f3d033d
--- /dev/null
+++ b/lib/3rdparty/stlport/configure.bat
@@ -0,0 +1,632 @@
+@ECHO OFF
+REM **************************************************************************
+REM *
+REM * configure.bat for setting up compiling STLport under Windows
+REM * to see available options, call with option --help
+REM *
+REM * Copyright (C) 2004,2005 Michael Fink
+REM *
+REM **************************************************************************
+
+REM Attention! Batch file labels only have 8 significant characters!
+
+echo STLport Configuration Tool for Windows
+echo.
+
+REM no options at all?
+if NOT "%1xyz123" == "xyz123" goto init
+
+echo Please specify at least the compiler you are going to use,
+echo use "configure --help" to see the available ones.
+goto skp_comp
+
+:init
+
+REM initially create/overwrite config.mak
+echo # STLport Configuration Tool for Windows > build\Makefiles\nmake\config.mak
+echo # >> build\Makefiles\nmake\config.mak
+echo # config.mak generated with command line: >> build\Makefiles\nmake\config.mak
+echo # configure %1 %2 %3 %4 %5 %6 %7 %8 %9 >> build\Makefiles\nmake\config.mak
+echo # >> build\Makefiles\nmake\config.mak
+
+REM First parameter can only be help or compiler
+REM help option
+if "%1" == "-?" goto opt_help
+if "%1" == "-h" goto opt_help
+if "%1" == "/?" goto opt_help
+if "%1" == "/h" goto opt_help
+if "%1" == "--help" goto opt_help
+
+REM This is necessarily a compiler
+goto opt_comp
+
+REM
+REM option loop
+REM
+:loop
+
+REM platform option
+if "%1" == "-p" goto opt_plat
+if "%1" == "/p" goto opt_plat
+if "%1" == "--platform" goto opt_plat
+
+REM cross compiling
+if "%1" == "-x" goto opt_x
+if "%1" == "/x" goto opt_x
+if "%1" == "--cross" goto opt_x
+
+REM C runtime library
+if "%1" == "--with-static-rtl" goto opt_srtl
+if "%1" == "--with-dynamic-rtl" goto opt_drtl
+if "%1" == "--rtl-static" goto opt_srtl
+if "%1" == "--rtl-dynamic" goto opt_drtl
+
+REM boost support
+if "%1" == "--use-boost" goto opt_bst
+
+REM multithreading support
+if "%1" == "--not-thread-safe" goto opt_st
+if "%1" == "--without-thread" goto opt_st
+
+REM rtti support
+if "%1" == "--no-rtti" goto opt_rtti
+if "%1" == "--without-rtti" goto opt_rtti
+
+REM additional compiler options
+if "%1" == "--extra-cxxflag" goto opt_xtra
+
+REM library name customization
+if "%1" == "--lib-motif" goto opt_motf
+if "%1" == "--with-lib-motif" goto opt_motf
+
+REM build without STLport
+if "%1" == "--without-stlport" goto no_sport
+
+REM clean rule
+if "%1" == "--clean" goto opt_cln
+
+echo Unknown option: %1
+
+:cont_lp
+echo.
+shift
+
+REM no more options?
+if "%1xyz123" == "xyz123" goto end_loop
+
+goto loop
+
+
+REM **************************************************************************
+REM *
+REM * Help
+REM *
+REM **************************************************************************
+:opt_help
+echo The first parameter must be the compiler name, here are the available
+echo keywords:
+echo.
+echo msvc6 Microsoft Visual C++ 6.0
+echo msvc7 Microsoft Visual C++ .NET 2002
+echo msvc71 Microsoft Visual C++ .NET 2003
+echo msvc8 Microsoft Visual C++ 2005
+echo msvc9 Microsoft Visual C++ 2008
+echo icl Intel C++ Compiler
+echo evc3 Microsoft eMbedded Visual C++ 3 (*)
+echo evc4 Microsoft eMbedded Visual C++ .NET (*)
+echo evc8 Microsoft Visual C++ 2005 compiling for CE
+echo evc9 Microsoft Visual C++ 2008 compiling for CE
+echo.
+echo (*) For these compilers the target processor is determined automatically.
+echo You must run the WCE*.BAT file you wish to build STLport for before
+echo running configure.
+echo.
+echo Then the following options are available:
+echo.
+echo "-p " or "--platform "
+echo Build STLport for the specified platform. Not all existing platforms are
+echo available, only the ones that make a difference when building STLport are.
+echo The following keywords are available:
+echo win95 Windows 95 compatible
+echo win98 Windows 98 and up to Windows XP excluded
+echo winxp Windows XP or later (default)
+echo.
+echo "-x"
+echo Enables cross-compiling; the result is that all built files that are
+echo normally put under "bin" and "lib" get extra subfolders depending on
+echo the compiler name.
+echo.
+echo "--with-static-rtl"
+echo "--with-dynamic-rtl"
+echo Enables usage of static (libc.lib family) or dynamic (msvcrt.lib family)
+echo C/C++ runtime library when linking with STLport. If you want your appli/dll
+echo to link statically with STLport but using the dynamic C runtime use
+echo --with-dynamic-rtl; if you want to link dynamicaly with STLport but using the
+echo static C runtime use --with-static-rtl. See README.options for details.
+echo Don't forget to signal the link method when building your appli or dll, in
+echo stlport/stl/config/host.h set the following macro depending on the configure
+echo option:
+echo "--with-static-rtl -> _STLP_USE_DYNAMIC_LIB"
+echo "--with-dynamic-rtl -> _STLP_USE_STATIC_LIB"
+echo.
+echo "--use-boost "
+echo Request use of boost support (www.boost.org). For the moment only the boost
+echo type_traits library is used to get type information and to implement some
+echo specific workaround not directly implemented by STLport. To use the same
+echo support when using STLport for your application don't forget to define
+echo _STLP_USE_BOOST_SUPPORT in stlport/stl/config/user_config.h file.
+echo.
+echo "--without-thread"
+echo Per default STLport libraries are built in order to be usable in a multithreaded
+echo context. If you don't need this you can ask for a not thread safe version with
+echo this option.
+echo.
+echo "--without-rtti"
+echo Remove rtti (run time type information) support if available.
+echo.
+echo "--extra-cxxflag "
+echo Use this option to add any compilation flag to the build system. For instance
+echo it can be used to activate a specific processor optimization depending on your
+echo processor. For Visual C++ .Net 2003, to activate pentium 3 optim you will use:
+echo --extra-cxxflag /G7
+echo If you have several options use several --extra-cxxflag options. For instance
+echo to also force use of wchar_t as an intrinsic type:
+echo --extra-cxxflag /G7 --extra-cxxflag /Zc:wchar_t
+echo.
+echo "--with-lib-motif "
+echo Use this option to customize the generated library name. The motif will be used
+echo in the last place before version information, separated by an underscore, ex:
+echo stlportd_MOTIF.5.0.lib
+echo stlportstld_static_MOTIF.5.1.lib
+echo Do not forget to define _STLP_LIB_NAME_MOTIF macro in STLport configuration file
+echo to the same value if you want to keep the auto link feature supported by some
+echo compilers.
+echo.
+echo "--without-stlport"
+echo Option specially targetting build of the unit tests project without STLport. This
+echo is a good way to challenge the C++ Standard library implementation comming with
+echo your compiler with STLport.
+echo.
+echo "--clean"
+echo Removes the build configuration file.
+goto skp_comp
+
+REM **************************************************************************
+REM *
+REM * Compiler configuration
+REM *
+REM **************************************************************************
+:opt_comp
+
+if "%1" == "msvc6" goto oc_msvc6
+if "%1" == "msvc71" goto oc_msv71
+if "%1" == "msvc7" goto oc_msvc7
+if "%1" == "msvc8" goto oc_msvc8
+if "%1" == "msvc9" goto oc_msvc9
+if "%1" == "icl" goto oc_icl
+
+if "%1" == "evc3" goto oc_evc3
+if "%1" == "evc4" goto oc_evc4
+if "%1" == "evc8" goto oc_evc8
+if "%1" == "evc9" goto oc_evc9
+
+if "%1" == "watcom" goto oc_wtm
+
+echo Unknown compiler: %1
+goto oc_end
+
+:oc_msvc6
+:oc_wtm
+echo Setting compiler: Microsoft Visual C++ 6.0
+echo COMPILER_NAME=vc6 >> build\Makefiles\nmake\config.mak
+set SELECTED_COMPILER_VERSION=60
+goto oc_msvc
+
+:oc_msvc7
+echo Setting compiler: Microsoft Visual C++ .NET 2002
+echo COMPILER_NAME=vc70 >> build\Makefiles\nmake\config.mak
+set SELECTED_COMPILER_VERSION=70
+goto oc_msvc
+
+:oc_msv71
+echo Setting compiler: Microsoft Visual C++ .NET 2003
+echo COMPILER_NAME=vc71 >> build\Makefiles\nmake\config.mak
+set SELECTED_COMPILER_VERSION=71
+goto oc_msvc
+
+:oc_msvc8
+echo Setting compiler: Microsoft Visual C++ 2005
+echo COMPILER_NAME=vc8 >> build\Makefiles\nmake\config.mak
+set SELECTED_COMPILER_VERSION=80
+goto oc_msvc
+
+:oc_msvc9
+echo Setting compiler: Microsoft Visual C++ 2008
+echo COMPILER_NAME=vc9 >> build\Makefiles\nmake\config.mak
+set SELECTED_COMPILER_VERSION=90
+goto oc_msvc
+
+:oc_msvc
+echo TARGET_OS=x86 >> build\Makefiles\nmake\config.mak
+set SELECTED_COMPILER=msvc
+echo !include msvc.mak > .\build\lib\Makefile
+echo !include msvc.mak > .\build\test\unit\Makefile
+echo !include msvc.mak > .\build\test\eh\Makefile
+goto oc_end
+
+:oc_icl
+echo Setting compiler: Intel C++ Compiler
+echo COMPILER_NAME=icl >> build\Makefiles\nmake\config.mak
+echo TARGET_OS=x86 >> build\Makefiles\nmake\config.mak
+set SELECTED_COMPILER=icl
+echo !include icl.mak > .\build\lib\Makefile
+echo !include icl.mak > .\build\test\unit\Makefile
+echo !include icl.mak > .\build\test\eh\Makefile
+goto oc_end
+
+:oc_evc3
+echo Setting compiler: Microsoft eMbedded Visual C++ 3
+echo COMPILER_NAME=evc3 >> build\Makefiles\nmake\config.mak
+rem TODO: branch on OSVERSION like below?
+echo CEVERSION=300 >> build\Makefiles\nmake\config.mak
+set SELECTED_COMPILER_VERSION=3
+goto oc_evc
+
+:oc_evc4
+echo Setting compiler: Microsoft eMbedded Visual C++ .NET
+echo COMPILER_NAME=evc4 >> build\Makefiles\nmake\config.mak
+if "%OSVERSION%"=="" (
+ echo OSVERSION not set, assuming target is CE 4.2
+ echo CEVERSION=420 >> build\Makefiles\nmake\config.mak
+) else if "%OSVERSION%"=="WCE400" (
+ echo CEVERSION=400 >> build\Makefiles\nmake\config.mak
+) else if "%OSVERSION%"=="WCE420" (
+ echo CEVERSION=420 >> build\Makefiles\nmake\config.mak
+) else if "%OSVERSION%"=="WCE500" (
+ echo CEVERSION=500 >> build\Makefiles\nmake\config.mak
+) else (
+ echo Unknown value for OSVERSION.
+ exit /b 1
+)
+set SELECTED_COMPILER_VERSION=4
+goto oc_evc
+
+:oc_evc8
+echo Setting compiler: Microsoft Visual C++ .NET 2005 for Windows CE
+echo COMPILER_NAME=evc8 >> build\Makefiles\nmake\config.mak
+set SELECTED_COMPILER_VERSION=80
+if "%OSVERSION%"=="" (
+ echo OSVERSION not set, assuming target is CE 5.0
+ echo CEVERSION=500 >> build\Makefiles\nmake\config.mak
+) else if "%OSVERSION%"=="WCE400" (
+ echo CEVERSION=400 >> build\Makefiles\nmake\config.mak
+) else if "%OSVERSION%"=="WCE420" (
+ echo CEVERSION=420 >> build\Makefiles\nmake\config.mak
+) else if "%OSVERSION%"=="WCE500" (
+ echo CEVERSION=500 >> build\Makefiles\nmake\config.mak
+) else (
+ echo Unknown value for OSVERSION.
+ exit /b 1
+)
+set PLATFORM_SPECIFIED=1
+set SELECTED_COMPILER=msvc
+echo !include evc.mak > .\build\lib\Makefile
+echo !include evc.mak > .\build\test\unit\Makefile
+echo !include evc.mak > .\build\test\eh\Makefile
+goto proc
+
+:oc_evc9
+echo Setting compiler: Microsoft Visual C++ .NET 2008 for Windows CE
+echo COMPILER_NAME=evc9 >> build\Makefiles\nmake\config.mak
+set SELECTED_COMPILER_VERSION=90
+if "%OSVERSION%"=="" (
+ echo OSVERSION not set, assuming target is CE 5.0
+ echo CEVERSION=500 >> build\Makefiles\nmake\config.mak
+) else if "%OSVERSION%"=="WCE400" (
+ echo CEVERSION=400 >> build\Makefiles\nmake\config.mak
+) else if "%OSVERSION%"=="WCE420" (
+ echo CEVERSION=420 >> build\Makefiles\nmake\config.mak
+) else if "%OSVERSION%"=="WCE500" (
+ echo CEVERSION=500 >> build\Makefiles\nmake\config.mak
+) else (
+ echo Unknown value for OSVERSION.
+ exit /b 1
+)
+set PLATFORM_SPECIFIED=1
+set SELECTED_COMPILER=msvc
+echo !include evc.mak > .\build\lib\Makefile
+echo !include evc.mak > .\build\test\unit\Makefile
+echo !include evc.mak > .\build\test\eh\Makefile
+goto proc
+
+:oc_evc
+set PLATFORM_SPECIFIED=1
+set SELECTED_COMPILER=evc
+echo !include evc.mak > .\build\lib\Makefile
+echo !include evc.mak > .\build\test\unit\Makefile
+echo !include evc.mak > .\build\test\eh\Makefile
+goto proc
+
+:oc_end
+goto cont_lp
+
+
+REM **************************************************************************
+REM *
+REM * Target processor configuration (automatic)
+REM *
+REM **************************************************************************
+:proc
+
+if "%TARGETCPU%" == "ARM" goto pr_arm
+if "%TARGETCPU%" == "ARMV4" goto pr_arm
+if "%TARGETCPU%" == "ARMV4I" goto pr_arm
+if "%TARGETCPU%" == "ARMV4T" goto pr_arm
+
+if "%TARGETCPU%" == "X86" goto pr_x86
+REM Type from evc3 and/or PocketPC 2002 SDK reported here
+REM to correctly check the platform:
+if "%TARGETCPU%" == "X86EMnset CFG=none" goto pr_emul
+if "%TARGETCPU%" == "x86" goto pr_x86
+if "%TARGETCPU%" == "emulator" goto pr_emul
+
+if "%TARGETCPU%" == "R4100" goto pr_mips
+if "%TARGETCPU%" == "R4111" goto pr_mips
+if "%TARGETCPU%" == "R4300" goto pr_mips
+if "%TARGETCPU%" == "MIPS16" goto pr_mips
+if "%TARGETCPU%" == "MIPSII" goto pr_mips
+if "%TARGETCPU%" == "MIPSII_FP" goto pr_mips
+if "%TARGETCPU%" == "MIPSIV" goto pr_mips
+if "%TARGETCPU%" == "MIPSIV_FP" goto pr_mips
+
+if "%TARGETCPU%" == "SH3" goto pr_sh3
+if "%TARGETCPU%" == "SH4" goto pr_sh4
+
+:pr_err
+echo Unknown target CPU: %TARGETCPU%
+goto pr_end
+
+:pr_arm
+echo Target processor: ARM
+echo TARGET_PROC=arm >> build\Makefiles\nmake\config.mak
+echo TARGET_PROC_SUBTYPE=%TARGETCPU% >> build\Makefiles\nmake\config.mak
+goto pr_end
+
+:pr_x86
+echo Target processor: x86
+echo TARGET_PROC=x86 >> build\Makefiles\nmake\config.mak
+goto pr_end
+
+:pr_emul
+echo Target processor: Emulator
+echo TARGET_PROC=x86 >> build\Makefiles\nmake\config.mak
+echo TARGET_PROC_SUBTYPE=emulator >> build\Makefiles\nmake\config.mak
+goto pr_end
+
+:pr_mips
+echo Target processor: MIPS
+echo TARGET_PROC=mips >> build\Makefiles\nmake\config.mak
+echo TARGET_PROC_SUBTYPE=%TARGETCPU% >> build\Makefiles\nmake\config.mak
+
+goto pr_end
+
+:pr_sh3
+echo Target processor: %TARGETCPU%
+echo TARGET_PROC=sh3 >> build\Makefiles\nmake\config.mak
+goto pr_end
+
+:pr_sh4
+echo Target processor: %TARGETCPU%
+echo TARGET_PROC=sh4 >> build\Makefiles\nmake\config.mak
+goto pr_end
+
+:pr_end
+goto oc_end
+
+
+REM **************************************************************************
+REM *
+REM * Platform configuration
+REM *
+REM **************************************************************************
+:opt_plat
+
+if "%2" == "win95" goto op_win95
+if "%2" == "win98" goto op_win98
+if "%2" == "winxp" goto op_winxp
+
+echo Unknown platform: %2
+goto op_end
+
+:op_win95
+echo Setting platform: Windows 95
+echo WINVER=0x0400 >> build\Makefiles\nmake\config.mak
+set PLATFORM_SPECIFIED=1
+goto op_end
+
+:op_win98
+echo Setting platform: Windows 98
+echo WINVER=0x0410 >> build\Makefiles\nmake\config.mak
+set PLATFORM_SPECIFIED=1
+goto op_end
+
+:op_winxp
+echo Setting platform: Windows XP
+echo WINVER=0x0501 >> build\Makefiles\nmake\config.mak
+set PLATFORM_SPECIFIED=1
+goto op_end
+
+:op_end
+shift
+
+goto cont_lp
+
+
+REM **************************************************************************
+REM *
+REM * Cross Compiling option
+REM *
+REM **************************************************************************
+
+:opt_x
+echo Setting up for cross compiling.
+echo CROSS_COMPILING=1 >> build\Makefiles\nmake\config.mak
+goto cont_lp
+
+
+REM **************************************************************************
+REM *
+REM * C runtime library selection
+REM *
+REM **************************************************************************
+
+:opt_srtl
+if "%SELECTED_COMPILER%" == "msvc" goto or_sok
+goto or_err
+
+:opt_drtl
+if "%SELECTED_COMPILER%" == "msvc" goto or_dok
+goto or_err
+
+:or_err
+echo Error: Setting C runtime library for compiler other than microsoft ones!
+goto or_end
+
+:or_sok
+echo Selecting static C runtime library for STLport
+echo WITH_STATIC_RTL=1 >> build\Makefiles\nmake\config.mak
+goto or_end
+
+:or_dok
+echo Selecting dynamic C runtime library for STLport
+echo WITH_DYNAMIC_RTL=1 >> build\Makefiles\nmake\config.mak
+goto or_end
+
+:or_end
+goto cont_lp
+
+REM **************************************************************************
+REM *
+REM * boost support
+REM *
+REM **************************************************************************
+:opt_bst
+REM if (Exists("%2")) goto ob_ok
+REM if !("%2" == "") goto ob_ok
+goto ob_ok
+
+echo Error: Invalid boost intallation folder ("%2").
+goto ob_end
+
+:ob_ok
+echo Activating boost support using "%2" path
+echo STLP_BUILD_BOOST_PATH="%2" >> build\Makefiles\nmake\config.mak
+
+:ob_end
+shift
+
+goto cont_lp
+
+REM **************************************************************************
+REM *
+REM * Multithreading support
+REM *
+REM **************************************************************************
+:opt_st
+echo Removing thread safety support
+echo WITHOUT_THREAD=1 >> build\Makefiles\nmake\config.mak
+goto cont_lp
+
+REM **************************************************************************
+REM *
+REM * rtti support
+REM *
+REM **************************************************************************
+:opt_rtti
+echo Removing rtti support
+echo WITHOUT_RTTI=1 >> build\Makefiles\nmake\config.mak
+goto cont_lp
+
+REM **************************************************************************
+REM *
+REM * Extra compilation flags
+REM *
+REM **************************************************************************
+:opt_xtra
+echo Adding '%2' compilation option
+if "%ONE_OPTION_ADDED%" == "1" goto ox_n
+
+echo DEFS = %2 >> build\Makefiles\nmake\config.mak
+set ONE_OPTION_ADDED=1
+goto ox_end
+
+:ox_n
+echo DEFS = $(DEFS) %2 >> build\Makefiles\nmake\config.mak
+
+:ox_end
+shift
+goto cont_lp
+
+REM **************************************************************************
+REM *
+REM * Library name configuration
+REM *
+REM **************************************************************************
+:opt_motf
+echo Using '%2' in generated library names
+
+echo LIB_MOTIF = %2 >> build\Makefiles\nmake\config.mak
+
+shift
+goto cont_lp
+
+REM **************************************************************************
+REM *
+REM * Build without STLport
+REM *
+REM **************************************************************************
+:no_sport
+echo Configured to build without STLport
+
+echo WITHOUT_STLPORT=1 >> build\Makefiles\nmake\config.mak
+
+shift
+goto cont_lp
+
+REM **************************************************************************
+REM *
+REM * Clean
+REM *
+REM **************************************************************************
+:opt_cln
+del build\Makefiles\nmake\config.mak
+echo STLport configuration file removed.
+goto skp_comp
+
+REM **************************************************************************
+REM *
+REM * End loop
+REM *
+REM **************************************************************************
+
+:end_loop
+
+if "%PLATFORM_SPECIFIED%" == "1" goto comp
+echo Setting platform: Windows XP
+echo.
+echo WINVER=0x0501 >> build\Makefiles\nmake\config.mak
+
+:comp
+echo Done configuring STLport.
+echo.
+echo Go to build/lib folder and type "nmake clean install" to build and
+echo install STLport to the "lib" and "bin" folders.
+echo Go to build/test/unit folder and type nmake clean install to
+echo build unit tests and install them in bin folder.
+echo.
+
+:skp_comp
+set SELECTED_COMPILER=
+set SELECTED_COMPILER_VERSION=
+set ONE_OPTION_ADDED=
+set PLATFORM_SPECIFIED=
diff --git a/lib/3rdparty/stlport/doc/FAQ b/lib/3rdparty/stlport/doc/FAQ
new file mode 100644
index 00000000000..2d288a3994b
--- /dev/null
+++ b/lib/3rdparty/stlport/doc/FAQ
@@ -0,0 +1,554 @@
+ Content
+
+Q1 About STLport and availability
+
+Q1.0 What is STLport?
+Q1.1 What are the benefits from using STLport?
+Q1.2 What versions of STLport are available?
+Q1.3 Where is the documentation or user guide?
+Q1.4 What is the version policy?
+
+Q2 General
+
+Q2.0 Do I need a C++ compiler?
+Q2.1 Do I need runtime libraries from C++ compiler?
+Q2.2 Can I use containers and algorithms from STLport and iostreams from
+library that ship with my compiler?
+Q2.3 Can I mix STL implementations in my project?
+Q2.4 When I switch to STLport in my application, I get errors. Is STLport
+so bad?
+
+Q3 Building
+
+Q3.0 On my XXXX Linux n.n g++ headers are in /usr/include/g++, but they
+are looked for in /usr/include/3.3.1. Is it a STLport bug?
+Q3.1 Do I need to build library to use STLport?
+Q3.2 During library compilation with MS VC++ 6.0 I see following error report:...
+Q3.3 Has anybody succeeded building STLport on OS Y with compiler K n.n?
+Q3.4 Does STLport support cross-compilation?
+
+Q4 Installation
+
+Q4.1 I tried "make -f gcc.mak install", but it install nothing into
+/usr/local/. How I can install headers into /usr/local/include and
+libs into /usr/local/lib?
+
+Q5 Bug report
+
+Q5.0 I found a bug, how can I report about it?
+
+Q6 Design
+
+Q6.0 In STLport, files like locale.h, setjmp.h, stdlib.h, etc.,
+do nothing except include native headers. Why are these files present in STLport?
+Q6.1 Is STLport a replacement for headers and libraries that shipout
+with compiler?
+Q6.2 My tool detects memory leaks in applications with STLport. Is this leak
+from STLport?
+Q6.3 When running unit tests, I have errors in LocaleTest test fixture, how bad
+is it?
+Q6.4 set or multiset iterators are immutable like const_iterators, why ?
+
+ Answers
+
+========================================================================
+
+Q1.0 What is STLport?
+A1.0 STLport is an implementation of the C++ Standard Library, as described
+in the INTERNATIONAL STANDARD ISO/IEC 14882:1998(E) and latest
+ISO/IEC 14882:2003(E).
+
+========================================================================
+
+Q1.1 What are the benefits from using STLport?
+
+A1.1
+ - For multiplatform/multicompilers project a coherent Standard Library
+implementation.
+ - An easy to use STL safe mode detecting bad use of containers and
+iterators.
+ - Some original optimizations: template expression for string
+concatenation, short string optimization, move semantic for STL containers
+combination like vector of vector, an efficient std::allocator.
+
+========================================================================
+
+Q1.2 What versions of STLport are available?
+
+A1.2
+
+========================================================================
+
+Q1.3 Where is the user guide?
+
+A1.3 There is no real user guide for the moment. You can find some information
+in README files in doc folder. As STLport is a C++ Standard library
+implementation you might find information you need at the following
+locations:
+ - The ISO/IEC 14882:2003 document you can buy for a very cheap price.
+ - For STL containers you can use SGI documentation (http://www.sgi.com/tech/stl/).
+ Beware however, STL described in this document is not identical to the
+ Standardized version described in ISO/IEC. This documentation can be very
+ useful for STLport extensions like hash containers (hash_map, hash_set...)
+ - You can also use the documentation coming with your compiler as most
+ of the information will also apply to STLport. Take care to description
+ reported as 'implementation specific'.
+
+========================================================================
+
+Q1.4 What is the version policy?
+
+A1.4 STLport version information contains three numbers like '5.1.0'. '5'
+is the major version number, '1' is the minor and '0' is the patch level.
+Policy for this numbers are:
+ - changes in major version number: radical modification, new era.
+ - changes in minor version number: significant changes, new features,
+ changes in interface part; switching to an STLport library with a different
+ minor version require recompilation of all modules depending on it.
+ - changes in patch level: bugfixes; we keep in mind binary compatibility,
+ but really can't strongly guarantee it; switching to an STLport library
+ with different patch level do not require rebuild of modules---rebuilding and
+ installing the STLport libraries should work; however, as STLport contains
+ a lot of template code, you should pay attention to fact that all you modules
+ was build with SAME STLport headers---otherwise problems possible;
+ recompilation of one part with only rebuilding STLport might not be enough
+ to get all the fixes in your application so even in this case rebuilding
+ your modules is advised.
+
+========================================================================
+
+
+Q2.0 Do I need a C++ compiler?
+
+A2.0 STLport is a C++ library. So the answer is 'yes, you do'.
+
+========================================================================
+
+Q2.1 Do I need runtime libraries from C++ compiler?
+
+A2.1 In any case, the C++ language support from compiler is required
+for STLport (operators new, delete, RTTI, exceptions support). That's why
+in most cases you need some runtime libraries from the C++ compiler.
+
+========================================================================
+
+Q2.2 Can I use containers and algorithms from STLport and iostreams from
+the library that ships with my compiler?
+
+A2.2 The short answer is 'No'.
+
+Indeed co-existence of two implementations possible, but this required
+a lot of knowledge as about both implementations, as about compiler and
+linkage. This issues should be taken into account both within STL library and
+during library usage. In common you can't use both implementation
+in the same namespace. So you should separate STL implementations into
+different namespaces. But due to absent of compilers that has full-featured
+support of Argument Dependent Lookup (ADL) (aka Koenig Lookup), you have no
+possibilty to select one or another implementation.
+
+ADL problem.
+
+In wrapper mode, all std references are replaced, thanks a simple macro,
+by the stlp_std namespace. Everything from the native compiler std namespace
+is injected to the stlp_std namespace with many using std::* directives.
+
+The problem arise when you specialized a standard class for one of your
+user types. You do it within the std namespace that, in wrapper mode
+becomes the stlp_std namespace. Then this specialization is just invisible
+from the native std namespace and won't be used.
+
+Things are somewhat worse: the problem arises even without any explicit
+specializations. It is not a bug, but the fact that old compilers just
+did not tried to find functions in the namespaces where arguments' classes
+are defined (indeed no compilers with full-featured support of ADL yet).
+
+Mix implementation via library.
+
+Let's reduce all the complexity of STLport to some very simple example:
+
+namespace std {
+
+class string
+{
+ public:
+ class iterator { };
+
+ iterator begin();
+ iterator end();
+};
+
+template
+void find(I begin, I end, T value);
+
+} // namespace std
+
+
+namespace stlport {
+
+using std::string;
+
+template
+void find(I begin, I end, T value);
+
+void gee()
+{
+ string s;
+ find(s.begin(), s.end(), 10);
+}
+
+} // namespace stlport
+
+
+When a compiler supporting ADL finds the call to `find' within gee() function
+it should examine both namespace `stlport' and namespace `std' for
+the presence of `find'. It is caused by the fact that s.begin() returns
+object of type `std::string::iterator' which obviously defined in namespace
+`std' and the heart of ADL is finding functions not only within namespaces
+where the call is being made but also in the namespaces where the classes
+of arguments are defined...
+
+So, in our example compiler ends with two templates satisfying the call
+`find(s.begin(), s.end(), 10)': `std::find' and `stlport::find'.
+Since compiler can not choose any one of them it reports ambiguity.
+
+There is another aspect of mix implementations.
+Let's consider following code:
+
+a.h:
+
+#include
+
+class A {
+ public:
+ A() {}
+
+ void push( const string s );
+
+ string _str;
+};
+
+a.cpp:
+
+#include "a.h"
+
+void A::push( const string s )
+{
+ _str = s;
+}
+
+
+b.cpp:
+
+#include "a.h"
+
+string s;
+A a;
+
+void gee()
+{
+ a.push( s );
+}
+
+Now build library from a.cpp with string implementation Impl1;
+then build application with b.cpp that use string implementation Impl2,
+and link with mentioned above library. Compiler will pass. Linker may
+pass too. But your application will crash (or randomly crash) either on
+call a.push, or on assignment _str = s. This is evident here, but not
+evident in real applications.
+
+The conclusion is: "Using Wrapper mode is very hard and we removed support
+for it".
+
+========================================================================
+
+Q2.3 Can I mix STL implementations in my project?
+
+A2.3 Yes you can but each implementations will rely in its own namespace
+with no direct interaction between them. You will first need to correctly
+configure STLport thanks to 2 macros in user_config.h file.
+- _STLP_DONT_REDEFINE_STD tells STLport not to define the std macro that is
+used to replace std reference in your code with STLport namespace.
+- _STLP_WHOLE_NATIVE_STD tells STLport to always include native header each
+time a Standard header is included in your code.
+
+Here is a small code sample that do not require any modification in STLport
+install:
+
+#define _STLP_DONT_REDEFINE_STD
+#define _STLP_WHOLE_NATIVE_STD
+
+#include
+
+void foo()
+{
+ std::string std_str("std");
+ stlport::string stlport_str("stlport");
+ stlport_str.append(std_str.begin(), std_str.end());
+ // Following is wrong because there is no assignment
+ // operator for stlport::string on std::string.
+ //std_str = stlport_str;
+}
+
+Note: You can use 'std' iterators from native implementation in STLport
+template methods like in the 'stlport_str.append' method call above because
+STLport is adding the necessary code to interpret native iterators like
+STLport iterators. You won't be able however to do the opposite as native
+implementation do not know anything about STLport iterators.
+
+
+========================================================================
+
+Q2.4 When I switch to STLport in my application, I get errors. Is STLport
+so bad?
+
+A2.4 Before you post such message, please, check STLport WHITHOUT YOUR code:
+ - build STLport library
+ - build STLport unit tests
+ - run STLport unit tests
+If any of above steps fail, please, make sure that you carefully followed
+build instructions (in most cases you definitely should reread
+instructions and check that you correctly unpack archive in case you see
+'file not found' message). Build instructions you can found in files
+INSTALL, doc/README.*, build/README*, build/test/unit/README*.
+If you are sure, submit bug report here:
+https://sourceforge.net/projects/stlport
+Don't forget to describe your operational environment, compiler version and
+STLport version.
+
+========================================================================
+
+Q3.0 On my XXXX Linux n.n g++ headers are in /usr/include/g++, but they
+are looked for in /usr/include/3.3.1. Is it a STLport bug?
+
+A3.0 Path to native compiler headers for GCC correspond to default path
+after build/install compiler (i.e. paths from compiler origo).
+Package maintainers can use any path by own taste---we can't satisfy
+variety of distributions/packages.
+
+So you can:
+ - fix path in stlport administration config file stlport/stl/config/host.h,
+ see _STLP_NATIVE_INCLUDE_PATH macro and related.
+ - create a link to the native compiler headers like expected by STLport
+ - make request to package maintainer
+ - build and install compiler
+
+Note: Starting with version 5.2, STLport uses the include_next preprocessing
+command to access native headers so you shouldn't experiment this problem
+anymore when this feature is supported by your compiler preprocessor.
+
+========================================================================
+
+Q3.1 Do I need to build a library to use STLport?
+
+A3.1 You may omit usage (and, thus building) STLport library, but in this
+case you can't use iostreams, locale, complex.
+
+========================================================================
+
+Q3.2 During library compilation with MS VC++ 6.0 I see following error report:
+
+C:\Program Files\Microsoft SDK\Include\.\winbase.h(1123) : error C2733: second C linkage of overloaded function 'InterlockedIncrement' not allowed
+ C:\Program Files\Microsoft SDK\Include\.\winbase.h(1121) : see declaration of 'InterlockedIncrement'
+C:\Program Files\Microsoft SDK\Include\.\winbase.h(1130) : error C2733: second C linkage of overloaded function 'InterlockedDecrement' not allowed
+ C:\Program Files\Microsoft SDK\Include\.\winbase.h(1128) : see declaration of 'InterlockedDecrement'
+C:\Program Files\Microsoft SDK\Include\.\winbase.h(1138) : error C2733: second C linkage of overloaded function 'InterlockedExchange' not allowed
+ C:\Program Files\Microsoft SDK\Include\.\winbase.h(1135) : see declaration of 'InterlockedExchange'
+
+A3.2 You have a Platform SDK installed. Uncomment line
+#define _STLP_NEW_PLATFORM_SDK 1
+in the file stlport/stl/config/user_config.h. There is no way to detect SDK
+presence during preprocessor stage, which is why you have to make this
+change manually.
+
+========================================================================
+
+Q3.3 Has anybody succeeded building STLport on OS S with compiler K n.n?
+
+A3.3 See report about results of regression tests here: build/test/unit/STATUS.
+
+========================================================================
+
+Q3.4 Does STLport support cross-compilation?
+
+A3.4 In case of GCC, use something like following sequence:
+
+ (./configure --target=${CROSSTARGET}; cd build/lib; \
+ export PATH=${BASECROSS}/bin:${PATH}; make -f gcc.mak install-release-shared)
+
+where CROSSTARGET is GCC's cross prefix (something like 'i586-pc-linux-gnu',
+if C++ cross compiler named as 'i586-pc-linux-gnu-c++'), BASECROSS is base of
+cross-compiler's location (i.e. ${BASECROSS}/bin in case above is a location
+of 'i586-pc-linux-gnu-c++').
+
+In case of non-GCC crossecompilers, we need hands-made target system identification.
+The sample of such compiler (supported by STLport) is MetroWerks Codewarrior
+for Novell Netware (mwccnlm).
+
+========================================================================
+
+Q4.1 I tried "make -f gcc.mak install", but it installs nothing into
+/usr/local/. How I can install headers into /usr/local/include and
+libs into /usr/local/lib?
+
+A4.1 Installation in any system-wide place is issue of either 'package builder'
+or system administrator. He/she should be familiar with building package
+procedure and/or understand where headers and libraries should be situated.
+The place choice not issue of STLport.
+
+You can just use
+
+(cd ${STLPORT_SRC}/lib; tar cf - . ) | (cd ${TARGET_LIB_DIR}; tar xf - ); \
+ (cd ${STLPORT_SRC}; tar cf - stlport) | (cd ${TARGET_INCLUDE_DIR}; tar xf - )
+
+Sometimes we will think about 'make install', but not now.
+
+
+========================================================================
+
+Q5.0 I found a bug, how I can report about it?
+
+A5.0
+ 0. Ensure that this is really a bug (standard violation, incorrect
+ behaviour with correct usage).
+ 1. Ensure that bug is in STLport, not in your code (you can use _STLP_DEBUG
+ for that, see stlport/stl/config/user_config.h).
+ 2. Ensure that you correctly built STLport---build and run unit tests
+ (build/test/unit) first with default settings, then with your settings
+ (if you changed any).
+ 3. Write a short test that demonstrates the bug.
+ 4. Make sure that this test case is really new, i.e. not covered by unit
+ tests (test/unit/*).
+ 5. Compare your results with reported runs of unit tests (build/test/unit/STATUS).
+ 6. Write bug description and test here
+
+ https://sourceforge.net/projects/stlport
+
+ DON'T FORGET TO DESCRIBE:
+
+ - OPERATIONAL ENVIRONMENT
+ - COMPILER VERSION
+ - STLPORT VERSION
+ - RESULT OF UNIT TESTS
+
+ Keep in mind, that your bug MUST be reproduced by other people, so give
+ enough information (but compactly, give only essential information).
+
+========================================================================
+
+Q6.0 In STLport files like locale.h, setjmp.h, stdlib.h, etc., do
+nothing except include native headers. Why are these files present in STLport?
+
+A6.0 Sometimes native C headers are using C++ ones or are refering
+to the std namespace. That's why, if stddef was absent in STLport, then
+
+#include
+#include
+
+may cause problem in following code, because std redefined in the end of
+ header, and std may be used in stddef.h:
+
+__BEGIN_NAMESPACE_STD
+....
+__END_NAMESPACE_STD
+
+where __BEGIN_NAMESPACE_STD is defined as 'namespace std {'.
+To avoid this, STLport has stddef.h header and provide correct masquerade
+for std.
+
+========================================================================
+
+Q6.1 Is STLport a replacement for headers and libraries that shipout
+with compiler?
+
+A6.1 In general no. In any case C++ language support from compiler is required
+for STLport (operators new, delete, RTTI, exceptions support). STLport also
+uses 'native' headers and libraries to take interface to system functions and
+variables.
+
+========================================================================
+
+Q6.2 My tool detects memory leaks in application with STLport. Is this leak
+from STLport?
+
+A6.2 In most cases these are 'pseudo memory leaks' that some tools
+wrongly detect.
+
+In the default compile of STLport, the node allocator is used to allocate
+internal memory. The node allocator works by pre-allocating a large chunk of
+memory and handing out small memory blocks. The memory chunk is not freed
+during running an application that uses STLport (i.e. it is not returned to
+the system, but reused inside application).
+See also http://www.sgi.com/tech/stl/alloc.html
+
+There are tools like BoundsChecker, Purify or Valgrind that check for memory
+leaks, for memory that isn't freed when no longer used. These tools may report
+false memory leaks when one uses STLport's node allocator. The memory chunk is
+normally freed at application end, but the memory checkers usually report memory
+leaks before that point. Another memory problem might be reported when you use
+shared libraries (e.g. DLL, this problem specific for Windows DLL model) that
+uses STLport internally and are statically link to it. If memory is allocated in
+a dll and released in an other then the STLport node allocator will keep the
+released memory for a future use. If you do not use this memory then your
+application global memory consumption will grow until the app crash even if there
+is no real memory leak. This is why you should always use a coherent configuration
+everything in dll or everything in static lib.
+
+There are ways to remove the pseudo memory leaks (since the memory is properly
+freed at the end of the program, the leaks are just pseudo-ones). You could use
+another allocator that is used in STLport. Open the file
+"./stlport/stl/config/host.h" and uncomment either one of the following:
+
+
+ _STLP_USE_NEWALLOC enables a simple allocator that uses "new/delete"
+ _STLP_USE_MALLOC enables a simple allocator that uses "malloc/free"
+
+The new/delete allocator has the advantage of giving an entry point to track
+memory starvation, see set_new_handler in your compiler doc or the C++ Standard
+for more information.
+
+Alternatively you can define the following symbol, just uncomment it in
+"./stlport/stl/config/host.h".
+
+ _STLP_LEAKS_PEDANTIC
+
+The symbol forces freeing all memory chunks. Also see the comments around the
+symbol in the config file.
+
+Note that you have to recompile STLport AND your application and all of your
+dependent libraries if you make any change to the file!
+
+There are also some defines that help in debugging memory problems in STLport.
+In _STLP_DEBUG mode, just also define the following symbols, either in
+"./stlport/stl/config/user_config.h" or in your project settings:
+
+ _STLP_DEBUG_ALLOC
+ _STLP_DEBUG_UNINITIALIZED
+
+You don't need to rebuild STLport for these options, but you have to rebuild
+your application and all of your dependent libraries if you make any change to
+the file.
+
+========================================================================
+
+Q6.3 When running unit tests, I have errors in LocaleTest test fixture, how bad
+is it?
+
+A6.3 Failures in LocaleTest tests do not mean that your platform/compiler is not
+fully supported by STLport. Platform independant localization tests are very hard
+to write as Standard localization API has not been design to make unit test easy.
+In STLport unit tests suite we have hard coded some expected values. Those values
+depends on your OS configuration explaining why sometimes the tests are failing.
+
+========================================================================
+
+Q6.4 set or multiset iterators are immutable like const_iterators, why ?
+
+A6.4 With set or multiset associative containers or even newly introduced
+tr1::unordered_set and tr1::unordered_multiset key is confuse with data. It
+means that modifying the data is also modifying the key. Modifying the key
+might corrupt the container internal data structure so STLport prefer to
+make this problem obvious and only return a const access to the key with
+immutable iterators. Your solutions are:
+- prefer map/multimap and split the key and the data
+- use const_cast when you want to change a set/multiset element.
+
diff --git a/lib/3rdparty/stlport/doc/README.borland b/lib/3rdparty/stlport/doc/README.borland
new file mode 100644
index 00000000000..50f16e5a5dc
--- /dev/null
+++ b/lib/3rdparty/stlport/doc/README.borland
@@ -0,0 +1,154 @@
+
+==================================================
+STLport README for Borland C++ compilers.
+==================================================
+
+by: Francois Dumont, dums@stlport.com, last edited 20 May 2006
+
+============
+Introduction
+============
+This document describes how STLport can be compiled and used with
+Borland compilers.
+
+For any further comments or questions visit STLport mailing lists
+http://stlport.sourceforge.net/Maillists.shtml or forums
+https://sourceforge.net/forum/?group_id=146814
+
+=============
+Prerequisites
+=============
+To build and use STLport you will need following tools and libraries:
+ - Borland C++ compiler package 5.5.1 or higher version.
+
+ In order to build STLport the Borland compiler and linker have to
+ be correctly configurated too. That is to say:
+
+ * For the Borland compiler bcc32:
+
+ In Borland's 'bin' directory (same directory as bcc32.exe), create a
+ bcc32.cfg file containing the compiler option giving it the path to
+ native Borland headers:
+
+ -I%BORLAND_PATH%\BCC55\include
+
+ * For the resource compiler brcc32:
+
+ Create an environment variable INCLUDE containing path to native Borland
+ headers and especially the windows.h file
+
+ set INCLUDE=%BORLAND_PATH%\BCC55\include
+
+ * For the Borland linker ilink32:
+
+ You need to give path to both the Borland libs and Borland PSDK libs.
+ For that you have to create, in the same directory as ilink32.exe, a
+ configuration file, ilink32.cfg, that contains:
+
+ -L%BORLAND_PATH%\BCC55\lib;%BORLAND_PATH%\BCC55\lib\PSDK
+
+ - A GNU make tool. You can get one from www.mingw.org or www.cygwin.com.
+ See README.mingw or README.cygwin for additional informations.
+
+===================
+Configuring STLport
+===================
+ This is intended to be an optional step, if you want to use default
+configuration simply jump to next chapter 'Building STLport'. Open a console
+and go to the STLport build/lib folder. Run
+
+ configure --help
+
+ This command will present you the different available build options. Just follow
+the instructions to set STLport configuration according your needs. For example,
+to set the typical configuration for most Borland compilers, run
+
+ configure -c bcc
+
+================
+Building STLport
+================
+ This is a step by step description of the actions to take in order to build
+and install the STLport libraries:
+
+1. Open a console, you can use a Msys, Cygwin or Windows console.
+
+2. Go to the STLport build/lib folder:
+ cd C:\STLport\build\lib
+
+3. Run the following command:
+ make -fbcc.mak install
+
+ Where 'make' is the GNU make utility you have installed. The name of
+GNU make utility may differ, such as 'mingw32-make'. -f is a make option
+telling it which makefile to use. You have of course to choose the
+appropriate makefile for your compiler, 'bcc.mak' in our case.
+
+ Once the command returns you will have all the necessary import libraries
+in STLport's 'lib' folder and DLLs in STLport's 'bin' folder. For a
+description of the generated libraries check the FAQ file in the 'doc' folder.
+For a quick start guide to the STLport make system, see the README file in the
+'build/lib' folder.
+
+===============
+Testing STLport
+===============
+You can use the unit tests to verify STLport behaves correctly. Change into
+STLport's 'build/test/unit' folder and type:
+
+ make -fbcc.mak install
+
+This will build and install the unit tests with STLport dynamic libraries.
+Once the unit tests are built you just need to run them. They can be found
+in STLport's bin, bin-g or bin-stlg folders. To rebuild the unit tests
+with STLport static libraries, type:
+
+ make -fbcc.mak clean
+ make -fbcc.mak install-static
+
+=============
+Using STLport
+=============
+Adjust your include and link paths in Borland IDE or in the command line config
+files. In the include files add the path to STLport's 'stlport' folder. Make sure
+it is the first directory listed there. Add STLport's 'lib' folder for the library
+files (order of paths doesn't matter here).
+
+Now you should be ready to use STLport.
+
+============
+Known limitations
+============
+
+1. If you extend a locale facet based on a Standard facet definition you will
+have to grant your own facet id defition. Ex extracted from
+test/unit/fstream_test.cpp:
+
+#include
+
+using namespace std;
+
+struct my_state {
+ char dummy;
+};
+
+struct my_traits : public char_traits {
+ typedef my_state state_type;
+ typedef fpos pos_type;
+};
+
+class my_codecvt : public codecvt
+{};
+
+// Mandatory locale facet id definition:
+template <>
+locale::id codecvt::id;
+
+2. If you get a linker memory error, e.g. LME351, it probably means that full
+source debugging is enabled and Borland's .TDS file has exceeded the memory
+capacity of Borland's linker (ilink32.exe). To resolve this error, check
+Borland's website for the latest patch for ilink32.exe. In the alternative,
+disable full source debugging in build\Makefiles\gmake\bcc.mak by deleting
+the -v option in the OPT settings.
+
+3. For "'uname' is not recognized . . .", see "Configuring STLport" above.
diff --git a/lib/3rdparty/stlport/doc/README.cygwin b/lib/3rdparty/stlport/doc/README.cygwin
new file mode 100644
index 00000000000..44ad449d218
--- /dev/null
+++ b/lib/3rdparty/stlport/doc/README.cygwin
@@ -0,0 +1,43 @@
+The cygwin platform is used to build STLport with different compilers.
+
+- gcc (native compiler):
+
+ Makefile : gcc.mak
+
+ Notes:
+
+ 1. Static builds (archive)
+
+ If you use the static version of the STLport libraries you have
+ to define the _STLP_USE_STATIC_LIB macro in order to have your
+ executable linked correctly.
+
+ 2. Link
+
+ Under this platform STLport is complete replacement for libstdc++.
+ It means that when you were linking with libstdc++ (-lstdc++) you only
+ have to replace it with STLport (-lstlport.5.2 for instance). However
+ default gcc behavior is to automatically link libstdc++ and a number of
+ other system libs. To avoid this behavior you have to use the -nodefaultlibs
+ compiler option and explicitely give all libraries by yourself. See build of
+ unit tests to see what library you might need, here is the list when this
+ note was written:
+
+ without -mnocygwin option:
+
+ -lstlportg.5.2 -lgcc -lm -lc -lpthread -lkernel32
+
+ with -mno-cygwin option:
+
+ -lstlportg.5.2 -lgcc -lmingw32 -lmingwex -lmsvcrt -lm -lmoldname
+ -lcoldname -lkernel32
+
+ 3. No cygwin
+
+ To build STLport libraries that do not depend on cygwin1.dll
+ making them freely redistributable pass the following option to
+ the configure script:
+
+ ./configure --with-extra-cflags=-mno-cygwin --with-extra-cxxflags=-mno-cygwin
+
+- Borland C++ compiler
diff --git a/lib/3rdparty/stlport/doc/README.dmc b/lib/3rdparty/stlport/doc/README.dmc
new file mode 100644
index 00000000000..83a48684849
--- /dev/null
+++ b/lib/3rdparty/stlport/doc/README.dmc
@@ -0,0 +1,81 @@
+==================================================
+STLport README for Digital Mars C++ compilers.
+==================================================
+
+Build of STLport with Digital Mars C++ compiler is very similar
+to the one for Microsoft Visual Studio compiler (see README.msvc).
+
+Below are some additional hints. [DMC users are encouraged to
+contribute additional information.]
+
+=============
+Prerequisites
+=============
+
+ - Digital Mars C++ 8.49 or above
+
+ - A GNU environment with make tool. Prefer MinGW/MSys to Cygwin because the
+ latter contains a link command that is also the name of the Digital Mars linker
+ and you might experiment collision between both commands.
+ See README.mingw for additional information.
+
+===================
+Installing STLport
+===================
+
+ - STLport directory can be almost anywhere EXCEPT native dm\include directory.
+
+===================
+Configuring STLport
+===================
+
+ - In a console window go to the STLport build\lib folder. Run
+
+ configure -c dmc
+
+================
+Building STLport
+================
+
+ - To build STLport libraries:
+
+ cd [STLport dir]\build\lib
+ [mingw32-make] -f dmc.mak install
+
+ - To build STLport (dynamic) unit tests:
+
+ cd [STLport dir]\build\test\unit
+ [mingw32-make] -f dmc.mak install
+
+============
+Known issues
+============
+
+1. typeinfo.h
+
+ DMC forces inclusion of typeinfo.h header at the begining of any
+translation unit. This breaks the STLport include schema, especially
+when building the library. As a workaround STLport typeinfo.h simply
+include native DMC header not performing any internal STLport work as
+importing things to STLport namespace. As a result typeinfo.h should
+never be reference in user code, as it is neither a C nor a C++ header
+this is not considered as a major limitation. The C++ Standard header
+is typeinfo.
+
+2. link.exe and lib.exe
+
+ STLport makefiles for DMC use dm_link and dm_lib instead of link and lib to
+avoid conflicts with other vendors' linkers and archivers. To build STLport
+with DMC, please copy or rename the following files:
+
+ copy dm\bin\link.exe dm\bin\dm_link.exe
+ copy dm\bin\lib.exe dm\bin\dm_lib.exe
+
+3. Free online version.
+
+ If DMC's free online version reports compiler or linker errors, the
+solution may be in a free online CD update. Download and unzip all free
+CD patches for versions 8.30 and above, in consecutive order, overwriting
+previous files. Then install free online version 8.49 or above, overwriting
+previous files.
+
diff --git a/lib/3rdparty/stlport/doc/README.evc3 b/lib/3rdparty/stlport/doc/README.evc3
new file mode 100644
index 00000000000..7d2cd2bcf89
--- /dev/null
+++ b/lib/3rdparty/stlport/doc/README.evc3
@@ -0,0 +1,157 @@
+
+========================================
+STLport README for eMbedded Visual C++ 3
+========================================
+
+by: Michael Fink, vividos@users.sourceforge.net, last edited 2005-11-15
+
+============
+Introduction
+============
+This document describes how STLport can be compiled and used with Microsoft
+eMbedded Visual C++ 3.
+
+For any further comments or questsion visit STLport mailing lists
+http://stlport.sourceforge.net/Maillists.shtml or forums
+https://sourceforge.net/forum/?group_id=146814
+
+
+=============
+Prerequisites
+=============
+To build and use STLport you will need following tools and libraries:
+ - eMbedded Visual C++ 3.0
+ - latest CVS version of STLport, use info from page
+ 'http://stlport.sourceforge.net/CVS.shtml' to get it.
+ Note that you may have to get a different branch, please check out the
+ STLport forum "Announcements" which sourcecode is being worked on.
+
+================
+Building STLport
+================
+Note: if you don't plan to use the iostreams part of STLport (via the define
+_STLP_NO_IOSTREAMS), you don't have to build the library. You can skip straight
+to the "Using STLport" section.
+
+If you want to compile for the Pocket PC 2002 SDK (which in most cases you want)
+be sure to set the PLATFORM environment variable to "Pocket PC 2002", e.g. with
+this command:
+
+ set PLATFORM=Pocket PC 2002
+
+Open a command line prompt and execute the batch file that sets up compiling
+for ARM or x86 processors. These files usually are in a folder like
+'C:\Program Files\Windows CE eMbedded Tools\EVC\WCE300\BIN\' and are called
+WCEARM.bat and WCEx86.bat. Check if the environment variables are set up
+properly after that call. You can also adjust the batch files to have the
+PLATFORM variable set automatically.
+
+Go into STLport's 'build\lib' folder and type:
+
+ configure.bat -c evc3
+
+The makefiles are configured with the given settings. Call configure.bat with
+the --help option to see all options. The program automatically tells you which
+command line to use. If you want to install the libraries, add the "install"
+target as follows:
+
+ nmake /fmsvc.mak install
+
+All libraries (debug, stldebug, release) are now built, static and shared
+ones. Import libraries (.lib files) are put in the 'lib\evc3-arm' folder, DLLs
+are put in the 'bin\evc3-arm' folder. If you use another target platform, the
+name of the folder is changed accordingly, e.g. evc3-x86 for emulator files.
+
+Once STLport is built you can decrease the size of the STLport folder by
+removing intermediate build files. This is done with the following command:
+
+ nmake /fmsvc.mak clobber
+
+Note: MIPS platform is also available for build, but it may not compile or work
+ properly. Use with caution!
+
+===============
+Testing STLport
+===============
+You can use the unit tests to verify STLport behaves correctly. Change into
+STLports 'build\test\unit' folder and type:
+
+ nmake /fmsvc.mak install
+
+If you want to build the unit tests for the emulator, you have to reconfigure
+STLport with the configure.bat, as described above.
+
+Once the unit tests are built, upload the binary (found in the 'bin\evc3-arm'
+folder) to your device or emulator and start it (the test runs for about 30
+seconds, depending on the speed of the device). The file 'stlp_test.txt' is
+created in the root folder of the device, which contains the unit test
+results. It should report no errors.
+
+=============
+Using STLport
+=============
+Adjust your include and link paths in eVC3 in 'Tools -> Options -> Directories'
+and add the paths for all platforms and CPUs on which you want to use STLport.
+In the include files add the path to STLport's 'stlport' folder. Make sure it
+is the first directory listed there. Add STLport's 'lib\evc3-arm' or
+'lib\evc3-x86' (depending on what target you use) folder for the library files
+(order of paths doesn't matter here).
+
+There are some preprocessor defines that control usage of the STLport in evc3
+projects:
+
+Define the symbol _STLP_USE_STATIC_LIB when you want to statically link against
+STLport. The linker will remove unused classes and methods then, saving some
+space in the executable.
+
+If you don't want to use the iostreams part of the library, you can specify the
+define _STLP_NO_IOSTREAMS. In this mode there is no need to link against the
+library.
+
+STLport uses automatic linking to find the proper .lib file. If you want to see
+what import library STLport is going to use, define _STLP_VERBOSE_AUTO_LINK.
+When not using automatic linking (by specifying _STLP_DONT_USE_AUTO_LINK), you
+have to specify the proper .lib file in the Project Settings, on the "link" tab.
+The .lib names have the following syntax:
+
+ stlport(d|stld)[_static]..lib
+
+Examples:
+
+ stlport_static.5.0.lib - static release version, Version 5.0.0
+ stlportd_50.lib - dll debug version, Version 5.0.0
+
+Note that usage of the _STLP_DEBUG mode is currently not recommended for
+eMbedded Visual C++ builds using the ARM compiler, due to a compiler bug.
+
+When using STLport together with MFC, be sure to include the MFC headers first,
+then include STLport headers, e.g. in your Stdafx.h. This way STLport correctly
+recognizes MFC usage. You also can define the macro _STLP_USE_MFC, either in
+your project settings or in stlport/stl/config/user_config.h.
+
+Now you should be ready to use STLport.
+
+============
+Known issues
+============
+ - Unit Tests in _STLP_DEBUG mode (target 'stldbg-shared') fails in
+ __stl_debug_engine::_M_detach() for several tests due to unknown reasons.
+ A compiler bug in the ARM compiler is suspected.
+ There is currently no workaround for this bug. It is recommended to not use
+ _STLP_DEBUG mode.
+
+ - Resource compiler issue:
+
+ The resource compiler is not a C++ compiler, it is a compiler that translates
+ resource files, i.e. files that describe dialogs, strings, version information
+ and other parts of the GUI on MS Windows systems.
+
+ The problem is that it includes files from the C/C++ include path, and
+ STLport uses mechanisms the resource compiler can't handle, e.g. using macro
+ names longer than 31 characters.
+
+ The workaround is to guard all affected headers (stdio.h, string.h, stdarg.h,
+ stdlib.h, ctype.h) against this. The resource compiler is detected by the
+ macro RC_INVOKED.
+
+ - See also README.evc4 issues.
diff --git a/lib/3rdparty/stlport/doc/README.evc4 b/lib/3rdparty/stlport/doc/README.evc4
new file mode 100644
index 00000000000..2b3d27e2df4
--- /dev/null
+++ b/lib/3rdparty/stlport/doc/README.evc4
@@ -0,0 +1,126 @@
+
+========================================
+STLport README for eMbedded Visual C++ 4
+========================================
+
+by: Zdenek Nemec, zero@mapfactor.com, last edited 2005-10-17
+
+============
+Introduction
+============
+This document should provide step-by-step guidance for installing, testing and using the STLport library under Windows CE .NET 4.x
+(aka Windows Mobile 2003 aka Pocket PC 2003).
+For any further comments or questions visit the STLport mailing lists
+http://stlport.sourceforge.net/Maillists.shtml or forums
+https://sourceforge.net/forum/?group_id=146814
+
+=============
+Prerequisites
+=============
+To build and use the STLport you will need following tools and libraries:
+ - eMbedded Visual C++ 4.0 SP4
+ - an SDK for your target platform with RTTI support
+
+================
+Building STLport
+================
+First, make sure that RTTI is available. Not all SDKs that come with eVC4 also include
+the necessary libs, but there is a patch for the PPC2003 SDK, available at
+http://support.microsoft.com/default.aspx?scid=kb;[LN];830482.
+
+Second, open command line and set proper system variables.
+This can be done by using batch files under your 'eMbedded Visual C++' directory(use either WCEemulator.BAT if you want to build STLport for the emulator or WCEARMV4.BAT if you intend to aim an ARM device).
+NOTE: If you are using Microsoft's batch files to set system variables check if both WCEROOT and SDKROOT vars are set to correct locations. example:
+WCEROOT=C:\Program Files\Microsoft eMbedded C++ 4.0
+SDKROOT=C:\Program Files\Windows CE Tools
+
+Third, when you are 100percent sure you've set correctly systems variables go to the STLport/build/lib dir and run the configure.bat with
+proper -c option (ie. "-c evc4"),
+then invoke following command: 'nmake /fmsvc.mak install' to build the library.
+
+If anything goes wrong check if you met all prerequisities and if you set system vars accordingly to the makfile you are using.
+At the end of build process you should have some libs installed in STLport/lib/evc4-arm or STLport/lib/evc4-x86 and dynamic libs in STLport/bin directory.
+
+You might want to repeat all those steps if you would like to have
+e.g. both ARM and x86 emulator binaries, just don't forget to do
+'nmake /fmsvc.mak clobber' before new build.
+
+Note: MIPS platform is also available for build, but it may not compile or work properly. Use with caution!
+
+===============
+Testing STLport
+===============
+When you successfuly build STLport libs, you should go to STLport/test/unit directory build and run the STLP test suite.
+Use 'nmake /fmsvc.mak' and keep in mind that you still have to have proper system variables set!
+Once test build has finished upload and run stlp_unit_test.exe to your emulator or device.
+Wait for a while (aprox. 2mins) until all tests are done.
+You should see two files next to your binary now.
+Check stlp_test.txt for any errors. If all tests passed you are ready to deploy STLport.
+If some test fails don't worry and check the STLport forum if it's already reported bug or you have found a new one.
+
+=============
+Using STLport
+=============
+Setting up the IDE:
+Before you start using STLport you have to set proper include and libraries search paths.
+Go to 'Tools'>'Options' menu in your eVC 4.0 and then to 'Directories' tab.
+For every platform you want to use STLport add STLport/stlport directory to the FIRST place in 'Include Files'
+and STLport/lib directory in 'Library files' section.
+
+Setting up projects:
+When using STLport together with MFC, you have to define _STLP_USE_MFC to properly include and use STLport.
+
+By default, exception support is not activated. You can detect this via _CPPUNWIND and activate this via /GX.
+Without exception support, e.g. std::bad_alloc is not available, causing compile errors for some code.
+
+Also, there is only one runtime available but the IDE doesn't add the corresponding switch to the command line.
+The right switch (selecting a dynamically linked runtime) is IMHO /MD or /MDd. This then also switches STLport to dynamic linking.
+Alternatively, you can #define _DLL for your project, which achieves the same but, again IMHO, is a less clean solution.
+
+============
+Known issues
+============
+- The compilers that come with eVC4 are almost bug-to-bug compatible with
+the one from VC6, so most workarounds for that compiler apply here, too.
+
+- There is a bug in the MIPS compiler that comes with eVC4 which only surfaces
+under certain conditions:
+ * in release mode with global optimizations on (#pragma optimize("g", on))
+ * a baseclass has (at least) two pointer members
+ * a derived class adds no data members
+ * the derived class' cctor defers to the basclass' compiler-generated cctor
+ * it is passed as template parameter to a function
+The smallest testcase I could come up with is this:
+ struct base {
+ void* ptr1;
+ void* ptr2;
+ };
+ struct derived: public base {
+ derived() {}
+ derived(const derived& __x): base(__x) {}
+ };
+
+ template void function( SomeType st1, SomeType st2) {}
+
+ struct test {
+ derived tmp;
+ ~test() { function(tmp, tmp); }
+ };
+ test test;
+..which causes an internal compiler error. Removing the base::ptr1, adding data
+to derived, making function() a normal function, or turning off optimization
+(#pragma optimize("g", off)) all causes the code to compile. This bug affects
+iterators of deque and vector.
+
+- Because of interdependancy between STLport and native Standard library headers
+STLport headers should always be included first in your translation unit (.cpp
+file). That is to say that:
+
+//Wrong headers order:
+#include
+#include
+
+// Correct headers order
+#include
+#include
+
diff --git a/lib/3rdparty/stlport/doc/README.evc8 b/lib/3rdparty/stlport/doc/README.evc8
new file mode 100644
index 00000000000..86481b4d0b2
--- /dev/null
+++ b/lib/3rdparty/stlport/doc/README.evc8
@@ -0,0 +1,98 @@
+setup VC8 for CE:
+------------------
+
+- VC8 doesn't have any setup batchfiles that prepare the environment for compiling
+with CE. You can take those from eVC4 and adapt them or write your own. This snippet
+should get you going:
+
+ rem you need to adapt at least these three
+ set OSVERSION=WCE500
+ set PLATFORM=MY_OWN_PLATFORM
+ set TARGETCPU=MIPSII
+
+ rem the compiler is always cl.exe, different compilers are in different paths
+ set CC=cl.exe
+ rem obviously, these need to be adjusted to where you installed VS2005 and the SDKs
+ set VSINSTALLDIR=C:\Programme\Microsoft Visual Studio 8
+ set SDKROOT=C:\Programme\Windows CE Tools
+
+ set PATH=%VSINSTALLDIR%\VC\ce\bin\x86_mips;%VSINSTALLDIR%\VC\bin;%VSINSTALLDIR%\Common7\IDE;%PATH%
+ set PLATFORMROOT=%SDKROOT%\%OSVERSION%\%PLATFORM%
+
+ rem add libs and includes from the SDK
+ set INCLUDE=%PLATFORMROOT%\include\%TARGETCPU%;%PLATFORMROOT%\MFC\include;%PLATFORMROOT%\ATL\include
+ set LIB=%PLATFORMROOT%\lib\%TARGETCPU%;%PLATFORMROOT%\MFC\lib\%TARGETCPU%;%PLATFORMROOT%\ATL\lib\%TARGETCPU%
+
+ rem add libs that came with VC8
+ rem Note: there are more libs and includes under ce\atlmfc, not sure if these are needed.
+ set LIB=%LIB%;%VSINSTALLDIR%\VC\ce\lib\%TARGETCPU%
+
+
+- The snippet below can be used to build STLport for Pocket PC 2003 (using the
+ Pocket PC 2003 SDK shipped with Visual Studio 2005, this is the SDK used when
+ compiling programs from within the IDE):
+
+ set OSVERSION=WCE420
+ set PLATFORM=POCKET PC 2003
+ set TARGETCPU=ARMV4
+
+ rem the compiler is always cl.exe, different compilers are in different paths
+ set CC=cl.exe
+
+ rem obviously, these need to be adjusted to where you installed VS2005
+ set VSINSTALLDIR=C:\Program Files\Microsoft Visual Studio 8
+ set SDKROOT=%VSINSTALLDIR%\SmartDevices\SDK
+
+ set PATH=%VSINSTALLDIR%\VC\ce\bin\x86_arm;%VSINSTALLDIR%\VC\bin;%VSINSTALLDIR%\Common7\IDE;%PATH%
+ set PLATFORMROOT=%SDKROOT%\PocketPC2003
+
+ rem add libs and includes from the SDK
+ set INCLUDE=%PLATFORMROOT%\include
+ set LIB=%PLATFORMROOT%\lib\%TARGETCPU%
+
+ rem add libs that came with VC8
+ set INCLUDE=%INCLUDE%;%VSINSTALLDIR%\VC\ce\atlmfc\include
+ set LIB=%LIB%;%VSINSTALLDIR%\VC\ce\lib\%TARGETCPU%;%VSINSTALLDIR%\VC\ce\atlmfc\lib\%TARGETCPU%
+
+
+You should now be able to run cl.exe for the target you expected.
+
+- The cross compilers of VC8 are the same version as for the native target, i.e. MSC14.
+
+- The cross compiler for MIPS has the same bug as mentioned in doc/README.evc4 and
+the same workaround applies. However, using 'whole program optimization', it results
+in an error in the link phase.
+
+- In order for STLport to recognize which target you are compiling for, you need to have
+some macros defined, e.g. for the target architecture. The compilers do that partially on
+their own, but not sufficiently. Therefore, STLport requires these defines:
+
+ -- These are generally set for CE:
+ _UNICODE;UNICODE;_WIN32;WIN32;UNDER_CE;WINCE;
+ -- This one uses an environment variable to set the CE version:
+ _WIN32_WCE=$(CEVER);
+ -- These are used to help STLport recognise the target architecture:
+ $(ARCHFAM);$(_ARCHFAM_);$(INSTRUCTIONSET)
+ Note that the instructionset is not strictly needed for x86 but definitely for ARM. It
+ doesn't hurt for x86 though, so I'd always set these in any new project.
+ -- For release builds:
+ NDEBUG;
+ -- For debug builds:
+ DEBUG;_DEBUG;
+ -- For debug builds with additional STLport diagnostics:
+ DEBUG;_DEBUG;_STLP_DEBUG;
+ -- For MFC applications:
+ _AFXDLL;
+
+- Further settings:
+ Code generation: Multithreaded [Debug] DLL
+ Language: enable RTTI
+ Optimization: maximise speed and enable whole program optimization for release builds
+
+- Linker settings:
+ Ignore specific libraries: libc.lib;libcd.lib
+ Commandline: /SUBSYSTEM:WINDOWSCE
+ Optimisation: /LTCG for release builds
+
+- Resource compiler:
+ Define: UNDER_CE;WINCE;_WIN32_WCE=$(CEVER)
diff --git a/lib/3rdparty/stlport/doc/README.evc9 b/lib/3rdparty/stlport/doc/README.evc9
new file mode 100644
index 00000000000..2ead948be5e
--- /dev/null
+++ b/lib/3rdparty/stlport/doc/README.evc9
@@ -0,0 +1,95 @@
+setup VC9 for CE:
+------------------
+
+- VC9 doesn't have any setup batchfiles that prepare the environment for compiling
+with CE. You can take those from eVC4 and adapt them or write your own. This snippet
+should get you going:
+
+ rem you need to adapt at least these three
+ set OSVERSION=WCE500
+ set PLATFORM=MY_OWN_PLATFORM
+ set TARGETCPU=MIPSII
+
+ rem the compiler is always cl.exe, different compilers are in different paths
+ set CC=cl.exe
+ rem obviously, these need to be adjusted to where you installed VS2008 and the SDKs
+ set VSINSTALLDIR=C:\Programme\Microsoft Visual Studio 9.0
+ set SDKROOT=C:\Programme\Windows CE Tools
+
+ set PATH=%VSINSTALLDIR%\VC\ce\bin\x86_mips;%VSINSTALLDIR%\VC\bin;%VSINSTALLDIR%\Common7\IDE;%PATH%
+ set PLATFORMROOT=%SDKROOT%\%OSVERSION%\%PLATFORM%
+
+ rem add libs and includes from the SDK
+ set INCLUDE=%PLATFORMROOT%\include\%TARGETCPU%;%PLATFORMROOT%\MFC\include;%PLATFORMROOT%\ATL\include
+ set LIB=%PLATFORMROOT%\lib\%TARGETCPU%;%PLATFORMROOT%\MFC\lib\%TARGETCPU%;%PLATFORMROOT%\ATL\lib\%TARGETCPU%
+
+ rem add libs that came with VC9
+ rem Note: there are more libs and includes under ce\atlmfc, you need to add these
+ rem instead of the ones in the SDK if you want to use the newer version of ATL/MFC.
+ set LIB=%LIB%;%VSINSTALLDIR%\VC\ce\lib\%TARGETCPU%
+
+
+- The snippet below can be used to build STLport for Pocket PC 2003 (using the
+ Pocket PC 2003 SDK shipped with Visual Studio 2008, this is the SDK used when
+ compiling programs from within the IDE):
+
+ set OSVERSION=WCE420
+ set PLATFORM=POCKET PC 2003
+ set TARGETCPU=ARMV4
+
+ rem the compiler is always cl.exe, different compilers are in different paths
+ set CC=cl.exe
+
+ rem obviously, these need to be adjusted to where you installed VS2008
+ set VSINSTALLDIR=C:\Program Files\Microsoft Visual Studio 9.0
+ set SDKROOT=%VSINSTALLDIR%\SmartDevices\SDK
+
+ set PATH=%VSINSTALLDIR%\VC\ce\bin\x86_arm;%VSINSTALLDIR%\VC\bin;%VSINSTALLDIR%\Common7\IDE;%PATH%
+ set PLATFORMROOT=%SDKROOT%\PocketPC2003
+
+ rem add libs and includes from the SDK
+ set INCLUDE=%PLATFORMROOT%\include
+ set LIB=%PLATFORMROOT%\lib\%TARGETCPU%
+
+ rem add libs that came with VC9
+ set INCLUDE=%INCLUDE%;%VSINSTALLDIR%\VC\ce\atlmfc\include
+ set LIB=%LIB%;%VSINSTALLDIR%\VC\ce\lib\%TARGETCPU%;%VSINSTALLDIR%\VC\ce\atlmfc\lib\%TARGETCPU%
+
+
+You should now be able to run cl.exe for the target you expected.
+
+- The cross compilers of VC9 are the same version as for the native target, i.e. MSC15.
+
+- In order for STLport to recognize which target you are compiling for, you need to have
+some macros defined, e.g. for the target architecture. The compilers do that partially on
+their own, but not sufficiently. Therefore, STLport requires these defines:
+
+ -- These are generally set for CE:
+ _UNICODE;UNICODE;_WIN32;WIN32;UNDER_CE;WINCE;
+ -- This one uses an environment variable to set the CE version:
+ _WIN32_WCE=$(CEVER);
+ -- These are used to help STLport recognise the target architecture:
+ $(ARCHFAM);$(_ARCHFAM_);$(INSTRUCTIONSET)
+ Note that the instructionset is not strictly needed for x86 but definitely for ARM. It
+ doesn't hurt for x86 though, so I'd always set these in any new project.
+ -- For release builds:
+ NDEBUG;
+ -- For debug builds:
+ DEBUG;_DEBUG;
+ -- For debug builds with additional STLport diagnostics:
+ DEBUG;_DEBUG;_STLP_DEBUG;
+ -- For MFC applications:
+ _AFXDLL;
+
+- Further settings:
+ Code generation: Multithreaded [Debug] DLL
+ Language: enable RTTI
+ Optimization: maximise speed and enable whole program optimization for release builds
+
+- Linker settings:
+ Ignore specific libraries: libc.lib;libcd.lib
+ Commandline: /SUBSYSTEM:WINDOWSCE
+ Optimisation: /LTCG for release builds
+
+- Resource compiler:
+ Define: UNDER_CE;WINCE;_WIN32_WCE=$(CEVER)
diff --git a/lib/3rdparty/stlport/doc/README.intel b/lib/3rdparty/stlport/doc/README.intel
new file mode 100644
index 00000000000..72c64530c8c
--- /dev/null
+++ b/lib/3rdparty/stlport/doc/README.intel
@@ -0,0 +1,19 @@
+Build of STLport with Intel C++ compiler for Windows is identical
+to the one for Microsoft Visual Studio compiler (see README.msvc).
+
+Known issues:
+
+1. If you have bind your Intel C++ compiler to the Visual Studio 6
+install and build your application without the -Qvc6 option you might
+experiement linking issue concerning 'std::unexpected' missing symbol.
+The reason of this problem is that without -Qvc6, ICL adds necessary
+code to invoke std::unexpected function when a raised exception is
+different to the one specified in a function prototype. As VC6 library
+do not contain this symbol ICL cannot find it anywhere.
+
+ As a workaround, STLport has its own std::unexpected implementation
+that you will find in src/dll_main.cpp. ICL is looking for a static
+symbol so if you use STLport static lib ICL will use its std::unexpected
+implementation but if you use STLport dynamic lib then ICL won't find
+it. You only need then to copy/paste the STLport implementation somewhere
+in your implementation and ICL will be happy.
diff --git a/lib/3rdparty/stlport/doc/README.mingw b/lib/3rdparty/stlport/doc/README.mingw
new file mode 100644
index 00000000000..aaf40c2f95a
--- /dev/null
+++ b/lib/3rdparty/stlport/doc/README.mingw
@@ -0,0 +1,55 @@
+ The MinGW GNU make command can be used to build STLport with different
+compilers
+
+- gcc (native compiler):
+
+ Makefile : gcc.mak
+
+ Notes:
+
+ 1. Static library (archive)
+
+ If you use the static version of the STLport libraries
+ you have to define the _STLP_USE_STATIC_LIB macro in order
+ to have your executable linked correctly.
+
+ 2. Shell
+
+ You will need MSys in order to build STLport.
+
+ Be carefull about what make command you are using. STLport comes with a
+ GNU make build system design for unix like platforms, make files have not
+ been adapted for the Windows platform. So you have to use the make command
+ coming with the MinGW package 'mingw32-make' and not the one coming with MSys
+ that is a portage of the GNU make for Windows.
+
+ 3. Threading configuration
+
+ STLport libraries are built per default in order to be used in a
+ multithreaded environment. Under MinGW it means that we use the '-mthread'
+ compiler option. Don't forget to add it to your compiler command line too
+ if you want to use STLport libraries. You can also ask for not thread
+ safe libraries using the --no-thread configure script option.
+
+ 4. Linking
+
+ In this environment STLport is almost complete replacement for libstdc++.
+ It means that when you were linking with libstdc++ (-lstdc++) you only have
+ to replace it with STLport (-lstlport.5.2 for instance) and with libsupc++
+ containing language compiler support (lsupc++). However default gcc
+ behavior is to automatically link libstdc++ and a number of other system libs.
+ To avoid this behavior you have to use the -nodefaultlibs compiler option and
+ explicitely give all libraries by yourself. See build of unit tests to see what
+ library you might need, here is the list when this note was written:
+
+ -lstlportg.5.2 -lsupc++ -lgcc_s -lmingw32 -lmingwex -lmsvcrt -lm -lmoldname
+ -lcoldname -lkernel32
+
+- Borland C++ compiler:
+
+ Makefile : bcc.mak
+
+- Digital Mars C++ compiler:
+
+ Makefile : dmc.mak
+
diff --git a/lib/3rdparty/stlport/doc/README.msvc b/lib/3rdparty/stlport/doc/README.msvc
new file mode 100644
index 00000000000..a47abacf4cd
--- /dev/null
+++ b/lib/3rdparty/stlport/doc/README.msvc
@@ -0,0 +1,186 @@
+
+==================================================
+STLport README for Microsoft Visual C++ compilers.
+==================================================
+
+by: Francois Dumont, dums@stlport.com, last edited 08/02/2005
+
+============
+Introduction
+============
+This document describes how STLport can be compiled and used with Microsoft
+Visual C++ 6 SP5. It can also be used for the MSVC++ family.
+
+For any further comments or questsion visit STLport mailing lists
+http://stlport.sourceforge.net/Maillists.shtml or forums
+https://sourceforge.net/forum/?group_id=146814
+
+=============
+Prerequisites
+=============
+To build and use STLport you will need following tools and libraries:
+ - Microsoft Visual C++ 6.0 with at least Service Pack 5 or any higher
+ version.
+
+===================
+Configuring STLport
+===================
+In a console window go to the STLport build/lib folder. Run
+
+ configure --help
+
+This command will present you the different available build options. Just follow
+the instructions to set STLport configuration according your needs. The only
+mandatory configuration is to declare what is the compiler you are going to
+use, for MSVC 6 it is:
+
+ configure -c msvc6
+
+================
+Building STLport
+================
+This is a step by step description of the actions to take in order to have
+the STLport library built:
+
+1. Open a console window. You can get it executing cmd or command depending
+on your Windows OS.
+
+2. Go to MSVC++ Bin directory with a default MSVC6 install it is
+ cd "C:\Program Files\Microsoft Visual Studio\VC98\Bin"
+
+3. Run the vcvars32.bat script. This sets the environment variables required
+to have the MSVC++ compiler run during the build process. The most important
+one is the PATH variable so that you can call the cl.exe command which is the
+MSVC++ command line compiler. [You may omit this step, if you chose 'Install paths
+to access command-line tools' during Microsoft Visual Studio installation procedure.]
+
+4. Go to the STLport build/lib folder:
+ cd C:\STLport\build\lib
+
+5. Run the following command:
+ nmake /fmsvc.mak install
+
+ nmake is the make utility from Microsoft. /f is an nmake option
+telling it which make file script to use. You have of course to grant the
+closer make file to your effective compiler, msvc.mak in our case.
+
+ Once the command returns, you will have all the necessary libraries within
+the STLport lib folder. For a description of the generated libraries check the README
+file within the src folder.
+
+===============
+Testing STLport
+===============
+You can use the unit tests to verify STLport behaves correctly. Change into
+STLports 'build/test/unit' folder and type:
+
+ nmake /fmsvc.mak install
+
+Once the unit test is built you just need to run it. They can be found
+within the STLport bin folder.
+
+=============
+Using STLport
+=============
+Adjust your include and link paths in MSVC IDE (in 'Tools -> Options -> Directories'
+for MSVC6 IDE). In the include files add the path to STLport's 'stlport' folder.
+Make sure it is the first directory listed there. Add STLport's 'lib' folder for
+the library files (order of paths doesn't matter here).
+
+There are some preprocessor defines that control usage of the STLport in msvc
+projects:
+
+If you don't want to use the iostreams part of the library, you can specify the
+define _STLP_NO_IOSTREAMS. In this mode there is no need to link against the
+library.
+
+STLport uses automatic linking to find the proper .lib file. If you want to see
+what import library STLport is going to use, define _STLP_VERBOSE_AUTO_LINK.
+When not using automatic linking (by specifying _STLP_DONT_USE_AUTO_LINK), you
+have to specify the proper .lib file in the Project Settings, on the "link" tab.
+The .lib names have the following syntax:
+
+ stlport[d|stld][_x,_static,_statix]..lib
+
+ d : debug build
+ stld: debug build with _STLP_DEBUG (STL safe) mode
+ _x: Build of STLport as a dll but statically link to the native runtime.
+ _static : build of a static library
+ _statix : build of a static library link dynamically to the native runtime.
+
+Examples:
+
+ stlport_static.5.0.lib - static release version, Version 5.0.0
+ stlportd.5.0.lib - dll debug version, Version 5.0.0
+
+When using STLport together with MFC, be sure to include the MFC headers first,
+then include STLport headers, e.g. in your Stdafx.h. This way STLport correctly
+recognizes MFC usage. You also can define the macro _STLP_USE_MFC, either in
+your project settings or in stlport/stl/config/user_config.h.
+
+In order to enhance debugging with STLport you can optionally add the content of
+the etc/autoexp.dat file in the autoexp.dat file coming with your Visual Studio
+install.
+
+Now you should be ready to use STLport.
+
+============
+Known issues
+============
+
+1. InterlockedIncrement
+
+ If you experiment trouble with the InterlockedIncrement Win32 API function
+like the following message:
+
+C:\Program Files\Microsoft SDK\Include\.\winbase.h(1392) : error C2733: second C
+linkage of overloaded function 'InterlockedIncrement' not allowed
+C:\Program Files\Microsoft SDK\Include\.\winbase.h(1390) : see declaration of
+'InterlockedIncrement'
+
+ It means that you are using the new Microsoft platform SDK. There is no
+way to known it from STLport code so you have to signal it in the
+stlport/stl/config/user_config.h file (uncomment _STLP_NEW_PLATFORM_SDK in this file).
+
+2. Native C/C++ library headers location
+
+ If you experiment trouble with location of ctime and other Standard headers
+while building or using STLport you might be using the compiler coming with a
+platform SDK. If so please uncomment _STLP_USING_PLATFORM_SDK_COMPILER in
+stlport/stl/config/user_config.h. If it still do not find native headers you will
+perhaps need to change native headers relative path used by STLport. In this case use
+_STLP_NATIVE_INCLUDE_PATH and associated macro in stlport/stl/config/host.h.
+
+4. C symbols in std namespace
+
+The compiler of MSVC++ 6 has a bug when dealing with symbols existant in both
+the global namespace and symbols imported by a using-directive or a
+using-declaration - it will report an ambiguous call to an overloaded
+function (error C2668). Example:
+
+void function();
+namespace ns {
+ void function();
+ // or:
+ // using ::function;
+}
+
+using ns::function;
+// or:
+// using namespace ns;
+
+void call() {
+ function();
+}
+
+Since we anticipate that using-declarations or even using-directives are common
+use, STLport by default doesn't import or wrap functions that exist in both the
+global namespace and namespace std, in particular those are functions with C
+origin like fopen() or abs(). Also, it defines additional overloads for
+functions like abs() (overloaded for int, long, float, double, long double) in
+the global namespace.
+
+In order to make STLport include them in the std namespace, you can define the
+_STLP_DO_IMPORT_CSTD_FUNCTIONS macro. Doing so, you will have to explicitely
+scope all your functions calls like std::abs() though - otherwise you only get
+the global abs(int) from the C library.
diff --git a/lib/3rdparty/stlport/doc/README.utf8 b/lib/3rdparty/stlport/doc/README.utf8
new file mode 100644
index 00000000000..7547fe9d18e
--- /dev/null
+++ b/lib/3rdparty/stlport/doc/README.utf8
@@ -0,0 +1,51 @@
+ Here is a description of how you can use STLport to read/write utf8 files.
+utf8 is a way of encoding wide characters. As so, management of encoding in
+the C++ Standard library is handle by the codecvt locale facet which is part
+of the ctype category. However utf8 only describe how encoding must be
+performed, it cannot be used to classify characters so it is not enough info
+to know how to generate the whole ctype category facets of a locale
+instance.
+
+In C++ it means that the following code will throw an exception to
+signal that creation failed:
+
+#include
+// Will throw a std::runtime_error exception.
+std::locale loc(".utf8");
+
+For the same reason building a locale with the ctype facets based on
+UTF8 is also wrong:
+
+// Will throw a std::runtime_error exception:
+std::locale loc(locale::classic(), ".utf8", std::locale::ctype);
+
+The only solution to get a locale instance that will handle utf8 encoding
+is to specifically signal that the codecvt facet should be based on utf8
+encoding:
+
+// Will succeed if there is necessary platform support.
+locale loc(locale::classic(), new codecvt_byname(".utf8"));
+
+ Once you have obtain a locale instance you can inject it in a file stream to
+read/write utf8 files:
+
+std::fstream fstr("file.utf8");
+fstr.imbue(loc);
+
+You can also access the facet directly to perform utf8 encoding/decoding operations:
+
+typedef std::codecvt codecvt_t;
+const codecvt_t& encoding = use_facet(loc);
+
+Notes:
+
+1. The dot ('.') is mandatory in front of utf8. This is a POSIX convention, locale
+names have the following format:
+language[_country[.encoding]]
+
+Ex: 'fr_FR'
+ 'french'
+ 'ru_RU.koi8r'
+
+2. utf8 encoding is only supported for the moment under Windows. The less common
+utf7 encoding is also supported.
diff --git a/lib/3rdparty/stlport/doc/README.wince b/lib/3rdparty/stlport/doc/README.wince
new file mode 100644
index 00000000000..527e5641a5a
--- /dev/null
+++ b/lib/3rdparty/stlport/doc/README.wince
@@ -0,0 +1,94 @@
+Programming under MS Windows CE with STLport
+=============================================
+
+This is supposed to give an overview for programming on MS Windows CE, with and
+partially without STLport, what tools are available and what common pitfalls
+exist. Note that for every supported compiler there is another readme file which
+explains the specifics of that compiler.
+
+
+
+Available compilers:
+---------------------
+
+- Embedded Visual C++ 3 (eVC3): this IDE/compiler is for the CE3 target platforms.
+The included compiler is MSC12, the same as for VC6, so many workarounds for its
+'features' apply here, too. STLport works out of the box with this.
+
+- Embedded Visual C++ 4 (eVC4): basically the same as eVC3, but it can compile for
+CE4.x and 5. Note that currently (2007-03-06) I haven't tested this with CE5,
+because you can use a better compiler using VC8/VS2005. This compiler can be
+downloaded for free from the MS website, including a product activation key.
+STLport works out of the box with this.
+
+- Visual C++ 8 (VC8) aka Visual Studio 2005 (VS2005): with this version (and
+partially already version 7) the embedded and desktop IDEs have been merged again,
+so it supports compiling for MS Windows CE, versions 5 and later. Note that the
+freely downloadable express edition does not(!) allow compiling for CE. This IDE
+uses MSC14 as compiler. STLport works out of the box with CE5.
+
+- Platform Builders (PB): this tool is used to create a CE image. You can select the
+modules (e.g. Explorer, but also C++ RTTI) you include in the image. These IDEs use
+several different compilers (MSC12-14). STLport hasn't been tested with this
+IDE, AFAIK.
+
+- There used to be an addon for VC6(?) that allowed compiling for CE. This plugin
+has been superceeded by eVC3/4 and support for it has been removed from STLport in
+version 5.
+
+- Others: some vendors (e.g. Intel) provide compilers that are able to generate
+CE executables. I'm not aware of an attempt to compile STLport with them.
+
+
+
+Environment specialties:
+-------------------------
+
+- In order to develop for a platform, the first thing you need is a so-called SDK.
+This package includes headers and libraries that (more or less) resemble the APIs
+available on the device. The IDEs come with a basic selection of SDKs, but in
+general you need to retrieve an according SDK from the vendor. If you are the
+vendor, you can generate an SDK for a platform with Platform Builder.
+
+- The provided API is typically a subset of the 'normal' win32 API. Often, some
+features are simply not supported, like security descriptors when opening files.
+Also, these APIs are only supported for wchar_t strings, e.g. only CreateFileW()
+and not CreateFileA().
+
+- CE doesn't have a current directory, hence no relative paths to that dir. You can
+have relative parts in global paths though.
+
+- CE doesn't have environment variables, thus STLport can't support e.g.
+setenv/getenv. It also doesn't attempt to provide workarounds.
+
+- Since many features are optional (see the description of Platform Builder), it
+is possible that you don't have e.g. a console that std::cout could write to. The
+same applies to exceptions (see e.g. the add-on lib for RTTI for eVC4). Other
+features might go amiss, too. This makes it hard for STLport to adapt to, in
+particular because this information is not available outside PB, a header might
+declare a function that in fact is not present. Keep this in mind when you get
+linker errors.
+
+- The supplied C++ standard library is extremely cut down, e.g. iostreams and
+locales are missing completely.
+
+- The supplied standard C API is at best rudimentary. Functions like e.g. time() or
+clock() are declared but not defined. STLport doesn't include any workarounds for
+these missing functions at present.
+
+- All compilers are cross-compilers, i.e. you run them on a win32 host and they
+produce executable code for the target platform. The same applies to the debugger,
+which is connected via serial, USB or ethernet. Alternatively, there are emulators
+that run on the host machine and simulate the target platform.
+
+- The entrypoint for executables is generally WinMain. Normally, you would have
+switched to a normal main() using /SUBSYSTEM:CONSOLE on the linker commandline.
+The linkers for at least CE4 and 5 don't understand this switch, they claim it
+conflicts with CE targets. Instead, set the entrypoint directly to
+mainACRTStartup.
+
+- The name of a DLL loaded via an import library can't be longer than 32 chars. If
+this is not the case, the application will behave as if the DLL was not present or
+couldn't be loaded for whatever other reason. This limitation applies to at least
+CE 4 and 5.
+
diff --git a/lib/3rdparty/stlport/doc/README.windows b/lib/3rdparty/stlport/doc/README.windows
new file mode 100644
index 00000000000..fd23b6d92ad
--- /dev/null
+++ b/lib/3rdparty/stlport/doc/README.windows
@@ -0,0 +1,55 @@
+Note for Windows users:
+
+ It is highly recommended to declare the Windows OS version you are
+targetting when building the library as well as when using it. You can do so
+thanks to the well known Microsoft macros WINVER, _WIN32_WINDOWS or
+_WIN32_WINNT, see your platform SDK documentation for a description
+of those macros and how to use them. To define it when building the
+library, use the configure script --extra-cxxflag option. Here is the
+configuration to build STLport using Visual Studio 2005 and targetting
+Windows XP:
+
+configure -c msvc8 --extra-cxxflag "/D_WIN32_WINNT=0x0501"
+
+ If you do not declare it at build time STLport will adapt to the PSDK in
+use, windows.h gives a default value to WINVER. However, when using the
+library, windows.h is not necessarily included, at least not by STLport
+internally, so none of the macros are defined which will result in an
+inconsistency in the build process which most of time will generate undefined
+behavior at runtime.
+
+ Here is the main reason for following this advise, the Windows 95
+compatibility issue:
+
+ Because of a modification in the behavior of the Win32 API functions
+InterlockedIncrement and InterlockedDecrement after Windows 95, STLport
+libraries built for Windows 95 cannot be used to generate an application
+built for Windows XP for instance. So, if you build STLport with a Windows
+95 PSDK, STLport will be ready for Windows 95. If you then use it without
+defining _WIN32_WINDOWS to signal Windows 95 compatibility, STLport will
+consider that it can use latest Windows OS features like the new
+InterlockedIncrement and InterlockedDecrement functions which change the
+memory footprint of some internal STLport objects making it incompatible
+with the libraries built for Windows 95.
+
+ Normally, doing so wouldn't generate any compilation or link error, you
+would only experiment undefined behavior at runtime. In order to make this
+problem more obvious STLport forces a link time error in debug mode (_DEBUG
+macro defined).
+
+Unresolved symbol will be:
+ - 'building_for_at_least_windows98_but_library_built_for_windows95'
+ if you are trying to use STLport libraries built for Windows 98 or later
+ to generate an application targetting the Windows 95 platform.
+ - 'building_for_windows95_but_library_built_for_at_least_windows98'
+ if you are trying to use STLport libraries built for Windows 95 to generate
+ an appliation targetting the
+
+ Windows XP platform for instance.
+
+ Of course, targetting the latest Windows OS versions will give you the best
+performance from STLport. This is why when none of the platform macros are
+defined STLport consider that there is no minimum OS requirement and will
+use the latest API functions. There is only one exception to this behavior,
+the SwitchToThread function that is used only if you define _WIN32_WINNT to a
+value higher or equal to 0X0400.
diff --git a/lib/3rdparty/stlport/doc/build_system.txt b/lib/3rdparty/stlport/doc/build_system.txt
new file mode 100644
index 00000000000..8d39b0dbe0c
--- /dev/null
+++ b/lib/3rdparty/stlport/doc/build_system.txt
@@ -0,0 +1,82 @@
+The STLport build system
+========================
+
+This is a basic overview of the STLport build system. At the moment, I'm only familiar
+with the working of the nmake variant, i.e. for MSVC, eVC and ICC/win32, other variants
+may differ.
+
+Overview:
+----------
+
+
+There are three basic classes to consider while building:
+1. The used make tool (currently that is make (GNU make) an nmake (Microsoft)).
+2. The used compiler
+3. The target type, either application or library
+
+Other than that, there are three different settings corresponding to the three different
+STLport modes, 'release', 'debug' and 'STLdebug' and each one has two modes for either
+static or dynamic linking.
+
+The whole build system lies under the build/ dir of the source tree. There, it first
+branches to Makefiles/ (which contains the base of the build system) and to lib/ (which
+contains files to build the STLport library) and test/ (which contains files to build
+tests) (TODO: what is the misc/ folder for?).
+
+Under Makefiles/, you see the initially mentioned branching according to the build tool.
+Here is also where the configure.bat file puts the generated config.mak file. (TODO:
+what are the other files in that folder?)
+
+nmake:
+-------
+
+Under nmake/, you then find the common support files for the different compilers and
+files that define generic rules. Here, it then splits into app/ and lib/, which are
+structured similar to each other and to the common nmake/ dir. In each dir you have
+files for the different compilers that are used to make application specific or library
+specific settings.
+
+The branching in the three STLport modes and the static/dynamic linking is not visible
+in the file structure but only in the used nmake variables.
+
+In order to make clear which file includes which other file, here an example when
+compiling the STLport library for eVC4. The call issued is 'nmake /f evc4.mak' in the
+build/lib folder. From there, the following include tree is created:
+
+build/lib/evc.mak
+ build/Makefiles/config.mak ; generated by configure.bat
+ build/Makefiles/nmake/top.mak
+ build/Makefiles/config.mak
+ build/Makefiles/nmake/sysid.mak
+ build/Makefiles/nmake/sys.mak
+ build/Makefiles/nmake/evc4.mak ; evc4 from config
+ build/Makefiles/nmake/evc-common.mak
+ build/Makefiles/nmake/targetdirs.mak
+ build/Makefiles/nmake/extern.mak
+ build/Makefiles/nmake/targets.mak
+ build/Makefiles/nmake/rules-o.mak
+ build/Makefiles/nmake/clean.mak
+ build/Makefiles/nmake/lib/top.mak ; would be app/top.mak when building an application
+ build/Makefiles/nmake/lib/macro.mak
+ build/Makefiles/nmake/lib/evc4.mak ; evc4 from config
+ build/Makefiles/nmake/lib/evc-common.mak
+ build/Makefiles/nmake/lib/rules-so.mak
+ build/Makefiles/nmake/lib/rules-a.mak
+ build/Makefiles/nmake/lib/rules-install-so.mak
+ build/Makefiles/nmake/lib/rules-install-a.mak
+ build/Makefiles/nmake/lib/clean.mak
+
+TODO: build/Makefiles/config.mak is included both by build/lib/evc.mak and by
+build/Makefiles/nmake/top.mak.
+
+Known issues:
+--------------
+
+- nmake: MSC doesn't support generating dependency information for makefiles. So, unless
+you modify the direct source file for an object file, no recompilation is triggered! You
+need to either delete all object files that need to be recompiled or 'make clean'
+
+- There are targets to only install e.g. the shared STLdebug version but there is no
+such thing for making clean. This would be useful in the context of above issue for
+making a selective clean only.
+
diff --git a/lib/3rdparty/stlport/doc/pointer_specialization.txt b/lib/3rdparty/stlport/doc/pointer_specialization.txt
new file mode 100644
index 00000000000..570c5060c50
--- /dev/null
+++ b/lib/3rdparty/stlport/doc/pointer_specialization.txt
@@ -0,0 +1,90 @@
+********************************************************************
+* This document describe the STLport container pointer *
+* specialization feature. *
+********************************************************************
+
+ What is it for:
+
+ The major problem of template code is the potentialy huge binary
+ size that can result from the compilation. Each template type
+ instanciation is a new type from the compiler point of view even if
+ the generated binaries are identicals. To avoid this binary duplication
+ STLport grant the partial pointer specialization for 4 containers:
+ - vector
+ - deque
+ - list
+ - slist
+
+ How does it work:
+
+ The pointer specialization consists in using a void* container
+ instanciation for any container of pointers, including pointers
+ to cv qualified types. So the container pointer specializations
+ are only bridges that forward all the method calls to the
+ underlying void* container instanciation. The bridge job is to
+ cast the pointer type to and from the void* type.
+
+ Why only those 4 containers:
+
+ Some of you might wonder why none of the associative containers
+ or hash containers has been specialized. Lets take the set container
+ as an example. Its declaration is
+
+ template ,
+ class _Alloc = allocator<_Tp> >
+ class set;
+
+ In a first thought you can imagine a partial specialization like
+ the following:
+
+ template
+ class set<_Tp*, _Compare, _Alloc>
+
+ What would be the underlying container for such a partial
+ specialization? The _Alloc type is supposed to have a rebind member
+ method so you can easily find the _VoidAlloc type. The _Compare type,
+ on the other hand, do not have this kind of Standard requirements.
+ So you need to wrap the _Compare type within a _WrapCompare type
+ that will take care of all the cast work. The underlying container
+ type will be:
+
+ set, _VoidAlloc>
+
+ The problem of such a type is that it is still dependent on the
+ original _Tp type for the _WrapCompare instanciation. So each set
+ instanciation will have a distinct underlying void* container and
+ we fall back on a binary duplication trouble.
+
+ On a second thought a possible solution is to limit the partial
+ specialization like that:
+
+ template
+ class set<_Tp*, less<_Tp*>, _Alloc>
+
+ We only specialized the set container if the comparison functor
+ is the Standard less struct. The underlying container would be:
+
+ set, _VoidAlloc>
+
+ It looks fine but it is wrong. Actually a STL user is free to
+ specialized the less struct for any pointer type even the basic one.
+ In such a situation the client would think that the set is ordered
+ according its own functor but will finally have a set ordered according
+ the less functor. The less specialization issue also show that
+ the underlying cannot be a
+
+ set, _VoidAlloc>
+
+ but will have to be a
+
+ set, _VoidAlloc>
+
+ where __less would be equivalent to the standard less functor but
+ would not be specializable because unreachable from the client code.
+
+ There is of course a solution for this specialization issue. We
+ need to be able to detect the less specialization. The partial set
+ specialization would have to be used only if the less functor is
+ the default STLport implementation based on the strict ordering operator.
+ No doubt that a solution to this problem will be soon found.
diff --git a/lib/3rdparty/stlport/doc/stlport_namespaces.txt b/lib/3rdparty/stlport/doc/stlport_namespaces.txt
new file mode 100644
index 00000000000..d243b035b2c
--- /dev/null
+++ b/lib/3rdparty/stlport/doc/stlport_namespaces.txt
@@ -0,0 +1,133 @@
+This document present the STLport namespace schema and give additionnal
+information about how STLport replace the native C++ Standard library
+coming with your compiler.
+
+1. What is the STLport namespace ?
+
+ As STLport is a C++ Standard library implementation the STLport namespace
+is 'std'. In normal use this is all you need to know and you can stop reading
+here.
+
+2. How does STLport replace native C++ Standard library ?
+
+ STLport defines a macro 'std' that replaces all references of std in the
+user code by a different name. This technique has has some drawback but also
+advantages. The drawback is that you cannot declared Standard component like
+that:
+
+
+//foo.h
+namespace std
+{
+ template
+ class allocator;
+}
+
+void f1(const std::allocator&);
+
+
+//foo.cpp
+#include "foo.h"
+#include
+
+void f1(const std::allocator& alloc)
+{
+ //implementation
+}
+
+//bar.cpp
+#include "foo.h"
+#include
+
+int main(int, char**)
+{
+ std::allocator alloc;
+ f1(alloc);
+}
+
+ If you build this code you will surely have a compilation error as f1 is declared
+as taking a std::allocator parameter but you are calling it using an STLport allocator
+instance that is not in the std namespace. The good news is that this drawback is easy
+to detect as it will generate compilation error or at least link time error. The only
+workaround is to include an arbitrary Standard header before the allocator declaration.
+Good candidates for that are or as they are small headers. Including
+those headers will replace std with the STLport namespace.
+
+ The advantage of this macro replacement is that we can customize the STLport namespace
+depending on the compilation options. For instance the STLport safe mode you can use by
+defining _STLP_DEBUG is not binary compatible with a normal debug build. To ensure that
+no one will ever build code without _STLP_DEBUG and link with STLport library built with
+this option the namespace is different so that it will generate link time error rather
+than random crashes during application execution.
+
+3. Why not having use namespace injection ?
+
+ An other way to replace native Standard C++ library implementation would have been to
+use namespace injection:
+
+namespace std
+{
+ using namespace stlport;
+}
+
+ This solution has a first major drawback which is that STLport would be much more sensible
+to native headers. If you include a C++ native headers that indirectly define for instance
+the vector class it is going to conflict with the STLport vector definition.
+
+ Moreover this solution just does not work for a very simple reason. The C++ Standard
+allows users to specialized some of the Standard algorithms. This specialization has to
+be done in the same namespace as the main template declaration:
+
+//In an STLport header:
+namespace stlport
+{
+ template
+ struct less
+ {
+ bool operator () (const _Tp& x, const _Tp& y) const;
+ };
+}
+
+//User code:
+
+struct MyStruct;
+
+namespace std
+{
+ template <>
+ struct less
+ {
+ };
+}
+
+As you can see the specialization is not in the STLport less namespace and it
+won't be used in associative containers for instance.
+
+4. What is the STLport specific namespace ?
+
+ The official STLport namespace is: stlport. Once again this is not the real namespace
+where all the Standard stuff are. As the real STLport namespace change depending on compilation
+options you cannot use it directly. So stlport is an alias of the real STLport namespace.
+
+5. What are the other STLport namespaces ?
+
+ Those names are given for information purpose and should never be used in any user code. The
+default STLport namespace is: stlp_std. Here is the list of the customized namespaces:
+
+ - stlpd_std : when _STLP_DEBUG is defined
+ - stlpx_std : when you use STLport as a shared library linked to the static version of the native
+ runtime or when you build the static STLport library linked with the dynamic version. This option
+ is only supported by a limited number of compilers.
+ - stlpmtx_std : when building STLport as not thread safe.
+
+ You can also have combination of those extension like stlpdxmtx_std or stlpdmtx_std...
+
+ There is also an other STLport namespace for STLport internal functions or struct/class: priv.
+
+namespace stlport
+{
+ namespace priv
+ {
+ }
+}
+
diff --git a/lib/3rdparty/stlport/etc/ChangeLog b/lib/3rdparty/stlport/etc/ChangeLog
new file mode 100644
index 00000000000..09aa16d1fa3
--- /dev/null
+++ b/lib/3rdparty/stlport/etc/ChangeLog
@@ -0,0 +1,3088 @@
+2008-12-10 Petr Ovtchenkov
+
+ * Repository: STLport release 5.2.1
+
+2008-12-03 Petr Ovtchenkov
+
+ * build: HP-UX/ia64 with aC++ compiler; verified on HP-UX 11.23
+ and 11.31 with aC++ A.06.17; [4 of 436 tests, 4 ignored (2 explicit),
+ and 4 of 360 tests, 2 ignored]; submitted by Boris Gubenko.
+
+2008-11-27 Petr Ovtchenkov
+
+ * build: EVC9 (Visual Studio 2008) by Johan Andersson.
+
+2008-11-19 Petr Ovtchenkov
+
+ * Repository: STLport release 5.2.0
+
+2008-08-26 Petr Ovtchenkov
+
+ * Repository: branch for STLport 5.2, r3618
+
+2008-07-21 Petr Ovtchenkov
+
+ * stlport/type_traits: decay, conditional, ebable_if added.
+
+2008-07-18 Francois Dumont
+
+ * configure.bat: Specifying the compiler is now mandatory and
+ must be first.
+
+2008-07-17 Francois Dumont
+
+ * stlport/stdlib.h, cstdlib: Fix errno workaround for gcc MinGW.
+ Latest gcc version (4.3.0) includes stdlib.h in cstdlib using
+ include_next so skipping workaround in STLport stdlib.h. So errno.h
+ must also be included from cstdlib.
+
+2008-07-17 Petr Ovtchenkov
+
+ src/details/fstream_unistd.cpp: fix bug #2001222, opening with
+ ios_base::app should rewind write pointer to the end of the file;
+ fix treatment of ios_base::ate (it should rewind pointer
+ to the end of the file once) and ios_base::app (offset will be set
+ to the end of the file prior to each write); references ---
+ http://www.open-std.org/Jtc1/sc22/wg21/docs/papers/2008/n2691.pdf
+ 27.8.1.4; http://www.opengroup.org/onlinepubs/7990989775/xsh/fopen.html;
+ http://www.opengroup.org/onlinepubs/7990989775/xsh/open.html
+
+ test/unit/fstream_test.cpp: add sample with fopen as reference point.
+
+2008-07-14 Francois Dumont
+
+ * build/Makefiles/gmake: Build system updated for gcc under Cygwin,
+ MinGW. Under Cygwin, with or without -mno-cygwin option, STLport
+ is now a full replacement for libstdc++, building an application
+ with it do not require -lsupc++ anymore as it is completely
+ integrated in STLport. Under MinGW it didn't work resulting in a
+ crash when starting an application using STLport so -lsupc++ is
+ necessary both when linking STLport _and_ when linking the
+ application using it.
+
+2008-07-10 Francois Dumont
+
+ * src/num_put_float.cpp: Use an union based technique to find out
+ the sign of floating point values. It will maybe replace use of
+ platform specific functions in a future version.
+
+ * src/stdio_streambuf.cpp, test/unit/iostream_test.cpp: Change
+ behavior of stdio_istreambuf implementation that now always return 0 on
+ showmanyc call. Returning -1 means that reading attempt will
+ necessarily fail which is not the case, 0 is prefered as it means that
+ we don't know. It is also similar to other std implementations like
+ libstdc++.
+
+2008-07-02 Francois Dumont
+
+ * configure.bat: After a very interesting debate the consesus
+ is to put configure scripts in root folder.
+
+ * stlport/stl/_string_sum_methods.h: Bug report #2003308,
+ compilation error with _STLP_USE_TEMPLATE_EXPRESSION.
+ Regression due to remove of POD type support in basic_string
+ implementation.
+
+2008-06-26 Francois Dumont
+
+ * stlport/stl/_fstream.c: Consider read file failure in
+ _M_underflow_aux method to avoid infinite looping on some
+ platforms. Thanks Pawel Sikora.
+
+2008-06-26 Petr Ovtchenkov
+
+ * build/Makefiles/gmake/unix/rules-install-so.mak: do
+ install-headers tags when make install or install-release-shared.
+
+2008-06-24 Francois Dumont
+
+ * build/Makefiles/gmake: Cygwin/MinGW upgrade, now build
+ without referencing libstdc++.
+
+ * stlport/stl/_threads.h: Move definition of __stl_atomic_t next
+ to definition of atomic operations to guaranty coherency.
+
+2008-06-18 Francois Dumont
+
+ * build: configure.bat moved to build folder. lib/Makefile,
+ test/unit/Makefile removed from SVN, now generated by configure
+ scripts. Under GNU make use include rather than link to
+ reference the right make file, link seems not supported by
+ Cygwin/MinGW make. Remove default value of STLPORT_DIR,
+ already set in internal make files and moreover the absolute
+ path generated in the script leads to trouble under Cygwin/MinGW.
+
+ * src/num_get_float.cpp: Use an union to generate double value
+ from 64 bits int to avoid gcc type-punned pointer warning.
+
+2008-06-16 Petr Ovtchenkov
+
+ * build/test/unit/gcc.mak: pass runtime pathes as absolute;
+ removed LDSEARCH macro, use LDFLAGS instead;
+
+ * Makefile: clean in test/unit too.
+
+2008-06-13 Francois Dumont
+
+ * stlport/stl/_iterator_base.h: Add a funny feature, when
+ using both STLport and native STLs it was not possible
+ to use std iterators in STLport containers because of the
+ missing iterator category that is defined in std:: and
+ not in stlport::. So now STLport map std iterator categories
+ in stlport ones. Now it is possible to write something like
+ that:
+ std::string stdstr("std");
+ stlport::string stlportstr("stlport and ");
+ stlportstr.append(stdstr.begin(), stdstr.end());
+ However the other side is not supported except when STLport
+ iterators are simply pointers.
+
+2008-06-05 Francois Dumont
+
+ * src/num_get_float.cpp: Remove useless skip of white
+ space at begining of buffer in _Stl_string_to_double function.
+ __read_float, the function that generate that buffer do not
+ put white space at the first place.
+
+ * stlport/stl/_new.h, _range_errors.c: Remove unused
+ _STLP_RTTI_BUG macro. Moreover __stl_new was not correctly
+ implemented with this macro, there was no check for failed
+ allocation.
+
+ * test/unit/limits_test.cpp: Remove code supposed to hide
+ numeric_limits::max value to MSVC 8 compiler, this code was
+ introducing a test regression. If it is producing a warning
+ a #pragma warning should be use to hide it.
+
+ * test/unit/num_put_get_test.cpp: Add test showing problem
+ with code that used to be in limits test. Those tests will be
+ activated for 5.3 to check that there is really nothing wrong
+ with it.
+
+2008-06-07 Petr Ovtchenkov
+
+ * configure: don't duplicate options in config.mak, that
+ has default values in makefiles.
+
+2008-06-06 Petr Ovtchenkov
+
+ * configure: put it on common place for ./configure;
+
+ * build/Makefiles/gmake/targetdirs.mak: use $(DESTDIR)
+ as in common practice (change root of installation, but
+ don't change run paths);
+
+ * build: by default use make for gcc;
+
+ * Makefile: top makefile for common project task;
+
+ * build/Makefiles/gmake/depend.mak: fix options for ctags
+ and etags;
+
+ * configure, build/Makefiles/gmake/top.mak: take into account
+ extra flags for linker.
+
+2008-06-05 Francois Dumont
+
+ * stlport/stl/_function_adaptors.h: Fix instantiation of
+ unary_function and binary_function as base type of _Mem_fun0_ref,
+ _Mem_fun1_ref, _Const_mem_fun0_ref, _Const_mem_fun1_ref,
+ _Void_mem_fun0_ref, _Void_mem_fun1_ref, _Void_const_mem_fun0_ref,
+ _Void_const_mem_fun1_ref. Those classes are use as a workaround for
+ compiler missing class partial template specialization or that don't
+ support return of void. Instantiation is now done without reference
+ qualifier as specified by the Standard and as done in the
+ implementation used when workaround is not necessary.
+
+2008-06-03 Francois Dumont
+
+ * src/ios.cpp, stlport/stl/_complex.c, _ios.c, _ios.h, _ios_base.h,
+ _istream.c, _num_get.c, _num_put.c: Remove invalid cached facet
+ pointers in ios_base class. This class can be used in a char or
+ wchar_t instantiation context making cast to ctype or
+ ctype invalid resulting in an application crashed. The
+ only safe access to facet instances from a ios_base instance is through
+ the use_facet(getloc()) function. Only _M_cached_ctype has been
+ kept in basic_ios class even if small bench hasn't show real
+ enhancement compared to using use_facet.
+
+ * stlport/stl/_time_facets.c: In addition to above modifications
+ time_get implementation has been simplified as localized info are
+ now stored as wchar_t for wide char instantiation. We do not need
+ to use ctype.widen method anymore.
+
+ * test/unit/time_facets_test.cpp: Add test for time_get wchar_t
+ instantiation.
+
+ * test/unit/cppunit/cppunit_mini.h: Fix report of ignored/explicit
+ tests.
+
+2008-05-27 Francois Dumont
+
+ * stlport/stl/_alloc.h: Code simplification, clean up null
+ pointer checks as allocators should never return it but rather
+ throw a bad_alloc exception.
+
+2008-05-27 Francois Dumont
+
+ * test/unit/cppunit/cppunit_mini.h, file_reporter.h: Fix
+ counting of failed test, won't report more failures than tests
+ anymore. Now also report explicit tests.
+
+2008-05-15 Francois Dumont
+
+ * src/allocators.cpp, locale_catalog.cpp, num_put_float.cpp:
+ Use static method returning static instance to mutex rather than
+ direct access to a static mutex instance to control initialization
+ order of static variables thanks Peter Hrenka report.
+
+2008-04-26 Francois Dumont
+
+ * stlport/stl/_function.h, type_traits.h: Adoption of Defect Report 109
+ Missing binders for non-const sequence elements.
+
+ * test/unit/bind_test.cpp: Test for DR above.
+
+2008-05-11 Petr Ovtchenkov
+
+ * stlport/stl/_string.c: from formal (ISO/IEC 14882:2003) point of view
+ string s; string::size_type p = s.find( "", 0, 0 ); should return 0 in p,
+ i.e. position out-of-bound of string; people near Standard commete has
+ opinion that Standard correct in this point and not require clarification
+ (opposite to my opinion); even if it looks like bogus behavior for me,
+ it fixed to conform standard; see bugreport #1872656;
+
+ * test/unit/string_test.cpp: test for issue above.
+
+2008-05-10 Petr Ovtchenkov
+
+ * stlport/stl/_istream.c, stlport/stl/_ostream.h: ISO/IEC 14882:2003
+ (and 1998 too) assume change as get as put positions with
+ seekg and seekp (27.6.1.3, par 38; 27.6.2.4 par 2), but this
+ contradict to common practice and proposed draft N2588
+ (27.6.1.3, par 41; 27.6.2.5, par 4); now STLport implement
+ (i.e. change present behavior) the draft's point of view;
+ this reflect patch #1650657 by Jan Echternach;
+
+ * test/unit/sstream_test.cpp: test for issue above.
+
+2008-04-26 Francois Dumont
+
+ * Patches #1940126, #1941267, #1941814 from Johan Andersson for evc8
+ Pocket PC support and build of tests without warnings.
+
+2008-04-24 Francois Dumont
+
+ * Patch 1937823 from Johan Andersson to add Microsoft Visual
+ Studio 2008 support.
+
+ * stlport/stl/_algobase.h: Patch 1935497 from Andrey Semashev to
+ apply a common optimization in STLport algos for random access
+ iterators to fill and fill_n algos.
+
+2008-04-23 Petr Ovtchenkov
+
+ * src/num_put.cpp: remove ambiguity of char to int conversion
+ (comparison with integers, check for negative value); remove
+ ambiguity with postfix increment in index in conditional
+ expression.
+
+2008-04-22 Petr Ovtchenkov
+
+ * build/Makefiles/gmake/gcc.mak, build/lib/configure: take
+ into account CFLAGS, EXTRA_CFLAGS, because of C compiler in use too.
+
+2008-04-17 Francois Dumont
+
+ * stlport/stl/_string.h: Remove support for non POD type in basic_string
+ implementation.
+
+2008-04-08 Petr Ovtchenkov
+
+ * build/Makefiles/gmake/lib/gcc.mak: try to create $(PRE_OUTPUT_DIR) before
+ run lipo; impact only MacOS;
+
+ * build/Makefiles/gmake/sysid.mak: uname -m on MacOS return
+ power-macintosh, but identify architechture as ppc.
+
+2008-03-28 Francois Dumont
+
+ * stlport/assert.h: Bug #1894882: Apply a technique similar to the
+ one used in errno.h to detect when assert has been defined before
+ including assert.h.
+
+2008-03-21 Francois Dumont
+
+ * Patch 1876529 from Johan Andersson to add support for VS 2005
+ bundled Pocket PC 2003 SDK.
+
+2008-03-18 Petr Ovtchenkov
+
+ * stlport/stl/_string.c: derived from patch #1914475, wrong
+ replace for selfreferencing string; thanks Farid Zaripov;
+
+ * test/unit/string_test.cpp: test for problem above.
+
+2008-03-17 Francois Dumont
+
+ * stlport/stl/_stdexcept_base.h, _stdexcept_base.c,
+ type_manips.h, src/num_put_float.cpp,
+ test/unit/num_put_get_test.cpp: Borland patch from Eric Sanford.
+ No need for a __Named_exception workaround anymore. Force
+ floating point control word when testing special floating point
+ operations. Change implementation _Copyable and add a workaround
+ to correctly render long double max value that is consider as
+ equal to double max value.
+
+2008-03-10 Francois Dumont
+
+ * build/Makefiles: Normalization of --with-static-rtl and
+ --with-dynamic-rtl extended to configure script for Borland
+ and DMC compilers.
+
+2008-03-08 Francois Dumont
+
+ * test/unit/cppunit/cppunit_mini.h: New mini cppunit framework
+ feature, the explicit tests that have to be explicitly tested
+ thanks to the -t option to run.
+
+ * test/unit/unordered_test.cpp: benchmark1 and benchmark2 tests
+ are now explicit.
+
+ * stlport/stl/_stdexcept_base.h, _stdexcept_base.c:
+ __Named_exception that contains dynamically allocated memory
+ require a copy constructor and assignment operator. Thanks bug
+ report #1908626 from Ilya Dogadaev.
+
+ * build/Makefiles: Normalized some configure options:
+ --without-thread, --without-rtti, --with-lib-motif.
+
+2008-03-06 Francois Dumont
+
+ * Fix rtti management:
+ - no rtti support do not imply no type_info struct definition.
+ - #error message in typeinfo to signal missing rtti support
+ has been removed.
+ - locale implementation do not use typeid anymore to enhance
+ runtime_error message thrown by combine message when we cannot
+ find the combined facet. It was introducing an annoying dependency
+ making use of the lib without rtti support impossible.
+
+2008-03-05 Francois Dumont
+
+ * stlport/stl/_range_errors.h: Signal function responsible
+ for throwing excepions as not returning to the DMC compiler.
+
+2008-03-03 Francois Dumont
+
+ * build/Makefiles/gmake: Eric Sanford patch to make generation
+ of debug symbols optional when using Borland compiler to build
+ unit tests.
+
+ * stlport/stl/config: Normalization of verbose mode used to get
+ feedback about build context when using STLport.
+ _STLP_VERBOSE_AUTO_LINK has been renamed in _STLP_VERBOSE and
+ report additional information like rtti, exception support,
+ mono/multi threaded, static/dynamic library.
+
+ * stlport/stl/_check_config.h: Unused, removed.
+
+ * stlport/typeinfo: Report use of this header when there is no
+ RTTI support, only when we can detect it of course.
+
+2008-02-29 Francois Dumont
+
+ * build/Makefiles/gmake: Several modif for Digital Mars support.
+
+ * stlport/stl/_function_base.h: Hide protected constructor not
+ supported by Borland compiler.
+
+ * stlport/stl/config/_bc.h: Now detect Rtti support.
+
+2008-02-28 Petr Ovtchenkov
+
+ * build/Makefiles/gmake/gcc.mak: use more convenient option
+ -dumpversion to detect compiler's revision; check that
+ -fuse-cxa-atexit really required; remove -fident option;
+
+ * build/Makefiles/gmake/targetdirs.mak: take into account DESTDIR;
+
+ * build/lib/configure: write DESTDIR as prefix for installation pathes;
+
+ * stlport/type_traits: type traits, close to JTC1/SC22/WG21
+ C++ 0x working draft
+ [http://www.open-std.org/Jtc1/sc22/wg21/docs/papers/2008/n2521.pdf]
+
+2008-02-26 Francois Dumont
+
+ * Rationalization in detection of real localization implementation.
+ _STLP_REAL_LOCALE_IMPLEMENTED removed, the whole detection mecanism
+ is now in c_locale.h/c_locale.c and is based on API specific macros.
+ For the moment real localization is used for windows platforms
+ (_STLP_WIN32 except Windows CE) and when Glibc 2.2 or newer with
+ GNU extensions (_GNU_SOURCE) is detected.
+
+2008-02-25 Francois Dumont
+
+ * stlport/stl/type_traits.h: Generalize technique used by Borland
+ compiler to detect pointer types const or volatile qualified and
+ avoid trivial copy in this case.
+
+ * Eric Sanford patch for Borland compiler for Linux.
+
+2008-02-22 Francois Dumont
+
+ * stlport/stl/c_locale.h, src/c_locale.h,
+ c_locale_win32/c_locale_win32.c, c_wlocale_win32.c: Major code
+ simplification. Definition of _Locale_UPPER, _Locale_LOWER, etc...
+ used to be platform dependant requiring a lot of macro checks and
+ additionnaly exposing STLport to wrong definitions. When for
+ instance _Locale_PRINT was defined as
+ _Locale_UPPER|_Locale_LOWER|..., marking a character as printable
+ was also making it a upper and lower character!
+ In fact those masks have to be platform specific only when
+ STLport directly expose platform masks which is only the case when
+ using GlibC. So now those mask are hard coded in STLport using
+ values defined in the C++ Standard 22.2.1. Under Windows the
+ localisation implementation has been adapted to map Win32 mask values
+ to the STLport ones. A number of now useless workaround has been
+ removed.
+
+ * src/c_locale_dummy/c_locale_dummy.c, ctype.cpp,
+ test/unit/ctype_facets_test.cpp: Removed the hard coded table of
+ character types that was duplicating the one in src/ctype.cpp. Now
+ a table is build during library initialisation using C functions
+ isspace, isalpha... Doing so and adding a test in
+ LocaleTest::ctype_by_name will show if STLport and the C runtime
+ agree on character classification.
+
+2008-02-20 Francois Dumont
+
+ * src/allocators.cpp: Change management of _S_heap_size, now bit
+ translation is done on the value used to increment it rather than
+ when using _S_heap_size. Thanks to this modif, when _S_heap_size is only a 32
+ bits value it won't roll before 16Go has been allocated. Thanks to
+ an additional unsigned cast the effect won't be notice before 32 Go
+ are allocated.
+
+2008-02-19 Francois Dumont
+
+ * src/c_locale_dummy/c_locale_dummy.c: Fix implementation of
+ _WLocale_toupper/_WLocale_tolower, call to respectively
+ towupper/towlower was inverted.
+
+ * src/allocators.cpp: __stlp_chunk_malloc/__stlp_chunck_free
+ renamed respectively in __stlp_new_chunk/__stlp_delete_chunck as
+ those functions behavior are closer to the new operator behavior
+ rather than to malloc. __stlp_new_chunk implementation fixed, it
+ was using _STLP_CHECK_NULL_ALLOC reserved to check allocations
+ performed through new operator. Fix code to correctly take into account
+ bad_alloc exceptions.
+
+2008-02-18 Francois Dumont
+
+ * stlport/stl/_algobase.h: Removed namespace specification on
+ swap invocation in iter_swap implemenation because it was breaking
+ template function resolution for gcc. Whether this is a gcc bug
+ or simply correct Standard C++ is not clear yet so namespace has
+ been removed independant of compiler in use.
+
+ * stlport/stl/_alloc.h, _new.h, src/locale.cpp, locale_impl.cp:
+ Generalize use of _STLP_THROW_BAD_ALLOC macro to throw the
+ bad_alloc exception. Definition of this macro is now in _new.h
+ header.
+
+ * stlport/stl/_valarray.h: Use __stl_new rather than malloc to get
+ exception management without additional code. It also gives users
+ a Standard way to detect memory starvation through the new handler.
+
+2008-02-16 Francois Dumont
+
+ * Removed anachronous and unmaintained raw SGI allocator mode.
+
+2008-02-15 Francois Dumont
+
+ * src/details/fstream_win32io.cpp: Fix wrong use of Win32 API.
+ SetFilePointer do not take SEEK_CUR macro but FILE_CURRENT.
+
+ * src/allocators.cpp, stlport/stl/_alloc.h, _alloc_old.h,
+ _construct.h, _new.h, _pthread_alloc.h, _rope.h, config/_evc.h,
+ features.h: Code cleanup; __THROW_BAD_ALLOC normalized in
+ _STLP_THROW_BAD_ALLOC; _STLP_NEW, _STLP_PLACEMENT_NEW and
+ _STLP_BROKEN_BAD_ALLOC_CLASS macros removed.
+
+2008-02-14 Francois Dumont
+
+ * src/c_locale_glibc/c_locale_glibc2.c: Manualy handle the "C" locale
+ to guaranty consistency with the default "C" facet implementations in
+ the lib.
+
+ * * test/unit/time_facets_test.cpp, num_facets_test.cpp,
+ monetary_facets_test.cpp, ctype_facets_test.cpp: Enhance tests by using
+ a third way of generating locale instance from names.
+
+2008-02-13 Francois Dumont
+
+ * src/fstream_impl.h, details/fstream_win32io.cpp,
+ fstream_unitstd.cpp, fstream_stdio.cpp, stdio_streambuf.cpp: __stdin_size
+ function revomed making fstream_impl.h useless.
+
+2008-02-12 Francois Dumont
+
+ * stlport/stl/type_manips.h, type_traits.h: Borland patch from Eric
+ Sanford to fix regressions introduced with recent modifications of
+ some helper struct used to detect potential optimizations.
+
+ * config/_bc.h, features.h: New configuration, Borland do not support
+ following syntax:
+ typename std::iterator_traits<>::value_type. It breaks on association
+ of typename keyword with namespace specification. As Borland do not
+ require typename keyword in this case it is now possible avoid it
+ thanks to the _STLP_NO_TYPENAME_BEFORE_NAMESPACE macro.
+
+ * stlport/stl/_limits.c: Borland, like gcc 4, prefer additional brackets
+ in initialization of struct associated to computation of numeric limits
+ values.
+
+2008-02-01 Francois Dumont
+
+ * General code review to look for Standard or internal functions
+ called with namespace scope in order to avoid ambiguous calls
+ when compiler implement Argument Dependant Lookup. See ListTest::adl
+ test case to see what it means.
+
+ * stlport/stl/config/features.h: _STLP_PRIV now contains full
+ namespace path starting at global namespace that is to say
+ ::stlport::priv:: when private namespace is in use and ::stlport::
+ when it is not. Idem for _STLP_TR1 that now contains ::stlport::tr1::.
+
+ * stlport/stl/debug/_string.h: Call to std::distance removed to avoid
+ reading input iterators before reading their contents. Now all
+ basic_string::assign methods invalidate all iterators like other
+ containers.
+
+ * stlport/stl/_iterator_base.h: Remove implementation of __value_type
+ __distance_type and __iterator_category when compiler support partial
+ template specialization. In this case we directly use iterator_traits,
+ we do not need those functions. Removed special __distance implementations
+ use in an anachronous implementation of distance taking an initial value
+ to start counting. Now this function use __distance functions already
+ used by the std::distance function. The MSVC _Distance function is also
+ considered as anachronous.
+
+2008-01-31 Francois Dumont
+
+ * stlport/stl/_string.h, test/unit/string_test.cpp: Add swap
+ implementation when there is no support for template function
+ partial ordering.
+
+2008-01-30 Francois Dumont
+
+ * src/fstream_impl.h, details/fstream_stdio.cpp, fstream_unistd.cpp,
+ fstream_win32io.cpp, stdio_streambuf.h, stdio_streambuf.cpp: Hide
+ __is_regular_file only used in fsteam implementation specific files.
+ Rename __file_size in __stdin_size as this function is only used
+ to get stdin FILE* size. Under Win32 this function now always returns
+ 0 as it looks like Windows do not consider FILE* as allowing
+ position operations. Move platform specific code from stdio_streambuf
+ implementation to associated fstream_*.cpp file.
+
+2008-01-29 Petr Ovtchenkov
+
+ * build/test/unit/gcc.mak: option for run-time path to libstlport
+ on HP-UX;
+
+ * build/Makefiles/gmake/hp-ux/targetsys.mak: HP-UX IA64 use so
+ as shared object extention, while PA-RISC use sl;
+
+ * build/Makefiles/gmake/gcc.mak: use -fno-reorder-blocks for PA-RISC;
+
+ * src/cxa.c: use cxa_atexit fix similar to trick on Solaris and FreeBSD;
+
+ * src/num_get_float.cpp: stdint.h on HP-UX;
+
+ * stlport/wctype.h, stlport/stl/_cwctype.h: HP-UX has problems with
+ wchars; changes suggested by KBac.
+
+2008-01-28 Francois Dumont
+
+ * stlport/stl/config/_cygwin.h: Cygwin do not define _STLP_USE_GLIBC
+ anymore, platform API is closer to a Standard C lib than to the Gnu
+ lib C.
+
+2008-01-26 Francois Dumont
+
+ * src/fstream_stdio.cpp, fstream_win32io.cpp, fstream_unistd.cpp:
+ Removed unused uint64.h include and definition of ULL macro.
+
+ * src/uin64.h: Removed, _compound_int class defined in it is simply
+ not used anymore.
+
+ * src/_stdio_file.h: Major cleanup, only _FILE_fd is still in use.
+
+ * src/locale.cpp, locale_impl.cpp, build/lib/Makefile.inc: Restore
+ independency between those 2 translation units, code duplication is
+ very limited. This is a 1st step to make build of STLport easier by
+ having all sources in src folder buildable.
+
+ * src/locale_impl.h, locale_impl.cpp: _copy_Locale_impl removed,
+ only use to create initial global locale that can simply reference
+ classic locale incrementing its reference counter by one.
+
+ * stlport/stl/_locale.h: Fix locale implementation when MSVC6 workaround
+ is used. The base class _NoMem_loc do not have to have a virtual
+ destructor, it only need a protected one. Moreover fix constructor
+ taking an other locale instance and a facet instance, _M_impl was
+ not released before being assigned resulting in a memory leak.
+
+ * src/fstream_stdio.cpp, fstream_unistd.cpp, fstream_win32io.cpp:
+ Moved to details sub-folder. Now building STLport means build all
+ .cpp, .c and optionnaly .rc files from src folder.
+
+2008-01-22 Petr Ovtchenkov
+
+ * build/test/unit/gcc.mak: check confguration and set
+ ALL_TAGS before inclusion top.mak, to correctly set
+ targets for 'all'.
+
+2008-01-21 Francois Dumont
+
+ * build/test/unit/icl.mak: Add /fp:strict option to build unit tests
+ as we need strict floating point number operations respect to have
+ numeric limits to work correctly.
+
+ * stlport/stl/config/_intel.h: Looks like ICL since version 9 support
+ static constant correctly.
+
+ * stlport/stl/config/features.h, src/c_locale_win32/c_locale_win32.c:
+ New macro _STLP_MARK_PARAMETER_AS_UNUSED to offer a compiler specific
+ way of marking parameters as unused. Default behavior is to cast the
+ parameter to void*.
+
+ * src/c_locale_win32/c_wlocale_win32.c: Fix _WLocale_strxfrm function
+ implementation thanks Kai Khcyt. Despite taking a pointer to wchar_t*
+ LCMapStringW writes bytes to it.
+
+ * build/Makefiles/gmake/bcc.mak, lib/bcc.mak, app/bcc.mak, stlport/cerrno,
+ errno.h, stl/type_manips.h, type_traits.h: Borland patch from Eric
+ Sanford to build Borland libs with GNU make build system.
+
+2008-01-18 Francois Dumont
+
+ * test/unit/locale_test.cpp, ctype_facets_test.cpp,
+ money_facets_test.cpp, num_facets_test.cpp, time_facets_test.cpp:
+ test_supported_locale function do not have to be template, might
+ avoid ICL wring code generation.
+
+ * stlport/stl/_function_base.h: Based on an idea from Herb Sutter in
+ his excellent book "Exceptional C++ Style", derived class destructor
+ should be protected non virtual or public virtual. unary_function
+ and binary_function struct are intended to be derived but they
+ are not polymorphic so destructor should be protected non virtual.
+ According the book it is even not breaking library Standard conformity
+ in doing so. What is sure is that it will help users detect bad
+ code.
+
+2008-01-17 Francois Dumont
+
+ * stlport/stl/debug/_list.h: Remove use of std::distance in STL
+ safe mode, it is invalid for pure input iterators. Now assign
+ invalidate all iterators which make the code simpler.
+
+ * Remove the difficult to implement and maintain _AreSameUnCVTypes,
+ doing so has a number of impact on the lib:
+ - Remove usage of it in debug/_string.h and debug/_deque.h, we
+ rather use function specialization to detect self reference. In string
+ implementation it is almost impossible to detect self referencing in
+ insert and assign method even with use of _AreSameUnCVTypes, so
+ we systematically creation an intermediate string instance.
+ - Creation of _AreCopyable helper class to detect when it is safe
+ to do a memcpy or memmove between 2 types. This class returns false
+ when any type is volatile qualified or when trying to copy to a const
+ qualified type.
+ - Creation of _AreSameTypes only really implemented thanks to partial
+ template specialization, only used in _IsOkToSwap struct.
+
+ * test/unit/copy_test.cpp: Add test showing bug 1806558.
+
+2008-01-17 Petr Ovtchenkov
+
+ * build/lib/configure: Don't override COMPILER_NAME, if already
+ defined;
+
+ * stlport/stl/config/_prolog.h: remove suspicious comments.
+
+2008-01-15 Petr Ovtchenkov
+
+ * stlport/stl/config/_hpux.h: define _POSIX_C_SOURCE 199506;
+ suggested by KBac, patch #1869229.
+
+2008-01-14 Francois Dumont
+
+ * stlport/stl/_string.h, _string.c: Restore code to support non-POD
+ types in basic_string implementation as specified in basic_string
+ comments.
+
+ * stlport/stl/_limits.c: Use double numeric limits for long double
+ when sizeof(double) == sizeof(long double).
+
+ * stlport/stl/debug/_debug.h, _deque.h, _list.h, _vector.h: Prefer to
+ use overloading of member method to activate additional check of
+ 23.1.1 table 67 Standard conformity rather than using metaprogrammng
+ technique.
+
+2008-01-12 Petr Ovtchenkov
+
+ * build/Makefiles/gmake/lib/gcc.mak: gcc 3.3 has useful
+ libsupc++, but some builds not; prefer normal situation,
+ not marginal; see record 2007-10-10;
+
+ * build/Makefiles/gmake/gcc.mak: fix reference to _FORCE_CXX macro;
+
+ * build/Makefiles/gmake/CC.mak: ditto;
+
+ * build/Makefiles/gmake/aCC.mak: ditto;
+
+ * build/lib/configure: keep compiler and default compiler --- gcc
+ is most common defualt and plans to switch to default makefile.
+
+2008-01-11 Francois Dumont
+
+ * stlport/stl/_limits.c: Adapt long double numeric limits for
+ Intel C++ compiler 9 for Windows.
+
+ * test/unit/cppunit/test_main.cpp: Add command usage output when
+ option is not recognise.
+
+ * build/lib/configure: Remove specification of COMPILER_NAME default
+ value gcc. COMPILER_NAME is already set in all root make scripts like
+ gcc.mak, aCC.mak, dmc.mak ... Doing so forces users to specify their
+ compiler family using configure script which is redundant.
+
+2008-01-10 Francois Dumont
+
+ * stlport/stl/_prolog.h: Remove code duplication by including
+ _cprolog.h.
+
+ * stlport/errno.h, cerrno: Move import of errno from errno.h to
+ cerrno.
+
+ * src/ctype.cpp, facets_byname.cpp, time_facets.cpp,
+ test/unit/codecvt_test.cpp: Several small modifications to make
+ Intel C++ compiler happier. Mostly avoid warnings and use
+ unary_function to avoid some typedef.
+
+2008-01-09 Francois Dumont
+
+ * stlport/stl/_uninitialized.h: Fix implementation of
+ __uninitialized_copy_copy in order to make the function exception
+ safe. Detected thanks to the EH test suite.
+
+2008-01-08 Francois Dumont
+
+ * stlport/stl/_ios_base.h: _S_was_synced renamed in _S_is_synced
+ because it reflects what the sync state is and not what it was.
+
+ * src/iostream.cpp: Use auto_ptr to avoid use of the catch(...)
+ blocks. Changed management of the _STLP_REDIRECT_STDSTREAMS macro.
+ cout, cerr and clog streams are not ofstream anymore but classic
+ ostream instances, only streambuf is a filebuf when the macro is
+ defined. Improve _S_initialize robustness to exceptions, now
+ exceptions like bad_alloc are not silently eaten. _S_initialize
+ guaranty that on exception, Standard streams will be valid, it do
+ not offer however strong guaranty, global state might still have
+ been modified. Idem for sync_with_stdio. Moreover this method is
+ now Standard compliant, it returns the new sync state and not the
+ old one.
+
+2008-01-07 Francois Dumont
+
+ * src/c_locale_dummy/c_locale_dummy.c: Upgrade to take into account
+ recent localization Api modifications.
+
+2008-01-04 Francois Dumont
+
+ * src/fstream_win32.cpp: Change detection of regular file, only reject
+ handlers identified as folders.
+
+ * stlport/stl/_codecvt.h: Add assertion to check buffer ranges pass to
+ the codecvt facet.
+
+ * src/fstream.cpp, stlport/stl/_fstream.c: Complete bug #1854345 fix,
+ get buffer was not reset at the right place.
+
+ * stlport/stl/_fstream.h, _fstream.c: Several modifications in the
+ seekoff method:
+ - Remove limitation of positioning to binary file stream, setting
+ position in a text file stream is not a problem.
+ - Fix mbstate_t instance returned in the file_pos instance when
+ getting position in a file stream with variable encoding.
+ - Move all the sanity check code to the debug mode.
+
+2008-01-02 Francois Dumont
+
+ * test/unit/fstream_test.cpp: Change FstreamTest::seek test to reveal
+ bug #1854345.
+
+ * src/fstream.cpp: #1854345 bug fixed.
+
+2008-01-01 Francois Dumont
+
+ * stlport/stl/_time_facets.h, _time_facets.c, src/time_facet.cpp,
+ c_locale_glibc/c_locale_glibc2.c: Restore GlibC++ support after
+ 2007-12-27 modifications.
+
+2007-12-29 Francois Dumont
+
+ * Borland patch from Eric Sanford mainly to enable move constructor.
+
+ * stlport/stl/_string_base.h, _string.h, _string.c,
+ _string_sum_methods.h: Attempt to make string implementation more
+ clear: _M_allocated renamed in _M_start_of_storage,
+ _M_Buffers._M_dynamic_buffer renamed in _M_Buffers._M_end_of_storage,
+ _M_end_block renamed in _M_end_of_storage too. To respect current
+ naming convention _capacity has been renamed in _M_capacity and
+ _rest in _M_rest.
+
+ * stlport/stl/_string_workaround.h: Updated to take into account recent
+ modification in string data model.
+
+ * etc/autoexp.dat: Updated to take into account string data model
+ modifications, new model is really simpler to map to.
+
+2007-12-27 Francois Dumont
+
+ * src/c_locale.h, c_locale_dummy/c_locale_dummy.c,
+ c_locale_glibc/c_locale_glibc.c, c_locale_glibc2.c,
+ c_locale_win32/c_locale_win32.c, facets_byname.cpp, time_facets.cpp,
+ stlport/stl/_codecvt.h, _ctype.h, _numpunct.h, _time_facets.c,
+ _time_facets.h: Major internal localization API modification. Add
+ several _WLocale_* functions to allow native support of access to
+ wide char representation of localization information. The time facet
+ support has been the most impacted. GlibC based implementation
+ still have to be updated.
+
+2007-12-23 Francois Dumont
+
+ * build/Makefiles/nmake/evc8.mak, targets.mak, src/_stdio_file.h,
+ fstream_win32io.cpp, iostream.cpp, locale_catalog.cpp: Patch from
+ Johan Anderson for Evc 3/4/8 to:
+ - fix the opening console issue on this platform.
+ - add EVC8 SH4 support.
+
+ * test/unit: Add CPPUNIT_FAIL macro to force failure without
+ using a constant conditional expression. Many tests updated to
+ use this new macro.
+
+ * stlport/stl/config/_evc.h, debug/_debug.h, _debug.c: Patch
+ from Michael Fink to allow _STLP_DEBUG mode when using WCE ARM
+ platform.
+
+2007-12-20 Francois Dumont
+
+ * stlport/stl/_monetary.c: Remove test of existing space at end of
+ stream when last pattern field is none because on ouput stream
+ space are only added optionaly. Small code duplication removed.
+
+ * build/lib/configure.bat, evc.mak, msvc.mak, test/unit/evc.mak,
+ msvc.mak: Config file moved to Makefiles/nmake folder. Add
+ --without-stlport option to build unit tests without STLport.
+
+ * test/unit/money_facets_test.cpp: Add validation that moneypunct
+ "C" facet is identical to the one contained in locale::classic().
+
+ * src/c_locale_dummy/c_locale_dummy.c,
+ c_locale_win32/c_locale_win32.c, facets_byname.cpp: Fix to have
+ moneypunct by name facet build from "C" similar to locale::classic()
+ one. Now default format in _Init_monetary_formats is the C++ default
+ one.
+
+2007-12-20 Petr Ovtchenkov
+
+ * test/unit/fstream_test.cpp: test for seek, inspired by Soren
+ (stsoe, #1854345); report not confirmed.
+
+2007-12-17 Francois Dumont
+
+ * stlport/stl/_limits.c: Add brackets on union initialization for gcc
+ starting with version 4.
+
+2007-12-17 Petr Ovtchenkov
+
+ * stlport/stl/config/_linux.h: if not explicitly specified another,
+ use threads.
+
+2007-12-14 Francois Dumont
+
+ * src/c_locale_win32/c_locale_win32.c: Fix implementation of
+ _Locale_mbtowc and _Locale_wctomb functions. Reveal limitation of
+ the MultiByteToWideChar function that cannot be used to implement
+ more complicated encodings that have a real shift state like the
+ JIS one. Add support for UTF7 and UTF8 encodings.
+
+ * test/unit/codecvt_test.cpp: New test case to check support for
+ 2 encodings, the Windows specific code page 936 and the UTF8 one.
+ Those tests are coming from chinese test samples proposed by Victor
+ Xie.
+
+2007-12-14 Petr Ovtchenkov
+
+ * stlport/stl/_string_base.h, stlport/stl/_string.h, stlport/stl/_string.c:
+ experimental string buffer---start of buffer in _M_allocated._M_data now,
+ end of buffer either end of local short buffer, or stored in pointer
+ within local short buffer; this potentially reduce amount of pointer
+ arithmetic; prefer Traits::assign to uninitialized fill, it more
+ optimized for POD types, such as chars [experimental too].
+
+2007-12-13 Francois Dumont
+
+ * src/c_locale.h, c_locale_dummy/c_locale_dummy.c,
+ c_locale_glibc/c_locale_glibc.c, c_locale_glibc2.c,
+ c_locale_win32/c_locale_win32.c: Remove unused _Locale_wctob and
+ _Locale_btowc localization API functions.
+
+2007-12-13 Petr Ovtchenkov
+
+ * build/test/unit/gcc.mak, test/unit/...: allow build unit tests
+ with libstdc++, without STLport; useful for reference and comparison.
+
+2007-12-12 Petr Ovtchenkov
+
+ * build/Makefiles/gmake/unix/rules-install-so.mak, build/lib/gcc.mak:
+ install-headers usable; it use user-defined macro HEADERS_BASE
+ [catalog and all files, keeping directory structure] and HEADERS
+ [for single files]; target catalog is INSTALL_HDR_DIR, by default
+ it is ${BASE_INSTALL_DIR}/include.
+
+2007-12-07 Petr Ovtchenkov
+
+ * stlport/stl/_uninitialized.h: comment unused parameter;
+
+ * stlport/stl/_limits.c: 64-bits systems may has [and really has]
+ size of long double 16, not 12; but IEEE 854 still in force, and
+ only 10 bytes of long double taken into account. This should fix
+ limits on 64-bits systems. Thanks joebishop
+ [aka Denis Cheremisov] for granted access to 64-bit linux.
+
+2007-12-05 Francois Dumont
+
+ * src/c_locale_glibc/c_locale_glibc2.c: Fix a one byte memory overrun
+ when passing a very locale name.
+
+ * src/c_locale_win32/c_locale_win32.c: Simplified Win32 localization
+ code. Remove useless calls to strcpy. Remove useless call to the
+ __Extract_locale_name once in the _Locale_*_create functions as
+ name has already been extracted at this moment.
+
+2007-12-05 Francois Dumont
+
+ * src/c_locale_glibc/c_locale_glibc2.c: Removed many checks useless
+ as the C functions are called in a well defined and safe context. Also
+ remove useless strcpy calls when it is safe to return the internal
+ string.
+
+2007-12-04 Francois Dumont
+
+ * Add the _Locale_codecvt localization data structure for 2 purposes:
+ - in the win32 implementation it simplify _Locale_ctype data structure.
+ - in the glibc implementation it helps making clear that this
+ implementation do not support the codecvt facet for the moment.
+
+2007-12-03 Francois Dumont
+
+ * src/fstream_win32io.cpp: Fix management of Ctrl-Z when reading
+ text file stream thanks Hector Chu patch.
+
+2007-11-30 Francois Dumont
+
+ * src/acquire_release.h, facets_byname.cpp, locale.cpp,
+ locale_impl.cpp, locale_impl.h, messages.cpp, time_facets.cpp:
+ Localization code modification, now locale instances will adopt
+ a normalized name rather than the name used to create them. This
+ way identical locale instances will compare equals even if created
+ from name aliases like 'french' and 'fr_FR'. Moreover default
+ locale built from an empty string won't have an empty name.
+
+ * test/unit/locale_test.cpp, ctype_facets_test.cpp,
+ money_facets_test.cpp, num_facets_test.cpp, time_facets_test.cpp:
+ Enhance localization tests, add test of default locale when possible.
+ Add test for the locale instances built from a mix of the
+ locale::classic instance and a named category.
+
+2007-11-27 Francois Dumont
+
+ * stlport/stl/_ios_base.h, _ios.c: Add qualification on the cached
+ ctype and numpunct facets, we can keep them as const pointers.
+ Moreover, prefer to use the use_facet function rather than _M_get_facet
+ to access those instances to avoid direct reference to the facet::id
+ static instance.
+
+ * Some evolution in the localization code:
+ - Hide _Locale_name_hint in internal implementation, facets *_byname
+ constructor are now respecting the C++ Standard signature.
+ - numpunct facet: Remove unused _M_grouping field, move hard coded
+ values of the "C" facet in the sources. Only the numpunct_byname
+ keeps internal wstring representation of true and false names.
+ - time facets: Use the non template time_base class for initialization
+ of the _Time_Info instance, it is more coherent with other facets
+ implementations. Many functions like __acquire_time and __release_time
+ are now hidden in the library.
+
+2007-11-26 Francois Dumont
+
+ * stlport/stl/char_traits.h, _stdexcept_base.c: Borland patch
+ from Eric Sanford, add a missing header and change
+ __Named_exception implementation because of a Borland compiler
+ bug.
+
+ * src/c_locale_win32/c_locale_win32.c: Add LANG_INVARIANT
+ definition when SDK are missing it.
+
+2007-11-24 Francois Dumont
+
+ * stlport/stl/_monetary.h: Add missing explicit keyword on
+ money_get and money_put constructors.
+
+ * stlport/stl/_numpunct.h: Removed friend relation between
+ numpunct and num_get, looks like it is useless with current
+ implementation.
+
+ * stlport/stl/config/stl_mycomp.h, features.h, _watcom.h, _sunprocc.h,
+ _mwerks.h, _msvc.h, _ibm.h, _dec_vms.h, _dec.h, _as400.h: Removed
+ _STLP_NO_FRIEND_TEMPLATES, _STLP_FRIEND_TEMPLATES macros unused
+ since fix above regarding numpunct/num_get friend relation.
+
+ * test/unit/collate_facets_test.cpp: Fix "C" facet by name test,
+ Standard do not define any special behavior for the "C" transform
+ method so transformed result should simply follow the normal transform
+ behavior.
+
+ * src/locale_impl.cpp: Removed useless holes in locale facets table.
+ Now the table contains 26 non null entries rather than 38 entries with
+ some begin null.
+
+2007-11-23 Francois Dumont
+
+ * src/locale.cpp, locale_impl.h, locale_impl.cpp: Some small
+ modifications to limit necessary friend class _Locale_impl
+ declaration in several facet classes. Moreover, num_get, num_put,
+ money_get, money_put facets that do not depend on any name are
+ not allocated anymore in the functions responsible for generating
+ facets for a given category.
+
+ * stlport/stl/_codecvt.h, _collate.h, _ctype.h, _messages_facets.h,
+ _monetary.h, _num_get.h, _num_put.h, _numpunct.h, _time_facets.h:
+ Removed many useless friend class _Locale_impl declarations.
+
+2007-11-23 Petr Ovtchenkov
+
+ * build/lib/configure: make configuration suitable for installation
+ procedure and package building.
+
+2007-11-22 Francois Dumont
+
+ * src/c_locale_dummy/c_locale_dummy.c: Now implements the "C" locale
+ to respect the C++ Standard.
+
+ * test/unit/collate_facets_test.cpp: Fix test checking that collate
+ facet build from the "C" name behave like the one coming from the
+ locale::classic() locale.
+
+ * src/c_locale.h, locale.cpp, c_locale_glibc/c_locale_glibc.c,
+ c_locale_glic2.c, c_locale_win32/c_locale_win32.c, locale.cpp: Removed
+ _Locale_compose_name from the STLport internal localization API.
+ Composition of locale names will now be the responsibility of STLport
+ itself and not of the platform localization implementations one.
+
+2007-11-20 Francois Dumont
+
+ * stlport/stl/_iterator_base.h, _ptrs_specialize.h: Avoid inclusion
+ of _ptrs_specialize.h while still in stlport namespace scope thanks
+ Christof Meerwald report.
+
+2007-11-17 Francois Dumont
+
+ * _STLP_STATIC_MEMBER_DECLSPEC workaround removed. Thanks to
+ _GetFacetId other workaround it should now be useless. There
+ are still some tests to confirm especially testing the
+ gcc visibility feature.
+
+2007-11-16 Francois Dumont
+
+ * stlport/stl/_fstream.c: Fix implementation of
+ basic_filebuf<_CharT, _Traits>::_M_underflow_aux() to take
+ into consideration already read external buffer even if
+ reading from file failed. Thanks Hector Chu report and patch.
+
+ * test/unit/codecvt_test.cpp: New test for problem above,
+ CodecvtTest::imbue_while_reading thanks Hector Chu.
+
+ * test/unit/fstream_test.cpp: Remove useless
+ FstreamTest::special_encoding test replaced by new test in
+ CodecvtTest. Fix FstreamTest::custom_facet test that is now using
+ a specialization of codecvt rather than a class inheriting from
+ codecvt.
+
+2007-11-14 Francois Dumont
+
+ * src/c_locale_win32/c_locale_win32.c: Fix to support creation
+ of locale facet from the 'C' name.
+
+ * test/unit/collate_facets_test.cpp, locale_test.cpp,
+ money_facets_test.cpp, num_facets_test.cpp, time_facets_test.cpp:
+ Add test to check build from names "" or "C", on platform without
+ real localization support, "" should result in "C". Also check
+ for some facets that the one build from "C" name is similar to
+ the one taken from locale::classic() locale.
+
+2007-11-12 Petr Ovtchenkov
+
+ * test/unit/fstream_test.cpp: testcase for bug #1830513;
+ __read_unbuffered wrongly process valid streamsize 0;
+ [was derived from original report of Anton Samokhvalov and Oleg Obolenskiy]
+
+ * stlport/stl/_istream.c: fix for bug #1830513 above;
+ check boundary condition in the beginning of loop.
+
+2007-11-09 Francois Dumont
+
+ * build/Makefiles/gmake: Add missing cygming folder comming
+ from task branch, required for Cygwin/MinGW builds.
+
+ * stlport/stl/_bvector.h, _deque.h, _hashtable.h, _list.h,
+ _rope.h, _slist.h, _string_base.h, _tree.h, _vector.h: Removed
+ useless instantiation of _Alloc_traits to define nested
+ allocator_type in several containers. STLport users will simply
+ have to correctly instantiate containers when they specify
+ the allocator to use.
+
+2007-10-30 Francois Dumont
+
+ * etc/autoexp.dat: New file containing description of STLport
+ data structures in the Visual Studio C++ debugger language.
+
+2007-10-21 Francois Dumont
+
+ * Merged with STLPORT_5_1 up to revision 3229.
+
+2007-10-20 Francois Dumont
+
+ * _STLP_NO_MBSTATE_T removed, STLport cannot really live without
+ any mbstate_t definition. Moreover we were already defining our own
+ definition when _STLP_NO_MBSTATE_T is defined, we now simply generalize
+ this behavior. So definition of _STLP_NO_MBSTATE_T has been replaced
+ with _STLP_NO_NATIVE_MBSTATE_T.
+
+2007-10-14 Francois Dumont
+
+ * src/bitset.cpp: Add const qualifier on static arrays used in
+ bitset implementation. Thanks a Andrey Semachev remark.
+
+2007-10-12 Francois Dumont
+
+ * stlport/stl/_hash_map.h, _hash_set.h, _unordered_set.h,
+ _unordered_map.h: Because of the hashtable data model, number
+ of bucket should not be to high compare to the number of
+ elements. For this reason, default constructor of all hash
+ containers is now passing 0 as the initial size rather than 100.
+
+ * stlport/stl/_hashtable.h, _hashtable.c: For the same reason exposed
+ above, the hashtable number of buckets is decrease when removing
+ elements from the container. All is done in the newly introduce
+ _M_reduce method that should be called each time elements are
+ removed.
+
+ * test/unit/unordered_test.cpp: Two new test in UnorderedTest test
+ fixture, benchmark1 and benchmark2. Those tests are rather, as indicated
+ by their name, bench to compare performance of hashed containers.
+ It can be used with the -m unit test console option that display
+ timing of tests. For instance, thanks to the reduction policy exposed
+ above, benchmark1 is running 20 times faster while benchmark2 is
+ almost identical.
+
+ * stlport/stl/_hashtable.h: Container might now be rehash when user
+ modified max load factor in order to respect
+ load_factor() <= max_load_factor() rule. hashtable::resize fixed,
+ according SGI doc it should behave as Standard unordered_*::rehash that
+ is to say it gives number of buckets and not number of elements.
+
+ * stlport/stl/_hashtable.c: Fix Code warrior workaround that was only
+ showing a limited number of prime numbers.
+
+2007-10-10 Petr Ovtchenkov
+
+ * build/Makefiles: merge r2883:3223 from tasks/STLport-Makefiles;
+ revision of build system, from 'complement' project, adopted for
+ STLport requirements; support build of static lib and build unit
+ tests with this lib; gmake-specific files moved into gmake catalog;
+ top.mak (gmake-specific) moved into gmake catalog; add include
+ option for boost's headers, if STLP_BUILD_BOOST_PATH defined;
+ config.mak has make-dependent features, so it moved to gmake or
+ nmake catalog; settings from gmake/windows/sysid.mak should
+ be present in common gmake/sysid.mak file; gcc 3.3 has bad or
+ absent libsupc++, at least in debian; don't use -lstlport, when
+ build it; removed windows platform support that used to represent
+ the environment given by the cmd shell with MinGW additional commands
+ i.e. MinGW require not only gmake, but other POSIX file utils too;
+ install target by default install to /usr/local/lib on POSIX-like
+ platforms; added distclean target; added install-headers target;
+
+ * build/test/unit: top.mak (gmake-specific) moved into gmake catalog;
+
+ * build/test/unit/gcc.mak: see just build stlport libs, not
+ installation path [default install path is /usr/local/lib on POSIX-like
+ platforms].
+
+2007-10-07 Francois Dumont
+
+ * 5.1.4 released, trunk merged with STLPORT_5_1 branch up to
+ revision 3221.
+
+2007-10-04 Francois Dumont
+
+ * stlport/stl/_codecvt.h, _fstream.c, src/codecvt.cpp: Fix non
+ Standard conformity in codecvt::length and associated
+ codecvt::do_length methods. Those methods was taking const reference
+ to mbstate_t but the Standard specify that it must be a simple
+ reference.
+
+ * src/facets_byname.cpp: Add a real implementation of
+ codecvt::do_length based on the
+ _Locale_mbtowc locale API function.
+
+ * test/unit/codecvt_test.cpp: Add a test for codecvt::length.
+
+ * test/unit/fstream_test.cpp: Add a test that indirectly test
+ codecvt facet and integration of it in the basic_filebuf
+ implementation.
+
+2007-10-02 Francois Dumont
+
+ * test/unit/deque_test.cpp, hash_test.cpp, list_test.cpp, map_test.cpp,
+ set_test.cpp, slist_test.cpp, unordered_test.cpp, vector_test.cpp:
+ Allow test on incomplete types even when pointer specialization is
+ activated as long as partial template specialization is supported.
+
+ * stlport/stl/_fstream.c, src/facets_byname.cpp,
+ test/unit/codecvt_test.cpp:
+ Fixed codecvt_byname::do_in and do_out
+ methods. They now both correctly take into account to_end pointer.
+ Thanks Vistor (finalvistory) report on sourceforge Developer forum.
+
+2007-09-28 Francois Dumont
+
+ * src/num_put_float.cpp: Modification in _Stl_ecvtR and _Stl_fcvtR
+ long double overloads, if value can be converted to double without
+ precision loss we can rely on the double overload. Moreover _Stl_fcvtR
+ has been fixed.
+
+ * stlport/stl/pointer/_tools.h: Use class partial specialization to
+ enhance usability of the container pointer specialization feature.
+ Thanks to it, container can be instanciated with incomplete types.
+ Modification based on bug report 1799048 from Andrey Semashev.
+
+ * trunk merged with STLPORT_5_1 up to revision 3211.
+
+2007-09-27 Francois Dumont
+
+ * src: Modification in the internal localization API.
+ _Locale_errno removed, now an int pointer is passed to all
+ _Locale_*_create and all _Locale_extract_*_name functions so
+ that they can return an error code. This method avoid multithreaded
+ issues.
+
+ * src/locale_catalog.cpp: Modification in __acquire_category
+ function. If create_obj return null, the null pointer is not
+ stored anymore in cached as creation failure reason might be
+ temporary like in case of memory starvation.
+
+ * stlport/stl/_locale.h: Error reporting enhancement. In combine
+ method we use a typeid call to report the unknown facet type. In other
+ situation we report both the facet category being built and the name
+ used to build it.
+
+ * test/unit/locale_test.cpp, collate_facets_test.cpp,
+ messages_facet_test.cpp, money_facets_test.cpp, num_facets_test.cpp,
+ time_facets_test.cpp: Add checks for construction of facets from
+ very long facet name.
+
+2007-09-27 Petr Ovtchenkov
+
+ * test/unit/find_test.cpp: array initialization missed.
+
+2007-09-19 Francois Dumont
+
+ * trunk merged with STLPORT_5_1 up to revision 3193.
+
+2007-09-11 Petr Ovtchenkov
+
+ * stlport/stl/_algobase.c: keep check for symmetry in
+ lexicographical compare---algorithm assume symmetry comparator;
+ remove check for symmetrical comparator in search and find,
+ due to double checks not better then single (the same check
+ done in algorithm, and algorithm not require symmetrical
+ comparator);
+
+ * stlport/stl/debug/_hashtable.h: idem;
+
+ * stlport/stl/debug/_tree.h: idem;
+
+ * stlport/stl/debug/_debug.h: __symetrical_strict_weak_call
+ and __symetrical_equal_call not used anyware.
+
+2007-09-10 Francois Dumont
+
+ * stlport/stl/_algo.c: Add check for symetrical functor
+ in max_element and min_element algo.
+
+ * stlport/stl/_algobase.c: Restore symetrical functor checks.
+ Sometimes simply because the algo was already considering the
+ functor as symetrical as in lexicographical_compare. Sometimes
+ using specific helpers functions (see below).
+
+ * stlport/stl/debug/_debug.h: Add __symetrical_strict_weak_call
+ and __symetrical_equal_call helper functions to check for
+ symetric functors only when invocating the symetrical functor
+ is valid that is to say when both parameters are of the same
+ type.
+
+ * stlport/stl/debug/_hashtable.h: Make use of
+ __symetrical_equal_call to check that equivalence functor used
+ in hashtable instanciation is correctly implemented.
+
+ * stlport/stl/debug/_tree.h: Make use of
+ __symetrical_strict_weak_call to check that functor predicate
+ use in tree instanciation is correctly implemented.
+
+2007-09-10 Petr Ovtchenkov
+
+ * stlport/stl/_string.c: fix bugs in string rfind, find_last_of,
+ find_last_not_of [bug #1788700, position 0 was wrongly excluded];
+
+ * test/unit/string_test.cpp: test for problems above. Thanks
+ to Bred Bored for bug report and initial test.
+
+2007-09-09 Petr Ovtchenkov
+
+ * test/unit/rope_test.cpp, stlport/stl/_rope.h: test for
+ bug #1788615 [bug during copy of rope's iterator] and fix;
+ suggested by John Maddock.
+
+2007-09-07 Petr Ovtchenkov
+
+ * test/unit/alg_test.cpp: add #include , required for
+ comparator symmetry test;
+
+ * test/unit/string_test.cpp: test for bug in find_last_of,
+ bug #1788700, submitted by Bred Bored.
+
+2007-09-05 Petr Ovtchenkov
+
+ * stlport/stl/_algobase.c: symmetry not required for
+ comparator in case of two different sequences comparison or
+ searching; symmetrical comparator just may not exist;
+
+ * stlport/stl/debug/_hashtable.h: symmetry not required for
+ comparator in hashtable in case of containers extention;
+ symmetrical comparator just may not exist;
+
+ * test/unit/alg_test.cpp: test for problem above, thanks
+ Oleg Obolenskiy.
+
+2007-09-03 Petr Ovtchenkov
+
+ * src/dll_main.cpp, stlport/stl/debug/_debug.c: removed
+ macro _STLP_STATIC_TEMPLATE_DATA, __PUT_STATIC_DATA_MEMBERS_HERE,
+ _STLP_NO_STATIC_TEMPLATE_DATA; only few old compilers
+ require this and are good enough to work with STL;
+
+ * test/eh/test_rope.cpp, stlport/stl/_num_get.c: idem;
+
+ * stlport/stl/_time_facets.c, stlport/stl/_codecvt.h: idem;
+
+ * stlport/stl/_monetary.c, stlport/stl/_num_put.c: idem;
+
+ * stlport/stl/_rope.c, stlport/stl/_rope.h: idem;
+
+ * stlport/stl/config/user_config.h: idem;
+
+ * stlport/stl/config/stl_mycomp.h: idem;
+
+ * stlport/stl/config/_gcc.h: idem;
+
+ * stlport/stl/_threads.c: idem.
+
+2007-09-02 Francois Dumont
+
+ * stlport/stl/_algobase.c: Small optimization, add an
+ intermediate __eq function to detect when both iterator types
+ are identicals. Thanks Jim Xochellis idear.
+
+ * stlport/stl/_threads.h, _threads.c: Fully apply modification
+ of _S_nsec_sleep implementation for Win32 platforms contained
+ in bug report 1720635 from Taras Overchuck. It is an optimization
+ of the spin lock mutex specifically targetting the multiprocessor
+ platforms.
+
+2007-08-29 Francois Dumont
+
+ * stlport/stl/_algobase.c, _string.c: Some modification in
+ __find_first_of_aux2 implementation to reduce number of iterator
+ dereferencements.
+
+2007-08-26 Francois Dumont
+
+ * stlport/stl/config/user_config.h, host.h: Moved administrative
+ _STLP_USE_UNIX_IO, _STLP_USE_STDIO_IO, _STLP_USE_WIN32_IO
+ macros to host.h.
+
+ * Merged with STLPORT_5_1 branch up to revision 3151.
+
+2007-08-23 Petr Ovtchenkov
+
+ * stlport/stl/debug/_vector.h: only random access iterators
+ allow operations 'less-then' and distance; for bidirectional
+ iterators removed usage of 'less-then', and for others
+ [like forward and input iterators] removed as usage of 'less-then'
+ as distance; thanks Oleg Obolenskiy for bug report;
+
+ * test/unit/ioiter_test.cpp: test for problem above.
+
+2007-08-18 Francois Dumont
+
+ * stlport/stl/config/host.h: Removed _STLP_NO_CYGWIN macro
+ unused since we are using include_next.
+
+2007-08-16 Francois Dumont
+
+ * stlport/stl/config/_gcc.h: Avoid conflict in link model, gcc
+ visibility for many platforms or dllimport/dllexport for
+ Cygwin/MinGW.
+
+ * build/Makefiles/gmake/gcc.mak: Looks like Cygwin/MinGW won't
+ support visibility for the moment.
+
+2007-08-15 Petr Ovtchenkov
+
+ * stlport/stl/char_traits.h, src/fstream_unistd.cpp: use 64-bits
+ file operations calls, if available on system; streamoff is
+ always off64_t, if _LARGEFILE_SOURCE or _LARGEFILE64_SOURCE
+ defined, i.e. if 64-bits file operations present;
+
+ * src/fstream_stdio.cpp, src/stdio_streambuf.cpp: ditto;
+
+ * stlport/stl/config/user_config.h: add _STLP_USE_DEFAULT_FILE_OFFSET,
+ force use off_t for streamoff and appropriate file operations calls;
+ note, that this may lead to problems, for example if _FILE_OFFSET_BITS
+ defined as 64 somewhere in user's code;
+
+ * test/unit/fstream_test.cpp: test 64 bits type for filesize and
+ file offset.
+
+2007-08-13 Francois Dumont
+
+ * test/unit/memory_test.cpp: MSVC6 do not support this test,
+ ignored.
+
+ * stlport/stl/_string.h: Internal _String_reserve_t moved to
+ private namespace.
+
+ * stlport/stl/_algobase.c, _string.c, char_traits.h: Adoption of
+ the find_first_of trick below in string::find_first_of, find_last_of,
+ find_first_not_of and find_last_not_of.
+
+2007-08-12 Francois Dumont
+
+ * stlport/stl/_algo.h, _algobase.h, _algobase.c: find_first_of
+ algorithm enhancement based on the Jim Xochellis analysis that you
+ can find here:
+ http://www.codeproject.com/vcpp/stl/find_first_of.asp.
+
+ * test/unit/alg_test.cpp: Add several tests to challenge the above
+ enhancement.
+
+2007-08-08 Francois Dumont
+
+ * stlport/stl/config/feature.h: Removed useless workaround, there
+ is no more platform using Win32 threading API and missing bool
+ type.
+
+ * src/num_put_float.cpp, num_get_float.cpp: Fixes for DMC, DMC has
+ real long double so it now uses ieee854_long_double Glibc type. DMC
+ do not use anymore the sprintf workaround to write floating point
+ numbers.
+
+ * stlport/stl/_auto_ptr.h, test/unit/memory_test.cpp: Fix auto_ptr
+ implementation, removed a useless const_cast and change a reinterpret_cast
+ in static_cast. Add support for instanciation with the volatile qualifier.
+ Thanks Ulrich Eckhardt report.
+
+2007-08-03 Francois Dumont
+
+ * src/c_locale_win32/c_locale_win32.c: Fix some static buffer size
+ to always have a free place for the trailing zero.
+
+ * test/unit/locale_test.cpp: Add a test when passing a very long name
+ as the LC_CTYPE facet name to the locale constructor.
+
+ * src/system_api.h, system_api.c, build/lib/Makefile.inc,
+ src/num_put_float.cpp: Removed system_api workaround to access
+ isinfinite, isnan, isinf C functions used with gcc under Hp unix.
+ Now __format_nan_or_inf has an implementation entirely based on
+ numeric_limits values that avoids access to platform functions.
+
+2007-07-30 Francois Dumont
+
+ * stlport/stl/_facets_fwd.h, _num_put.h, _num_get.h, _monetary.h,
+ _time_facets.h, _locale.h: Fix _GetFacetId workaround for compilers
+ like gcc since 3.4 that consider only the context at point on template
+ definition and not at the point of instantiation when resolving
+ _GetFacetId calls in has_facet or use_facets template functions.
+
+2007-07-20 Francois Dumont
+
+ * stlport/stl/_mbstate_t.h: We have to define mbstate_t ourself
+ on platforms having mbstate_t in cwchar when we want to only use
+ C headers.
+
+2007-07-22 Petr Ovtchenkov
+
+ * src/fstream_unistd.cpp: force use lseek64/mmap64 for HP-UX,
+ if _LARGEFILE64_SOURCE defined; thanks for Michael Klein.
+
+2007-07-20 Francois Dumont
+
+ * stlport/stl/config/_gcc.h, stl_mycomp.h: Removed unused
+ _STLP_WEAK_ATTRIBUTE macro.
+
+ * stlport/stl/config/_msvc.h, _intel.h, _gcc.h, features.h: Some
+ cleanup concerning _STLP_STATIC_TEMPLATE_DATA macro.
+
+2007-07-18 Francois Dumont
+
+ * stlport/stl/_num_put.h: Removed __string_to_float declarations only
+ used in a num_get context.
+
+ * src/num_get_float.cpp:
+ - Import Glibc ieee854_long_double union for compilers having a real
+ long double type but no runtime support to correctly generate it. This
+ union is used by gcc under Cygwin and MinGW and by Borland compiler.
+ - _Stl_string_to_long_double removed, it was so similar to
+ _Stl_string_to_double that everything is done with this function now.
+ - Removed check on exponent value while parsing it from buffer, check is
+ only done when combining this value with the digits read.
+
+ * src/num_get_float.cpp:
+ - Generalize synchronization code arround the ecvt/fcvt functions when
+ the platform do not grant reentrant functions.
+ - In __format_float_scientific, removed useless rz temporary variable, removed
+ limitation in the number of appended trailing zeros.
+ - In __format_float_fixed, removed limitation of number of trailing zeros
+ added after decimal point, it is only limited by precision.
+ - __format_float: Code to detect infinity or NaN has been moved before call
+ to platform specific ecvt/fcvt functions. Thanks to this modification, this
+ function is not template anymore.
+ - Add _Stl_ecvt/_Stl_fcvt emulation functions when platform do not grant
+ the necessary ecvt/fcvt functions for long double. Emulation is based on
+ sprintf function using 'L' modifier.
+ - In __write_floatT function, fix size of static buffer used by _Stl_ecvt/fcvt
+ functions. Fix number of digits in calls to _Stl_fcvt/ecvt in both modes,
+ fixed or scientific.
+
+ * test/unit/num_put_get_test.cpp: Add some tests, somes with a really high
+ precision that show problem with static buffer size.
+
+2007-07-17 Petr Ovtchenkov
+
+ * stlport/stl/_algo.c, stlport/stl/_algobase.c: search, the __tmp and
+ __p1 iterators always point at the same position, hence one of them
+ is redundant;
+
+ * stlport/stl/_algobase.c: in the main-loop of search there are two
+ successive while-loops doing exactly the same thing; one of them is
+ redundant and, since it is inside the main-loop, it slows down
+ the algorithm significantly;
+
+ * stlport/stl/_algo.c, stlport/stl/_algobase.c: in the search the main-loop
+ condition "while (__first1 != __last1)" is always true and consequently
+ redundant; this is because the initial adn in-loop conditions virtually
+ act as guards and will never let the main-loop condition to fail; since
+ this condition is evaluated in every main-loop iteration, its removal
+ will also improve the performance of the algorithm; thanks for
+ Jim Xochellis for this suggestions.
+
+2007-07-15 Petr Ovtchenkov
+
+ * src/strstream.cpp: "get end" pointer should be initialized
+ to the "begin of get + N" in obsolete strstream; bug #1536503,
+ thanks for Jean-Eric Cuendet;
+
+ * test/unit/strstream_buffer_read_test.cpp, build/test/unit/Makefile.inc:
+ test for bug above; [submitted by Jean-Eric Cuendet].
+
+2007-07-05 Francois Dumont
+
+ * build/Makefiles/nmake/vc8.mak: Removed _CRT_SECURE_NO_DEPRECATE
+ when building STLport. Not secured version of functions _ecvt and
+ _fcvt functions used for floating point numbers output are not
+ reentrant.
+
+2007-07-04 Petr Ovtchenkov
+
+ * src/num_get_float.cpp: reorder code, one condition go away.
+
+2007-07-03 Francois Dumont
+
+ * src/num_put_float.cpp: _Stl_ecvtR, _Stl_fcvtR, _Stl_qecvtR,
+ _Stl_qfcvtR functions, pass buffer size as a parameter when the
+ platform functions need it rather than duplicating the size
+ definition. This modification has been applied to the DECC platforms
+ and when the GLibC is in use.
+ Removed useless islong __format_float_scientific parameter. Removed
+ useless x __format_float_fixed parameter, islong parameter
+ replaced with direct specification of the maxfsig value.
+ In __format_float function, first attempt in detection of NaN or
+ infinity is done thanks to the std::numeric_limits and compiler
+ support, _Stl_is_nan_or_inf do not correctly handled long double
+ values. long double values larger than max double values were always
+ displayed as Inf.
+
+ * src/num_get_float.cpp: Removed useless null buffer checks in
+ _Stl_atod functions, we know how this function is called. Replaced
+ some hard coded constant with numeric_limits values. Add check that
+ there is less than 64 digits before hiding hidden bits in vv.i64, for
+ long double it was generating wrong long double value.
+
+ * test/unit/num_put_get_test.cpp: Add numerous tests to check both
+ long double input and output.
+
+2007-06-29 Petr Ovtchenkov
+
+ * stlport/memory: more forward declarations; fix typo;
+
+ * stlport/functional: more tricks to compile with boost
+ and tr1;
+
+ * test/unit/boost_check.cpp: problems trace; set 1 in
+ appropriate places to check presence of problem, but only
+ use one case at a time.
+
+2007-06-28 Francois Dumont
+
+ * src/locale.cpp, locale_impl.h, stlport/stl/_locale.h,
+ config/features.h: Runtime check system do not fully use the
+ MSVC6 workaround anymore, it only use the locale workaround,
+ not the basic_string one.
+
+ * src/string.cpp: Fix wrong explicit instanciation.
+
+ * test/unit/cppunit/cppunit_mini.h, file_reporter.h: Fix
+ computation of test failure when both CPPUNIT_CHECK and
+ CPPUNIT_ASSERT are used.
+
+2007-06-28 Petr Ovtchenkov
+
+ * stlport/stl/boost_type_traits.h: reread boost/config.h
+ to force usage of stlport in boost and force read essential
+ macros from boost/config/suffix.hpp; this is because boost
+ included within stlport from one side, and stlport included
+ within boost from another side; this make sense with
+ _STLP_USE_BOOST_SUPPORT defined in user_config.h;
+ checked for boost 1.34;
+
+ * test/unit/boost_check.cpp, build/test/unit/Makefile.inc:
+ test for problem above; this simulate problem when boost's
+ header was included before any stlport's one;
+
+ * stlport/stl/config/features.h: remove definition of
+ BOOST_STDLIB_CONFIG, due to it unconditionally defined
+ in boost.
+
+ * stlport/memory: forward declarations for boost required,
+ by the same reasons as described above.
+
+2007-06-24 Petr Ovtchenkov
+
+ * stlport/stl/_function.h, stlport/functional: fix import
+ of boost::shared_ptr---moved from _function.h to functional;
+ import mem_fn, bind, bad_function_call, function, swap from
+ boost to std::tr1.
+
+2007-06-23 Francois Dumont
+
+ * stlport/stl/_string.h, _string_workaround.h: Some fix for gcc
+ that is now expose to the VC6 workaround because of the runtime
+ check mechanism under MinGW.
+
+2007-06-21 Francois Dumont
+
+ * test/unit/cstring_test.cpp, limits_test.cpp: Small modif to avoid
+ MSVC compiler warning in release build.
+
+ * stlport/stl/_cwchar.h: Replace a _STLP_MSVC check with a _STLP_MSVC_LIB
+ check as WCHAR_MIN and WCHAR_MAX macros definition depends on library
+ and not on compiler.
+
+2007-06-20 Petr Ovtchenkov
+
+ * stlport/memory: import shared_ptr from boost to std::tr1 namespace,
+ if no _STLP_NO_EXTENSIONS and present _STLP_USE_BOOST_SUPPORT;
+ see ISO/IEC DTR 19768,
+ http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf
+
+ * test/unit/shared_ptr_test.cpp: test for shared_ptr.
+
+2007-06-19 Francois Dumont
+
+ * stlport/stl/debug/_debug.h, _debug.c: Replace __in_range with
+ stlp_in_range, __in_range is a macro in the Windows Vista PSDK.
+
+ * src/locale.cpp, stlport_prefix.h, warning_disable.h,
+ stlport/stl/_locale.h, _string.h, config/features.h: Fix some
+ regression introduce with the improvment of the runtime compatibility
+ check mecanism.
+
+ * src/c_locale_glibc/c_locale_glibc2.c: Fix implementation of
+ _Locale_strcmp and _Locale_strwcmp functions.
+
+ * stlport/stl/_limits.c: Change technique used to generate NaN or
+ infinity floating point numbers. No more reinterpret_cast of a buffer,
+ we now use an union based technique. gcc prefer this cleaner method
+ especially in release mode.
+
+ * test/unit/limits_test.cpp: Small test modification as gcc was still
+ performing some weird optimization in release mode resulting in
+ unexpected behavior.
+
+2007-06-19 Petr Ovtchenkov
+
+ * stlport/stl/_function.h: import reference_wrapper from boost to
+ std::tr1 namespace, if no _STLP_NO_EXTENSIONS and present
+ _STLP_USE_BOOST_SUPPORT; see ISO/IEC DTR 19768,
+ http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf
+
+ * test/unit/reference_wrapper_test.cpp: test for reference_wrapper.
+
+2007-06-15 Petr Ovtchenkov
+
+ * build/test/unit/Makefile.inc: macro_checks.cpp instead of cwchar.cpp.
+
+2007-06-14 Francois Dumont
+
+ * src/dll_main.cpp, locale.cpp, locale_impl.h, locale_impl.cpp,
+ stlport/stl/_locale.h, _rope.h, config/_windows.h, features.h:
+ Enhance the runtime compatibility mecanism used to detect build
+ inconsistency under Windows. We now use the locale class with the
+ VC6 workaround coming with it to force a call to the compatibility
+ check function. Inconsistency detection is activated if _DEBUG
+ or _STLP_DEBUG is defined. If an inconsistency is detected it is
+ reported by the linker thanks to an unresolved symbol
+ building_for_up_to_windows95_but_library_built_for_at_least_windows98
+ or
+ building_for_at_least_windows98_but_library_built_for_up_to_windows95
+ that are self describing.
+
+ * test/unit/cwchar.cpp: Renamed in macro_checks.cpp, add many tests for
+ all C Standard macros like CHAR_MIN, CHAR_MAX, INT_MIN, INT_MAX...
+
+ * stlport/stl/_cwchar.h: Add MSVC compilers before Visual Studio 2005
+ as not defining WCHAR_MAX correctly.
+
+2007-06-11 Francois Dumont
+
+ * src/lock_free_list.h: Fix check of _WIN32_WINNT rather than _WIN32_WINDOWS.
+
+ * stlport/stl/_threads.c: In the Win32 implementation, add a call to
+ the SwitchToThread function to potentially avoid a costly call to
+ Sleep(1) that can take more time than expected. If SwitchToThread fail
+ we call Sleep(1) again. Based on Taras Overchuk bug report 1720635.
+
+2007-06-11 Petr Ovtchenkov
+
+ * src/fstream.cpp: integration file; code clean, three implementations
+ sublimated, unix-emulation approach removed; this is reorganization
+ changeset, functionality was not changed;
+
+ * src/fstream_win32io.cpp: win32io-based implementation of _Filebuf_base,
+ i.e. based on Windows calls CreateFile/CloseHandle/ReadFile/WriteFile +
+ CreateFileMapping, MapViewOfFile;
+
+ * src/fstream_unistd.cpp: unistdio-based implementation of _Filebuf_base,
+ based on unistd open/close/read/write + mmap;
+
+ * src/fstream_stdio.cpp: stdio-based implementation of _Filebuf_base,
+ based on stdio fopen/flose/fread/fwrite;
+
+ * stlport/stl/_fstream.h: detect of _Filebuf_base implementation moved
+ into stlport/stl/config files;
+
+ * stlport/stl/config/*.h: iostreams underline technique depends upon
+ OE or user's preferences;
+
+ * stlport/stl/config/features.h: some system-specific macro moved to
+ system- or compiler-specific files;
+
+ * stlport/stl/_rope.h: rewritten suspicion code, functionality not changed.
+
+2007-06-08 Francois Dumont
+
+ * stlport/stl/_complex.h: Clean unused _STLP_NO_COMPLEX_SPECIALIZATIONS
+ macro and code coming with it.
+
+ * build/lib/configure, configure.bat: Removed --windows95 option, it is
+ useless now that STLport includes windows.h when building the libraries.
+
+ * build/Makefiles/gmake/bcc.mak, dmc.mak, gcc.mak, nmake/vc-common.mak:
+ Removed references to Windows 95 build, if STLport users want to target
+ a specific Windows OS they will only have to use --extra-cxxflags to
+ give WINVER, _WIN32_WINDOWS or _WIN32_WINNT values.
+
+2007-06-05 Francois Dumont
+
+ * stlport/stl/config/features.h: Removed unused _STLP_LDOUBLE_* macros giving
+ real long double size.
+
+ * stlport/stl/_limits.h, _limits.c: Major code upgrade, now computation
+ of infinity and NaN is done thanks to some code extracted from the boost
+ library (www.boost.org). This code is more portable as it adapts to compiler
+ representation of float, double and long double and do not require many
+ compiler macro checks. Additionaly STLport numeric_limits now handle real
+ denorm_min values.
+
+ * test/unit/limit_test.cpp: Add many test on dernomalized float and
+ some other values of numeric_limits.
+
+ * stlport/stl/config/_cray.h, _gcc.h, _msvc.h, stl_mycomp.h: Removed
+ _STLP_NO_IEC559_SUPPORT macro, meaning was not clear and impact was
+ localized to the _limits.h file so use of a global macro was rather
+ useless.
+
+2007-05-29 Francois Dumont
+
+ * stlport/stl/_num_get_.c: Small refactoring, all num_get::do_get for
+ float, double and long double are now calling the same __do_get_float
+ function. Moreover, when __read_float failed, __sring_to_float is not
+ called anymore.
+
+2007-05-28 Francois Dumont
+
+ * test/unit/limits_test.cpp: Add test checking that numeric_limits
+ min is really min and max really max.
+
+ * src/allocators.cpp, locales.cpp, stlport/stl/_threads.h,
+ config/_windows.h: Fix detection of Windows OS having limited
+ implementation of Interlocked[Increment,Decrement] Win32 API
+ functions. _STLP_WIN95 macro has been rename _STLP_WIN95_LIKE
+ as it do not only signal Windows 95 build context but also former
+ OS versions.
+
+2007-05-22 Francois Dumont
+
+ * src/c_locale_win32/c_locale_win32.c: gcc MinGW has no thread
+ locale storage intrisinc support so for this compiler, locale
+ creation failure will always be reported with runtime_error
+ exception.
+
+ * stlport/stl/config/_msvc.h: Configuration fix, check that _STLP_MSVC
+ is defined before activating MSVC6 workaround
+ (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND macro).
+
+2007-05-21 Francois Dumont
+
+ * src/c_locale.h, locale.cpp, locale_impl.cpp,
+ c_locale_dummy/c_locale_dummy.c, c_locale_win32/c_locale_win32.c,
+ c_locale_glic/c_locale_glibc.c, c_locale_glibc2.c: Add a _Locale_errno
+ function to the small localization framework in order to report more
+ accurate locale creation failure. For the moment there are 3 possible
+ failure reasons, no more memory, unsupported locale, no platform support.
+ In case of memory starvation, we throw a bad_alloc exception.
+
+2007-05-19 Francois Dumont
+
+ * stlport/stl/_valarray.h, _valarray.c: Add many assertion checks to
+ track potential undefined behaviors mostly regarding invalid argument
+ size.
+
+2007-05-17 Francois Dumont
+
+ * stlport/stl/_prolog.h: Hide _debug.h when including C standard
+ headers. Some platforms (Win32) include C headers in an 'extern "C"'
+ scope that do not accept templates exposed in _debug.h.
+
+2007-05-16 Francois Dumont
+
+ * stlport/stl/config/_auto_link.h, build/Makefiles/gmake/cygming/lib.mak,
+ build/Makefiles/nmake/lib/macro.mak: Removed version information
+ from static libs name for consistency among all supported compilers/
+ platform.
+
+2007-05-15 Francois Dumont
+
+ * stlport/stl/_range_errors.c, _stdexcept_base.c: New files
+ containing codes that used to be duplicated in dll_main.cpp.
+
+ * src/dll_main.cpp: Include _range_errors.c and _stdexcept_base.c
+ when necessary.
+
+ * stlport/stl/_stdexcept_base.h, _stdexcept_base.c: __Names_exception
+ do not truncate anymore exception message when longer than internal
+ static buffer, a dynamic buffer is allocated through malloc in this
+ case. I haven't use __iostring class in this case as it would
+ have introduce a cyclic dependency between classes.
+
+2007-05-11 Francois Dumont
+
+ * src/c_locale.h, c_locale_glibc/c_locale_glibc2.c: Some fixes to
+ avoid gcc warnings when compiled with -Wall -Wmissing_prototypes.
+
+ * stlport/stl/_num_put.c: Fix a cast to avoid a signed/unsigned
+ comparison warning.
+
+ * c_locale_glibc/c_locale_glibc2.c: Use __locale_t __names field
+ rather than __locales to access to category names. Thanks to this
+ modification we do not need the Glib internal locale_data struct
+ definition anymore.
+
+ * test/unit/fstream_test.cpp: Port the FstreamTest::null_stream for
+ unixes platforms that use /dev/null, the test is not ignored anymore.
+
+ * src/fstream.cpp: Under Windows, check that the file we are
+ opening is a real file before trying to truncate it or move to
+ the end. Allow use of special file like "NUL" with C++ fstream.
+
+2007-05-10 Francois Dumont
+
+ * src/stdio_streambuf.cpp: Add checks of error codes returned
+ by ftell and fseek functions in stdio_istreambuf::showmanyc
+ Windows CE special implementation.
+
+ * test/unit/fstream_test.cpp: Add new test case to check file streams
+ built from platform dependent null pipe (NUL under Windows, /dev/null
+ under unixes). Ignored for the moment.
+
+2007-05-04 Francois Dumont
+
+ * src/locale.cpp, allocators.cpp, stlport/stl/_threads.h,
+ config/_windows.h: Change macro checks to detect Windows 95 platform.
+ Windows 95 and NT4 has both WINVER == 0x0400 but only Windows 95 has
+ limitation impacting STLport code. Distinction between both platforms
+ is done thanks to the _WIN32_WINNT macro only defined for NT4. New
+ _STLP_WIN95 macro signals Windows 95 platform, it replaces
+ _STLP_WIN32_VERSION. Thanks Jan Echternach patch 1707963.
+
+ * src/c_locale_win32/c_locale_win32.c: Remove all code concerning the
+ messages facet, Windows platform do not support it.
+
+ * src/fstream.cpp: Fix use of fseek in _Filebuf_base::_M_seek in
+ _STLP_USE_STDIO_IO mode. fseek do not return the position in file
+ but a boolean value indicating if call has succeeded or not, and
+ call to ftell to get file position. Thanks Marco Jez bug report
+ 1704843. I have also integrated a number of small fixes to use
+ _STLP_USE_STDIO_IO mode under MSVC or GCC MinGW, it shouldn't be
+ really nececarry but it costs nothing and help testing this mode.
+
+2007-05-03 Francois Dumont
+
+ * stlport/stl/_numpunct.h, _time_facets.h, _ctype.h, _monetary.h,
+ _messages_facets.h: Remove friend _Locale_extract_hint function
+ declaration replace by the more simple friend class
+ _Locale_impl expression.
+
+ * src/locale_impl.cpp: Change implementation of
+ _Locale_impl::insert_*_facets methods. Now only facets used internally
+ for iostreams implementation are considered as mandatory when
+ instanciating a locale from a name. Other facets like collate or
+ messages won't generate a runtime_error exception if the platform is
+ not able to grant an implementation. This will make STLport more
+ flexible in regards of platform possibilities.
+
+ * stlport/stl/_messages_facets.h, src/facets_byname.cpp, messages.cpp:
+ Simplification of the messages facet implementation. _Messages class
+ has no virtual method anymore, _Messages_Impl has been removed. Now
+ messages class implementation is a dummy implementation that do not
+ allow access to platform messages, real messages implementation is
+ available thanks to the messages_byname class.
+
+ * stlport/stl/_time_facets.h: _Locale_time instance is not kept
+ anymore in the facet implementation, it is only used on construction
+ to initiliaze _Time_Info struct instance.
+
+2007-05-02 Francois Dumont
+
+ * test/unit/codecvt_test.cpp: Fixed comparison with char_traits::eof
+ to use eq_int_type in order to be compatible with platform having
+ a default unsigned char built-in type. Thanks Marco Jez report.
+
+2007-04-19 Francois Dumont