diff options
Diffstat (limited to 'stlport/configure')
-rwxr-xr-x | stlport/configure | 333 |
1 files changed, 333 insertions, 0 deletions
diff --git a/stlport/configure b/stlport/configure new file mode 100755 index 0000000..2f48511 --- /dev/null +++ b/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 <<EOF +Configuration utility. + +Usage: + + configure [options] + +Available options: + + --prefix=<dir> base install path (/usr/local/) + --bindir=<dir> install path for executables (PREFIX/bin) + --libdir=<dir> install path for libraries (PREFIX/lib) + --includedir=<dir> install path for headers (PREFIX/include) + + --target=<target> target platform (cross-compiling) + + --help print this help message and exit + + --with-stlport=<dir> use STLport in catalog <dir> + --without-stlport compile without STLport + --with-boost=<dir> use boost headers in catalog <dir> + --with-system-boost use boost installed on this system + --with-msvc=<dir> use MS VC from this catalog + --with-mssdk=<dir> use MS SDK from this catalog + --with-extra-cxxflags=<options> + pass extra options to C++ compiler + --with-extra-cflags=<options> + pass extra options to C compiler + --with-extra-ldflags=<options> + 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=<name> use <name> as C++ compiler (use --target= for cross-compilation) + --with-cc=<name> use <name> as C compiler (use --target= for cross-compilation) + --use-compiler-family=<name> 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=<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=<name> + 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 |