diff --git a/doc/src/bjam.adoc b/doc/src/bjam.adoc index 612ef74be..f762c5d63 100644 --- a/doc/src/bjam.adoc +++ b/doc/src/bjam.adoc @@ -60,7 +60,9 @@ The supported toolsets, and whether they are auto-detected, are: |Script |Platform |Toolset |Detection and Notes |`build.bat` -|Windows NT, 2000, and XP + +|Windows + |http://www.codegear.com/downloads/free/cppbuilder[`borland`], http://www.borland.com/[Borland] {CPP}Builder (BCC 5.5) a| @@ -129,139 +131,96 @@ example, a Win64 specific version of `b2`. Consult the VisualStudio documentation for what the possible argument values to the `VCVARSALL.BAT` are. -|`build.sh` |Unix, Linux, Cygwin, etc. |http://www.hp.com/go/c++[`acc`], -HP-UX aCC -a| -* `aCC` in `PATH` -* `uname` is "HP-UX" +|`build.sh` +|Unix, Linux, Cygwin, Windows Bash, etc. -| | |http://www.comeaucomputing.com/[`como`], Comeau Computing C/{CPP} +|`gcc`, GNU GCC +a| +* `g++` in `PATH` + +| | |`clang`, Clang LLVM +a| +* `clang++` in `PATH` + +| | |`intel-linux`, Intel {CPP} (oneAPI) for Linux +a| +* `icpx` in `PATH` +* `icc` in `PATH` +* `icpc` in `PATH` +* `setvars.sh` in common install locations: `$HOME/intel/oneapi`, + `/opt/intel/oneapi`, `/opt/intel/inteloneapi` +* `iccvars.sh` in common install locations: `/opt/intel/cc/9.0/bin`, + `/opt/intel_cc_80/bin` + +| | +|`mipspro`, SGI MIPSpro {CPP} +a| +* `uname` is "IRIX" or "IRIX64" and `CC` in `PATH` + +| | |`true64cxx`, Compaq {CPP} Compiler for True64 UNIX +a| +* `uname` is "OSF1" and `cc` in `PATH` + +| | |`qcc`, QNX Neutrino +a| +* `uname` is "QNX" and `QCC` in `PATH` + +| | |`xlcpp` and `vacpp`, IBM VisualAge {CPP} +a| +* `uname` is "Linux" and `xlC_r` in `PATH` (`xlcpp` or `vacpp` depending on + machine endian) +* `uname` is "AIX" and `xlC_r` in `PATH` (`vacpp`) + +| | |`pgi`, PGI Compilers +a| +* `pgc++` in `PATH` + +| | |`pathscale`, Pathscale {CPP} +a| +* `pathCC` in `PATH` + +| | |`como`, Comeau Computing C/{CPP} a| * `como` in `PATH` -| | |http://gcc.gnu.org/[`gcc`], GNU GCC +| | |`kylix`, Borland {CPP} a| -* `gcc` in `PATH` +* `bc++` in `PATH` (`kylix`) -| | -|http://www.intel.com/software/products/compilers/c60l/[`intel-linux`], -Intel {CPP} for Linux +| | |`acc`, HP-UX aCC a| -* `icc` in `PATH` -* Common install locations: `/opt/intel/cc/9.0`, `/opt/intel_cc_80`, - `/opt/intel/compiler70`, `/opt/intel/compiler60`, `/opt/intel/compiler50` - -| | |`kcc`, Intel KAI {CPP} -a| -* `KCC` in `PATH` - -| | |http://www.codegear.com/downloads/free/cppbuilder[`kylix`], -http://www.borland.com/[Borland] {CPP}Builder -a| -* `bc++` in `PATH` - -| | -|http://www.sgi.com/developers/devtools/languages/mipspro.html[`mipspro`], -SGI MIPSpro C -a| -* `uname` is "IRIX" or "IRIX64" +* `aCC` in `PATH` | | |`sunpro`, Sun Workshop 6 {CPP} a| -* Standard install location: `/opt/SUNWspro` - -| | |`qcc`, http://www.qnx.com/[QNX Neutrino] -a| -* `uname` is "QNX" and `qcc` in `PATH` - -| | |http://www.tru64unix.compaq.com/cplus/[`true64cxx`], Compaq {CPP} -Compiler for True64 UNIX -a| -* `uname` is "OSF1" - -| | |http://www.ibm.com/software/awdtools/vacpp/[`vacpp`], IBM VisualAge -{CPP} -a| -* `xlc` in `PATH` - -| |MacOS X |http://developer.apple.com/tools/compilers.html[`darwin`], -Apple MacOS X GCC -a| -* `uname` is "Darwin" - -| |Windows NT, 2000, and XP |http://www.mingw.org/[`mingw`], GNU -http://gcc.gnu.org/[GCC] as the http://www.mingw.org/[MinGW] -configuration with the MSYS shell -a| -* Common install location: `/mingw` +* Standard install location: `/opt/SUNWspro/bin/CC` |=== -The built executables are placed in a subdirectory specific to your -platform. For example, in Linux running on an Intel x86 compatible chip, -the executables are placed in: `bin.linuxx86`. The `b2[.exe]` -executable can be used to invoke B2. +The built executables are placed in the `src/engine` directory. -The build scripts support additional invocation arguments for use by -developers of Boost.Jam and for additional setup of the toolset. The -extra arguments come after the toolset: - -* Arguments not in the form of an option, before option arguments, are -used for extra setup to toolset configuration scripts. -* Arguments of the form `--option`, which are passed to the -`build.jam` build script. -* Arguments not in the form of an option, after the options, which are -targets for the `build.jam` script. +The `build.sh` script supports additional invocation options used to +control the the build and custom compilers: ---- -build [toolset] [setup*] [--option+ target*] +build.sh [--option|--option=x] [toolset] ---- -The arguments immediately after the toolset are passed directly to the -setup script of the toolset, if available and if it needs to be invoked. -This allows one to configure the toolset ass needed to do non-default -builds of `b2`. For example to build a Win64 version with `vc8`. See the -toolset description above for when particular toolsets support this. - -The arguments starting with the `--option` forms are passed to the -`build.jam` script and are used to further customize what gets built. -Options and targets supported by the `build.jam` script: - -`---`:: - Empty option when one wants to only specify a target. -`--release`:: - The default, builds the optimized executable. +`--help`:: + Shows some help information, including these options. +`--verbose`:: + Show messages about what this script is doing. `--debug`:: - Builds debugging versions of the executable. When built they are - placed in their own directory `bin./platform/.debug`. -`--grammar`:: - Normally the Jam language grammar parsing files are not regenerated. - This forces building of the grammar, although it may not force the - regeneration of the grammar parser. If the parser is out of date it - will be regenerated and subsequently built. -`--with-python=path`:: - Enables Python integration, given a path to the Python libraries. -`--gc`:: - Enables use of the Boehm Garbage Collector. The build will look for - the Boehm-GC source in a "boehm_gc" subdirectory from the `b2` - sources. -`--duma`:: - Enables use of the DUMA (Detect Unintended Memory Access) debugging - memory allocator. The build expects to find the DUMA source files in a - "duma" subdirectory from the `b2` sources. -`--toolset-root=path`:: - Indicates where the toolset used to build is located. This option is - passed in by the bootstrap (`build.bat` or `build.sh`) script. -`--show-locate-target`:: - For information, prints out where it will put the built executable. -`--noassert`:: - Disable debug assertions, even if building the debug version of the - executable. -`dist`:: - Generate packages (compressed archives) as appropriate for - distribution in the platform, if possible. -`clean`:: - Remove all the built executables and objects. + Builds debugging versions of the executable. The default is to build an + optimized executable. +`--guess-toolset`:: + Print the toolset we can detect for building. This is used by external + scripts, like the Boost Libraries main bootstrap script. +`--cxx=CXX`:: + The compiler exec to use instead of the detected compiler exec. +`--cxxflags=CXXFLAGS`:: + The compiler flags to use in addition to the flags for the detected + compiler. [[jam.language]] == Language diff --git a/src/engine/build.sh b/src/engine/build.sh index 6e706e174..afc9956d6 100755 --- a/src/engine/build.sh +++ b/src/engine/build.sh @@ -235,8 +235,7 @@ check_toolset () if test_toolset pathscale && test_compiler pathCC ; then B2_TOOLSET=pathscale ; return ${TRUE} ; fi # Como (como) if test_toolset como && test_compiler como ; then B2_TOOLSET=como ; return ${TRUE} ; fi - # Borland C++ (kcc, kylix) - if test_toolset kcc && test_compiler KCC ; then B2_TOOLSET=kcc ; return ${TRUE} ; fi + # Borland C++ (kylix) if test_toolset kylix && test_compiler bc++ -tC -q ; then B2_TOOLSET=kylix ; return ${TRUE} ; fi # aCC (acc) if test_toolset acc && test_compiler aCC -AA ; then B2_TOOLSET=acc ; return ${TRUE} ; fi