aboutsummaryrefslogtreecommitdiffstats
path: root/configure.bat
diff options
context:
space:
mode:
authorPatrick Scott <phanna@android.com>2010-02-08 17:36:48 -0500
committerPatrick Scott <phanna@android.com>2010-02-16 12:26:42 -0500
commite46c9386c4f79aa40185f79a19fc5b2a7ef528b3 (patch)
tree785c28f10984b472887c005e796cabb001088770 /configure.bat
parente64e7c849b0b659d3e198e4efaed563601e554be (diff)
downloadandroid_external_stlport-e46c9386c4f79aa40185f79a19fc5b2a7ef528b3.tar.gz
android_external_stlport-e46c9386c4f79aa40185f79a19fc5b2a7ef528b3.tar.bz2
android_external_stlport-e46c9386c4f79aa40185f79a19fc5b2a7ef528b3.zip
Update STLPort and compile the library
Turn on most features of stl and compile the source for streams.
Diffstat (limited to 'configure.bat')
-rw-r--r--configure.bat632
1 files changed, 632 insertions, 0 deletions
diff --git a/configure.bat b/configure.bat
new file mode 100644
index 0000000..4f33f3d
--- /dev/null
+++ b/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 <platform>" or "--platform <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 <boost install path>"
+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 <additional compilation options>"
+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 <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=