summaryrefslogtreecommitdiffstats
path: root/src/boost/bootstrap.sh
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 18:24:20 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 18:24:20 +0000
commit483eb2f56657e8e7f419ab1a4fab8dce9ade8609 (patch)
treee5d88d25d870d5dedacb6bbdbe2a966086a0a5cf /src/boost/bootstrap.sh
parentInitial commit. (diff)
downloadceph-upstream.tar.xz
ceph-upstream.zip
Adding upstream version 14.2.21.upstream/14.2.21upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rwxr-xr-xsrc/boost/bootstrap.sh416
1 files changed, 416 insertions, 0 deletions
diff --git a/src/boost/bootstrap.sh b/src/boost/bootstrap.sh
new file mode 100755
index 00000000..ca0b08d5
--- /dev/null
+++ b/src/boost/bootstrap.sh
@@ -0,0 +1,416 @@
+#!/bin/sh
+# Copyright 2019 Rene Rivera
+# Copyright (C) 2005, 2006 Douglas Gregor.
+# Copyright (C) 2006 The Trustees of Indiana University
+#
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+
+# boostinspect:notab - Tabs are required for the Makefile.
+
+BJAM=""
+TOOLSET=""
+BJAM_CONFIG=""
+BUILD=""
+PREFIX=/usr/local
+EPREFIX=
+LIBDIR=
+INCLUDEDIR=
+LIBS=""
+PYTHON=python
+PYTHON_VERSION=
+PYTHON_ROOT=
+ICU_ROOT=
+
+# Handle case where builtin shell version of echo command doesn't
+# support -n. Use the installed echo executable if there is one
+# rather than builtin version to ensure -n is supported.
+ECHO=`which echo`
+if test "x$ECHO" = x; then
+ ECHO=echo
+fi
+
+# 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=\(.*\)"`
+ ;;
+
+ -without-icu | --without-icu )
+ flag_icu=no
+ ;;
+
+ -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
+\`./bootstrap.sh' prepares Boost for building on a few kinds of systems.
+
+Usage: $0 [OPTION]...
+
+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
+ [automatically detected]
+ --without-icu disable Unicode/ICU support in Regex
+ --with-icu=DIR specify the root of the ICU library installation
+ and enable Unicode/ICU support in Regex
+ [automatically detected]
+ --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
+
+my_dir=$(dirname "$0")
+
+# Determine the toolset, if not already decided
+if test "x$TOOLSET" = x; then
+ guessed_toolset=`$my_dir/tools/build/src/engine/build.sh --guess-toolset`
+ case $guessed_toolset in
+ acc | clang | gcc | como | mipspro | pathscale | pgi | qcc | vacpp )
+ TOOLSET=$guessed_toolset
+ ;;
+
+ intel-* )
+ TOOLSET=intel
+ ;;
+
+ mingw )
+ TOOLSET=gcc
+ ;;
+
+ sun* )
+ TOOLSET=sun
+ ;;
+
+ * )
+ # Not supported by Boost.Build
+ ;;
+ esac
+fi
+
+rm -f config.log
+
+# Build bjam
+if test "x$BJAM" = x; then
+ $ECHO -n "Building Boost.Build engine with toolset $TOOLSET... "
+ pwd=`pwd`
+ (cd "$my_dir/tools/build/src/engine" && ./build.sh "$TOOLSET") > bootstrap.log 2>&1
+ if [ $? -ne 0 ]; then
+ echo
+ echo "Failed to build Boost.Build build engine"
+ echo "Consult 'bootstrap.log' for more details"
+ exit 1
+ fi
+ cd "$pwd"
+ BJAM="$my_dir/tools/build/src/engine/b2"
+ echo "tools/build/src/engine/b2"
+ cp "$BJAM" .
+
+fi
+
+# TBD: Turn BJAM into an absolute path
+
+# If there is a list of libraries
+if test "x$flag_show_libraries" = xyes; then
+ cat <<EOF
+
+The following Boost libraries have portions that require a separate build
+and installation step. Any library not listed here can be used by including
+the headers only.
+
+The Boost libraries requiring separate building and installation are:
+EOF
+ $BJAM -d0 --show-libraries | grep '^[[:space:]]*-'
+ 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
+ result=`$PYTHON -c "exit" > /dev/null 2>&1`
+ if [ "$?" -ne "0" ]; then
+ flag_no_python=yes
+ fi
+fi
+
+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
+fi
+
+# Configure ICU
+$ECHO -n "Unicode/ICU support for Boost.Regex?... "
+if test "x$flag_icu" != xno; then
+ if test "x$ICU_ROOT" = x; then
+ if command -v pkg-config > /dev/null && pkg-config icu-uc ; then
+ ICU_ROOT=`pkg-config --variable=prefix icu-uc`
+ fi
+ fi
+ if test "x$ICU_ROOT" = x; then
+ COMMON_ICU_PATHS="/usr /usr/local /sw"
+ for p in $COMMON_ICU_PATHS; do
+ if test -r $p/include/unicode/utypes.h; then
+ ICU_ROOT=$p
+ fi
+ done
+
+ if test "x$ICU_ROOT" = x; then
+ echo "not found."
+ else
+ BJAM_CONFIG="$BJAM_CONFIG -sICU_PATH=$ICU_ROOT"
+ echo "$ICU_ROOT"
+ fi
+ else
+ BJAM_CONFIG="$BJAM_CONFIG -sICU_PATH=$ICU_ROOT"
+ echo "$ICU_ROOT"
+ fi
+else
+ echo "disabled."
+fi
+
+# Backup the user's existing project-config.jam
+JAM_CONFIG_OUT="project-config.jam"
+if test -r "project-config.jam"; then
+ counter=1
+
+ while test -r "project-config.jam.$counter"; do
+ counter=`expr $counter + 1`
+ done
+
+ echo "Backing up existing Boost.Build configuration in project-config.jam.$counter"
+ mv "project-config.jam" "project-config.jam.$counter"
+fi
+
+# Generate user-config.jam
+echo "Generating Boost.Build configuration in project-config.jam for $TOOLSET..."
+cat > project-config.jam <<EOF
+# Boost.Build Configuration
+# Automatically generated by bootstrap.sh
+
+import option ;
+import feature ;
+
+# Compiler configuration. This definition will be used unless
+# you already have defined some toolsets in your user-config.jam
+# file.
+if ! $TOOLSET in [ feature.values <toolset> ]
+{
+ using $TOOLSET ;
+}
+
+project : default-build <toolset>$TOOLSET ;
+EOF
+
+# - Python configuration
+if test "x$flag_no_python" = x; then
+ cat >> project-config.jam <<EOF
+
+# Python configuration
+import python ;
+if ! [ python.configured ]
+{
+ using python : $PYTHON_VERSION : "$PYTHON_ROOT" ;
+}
+EOF
+fi
+
+if test "x$ICU_ROOT" != x; then
+ cat >> project-config.jam << EOF
+
+path-constant ICU_PATH : $ICU_ROOT ;
+
+EOF
+fi
+
+cat >> project-config.jam << EOF
+
+# List of --with-<library> and --without-<library>
+# options. If left empty, all libraries will be built.
+# Options specified on the command line completely
+# override this variable.
+libraries = $LIBS ;
+
+# These settings are equivalent to corresponding command-line
+# options.
+option.set prefix : $PREFIX ;
+option.set exec-prefix : $EPREFIX ;
+option.set libdir : $LIBDIR ;
+option.set includedir : $INCLUDEDIR ;
+
+# Stop on first error
+option.set keep-going : false ;
+EOF
+
+cat << EOF
+
+Bootstrapping is done. To build, run:
+
+ ./b2
+
+To generate header files, run:
+
+ ./b2 headers
+
+To adjust configuration, edit 'project-config.jam'.
+Further information:
+
+ - Command line help:
+ ./b2 --help
+
+ - Getting started guide:
+ http://www.boost.org/more/getting_started/unix-variants.html
+
+ - Boost.Build documentation:
+ http://www.boost.org/build/
+
+EOF