mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-26 10:30:22 -04:00 
			
		
		
		
	
		
			
	
	
		
			410 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			410 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
|  | #!/bin/sh
 | ||
|  | # 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 | ||
|  | 
 | ||
|  | # TBD: Determine where the script is located | ||
|  | my_dir="." | ||
|  | 
 | ||
|  | # 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 | darwin | 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" | ||
|  |   arch=`cd $my_dir/tools/build/src/engine && ./bootstrap/jam0 -d0 -f build.jam --toolset=$TOOLSET --toolset-root= --show-locate-target && cd ..` | ||
|  |   BJAM="$my_dir/tools/build/src/engine/$arch/b2" | ||
|  |   echo "tools/build/src/engine/$arch/b2" | ||
|  |   cp "$BJAM" . | ||
|  |   cp "$my_dir/tools/build/src/engine/$arch/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 | ||
|  |     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..." | ||
|  | 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 equivivalent 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 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/doc/html/index.html | ||
|  | 
 | ||
|  | EOF |