# Copyright Vladimir Prus 2004.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt
# or copy at http://www.boost.org/LICENSE_1_0.txt)

#| tag::doc[]

[[bbv2.reference.tools.compiler.intel]]
= Intel C++

The `intel-*` modules support the Intel C++ command-line compiler.

The module is initialized using the following syntax:

----
using intel : [version] : [c++-compile-command] : [compiler options] ;
----

This statement may be repeated several times, if you want to configure
several versions of the compiler.

If compiler command is not specified, then Boost.Build will look in PATH
for an executable `icpc` (on Linux), or `icc.exe` (on Windows).

The following options can be provided, using
_`<option-name>option-value syntax`_:

`cflags`::
Specifies additional compiler flags that will be used when compiling C
sources.

`cxxflags`::
Specifies additional compiler flags that will be used when compiling C++
sources.

`compileflags`::
Specifies additional compiler flags that will be used when compiling both C
and C++ sources.

`linkflags`::
Specifies additional command line options that will be passed to the linker.

The Linux version supports the following additional options:

`root`::
Specifies root directory of the compiler installation. This option is
necessary only if it is not possible to detect this information from the
compiler command -- for example if the specified compiler command is a user
script.

|# # end::doc[]

# This is a generic 'intel' toolset. Depending on the current
# system, it forwards either to 'intel-linux' or 'intel-win'
# modules.

import feature ;
import os ;
import toolset ;

feature.extend toolset : intel ;
feature.subfeature toolset intel : platform : : propagated link-incompatible ;

rule init ( * : * )
{
    if [ os.name ] = LINUX
    {
        toolset.using intel-linux : 
          $(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ;
    }
    else if [ os.name ] = MACOSX
    {
        toolset.using intel-darwin : 
          $(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ;
    }
    else
    {
        toolset.using intel-win :
          $(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ;
    }        
}
