|
|
@@ -0,0 +1,278 @@
|
|
|
+#!/bin/sh
|
|
|
+
|
|
|
+BJAM=""
|
|
|
+TOOLSET=""
|
|
|
+BJAM_CONFIG=""
|
|
|
+BUILD=""
|
|
|
+PREFIX=/usr/local
|
|
|
+EPREFIX=
|
|
|
+LIBDIR=
|
|
|
+INCLUDEDIR=
|
|
|
+LIBS=""
|
|
|
+PYTHON=python
|
|
|
+PYTHON_VERSION=
|
|
|
+PYTHON_ROOT=
|
|
|
+ICU_ROOT=
|
|
|
+
|
|
|
+# Internal flags
|
|
|
+flag_no_python=
|
|
|
+flag_icu=
|
|
|
+flag_show_libraries=
|
|
|
+
|
|
|
+for option
|
|
|
+do
|
|
|
+ case $option in
|
|
|
+
|
|
|
+ -help | --help | -h)
|
|
|
+ want_help=yes ;;
|
|
|
+
|
|
|
+ -prefix=* | --prefix=*)
|
|
|
+ PREFIX=`expr "x$option" : "x-*prefix=\(.*\)"`
|
|
|
+ ;;
|
|
|
+
|
|
|
+ -exec-prefix=* | --exec-prefix=*)
|
|
|
+ EPREFIX=`expr "x$option" : "x-*exec-prefix=\(.*\)"`
|
|
|
+ ;;
|
|
|
+
|
|
|
+ -libdir=* | --libdir=*)
|
|
|
+ LIBDIR=`expr "x$option" : "x-*libdir=\(.*\)"`
|
|
|
+ ;;
|
|
|
+
|
|
|
+ -includedir=* | --includedir=*)
|
|
|
+ INCLUDEDIR=`expr "x$option" : "x-*includedir=\(.*\)"`
|
|
|
+ ;;
|
|
|
+
|
|
|
+ -show-libraries | --show-libraries )
|
|
|
+ flag_show_libraries=yes
|
|
|
+ ;;
|
|
|
+
|
|
|
+ -with-bjam=* | --with-bjam=* )
|
|
|
+ BJAM=`expr "x$option" : "x-*with-bjam=\(.*\)"`
|
|
|
+ ;;
|
|
|
+
|
|
|
+ -with-icu | --with-icu )
|
|
|
+ flag_icu=yes
|
|
|
+ ;;
|
|
|
+
|
|
|
+ -with-icu=* | --with-icu=* )
|
|
|
+ flag_icu=yes
|
|
|
+ ICU_ROOT=`expr "x$option" : "x-*with-icu=\(.*\)"`
|
|
|
+ ;;
|
|
|
+
|
|
|
+ -with-libraries=* | --with-libraries=* )
|
|
|
+ library_list=`expr "x$option" : "x-*with-libraries=\(.*\)"`
|
|
|
+ if test "$library_list" != "all"; then
|
|
|
+ old_IFS=$IFS
|
|
|
+ IFS=,
|
|
|
+ for library in $library_list
|
|
|
+ do
|
|
|
+ LIBS="$LIBS --with-$library"
|
|
|
+
|
|
|
+ if test $library == python; then
|
|
|
+ requested_python=yes
|
|
|
+ fi
|
|
|
+ done
|
|
|
+ IFS=$old_IFS
|
|
|
+
|
|
|
+ if test "x$requested_python" != xyes; then
|
|
|
+ flag_no_python=yes
|
|
|
+ fi
|
|
|
+ fi
|
|
|
+ ;;
|
|
|
+
|
|
|
+ -without-libraries=* | --without-libraries=* )
|
|
|
+ library_list=`expr "x$option" : "x-*without-libraries=\(.*\)"`
|
|
|
+ old_IFS=$IFS
|
|
|
+ IFS=,
|
|
|
+ for library in $library_list
|
|
|
+ do
|
|
|
+ LIBS="$LIBS --without-$library"
|
|
|
+
|
|
|
+ if test $library == python; then
|
|
|
+ flag_no_python=yes
|
|
|
+ fi
|
|
|
+ done
|
|
|
+ IFS=$old_IFS
|
|
|
+ ;;
|
|
|
+
|
|
|
+ -with-python=* | --with-python=* )
|
|
|
+ PYTHON=`expr "x$option" : "x-*with-python=\(.*\)"`
|
|
|
+ ;;
|
|
|
+
|
|
|
+ -with-python-root=* | --with-python-root=* )
|
|
|
+ PYTHON_ROOT=`expr "x$option" : "x-*with-python-root=\(.*\)"`
|
|
|
+ ;;
|
|
|
+
|
|
|
+ -with-python-version=* | --with-python-version=* )
|
|
|
+ PYTHON_VERSION=`expr "x$option" : "x-*with-python-version=\(.*\)"`
|
|
|
+ ;;
|
|
|
+
|
|
|
+ -with-toolset=* | --with-toolset=* )
|
|
|
+ TOOLSET=`expr "x$option" : "x-*with-toolset=\(.*\)"`
|
|
|
+ ;;
|
|
|
+
|
|
|
+ -*)
|
|
|
+ { echo "error: unrecognized option: $option
|
|
|
+Try \`$0 --help' for more information." >&2
|
|
|
+ { (exit 1); exit 1; }; }
|
|
|
+ ;;
|
|
|
+
|
|
|
+ esac
|
|
|
+done
|
|
|
+
|
|
|
+if test "x$want_help" = xyes; then
|
|
|
+ cat <<EOF
|
|
|
+\`configure' configures Boost to adapt to a few kinds of systems.
|
|
|
+
|
|
|
+Usage: $0 [OPTION]... [VAR=VALUE]...
|
|
|
+
|
|
|
+Defaults for the options are specified in brackets.
|
|
|
+
|
|
|
+Configuration:
|
|
|
+ -h, --help display this help and exit
|
|
|
+ --with-bjam=BJAM use existing Boost.Jam executable (bjam)
|
|
|
+ [automatically built]
|
|
|
+ --with-toolset=TOOLSET use specific Boost.Build toolset
|
|
|
+ [automatically detected]
|
|
|
+ --show-libraries show the set of libraries that require build
|
|
|
+ and installation steps (i.e., those libraries
|
|
|
+ that can be used with --with-libraries or
|
|
|
+ --without-libraries), then exit
|
|
|
+ --with-libraries=list build only a particular set of libraries,
|
|
|
+ describing using either a comma-separated list of
|
|
|
+ library names or "all"
|
|
|
+ [all]
|
|
|
+ --without-libraries=list build all libraries except the ones listed []
|
|
|
+ --with-icu enable Unicode/ICU support in Regex [disabled]
|
|
|
+ --with-icu=DIR specify the root of the ICU library installation
|
|
|
+ and enable Unicode/ICU support in Regex [disabled]
|
|
|
+ --with-python=PYTHON specify the Python executable [python]
|
|
|
+ --with-python-root=DIR specify the root of the Python installation
|
|
|
+ [automatically detected]
|
|
|
+ --with-python-version=X.Y specify the Python version as X.Y
|
|
|
+ [automatically detected]
|
|
|
+
|
|
|
+Installation directories:
|
|
|
+ --prefix=PREFIX install Boost into the given PREFIX
|
|
|
+ [/usr/local]
|
|
|
+ --exec-prefix=EPREFIX install Boost binaries into the given EPREFIX
|
|
|
+ [PREFIX]
|
|
|
+
|
|
|
+More precise control over installation directories:
|
|
|
+ --libdir=DIR install libraries here [EPREFIX/lib]
|
|
|
+ --includedir=DIR install headers here [PREFIX/include]
|
|
|
+
|
|
|
+EOF
|
|
|
+fi
|
|
|
+test -n "$want_help" && exit 0
|
|
|
+
|
|
|
+# TBD: Determine where the script is located
|
|
|
+my_dir="."
|
|
|
+
|
|
|
+# Determine the toolset, if not already decided
|
|
|
+if test "x$TOOLSET" == x; then
|
|
|
+ TOOLSET=`$my_dir/tools/build/jam_src/build.sh --guess-toolset`
|
|
|
+fi
|
|
|
+
|
|
|
+# Build bjam
|
|
|
+if test "x$BJAM" == x; then
|
|
|
+ echo "Building Boost.Jam..."
|
|
|
+ pwd=`pwd`
|
|
|
+ cd "$my_dir/tools/build/jam_src" && ./build.sh "$TOOLSET"
|
|
|
+ cd $pwd
|
|
|
+ arch=`cd $my_dir/tools/build/jam_src && ./bootstrap/jam0 -d0 -f build.jam --toolset=$TOOLSET --toolset-root= --show-locate-target && cd ..`
|
|
|
+ BJAM="$my_dir/tools/build/jam_src/$arch/bjam"
|
|
|
+fi
|
|
|
+
|
|
|
+# If there is a list of libraries
|
|
|
+if test "x$flag_show_libraries" == xyes; then
|
|
|
+ libraries=`$BJAM -d0 --show-libraries`
|
|
|
+ cat <<EOF
|
|
|
+The following Boost libraries have portions that require a separate build
|
|
|
+and installation step. Any library not listed here can be used via including
|
|
|
+the headers only.
|
|
|
+
|
|
|
+The Boost libraries requiring separate building and installation are:
|
|
|
+EOF
|
|
|
+ for lib in $libraries
|
|
|
+ do
|
|
|
+ echo " $lib"
|
|
|
+ done
|
|
|
+ exit 0
|
|
|
+fi
|
|
|
+
|
|
|
+# Setup paths
|
|
|
+if test "x$EPREFIX" == x; then
|
|
|
+ EPREFIX=$PREFIX
|
|
|
+fi
|
|
|
+
|
|
|
+if test "x$LIBDIR" == x; then
|
|
|
+ LIBDIR="$EPREFIX/lib"
|
|
|
+fi
|
|
|
+
|
|
|
+if test "x$INCLUDEDIR" == x; then
|
|
|
+ INCLUDEDIR="$PREFIX/include"
|
|
|
+fi
|
|
|
+
|
|
|
+# Find Python
|
|
|
+if test "x$flag_no_python" == x; then
|
|
|
+ if test "x$PYTHON_VERSION" == x; then
|
|
|
+ echo -n "Detecting Python version... "
|
|
|
+ PYTHON_VERSION=`$PYTHON -c "import sys; print (\"%d.%d\" % (sys.version_info[0], sys.version_info[1]))"`
|
|
|
+ echo $PYTHON_VERSION
|
|
|
+ fi
|
|
|
+
|
|
|
+ if test "x$PYTHON_ROOT" == x; then
|
|
|
+ echo -n "Detecting Python root... "
|
|
|
+ PYTHON_ROOT=`$PYTHON -c "import sys; print sys.prefix"`
|
|
|
+ echo $PYTHON_ROOT
|
|
|
+ fi
|
|
|
+
|
|
|
+ BJAM_CONFIG="$BJAM_CONFIG -sPYTHON_ROOT=$PYTHON_ROOT -sPYTHON_VERSION=$PYTHON_VERSION"
|
|
|
+fi
|
|
|
+
|
|
|
+# Configure ICU
|
|
|
+if test "x$flag_icu" == xyes; then
|
|
|
+ echo -n "Unicode/ICU support enabled"
|
|
|
+ if test "x$ICU_ROOT" == x; then
|
|
|
+ BJAM_CONFIG="$BJAM_CONFIG -sHAVE_ICU=1"
|
|
|
+ echo "."
|
|
|
+ else
|
|
|
+ BJAM_CONFIG="$BJAM_CONFIG -sICU_PATH=$ICU_ROOT"
|
|
|
+ echo " in $ICU_ROOT "
|
|
|
+ fi
|
|
|
+else
|
|
|
+ cat <<EOF
|
|
|
+Unicode/ICU support disabled for Boost.Regex. Use --with-icu or --with-icu=DIR.
|
|
|
+EOF
|
|
|
+fi
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+# Generate the Makefile
|
|
|
+echo "Generating Makefile..."
|
|
|
+cat > Makefile <<EOF
|
|
|
+BJAM=$BJAM
|
|
|
+TOOLSET=$TOOLSET
|
|
|
+BJAM_CONFIG=$BJAM_CONFIG
|
|
|
+PREFIX=$PREFIX
|
|
|
+EPREFIX=$EPREFIX
|
|
|
+LIBDIR=$LIBDIR
|
|
|
+INCLUDEDIR=$INCLUDEDIR
|
|
|
+LIBS=$LIBS
|
|
|
+
|
|
|
+all: .dummy
|
|
|
+ \$(BJAM) \$(BJAM_CONFIG) -sTOOLS=\$(TOOLSET) \$(LIBS)
|
|
|
+
|
|
|
+clean: .dummy
|
|
|
+ rm -rf bin
|
|
|
+
|
|
|
+distclean: clean
|
|
|
+ rm -rf Makefile
|
|
|
+
|
|
|
+install: .dummy
|
|
|
+ \$(BJAM) \$(BJAM_CONFIG) --prefix=\$(PREFIX) --exec-prefix=\$(EPREFIX) --libdir=\$(LIBDIR) --includedir=\$(INCLUDEDIR) -sTOOLS=\$(TOOLSET) \$(LIBS) install
|
|
|
+
|
|
|
+.dummy:
|
|
|
+
|
|
|
+EOF
|