mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-29 20:10:28 -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
 |