2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-15 13:02:11 +00:00

Add option customization based on the version of the intel compiler

and base msvc installation in use.

Added auto-detection for the intel compiler version.

Updated documentation; retired the INTELC variable, since it was
unsupported anyway.


[SVN r18638]
This commit is contained in:
Dave Abrahams
2003-06-01 14:53:07 +00:00
parent 67f0d4a02e
commit d13e4eeb8e
4 changed files with 278 additions and 138 deletions

View File

@@ -1,80 +1,115 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="boost.css">
<title>Boost.Build - intel-win32 toolset</title>
</head>
<body link="#0000ff" vlink="#800080">
<table border="0" cellpadding="7" cellspacing="0" width="100%" summary=
<head>
<meta name="generator" content=
"HTML Tidy for Cygwin (vers 1st April 2002), see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="boost.css">
<title>Boost.Build - intel-win32 toolset</title>
</head>
<body link="#0000ff" vlink="#800080">
<table border="0" cellpadding="7" cellspacing="0" width="100%" summary=
"header">
<tr>
<td valign="top" width="300">
<h3><a href="http://www.boost.org"><img height="86" width="277" alt="C++ Boost" src="../../c++boost.gif" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<h2 align="center">intel-win32 toolset</h2>
</td>
</tr>
</table>
<hr>
<tr>
<td valign="top" width="300">
<h3><a href="http://www.boost.org"><img height="86" width="277"
alt="C++ Boost" src="../../c++boost.gif" border="0"></a></h3>
</td>
<h2>Introduction</h2>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<p>Boost.Build's <a href="http://www.intel.com/software/products/compilers/c60/">intel-win32</a> toolset supports the
Intel C++ Compiler for Windows. This compiler is compatible with the
<a href="msvc-tools.html">msvc</a> tools.
<h2 align="center">intel-win32 toolset</h2>
</td>
</tr>
</table>
<hr>
<h2>Configuration Variables</h2>
<h2>Introduction</h2>
The intel-win32 toolset responds to the following variables which can be set in the
environment or configured on the jam command-line using
<code>-s<i>VARIABLE_NAME</i>=</code><i>value</i>. This toolset is by default an extension to the
<a href="msvc-tools.html">msvc toolset</a> and therefore responds to all
of the MSVC <a href="msvc-tools.html#configuration">configuration
variables</a> in addition to those listed below. The toolset can be configure to extend
the <a href="vc7-tools.html">vc7</a> instead.
<p>Boost.Build's <a href=
"http://www.intel.com/software/products/compilers/c60/">intel-win32</a>
toolset supports the Intel C++ Compiler for Windows. This compiler is
compatible with the <a href="msvc-tools.html">msvc</a> tools.</p>
<table border="1">
<h2>Configuration Variables</h2>
The intel-win32 toolset responds to the following variables which can be
set in the environment or configured on the jam command-line using
<code>-s<i>VARIABLE_NAME</i>=</code><i>value</i>. This toolset is by
default an extension to the <a href="msvc-tools.html">msvc toolset</a>
and therefore responds to all of the MSVC <a href=
"msvc-tools.html#configuration">configuration variables</a> in addition
to those listed below. The toolset can be configure to extend <a href=
"vc7-tools.html">vc7</a> or <a href="vc7.1-tools.html">vc7.1</a> instead.
<tr><th>Variable Name <th>Semantics <th>Default <th>Notes
<table border="1">
<tr>
<th>Variable Name</th>
<tr>
<td><code>INTELC</code>
<td>Path to installation of the compiler tools.
<td>(none)
<td>This is the FTJam compatability version of <code>INTEL_PATH</code>.
<th>Semantics</th>
<tr>
<td><code>INTEL_PATH</code>
<td>The path of the compiler installation.
<td><code>$(INTELC)</code>
<td>&nbsp;
<th>Default</th>
<tr>
<td><code>INTEL_TOOL_PATH</code>
<td>Path to the directory of the compiler tool executables.
<td><code>$(INTEL_PATH)/bin/</code>
<td>&nbsp;
<th>Notes</th>
</tr>
<tr>
<td><code>INTEL_BASE_MSVC_TOOLSET</code>
<td>The base toolset to extend this toolset from. This can specify either
to extend the <code>msvc toolset</code>, or the <code>vc7 toolset</code>.
<td><code>msvc</code>
<td>If you have both vc6 and vc7, you may want your Intel compiler to
use the VC7 libarries instead of the default vc6 libraries. In which case
set this to <code>vc7</code>.
<tr>
<td><code>INTEL_PATH</code></td>
</table>
<td>The path of the compiler installation.</td>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
14 May, 2002
<!--webbot bot="Timestamp" endspan i-checksum="39359" -->
</p>
<p><i>&copy; Copyright <a href="../../people/dave_abrahams.htm">Dave Abrahams</a>
2002. All Rights Reserved.</i></p>
</body>
<td><code>C:\Program Files\Intel\Compiler70\IA32</code></td>
<td>
</td>
</tr>
<tr>
<td><code>INTEL_VERSION</code></td>
<td>The version of the intel compiler in use</td>
<td>Deduced from <code>INTEL_PATH</code>.</td>
<td>In most installations you can leave this variable unset.</td>
</tr>
<tr>
<td><code>INTEL_TOOL_PATH</code></td>
<td>Path to the directory of the compiler tool executables.</td>
<td><code>$(INTEL_PATH)/bin/</code></td>
<td>In most installations you can leave this variable unset.</td>
</tr>
<tr>
<td><code>INTEL_BASE_MSVC_TOOLSET</code></td>
<td>The base toolset to extend this toolset from. This can be one of
<code>msvc</code>, <code>vc7</code>, or <code>vc7.1</code>.</td>
<td><code>msvc</code></td>
<td>If you have both vc6 and vc7, you may want your Intel compiler to
use the VC7 libaries instead of the default vc6 libraries, in which
case set this to <code>vc7</code>.</td>
</tr>
</table>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
1 June, 2003 <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
</p>
<p><i>&copy; Copyright <a href="../../people/dave_abrahams.htm">Dave
Abrahams</a> 2003. All Rights Reserved.</i></p>
</body>
</html>

View File

@@ -34,10 +34,45 @@ VC_STDLIB_PATH = "$(INTEL_PATH)"\\bin ;
VC_COMPILER = icl ;
VC_LINKER = xilink ;
C++FLAGS =
[ difference $(C++FLAGS) : /Zc:wchar_t,forScope ] # remove ms-specific options
/Qwn5 /Qwd985 /Qansi_alias
; # reduce number of errors
# Extract the compiler version from its installation path
local version = $(INTEL_VERSION) ;
version ?= [ MATCH .*[\\/][Cc][Oo][Mm][Pp][Ii][Ll][Ee][Rr]([0-9])[0-9][\\/].* : $(INTEL_TOOL_PATH) ] ;
# Reduce the number of spurious error messages
C++FLAGS += /Qwn5 /Qwd985 ;
if $(version) <= 5
{
# remove options unrecognized by Intel5
C++FLAGS = [ difference $(C++FLAGS) : /Zc:wchar_t,forScope ] ;
}
else
{
C++FLAGS +=
# Add support for wchar_t and correct for loop scoping
/Zc:wchar_t,forScope
;
}
# Add options recognized only by intel7
if $(version) >= 7
{
C++FLAGS += /Qansi_alias ;
}
# tell the compiler about the base toolset.
if $(INTEL_BASE_MSVC_TOOLSET) = msvc
{
C++FLAGS += /Qvc6 ;
}
else
{
C++FLAGS += /Q$(INTEL_BASE_MSVC_TOOLSET) ;
}
# remove any duplicates caused by the additions above
C++FLAGS = [ unique $(C++FLAGS) ] ;
if $(VC_SETUP)
{

View File

@@ -1,80 +1,115 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="boost.css">
<title>Boost.Build - intel-win32 toolset</title>
</head>
<body link="#0000ff" vlink="#800080">
<table border="0" cellpadding="7" cellspacing="0" width="100%" summary=
<head>
<meta name="generator" content=
"HTML Tidy for Cygwin (vers 1st April 2002), see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="boost.css">
<title>Boost.Build - intel-win32 toolset</title>
</head>
<body link="#0000ff" vlink="#800080">
<table border="0" cellpadding="7" cellspacing="0" width="100%" summary=
"header">
<tr>
<td valign="top" width="300">
<h3><a href="http://www.boost.org"><img height="86" width="277" alt="C++ Boost" src="../../c++boost.gif" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<h2 align="center">intel-win32 toolset</h2>
</td>
</tr>
</table>
<hr>
<tr>
<td valign="top" width="300">
<h3><a href="http://www.boost.org"><img height="86" width="277"
alt="C++ Boost" src="../../c++boost.gif" border="0"></a></h3>
</td>
<h2>Introduction</h2>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<p>Boost.Build's <a href="http://www.intel.com/software/products/compilers/c60/">intel-win32</a> toolset supports the
Intel C++ Compiler for Windows. This compiler is compatible with the
<a href="msvc-tools.html">msvc</a> tools.
<h2 align="center">intel-win32 toolset</h2>
</td>
</tr>
</table>
<hr>
<h2>Configuration Variables</h2>
<h2>Introduction</h2>
The intel-win32 toolset responds to the following variables which can be set in the
environment or configured on the jam command-line using
<code>-s<i>VARIABLE_NAME</i>=</code><i>value</i>. This toolset is by default an extension to the
<a href="msvc-tools.html">msvc toolset</a> and therefore responds to all
of the MSVC <a href="msvc-tools.html#configuration">configuration
variables</a> in addition to those listed below. The toolset can be configure to extend
the <a href="vc7-tools.html">vc7</a> instead.
<p>Boost.Build's <a href=
"http://www.intel.com/software/products/compilers/c60/">intel-win32</a>
toolset supports the Intel C++ Compiler for Windows. This compiler is
compatible with the <a href="msvc-tools.html">msvc</a> tools.</p>
<table border="1">
<h2>Configuration Variables</h2>
The intel-win32 toolset responds to the following variables which can be
set in the environment or configured on the jam command-line using
<code>-s<i>VARIABLE_NAME</i>=</code><i>value</i>. This toolset is by
default an extension to the <a href="msvc-tools.html">msvc toolset</a>
and therefore responds to all of the MSVC <a href=
"msvc-tools.html#configuration">configuration variables</a> in addition
to those listed below. The toolset can be configure to extend <a href=
"vc7-tools.html">vc7</a> or <a href="vc7.1-tools.html">vc7.1</a> instead.
<tr><th>Variable Name <th>Semantics <th>Default <th>Notes
<table border="1">
<tr>
<th>Variable Name</th>
<tr>
<td><code>INTELC</code>
<td>Path to installation of the compiler tools.
<td>(none)
<td>This is the FTJam compatability version of <code>INTEL_PATH</code>.
<th>Semantics</th>
<tr>
<td><code>INTEL_PATH</code>
<td>The path of the compiler installation.
<td><code>$(INTELC)</code>
<td>&nbsp;
<th>Default</th>
<tr>
<td><code>INTEL_TOOL_PATH</code>
<td>Path to the directory of the compiler tool executables.
<td><code>$(INTEL_PATH)/bin/</code>
<td>&nbsp;
<th>Notes</th>
</tr>
<tr>
<td><code>INTEL_BASE_MSVC_TOOLSET</code>
<td>The base toolset to extend this toolset from. This can specify either
to extend the <code>msvc toolset</code>, or the <code>vc7 toolset</code>.
<td><code>msvc</code>
<td>If you have both vc6 and vc7, you may want your Intel compiler to
use the VC7 libarries instead of the default vc6 libraries. In which case
set this to <code>vc7</code>.
<tr>
<td><code>INTEL_PATH</code></td>
</table>
<td>The path of the compiler installation.</td>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
14 May, 2002
<!--webbot bot="Timestamp" endspan i-checksum="39359" -->
</p>
<p><i>&copy; Copyright <a href="../../people/dave_abrahams.htm">Dave Abrahams</a>
2002. All Rights Reserved.</i></p>
</body>
<td><code>C:\Program Files\Intel\Compiler70\IA32</code></td>
<td>
</td>
</tr>
<tr>
<td><code>INTEL_VERSION</code></td>
<td>The version of the intel compiler in use</td>
<td>Deduced from <code>INTEL_PATH</code>.</td>
<td>In most installations you can leave this variable unset.</td>
</tr>
<tr>
<td><code>INTEL_TOOL_PATH</code></td>
<td>Path to the directory of the compiler tool executables.</td>
<td><code>$(INTEL_PATH)/bin/</code></td>
<td>In most installations you can leave this variable unset.</td>
</tr>
<tr>
<td><code>INTEL_BASE_MSVC_TOOLSET</code></td>
<td>The base toolset to extend this toolset from. This can be one of
<code>msvc</code>, <code>vc7</code>, or <code>vc7.1</code>.</td>
<td><code>msvc</code></td>
<td>If you have both vc6 and vc7, you may want your Intel compiler to
use the VC7 libaries instead of the default vc6 libraries, in which
case set this to <code>vc7</code>.</td>
</tr>
</table>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
1 June, 2003 <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
</p>
<p><i>&copy; Copyright <a href="../../people/dave_abrahams.htm">Dave
Abrahams</a> 2003. All Rights Reserved.</i></p>
</body>
</html>

View File

@@ -34,10 +34,45 @@ VC_STDLIB_PATH = "$(INTEL_PATH)"\\bin ;
VC_COMPILER = icl ;
VC_LINKER = xilink ;
C++FLAGS =
[ difference $(C++FLAGS) : /Zc:wchar_t,forScope ] # remove ms-specific options
/Qwn5 /Qwd985 /Qansi_alias
; # reduce number of errors
# Extract the compiler version from its installation path
local version = $(INTEL_VERSION) ;
version ?= [ MATCH .*[\\/][Cc][Oo][Mm][Pp][Ii][Ll][Ee][Rr]([0-9])[0-9][\\/].* : $(INTEL_TOOL_PATH) ] ;
# Reduce the number of spurious error messages
C++FLAGS += /Qwn5 /Qwd985 ;
if $(version) <= 5
{
# remove options unrecognized by Intel5
C++FLAGS = [ difference $(C++FLAGS) : /Zc:wchar_t,forScope ] ;
}
else
{
C++FLAGS +=
# Add support for wchar_t and correct for loop scoping
/Zc:wchar_t,forScope
;
}
# Add options recognized only by intel7
if $(version) >= 7
{
C++FLAGS += /Qansi_alias ;
}
# tell the compiler about the base toolset.
if $(INTEL_BASE_MSVC_TOOLSET) = msvc
{
C++FLAGS += /Qvc6 ;
}
else
{
C++FLAGS += /Q$(INTEL_BASE_MSVC_TOOLSET) ;
}
# remove any duplicates caused by the additions above
C++FLAGS = [ unique $(C++FLAGS) ] ;
if $(VC_SETUP)
{