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

Remove BBv1 for good

[SVN r36321]
This commit is contained in:
Dave Abrahams
2006-12-11 03:35:10 +00:00
parent ceee5e267a
commit f1493bf1fa
127 changed files with 0 additions and 17378 deletions

View File

@@ -1,119 +0,0 @@
# (C) Copyright Toon Knapen 2002, David Abrahams 2002
# 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)
#
# Jam tools information for :
# HP-UX aCC compiler
#
set-as-singleton acc.root-directory ;
acc.bin-directory = $(acc.root-directory)$(SLASH)bin$(SLASH) ;
acc.bin-directory ?= " " ;
flags acc CC : cc ;
flags acc CXX : aCC ;
flags acc CFLAGS <optimization>off : ;
flags acc CFLAGS <optimization>default : -O ;
flags acc CFLAGS <optimization>speed : -O3 ;
flags acc CFLAGS <optimization>space : -O2 ;
flags acc CFLAGS <inlining>off : +d ;
flags acc CFLAGS <inlining>on : ;
flags acc CFLAGS <inlining>full : ;
flags acc CFLAGS <threading>multi : -mt ;
flags acc C++FLAGS <exception-handling>off : ;
flags acc C++FLAGS <exception-handling>on : ;
flags acc C++FLAGS <rtti>off : ;
flags acc C++FLAGS <rtti>on : ;
flags acc LINKFLAGS <runtime-link>static : -llibstd_v2.a ;
flags acc LINKFLAGS <runtime-link>shared : -llibstd_v2.sl ;
# We want the full path to the sources in the debug symbols because otherwise
# the debugger won't find the sources when we use boost.build.
flags acc CFLAGS <debug-symbols>on : -g ;
flags acc LINKFLAGS <debug-symbols>on : -g ;
flags acc LINKFLAGS <debug-symbols>off : -s ;
flags acc LINKFLAGS <threading>multi : -mt ;
flags acc CFLAGS <shared-linkable>true : +Z ;
flags acc CFLAGS <target-type>$(SHARED_TYPES) : +z ;
flags acc CFLAGS <warnings>off : -w ;
flags acc LINKFLAGS <target-type>$(SHARED_TYPES) : -b ;
flags acc CFLAGS <profiling>on : -pg ;
flags acc LINKFLAGS <profiling>on : -pg ;
flags acc CFLAGS <cflags> ;
flags acc C++FLAGS <cxxflags> ;
flags acc DEFINES <define> ;
flags acc UNDEFS <undef> ;
flags acc HDRS <include> ;
flags acc STDHDRS <sysinclude> ;
flags acc LINKFLAGS <linkflags> ;
flags acc ARFLAGS <arflags> ;
flags acc LIBPATH <library-path> ;
flags acc NEEDLIBS <library-file> ;
flags acc FINDLIBS <find-library> ;
# BOOST_COMPATIBILITY ?= $(BOOST_ROOT)$(SLASH)boost$(SLASH)compatibility$(SLASH)cpp_c_headers ;
# flags tru64cxx STDHDRS : $(BOOST_COMPATIBILITY) ;
if ! $(ARFLAGS)
{
flags acc ARFLAGS : "" ;
}
#### Link ####
rule Link-action
{
aCC-Link-action $(<) : $(>) ;
}
actions aCC-Link-action bind NEEDLIBS
{
$(acc.bin-directory)$(CXX) $(LINKFLAGS) -AA -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS)
}
#### Cc #####
rule Cc-action
{
acc-Cc-action $(<) : $(>) ;
}
actions acc-Cc-action
{
$(acc.bin-directory)$(CC) -c -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)"
}
#### C++ ####
rule C++-action
{
aCC-C++-action $(<) : $(>) ;
}
actions aCC-C++-action
{
$(acc.bin-directory)$(CXX) -AA -c +W823 -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)"
}
#### Archive ####
rule Archive-action
{
acc-Archive-action $(<) : $(>) ;
}
actions updated together piecemeal acc-Archive-action
{
ar ru$(ARFLAGS) "$(<)" "$(>)"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,43 +0,0 @@
# (C) Copyright David Abrahams 2001.
# 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)
#
# Enforce toolset names to be lowercase for consistency. This also
# removes bugs for incompatible names on file systems that are
# case-insensitive.
#
TOOLS = $(TOOLS:L) ;
SEARCH on <jam-module>allyourbase.jam = $(BOOST_BUILD_PATH) ;
include <jam-module>allyourbase.jam ;
SEARCH on <jam-module>boost-base.jam = $(BOOST_BUILD_PATH) ;
include <jam-module>boost-base.jam ;
#
# Now include the user's Jamfile.
#
{
load-jamfiles $(JAMFILE) ;
}
#
# Cause the targets specified in the command line to be updated
#
if $(JAM_VERSION) && $(JAM_VERSION:J="") >= 030101 && $(JAM_VERSION:J="") < 030104
{
# Only the last invocation of UPDATE takes effect; we must
# accumulate the entire list before invoking UPDATE. I always
# thought this was a confusing semantics, and probably the fact
# that the author of UPDATE got it wrong is proof.
local t ;
for local e in $(ARGV[2-])
{
if ! [ MATCH "^(-).*" : $(e) ]
{
t += $(e) ;
}
}
UPDATE $(t) ;
}

View File

@@ -1,14 +0,0 @@
# (C) Copyright David Abrahams 2002.
# 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://www.borland.com/bcppbuilder/freecompiler/">Borland</a>
{
BCCROOT = $(BCC_551_ROOT) ;
extends-toolset borland ;
C++FLAGS = [ difference $(C++FLAGS) : -WU ] ;
CFLAGS = [ difference $(CFLAGS) : -WU ] -DBOOST_ALL_NO_LIB=1 ;
LINKFLAGS = [ difference $(LINKFLAGS) : -WU ] ;
}

View File

@@ -1,14 +0,0 @@
# (C) Copyright David Abrahams 2002.
# 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://www.borland.com/bcppbuilder/freecompiler/">Borland</a>
{
BCCROOT = $(BCC_564_ROOT) ;
extends-toolset borland ;
C++FLAGS = [ difference $(C++FLAGS) : -WU ] ;
CFLAGS = [ difference $(CFLAGS) : -WU ] -DBOOST_ALL_NO_LIB=1 ;
LINKFLAGS = [ difference $(LINKFLAGS) : -WU ] ;
}

View File

@@ -1,14 +0,0 @@
# (C) Copyright David Abrahams 2002.
# 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://www.borland.com/bcppbuilder/freecompiler/">Borland</a>
{
BCCROOT = $(BCC_582_ROOT) ;
extends-toolset borland ;
C++FLAGS = [ difference $(C++FLAGS) : -WU ] ;
CFLAGS = [ difference $(CFLAGS) : -WU ] -DBOOST_ALL_NO_LIB=1 ;
LINKFLAGS = [ difference $(LINKFLAGS) : -WU ] ;
}

View File

@@ -1,82 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1st September 2003), see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
<title>Boost.Build - borland toolset</title>
</head>
<body link="#0000FF" vlink="#800080">
<table border="0" cellpadding="7" cellspacing="0" width="100%" summary=
"header">
<tbody>
<tr>
<td valign="top" width="300">
<h3><a href="http://www.boost.org/"><img height="86" width="277"
alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<h2 align="center">borland toolset</h2>
</td>
</tr>
</tbody>
</table>
<hr>
<h2>Introduction</h2>
<p>Boost.Build's <a href=
"http://www.borland.com/bcppbuilder/freecompiler">borland</a> toolset
supports the <a href="http://www.borland.com/">Borland</a> C++Builder (BCC
5.5) compiler.</p>
<h2>Configuration Variables</h2>The borland 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>:
<table border="1" summary="settings">
<tbody>
<tr>
<th>Variable Name</th>
<th>Semantics</th>
<th>Default</th>
<th>Notes</th>
</tr>
<tr>
<td><code>BCCROOT</code></td>
<td>The directory in which BCC was installed.</td>
<td>(none)</td>
<td>If not set the user must ensure that the tools, the bin directory
of BCC, is available as part of the executable search path.</td>
</tr>
</tbody>
</table>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
06 May, 2002 <!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p>Copyright &copy; Dave Abrahams 2002.</p>
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</body>
</html>

View File

@@ -1,211 +0,0 @@
# (C) Copyright David Abrahams 2001.
# 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://www.borland.com/bcppbuilder/freecompiler/">Borland</a>
# Borland tool definitions.
#
# Please note that wide-character support is currently disabled for Borland in
# features.jam, pending someone taking the time to figure out how to get the
# appropriate libraries into the link command line.
# BCCROOT is the install location of the borland tools.
set-as-singleton BCCROOT ;
# Get these variable set on the targets so that we can re-use the
# build actions for other toolsets using this one as a base.
flags borland BCC_TOOL_PATH ;
# compute Borland tool path
# You can either put the borland bin directory in your PATH, or you can set
# BCCROOT to point at the borland installation directory
BCC_TOOL_PATH = $(BCCROOT)$(SLASH)bin$(SLASH) ;
BCC_TOOL_PATH ?= "" ; # Don't clobber adjoining text if BCCROOT isn't set
# specify compilation and link flags
flags borland CFLAGS <debug-symbols>on : -v ;
flags borland LINKFLAGS <debug-symbols>on : -v ;
flags borland CFLAGS <optimization>off : -Od ;
flags borland CFLAGS <optimization>speed : -O2 ;
flags borland CFLAGS <optimization>space : -O1 ;
# Borland has inlining bugs that affect destructors
# (http://lists.boost.org/boost-testing/2005/10/2079.php). Define
# this variable to force inlining for Borland to always be shut off.
# We decided it was a bad idea to do it by default, because it would
# hide bugs that users would see.
if ! $(.BORLAND_INLINING_BUG_BRUTE_FORCE_WORKAROUND)
{
flags borland CFLAGS <inlining>off : -vi- ;
flags borland CFLAGS <inlining>on : -vi -w-inl ;
flags borland CFLAGS <inlining>full : -vi -w-inl ;
}
else
{
flags borland CFLAGS : -vi- ;
}
# build the options common to the link and C/C++ command-lines
{
local bcc-common-flags ;
# this section sets up the target type (threading,
# RTL, and console/GUI options). The order in which
# these options appear is generally important, as some
# (such as -tWR) can have unexpected side effects.
local target-type = [ get-values <target-type> : $(gBUILD_PROPERTIES) ] ;
if ! $(target-type) || ! ( $(target-type) in $(SHARED_TYPES) )
{
flags borland bcc-common-flags <user-interface>console : -tWC ;
# -tWR sets -tW as well, so we turn it off here and then turn it
# on again later if we need it:
flags borland bcc-common-flags <runtime-link>dynamic : -tWR -tWC ;
flags borland bcc-common-flags <user-interface>gui : -tW ;
}
else
{
flags borland bcc-common-flags <runtime-link>dynamic : -tWR ;
}
flags borland bcc-common-flags <target-type>$(SHARED_TYPES) : -tWD ;
flags borland bcc-common-flags : -WM- ;
flags borland bcc-common-flags <threading>multi : -tWM ;
flags borland LINKFLAGS : $(bcc-common-flags) ;
flags borland CFLAGS : $(bcc-common-flags) ;
}
flags borland LINKFLAGS <unicode-application>on : -WU ;
flags borland CFLAGS <unicode-application>on : -WU ;
flags borland CFLAGS <cflags> ;
flags borland C++FLAGS <cxxflags> ;
flags borland DEFINES <define> ;
flags borland UNDEFS <undef> ;
flags borland HDRS <include> ;
flags borland SYSHDRS <sysinclude> ;
flags borland LINKFLAGS <linkflags> ;
flags borland ARFLAGS <arflags> ;
flags borland STDHDRS : $(BCCROOT)$(SLASH)include ;
flags borland STDLIBPATH : $(BCCROOT)$(SLASH)lib ;
flags borland LIBPATH <library-path> ;
flags borland NEEDLIBS <library-file> ;
flags borland FINDLIBS <find-library> ;
# suppress some specific warnings
flags borland C++FLAGS : -w-8001 ;
# For detailed information about borland tools and their command-line switches,
# see http://www.objectcentral.com/vide/help/videdoc/bcc32.html
#### Link ####
rule Link-action
{
# Make sure that the borland runtime dlls are in the runtime path
gRUN_PATH($(<)) += $(BCC_TOOL_PATH) ;
with-command-file borland-Link-action $(<) : $(>) $(NEEDLIBS) ;
if $(3) in $(SHARED_TYPES)
{
borland-IMPLIB-action $(<) : $(>) ;
}
}
# bcc32 needs to have ilink32 in the path in order to invoke it, so explicitly
# specifying $(BCC_TOOL_PATH)bcc32 doesn't help. You need to add
# $(BCC_TOOL_PATH) to the path
if $(NT)
{
actions borland-Link-action
{
set "PATH=$(BCC_TOOL_PATH);%PATH%"
"$(BCC_TOOL_PATH)bcc32" -v -q $(LINKFLAGS) -L"$(LIBPATH)" -L"$(STDLIBPATH)" -e"$(<[1])" @"$(>)" $(FINDLIBS:S=.lib)
}
}
else
{
actions borland-Link-action
{
export PATH=$(BCC_TOOL_PATH):$PATH
"$(BCC_TOOL_PATH)bcc32" -v -q $(LINKFLAGS) -L"$(LIBPATH)" -L"$(STDLIBPATH)" -e"$(<[1])" @"$(>)" $(FINDLIBS:S=.lib)
}
}
actions borland-IMPLIB-action bind IMPLIB
{
$(BCC_TOOL_PATH)implib $(<[2]) $(<[1])
}
#### Cc #####
rule Cc-action
{
borland-Cc-action $(<) : $(>) ;
}
actions borland-Cc-action
{
"$(BCC_TOOL_PATH)bcc32" -j5 -g255 -q -c -w -a8 -b- -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" -o"$(<)" "$(>)"
}
#### C++ ####
rule C++-action
{
borland-C++-action $(<) : $(>) ;
}
#
# for C++ compiles the following options are turned on by default:
#
# -j5 stops after 5 errors
# -g255 allow an unlimited number of warnings
# -q no banner
# -c compile to object
# -P C++ code regardless of file extention
# -w turns on all warnings
# -Ve zero sized empty base classes, this option is on in the IDE by default
# and effects binary compatibility.
# -Vx zero sized empty members, this option is on in the IDE by default
# and effects binary compatibility.
# -a8 8 byte alignment, this option is on in the IDE by default
# and effects binary compatibility.
#
actions borland-C++-action
{
"$(BCC_TOOL_PATH)bcc32" -j5 -g255 -q -c -P -w -Ve -Vx -a8 -b- -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" -o"$(<)" "$(>)"
}
if ! $(BORLAND_ARCHIVE_LINESEP)
{
if $(NT)
{
if [ W32_GETREG "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion" : CurrentVersion ]
{
BORLAND-ARCHIVE-LINESEP = " ^&" ;
}
}
BORLAND-ARCHIVE-LINESEP ?= " &" ;
}
#### Archive ####
rule Archive-action
{
with-command-file borland-Archive-action $(<) : $(>) : + $(BORLAND-ARCHIVE-LINESEP) ;
}
actions borland-Archive-action
{
IF EXIST "$(<)" DEL "$(<)"
"$(BCC_TOOL_PATH)tlib" /P64 /u /a /C /$(ARFLAGS) "$(<)" @"$(>)"
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,34 +0,0 @@
# (C) Copyright David Abrahams 2001.
# (C) Copyright MetaCommunications, Inc. 2003-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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://www.comeaucomputing.com/">Comeau<br>C++</a>
{
include-tools vc7 ;
C++FLAGS = ;
CFLAGS = ;
DEFINES = ;
UNDEFS = ;
HDRS = ;
STDHDRS = ;
LINKFLAGS = ;
ARFLAGS = ;
NO_WARN = ;
STDHDRS = ;
STDLIB_PATH = ;
LIBPATH = ;
NEEDLIBS = ;
FINDLIBS = ;
COMO_BASE = $(COMO_4_3_3_BASE) ;
extends-toolset como-win32 ;
C++FLAGS += -DBOOST_DISABLE_WIN32 --wchar_t ;
}

View File

@@ -1,18 +0,0 @@
# (C) Copyright MetaCommunications, Inc. 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://www.comeaucomputing.com/">Comeau<br>C++</a>
{
include-tools vc-7_1 ;
local COMO_BACKEND = "vc71" ;
local COMO_BACKEND_PATH = $(VC71_ROOT) ;
extends-toolset como-4_3_3-vc7 ;
}

View File

@@ -1,139 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1st September 2003), see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
<title>Boost.Build - como toolset</title>
</head>
<body bgcolor="#FFFFFF" 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="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<h2 align="center">como and como-win32 toolsets</h2>
</td>
</tr>
</table>
<hr>
<h2>Introduction</h2>
<p>Boost.Build's como and como-win32 toolsets support the <a href=
"http://www.comeaucomputing.com">Comeau Computing</a> C/C++ Compiler.</p>
<h2>Configuration Variables</h2>
<p>The como and como-win32 toolsets respond 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>:</p>
<table border="1" summary="settings">
<tr>
<th>Variable Name</th>
<th>Semantics</th>
<th>Default</th>
<th>Notes</th>
</tr>
<tr>
<td><code>COMO_PATH</code></td>
<td>Path to installation of compiler tools.</td>
<td>(none)</td>
<td>If not set tools must be available in the executable path.</td>
</tr>
<tr>
<td><code>COMO_BASE</code></td>
<td>Path to installation of compiler tools.</td>
<td><code>$(COMO_PATH)</code></td>
<td>This is a backward compatability alternate for COMO_PATH.</td>
</tr>
<tr>
<td><code>COMO_BIN_PATH</code></td>
<td>Path to bin directory of compiler excutables.</td>
<td><code>$(COMO_PATH)/bin/</code></td>
<td>&nbsp;</td>
</tr>
<tr>
<td><code>COMO_INCLUDE_PATH</code></td>
<td>Path to libcomo headers.</td>
<td><code>$(COMO_PATH)/libcomo</code></td>
<td><code>$(COMO_INCLUDE_PATH)/cnames</code> is automatically
added.</td>
</tr>
<tr>
<td><code>COMO_STDLIB_PATH</code></td>
<td>Path to built libcomo object.</td>
<td><code>$(COMO_PATH)/libcomo</code></td>
<td>&nbsp;</td>
</tr>
<tr>
<td><code>COMO_BACKEND</code></td>
<td>Backend abbreviation, e.g. <code>vc7</code>, <code>bcc</code>,
<code>dig</code>, etc.</td>
<td><code>vc7</code></td>
<td><code>como-win32</code> toolset only.</td>
</tr>
<tr>
<td><code>COMO_BACKEND_PATH</code></td>
<td>Path to backend compiler.</td>
<td><code>$(VC7_TOOLS)</code></td>
<td><code>como-win32</code> toolset only.</td>
</tr>
</table>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
31 July, 2004
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p>Copyright &copy; Dave Abrahams 2002.</p>
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</body>
</html>

View File

@@ -1,100 +0,0 @@
#~ Copyright 2001-2002 David Abrahams.
#~ Copyright 2002 Rene Rivera.
#~ Copyright 2002 Beman Dawes.
#~ Copyright 2003 Joel de Guzman.
#~ Copyright 2003 Jens Maurer.
#~ Copyright 2003 Matin Wille.
#~ 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://www.comeaucomputing.com/">Comeau<br>C++</a>
# variables used to configure como-tools.jam
#
# COMO_PATH - path to installation
# COMO - name of como executable
COMO_PATH ?= "" ;
COMO ?= $(COMO_PATH)/bin/como ;
flags como C++FLAGS <exception-handling>off : --no_exceptions ;
flags como C++FLAGS <exception-handling>on : --exceptions ;
flags como CFLAGS <inlining>off : --no_inlining ;
flags como CFLAGS <inlining>on <inlining>full : --inlining ;
flags como CFLAGS <optimization>off : -O0 ;
flags como CFLAGS <optimization>speed : -O3 ;
flags como CFLAGS <optimization>size : -Os ;
flags como CFLAGS <debug-symbols>on : -g ;
flags como LINKFLAGS <debug-symbols>on : -g ;
flags como FINDLIBS : m ;
flags como FINDLIBS : rt ;
flags como CFLAGS <cflags> ;
flags como C++FLAGS <cxxflags> ;
flags como DEFINES <define> ;
flags como UNDEFS <undef> ;
flags como HDRS <include> ;
flags como SYSHDRS <sysinclude> ;
flags como LINKFLAGS <linkflags> ;
flags como ARFLAGS <arflags> ;
flags como LIBPATH <library-path> ;
flags como NEEDLIBS <library-file> ;
flags como FINDLIBS <find-library> ;
#### Link ####
rule Link-action
{
como-Link-action $(<) : $(>) ;
}
# for como, we repeat all libraries so that dependencies are always resolved
actions como-Link-action bind NEEDLIBS
{
$(COMO) $(LINKFLAGS) -o "$(<[1])" "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l"$(FINDLIBS)"
}
#### Cc #####
rule Cc-action
{
como-Cc-action $(<) : $(>) ;
}
actions como-Cc-action
{
$(COMO) -c --c99 -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" -o "$(<)" "$(>)"
}
#### C++ ####
rule C++-action
{
como-C++-action $(<) : $(>) ;
}
actions como-C++-action
{
$(COMO) -tused -c -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" -o "$(<)" "$(>)"
}
#### Archive ####
rule Archive-action
{
como-Archive-action $(<) : $(>) ;
}
actions como-Archive-action
{
ar rcu $(<) $(>)
}

View File

@@ -1,160 +0,0 @@
# (C) Copyright David Abrahams 2001.
# (C) Copyright MetaCommunications, Inc. 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://www.comeaucomputing.com/">Comeau<br>C++</a>
# Feature to allow specifying files that will compile with warnings disabled.
# This is usefull for files that use windows headers.
free-feature no-warn ;
# variables used to configure como-tools.jam
#
# COMO_PATH - path to installation
# COMO_BIN_PATH - path to como executable, defaults to $(COMO_PATH)/bin/
# COMO_INCLUDE_PATH - path to libcomo headers, defaults to $(COMO_PATH)/libcomo
# COMO_STDLIB_PATH - path to built libcomo object, defaults to $(COMO_PATH)/libcomo
# COMO_BACKEND - backend abbreviation, e.g. "vc71", "bcc", "dig", etc. Defaults to "vc7"
# COMO_BACKEND_PATH - path to backend compiler root directory, defaults to $(VC7_ROOT)
# Keep using COMO_BASE for backward compatibility
set-as-singleton COMO_BASE COMO_PATH COMO_BIN_PATH COMO_INCLUDE_PATH COMO_STDLIB_PATH COMO_BACKEND COMO_BACKEND_PATH ;
COMO_BASE ?= $(COMO_PATH) ;
# compute directories for invoking como
if ! $(COMO_PATH_SETUP) # do this once
{
# Keep using COMO_BIN_DIRECTORY for backward compatibility.
COMO_BIN_DIRECTORY ?= $(COMO_BIN_PATH) ;
COMO_BIN_DIRECTORY ?= $(COMO_BASE)$(SLASH)bin$(SLASH) ;
COMO_BIN_DIRECTORY ?= "" ; # Don't clobber tool names if COMO_ROOT_DIRECTORY not
# set
COMO_INCLUDE_PATH ?= $(COMO_BASE)$(SLASH)libcomo ;
COMO_INCLUDE_PATH += $(COMO_INCLUDE_PATH)$(SLASH)cnames ;
COMO_STDLIB_PATH ?= $(COMO_BASE)$(SLASH)libcomo ;
COMO_BACKEND_SETUP = $(COMO_BACKEND_SETUP) ;
newline = "
" ;
COMO_BACKEND ?= "vc7" ;
COMO_BACKEND_PATH ?= $(VC7_ROOT) ;
COMO_BACKEND_INCLUDE_SETUP ?= "set \"COMO_MS_INCLUDE="$(COMO_BACKEND_PATH)"/include\"" ;
COMO_BACKEND_LIB_SETUP ?= "set \"LIB="$(COMO_STDLIB_PATH)";%LIB%\"" ;
COMO_PATH_SETUP ?= "set \"PATH="$(COMO_BIN_DIRECTORY)";%PATH%\"" ;
COMO_BACKEND_SETUP ?= "call "\"$(COMO_BACKEND_PATH)\\..\\Common7\\Tools\\vsvars32"\" >nul" ;
COMO_BASE_SETUP ?= "set \"COMO_BASE=$(COMO_BASE)\"" ;
COMO_PATH_SETUP ?= "" ;
COMO_CMD = \"$(COMO_BIN_DIRECTORY)como\" --$(COMO_BACKEND) ;
}
flags como-win32 C++FLAGS <exception-handling>off : --no_exceptions ;
flags como-win32 C++FLAGS <exception-handling>on : --exceptions ;
flags como-win32 CFLAGS <inlining>off : --no_inlining ;
flags como-win32 CFLAGS <inlining>on <inlining>full : --inlining ;
flags como-win32 CFLAGS <debug-symbols>on : /Zi ;
flags como-win32 CFLAGS <optimization>off : /Od ;
flags como-win32 CFLAGS <cflags> ;
flags como-win32 CFLAGS : -D_WIN32 ; # make sure that we get the Boost Win32 platform config header.
flags como-win32 CFLAGS <threading>single : -DBOOST_SP_DISABLE_THREADS ;
flags como-win32 CFLAGS <threading>multi : -D_MT ; # make sure that our config knows that threading is on.
flags como-win32 C++FLAGS <cxxflags> ;
flags como-win32 DEFINES <define> ;
flags como-win32 UNDEFS <undef> ;
flags como-win32 HDRS <include> ;
flags como-win32 SYSHDRS <sysinclude> ;
flags como-win32 LINKFLAGS <linkflags> ;
flags como-win32 ARFLAGS <arflags> ;
flags como-win32 NO_WARN <no-warn> ;
flags como-win32 STDHDRS : $(COMO_INCLUDE_PATH) ;
flags como-win32 STDLIB_PATH : $(COMO_STDLIB_PATH)$(SLASH) ;
flags como-win32 LIBPATH <library-path> ;
flags como-win32 NEEDLIBS <library-file> ;
flags como-win32 FINDLIBS <find-library> ;
#### Link ####
rule Link-action
{
with-command-file como-Link-action $(<) : $(>) ;
}
# for como, we repeat all libraries so that dependencies are always resolved
actions como-Link-action bind NEEDLIBS
{
$(COMO_BACKEND_SETUP)
$(COMO_BACKEND_INCLUDE_SETUP)
$(COMO_BACKEND_LIB_SETUP)
$(COMO_PATH_SETUP)
$(COMO_BASE_SETUP)
$(COMO_CMD) --no_version --no_prelink_verbose $(LINKFLAGS) -o "$(<[1]:S=)" @"$(>)" "$(NEEDLIBS)" "$(FINDLIBS:S=.lib)"
}
#### Cc #####
rule Cc-action
{
if $(>:G=:D=) in $(NO_WARN) { WARN on $(<) = "" ; }
else { WARN on $(<) = --a -DBOOST_COMO_STRICT=1 ; }
como-Cc-action $(<) : $(>) ;
}
actions como-Cc-action
{
$(COMO_BACKEND_SETUP)
$(COMO_BACKEND_INCLUDE_SETUP)
$(COMO_BACKEND_LIB_SETUP)
$(COMO_PATH_SETUP)
$(COMO_BASE_SETUP)
$(COMO_CMD) -c --c99 -e5 --no_version --display_error_number --diag_suppress=9,21,161,748,940,962 -U$(UNDEFS) -D$(DEFINES) $(WARN) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" -o "$(<:D=)" "$(>)"
}
#### C++ ####
rule C++-action
{
if $(>:G=:D=) in $(NO_WARN) { WARN on $(<) = "" ; }
else { WARN on $(<) = --a -DBOOST_COMO_STRICT=1 ; }
como-C++-action $(<) : $(>) ;
}
actions como-C++-action
{
$(COMO_BACKEND_SETUP)
$(COMO_BACKEND_INCLUDE_SETUP)
$(COMO_BACKEND_LIB_SETUP)
$(COMO_PATH_SETUP)
$(COMO_BASE_SETUP)
$(COMO_CMD) -c -e5 --no_version --no_prelink_verbose --display_error_number --long_long --diag_suppress=9,21,161,748,940,962 -D__STL_LONG_LONG -U$(UNDEFS) -D$(DEFINES) $(WARN) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" -o "$(<)" "$(>)"
}
#### Archive ####
rule Archive-action
{
with-command-file como-Archive-action $(<) : $(>) ;
}
actions updated together piecemeal como-Archive-action
{
$(COMO_BACKEND_SETUP)
$(COMO_BACKEND_INCLUDE_SETUP)
$(COMO_BACKEND_LIB_SETUP)
$(COMO_PATH_SETUP)
$(COMO_BASE_SETUP)
$(COMO_CMD) --no_version --no_prelink_verbose --prelink_object @"$(>)"
lib $(ARFLAGS) /nologo /out:"$(<:S=.lib)" @"$(>)"
}

View File

@@ -1,12 +0,0 @@
#~ Copyright 2004 Rene Rivera.
#~ 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://www.metrowerks.com/MW/Develop/Desktop/default.htm">Metrowerks<br>CodeWarrior</a>
{
local CW_VERSION = 8.0 ;
extends-toolset cw ;
}

View File

@@ -1,12 +0,0 @@
#~ Copyright 2004 Rene Rivera.
#~ 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://www.metrowerks.com/MW/Develop/Desktop/default.htm">Metrowerks<br>CodeWarrior</a>
{
local CW_VERSION = 9.0 ;
extends-toolset cw ;
}

View File

@@ -1,12 +0,0 @@
#~ Copyright 2004 Rene Rivera.
#~ 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://www.metrowerks.com/MW/Develop/Desktop/default.htm">Metrowerks<br>CodeWarrior</a>
{
local CW_VERSION = 9.0 ;
extends-toolset cw ;
}

View File

@@ -1,12 +0,0 @@
#~ Copyright 2004 Rene Rivera.
#~ 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://www.metrowerks.com/MW/Develop/Desktop/default.htm">Metrowerks<br>CodeWarrior</a>
{
local CW_VERSION = 9.0 ;
extends-toolset cw ;
}

View File

@@ -1,88 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1st September 2003), see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
<title>Boost.Build - cw 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="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<h2 align="center">cw toolset</h2>
</td>
</tr>
</table>
<hr>
<h2>Introduction</h2>
<p>Boost.Build's cw toolset supports the <a href=
"http://www.metrowerks.com">Metrowerks CodeWarrior</a> Pro 6.x, 7.x, 8.x
and 9.x tools. This toolsets handles allteh variations for the CodeWarrior
command line compiler tools.</p>
<h2>Configuration Variables</h2>The cw 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>:
<table border="1" summary="settings">
<tr>
<th>Variable Name</th>
<th>Semantics</th>
<th>Default</th>
<th>Notes</th>
</tr>
<tr>
<td><code>CW_ROOT</code></td>
<td>Path to installation of Metrowerks Codewarrior.</td>
<td><i>empty</i></td>
<td rowspan="2">The toolset attempts to figure out what the version and
root of the tools are by looking at the environment and at the registry
(on Windows). If nothing is given the newest available toolset is
used.</td>
</tr>
<tr>
<td><code>CW_VERSION</code></td>
<td>Version to use. Valid values are: 6.0, 7.0, 8.0, 9.0.</td>
<td><i>empty</i></td>
</tr>
</table>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
23 February, 2004
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p>Copyright Rene Rivera 2004.</p>
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</body>
</html>

View File

@@ -1,377 +0,0 @@
#~ Copyright 2004-2005 Rene Rivera.
#~ 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://www.metrowerks.com/MW/Develop/Desktop/default.htm">Metrowerks<br>CodeWarrior</a>
# For adding framwork libraries; like <framework>Python, <framework>Carbon, etc.
free-feature framework ;
# singleton variables...
set-as-singleton CW_ROOT CWFOLDER CWFolder CWINSTALL ;
flags cw cw-version : $(CW_VERSION) ;
flags cw cw-root : $(CW_ROOT) ;
cw-root ?= $(CWFolder) ;
cw-root ?= $(CWFOLDER) ;
if $(NT)
{
for local v in 9.0 8.0 7.0 6.0
{
cw-root-$(v) ?= [ W32_GETREG "HKEY_LOCAL_MACHINE\\SOFTWARE\\Metrowerks\\CodeWarrior for Windows\\$(v)" : "PATH" ] ;
cw-version ?= [ conditional $(cw-root-$(v)) : $(v) ] ;
}
}
cw-root ?= $(cw-root-$(cw-version)) ;
flags cw CFLAGS <cflags> ;
flags cw C++FLAGS <cxxflags> ;
flags cw DEFINES <define> ;
flags cw UNDEFS <undef> ;
flags cw HDRS <include> ;
flags cw SYSHDRS <sysinclude> ;
flags cw LINKFLAGS <linkflags> ;
flags cw ARFLAGS <arflags> ;
flags cw LIBPATH <library-path> ;
flags cw NEEDLIBS <library-file> ;
flags cw FINDLIBS <find-library> ;
flags cw PREFIX <prefix> ;
if $(OS) = MACOSX
{
flags cw FRAMEWORKS <framework> ;
}
flags cw cw-errors <errors> ;
flags cw cw-warnings <warnings> ;
# Debug information
flags cw CFLAGS <debug-symbols>on : -g ;
flags cw LINKFLAGS <debug-symbols>on : -g ;
# Optimizations
flags cw CFLAGS <optimization>off : -O0 ;
flags cw CFLAGS <optimization>speed : -opt full ;
flags cw CFLAGS <optimization>space : -O4,s "-opt intrinsics" ;
flags cw CFLAGS <inlining>off : -inline off ;
flags cw CFLAGS <inlining>on : -inline on ;
flags cw CFLAGS <inlining>full : -inline auto -inline level=8 ;
# Target type
flags cw LINKFLAGS <target-type>$(SHARED_TYPES) : -shared ;
if $(NT)
{
flags cw LINKFLAGS <target-type>$(SHARED_TYPES) : "-export dllexport" ;
}
# Some language related options
flags cw CFLAGS <eh-model>msvc : -exc ms ;
flags cw CFLAGS <include-search>directory : "-cwd proj" ;
flags cw CFLAGS <include-search>source : "-cwd source" ;
flags cw CFLAGS <include-search>paths : "-cwd explicit" ;
flags cw CFLAGS <include-search>relative : "-cwd include" ;
flags cw C++FLAGS <rtti>off : "-RTTI off" ;
flags cw C++FLAGS <rtti>on : "-RTTI on" ;
# CodeWarrior on MacOS defaults to wchar_t support off, contrary
# to what it does on Windows. So "fix" this discrepancy. Don't
# bother with OS type just set this to on for all. After all it's
# standard!
flags cw CFLAGS : "-wchar_t on" ;
# OS subsystem target
if $(NT)
{
flags cw LINKFLAGS <user-interface>console : "-subsystem console" ;
flags cw LINKFLAGS <user-interface>gui : "-subsystem windows" ;
flags cw LINKFLAGS <user-interface>wince : "-subsystem wince" ;
flags cw LINKFLAGS <user-interface>native : "-subsystem native" ;
flags cw LINKFLAGS <user-interface>auto : "-subsystem auto" ;
}
# Errors, default to maximum 5 errors
flags cw FLAGS : [ conditional $(cw-errors) : "-maxerrors $(cw-errors[1])" : "-maxerrors 5" ] ;
# Warnings, default to maximum 20 warnings
if off in $(cw-warnings)
{
flags cw FLAGS : "-warnings off" ;
}
else if error in $(cw-warnings)
{
flags cw FLAGS : "-warnings error" ;
}
else
{
flags cw FLAGS : "-warnings on" ;
}
if ! ( off in $(cw-warnings) )
{
if [ MATCH "^([0-9]+)" : $(cw-warnings) ]
{
local cw-maxwarnings = [ MATCH "^([0-9]+)" : $(cw-warnings) ] ;
cw-warnings = [ difference $(cw-warnings) : $(cw-maxwarnings) ] ;
flags cw FLAGS : "-maxwarnings $(cw-maxwarnings[1])" ;
}
else
{
flags cw FLAGS : "-maxwarnings 20" ;
}
}
cw-warnings = [ difference $(cw-warnings) : on off error ] ;
if $(cw-warnings)
{
flags cw CFLAGS <warnings>no-illegal-pragmas : "-warnings nopragmas" ;
flags cw CFLAGS <warnings>illegal-pragmas : "-warnings pragmas" ;
flags cw CFLAGS <warnings>no-empty-declarations : "-warnings noempty" ;
flags cw CFLAGS <warnings>empty-declarations : "-warnings empty" ;
flags cw CFLAGS <warnings>no-empty-declarations : "-warnings noempty" ;
flags cw CFLAGS <warnings>empty-declarations : "-warnings empty" ;
flags cw CFLAGS <warnings>no-unwanted-effect : "-warnings nounwanted" ;
flags cw CFLAGS <warnings>unwanted-effect : "-warnings unwanted" ;
flags cw CFLAGS <warnings>no-unused-arg : "-warnings nounusedarg" ;
flags cw CFLAGS <warnings>unused-arg : "-warnings unsedarg" ;
flags cw CFLAGS <warnings>no-unused-var : "-warnings nounusedvar" ;
flags cw CFLAGS <warnings>unused-var : "-warnings unsedvar" ;
flags cw CFLAGS <warnings>no-extra-comma : "-warnings nocomma" ;
flags cw CFLAGS <warnings>extra-comma : "-warnings comma" ;
flags cw CFLAGS <warnings>no-pedantic : "-warnings nopedantic" ;
flags cw CFLAGS <warnings>pedantic : "-warnings pedantic" ;
flags cw CFLAGS <warnings>no-hidden-virtual : "-warnings nohidden" ;
flags cw CFLAGS <warnings>hidden-virtual : "-warnings hidden" ;
flags cw CFLAGS <warnings>no-implicit-convert : "-warnings noimplicit" ;
flags cw CFLAGS <warnings>implicit-convert : "-warnings implicit" ;
flags cw CFLAGS <warnings>no-not-inlined : "-warnings nonotinlined" ;
flags cw CFLAGS <warnings>not-inlined : "-warnings notinlined" ;
flags cw CFLAGS <warnings>no-inconsistent-class : "-warnings nostructclass" ;
flags cw CFLAGS <warnings>inconsistent-class : "-warnings structclass" ;
if $(NT)
{
flags cw CFLAGS <warnings>no-unused-expresssion : "-warnings nounusedexpr" ;
flags cw CFLAGS <warnings>unused-expresssion : "-warnings unsedexpr" ;
flags cw CFLAGS <warnings>no-structure-pad : "-warnings nopadding" ;
flags cw CFLAGS <warnings>structure-pad : "-warnings padding" ;
flags cw CFLAGS <warnings>no-unused-return : "-warnings nonotused" ;
flags cw CFLAGS <warnings>unused-return : "-warnings notused" ;
flags cw CFLAGS <warnings>no-pointer-conversion : "-warnings noptrintconv" ;
flags cw CFLAGS <warnings>pointer-conversion : "-warnings ptrintconv" ;
}
}
else
{
if $(NT)
{
flags cw CFLAGS : "-warnings nounusedexpr,nounused" ;
}
else
{
flags cw CFLAGS : "-warnings nounused" ;
}
}
# Search for files in search paths
flags cw LINKFLAGS : -search ;
flags cw ARFLAGS : -search ;
# Version specific options
if $(cw-version) in 8.0 9.0
{
# Use latest ISO conforming templates
flags cw C++FLAGS : -iso_templates on ;
if $(NT)
{
# The runtime libraries
flags cw CFLAGS <runtime-link>static/<threading>single/<runtime-build>release : -runtime ss ;
flags cw CFLAGS <runtime-link>static/<threading>single/<runtime-build>debug : -runtime ssd ;
flags cw CFLAGS <runtime-link>static/<threading>multi/<runtime-build>release : -runtime sm ;
flags cw CFLAGS <runtime-link>static/<threading>multi/<runtime-build>debug : -runtime smd ;
flags cw CFLAGS <runtime-link>dynamic/<runtime-build>release : -runtime dm ;
flags cw CFLAGS <runtime-link>dynamic/<runtime-build>debug : -runtime dmd ;
}
}
if $(NT) && $(cw-version) in 6.0 7.0 8.0
{
flags cw PREFIX <user-interface>console/<runtime-link>dynamic : UseDLLPrefix.h ;
}
if $(NT) && $(cw-version) in 7.0
{
# The runtime libraries
flags cw STDLIBS <runtime-link>static/<runtime-build>release :
MSL_C_x86.lib MSL_Runtime_x86.lib msl_c++_x86.lib gdi32.lib user32.lib kernel32.lib ;
flags cw STDLIBS <runtime-link>dynamic/<runtime-build>release :
MSL_All-DLL_x86.lib gdi32.lib user32.lib kernel32.lib ;
flags cw STDLIBS <runtime-link>static/<runtime-build>debug :
MSL_C_x86_D.lib MSL_Runtime_x86_D.lib msl_c++_x86_D.lib gdi32.lib user32.lib kernel32.lib ;
flags cw STDLIBS <runtime-link>dynamic/<runtime-build>debug :
MSL_All-DLL_x86_D.lib gdi32.lib user32.lib kernel32.lib ;
}
if $(NT) && $(cw-version) in 6.0
{
# The runtime libraries
flags cw STDLIBS <runtime-link>static :
ansicx86.lib mwcrtl.lib ansicppx86.lib gdi32.lib user32.lib kernel32.lib ;
flags cw STDLIBS <runtime-link>dynamic :
mwcrtldll.lib gdi32.lib user32.lib kernel32.lib ;
}
# The paths to system and runtime libraries
if $(NT)
{
flags cw CW_SETUP : "call \"$(cw-root)\\Other Metrowerks Tools\\Command Line Tools\\cwenv.bat\" -quiet" ;
# This is needed after the setup because the CW-9 setup erronously sets the
# ERRORLEVEL pseudo-var directly overriding the real value. The aregument is
# quoted to prevent the value from getting set to " " because bjam insertes
# extra spaces at the end of action commands.
flags cw CW_CLEAR_ERROR : "set \"ERRORLEVEL=\"" ;
flags cw CW_LINK_SETUP : "set MWWinx86LibraryFiles=" ;
flags cw CW_IMPLIB_COMMAND : "-implib " ;
flags cw CW_RUN_PATH :
"$(cw-root)\\Win32-x86 Support\\Libraries\\Runtime"
"$(cw-root)\\Win32-x86 Support\\Libraries\\Runtime\\Libs\\MSL_All-DLLs" ;
flags cw STDLIBPATH : "$(cw-root)\\Win32-x86 Support\\Libraries\\Win32 SDK" ;
flags cw STDLIBPATH <runtime-link>static : "$(cw-root)\\Win32-x86 Support\\Libraries\\Runtime\\Libs" ;
flags cw STDLIBPATH <runtime-link>dynamic : "$(cw-root)\\Win32-x86 Support\\Libraries\\Runtime\\Libs\\MSL_All-DLLs" ;
}
# Don't wrap tool messages, they just confuse everyone :-)
flags cw FLAGS : -nowraplines ;
flags cw CW_PREFIX : "-prefix " ;
# CodeWarrior has it's own set of standard headers, so ignore the default.
flags cw STDHDRS : ;
# MacOSX.. only the MSL/Carbon/Mach-O combination is working.
if $(OS) = MACOSX
{
# We use the compiler for both compiles and link, because we may need
# to compile the console stubs source. The compiler passes all options
# down to the linker anyway.
flags cw MWCC : mwcc ;
flags cw MWLD : mwcc ;
# For Carbon we need this prefix file to tell CW that's what we are targetting.
flags cw PREFIX : MSLCarbonPrefix.h ;
# We need to add the framework, as it's not added automatically.
flags cw FRAMEWORKS : Carbon ;
# For comsole apps we need to compile in the MSL functions that will
# talk to the MacOSX console.
flags cw LINKFLAGS <user-interface>console :
"-prefix MSLCarbonPrefix.h"
"\"$(CWINSTALL)/MSL/MSL_C/MSL_MacOS/Src/console_OS_X.c\"" ;
}
if $(NT)
{
flags cw MWCC : mwcc ;
flags cw MWLD : mwld ;
}
#~ flags cw CFLAGS : -verbose ;
#~ flags cw LINKFLAGS : -verbose ;
#### Link ####
rule Link-action
{
_ on $(<) = " " ;
gRUN_PATH($(<)) += $(CW_RUN_PATH) ;
if $(NT)
{
# We can't have the mixture of the same libs going in NEEDLIBS and FINDLIBS.
# So remove the extras from FINDLIBS.
local find-libs =
[ difference
[ on $(<[1]) return $(FINDLIBS) ] :
$(gTARGET_BASENAME($(gTARGET_SUBVARIANT($(NEEDLIBS))))) ] ;
FINDLIBS on $(<) = $(find-libs)$(SUFLIB) ;
CMD on $(<) = "@" ;
with-command-file cw-Link-action $(<) : $(>) $(NEEDLIBS) $(NEEDIMPS) ;
}
else if $(OS) = MACOSX
{
local find-libs = [ on $(<[1]) return $(FINDLIBS) ] ;
FINDLIBS on $(<) = -l$(find-libs) ;
CMD on $(<) = "" ;
cw-Link-action $(<) : $(>) $(NEEDLIBS) $(NEEDIMPS) ;
}
}
actions cw-Link-action
{
$(CW_SETUP)
$(CW_CLEAR_ERROR)
$(CW_LINK_SETUP)$(STDLIBS:J=;)
$(MWLD) $(FLAGS) $(LINKFLAGS) "-L$(LIBPATH)" "-L$(STDLIBPATH)" -framework$(_)"$(FRAMEWORKS)" $(CW_IMPLIB_COMMAND)"$(<[2])" -o "$(<[1])" $(CMD)"$(>)" "$(FINDLIBS)"
}
#### Cc #####
rule Cc-action
{
_ on $(<) = " " ;
cw-Cc-action $(<) : $(>) ;
}
actions cw-Cc-action
{
$(CW_SETUP)
$(CW_CLEAR_ERROR)
$(MWCC) -c -lang c -U$(UNDEFS) -D$(DEFINES) $(FLAGS) $(CFLAGS) "-I$(HDRS)" -I-$(_)"-I$(STDHDRS)" -I-$(_)"-I$(SYSHDRS)" $(CW_PREFIX)"$(PREFIX)" -o "$(<)" "$(>)"
}
#### C++ ####
rule C++-action
{
_ on $(<) = " " ;
cw-C++-action $(<) : $(>) ;
}
actions cw-C++-action
{
$(CW_SETUP)
$(CW_CLEAR_ERROR)
$(MWCC) -c -lang c++ -U$(UNDEFS) -D$(DEFINES) $(FLAGS) $(CFLAGS) $(C++FLAGS) "-I$(HDRS)" -I-$(_)"-I$(STDHDRS)" -I-$(_)"-I$(SYSHDRS)" $(CW_PREFIX)"$(PREFIX)" -o "$(<)" "$(>)"
}
#### Archive ####
rule Archive-action
{
_ on $(<) = " " ;
if $(NT)
{
local find-libs = [ on $(<[1]) return $(FINDLIBS) ] ;
FINDLIBS on $(<) = $(find-libs)$(SUFLIB) ;
CMD on $(<) = "@" ;
with-command-file cw-Archive-action $(<) : $(>) [ on $(<) return $(NEEDLIBS) ] ;
}
else if $(OS) = MACOSX
{
local find-libs = [ on $(<[1]) return $(FINDLIBS) ] ;
FINDLIBS on $(<) = -l$(find-libs) ;
CMD on $(<) = "" ;
cw-Archive-action $(<) : $(>) [ on $(<) return $(NEEDLIBS) ] ;
}
}
## CW in general doesn't produce archive that ranlib is intereted in. So
## don't run ranlib.
rule Ranlib-action
{
}
actions together cw-Archive-action
{
$(CW_SETUP)
$(CW_CLEAR_ERROR)
$(MWLD) -library $(FLAGS) $(ARFLAGS) "-L$(LIBPATH)" "-L$(STDLIBPATH)" -o "$(<)" $(CMD)"$(>)" "$(FINDLIBS)"
}

View File

@@ -1,97 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1st September 2003), see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
<title>Boost.Build - darwin 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="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<h2 align="center">darwin toolset</h2>
</td>
</tr>
</table>
<hr>
<h2>Introduction</h2>
<p>Boost.Build's darwin toolset supports the Apple modified GNU <a href=
"http://developer.apple.com/tools/compilers.html">GCC</a> command-line
tools. Although the underlying tools are GCC this toolset is specifically
tailored to account for the various "features" that Apple implemented to
work in the Darwin OS Mach kernel.</p>
<h2><a name="configuration" id="configuration">Configuration
Variables</a></h2>Because of the already specific nature of this toolset
there are no additional configuration variables.
<h2><a name="features" id="features">Toolset-Specific Features</a></h2>The
following <code>darwin</code>-specific <a href=
"build_system.htm#features">features</a> can be used in target build
requirements or in the <a href=
"build_system.htm#initiating"><code>BUILD</code></a> variable:
<table border="1" summary="Toolset-Specific Features">
<tr>
<th>Feature</th>
<th>Values</th>
<th>Default</th>
<th>Semantics</th>
</tr>
<tr>
<td><code>framework</code></td>
<td>(free feature)</td>
<td>N/A</td>
<td>Adds application "Frameworks" to use for linking.</td>
</tr>
<tr>
<td><code>bundle-loader</code></td>
<td>(free feature)</td>
<td>N/A</td>
<td>Specifies the path to the application that will be loading this
"bundle". When this is specified, and building a DLL target, a "bundle"
version of the target is built instead of the regular shared library
version.</td>
</tr>
</table>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
16 November, 2002
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p>Copyright &copy; Dave Abrahams 2002.</p>
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</body>
</html>

View File

@@ -1,230 +0,0 @@
# (C) Copyright Rene Rivera, 2002-2003.
# 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://gcc.gnu.org/">GNU<br>GCC</a>
# For adding framwork libraries; like <framework>Python, <framework>Carbon, etc.
free-feature framework ;
# Specify the loader for bundles.
free-feature bundle-loader ;
# Controll generation of compiler warnings.
feature warnings : on off ;
# Type of shared object to create.
free-feature link-format ;
# compute directories for invoking GCC
#
# The gcc toolset can be user-configured using the following
# variables:
#
# GCC_ROOT_DIRECTORY
# The directory in which GCC was installed. Defaults to
# unset. Usually, there is no need to set this variable at
# all. However, if G++ is not in the path it is usually
# sufficient to configure this one variable. More fine-grained
# configuration is available by setting the following:
#
# GCC_BIN_DIRECTORY
# the directory prefix used to find the gcc executables. Defaults to
# $(GCC_ROOT_DIRECTORY)/bin/, or "" if GCC_ROOT_DIRECTORY is
# not set.
#
# GCC_INCLUDE_DIRECTORY
# the directory in which to find system includes. Defaults to
# empty.
#
# GCC_STDLIB_DIRECTORY
# the directory in which to find the standard library
# objects associated with this build of gcc. Defaults to
# $(GCC_ROOT_DIRECTORY)/lib.
#
# GXX
# The name by which g++ is invoked. You can also use this in
# lieu of setting the <cxxflags> property to force options such
# as "-V3.0.4" into the g++ command line: "-sGXX=g++ -V3.0.4".
#
# GCC
# Similar to GXX, the name by which gcc is invoked for "C"
# language targets.
# singleton variables...
set-as-singleton GCC_ROOT_DIRECTORY GCC_BIN_DIRECTORY GCC_INCLUDE_DIRECTORY GCC_STDLIB_DIRECTORY ;
flags darwin GCC_BIN_DIRECTORY : $(GCC_BIN_DIRECTORY) ;
flags darwin GCC_INCLUDE_DIRECTORY : $(GCC_INCLUDE_DIRECTORY) ;
flags darwin GCC_STDLIB_DIRECTORY : $(GCC_STDLIB_DIRECTORY) ;
if ! $(GCC_BIN_DIRECTORY) { flags darwin GCC_BIN_DIRECTORY : $(GCC_ROOT_DIRECTORY)/bin/ ; }
if ! $(GCC_BIN_DIRECTORY) { flags darwin GCC_BIN_DIRECTORY : "" ; }
if ! $(GCC_STDLIB_DIRECTORY) { flags darwin GCC_STDLIB_DIRECTORY : $(GCC_ROOT_DIRECTORY)/lib ; }
flags darwin .GCC_BIN_DIR : $(GCC_BIN_DIRECTORY) ;
flags darwin .GXX : $(GXX) ;
flags darwin .GCC : $(GCC) ;
if ! $(.GXX) && $(GCC_ROOT_DIRECTORY) { flags darwin .GXX : g++ ; }
if ! $(.GXX) { flags darwin .GXX : c++ ; }
if ! $(.GCC) && $(GCC_ROOT_DIRECTORY) { flags darwin .GCC : gcc ; }
if ! $(.GCC) { flags darwin .GCC : cc ; }
flags darwin CFLAGS <cflags> ;
flags darwin C++FLAGS <cxxflags> ;
flags darwin DEFINES <define> ;
flags darwin UNDEFS <undef> ;
flags darwin HDRS <include> ;
flags darwin SYSHDRS <sysinclude> ;
flags darwin LIBPATH <library-path> ;
flags darwin NEEDLIBS <library-file> ;
flags darwin FINDLIBS <find-library> ;
flags darwin ARFLAGS <arflags> ;
flags darwin TARGET_TYPE <target-type> ;
flags darwin FRAMEWORKS <framework> ;
flags darwin DLLVERSION <dllversion> ;
flags darwin DLLVERSION : $(DLLVERSION[1]) ;
flags darwin BUNDLE_LOADER <bundle-loader> ;
flags darwin ARFLAGS ;
if ! $(ARFLAGS) { flags darwin ARFLAGS : "" ; }
if ! $(DLLVERSION) { flags darwin DLLVERSION : $(BOOST_VERSION) ; }
if ! [ MATCH "(gcc)" : $(.GCC) ]
{
flags darwin CFLAGS : -Wno-long-double -no-cpp-precomp ;
}
# GCC 4.0, the default compiler in Darwin 8.0.0, does not have
# -fcoalesce-templates. GCC 3.3 needs it.
if ! [ MATCH "(g[+][+])" : $(.GXX) ] && $(JAMUNAME[3]) < "8.0.0" ||
[ MATCH "(g[+][+]-3.3)" : $(.GXX) ]
{
flags darwin C++FLAGS : -fcoalesce-templates ;
}
flags darwin LINKFLAGS <runtime-link>static : -static-libgcc ;
flags darwin CFLAGS <debug-symbols>on : -g ;
flags darwin LINKFLAGS <debug-symbols>on : -g ;
flags darwin LINKFLAGS <debug-symbols>off : -Wl,-x ;
flags darwin CFLAGS <optimization>off : -O0 ;
flags darwin CFLAGS <optimization>speed : -O3 ;
flags darwin CFLAGS <optimization>space : -Os ;
flags darwin CFLAGS <inlining>off : -fno-inline ;
flags darwin CFLAGS <inlining>on : -Wno-inline ;
flags darwin CFLAGS <inlining>full : -finline-functions -Wno-inline ;
flags darwin CFLAGS <profiling>on : -pg ;
flags darwin LINKFLAGS <profiling>on : -pg ;
flags darwin C++FLAGS <rtti>off : -fno-rtti ;
flags darwin C++FLAGS <vtable-thunks>on : -fvtable-thunks ;
flags darwin C++FLAGS <vtable-thunks>off : -fvtable-thunks=0 ;
flags darwin CFLAGS <shared-linkable>true : -fPIC ;
flags darwin CFLAGS <warnings>on : -Wall ;
flags darwin CFLAGS <warnings>off : -w ;
flags darwin LINK_FORMAT <target-type>$(SHARED_TYPES)/<link-format>bundle : bundle ;
flags darwin LINK_FORMAT <target-type>$(SHARED_TYPES)/<link-format>dynamic : dynamic ;
if $(BUNDLE_LOADER) && ! $(LINK_FORMAT)
{
flags darwin LINK_FORMAT <target-type>$(SHARED_TYPES) : bundle ;
}
if $(LINK_FORMAT) = bundle
{
flags darwin LINKFLAGS <target-type>$(SHARED_TYPES) :
-bundle ;
}
else
{
# flags darwin LINKFLAGS <target-type>$(SHARED_TYPES) :
# -Wl,-dynamic -nostartfiles -Wl,-dylib -Wl,-ldylib1.o ;
}
flags darwin .LINKFLAGS <linkflags> ;
flags darwin DLLFLAGS : ;
if -bind_at_load in $(.LINKFLAGS)
{
flags darwin DLLFLAGS <target-type>$(SHARED_TYPES) : -bind_at_load ;
.LINKFLAGS = [ difference $(.LINKFLAGS) : -bind_at_load ] ;
}
flags darwin LINKFLAGS : $(.LINKFLAGS) ;
#### Link ####
rule Link-action
{
_ on $(<) = " " ;
DEPENDS $(<) : $(NEEDLIBS) $(NEEDIMPS) ;
if $(TARGET_TYPE) in $(SHARED_TYPES) && $(LINK_FORMAT) != bundle
{
#~ LINKFLAGS on $(<) +=
#~ "-Wl,-dylib_compatibility_version,$(DLLVERSION) -W,l-dylib_current_version,$(DLLVERSION)" ;
darwin-Link-DyLib-action $(<) : $(>) ;
}
else
{
darwin-Link-action $(<) : $(>) ;
}
}
actions darwin-Link-action bind NEEDLIBS NEEDIMPS
{
$(SHELL_SET)$(gSHELL_LIBPATH)=$(LINK_LIBPATH)
$(SHELL_EXPORT)$(gSHELL_LIBPATH)
$(.GCC_BIN_DIR)$(.GXX) $(LINKFLAGS) -o "$(<[1])" "$(>)" \
-F$(FRAMEWORKS:D) -framework$(_)$(FRAMEWORKS:D=) \
-L"$(LIBPATH:T)" -L"$(STDLIBPATH:T)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) \
-bundle_loader$(_)"$(BUNDLE_LOADER)" "$(BUNDLE_LOADER)"
}
actions darwin-Link-DyLib-action bind NEEDLIBS NEEDIMPS
{
$(SHELL_SET)$(gSHELL_LIBPATH)=$(LINK_LIBPATH)
$(SHELL_EXPORT)$(gSHELL_LIBPATH)
ld -dynamic -m -r -d $(DLLFLAGS) -o "$(<[1]:S=.lo)" "$(>)" \
&& \
$(.GCC_BIN_DIR)$(.GXX) $(LINKFLAGS) -o "$(<[1])" "$(<[1]:S=.lo)" \
-F$(FRAMEWORKS:D) -framework$(_)$(FRAMEWORKS:D=) \
-L"$(LIBPATH:T)" -L"$(STDLIBPATH:T)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) -dynamiclib -install_name "$(<[1]:D=:S=.dylib)" \
&& \
rm -f "$(<[1]:S=.lo)"
}
#### Cc #####
rule Cc-action
{
_ on $(<) = " " ;
darwin-Cc-action $(<) : $(>) ;
}
actions darwin-Cc-action
{
$(.GCC_BIN_DIR)$(.GCC) -c -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -F$(FRAMEWORKS:D) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" -o "$(<)" "$(>)"
}
#### C++ ####
rule C++-action
{
_ on $(<) = " " ;
darwin-C++-action $(<) : $(>) ;
}
actions darwin-C++-action
{
$(.GCC_BIN_DIR)$(.GXX) -c -ftemplate-depth-256 -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -F$(FRAMEWORKS:D) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" -o "$(<)" "$(>)"
}
#### Archive ####
rule Archive-action
{
darwin-Archive-action $(<) : $(>) ;
}
actions updated together piecemeal darwin-Archive-action
{
ar -r -s $(ARFLAGS) "$(<:T)" "$(>:T)"
}

View File

@@ -1,178 +0,0 @@
# Copyright 2002 Rene Rivera
# 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)
##
## Distribution module, contains rules for management of distributions.
## Like management of version headers, packaging, etc.
## All the rules here operate on a set of global target all of which
## start with "dist", are NOTFILES, and can only be built from the
## top-level.
##
# Add the version information for the given 'name' component, to the
# given target header. Instructions are generated to construct a C header file
# with the version information specified by 'target'.
#
# EXAMPLE:
#
# SEARCH on <module@>distribution.jam = $(BOOST_BUILD_PATH) ;
# module distribution { include <module@>distribution.jam ; }
#
# distribution.version-header boost/version.hpp
# : Boost 1.27
# "// boost version.hpp header file -------------------------------------------//"
# ""
# "// (C) Copyright boost.org 1999. Permission to copy, use, modify, sell"
# "// and distribute this software is granted provided this copyright"
# "// notice appears in all copies. This software is provided \"as is\" without"
# "// express or implied warranty, and with no claim as to its suitability for"
# "// any purpose."
# ""
# "// See http://www.boost.org for most recent version including documentation."
# ;
#
# PRODUCES:
#
# [boost/version.hpp]
#
# // boost version.hpp header file -------------------------------------------//
#
# // (C) Copyright boost.org 1999. Permission to copy, use, modify, sell
# // and distribute this software is granted provided this copyright
# // notice appears in all copies. This software is provided "as is" without
# // express or implied warranty, and with no claim as to its suitability for
# // any purpose.
#
# // See http://www.boost.org for most recent version including documentation.
#
# #ifndef BOOST_VERSION_DEF
# #define BOOST_VERSION_DEF
# #define BOOST_VERSION_STRING "Boost 1.27"
# #define BOOST_VERSION_MAJOR 1
# #define BOOST_VERSION_MINOR 27
# #define BOOST_VERSION_SUBMINOR 0
# #define BOOST_VERSION 102700
# #endif
#
# IFF:
#
# [When at the root of the project.]
# $shell> jam dist
#
rule version-header ( target : name version comment-text * )
{
local target-dir =
[ tokens-to-simple-path [ top-relative-tokens [ directory-of $(target) ] ] ] ;
local target-id =
[ target-id-of $(target) ] ;
# Translat the name & version into the various version info definitions.
#
local s = " " ;
local target-suffix = [ MATCH .(.*) : $(target:S) ] ;
local target-tag = [ join [ split-path $(target-dir) ] $(target:B) $(target-suffix) : "_" ] ;
target-tag = $(target-tag:U) ;
local name-tag = [ join [ split $(name:U) "\\." ] : "_" ] ;
local version-parts = ;
local t ;
t = [ MATCH ^(.*)\\.(.*) : $(version) ] ;
version-parts += $(t[1]) ;
t = [ MATCH ^(.*)\\.(.*)\\.* : $(version) ] ;
version-parts += $(t[2]) ;
t = [ MATCH ^(.*)\\.(.*)\\.(.*) : $(version) ] ;
version-parts += $(t[3]) ;
if ! $(version-parts[2]) { version-parts += 0 0 ; }
if ! $(version-parts[3]) { version-parts += 0 ; }
local version-id = $(version-parts[1]) ;
switch $(version-parts[2])
{
case ? : version-id = $(version-id)00$(version-parts[2]) ;
case ?? : version-id = $(version-id)0$(version-parts[2]) ;
case ??? : version-id = $(version-id)$(version-parts[2]) ;
case * : version-id = $(version-id)000 ;
}
switch $(version-parts[3])
{
case ? : version-id = $(version-id)0$(version-parts[3]) ;
case ?? : version-id = $(version-id)$(version-parts[3]) ;
case * : version-id = $(version-id)00 ;
}
# Set Jam variables to the version info definitions for use in things like
# sonaming, etc.
#
$(name:U)_VERSION ?= $(version) ;
$(name:U)_VERSION_MAJOR ?= $(version-parts[1]) ;
$(name:U)_VERSION_MINOR ?= $(version-parts[2]) ;
$(name:U)_VERSION_SUBMINOR ?= $(version-parts[3]) ;
$(name:U)_VERSION_STRING ?= $(name)$(s)$(version) ;
# Generate instructions to build the header file, but only if not in
# dependency stage.
#
if ! $(gIN_LIB_INCLUDE)
{
TARGET_TAG on $(target-id) =
$(target-tag) ;
VERSION($(name-tag)) on $(target-id) =
"$(name) $(version)"
$(version-parts[1]) $(version-parts[2]) $(version-parts[3])
$(version-id) ;
NOCARE $(name-tag) ;
NOTFILE $(name-tag) ;
MODE on $(target-id) = $(FILEMODE) ;
ALWAYS $(target-id) ;
MakeLocate $(target-id) : $(target-dir) ;
Clean dist-clean : $(target-id) ;
version-header-create $(target-id) ;
local comment-line-tag = COMMENT_TEXT_ ;
for local comment-line in $(comment-text)
{
comment-line-tag = $(comment-line-tag)% ;
NOCARE $(comment-line-tag) ;
NOTFILE $(comment-line-tag) ;
$(comment-line-tag) on $(target-id) = $(comment-line) ;
version-header-comment $(target-id) : $(comment-line-tag) ;
}
version-header-def $(target-id) : $(name-tag) ;
}
# Add the header to the top-level "dist" target.
#
if $($(gTOP)) = "."
{
declare-fake-targets dist : $(target-id) ;
}
}
# Creates initial empty version header, with correct permissions.
#
actions together version-header-create
{
echo > $(<)
$(CHMOD) $(MODE) $(<)
}
# Append a single comment line to the header.
#
actions version-header-comment
{
echo '$($(>))' >> $(<)
}
# Append the version info definitions of a single module to the header.
#
actions version-header-def
{
echo >> $(<)
echo '#ifndef $(>)_VERSION_DEF' >> $(<)
echo '#define $(>)_VERSION_DEF' >> $(<)
echo '#define $(>)_VERSION_STRING "$(VERSION($(>))[1])"' >> $(<)
echo '#define $(>)_VERSION_MAJOR $(VERSION($(>))[2])' >> $(<)
echo '#define $(>)_VERSION_MINOR $(VERSION($(>))[3])' >> $(<)
echo '#define $(>)_VERSION_SUBMINOR $(VERSION($(>))[4])' >> $(<)
echo '#define $(>)_VERSION $(VERSION($(>))[5])' >> $(<)
echo "#endif" >> $(<)
}

View File

@@ -1,55 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
<title>Boost.Build - dmc-stlport toolset</title>
</head>
<body link="#0000FF" vlink="#800080">
<table border="0" cellpadding="7" cellspacing="0" width="100%" summary=
"header">
<tbody>
<tr>
<td valign="top" width="300">
<h3><a href="http://www.boost.org/"><img height="86" width="277"
alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<h2 align="center">dmc-stlport toolset</h2>
</td>
</tr>
</tbody>
</table>
<hr>
<h2>Introduction</h2>
<p>Boost.Build's <a href="dmc-stlport-tools.jam">dmc-stlport</a> toolset
supports the <a href="http://www.digitalmars.com/">Digital Mars C++</a>
command-line tools, using the <a href="http://www.stlport.org">STLport</a>
standard library implementation. It is designed to allow you to build and
test with multiple installed versions of STLPort, so that objects build in
each configuration will be built into separate directories.</p>
<p>In addition to what this toolset provides, configuration and extended
functionality is available through the common <a href=
"stlport.html">stlport library support</a>.</p>
<hr>
<p>Revised $Date$</p>
<p>Copyright &copy; Dave Abrahams 2002, Aleksey Gurtovoy 2004, Rene Rivera
2005.</p>
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</body>
</html>

View File

@@ -1,21 +0,0 @@
# Digital Mars C++/STLPort
# (C) Copyright Aleksey Gurtovoy 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://www.digitalmars.com/">Digital<br>Mars C++</a>
extends-toolset dmc ;
flags $(gCURRENT_TOOLSET) STLPORT_LIB_BASE_NAME ;
STLPORT_LIB_BASE_NAME ?= stlp45dm ;
SEARCH on stlport.jam = $(BOOST_BUILD_PATH) ;
include stlport.jam ;

View File

@@ -1,79 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1st September 2003), see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
<title>Boost.Build - dmc 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="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<h2 align="center">dmc toolset</h2>
</td>
</tr>
</table>
<hr>
<h2>Introduction</h2>
<p>Boost.Build's <a href="dmc-tools.jam">dmc</a> toolset supports the
<a href="http://www.digitalmars.com/">Digital Mars C++</a> command-line
tools.</p>
<h2><a name="configuration" id="configuration">Configuration
Variables</a></h2>
<p>The <code>dmc</code> 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>:</p>
<table border="1" summary="settings">
<tr>
<th>Variable Name</th>
<th>Semantics</th>
<th>Default</th>
<th>Notes</th>
</tr>
<tr>
<td><code>DMC_ROOT</code></td>
<td>The path to the Digital Mars C++ installation directory</td>
<td><i>empty</i></td>
<td>For example, <code>C:\Program Files\Digital Mars</code></td>
</tr>
</table>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
31 July, 2004
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p>Copyright &copy; Dave Abrahams 2002, Aleksey Gurtovoy 2004.</p>
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</body>
</html>

View File

@@ -1,106 +0,0 @@
# Digital Mars C++
# (C) Copyright Christof Meerwald 2003.
# (C) Copyright Aleksey Gurtovoy 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://www.digitalmars.com/">Digital<br>Mars C++</a>
set-as-singleton DMC_ROOT DMC_BIN_DIR ;
DMC_COMPILER = dmc ;
DMC_LINKER = link ;
DMC_ARCHIVE = lib ;
DMC_ROOT = $(DMC_ROOT:J=" ") ;
DMC_BIN_DIR ?= "$(DMC_ROOT)"$(SLASH)bin$(SLASH) ;
flags dmc CFLAGS <debug-symbols>on/<debug-store>object : -g ;
flags dmc LINKFLAGS <debug-symbols>on : -co ;
flags dmc CFLAGS <optimization>off : -S -o+none ;
flags dmc CFLAGS <optimization>speed : -o+time ;
flags dmc CFLAGS <optimization>space : -o+space ;
flags dmc CFLAGS <exception-handling>on : -Ae ;
flags dmc CFLAGS <rtti>on : -Ar ;
# Note that these two options actually imply multithreading support on DMC
# because there is no single-threaded dynamic runtime library. Specifying
# <threading>multi would be a bad idea, though, because no option would be
# matched when the build uses the default settings of <runtime-link>dynamic
# and <threading>single.
flags dmc CFLAGS <runtime-build>release/<runtime-link>dynamic : -ND ;
flags dmc CFLAGS <runtime-build>debug/<runtime-link>dynamic : -ND ;
flags dmc CFLAGS <runtime-build>release/<runtime-link>static/<threading>single : ;
flags dmc CFLAGS <runtime-build>debug/<runtime-link>static/<threading>single : ;
flags dmc CFLAGS <runtime-build>release/<runtime-link>static/<threading>multi : -D_MT ;
flags dmc CFLAGS <runtime-build>debug/<runtime-link>static/<threading>multi : -D_MT ;
flags dmc CFLAGS <cflags> ;
flags dmc C++FLAGS <cxxflags> ;
flags dmc DEFINES <define> ;
flags dmc UNDEFS <undef> ;
flags dmc HDRS <include> ;
flags dmc SYSHDRS <sysinclude> ;
flags dmc LINKFLAGS <linkflags> ;
flags dmc ARFLAGS <arflags> ;
flags dmc LIBPATH <library-path> ;
flags dmc NEEDLIBS <library-file> ;
flags dmc FINDLIBS <find-library> ;
flags dmc LINKFLAGS <target-type>$(SHARED_TYPES) : ;
flags msvc STDHDRS : $(DMC_ROOT)$(SLASH)include ;
#### Link ####
rule Link-action ( target implib ? : sources + : target-type ? )
{
dmc-Link-action $(<) : $(sources) $(NEEDLIBS) ;
}
actions together dmc-Link-action
{
"$(DMC_BIN_DIR)$(DMC_LINKER)" $(LINKFLAGS) -delexecutable -noi -implib:"$(<[2])" "$(>)" , "$(<[1])" , NUL , user32.lib kernel32.lib "$(FINDLIBS:S=.lib)" , "$(<[2]:B).def"
}
#### Cc #####
rule Cc-action
{
dmc-Cc-action $(<) : $(>) ;
}
actions dmc-Cc-action
{
"$(DMC_BIN_DIR)$(DMC_COMPILER)" -c -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" -o"$(<)" "$(>)"
}
#### C++ ####
rule C++-action
{
dmc-C++-action $(<) : $(>) ;
}
actions dmc-C++-action
{
"$(DMC_BIN_DIR)$(DMC_COMPILER)" -cpp -c -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" -o"$(<)" "$(>)"
}
#### Archive ####
rule Archive-action
{
dmc-Archive-action $(<) : $(>) ;
}
actions together piecemeal dmc-Archive-action
{
"$(DMC_BIN_DIR)$(DMC_ARCHIVE)" $(ARFLAGS) -c -n -p128 "$(<)" "$(>)"
}

View File

@@ -1,77 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1st September 2003), see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
<title>Boost.Build - edg toolset</title>
</head>
<body link="#0000FF" vlink="#800080" bgcolor="#FFFFFF">
<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="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<h2 align="center">edg toolset</h2>
</td>
</tr>
</table>
<hr>
<h2>Introduction</h2>
<p>Boost.Build's edg toolset supports the <a href=
"http://www.edg.com/">Edison Design Group</a> C/C++ compiler front-end
(evaluation version).</p>
<h2>Configuration Variables</h2>The edg 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>:
<table border="1" summary="settings">
<tr>
<th>Variable Name</th>
<th>Semantics</th>
<th>Default</th>
<th>Notes</th>
</tr>
<tr>
<td><code>ECCP</code></td>
<td>Name and (optional) path of the eccp executable.</td>
<td>(none)</td>
<td>If not set, <code>eccp</code> must be available in the search
path.</td>
</tr>
</table>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
09 Jul, 2003 <!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i>Copyright 2003 <a href="../../../people/jens_maurer.htm">Jens
Maurer</a>.</i></p>
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</body>
</html>

View File

@@ -1,91 +0,0 @@
# (C) Copyright Jens Maurer 2003.
# 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://www.edg.com/">EDG<br>C++</a>
# variables used to configure eccp-tools.jam
#
# ECCP - name of eccp executable
ECCP ?= eccp ;
flags edg C++FLAGS <exception-handling>off : --no_exceptions ;
flags edg C++FLAGS <exception-handling>on : --exceptions ;
flags edg CFLAGS <inlining>off : --no_inlining ;
flags edg CFLAGS <inlining>on <inlining>full : --inlining ;
flags edg CFLAGS <optimization>off : -O0 ;
flags edg CFLAGS <optimization>speed : -O3 ;
flags edg CFLAGS <optimization>size : -Os ;
flags edg CFLAGS <shared-linkable>true : --pic ;
flags edg CFLAGS <debug-symbols>on : -g ;
flags edg LINKFLAGS <debug-symbols>on : -g ;
flags edg CFLAGS <profiling>on : -pg ;
flags edg LINKFLAGS <profiling>on : -pg ;
flags edg CFLAGS <cflags> ;
flags edg C++FLAGS <cxxflags> ;
flags edg DEFINES <define> ;
flags edg UNDEFS <undef> ;
flags edg HDRS <include> ;
flags edg SYSHDRS <sysinclude> ;
flags edg LINKFLAGS <linkflags> ;
flags edg ARFLAGS <arflags> ;
flags edg LIBPATH <library-path> ;
flags edg NEEDLIBS <library-file> ;
flags edg FINDLIBS <find-library> ;
#### Link ####
rule Link-action
{
edg-Link-action $(<) : $(>) ;
}
actions edg-Link-action bind NEEDLIBS
{
$(ECCP) $(LINKFLAGS) -tused -o "$(<[1])" "$(>)" "$(NEEDLIBS)" "$(FINDLIBS:S=.so)"
}
#### Cc #####
rule Cc-action
{
edg-Cc-action $(<) : $(>) ;
}
actions edg-Cc-action
{
$(ECCP) -c --c99 -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" -o "$(<)" "$(>)"
}
#### C++ ####
rule C++-action
{
edg-C++-action $(<) : $(>) ;
}
actions edg-C++-action
{
$(ECCP) -tused -c -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" -o "$(<)" "$(>)"
}
#### Archive ####
rule Archive-action
{
edg-Archive-action $(<) : $(>) ;
}
actions updated together piecemeal edg-Archive-action
{
ar rc $(<) $(>)
}

View File

@@ -1,5 +0,0 @@
# (C) Copyright Rene Rivera, 2003.
# 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)
boost-build .. ;

View File

@@ -1,51 +0,0 @@
# (C) Copyright Rene Rivera, 2002, 2005.
# 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)
# Example of how to define and depend on a library target.
# This is for Boost.Build-V1
subproject tools/build/v1/example/lib_use ;
# Declare the library target. Composed of a single source file.
# The real name of the target will vary according to the build
# build platform. For example in Unix it will generate a file
# named "libsimple.a".
#
# In this example the default build is given so that it builds
# two default versions of the library: debug with single-threading,
# and debug with multi-threading.
#
lib simple
:
# SOURCES
simple_lib.cpp
:
# REQUIREMENTS
:
# DEFAULT BUILDS
debug <threading>single/multi
;
# Declare an executable target that uses the library.
# Here the executable has a single source file, but also
# depends on the above library. Therefore this executable
# has the additional source file as generated by the library
# target.
#
# This target also specifies the requirement that it be built
# as multi-threaded. This also forces which variant of the library
# is used, and in this case, regardless of the build requested on this
# target.
#
exe simple
:
# SOURCES
simple.cpp
<lib>simple
:
# REQUIREMENTS
<threading>multi
:
# DEFAULT BUILDS
;

View File

@@ -1,17 +0,0 @@
/* (C) Copyright Rene Rivera, 2002.
** 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)
*/
#include <cstdio>
extern int lib_call(int x);
int main(int /* argc */, char ** /* argv */)
{
for (int i = 0; i < 16; ++i)
{
std::printf("%d * 2 = %d\n",i,lib_call(i));
}
return 0;
}

View File

@@ -1,11 +0,0 @@
/* (C) Copyright Rene Rivera, 2002.
** 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)
*/
extern int lib_call(int x);
int lib_call(int x)
{
return x*2;
}

View File

@@ -1,13 +0,0 @@
# Copyright David Abrahams 2002.
# 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)
subproject tools/build/examples/property_rule ;
rule add-include ( toolset variant : properties * )
{
return $(properties) <sysinclude>$($(gTOP))/inc ;
}
lib foo : foo.cpp : add-include <inlining>on ;
exe bar : bar.cpp <lib>foo : add-include ;

View File

@@ -1,5 +0,0 @@
// Copyright David Abrahams 2002.
// 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)
#include <foo.hpp>
int main() { foo(); return 0; }

View File

@@ -1,5 +0,0 @@
// Copyright David Abrahams 2002.
// 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)
#include <foo.hpp>
void foo() {}

View File

@@ -1,9 +0,0 @@
// Copyright David Abrahams 2002.
// 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)
#ifndef FOO_DWA2002712_HPP
# define FOO_DWA2002712_HPP
void foo();
#endif // FOO_DWA2002712_HPP

View File

@@ -1,5 +0,0 @@
# Copyright David Abrahams 2002.
# 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)
# empty

View File

@@ -1,55 +0,0 @@
# (C) Copyright Rene Rivera, 2002.
# 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)
# Example of how to select the targets included in a stage depending
# on the variant to build.
#
# This is for Boost.Build-V1
subproject tools/build/examples/stage_source_selection ;
# Simple executable.
#
exe simple0
:
# SOURCES
simple.cpp
:
# REQUIREMENTS
:
# DEFAULT BUILDS
debug
;
# Another simple executable. Here it's the same program source
# as the above, but this is only to simplify the example.
#
exe simple1
:
# SOURCES
simple.cpp
:
# REQUIREMENTS
:
# DEFAULT BUILDS
debug
;
# The stage that builds the two different targets into the
# single stage directory. Both debug and release builds are
# done by default. When soing a "debug" build only the
# "simple0" source is copied to the stage. And conversly
# on a "release" build only the "simple1" source is copied.
#
stage run
:
# SOURCES
<debug><exe>simple0
<release><exe>simple1
:
# TAGS
:
# DEFAULT BUILDS
debug release
;

View File

@@ -1,15 +0,0 @@
/* (C) Copyright Rene Rivera, 2002.
** 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)
*/
#include <cstdio>
int main(int /* argc */, char ** /* argv */)
{
for (int i = 0; i < 16; ++i)
{
std::printf("%d * 2 = %d\n",i,i*2);
}
return 0;
}

View File

@@ -1,10 +0,0 @@
# (C) Copyright Rene Rivera, 2003.
# 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)
# Example of how to define and depend on a library target.
# This is for Boost.Build-V1
project-root ;
subinclude sublib ;
subinclude subexe ;

View File

@@ -1,31 +0,0 @@
# (C) Copyright Rene Rivera, 2003.
# 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)
# Example of how to define and depend on a library target.
# This is for Boost.Build-V1
subproject sub ;
# Declare an executable target that uses the library.
# Here the executable has a single source file, but also
# depends on the above library. Therefore this executable
# has the additional source file as generated by the library
# target.
#
# This target also specifies the requirement that it be built
# as multi-threaded. This also forces which variant of the library
# is used, and in this case, regardless of the build requested on this
# target.
#
exe simple
:
# SOURCES
simple.cpp
<lib>../sublib/simple
:
# REQUIREMENTS
<threading>multi
:
# DEFAULT BUILDS
;

View File

@@ -1,17 +0,0 @@
/* (C) Copyright Rene Rivera, 2003.
** 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)
*/
#include <cstdio>
extern int lib_call(int x);
int main(int /* argc */, char ** /* argv */)
{
for (int i = 0; i < 16; ++i)
{
std::printf("%d * 2 = %d\n",i,lib_call(i));
}
return 0;
}

View File

@@ -1,28 +0,0 @@
# (C) Copyright Rene Rivera, 2003.
# 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)
# Example of how to define and depend on a library target.
# This is for Boost.Build-V1
subproject sublib ;
# Declare the library target. Composed of a single source file.
# The real name of the target will vary according to the build
# build platform. For example in Unix it will generate a file
# named "libsimple.a".
#
# In this example the default build is given so that it builds
# two default versions of the library: debug with single-threading,
# and debug with multi-threading.
#
lib simple
:
# SOURCES
simple_lib.cpp
:
# REQUIREMENTS
:
# DEFAULT BUILDS
debug <threading>single/multi
;

View File

@@ -1,11 +0,0 @@
/* (C) Copyright Rene Rivera, 2003.
** 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)
*/
extern int lib_call(int x);
int lib_call(int x)
{
return x*2;
}

View File

@@ -1,29 +0,0 @@
# (C) Copyright Rene Rivera, 2005.
# 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)
subproject tools/build/v1/example/target_test_arg ;
import testing ;
dll simple
: # SOURCES
simple_lib.cpp
: # REQUIREMENTS
: # DEFAULT BUILDS
debug release
;
run simple.cpp
: # ARGS
: # INPUT FILES
<dll>simple
simple_lib.cpp
<lib>../lib_use/simple
: # REQUIREMENTS
: # TEST NAME
simple
: # DEFAULT BUILDS
debug
release
;

View File

@@ -1,15 +0,0 @@
/* (C) Copyright Rene Rivera, 2005.
** 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)
*/
#include <cstdio>
int main(int argc, char ** argv)
{
for (int i = 0; i < argc; ++i)
{
std::printf("arg #%u = '%s'\n",i,argv[i]);
}
return 1;
}

View File

@@ -1,11 +0,0 @@
/* (C) Copyright Rene Rivera, 2002.
** 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)
*/
extern int lib_call(int x);
int lib_call(int x)
{
return x*2;
}

View File

@@ -1,23 +0,0 @@
# (C) Copyright Rene Rivera, 2002.
# 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)
# Example of how to define a template.
# This is for Boost.Build-V1
subproject tools/build/examples/template_use ;
# Declare the template as a target. The sources, requirements, and
# default builds sections are copied to the targets that depend (use)
# this template.
#
template t-common
:
# SOURCES
:
# REQUIREMENTS
<include>$(SUBDIR)/include
<define>SOME_DEFINE
:
# DEFAULT BUILDS
;

View File

@@ -1,11 +0,0 @@
/* (C) Copyright Rene Rivera, 2002.
** 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)
*/
#ifndef simple_h
#define simple_h
extern int lib_call(int x);
#endif

View File

@@ -1,43 +0,0 @@
# (C) Copyright Rene Rivera, 2002.
# 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)
# Example of how to use a template target declared in another project.
# This is for Boost.Build-V1
subproject tools/build/examples/template_use/sub ;
# Declare a library target. This 'inherits' the attributes of
# the template which in this case adds the needed include
# directory. Because templates are "special" targets they
# appear in the source dependencies section and must be
# a relative reference to the template target in it's declared
# location.
#
lib simple
:
# SOURCES
<template>../t-common
simple_lib.cpp
:
# REQUIREMENTS
:
# DEFAULT BUILDS
debug <threading>single/multi
;
# Declare an executable target that also uses the template,
# and the above library target.
#
exe simple
:
# SOURCES
<template>../t-common
simple.cpp
<lib>simple
:
# REQUIREMENTS
<threading>multi
:
# DEFAULT BUILDS
;

View File

@@ -1,17 +0,0 @@
/* (C) Copyright Rene Rivera, 2002.
** 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)
*/
#include <cstdio>
#include "simple.h"
int main(int /* argc */, char ** /* argv */)
{
for (int i = 0; i < 16; ++i)
{
std::printf("%d * 2 = %d\n",i,lib_call(i));
}
return 0;
}

View File

@@ -1,11 +0,0 @@
/* (C) Copyright Rene Rivera, 2002.
** 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)
*/
#include "simple.h"
int lib_call(int x)
{
return x*2;
}

View File

@@ -1,251 +0,0 @@
#~ Copyright David Abrahams 2001.
#~ Copyright Rene Rivera 2004.
#~ 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)
# A summary of features:
#
# - "feature" has a fixed list of values, of which the first is the default.
# Affect link compatability.
#
# - "free-feature" has a variable or fixed list of values, default is empty.
# Does not affect link compatability.
#
# - "path-feature" has a variable list of path values, default is empty.
# Does not affect link compatability.
#
# - "dependency-feature" like "path-feature" but affects dependency rebuilds.
# Profiling feature support by Toon Knapen <toon@si-lab.com>.
feature profiling : off on ;
# C/C++ alignment of structure members
feature struct-alignment : auto 1 2 4 8 16 ;
# Type of exceptions to use, Metrowerks/CodeWarrior only.
feature eh-model : default fast msvc ;
# ??, GCC only.
feature vtable-thunks : default on off ;
# Generate code to support, or not threading.
feature threading : single multi ;
# Link to the language runtime libraries as a shared object, or statically
# link them into the produced object.
feature runtime-link : dynamic static ;
# Use either the debug or release versions of the language runtime,
# when available.
feature runtime-build : debug release ;
# Compilation optimization level.
feature optimization : off speed space ;
# Inlining, "off" disables it, "on" enables with "inline" keywords, and
# "full" enables it for specified functions and any others the compiler
# deams inline-able.
feature inlining : off on full ;
# Generate and include debug symbol information.
feature debug-symbols : on off ;
# ??.
free-feature debug-store : object database ;
# What type of OS subsystem to target. Windows only.
free-feature user-interface : console gui ;
# ??.
feature unicode-application : on off ;
# Enable/disable exceptions.
feature exception-handling : on off ;
# Enable/disable C++ runtime type information.
feature rtti : on off ;
# Set the feature to "no" in order to skip the build of this target.
# Useful to disable known non-working compilers or variants.
feature build : yes no ;
# ??.
feature stdlib : "default" gcc stlport ;
# Used to specify "default-BUILD" properties that will be used if not
# overridden by the BUILD variable.
free-feature "default" ;
# Custom flags for the various build procedures.
free-feature cflags ;
free-feature linkflags ;
free-feature cxxflags ;
free-feature arflags ;
# Preprocessor definitions.
free-feature define ; # <define>PYTHON=foo
free-feature undef ; # <undef>PYTHON=foo
# Add a user include path (#include "x.h").
path-feature "include" ; # <include>../foo/bar/mumble
# Add a system include path (#include <x.h>).
path-feature sysinclude ; # <sysinclude>/fu/man/chu
# Finding libraries needs a search path and a base library name.
path-feature library-path ;
free-feature find-library ;
# Link in an external library file.
dependency-feature library-file ;
# The version of a shared object. <dllversion>1.27.0 (for use with soname-ing)
free-feature dllversion ;
# Add a name tag to a target, see Boost.Build documentation for details.
free-feature tag ;
# ??.
free-feature version ;
# Control warnings, to turn the on, off, how many, and which ones.
# Values are toolset dependent, but the ones listed here must
# be supported...
# - "on", default has warnings enabled.
# - "off", no warnings.
# - "error", turn warnings into errors.
# For toolsets that support it specifying a number
# will limit the number of warnings produced.
free-feature warnings ;
# Control how many errors to tollerate.
free-feature errors ;
# Include file as prefix before all other includes.
free-feature prefix ;
# How to interpret relative paths in includes.
# - "relative", as GCC search relative to inclusion point.
# - "directory", relative to current directory.
# - "source", realtive to original source file.
# - "paths", only search given include and sysinclude paths.
free-feature include-search : relative directory source paths ;
# Can the target participate in a shared library?
feature shared-linkable : false true ;
# The addressing model to generate code for.
# Currently a limited set only specifying the bit size of pointers.
feature address-model : default 16 32 64 ;
# Type of CPU architecture to compile for.
feature architecture :
# The default is the machine we are on, i.e. nothing
native
# x86 and compatible
x86
# Sparc
sparc
# RS/6000 & PowerPC
power
# MIPS/SGI
mips1 mips2 mips3 mips4
;
# The specific instruction set in an architecture to compile.
feature instruction-set :
# Default should probably always be the lowest common denominator.
default
# x86 and compatible
i386 i486 i586 i686 pentium pentium-mmx pentiumpro pentium2 pentium3 pentium4
k6 k6-2 k6-3 athlon athlon-tbird athlon-4 athlon-xp athlon-mp
# Sparc
v7 cypress v8 supersparc sparclite hypersparc sparclite86x
f930 f934 sparclet tsc701 v9 ultrasparc
# RS/6000 & PowerPC
rios rios1 rsc rios2 rs64a
601 602 603 603e 604 604e 620 630 740 750
power power2 powerpc power64
403 505 801 821 823 860
power-common
# MIPS
r2000 r3000 r3900 r4000 r4100 r4300 r4400 r4600 r4650 r5000 r6000 r8000 orion
;
# The object model the compiler uses when compiling C++ code. Currently only
# relevant for Compaq C++ V6.3 and newer.
feature object-model :
# Use the default object model which works best for boost. This most
# probably should be 'ansi' in all cases.
default
# Explicitly select the 'arm' object model. Used for backward compatible
# binaries.
arm
# Explicitly select the 'ansi' object model. Used to support the complete
# standard.
ansi
# AIX has it's own ABI, this is available with the gcc -maix32/64 options.
aix
;
gLINK_COMPATIBLE = <shared-linkable>true <target-type> <inlining> ;
gALWAYS_RELEVANT = <target-type> <tag> <default> <build> ;
##### Requirements by target type #####
gTARGET_TYPE_REQUIREMENTS(DLL) = <shared-linkable>true ;
##### Variant definitions ####
variant common :
<vtable-thunks>default
<struct-alignment>auto
<eh-model>default
<threading>single
<unicode-application>off
<exception-handling>on
<rtti>on
<shared-linkable>false
<address-model>default
<architecture>native
<instruction-set>default
<profiling>off
<object-model>default
;
variant debug : common :
<debug-symbols>on
<runtime-build>debug
<optimization>off
<inlining>off
;
if $(NT)
{
variant debug-python : debug :
<define>BOOST_DEBUG_PYTHON
<gcc><define>Py_DEBUG
;
}
else
{
variant debug-python : debug :
<define>BOOST_DEBUG_PYTHON
<define>Py_DEBUG
;
}
variant release : common :
<debug-symbols>off
<runtime-build>release
<optimization>speed
<inlining>full
<define>NDEBUG
;
# Profiling variant by Toon Knapen <toon@si-lab.com>
variant profile : release :
<profiling>on
<debug-symbols>on
;

View File

@@ -1,176 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1st September 2003), see www.w3.org">
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
<title>Boost.Build - gcc-nocygwin toolset</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<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="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<h2 align="center">gcc-nocygwin toolset</h2>
</td>
</tr>
</table>
<hr>
<h2>Introduction</h2>
<p>This page describes the gcc-nocygwin toolset, which builds Boost using
the -mno-cygwin option of the <a href=
"http://sources.redhat.com/cygwin/">Cygwin</a> gcc compiler. This avoids
introducing dependencies on the Cygwin Unix-emulation layer, allowing you
to build Windows executables which are not dependant on cygwin1.dll. If
you're not worried about having the dependencies, you should probably be
using the plain <a href="gcc-tools.html">gcc toolset</a>.</p>
<p>The other option for producing windows-native executables with gcc is
the <a href="http://www.mingw.org/">mingw</a> version of gcc with the
<a href="mingw-tools.html">mingw toolset</a>. However, if you're already
using Cygwin, this toolset could save you having to install an additional
compiler.</p>
<h2><a name="configuration" id="configuration">Configuration
Variables</a></h2>
<p>This toolset operates in one of two modes - the default mode (which is
recommended) just extends the gcc toolset <a href=
"gcc-tools.html#configuration">(configuration details here)</a>. You can
force the gcc-nocygwin toolset to extend gcc-stlport instead by setting
<code>NOCYGWIN_STLPORT_LIB_ID</code>.</p>
<p>You can set any of the configuration variables in your environment or on
the bjam command line using options of the form
<code>-s<i>VARIABLE_NAME</i>=</code><i>value</i>. The following table lists
the additional configuration variables introduced by gcc-nocygwin.</p>
<table border="1" summary="settings">
<tr>
<th>Variable Name</th>
<th>Semantics</th>
<th>Default</th>
<th width="50%">Notes</th>
</tr>
<tr>
<td><code>GCC_NO_<br>
EXPORT_ALL</code></td>
<td>Suppress the <nobr>--export-all-symbols</nobr> linker flag.</td>
<td><code>true</code></td>
<td>The gcc toolset usually forces the linker to export all symbols
from the DLLs it builds. There are some hacks in ld to prevent any
symbols from the run-time library being exported, but old versions of
ld don't have this support. If necessary, you can re-enable exporting
all symbols by setting this variable to the empty string
<nobr>(-sGCC_NO_EXPORT_ALL="")</nobr></td>
</tr>
<tr>
<td><code>NOCYGWIN_<br>
STLPORT_LIB_ID</code></td>
<td>Use the <a href="http://www.stlport.org">STLport</a> standard
library instead of gcc's own library.</td>
<td><i>empty</i></td>
<td>This option is provided for backwards compatability with the
original gcc-nocygwin toolset, which used to rely on the STLport
standard library. Setting a value for this variable forces gcc-nocygwin
to extend the gcc-stlport toolset <a href=
"gcc-stlport-tools.html#configuration">(configuration details
here)</a>. The value you set is irrelevant, unless you want to use the
<a href="#stlport">STLport iostream implementation</a></td>
</tr>
</table><br>
<br>
<h2>Prerequisites</h2>
<p>The easiest way to use this toolset is with a recent Cygwin gcc
installation (roughly speaking, installed since October 2002). The Cygwin
setup utility should add all necessary components of gcc automatically when
you install or upgrade gcc. Basically, if an iostream-based "hello world"
program compiles and links using <code>g++ -mno-cygwin</code>, you should
be OK.</p>
<p>It is also possible to add support manually to older Cygwin compilers if
you won't upgrade for some reason. See for instance <a href=
"http://www.delorie.com/howto/cygwin/mno-cygwin-howto.html">these
details</a>, or search for "mno-cygwin" and "c++" on the web or the
<a href="http://cygwin.com/lists.html">Cygwin mailing lists</a>.</p>
<p>Another, probably more difficult option, is to install the STLport
standard library and build it with the -mno-cygwin option. Some details are
provided in the next section.</p>
<h2><a name="stlport" id="stlport">STLport iostream support</a></h2>
<p>Here's the procedure for using the STLport iostream libraries with
gcc-nocygwin:</p>
<ol type="1" start="1">
<li>Build the iostream libraries with no cygwin1.dll dependencies.</li>
<li>Set the <code>NOCYGWIN_STLPORT_LIB_ID</code> variable to the library
base name (e.g. stlport_cygwin)</li>
<li>Configure necessary variables for the <a href=
"gcc-stlport-tools.html#configuration">gcc-stlport toolset</a></li>
</ol><br>
<br>
<p>Point 1 above is a little tricky using the Cygwin compiler because the
current release of STLport (4.5.3) does not provide a suitable makefile.
Here's a command line to make it work (run from the stlport src
directory):</p>
<p><code>make <nobr>-f gcc-cygwin.mak</nobr> <nobr>CC="gcc
-mno-cygwin"</nobr> <nobr>CXX="g++ -mno-cygwin"</nobr> <nobr>DYN_LINK="g++
-shared -mno-cygwin -o"</nobr></code></p>
<p>You may get some errors for missing include files like
<code><nobr>../include/time.h</nobr></code>. This is most easily fixed by
creating a symbolic link to the mingw include directory so that STLport can
find it under the expected name. The mingw directory is probably in
<code>/usr/include</code>, so you would do <code><nobr>ln -s mingw
include</nobr></code> in that directory. Note that this link may cause
problems when building a regular Cygwin version of STLport.</p>
<p>If you have a recent version of gcc (e.g. 3.2), you might get a heap of
errors for include files like <code><nobr>../g++-v3/ctime</nobr></code>.
The libstdc++ directory is probably something like
<code><nobr>/usr/include/c++/3.2</nobr></code>, in which case you would use
<code><nobr>ln -s 3.2 g++-v3</nobr></code> in the
<code><nobr>/usr/include/c++</nobr></code> directory.</p>
<h2>Toolset limitations</h2>
<p>As of 2002/01/24, some of the Boost test library DLLs don't link because
of unresolved externals. This problem is shared by the mingw toolset.</p>
<p><i>Copyright 2002-2003 by <a href="mailto:RaoulGough@yahoo.co.uk">Raoul
Gough</a></i></p>
</body>
</html>

View File

@@ -1,33 +0,0 @@
# (C) Copyright Raoul Gough, 2002, 2003.
# Permission to copy, use, modify, sell and distribute this software
# is granted provided this copyright notice appears in all
# copies. This software is provided "as is" without express or implied
# warranty, and with no claim as to its suitability for any purpose.
#
# gcc-nocygwin toolset by Raoul Gough (RaoulGough@yahoo.co.uk)
#
# This toolset builds boost on a cygwin system using the -mno-cygwin
# gcc option, which creates windows-native binaries (without any
# dependencies on cygwin1.dll). It should "just work" if your
# Cygwin gcc installation is up to date (since October 2002).
# Basically, if std::cout << "Hello world" works with
# g++ -mno-cygwin, you should be alright.
#
# Check STLport support (backwards compatability)
if $(NOCYGWIN_STLPORT_LIB_ID) {
local GCC_STLPORT_LIB_ID = $(NOCYGWIN_STLPORT_LIB_ID) ;
extends-toolset gcc-stlport ;
}
else {
extends-toolset gcc ;
}
# Prefer linking DLLs without the -Wl,--export-all-symbols flag
GCC_NO_EXPORT_ALL ?= true ;
# Use the -mno-cygwin flag for compiling C, C++ and linking
CFLAGS += -mno-cygwin ;
LINKFLAGS += -mno-cygwin ;

View File

@@ -1,50 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
<title>Boost.Build - gcc-stlport 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="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<h2 align="center">gcc-stlport toolset</h2>
</td>
</tr>
</table>
<hr>
<h2>Introduction</h2>
<p>Boost.Build's <a href="http://gcc.gnu.org">gcc-stlport</a> toolset
supports the GNU GCC compiler using <a href=
"http://www.stlport.org">STLport</a> as a replacement to the GNU
libg++.</p>
<p>In addition to what this toolset provides, configuration and extended
functionality is available through the common <a href=
"stlport.html">stlport library support</a>.</p>
<hr>
<p>Revised $Date$</p>
<p>Copyright &copy; Dave Abrahams 2002, Rene Rivera 2005.</p>
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</body>
</html>

View File

@@ -1,59 +0,0 @@
# (C) Copyright David Abrahams and Carlos Pinto Coelho 2001.
# 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)
# this is simply an extension to the gcc toolset.
extends-toolset gcc ;
flags $(gCURRENT_TOOLSET) STLPORT_LIB_BASE_NAME ;
if $(NT)
{
STLPORT_LIB_BASE_NAME = stlport_cygwin ;
}
else
{
STLPORT_LIB_BASE_NAME = stlport_gcc ;
}
SEARCH on stlport.jam = $(BOOST_BUILD_PATH) ;
include stlport.jam ;
# threading libraries always needed when using the library (i.e. iostreams).
if $(UNIX)
{
switch $(JAMUNAME)
{
case SunOS* :
{
flags gcc LINKFLAGS <stlport-iostream>on : -pthreads ;
flags gcc FINDLIBS <stlport-iostream>on : rt ;
}
case BeOS :
{
# BeOS has no threading options, don't set anything here.
}
case Darwin :
{
# MacOS X, doesn't need any threading options set
# -lpthread is linked to by default.
}
case *BSD :
{
flags gcc LINKFLAGS <stlport-iostream>on : -pthread ;
}
case IRIX :
{
# gcc on IRIX does not support multi-threading, don't set anything here.
}
case HP_UX :
{
# gcc on HP-UX does not support multi-threading, don't set anything here
}
case * :
{
flags gcc LINKFLAGS <stlport-iostream>on : -pthread ;
flags gcc FINDLIBS <stlport-iostream>on : rt ;
}
}
}

View File

@@ -1,132 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1st September 2003), see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
<title>Boost.Build - gcc 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="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<h2 align="center">gcc toolset</h2>
</td>
</tr>
</table>
<hr>
<h2>Introduction</h2>
<p>Boost.Build's <a href="http://gcc.gnu.org">gcc</a> toolset supports the
GNU GCC compiler on a variety of Unices, including (but not limited to)
SunOS, BeOS, MacOS X, and of course Linux. For Windows users, it also
supports <a href="http://www.cygwin.com">Cygwin</a> GCC, though <a href=
"http://www.mingw.org">MinGW</a> has <a href="mingw-tools.html">its own
distinct toolset</a>.</p>
<h2><a name="configuration" id="configuration">Configuration
Variables</a></h2>The gcc 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>:
<table border="1" summary="settings">
<tr>
<th>Variable Name</th>
<th>Semantics</th>
<th>Default</th>
<th>Notes</th>
</tr>
<tr>
<td><code>GCC_ROOT_DIRECTORY</code></td>
<td>The directory in which GCC was installed.</td>
<td><code>""</code> (the empty string)</td>
<td>Usually, there is no need to set this variable at all. However, if
g++ is not in the path it is usually sufficient to configure this one
variable. More fine-grained configuration is available by setting the
variables below.</td>
</tr>
<tr>
<td><code>GCC_BIN_DIRECTORY</code></td>
<td>The directory prefix used to find the gcc executables</td>
<td><code>$(GCC_ROOT_DIRECTORY)/bin/</code>, or "" if
<code>GCC_ROOT_DIRECTORY</code> is not set.</td>
</tr>
<tr>
<td><code>GCC_INCLUDE_DIRECTORY</code></td>
<td>The directory in which to find system includes.</td>
<td><i>empty</i>.</td>
<td>Normally, GCC installations can locate their own system includes
without assistance.</td>
</tr>
<tr>
<td><code>GCC_STDLIB_DIRECTORY</code></td>
<td>the directory in which to find the standard library objects
associated with this build of gcc.</td>
<td><code>$(GCC_ROOT_DIRECTORY)/lib</code>.</td>
</tr>
<tr>
<td><code>GXX</code></td>
<td>The name by which g++ is invoked.</td>
<td><code>g++</code></td>
<td>May be used in lieu of setting the <code>&lt;cxxflags&gt;</code>
property to force options such as "<code>-V3.0.4</code>" into the g++
command line: "<code>-sGXX=g++ -V3.0.4</code>".</td>
</tr>
<tr>
<td><code>GCC</code></td>
<td>Similar to GXX, the name by which gcc is invoked for "C" language
targets.</td>
<td><code>gcc</code></td>
</tr>
</table>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
06 May, 2002 <!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p>Copyright &copy; Dave Abrahams 2002.</p>
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</body>
</html>

View File

@@ -1,529 +0,0 @@
# Copyright (c) 2001 David Abrahams.
# Copyright (c) 2002-2005 Rene Rivera.
# 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://gcc.gnu.org/">GNU<br>GCC</a>
# compute directories for invoking GCC
#
# The gcc toolset can be user-configured using the following
# variables:
#
# GCC_ROOT_DIRECTORY
# The directory in which GCC was installed. Defaults to
# unset. Usually, there is no need to set this variable at
# all. However, if G++ is not in the path it is usually
# sufficient to configure this one variable. More fine-grained
# configuration is available by setting the following:
#
# GCC_BIN_DIRECTORY
# the directory prefix used to find the gcc executables. Defaults to
# $(GCC_ROOT_DIRECTORY)/bin/, or "" if GCC_ROOT_DIRECTORY is
# not set.
#
# GCC_INCLUDE_DIRECTORY
# the directory in which to find system includes. Defaults to
# empty.
#
# GCC_STDLIB_DIRECTORY
# the directory in which to find the standard library
# objects associated with this build of gcc. Defaults to
# $(GCC_ROOT_DIRECTORY)/lib.
#
# GXX
# The name by which g++ is invoked. You can also use this in
# lieu of setting the <cxxflags> property to force options such
# as "-V3.0.4" into the g++ command line: "-sGXX=g++ -V3.0.4".
#
# GCC
# Similar to GXX, the name by which gcc is invoked for "C"
# language targets.
# singleton variables...
set-as-singleton GCC_ROOT_DIRECTORY GCC_BIN_DIRECTORY GCC_INCLUDE_DIRECTORY GCC_STDLIB_DIRECTORY ;
flags gcc GCC_BIN_DIRECTORY : $(GCC_BIN_DIRECTORY) ;
flags gcc GCC_INCLUDE_DIRECTORY : $(GCC_INCLUDE_DIRECTORY) ;
flags gcc GCC_STDLIB_DIRECTORY : $(GCC_STDLIB_DIRECTORY) ;
GCC_BIN_DIRECTORY ?= $(GCC_ROOT_DIRECTORY)$(SLASH)bin ;
GCC_BIN_DIRECTORY ?= "" ; # Don't clobber tool names if GCC_ROOT_DIRECTORY not set
GCC_STDLIB_DIRECTORY ?= $(GCC_ROOT_DIRECTORY)$(SLASH)lib ;
# Make sure this gets set "on" the target
flags gcc GCC_BIN_DIR : $(GCC_BIN_DIRECTORY) ;
flags gcc LINKFLAGS <runtime-link>static : -static ;
flags gcc CFLAGS <debug-symbols>on : -g ;
flags gcc LINKFLAGS <debug-symbols>on : -g ;
flags gcc CFLAGS <optimization>off : -O0 ;
flags gcc CFLAGS <optimization>speed : -O3 ;
# Other optimizations we might want for GCC
# -fforce-mem -fomit-frame-pointer
# -foptimize-sibling-calls -finline-functions -ffast-math -finline-limit=10000
flags gcc CFLAGS <optimization>space : -Os ;
flags gcc CFLAGS <inlining>off : -fno-inline ;
flags gcc CFLAGS <inlining>on : -Wno-inline ;
flags gcc CFLAGS <inlining>full : -finline-functions -Wno-inline ;
flags gcc .GXX : $(GXX) ;
flags gcc .GCC : $(GCC) ;
#
# set threading options for various platforms:
#
local on-windows ;
if $(NT)
{
on-windows = 1 ;
}
else if $(UNIX)
{
switch $(JAMUNAME)
{
case CYGWIN* :
{
on-windows = 1 ;
}
}
}
flags gcc ON_WINDOWS : $(on-windows) ;
if $(on-windows)
{
flags gcc CFLAGS <threading>multi : -mthreads ;
flags gcc LINKFLAGS <threading>multi : -mthreads ;
}
else if $(UNIX)
{
switch $(JAMUNAME)
{
case SunOS* :
{
flags gcc CFLAGS <threading>multi : -pthreads ;
flags gcc LINKFLAGS <threading>multi : -pthreads ;
flags gcc FINDLIBS <threading>multi : rt ;
}
case BeOS :
{
# BeOS has no threading options, don't set anything here.
}
case Darwin :
{
# MacOS X, doesn't need any threading options set
# -lpthread is linked to by default.
# There is no gcc/g++, we need to use cc/c++ instead:
.GCC ?= cc ;
.GXX ?= c++ ;
}
case *BSD :
{
flags gcc CFLAGS <threading>multi : -pthread ;
flags gcc LINKFLAGS <threading>multi : -pthread ;
# there is no -lrt on BSD
}
case DragonFly :
{
flags gcc CFLAGS <threading>multi : -pthread ;
flags gcc LINKFLAGS <threading>multi : -pthread ;
# there is no -lrt on BSD - DragonFly is a FreeBSD variant,
# which anoyingly doesn't say it's a *BSD.
}
case IRIX :
{
# gcc on IRIX does not support multi-threading, don't set anything here.
}
case HP_UX :
{
# gcc on HP-UX does not support multi-threading, don't set anything here
}
case QNX* :
{
# gcc/QCC on QNX is always? in multi-thread mode, don't set anything here
}
case * :
{
flags gcc CFLAGS <threading>multi : -pthread ;
flags gcc LINKFLAGS <threading>multi : -pthread ;
flags gcc FINDLIBS <threading>multi : rt ;
}
}
}
# Some possibly supported, or not, linker flags. The support depends on the OS linker.
#
flags gcc RPATH_LINK ;
flags gcc SONAME ;
# Set/reset options for the linker of the platform.
#
if $(UNIX)
{
switch $(JAMUNAME)
{
case SunOS* :
{
NO_GNU_LN = true ; # sun seems not to use the GNU linker with gcc
flags gcc OBJCOPY_FLAGS <debug-symbols>on : "--set-section-flags .debug_str=contents" ;
}
case Linux :
{
RPATH_LINK = -Wl,-rpath-link, ;
SONAME = -Wl,-soname, ;
flags gcc OBJCOPY_FLAGS <debug-symbols>on : "--set-section-flags .debug_str=contents,debug" ;
}
case OpenBSD :
{
SONAME = -Wl,-soname, ;
}
case AIX* :
{
NO_GNU_LN = true ;
IMPLIB_FLAGS = "-Wl,-bI:" ;
}
}
}
# Set architecture/instruction-set options.
#
# x86 and compatible
.ARCH = <architecture>x86 <architecture>native ;
flags gcc CFLAGS <architecture>x86/<instruction-set>default : -mcpu=i386 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>i386 : -mcpu=i386 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>i486 : -mcpu=i486 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>i586 : -mcpu=i586 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>i686 : -mcpu=i686 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>pentium : -mcpu=pentium ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>pentium-mmx : -mcpu=pentium-mmx ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>pentiumpro : -mcpu=pentiumpro ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>pentium2 : -mcpu=pentium2 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>pentium3 : -mcpu=pentium3 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>pentium4 : -mcpu=pentium4 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>k6 : -mcpu=k6 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>k6-2 : -mcpu=k6-2 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>k6-3 : -mcpu=k6-3 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>athlon : -mcpu=athlon ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>athlon-tbird : -mcpu=athlon-tbird ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>athlon-4 : -mcpu=athlon-4 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>athlon-xp : -mcpu=athlon-xp ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>athlon-mp : -mcpu=athlon-mp ;
# Sparc
.ARCH = <architecture>sparc <architecture>native ;
flags gcc CFLAGS <architecture>sparc/<instruction-set>default : -mcpu=v7 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>v7 : -mcpu=v7 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>cypress : -mcpu=cypress ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>v8 : -mcpu=v8 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>supersparc : -mcpu=supersparc ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>sparclite : -mcpu=sparclite ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>hypersparc : -mcpu=hypersparc ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>sparclite86x : -mcpu=sparclite86x ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>f930 : -mcpu=f930 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>f934 : -mcpu=f934 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>sparclet : -mcpu=sparclet ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>tsc701 : -mcpu=tsc701 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>v9 : -mcpu=v9 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>ultrasparc : -mcpu=ultrasparc ;
flags gcc CFLAGS <architecture>sparc/<address-model>64 : -m64 ;
flags gcc LINKFLAGS <architecture>sparc/<address-model>64 : -m64 ;
# RS/6000 & PowerPC
.ARCH = <architecture>power <architecture>native ;
flags gcc CFLAGS <architecture>power/<address-model>default/<instruction-set>default : -mcpu=common ;
flags gcc CFLAGS <architecture>power/<address-model>32/<instruction-set>default : -mcpu=common ;
flags gcc CFLAGS <architecture>power/<address-model>64/<instruction-set>default : -mcpu=powerpc64 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>rios : -mcpu=rios ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>rios1 : -mcpu=rios1 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>rsc : -mcpu=rsc ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>rios2 : -mcpu=rios2 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>rs64a : -mcpu=rs64a ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>403 : -mcpu=403 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>505 : -mcpu=505 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>601 : -mcpu=601 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>602 : -mcpu=602 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>603 : -mcpu=603 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>603e : -mcpu=603e ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>604 : -mcpu=604 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>604e : -mcpu=604e ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>620 : -mcpu=620 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>630 : -mcpu=630 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>740 : -mcpu=740 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>7400 : -mcpu=7400 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>7450 : -mcpu=7450 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>750 : -mcpu=750 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>801 : -mcpu=801 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>821 : -mcpu=821 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>823 : -mcpu=823 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>860 : -mcpu=860 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>power : -mcpu=power ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>power2 : -mcpu=power2 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>power3 : -mcpu=power3 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>power4 : -mcpu=power4 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>power5 : -mcpu=power5 ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>powerpc : -mcpu=powerpc ;
flags gcc CFLAGS $(.ARCH)/<instruction-set>powerpc64 : -mcpu=powerpc64 ;
# AIX variant of RS/6000 & PowerPC
flags gcc CFLAGS <architecture>power/<address-model>32/<object-model>aix : -maix32 ;
flags gcc LINKFLAGS <architecture>power/<address-model>32/<object-model>aix : -maix32 ;
flags gcc CFLAGS <architecture>power/<address-model>64/<object-model>aix : -maix64 ;
flags gcc LINKFLAGS <architecture>power/<address-model>64/<object-model>aix : -maix64 ;
flags gcc AROPTIONS <architecture>power/<address-model>64/<object-model>aix : "-X 64" ;
# MIPS-1-2-3-4
flags gcc MIPS <architecture>mips1 <architecture>mips2 <architecture>mips3 <architecture>mips4 : TRUE ;
flags gcc MIPS
<instruction-set>r2000 <instruction-set>r3000 <instruction-set>r3900
<instruction-set>r4000 <instruction-set>r4100 <instruction-set>r4300
<instruction-set>r4400 <instruction-set>r4600 <instruction-set>r4650
<instruction-set>r5000 <instruction-set>r6000 <instruction-set>r8000
<instruction-set>orion
: TRUE ;
if $(MIPS)
{
flags gcc CFLAGS <architecture>mips1 : -mips1 ;
flags gcc CFLAGS <architecture>mips2 : -mips2 ;
flags gcc CFLAGS <architecture>mips3 : -mips3 ;
flags gcc CFLAGS <architecture>mips4 : -mips4 ;
flags gcc CFLAGS <instruction-set>r2000 : -mcpu=r2000 ;
flags gcc CFLAGS <instruction-set>r3000 : -mcpu=r3000 ;
flags gcc CFLAGS <instruction-set>r3900 : -mcpu=r3900 ;
flags gcc CFLAGS <instruction-set>r4000 : -mcpu=r4000 ;
flags gcc CFLAGS <instruction-set>r4100 : -mcpu=r4100 ;
flags gcc CFLAGS <instruction-set>r4300 : -mcpu=r4300 ;
flags gcc CFLAGS <instruction-set>r4400 : -mcpu=r4400 ;
flags gcc CFLAGS <instruction-set>r4600 : -mcpu=r4600 ;
flags gcc CFLAGS <instruction-set>r4650 : -mcpu=r4650 ;
flags gcc CFLAGS <instruction-set>r5000 : -mcpu=r5000 ;
flags gcc CFLAGS <instruction-set>r6000 : -mcpu=r6000 ;
flags gcc CFLAGS <instruction-set>r8000 : -mcpu=r8000 ;
flags gcc CFLAGS <instruction-set>orion : -mcpu=orion ;
# ...addressing model options
flags gcc ADDRESS_MODEL_INVALID <address-model>16 : TRUE ;
if $(ADDRESS_MODEL_INVALID)
{
EXIT "Error: Invalid addressing model for MIPS architecture (16)." ;
}
flags gcc CFLAGS <address-model>default : -mgp32 ;
flags gcc CFLAGS <address-model>32 : -mgp32 ;
flags gcc CFLAGS <address-model>64 : -mgp64 -mlong64 ;
}
#S390
if $(OSPLAT) = 390 || $(OSPLAT) = IA64
{
flags gcc CFLAGS <threading>multi : -D_REENTRANT ;
}
#
# define compiler names if not set:
.GCC ?= gcc ;
.GXX ?= g++ ;
flags gcc CFLAGS : -Wall ;
flags gcc C++FLAGS : -ftemplate-depth-255 ;
flags gcc CFLAGS <profiling>on : -pg ;
flags gcc LINKFLAGS <profiling>on : -pg ;
flags gcc C++FLAGS <rtti>off : -fno-rtti ;
flags gcc C++FLAGS <vtable-thunks>on : -fvtable-thunks ;
flags gcc C++FLAGS <vtable-thunks>off : -fvtable-thunks=0 ;
flags gcc CFLAGS <cflags> ;
flags gcc C++FLAGS <cxxflags> ;
flags gcc DEFINES <define> ;
flags gcc UNDEFS <undef> ;
flags gcc HDRS <include> ;
flags gcc SYSHDRS <sysinclude> ;
flags gcc LINKFLAGS <linkflags> ;
flags gcc LINKFLAGS <debug-symbols>off : -s ;
flags gcc ARFLAGS <arflags> ;
flags gcc STDHDRS : $(GCC_INCLUDE_DIRECTORY) ;
flags gcc STDLIBPATH : $(GCC_STDLIB_DIRECTORY) ;
if ! $(ARFLAGS)
{
flags gcc ARFLAGS : "" ;
}
if ! $(on-windows) # The compiler complains about -fPIC on NT
{
flags gcc CFLAGS <shared-linkable>true : -fPIC ;
flags gcc LINKFLAGS <shared-linkable>true : -fPIC ;
}
if $(BETOOLS)
{
flags gcc LINKFLAGS <target-type>$(SHARED_TYPES) : -nostart ;
}
else
{
flags gcc LINKFLAGS <target-type>$(SHARED_TYPES) : -shared ;
}
flags gcc LIBPATH <library-path> ;
flags gcc NEEDLIBS <library-file> ;
flags gcc FINDLIBS <find-library> ;
flags gcc DLLVERSION <dllversion> ;
DLLVERSION = $(DLLVERSION[1]) ;
DLLVERSION ?= $(BOOST_VERSION) ;
flags gcc TARGET_TYPE <target-type> ;
# allow for "ar" to be part of the compiler distribution, for
# example in mingw and cygwin
flags gcc .AR : [ GLOB $(GCC_BIN_DIRECTORY) $(PATH) : ar ar.exe ] ;
.AR ?= ar ;
# used to manipulate the object files produced by GCC to
# prevent the merging of debug symbols (which happens to be n^2 slow)
if ! ( --no-objcopy in $(ARGV) )
{
flags gcc .OBJCOPY : [ GLOB $(GCC_BIN_DIRECTORY) $(PATH) : objcopy ] ;
}
if ! $(on-windows)
{
flags gcc .SET_EXIT : "set -e" ;
}
# Since GCC doesn't support response files, we want to give it a
# chance to execute any long commands via spawnvp on NT, where the
# command-line length limitation can really get in the way. We call
# this on every target, but it will only take effect for targets we
# deem spawnable, and that have long command-lines.
rule gcc-spawn ( targets + )
{
if $(NT)
{
JAMSHELL on $(targets) = % ;
}
}
#### Link ####
rule Link-action
{
_ on $(<) = " " ;
# if we don't have a GNU linker then we can't pass any GNU-ld specific flags:
if $(NO_GNU_LN)
{
LNOPT on $(<) = ;
}
else
{
LNOPT on $(<) = "" ;
}
# do we use sonames or not?
if $(DLLVERSION) && $(TARGET_TYPE) in $(SHARED_TYPES) && ( $(OS) = LINUX || $(OS) = OPENBSD || $(OS) = KFREEBSD ) && ! $(NO_GNU_LN)
{
OUTTAG on $(<) = ".$(DLLVERSION)" ;
SOTAG on $(<) = ".$(DLLVERSION)" ;
ACTION_1 on $(<) = "" ;
}
else
{
OUTTAG on $(<) = "" ;
SOTAG on $(<) = ;
ACTION_1 on $(<) = ;
}
if [ on $(<) return $(ON_WINDOWS) ]
{
# On Win32, choose different image bases for load-time efficiency
DLL_LINK_FLAGS on $(<) += "-Wl,--enable-auto-image-base" ;
}
if $(<[2]) && [ on $(<) return $(ON_WINDOWS) ]
{
# Allow gcc-nocygwin to avoid this flag
if ! $(GCC_NO_EXPORT_ALL)
{
DLL_LINK_FLAGS on $(<) += "-Wl,--export-all-symbols" ;
}
# This will appear before the import library name when building a DLL, but
# will be "multiplied away" otherwise. The --exclude-symbols directive
# proved to be necessary with some versions of Cygwin.
DLL_LINK_FLAGS on $(<) += "-Wl,--exclude-symbols,_bss_end__:_bss_start__:_data_end__:_data_start__" ;
# set the link command to generate an import library
if ! $(NO_GNU_LN)
{
IMPLIB_COMMAND on $(<) = "-Wl,--out-implib," ;
}
}
DEPENDS $(<) : $(NEEDLIBS) $(NEEDIMPS) ;
gRUN_LD_LIBRARY_PATH($(<)) += $(STDLIBPATH:T) ;
# Workaround GCC's lack of command-files and NT's line-length limitation.
gcc-spawn $(<) ;
gcc-Link-action $(<) : $(>) ;
if $(DLLVERSION) && $(TARGET_TYPE) in $(SHARED_TYPES) && ( $(OS) = LINUX || $(OS) = OPENBSD || $(OS) = KFREEBSD ) && ! $(NO_GNU_LN)
{
return "$(<[1]).$(DLLVERSION)" ;
}
}
# for gcc, we repeat all libraries so that dependencies are always resolved
actions gcc-Link-action bind NEEDLIBS NEEDIMPS
{
$(.SET_EXIT)
$(SHELL_SET)$(gSHELL_LIBPATH)=$(LINK_LIBPATH)$(gAPPEND_LD_LIBRARY_PATH)
$(SHELL_EXPORT)$(gSHELL_LIBPATH)
"$(.GXX[1]:R=$(GCC_BIN_DIR))" $(.GXX[2-]) "$(DLL_LINK_FLAGS)" "$(IMPLIB_COMMAND)$(<[2])" $(LINKFLAGS) -o "$(<[1])$(OUTTAG)" -L"$(LIBPATH:T)" -L"$(STDLIBPATH:T)" "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" "$(IMPLIB_FLAGS)$(NEEDIMPS)" -l$(FINDLIBS) $(LNOPT)$(RPATH_LINK). $(LNOPT)$(SONAME)$(<[1]:D=)$(SOTAG)
$(ACTION_1)$(LN)$(_)-fs$(_)"$(<[1]:D=)$(OUTTAG)"$(_)"$(<[1])"
}
#### Cc #####
rule Cc-action
{
gcc-spawn $(<) ;
_ on $(<) = " " ;
gcc-Cc-action $(<) : $(>) ;
}
actions gcc-Cc-action
{
$(.SET_EXIT)
"$(.GCC[1]:R=$(GCC_BIN_DIR))" $(.GCC[2-]) -c -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I$(_)"$(STDHDRS)" -I$(_)"$(SYSHDRS)" -o "$(<)" "$(>)"
"$(.OBJCOPY[1])"$(_)$(OBJCOPY_FLAGS)$(_)"$(<)"
}
#### C++ ####
rule C++-action
{
gcc-spawn $(<) ;
_ on $(<) = " " ;
gcc-C++-action $(<) : $(>) ;
}
actions gcc-C++-action
{
$(.SET_EXIT)
"$(.GXX[1]:R=$(GCC_BIN_DIR))" $(.GXX[2-]) -c -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I$(_)"$(STDHDRS)" -I$(_)"$(SYSHDRS)" -o "$(<)" "$(>)"
"$(.OBJCOPY[1])"$(_)$(OBJCOPY_FLAGS)$(_)"$(<)"
}
#### Archive ####
rule Archive-action
{
gcc-spawn $(<) ;
gcc-Archive-action $(<) : $(>) ;
}
actions updated together piecemeal gcc-Archive-action
{
"$(.AR[1])" $(AROPTIONS) ru$(ARFLAGS:J=) "$(<)" "$(>)"
}

View File

@@ -1,113 +0,0 @@
#!/usr/bin/env python
#~ Copyright 2002 David Abrahams.
#~ 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)
# Valid arguments
setValueArgs = {"-ld" : "LD",
"-ldflags" : "LDFLAGS",
"-optldflags" : "OPTLDFLAGS",
"-impfilename" : "IMPFILENAME",
"-expflag" : "EXPFLAG",
"-maxlinelength" : "maxlinelength",
"-verbose" : "chatty",
"-directory" : "CHDIR" }
validArgs = setValueArgs.keys()
# Little function to generate a usage statement.
def printUsage():
print "Usage: generateImportFile <target lib base name>"
# Helper to execute the given command string in the host OS.
def execCommand(command, chatty):
if chatty:
print command
import os
os.system(command)
# Default values for the important vars
LD = "xlC_r"
LDFLAGS = "-G -qmkshrobj"
OPTLDFLAGS = ""
EXPFLAG = "-qexpfile"
maxlinelength = 4095
OBJS = ""
chatty = None
import sys
nargs = len(sys.argv)
if nargs < 2:
printUsage()
exit(1)
# Get the name of the lib target.
LIBTARGET = sys.argv[1]
if LIBTARGET[-3:] != ".so":
LIBTARGET += ".so"
# The default name for the export and import files we'll be generating.
EXPFILENAME = LIBTARGET[:-3] + ".exp"
IMPFILENAME = LIBTARGET[:-3] + ".imp"
CHDIR = "."
# Parse optional arguments
for iarg in xrange(2, nargs):
arg = sys.argv[iarg]
# Is this a -thingy=thingyValue argument?
if arg[0] == "-":
assert arg.count("=") == 1
argKey, argValue = arg.split("=")
if argKey not in validArgs:
printUsage()
exit(1)
exec("%s = '%s'" % (setValueArgs[argKey], argValue))
print "Setting " + setValueArgs[argKey] + " to " + argValue
# Is this an object file/lib that needs to be linked in?
elif arg[-2:] == ".o" or arg[-2:] == ".a" or arg[-3:] == ".so":
OBJS += arg + " "
else:
printUsage()
exit()
import os
os.chdir(CHDIR)
# Generate the export file by creating the shared obj library, which we then
# promptly delete.
command = LD + " " + LDFLAGS + " " + OPTLDFLAGS + " " + \
EXPFLAG + "=" + EXPFILENAME + " " + \
OBJS + " -o " + LIBTARGET
execCommand(command, chatty)
execCommand("rm -f " + LIBTARGET, chatty)
# Create the import file, and put the required tag as the first line indicating
# the name of the archive which is exporting these symbols.
impfile = open(IMPFILENAME, 'w')
impfile.write("#!" + LIBTARGET + "\n")
# Attach the list of symbols being exported to the import file.
expfile = open(EXPFILENAME, 'r')
symbol = expfile.readline()
while symbol:
if len(symbol) <= maxlinelength:
if symbol[-1] != '\n':
symbol += '\n'
impfile.write(symbol)
else:
print 'skipping', str(len(symbol)) + '-character symbol:',str(symbol)
symbol = expfile.readline()
impfile.close()
expfile.close()
#command = "cat " + EXPFILENAME + " >> " + IMPFILENAME
#execCommand(command, chatty)
# Remove the export file.
execCommand("rm -f " + EXPFILENAME, chatty)

View File

@@ -1,155 +0,0 @@
----------------------------------
Boost.Build contributor guidelines
----------------------------------
Boost.Build is an open-source project. This means that we welcome and
appreciate all contributions --- be it ideas, bug reports, or patches.
This document contains guidelines which helps to assure that development
goes on smoothly, and changes are made quickly.
The guidelines are not mandatory, and you can decide for yourself which one
to follow. But note, that 10 mins that you spare writing a comment, for
example, might lead to significally longer delay for everyone.
Before contributing, make sure you are subscribed to our mailing list
jamboost@yahoogroups.com
Additional resources include
- brief issues list
http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?Boost.Build/Issues
- the issue tracker
http://zigzag.cs.msu.su:7814
- commits mailing list:
boost-build@lists.sourceforge.net
http://sourceforge.net/mailarchive/forum.php?forum_id=9097
BUGS and PATCHES
When reporting a bug, please try to provide the following information.
- What you did. A minimal reproducible testcase is very much appreciated.
Shell script with some annotations is much better than verbose description of
the problem. A regression test is the best (see test/test_system.html).
- What you got.
- What you expected.
- What version of Boost.Build and Boost.Jam did you use. If possible,
please try to test with the CVS HEAD state.
When submitting a patch, please:
- make a single patch for a single logical change
- follow the policies and coding conventions below,
- set patches in unified diff format,
- provide a log message together with the patch
The purpose of log message serves to communicate what was changed, and
*why*. Without a good log message, you might spend a lot of time later,
wondering where a strange piece of code came from and why it was necessary.
The good log message mentions each changed file and each rule/method, saying
what happend to it, and why. Consider, the following log message
Better direct request handling.
* new/build-request.jam
(directly-requested-properties-adjuster): Redo.
* new/targets.jam
(main-target.generate-really): Adjust properties here.
* new/virtual-target.jam
(register-actual-name): New rule.
(virtual-target.actualize-no-scanner): Call the above, to detected bugs,
where two virtual target correspond to one Jam target name.
The log messages for the last two files are good. They tell what was
changed. The change to the first file is clearly undercommented.
It's OK to use terse log messages for uninteresting changes, like
ones induces by interface changes elsewhere.
POLICIES.
1. Testing.
All serious changes must be tested. New rules must be tested by the module
where they are declared. Test system (test/test_system.html) should be used
to verify user-observable behaviour.
2. Documentation.
It turns out that it's hard to have too much comments, but it's easy to have
too little. Please predend each rule with a comment saying what the rule does
and what arguments means. Stop for a minute and consider if the comment makes
sense for anybody else, and completely describes what the rules does. Generic
phrases like "adjusts properties" are really not enough.
When applicable, make changes to the user documentation as well.
CODING CONVENTIONS.
1. All names of rules and variables are lowercase with "-" to separate
words.
rule call-me-ishmael ( ) ...
2. Names with dots in them are "intended globals". Ordinary globals use
a dot prefix:
.foobar
$(.foobar)
3. Pseudofunctions or associations are <parameter>.<property>:
$(argument).name = hello ;
$($(argument).name)
4. Class attribute names are prefixed with "self.":
self.x
$(self.x)
5. Builtin rules are called via their ALL_UPPERCASE_NAMES:
DEPENDS $(target) : $(sources) ;
6. Opening and closing braces go on separate lines:
if $(a)
{
#
}
else
{
#
}
HTML DOCUMENTATION.
Please pass HTML files though HTML Tidy (http://tidy.sf.net) before
comitting. This has to important purposes:
- detecting bad HTML
- converting files to uniform indentation style, which inverses effect
of different editors and makes differences between revisions much
smaller and easy for review.
Alas, the way Tidy indents HTML differs between version. Please use
the version awailable at
http://tidy.sourceforge.net/src/old/tidy_src_020411.tgz
and "-i -wrap 78" command line parameters.
--
Copyright 2002-2003 Vladimir Prus.
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)

View File

@@ -1,21 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta http-equiv="refresh" content="0; URL=build_system.htm">
<title></title>
</head>
<body>
Automatic redirection failed, please go to <a href=
"build_system.htm">build_system.htm</a>.
<p>Copyright &copy; Dave Abrahams 2002.</p>
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</body>
</html>

View File

@@ -1,110 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Boost.Build - intel-linux toolset</title>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1st September 2003), see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</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="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<h2 align="center">intel-linux toolset</h2>
</td>
</tr>
</table>
<hr>
<h2>Introduction</h2>
<p>Boost.Build's intel-linux toolset supports the <a href=
"http://www.intel.com/software/products/compilers/clin/index.htm">Intel C++
Compiler for Linux</a>.</p>
<h2>Configuration Variables</h2>
<p>The intel-linux 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>. If neither variable is
set but <code>iccvars.sh</code> can be found in the <code>PATH</code>, then
the version of the tools installed where <code>iccvars.sh</code> lives is
used.</p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%" border="1">
<tr>
<td><strong>Variable Name</strong></td>
<td><strong>Semantics</strong></td>
<td><strong>Defaults</strong></td>
<td><strong>Notes</strong></td>
</tr>
<tr>
<td><code>INTEL_VERSION</code></td>
<td>The version of the compiler to use.</td>
<td>80</td>
<td>If <code>INTEL_PATH</code> is set, this variable is ignored.</td>
</tr>
<tr>
<td>INTEL_PATH</td>
<td>The path to the compiler installation.</td>
<td>The default installation location for the version specified by
<code>INTEL_VERSION.</code></td>
<td></td>
</tr>
<tr>
<td>INTEL_CC</td>
<td>The name of the C compiler.</td>
<td>icc</td>
<td></td>
</tr>
<tr>
<td>INTEL_CXX</td>
<td>The name of the C++ compiler/linker.</td>
<td>icpc</td>
<td></td>
</tr>
</table>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
01 Oct, 2004 <!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p>Copyright &copy; Dave Abrahams 2002-2003.</p>
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</body>
</html>

View File

@@ -1,188 +0,0 @@
# (C) Copyright David Abrahams 2001.
# 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)
# Adapted from gcc-tools.jam by Joerg Walter
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version
# number.
#//<a href="http://www.intel.com/software/products/compilers/">Intel<br>C++</a>
set-as-singleton INTEL_PATH ;
INTEL_VERSION ?= $(INTEL_LINUX_VERSION) ; # For backwards compatibility
INTEL_CC ?= icc ;
INTEL_CXX ?= icpc ;
# Attempt to look in the PATH if no variables have been set up.
if ! $(INTEL_VERSION) && ! $(INTEL_PATH)
{
local paths = [ MATCH ^(.*/(compiler[567]0/ia32|intel_cc_[0-9]+))/ : [ GLOB $(PATH) : iccvars.sh ] ] ;
INTEL_PATH ?= $(paths[0]) ;
}
INTEL_VERSION ?= 80 ;
# In case the path is unspecified, try to deduce it from the version
if $(INTEL_VERSION) in 50 60 70
{
INTEL_PATH ?= /opt/intel/compiler$(INTEL_VERSION)/ia32 ;
}
else
{
INTEL_PATH ?= /opt/intel_cc_$(INTEL_VERSION) ;
}
# Root directory
flags intel-linux INTEL_LINUX_ROOT : $(INTEL_PATH) ;
# Setup script
flags intel-linux INTEL_LINUX_SETUP : ". "$(INTEL_LINUX_ROOT)"/bin/iccvars.sh" ;
# Additional DLL directory
flags intel-linux INTEL_LINUX_RUN_LD_LIBRARY_PATH : $(INTEL_LINUX_ROOT)"/lib" ;
#### compiler and linker switches ####
# debugging
flags intel-linux CFLAGS <debug-symbols>on : -g ;
flags intel-linux LINKFLAGS <debug-symbols>on : -g ;
flags intel-linux LINKFLAGS <debug-symbols>off : -Xlinker -s ;
# optimizations
flags intel-linux CFLAGS <optimization>off : -O0 ;
flags intel-linux CFLAGS <optimization>space : -O2 ;
flags intel-linux CFLAGS <optimization>speed : -O3 ;
# standard library
flags intel-linux CFLAGS <stdlib>gcc : -cxxlib-gcc ;
flags intel-linux LINKFLAGS <stdlib>gcc : -cxxlib-gcc ;
# inlining
# results using -ip are worse than without?
# flags intel-linux CFLAGS <inlining>full : -ip ;
# threading
flags intel-linux CFLAGS <threading>multi : -openmp ;
flags intel-linux LINKFLAGS <threading>multi : -openmp ;
# profiling
flags intel-linux CFLAGS <profiling>on : -p ;
flags intel-linux LINKFLAGS <profiling>on : -p ;
# position independent code
flags intel-linux CFLAGS <shared-linkable>true : -KPIC ;
flags intel-linux LINKFLAGS <shared-linkable>true : -KPIC ;
# dynamic link library
flags intel-linux LINKFLAGS <target-type>$(SHARED_TYPES) : -shared ;
# library linking
flags intel-linux LINKFLAGS <runtime-link>static : -static ;
# required libraries
flags intel-linux FINDLIBS : rt ;
flags intel-linux FINDLIBS <runtime-link>static : pthread ;
#### standard settings ####
flags intel-linux UNDEFS <undef> ;
flags intel-linux DEFINES <define> ;
flags intel-linux CFLAGS <cflags> ;
flags intel-linux C++FLAGS <cxxflags> ;
flags intel-linux HDRS <include> ;
flags intel-linux LIBPATH <library-path> ;
flags intel-linux NEEDLIBS <library-file> ;
flags intel-linux FINDLIBS <find-library> ;
flags intel-linux STDHDRS <sysinclude> ;
flags intel-linux LINKFLAGS <linkflags> ;
flags intel-linux ARFLAGS <arflags> ;
if ! $(ARFLAGS)
{
flags intel-linux ARFLAGS : "" ;
}
flags intel-linux DLLVERSION <dllversion> ;
DLLVERSION = $(DLLVERSION[1]) ;
DLLVERSION ?= $(BOOST_VERSION) ;
flags intel-linux TARGET_TYPE <target-type> ;
#### Cc ####
rule Cc-action
{
intel-linux-Cc-action $(<) : $(>) ;
}
actions intel-linux-Cc-action
{
$(INTEL_LINUX_SETUP)
$(INTEL_CC) -c -w1 -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)"
}
#### C++ ####
rule C++-action
{
intel-linux-C++-action $(<) : $(>) ;
}
actions intel-linux-C++-action
{
$(INTEL_LINUX_SETUP)
$(INTEL_CXX) -c -w1 -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)"
}
#### Archive ####
rule Archive-action
{
intel-linux-Archive-action $(<) : $(>) ;
}
actions updated together piecemeal intel-linux-Archive-action
{
ar ru$(ARFLAGS) "$(<)" "$(>)"
}
#### Link ####
rule Link-action
{
local result ;
gRUN_LD_LIBRARY_PATH($(<)) += $(INTEL_LINUX_RUN_LD_LIBRARY_PATH) ;
SPACE on $(<) = " " ;
if $(DLLVERSION) && $(TARGET_TYPE) in $(SHARED_TYPES)
{
OUTTAG on $(<) = ".$(DLLVERSION)" ;
SOTAG on $(<) = ".$(DLLVERSION)" ;
ACTION_1 on $(<) = "" ;
result += "$(<[1]:D=).$(DLLVERSION)" ;
}
else
{
OUTTAG on $(<) = "" ;
SOTAG on $(<) = ;
ACTION_1 on $(<) = ;
}
intel-linux-Link-action $(<) : $(>) ;
return $(result) ;
}
# for icc, we repeat all libraries so that dependencies are always resolved
actions intel-linux-Link-action bind NEEDLIBS NEEDIMPS
{
$(INTEL_LINUX_SETUP)
$(INTEL_CXX) $(LINKFLAGS) -o "$(<[1])$(OUTTAG)" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" $(NEEDLIBS) $(NEEDLIBS) -l$(FINDLIBS) "$(IMPLIB_FLAGS)$(NEEDIMPS)" "-Qoption,link,-soname,$(<[1]:D=)$(SOTAG)"
$(ACTION_1)$(LN)$(SPACE)-fs$(SPACE)"$(<[1]:D=)$(OUTTAG)"$(SPACE)"$(<[1])"
}

View File

@@ -1,14 +0,0 @@
#~ Copyright 2004 Rene Rivera.
#~ 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://developer.intel.com/software/products/compilers/">Intel<br>C++</a>
{
extends-toolset intel-win32 ;
# disable auto-linking for this toolset:
# intel toolset lib naming is currently too inconsistent for auto-linking to work.
CFLAGS += "/DBOOST_ALL_NO_LIB=1" ;
}

View File

@@ -1,14 +0,0 @@
#~ Copyright 2004 Stefan Slapeta.
#~ 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://developer.intel.com/software/products/compilers/">Intel<br>C++</a>
{
extends-toolset intel-win32 ;
# disable auto-linking for this toolset:
# intel toolset lib naming is currently too inconsistent for auto-linking to work.
CFLAGS += "/DBOOST_ALL_NO_LIB=1" ;
}

View File

@@ -1,14 +0,0 @@
#~ Copyright 2004 Stefan Slapeta.
#~ 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://developer.intel.com/software/products/compilers/">Intel<br>C++</a>
{
extends-toolset intel-win32 ;
# disable auto-linking for this toolset:
# intel toolset lib naming is currently too inconsistent for auto-linking to work.
CFLAGS += "/DBOOST_ALL_NO_LIB=1" ;
}

View File

@@ -1,35 +0,0 @@
# Intel Compiler on Windows, using the STLPort Standard Library
# (C) Copyright David Abrahams 2002.
# 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://developer.intel.com/software/products/compilers/">Intel<br>C++</a><br><a href="http://www.stlport.org/">STLport</a>
flags $(gCURRENT_TOOLSET) STLPORT_LIB_BASE_NAME ;
STLPORT_LIB_BASE_NAME ?= stlport_icl ;
{
local INTEL_BASE_MSVC_TOOLSET = msvc-stlport ;
extends-toolset intel-win32 ;
# Intel's compiler doesn't seem to encode the path to the STLPort
# library in shared libs. This path setting works for the Python
# tests, and seems to be unneeded for the regression tests, but it
# is a slight hack.
local root = [ get-stlport-root ] ;
if ! [ MATCH $(root)[\\\\/]lib : $(gTOOLSET_LIB_PATH) ]
{
# Stick it at the front of the path because Windows only seems
# to be willing to look so far, then quits!
gTOOLSET_LIB_PATH = $(root)/lib $(gTOOLSET_LIB_PATH) ;
}
if ! [ MATCH $(root)[\\\\/]lib : $(RUN_PATH) ]
{
RUN_PATH = $(root)/lib $(RUN_PATH) ;
}
}

View File

@@ -1,117 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1st September 2003), see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<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="../../../boost.png" 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>
<h2>Introduction</h2>
<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>
<h2>Configuration Variables</h2>
<p>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="vc-7_1-tools.html">vc-7_1</a> instead.
</p>
<table border="1" summary="settings">
<tr>
<th>Variable Name</th>
<th>Semantics</th>
<th>Default</th>
<th>Notes</th>
</tr>
<tr>
<td><code>INTEL_PATH</code></td>
<td>The path of the compiler installation.</td>
<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>vc-7_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 -->
10 Oct, 2004 <!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p>Copyright &copy; Dave Abrahams 2002.</p>
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</body>
</html>

View File

@@ -1,120 +0,0 @@
# Intel Compiler (on Windows, using the Microsoft Standard Library)
# (C) Copyright David Abrahams 2001.
# 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://developer.intel.com/software/products/compilers/">Intel<br>C++</a>
# singleton variables...
set-as-singleton INTELC ;
# compute INTEL tool path. You can either use the environment variable
# setup that comes with the Intel compiler, or you can set the
# INTEL_PATH or INTELC (in order to respect FTJam setup) environment
# variables to point at the intel-win32 installation directory
INTEL_PATH ?= $(INTELC) ;
INTEL_TOOL_PATH ?= "$(INTEL_PATH)"\\bin\\ ;
# if you have vc6 and vc7 installed, you may want your intel compiler
# to use the VC7 libraries. In that case, you might set
# INTEL_BASE_MSVC_TOOLSET = vc7
# instead.
INTEL_BASE_MSVC_TOOLSET ?= msvc ;
extends-toolset $(INTEL_BASE_MSVC_TOOLSET) ;
VC_TOOL_PATH = $(INTEL_TOOL_PATH) ;
VC_STDLIB_PATH = "$(INTEL_PATH)"\\bin ;
VC_COMPILER = icl ;
VC_LINKER = xilink ;
# Extract the compiler version from its installation path
local version = $(INTEL_VERSION) ;
# Syntax < 9
version ?= [ MATCH .*[\\/][Cc][Oo][Mm][Pp][Ii][Ll][Ee][Rr]([0-9])[0-9][\\/].* : $(INTEL_TOOL_PATH) ] ;
# Syntax >= 9.0
version ?= [ MATCH .*[\\/][Cc][\+][\+][\\/]([0-9])\.[0-9][\\/].* : $(INTEL_TOOL_PATH) ] ;
# Reduce the number of spurious error messages
C++FLAGS += /Qwn5 /Qwd985 ;
# Detect illegal conversions in this program:
#
# # include <vector>
# # include <algorithm>
# int main()
# {
# char* a[20];
# std::vector<int> v(20);
# std::copy(v.begin(), v.end(), a);
# return 0;
# }
C++FLAGS += /Qwe556 ;
# Enable ADL
C++FLAGS += -Qoption,c,--arg_dep_lookup ; #"c" works for C++, too
if $(version) <= 5
{
# remove options unrecognized by Intel5
C++FLAGS = [ difference $(C++FLAGS) : /Zc:wchar_t,forScope ] ;
}
else
{
C++FLAGS += /Zc:forScope ; # Add support for correct for loop scoping
}
# Add options recognized only by intel7
if $(version) >= 7
{
C++FLAGS += /Qansi_alias ;
}
# tell the compiler about the base toolset.
if [ MATCH (vc-7_1).* : $(INTEL_BASE_MSVC_TOOLSET) ]
{
C++FLAGS += /Qvc7.1 ;
}
else if [ MATCH (vc7).* : $(INTEL_BASE_MSVC_TOOLSET) ]
{
C++FLAGS += /Qvc7 ;
}
else if [ MATCH (msvc).* : $(INTEL_BASE_MSVC_TOOLSET) ]
{
C++FLAGS += /Qvc6 ;
}
if $(INTEL_BASE_MSVC_TOOLSET) = msvc
{
# no wchar_t support in vc6 dinkum library. Furthermore, in vc6
# compatibility-mode, wchar_t is not a distinct type from unsigned
# short
C++FLAGS += -DBOOST_NO_INTRINSIC_WCHAR_T ;
}
else if $(version) > 5
{
# Add support for wchar_t
C++FLAGS += /Zc:wchar_t
# Tell the dinkumware library about it.
-D_NATIVE_WCHAR_T_DEFINED
;
}
# remove any duplicates caused by the additions above
C++FLAGS = [ unique $(C++FLAGS) ] ;
if $(VC_SETUP)
{
if $(version) <= 7
{
VC_SETUP = "CALL \"$(INTEL_TOOL_PATH)ICCVARS.BAT\" > nul" ;
}
else
{
VC_SETUP = "CALL \"$(INTEL_TOOL_PATH)ICLVARS.BAT\" > nul" ;
}
}

View File

@@ -1,17 +0,0 @@
# Intel Compiler on Windows, using the STLPort Standard Library
# (C) Copyright David Abrahams 2002.
# 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://developer.intel.com/software/products/compilers/">Intel<br>C++</a><br><a href="http://www.stlport.org/">STLport</a>
{
extends-toolset intel-win32-stlport ;
feature stlport-iostream : on off ;
DEFINES = [ difference $(DEFINES) : _STLP_NO_SGI_IOSTREAMS=1 ] ;
# disable auto-linking for this toolset:
# intel toolset lib naming is currently too inconsistent for auto-linking to work.
CFLAGS += "/DBOOST_ALL_NO_LIB=1" ;
}

View File

@@ -1,15 +0,0 @@
# Intel Compiler on Windows, using the STLPort Standard Library
# (C) Copyright David Abrahams 2002.
# 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://developer.intel.com/software/products/compilers/">Intel<br>C++</a>
{
extends-toolset intel-win32 ;
# disable auto-linking for this toolset:
# intel toolset lib naming is currently too inconsistent for auto-linking to work.
CFLAGS += "/DBOOST_ALL_NO_LIB=1" ;
}

View File

@@ -1,79 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1st September 2003), see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
<title>Boost.Build - kcc 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="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<h2 align="center">kcc toolset</h2>
</td>
</tr>
</table>
<hr>
<h2>Introduction</h2>
<p>Boost.Build's kcc toolset
supports the Intel KAI C++ Compiler.</p>
<p><b>WARNING:</b> This compiler is no longer being distributed by Intel,
see the <a href=
"http://www.nersc.gov/nusers/resources/software/kai/kcc/">announcement</a>
for details.</p>
<h2>Configuration Variables</h2>The kcc 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>:
<table border="1" summary="settings">
<tr>
<th>Variable Name</th>
<th>Semantics</th>
<th>Default</th>
<th>Notes</th>
</tr>
<tr>
<td><code>kcc.root-directory</code></td>
<td>Path to installation of compiler tools.</td>
<td>(none)</td>
<td>If not set tools must be available in the executable path.</td>
</tr>
</table>
<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>Copyright &copy; Dave Abrahams 2002.</p>
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</body>
</html>

View File

@@ -1,81 +0,0 @@
# (C) Copyright Jeremy Siek 2001.
# 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)
flags kcc CFLAGS <debug-symbols>on : -g ;
flags kcc LINKFLAGS <debug-symbols>on : -g ;
flags kcc LINKFLAGS <debug-symbols>off : -s ;
flags kcc CFLAGS <optimization>off : +K0 ;
flags kcc CFLAGS <optimization>speed : +K2 ;
flags kcc CFLAGS <optimization>space : ;
flags kcc CFLAGS <inlining>off : ;
flags kcc CFLAGS <inlining>on : --inline_generated_space_time=10000 --inline_implicit_space_time=10000 --inline_keyword_space_time=10000 ;
flags kcc CFLAGS <inlining>full : --inline_auto_space_time=10000 --inline_generated_space_time=10000 --inline_implicit_space_time=10000 --inline_keyword_space_time=10000 ;
flags kcc CFLAGS <cflags> ;
flags kcc C++FLAGS <cxxflags> ;
flags kcc DEFINES <define> ;
flags kcc UNDEFS <undef> ;
flags kcc HDRS <include> ;
flags kcc SYSHDRS <sysinclude> ;
flags kcc LINKFLAGS <linkflags> ;
flags kcc ARFLAGS <arflags> ;
flags kcc LIBPATH <library-path> ;
flags kcc NEEDLIBS <library-file> ;
flags kcc FINDLIBS <find-library> ;
set-as-singleton kcc.root-directory ;
kcc.bin-directory = $(kcc.root-directory)$(SLASH)bin$(SLASH) ;
kcc.bin-directory ?= " " ;
#### Link ####
rule Link-action
{
kcc-Link-action $(<) : $(>) ;
}
actions kcc-Link-action bind NEEDLIBS NEEDIMPS
{
$(kcc.bin-directory)KCC $(LINKFLAGS) -o "$(<[1])" -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(IMPLIB_FLAGS)$(NEEDIMPS)" -lm
}
#### Cc #####
rule Cc-action
{
kcc-Cc-action $(<) : $(>) ;
}
actions kcc-Cc-action
{
$(kcc.bin-directory)KCC -c $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" -o "$(<)" "$(>)"
}
#### C++ ####
rule C++-action
{
kcc-C++-action $(<) : $(>) ;
}
actions kcc-C++-action
{
$(kcc.bin-directory)KCC -c -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" -o "$(<)" "$(>)"
}
#### Archive ####
rule Archive-action
{
kcc-Archive-action $(<) : $(>) ;
}
actions updated together piecemeal kcc-Archive-action
{
$(kcc.bin-directory)KCC -g $(ARFLAGS) -o "$(<)" "$(>)"
}

View File

@@ -1,88 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1st September 2003), see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
<title>Boost.Build - borland toolset</title>
</head>
<body link="#0000FF" vlink="#800080">
<table border="0" cellpadding="7" cellspacing="0" width="100%" summary=
"header">
<tbody>
<tr>
<td valign="top" width="300">
<h3><a href="http://www.boost.org/"><img src=
"../../../boost.png" alt="C++ Boost" border="0" width="277"
height="86"></a></h3>
</td>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<h2 align="center">Kylix toolset</h2>
</td>
</tr>
</tbody>
</table>
<hr>
<h2>Introduction</h2>
<p>Boost.Build's <a href="http://www.borland.com/kylix">Kylix</a> toolset
supports the <a href="http://www.borland.com/">Borland</a> C++ linux
compiler.</p>
<h2>Configuration Variables</h2>
<p>The kylix toolset responds to the following variables which can be set
in the environment or configured on the jam command-line using
<code>-s</code><code><i>VARIABLE_NAME</i></code><code>=</code><i>value</i>:</p>
<table border="1" summary="settings">
<tbody>
<tr>
<th>Variable Name</th>
<th>Semantics</th>
<th>Default</th>
<th>Notes</th>
</tr>
<tr>
<td><code>KYLIX_ROOT</code></td>
<td>The directory in which kylix was installed. Normally this will be
either /usr/local/kylix3 or ~/kylix3.</td>
<td>(none)</td>
<td>If not set the user must ensure that the environment variables
required by Kylix are correctly set, normally this is achieved by
sourcing the "kylixpath" shell script in the Kylix bin/
directory.</td>
</tr>
</tbody>
</table>
<hr>
<p>Revised <!--webbot bot="Timestamp" startspan s-type="EDITED"
s-format="%d %B, %Y" -->16 December, 2002<!--webbot bot="Timestamp"
i-checksum="38515" endspan --></p>
<p><i>&copy; Copyright</i> <a href="mailto:john@johnmaddock.co.uk"><i>John
Maddock</i></a><i> 2002.</i></p>
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</body>
</html>

View File

@@ -1,155 +0,0 @@
# (C) Copyright John Maddock 2002.
# (C) Copyright David Abrahams 2001.
# 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://www.borland.com/kylix">Kylix</a>
# Borland tool definitions for Kylix.
# KYLIX_PATH is the install location of the kylix tools.
# This will be either /usr/local/kylix3 or ~/kylix3 depending upon install options.
set-as-singleton KYLIX_PATH ;
# compute kylix execution prefix
# You can either source the "kylixpath" shell script provided by Borland
# or set KYLIX_PATH to point to your Kylix install directory
if $(KYLIX_PATH)
{
KYLIX_EXEC_PREFIX = "source $(KYLIX_PATH)/bin/kylixpath > /dev/null && " ;
}
else
{
KYLIX_EXEC_PREFIX = "" ;
}
# specify compilation and link flags
flags kylix CFLAGS <debug-symbols>on : -v ;
flags kylix LINKFLAGS <debug-symbols>on : -v ;
flags kylix CFLAGS <optimization>off : -Od ;
flags kylix CFLAGS <optimization>speed : -O2 ;
flags kylix CFLAGS <optimization>space : -O1 ;
flags kylix CFLAGS <inlining>off : -vi- ;
flags kylix CFLAGS <inlining>on : -vi -w-inl ;
flags kylix CFLAGS <inlining>full : -vi -w-inl ;
# build the options common to the link and C/C++ command-lines
{
local bcc-common-flags ;
# this section sets up the target type (threading,
# RTL, and console/GUI options).
local target-type = [ get-values <target-type> : $(gBUILD_PROPERTIES) ] ;
if ! $(target-type) || ! ( $(target-type) in $(SHARED_TYPES) )
{
flags kylix bcc-common-flags <user-interface>console : -tC ;
flags kylix bcc-common-flags <user-interface>gui : -t ;
}
else
{
flags kylix bcc-common-flags <runtime-link>dynamic : -tD ;
}
flags kylix bcc-common-flags <target-type>$(SHARED_TYPES) : -tD ;
flags kylix LINKFLAGS : $(bcc-common-flags) ;
flags kylix CFLAGS : $(bcc-common-flags) ;
}
flags kylix CFLAGS <cflags> ;
flags kylix C++FLAGS <cxxflags> ;
flags kylix DEFINES <define> ;
flags kylix UNDEFS <undef> ;
flags kylix HDRS <include> ;
flags kylix SYSHDRS <sysinclude> ;
flags kylix LINKFLAGS <linkflags> ;
flags kylix ARFLAGS <arflags> ;
flags kylix FINDLIBS : pthread ;
flags kylix FINDLIBS : rt ;
flags kylix FINDLIBS : m ;
flags kylix FINDLIBS : dl ;
flags kylix CFLAGS <threading>single : -DBOOST_NO_THREADS ;
flags kylix LIBPATH <library-path> ;
flags kylix NEEDLIBS <library-file> ;
flags kylix FINDLIBS <find-library> ;
#### Link ####
rule Link-action
{
# Make sure that the kylix runtime dlls are in the runtime path
gRUN_PATH($(<)) += $(BCC_TOOL_PATH) ;
kylix-Link-action $(<) : $(>) $(NEEDLIBS) ;
}
actions kylix-Link-action
{
$(KYLIX_EXEC_PREFIX)bc++ -v -q $(LINKFLAGS) -L"$(LIBPATH)" -L"$(STDLIBPATH)" -o"$(<[1])" "$(>)" lib$(FINDLIBS).so
}
#### Cc #####
rule Cc-action
{
kylix-Cc-action $(<) : $(>) ;
}
actions kylix-Cc-action
{
$(KYLIX_EXEC_PREFIX)bc++ -P- -g255 -j5 -q -c -w -a8 -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" -o"$(<)" "$(>)"
}
#### C++ ####
rule C++-action
{
kylix-C++-action $(<) : $(>) ;
}
#
# for C++ compiles the following options are turned on by default:
#
# -j5 stops after 5 errors
# -g255 allow an infinite number of warnings
# -q no banner
# -c compile to object
# -P C++ code regardless of file extention
# -w turns on all warnings
# -Ve zero sized empty base classes, this option is on in the IDE by default
# and effects binary compatibility.
# -Vx zero sized empty members, this option is on in the IDE by default
# and effects binary compatibility.
# -a8 8 byte alignment, this option is on in the IDE by default
# and effects binary compatibility.
#
actions kylix-C++-action
{
$(KYLIX_EXEC_PREFIX)bc++ -j5 -g255 -q -c -w -Ve -Vx -a8 -x -xd -RT -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" -o"$(<)" "$(>)"
}
#### Archive ####
rule Archive-action
{
kylix-Archive-action $(<) : $(>) ;
}
actions updated together piecemeal kylix-Archive-action
{
ar -r $(<) $(>)
}

View File

@@ -1,11 +0,0 @@
# (C) Copyright MetaCommunications, Inc. 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)
{
local MINGW_ROOT_DIRECTORY = $(MINGW_3.3.1_ROOT_DIRECTORY) ;
extends-toolset mingw ;
}

View File

@@ -1,11 +0,0 @@
# (C) Copyright MetaCommunications, Inc. 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)
{
local MINGW_ROOT_DIRECTORY = $(MINGW_3.4.1_ROOT_DIRECTORY) ;
extends-toolset mingw ;
}

View File

@@ -1,11 +0,0 @@
# (C) Copyright MetaCommunications, Inc. 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)
{
local MINGW_ROOT_DIRECTORY = $(MINGW_3.4.2_ROOT_DIRECTORY) ;
extends-toolset mingw ;
}

View File

@@ -1,51 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
<title>Boost.Build - mingw-stlport 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="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<h2 align="center">mingw-stlport toolset</h2>
</td>
</tr>
</table>
<hr>
<h2>Introduction</h2>
<p>Boost.Build's <a href="http://www.mingw.org">mingw-stlport</a> toolset
supports the GNU <a href="http://gcc.gnu.org">GCC</a> compiler as the
<a href="http://www.mingw.org">MinGW</a> configuration, using <a href=
"http://www.stlport.org">STLport</a> as a replacement to the GNU
libg++.</p>
<p>In addition to what this toolset provides, configuration and extended
functionality is available through the common <a href=
"stlport.html">stlport library support</a>.</p>
<hr>
<p>Revised $Date$</p>
<p>Copyright &copy; Janusz Piwowarski 2004, Rene Rivera 2005.</p>
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</body>
</html>

View File

@@ -1,14 +0,0 @@
# Copyright (C) Janusz Piwowarski 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)
extends-toolset mingw ;
flags $(gCURRENT_TOOLSET) STLPORT_LIB_BASE_NAME ;
STLPORT_LIB_BASE_NAME = stlport_mingw32 ;
SEARCH on stlport.jam = $(BOOST_BUILD_PATH) ;
include stlport.jam ;

View File

@@ -1,112 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1st September 2003), see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
<title>Boost.Build - mingw 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="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<h2 align="center">mingw toolset</h2>
</td>
</tr>
</table>
<hr>
<h2>Introduction</h2>
<p>Boost.Build's <a href="http://www.mingw.org">mingw</a> toolset supports
the GNU <a href="http://gcc.gnu.org">GCC</a> compiler as the <a href=
"http://www.mingw.org">MinGW</a> configuration. This is hosted on Windows
and targets standalone Windows objects.</p>
<h2><a name="configuration"></a>Configuration Variables</h2>The mingw 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 an extension to the <a href="gcc-tools.html">gcc toolset</a>.
<table border="1" summary="settings">
<tr>
<th>Variable Name</th>
<th>Semantics</th>
<th>Default</th>
<th>Notes</th>
</tr>
<tr>
<td><code>MINGW_ROOT_DIRECTORY</code></td>
<td>Path to installation of MinGW.</td>
<td>(none)</td>
<td>If not set tools must be available in the executable path.</td>
</tr>
<tr>
<td><code>MINGW_BIN_DIRECTORY</code></td>
<td>The directory where the tool executables are located.</td>
<td><code>$(MINGW_ROOT_DIRECTORY)/bin/</code></td>
<td>&nbsp;</td>
</tr>
<tr>
<td><code>MINGW_INCLUDE_DIRECTORY</code></td>
<td>The directory containing the headers specific to the tools.</td>
<td><code>$(MINGW_ROOT_DIRECTORY)/include</code></td>
<td>&nbsp;</td>
</tr>
<tr>
<td><code>MINGW_STDLIB_DIRECTORY</code></td>
<td>The directory containing the compiled tool libraries.</td>
<td><code>$(MINGW_ROOT_DIRECTORY)/lib</code></td>
<td>&nbsp;</td>
</tr>
</table>
<p><b>Caution</b>: It appears that none of these paths must contain any
spaces, otherwise <b>spurious</b> file not found errors can result (last
reproduced with GCC3.3.1). To work around this limitation, either install
the MinGW under a path that does not contain spaces or use 8.3 names. For
example, if MinGW is installed in C:\Program Files\Dev-Cpp, <code>&quot;-sMINGW_ROOT_DIRECTORY=C:\Progra~1\Dev-Cpp&quot;</code>
should be specified on the bjam command line.</p>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->04 November, 2004<!--webbot bot="Timestamp" endspan i-checksum="39360" --></p>
<p>Copyright &copy; Dave Abrahams 2002.</p>
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</body>
</html>

View File

@@ -1,32 +0,0 @@
# Copyright 2001 David Abrahams.
# Copyright 2003-04 Rene Rivera.
# 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)
# singleton variables...
set-as-singleton MINGW_ROOT_DIRECTORY MINGW_BIN_DIRECTORY MINGW_INCLUDE_DIRECTORY MINGW_STDLIB_DIRECTORY ;
{
local GCC_ROOT_DIRECTORY = $(MINGW_ROOT_DIRECTORY) ;
local GCC_BIN_DIRECTORY = $(MINGW_BIN_DIRECTORY) ;
local GCC_INCLUDE_DIRECTORY = $(MINGW_INCLUDE_DIRECTORY) ;
local GCC_STDLIB_DIRECTORY = $(MINGW_STDLIB_DIRECTORY) ;
extends-toolset gcc ;
# So that RUNPATH, and PATH, is set to include where the mingw DLLs are located.
if $(GCC_BIN_DIRECTORY) && $(GCC_BIN_DIRECTORY) != ""
{
flags mingw STDLIBPATH : $(GCC_BIN_DIRECTORY) ;
}
}
flags mingw LINKFLAGS <user-interface>gui : -Wl,--subsystem,windows ;
flags mingw LINKFLAGS : -Wl,--allow-multiple-definition ;
# Prefer linking DLLs without the -Wl,--export-all-symbols flag
GCC_NO_EXPORT_ALL ?= true ;
# Use the -mno-cygwin flag for compiling C, C++ and linking
CFLAGS += -mno-cygwin ;
LINKFLAGS += -mno-cygwin ;

View File

@@ -1,121 +0,0 @@
<!-- saved from url=(0022)http://internet.e-mail -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1st September 2003), see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
<title>Boost.Build - mipspro 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="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<h2 align="center">mipspro toolset</h2>
</td>
</tr>
</table>
<hr>
<h2>Introduction</h2>
<p>Boost.Build's <a href=
"http://www.sgi.com/products/software/irix/tools/mipspro.html">mipspro</a>
toolset supports the SGI MIPSpro C and C++ compilers.</p>
<h2>Configuration Variables</h2>The mipspro 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>:
<table border="1" summary="settings">
<tr>
<th>Variable Name</th>
<th>Semantics</th>
<th>Default</th>
<th>Notes</th>
</tr>
<tr>
<td><code>MIPSPRO_TOOLROOT_DIRECTORY</code></td>
<td>Path to base directory for compiler system.</td>
<td><code>/usr</code></td>
<td>&nbsp;</td>
</tr>
<tr>
<td><code>MIPSPRO_ROOT_DIRECTORY</code></td>
<td>Path to base directory for installed libraries.</td>
<td><code>/usr</code></td>
<td>The ABI-dependant and ISA-dependant subdirectory names will
automatically be appended. For example, for an n32 and mips3 build, the
paths will be <code>$(MIPSPRO_ROOT_DIRECTORY)/lib32/mips3<br>
$(MIPSPRO_ROOT_DIRECTORY)/lib32</code></td>
</tr>
<tr>
<td><code>MIPSPRO_BIN_DIRECTORY</code></td>
<td>Path to bin directory of compiler excutables.</td>
<td><code>$(MIPSPRO_TOOLROOT_DIRECTORY)/bin</code></td>
<td>&nbsp;</td>
</tr>
<tr>
<td><code>MIPSPRO_INCLUDE_DIRECTORY</code></td>
<td>Path to tool headers.</td>
<td><code>$(MIPSPRO_TOOLROOT_DIRECTORY)/include<br>
$(MIPSPRO_ROOT_DIRECTORY)/include</code></td>
<td>&nbsp;</td>
</tr>
<tr>
<td><code>MIPSPRO_C++INCLUDE_DIRECTORY</code></td>
<td>Path to C++ specific headers.</td>
<td><code>$(MIPSPRO_INCLUDE_DIRECTORY)/CC</code></td>
<td>&nbsp;</td>
</tr>
</table>
<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>Copyright &copy; Dave Abrahams 2002.</p>
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</body>
</html>

View File

@@ -1,259 +0,0 @@
#~ Copyright 2001-2002 David Abrahams.
#~ Copyright 2002-2004 Rene Rivera.
#~ Copyright 2002 Ralf W. Grosse-Kunstleve.
#~ Copyright 2003 Jens Maurer.
#~ 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)
# This file was originally based on gcc-tools.jam by David Abrahams.
#
# It has been written for and tested with MIPSpro 7.3 on IRIX 6.5
# with a variety of setups.
#
# TODO list (in no particular order):
#
# - Add support for the dllversion free-feature using MIPSpro's
# soname support.
# - Factor out repetitive code.
# - Decide if `$(<[1])' is better than `$(<)'.
# - Make further use of the `architecture' free feature by using
# `-TARG' and others.
# - A free feature `mipspro-woff' so users can specify woff
# values at the command-line.
# - Figure out what to do with the so_locations file.
# - Figure out what to do with the ii_files directory.
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://www.sgi.com/developers/devtools/languages/mipspro.html">SGI<br>MIPSpro</a>
# compute directories for invoking MIPSpro: first try ROOT and
# TOOLROOT, which are traditionally used for this purpose.
MIPSPRO_ROOT_DIRECTORY ?= "$(ROOT)/usr" ;
MIPSPRO_TOOLROOT_DIRECTORY ?= "$(TOOLROOT)/usr" ;
# Either ROOT or TOOLROOT missing? Fall back to the default.
MIPSPRO_ROOT_DIRECTORY ?= "/usr" ;
MIPSPRO_TOOLROOT_DIRECTORY ?= "/usr" ;
# For most users, either ROOT/TOOLROOT or
# MIPSPRO_ROOT_DIRECTORY/MIPSPRO_TOOLROOT_DIRECTORY should be
# sufficient. Users needing to further customize the executable
# directory or include directory can use MIPSPRO_BIN_DIRECTORY,
# MIPSPRO_INCLUDE_DIRECTORY, and MIPSPRO_C++INCLUDE_DIRECTORY.
MIPSPRO_BIN_DIRECTORY ?= "$(MIPSPRO_TOOLROOT_DIRECTORY)/bin" ;
MIPSPRO_INCLUDE_DIRECTORY ?= "$(MIPSPRO_TOOLROOT_DIRECTORY)/include"
"$(MIPSPRO_ROOT_DIRECTORY)/include" ;
MIPSPRO_C++INCLUDE_DIRECTORY ?= "$(MIPSPRO_INCLUDE_DIRECTORY)/CC" ;
# Because we have special logic for finding directories based on
# the ABI and ISA, it is difficult to have a separate user-definable
# variable to specify the library paths. As mentioned above,
# MIPSPRO_ROOT_DIRECTORY should be good enough for most users.
local MIPSPRO_STDLIB_ROOTS = "$(MIPSPRO_TOOLROOT_DIRECTORY)"
"$(MIPSPRO_ROOT_DIRECTORY)"
;
local MIPSPRO_STDLIB_MIPS3_SUBDIRECTORIES = "mips3" "" ;
local MIPSPRO_STDLIB_MIPS4_SUBDIRECTORIES = "mips4" "" ;
flags mipspro LINKFLAGS : -nostdlib ;
flags mipspro LINKFLAGS <target-type>$(SHARED_TYPES) : -shared ;
flags mipspro LINKFLAGS <debug-symbols>off : -s ;
# We better link the maths library unconditionally.
flags mipspro FINDLIBS : m ;
flags mipspro DEFINES <threading>multi : _SGI_MP_SOURCE ;
flags mipspro FINDLIBS <threading>multi : pthread ;
flags mipspro CFLAGS : -nostdinc
-LANG:std -OPT:Olimit=0 -OPT:IEEE_NaN_inf=ON -no_auto_include
;
flags mipspro CFLAGS <address-model>default : -n32 ;
flags mipspro CFLAGS <address-model>32 : -n32 ;
flags mipspro CFLAGS <address-model>64 : -64 ;
flags mipspro CFLAGS <architecture>native : -mips3 ;
flags mipspro CFLAGS <architecture>mips3 : -mips3 ;
flags mipspro CFLAGS <architecture>mips4 : -mips4 ;
flags mipspro CFLAGS <optimization>off : -O0 ;
flags mipspro CFLAGS <optimization>speed : -O3 ;
flags mipspro CFLAGS <optimization>space : -O2 ;
flags mipspro CFLAGS <debug-symbols>off : -g0 ;
flags mipspro CFLAGS <debug-symbols>on/<optimization>off : -g ;
flags mipspro CFLAGS <debug-symbols>on/<optimization>speed : -g3 ;
flags mipspro CFLAGS <debug-symbols>on/<optimization>space : -g3 ;
# Uncomment the following to enable various SGI extensions.
#flags mipspro DEFINES : _SGI_SOURCE ;
# If you want more warnings, uncomment the following lines. These are
# a few warning numbers that you'll probably want to disable.
# 1375: The destructor for base class is not virtual.
# 1424: Template parameter not used in declaring the argument types of function template.
# 1234: Access control is not specified.
#flags mipspro CFLAGS : -fullwarn -woff 1375,1424,1234 ;
# For some C++ apps, adding -IPA can make a big difference. However, because
# it does global optimizations such as inlining code between compilation
# units, it introduces a lot of dependancies that this build system is
# unable to track. When using -IPA here, be sure to run the `clean' target
# before each build to ensure that everything is rebuilt properly.
#flags mipspro CFLAGS <optimization>speed : -IPA ;
#flags mipspro LINKFLAGS <optimization>speed : -IPA ;
# An option for <inlining>full is -INLINE:all, however that may cause
# too much to be inlined. I don't think that level of inlining is what
# is meant by <inlining>full.
flags mipspro CFLAGS <inlining>off : -INLINE:none ;
flags mipspro CFLAGS <inlining>on : -INLINE ;
flags mipspro CFLAGS <inlining>full : -INLINE ;
flags mipspro C++FLAGS <exception-handling>off : -LANG:exceptions=OFF ;
flags mipspro STDHDRS : "$(MIPSPRO_INCLUDE_DIRECTORY)" ;
flags mipspro STDC++HDRS : "$(MIPSPRO_C++INCLUDE_DIRECTORY)"
"$(BOOST_ROOT)/boost/compatibility/cpp_c_headers"
;
flags mipspro STDLIBPATH <address-model>default/<architecture>mips3 <architecture>native :
"$(MIPSPRO_STDLIB_ROOTS)/lib32/$(MIPSPRO_STDLIB_MIPS3_SUBDIRECTORIES)"
;
flags mipspro STDLIBPATH <address-model>default/<architecture>mips4 :
"$(MIPSPRO_STDLIB_ROOTS)/lib32/$(MIPSPRO_STDLIB_MIPS4_SUBDIRECTORIES)"
;
flags mipspro STDLIBPATH <address-model>32/<architecture>mips3 <architecture>native :
"$(MIPSPRO_STDLIB_ROOTS)/lib32/$(MIPSPRO_STDLIB_MIPS3_SUBDIRECTORIES)"
;
flags mipspro STDLIBPATH <address-model>32/<architecture>mips4 :
"$(MIPSPRO_STDLIB_ROOTS)/lib32/$(MIPSPRO_STDLIB_MIPS4_SUBDIRECTORIES)"
;
flags mipspro STDLIBPATH <address-model>64/<architecture>mips3 <architecture>native :
"$(MIPSPRO_STDLIB_ROOTS)/lib64/$(MIPSPRO_STDLIB_MIPS3_SUBDIRECTORIES)"
;
flags mipspro STDLIBPATH <address-model>64/<architecture>mips4 :
"$(MIPSPRO_STDLIB_ROOTS)/lib64/$(MIPSPRO_STDLIB_MIPS4_SUBDIRECTORIES)"
;
flags mipspro HDRS <include> ;
flags mipspro UNDEFS <undef> ;
flags mipspro DEFINES <define> ;
flags mipspro CFLAGS <cflags> ;
flags mipspro C++FLAGS <cxxflags> ;
flags mipspro LIBPATH <library-path> ;
flags mipspro NEEDLIBS <library-file> ;
flags mipspro FINDLIBS <find-library> ;
flags mipspro SYSHDRS <sysinclude> ;
flags mipspro LINKFLAGS <linkflags> ;
flags mipspro ARFLAGS <arflags> ;
#### Link (for C++) ####
rule Link-action
{
mipspro-Link-action "$(<)" : "$(>)" ;
}
# for mipspro, we repeat all libraries so that dependencies are always resolved
actions mipspro-Link-action bind NEEDLIBS
{
"$(MIPSPRO_BIN_DIRECTORY)/CC" \
-o "$(<)" \
"$(>)" \
"-U$(UNDEFS)" \
"-D$(DEFINES)" \
"$(CFLAGS)" \
"$(C++FLAGS)" \
"-I$(HDRS)" \
"-I$(STDC++HDRS)" \
"-I$(STDHDRS)" \
"-I$(SYSHDRS)" \
"$(LINKFLAGS)" \
"$(NEEDLIBS)" \
"$(NEEDLIBS)" \
"-L$(LIBPATH)" \
"-L$(STDLIBPATH)" \
"-l$(FINDLIBS)"
}
#### Cc #####
rule Cc-action
{
mipspro-Cc-action "$(<)" : "$(>)" ;
}
actions mipspro-Cc-action
{
"$(MIPSPRO_BIN_DIRECTORY)/cc" -c \
"-U$(UNDEFS)" \
"-D$(DEFINES)" \
"$(CFLAGS)" \
"-I$(HDRS)" \
"-I$(STDHDRS)" \
"-I$(SYSHDRS)" \
-o "$(<)" \
"$(>)"
}
#### C++ ####
rule C++-action
{
mipspro-C++-action "$(<)" : "$(>)" ;
}
actions mipspro-C++-action
{
"$(MIPSPRO_BIN_DIRECTORY)/CC" -c \
"-U$(UNDEFS)" \
"-D$(DEFINES)" \
"$(CFLAGS)" \
"$(C++FLAGS)" \
"-I$(HDRS)" \
"-I$(STDC++HDRS)" \
"-I$(STDHDRS)" \
"-I$(SYSHDRS)" \
-o "$(<)" \
"$(>)"
}
#### Archive ####
rule Archive-action
{
mipspro-Archive-action "$(<)" : "$(>)" ;
}
# For MIPSpro, we don't use update piecemeal together because we're
# not using the command `ar' directly. We use `CC -ar' so that the
# prelinker gets run, however when we do this, we loose the ability
# to update individual compilation units in an archive.
actions mipspro-Archive-action
{
"$(MIPSPRO_BIN_DIRECTORY)/CC" -ar \
"-U$(UNDEFS)" \
"-D$(DEFINES)" \
"$(CFLAGS)" \
"$(C++FLAGS)" \
"-I$(HDRS)" \
"-I$(STDC++HDRS)" \
"-I$(STDHDRS)" \
"-I$(SYSHDRS)" \
"-WR,$(ARFLAGS)" \
-o "$(<)" \
"$(>)"
}

View File

@@ -1,56 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
<title>Boost.Build - msvc-stlport toolset</title>
</head>
<body link="#0000FF" vlink="#800080">
<table border="0" cellpadding="7" cellspacing="0" width="100%" summary=
"header">
<tbody>
<tr>
<td valign="top" width="300">
<h3><a href="http://www.boost.org/"><img height="86" width="277"
alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<h2 align="center">msvc-stlport toolset</h2>
</td>
</tr>
</tbody>
</table>
<hr>
<h2>Introduction</h2>
<p>Boost.Build's <a href=
"http://msdn.microsoft.com/visualc/">msvc-stlport</a> toolset supports the
Microsoft <a href="http://msdn.microsoft.com/visualc/">Visual C++</a>
command-line tools, using the <a href="http://www.stlport.org">STLport</a>
standard library implementation on Microsoft Windows. It is designed to
allow you to build and test with multiple installed versions of STLPort, so
that objects build in each configuration will be built into separate
directories.</p>
<p>In addition to what this toolset provides, configuration and extended
functionality is available through the common <a href=
"stlport.html">stlport library support</a>.</p>
<hr>
<p>Revised $Date$</p>
<p>Copyright &copy; Dave Abrahams 2002, Rene Rivera 2005.</p>
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</body>
</html>

View File

@@ -1,21 +0,0 @@
# Copyright 2004 Rene Rivera.
# 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://msdn.microsoft.com/vstudio/default.asp">Micro-<br>soft<br>VC++</a><br><a href="http://www.stlport.org/">STLport</a>
extends-toolset msvc ;
flags $(gCURRENT_TOOLSET) STLPORT_LIB_BASE_NAME ;
flags $(gCURRENT_TOOLSET) STLPORT_LIB_STATIC_SUFFIX ;
STLPORT_LIB_BASE_NAME ?= stlport_vc6 ;
STLPORT_LIB_STATIC_SUFFIX ?= _static ;
# bring in the STLPort configuration
SEARCH on stlport.jam = $(BOOST_BUILD_PATH) ;
include stlport.jam ;
flags msvc-stlport VC_STDLIB_PATH <stlport-iostream>on : [ join [ get-stlport-root ] $(SLASH)$(STLPORT_LIB_DIRECTORY) ] ;

View File

@@ -1,93 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1st September 2003), see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
<title>Boost.Build - msvc 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="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<h2 align="center">msvc toolset</h2>
</td>
</tr>
</table>
<hr>
<h2>Introduction</h2>
<p>Boost.Build's <a href="http://msdn.microsoft.com/visualc/">msvc</a>
toolset supports the Microsoft Visual C++ command-line tools on Microsoft
Windows. It supports any version of Visual C++, but in case you have more
than one version of Visual C++ installed, and you want to use both, the
additional <a href="vc7-tools.html">vc7</a> toolset can be used for Visual
C++ 7.0.</p>
<h2><a name="configuration" id="configuration">Configuration
Variables</a></h2>The <code>msvc</code> 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>:
<table border="1" summary="settings">
<tr>
<th>Variable Name</th>
<th>Semantics</th>
<th>Default</th>
<th>Notes</th>
</tr>
<tr>
<td><code>MSVC_ROOT</code></td>
<td>The path to the MSVC installation directory</td>
<td>
<code>c:\Program&nbsp;Files\Microsoft&nbsp;Visual&nbsp;Studio\VC98</code></td>
<td>If <code>MSVCDir</code> is set in the environment, the toolset will
assume <code>VCVARS32.BAT</code>has already been called, and will
ignore this variable.</td>
</tr>
<tr>
<td><code>VISUALC</code></td>
<td>The path to the MSVC installation directory</td>
<td>
<code>c:\Program&nbsp;Files\Microsoft&nbsp;Visual&nbsp;C++\VC98</code></td>
<td>If <code>MSVCDir</code> or <code>MSVC_ROOT</code> is set in the
environment, the toolset will assume <code>VCVARS32.BAT</code>has
already been called, and will ignore this variable.</td>
</tr>
</table>
<hr>
<p>Revised $Date$</p>
<p>Copyright &copy; Dave Abrahams 2002-2003, Rene Rivera 2002-2003.</p>
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</body>
</html>

View File

@@ -1,201 +0,0 @@
# Microsoft Visual C++
# (C) Copyright David Abrahams 2001.
# 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)
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://msdn.microsoft.com/vstudio/default.asp">Micro-<br>soft<br>VC++</a>
# singleton variables...
set-as-singleton MSVCDir VISUALC MSVC_ROOT VC_TOOL_PATH VC_SETUP ;
# Get these variable set on the targets so that we can re-use the
# build actions for other toolsets using this one as a base.
flags msvc VC_TOOL_PATH ;
flags msvc VC_SETUP ;
flags msvc VC_COMPILER ;
flags msvc VC_LINKER ;
flags msvc VC_PDB_NAME ;
# compute MSVC tool path
# You can either put the msvc bin directory in your PATH, or you can set
# MSVCDir to point at the msvc installation directory
# Some installations set MSVCDIR instead of MSVCDir; who knows why?
MSVCDir ?= $(MSVCDIR) ;
# If MSVCDir is not set the user hasn't run VCVARS32.BAT
if ! $(MSVCDir)
{
# In case someone set VISUALC in order to build Jam, we can just use that.
MSVC_ROOT ?= $(VISUALC) ;
# Otherwise, guess a standard installation directory
ProgramFiles ?= $(PROGRAMFILES) ;
MSVC_ROOT ?= $(ProgramFiles:J=" ")"\\Microsoft Visual Studio\\VC98" ;
# Reconstitutes paths containing spaces
MSVC_ROOT = $(MSVC_ROOT:J=" ") ;
# The tools are provisionallly located in the msvc6 bin
# directory. This may be overridden by toolsets which extend this
# one.
VC_TOOL_PATH = "$(MSVC_ROOT)"$(SLASH)bin$(SLASH) ;
# Always call VCVARS32.BAT before invoking the tools
VC_SETUP = "CALL \"$(VC_TOOL_PATH)VCVARS32.BAT\" >nul" ;
}
else
{
# Reconstitutes paths containing spaces
MSVCDir = $(MSVCDir:J=" ") ;
# Don't clobber adjoining text or use explicit paths if MSVCDir is already set
VC_TOOL_PATH = "" ;
}
VC_COMPILER = cl ;
VC_LINKER = link ;
VC_PDB_NAME = vc60 ;
VC_STDLIB_PATH = ;
flags msvc CFLAGS <debug-symbols>on/<debug-store>object : /Z7 ;
flags msvc CFLAGS <debug-symbols>on/<debug-store>database : /Zi ;
flags msvc PDB_CFLAG <debug-symbols>on/<debug-store>database : /Fd ;
flags msvc PDB_LINKFLAG <debug-symbols>on/<debug-store>database : /PDB: ;
flags msvc LINKFLAGS <debug-symbols>on : /DEBUG ;
# The linker disables the default optimizations when using /DEBUG. Whe have
# to enable them manually for release builds with debug symbols.
flags msvc LINKFLAGS <debug-symbols>on/<runtime-build>release : /OPT:REF,ICF ;
flags msvc CFLAGS <optimization>off : /Od ;
flags msvc CFLAGS <optimization>speed : /Ogity /O2 /Gs ;
flags msvc CFLAGS <optimization>space : /Ogisy /O1 /Gs ;
flags msvc CFLAGS <inlining>off : /Ob0 ;
flags msvc CFLAGS <inlining>on : /Ob1 ;
flags msvc CFLAGS <inlining>full : /Ob2 ;
flags msvc CFLAGS <exception-handling>on : /EHsc ;
flags msvc CFLAGS <rtti>on : /GR ;
# Note that these two options actually imply multithreading support on MSVC
# because there is no single-threaded dynamic runtime library. Specifying
# <threading>multi would be a bad idea, though, because no option would be
# matched when the build uses the default settings of <runtime-link>dynamic
# and <threading>single.
flags msvc CFLAGS <runtime-build>release/<runtime-link>dynamic : /MD ;
flags msvc CFLAGS <runtime-build>debug/<runtime-link>dynamic : /MDd ;
flags msvc CFLAGS <runtime-build>release/<runtime-link>static/<threading>single : /ML ;
flags msvc CFLAGS <runtime-build>debug/<runtime-link>static/<threading>single : /MLd ;
flags msvc CFLAGS <runtime-build>release/<runtime-link>static/<threading>multi : /MT ;
flags msvc CFLAGS <runtime-build>debug/<runtime-link>static/<threading>multi : /MTd ;
flags msvc CFLAGS <cflags> ;
flags msvc C++FLAGS <cxxflags> ;
flags msvc DEFINES <define> ;
flags msvc UNDEFS <undef> ;
flags msvc HDRS <include> ;
flags msvc SYSHDRS <sysinclude> ;
flags msvc LINKFLAGS <linkflags> ;
flags msvc ARFLAGS <arflags> ;
flags msvc LIBPATH <library-path> ;
flags msvc NEEDLIBS <library-file> ;
flags msvc FINDLIBS <find-library> ;
flags msvc LINKFLAGS <target-type>$(SHARED_TYPES) : /DLL ;
flags msvc LINKFLAGS <user-interface>console : /subsystem:console ;
flags msvc LINKFLAGS <user-interface>gui : /subsystem:windows ;
flags msvc LINKFLAGS <user-interface>wince : /subsystem:windowsce ;
flags msvc LINKFLAGS <user-interface>native : /subsystem:native ;
flags msvc LINKFLAGS <user-interface>auto : /subsystem:posix ;
rule vc-set-pdb-file ( targets + : name )
{
local pdb = $(targets[1]:B=$(name):S=.pdb) ;
VC_PDB_FILE on $(targets) = $(pdb:G=:R=$(LOCATE_TARGET)) ;
LOCATE on $(pdb) = $(LOCATE_TARGET) ;
Clean clean : $(pdb) ;
}
#### Link ####
rule Link-action ( target implib ? : sources + : target-type ? )
{
with-command-file vc-Link $(<) : $(sources) $(NEEDLIBS) ;
if $(target-type) in $(SHARED_TYPES)
{
MANIFEST on $(target) = $(VC_MANIFEST) ;
OUTPUTRESOURCE on $(target) = $(VC_OUTPUTRESOURCE) ;
}
gRUN_PATH($(<)) += $(VC_STDLIB_PATH) ;
if $(implib)
{
# incremental linking a DLL causes no end of problems: if the
# actual exports don't change, the import .lib file is never
# updated. Therefore, the .lib is always out-of-date and gets
# rebuilt every time. I'm not sure that incremental linking is
# such a great idea in general, but in this case I'm sure we
# don't want it.
NOINCREMENTAL on $(<) = /INCREMENTAL:NO ;
}
vc-set-pdb-file $(<) : $(target:B) ;
}
VC_MANIFEST = ;
VC_OUTPUTRESOURCE = ;
actions together vc-Link
{
$(VC_SETUP)
"$(VC_TOOL_PATH)$(VC_LINKER)" /nologo $(NOINCREMENTAL) $(LINKFLAGS) $(PDB_LINKFLAG)"$(VC_PDB_FILE)" /out:"$(<[1])" /IMPLIB:"$(<[2])" /LIBPATH:"$(LIBPATH)" /LIBPATH:"$(STDLIBPATH)" "$(FINDLIBS:S=.lib)" @"$(>)"
$(MANIFEST)$(<[1]).manifest $(OUTPUTRESOURCE)$(<[1]);#2
}
#### Cc #####
rule Cc-action
{
vc-set-pdb-file $(<) : $(VC_PDB_NAME) ;
vc-Cc $(<) : $(>) ;
}
actions vc-Cc
{
$(VC_SETUP)
"$(VC_TOOL_PATH)$(VC_COMPILER)" /Zm800 -nologo -c -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" $(PDB_CFLAG)"$(VC_PDB_FILE)" -Fo"$(<)" "$(>)"
}
#### C++ ####
rule C++-action
{
vc-set-pdb-file $(<) : $(VC_PDB_NAME) ;
vc-C++ $(<) : $(>) ;
}
actions vc-C++
{
$(VC_SETUP)
"$(VC_TOOL_PATH)$(VC_COMPILER)" /Zm800 -nologo /EHsc -c -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" $(PDB_CFLAG)"$(VC_PDB_FILE)" -Fo"$(<)" -Tp"$(>)"
}
#### Archive ####
rule Archive-action
{
vc-set-pdb-file $(<) : $(<:B) ;
with-command-file vc-Archive $(<) : $(>) ;
}
actions vc-Archive
{
$(VC_SETUP)
if exist "$(<)" DEL "$(<)"
"$(VC_TOOL_PATH)$(VC_LINKER)" /lib $(ARFLAGS) $(PDB_LINKFLAG)"$(VC_PDB_FILE)" /out:"$(<)" @"$(>)"
}

View File

@@ -1,647 +0,0 @@
#~ Copyright 2001-2005 David Abrahams.
#~ Copyright 2002-2005 Rene Rivera.
#~ Copyright 2004 Markus Schöpflin.
#~ Copyright 2005 Caleb Epstein.
#~ Copyright 2006 Jim Douglas.
#~ Copyright 2006 Alexander Nasonov.
#~ 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)
if ! $(gPYTHON_INCLUDED)
{
gPYTHON_INCLUDED = true ;
import testing ;
# Do some OS-specific setup
if $(NT)
{
CATENATE = type ;
}
else if $(UNIX)
{
CATENATE = cat ;
}
PYTHON_VERSION ?= 2.4 ;
# Strip the dot from the Python version in order to be able to name
# libraries
PYTHON_VERSION_NODOT
= [ MATCH ([0-9]*)\.([0-9]*) : $(PYTHON_VERSION) ]
;
PYTHON_VERSION_NODOT = $(PYTHON_VERSION_NODOT:J=) ;
local RUN_PATH = $(RUN_PATH) ;
if $(NT) || ( $(UNIX) && $(OS) = CYGWIN )
{
PYTHON_WINDOWS = true ;
}
if $(PYTHON_WINDOWS)
{
# common properties required for compiling any Python module.
PYTHON_PROPERTIES =
boost-python-disable-borland
select-nt-python-includes
<runtime-link>dynamic
<sysinclude>@boost
<$(gcc-compilers)><*><define>USE_DL_IMPORT
;
CYGWIN_PYTHON_ROOT ?= /usr ;
if ! $(NT)
{
PYTHON_ROOT ?= $(CYGWIN_PYTHON_ROOT) ;
}
if $(CYGWIN_PYTHON_ROOT) = /usr
{
CYGWIN_PYTHON_DLL_PATH ?= /bin ;
}
else
{
CYGWIN_PYTHON_DLL_PATH ?= $(CYGWIN_PYTHON_ROOT)/bin ;
}
CYGWIN_PYTHON_VERSION ?= $(PYTHON_VERSION) ;
CYGWIN_PYTHON_LIB_PATH ?= $(CYGWIN_PYTHON_ROOT)/lib/python$(CYGWIN_PYTHON_VERSION)/config ;
CYGWIN_PYTHON_DEBUG_VERSION ?= $(CYGWIN_PYTHON_VERSION) ;
CYGWIN_PYTHON_DEBUG_ROOT ?= $(PYTHON_ROOT) ;
CYGWIN_PYTHON_DEBUG_DLL_PATH ?= $(CYGWIN_PYTHON_DEBUG_ROOT)/bin ;
CYGWIN_PYTHON_DEBUG_LIB_PATH ?= $(CYGWIN_PYTHON_DEBUG_ROOT)/lib/python$(CYGWIN_PYTHON_DEBUG_VERSION)/config ;
}
else if $(UNIX)
{
# PYTHON_EMBEDDED_LIBRARY: Libraries to include when
# embedding Python in C++ code. We need the Python library,
# libdl for dynamic loading and possibly libutil on BSD-like
# systems (including Linux). A dynamic libpython should
# automatically pick up the libutil dependency, but we cannot
# tell here if we are linking with a static or dynamic
# libpython, so we include libutil for all UNIX systems where
# it is available.
if $(OS) = MACOSX
{
PYTHON_EMBEDDED_LIBRARY = ;
}
else if $(OS) = SOLARIS
{
PYTHON_EMBEDDED_LIBRARY = python$(PYTHON_VERSION) dl ;
}
else if $(OS) = OSF
{
PYTHON_EMBEDDED_LIBRARY = python$(PYTHON_VERSION) ;
}
else if $(OS) = QNXNTO
{
PYTHON_EMBEDDED_LIBRARY = python$(PYTHON_VERSION) ;
}
else if $(OS) = FREEBSD
{
PYTHON_EMBEDDED_LIBRARY = python$(PYTHON_VERSION) util ;
}
else
{
PYTHON_EMBEDDED_LIBRARY = python$(PYTHON_VERSION) dl util ;
}
}
if $(NT)
{
PYTHON_ROOT ?= c:/Python$(PYTHON_VERSION_NODOT) ;
# Reconstitute any paths split due to embedded spaces.
PYTHON_ROOT = $(PYTHON_ROOT:J=" ") ;
PYTHON_LIB_PATH ?= $(PYTHON_ROOT)/libs [ GLOB $(PYTHON_ROOT) : PCbuild ] ;
PYTHON_INCLUDES ?= $(PYTHON_ROOT)/include ;
PYTHON_DLL ?= [ GLOB $(PYTHON_ROOT) $(PATH) $(Path) : python$(PYTHON_VERSION_NODOT).dll ] ;
PYTHON_DEBUG_DLL ?= [ GLOB $(PYTHON_ROOT) $(PATH) $(Path) : python$(PYTHON_VERSION_NODOT)_d.dll ] ;
PYTHON_IMPORT_LIB ?= [ GLOB $(PYTHON_LIB_PATH) : libpython$(PYTHON_VERSION_NODOT).* ] ;
PYTHON_DEBUG_IMPORT_LIB ?= [ GLOB $(PYTHON_LIB_PATH) : libpython$(PYTHON_VERSION_NODOT).* ] ;
}
else if $(UNIX) && $(OS) = MACOSX
{
if ! $(PYTHON_ROOT)
{
if [ GLOB /System/Library/Frameworks : Python.framework ]
{
PYTHON_ROOT ?= /System/Library/Frameworks/Python.framework/Versions/$(PYTHON_VERSION) ;
}
else
{
PYTHON_ROOT ?= /Library/Frameworks/Python.framework/Versions/$(PYTHON_VERSION) ;
}
}
PYTHON_ROOT = $(PYTHON_ROOT:J=" ") ;
PYTHON_INCLUDES ?= $(PYTHON_ROOT)/include/python$(PYTHON_VERSION) ;
PYTHON_FRAMEWORK ?= $(PYTHON_ROOT) ;
while $(PYTHON_FRAMEWORK:D=) && $(PYTHON_FRAMEWORK:D=) != Python.framework
{
PYTHON_FRAMEWORK = $(PYTHON_FRAMEWORK:D) ;
}
PYTHON_FRAMEWORK = $(PYTHON_FRAMEWORK:D)/Python ;
PYTHON_PROPERTIES ?=
<sysinclude>$(PYTHON_INCLUDES)
;
}
else if $(UNIX)
{
PYTHON_ROOT ?= /usr ;
PYTHON_ROOT = $(PYTHON_ROOT:J=" ") ;
PYTHON_INCLUDES ?= $(PYTHON_ROOT)/include/python$(PYTHON_VERSION) ;
PYTHON_LIB_PATH ?= $(PYTHON_ROOT)/lib/python$(PYTHON_VERSION)/config ;
PYTHON_PROPERTIES ?=
<sysinclude>$(PYTHON_INCLUDES)
<library-path>$(PYTHON_LIB_PATH)
<default>python-intel-use-gcc-stdlib
python-static-multithread
;
if $(OS) = OSF
{
local not-gcc-compilers = [ difference $(TOOLS) : $(gcc-compilers) ] ;
PYTHON_PROPERTIES +=
<$(not-gcc-compilers)><*><linkflags>"-expect_unresolved 'Py*' -expect_unresolved '_Py*'"
<$(gcc-compilers)><*><linkflags>"-Xlinker -expect_unresolved -Xlinker 'Py*' -Xlinker -expect_unresolved -Xlinker '_Py*'" ;
}
else if $(OS) = AIX
{
PYTHON_PROPERTIES
+= <*><*><linkflags>"-Wl,-bI:$(PYTHON_LIB_PATH)/python.exp"
<*><*><find-library>pthreads ;
}
}
#
# Locate the python executable(s)
#
CYGWIN_ROOT ?= c:/cygwin ;
{
for local cyg in "" CYGWIN_
{
for local d in "" _D
{
local d_D = _DEBUG ;
local debug = $(d$(d)) ; # "" or _DEBUG
# select base name of variables
local var-base = $(cyg)PYTHON$(debug) ;
# Base defaults for the debug build on the non-debug
$(var-base)_VERSION ?= $($(cyg)PYTHON_VERSION) ;
$(var-base)_ROOT ?= $($(cyg)PYTHON_ROOT) ;
# Version number element of executable name
local exe-version = $($(var-base)_VERSION) ;
if $(NT) && ! $(cyg) { exe-version = $(d:L) ; }
# assign default target name
local executable = $(cyg)PYTHON$(d) ;
$(executable) ?= <$(cyg)EXE$(d)@>python$(exe-version)$(SUFEXE) ;
# choose the appropriate root directory/ies to search for the target
local r = $($(var-base)_ROOT) ;
if $(NT)
{
switch $(r)
{
case [/\\]* : # in case of unix-style path
r = $(CYGWIN_ROOT)$(r) $(r) ; # re-root for windows
}
}
# set up search path
SEARCH on $($(executable))
= $(r)/bin # Standard locations
$(r) # Standard locations
$(r)/PCBuild # In case building from a windows development Python
$(RUN_PATH) # Just look in the path
;
}
}
}
# Normally on Linux, Python is built with GCC. A "poor QOI choice" in
# the implementation of the intel tools prevents the use of
# intel-linked shared libs by a GCC-built executable unless they have
# been told to use the GCC runtime. This rule adds the requisite
# flags to the compile and link lines.
rule python-intel-use-gcc-stdlib ( toolset variant : non-defaults * )
{
if ( ! $(PYTHON_WINDOWS) )
&& ( ! <define>BOOST_PYTHON_STATIC_LIB in $(non-defaults) )
&& [ MATCH (intel) : $(toolset) ]
{
return <stdlib>gcc ;
}
else
{
return ;
}
}
# Force statically-linked embedding applications to be multithreaded
# on UNIX.
rule python-static-multithread ( toolset variant : properties * )
{
if ! $(PYTHON_WINDOWS)
{
local x = <define>BOOST_PYTHON_STATIC_LIB <threading>single ;
if $(x) in $(properties)
{
properties = [ difference $(properties) : <threading>single ] <threading>multi ;
}
}
return $(properties) ;
}
# Borland compilers are not supported
rule boost-python-disable-borland ( toolset variant : properties * )
{
if [ MATCH .*(bcc|borland).* : $(toolset) ]
{
properties += <build>no ;
}
return $(properties) ;
}
# select-python-library
#
# Ungristed elements of a requirements list are treated as the rule
# names to be called to transform the property set. This is used when
# the requirements are too complicated to express otherwise. This
# rule selects the right python library when building on Windows.
rule select-python-library ( toolset variant : properties * )
{
if $(PYTHON_WINDOWS)
{
if $(toolset) in $(gcc-compilers)
{
if <define>BOOST_DEBUG_PYTHON in $(properties)
{
properties += <library-path>$(CYGWIN_PYTHON_DEBUG_LIB_PATH) <find-library>python$(CYGWIN_PYTHON_DEBUG_VERSION).dll ;
}
else
{
properties += <library-path>$(CYGWIN_PYTHON_LIB_PATH) <find-library>python$(CYGWIN_PYTHON_VERSION).dll ;
}
}
else if [ MATCH .*(mingw).* : $(toolset) ]
{
local lib = $(PYTHON_IMPORT_LIB) ;
if <define>BOOST_DEBUG_PYTHON in $(properties)
{
lib = $(PYTHON_DEBUG_IMPORT_LIB) ;
}
lib ?= $(PYTHON_DLL) ;
if <define>BOOST_DEBUG_PYTHON in $(properties)
{
lib ?= $(PYTHON_DEBUG_DLL) ;
}
properties += <library-file>$(lib) ;
}
else
{
properties += <library-path>$(PYTHON_LIB_PATH) ;
if $(toolset) != msvc # msvc compilers auto-find the python library
{
properties += <library-path>$(PYTHON_LIB_PATH) ;
local lib = python$(PYTHON_VERSION_NODOT) ;
if <define>BOOST_DEBUG_PYTHON in $(properties)
{
lib = python$(PYTHON_VERSION_NODOT)_d ;
}
properties += <find-library>$(lib) ;
}
}
}
if $(OS) = MACOSX && [ MATCH .*(darwin).* : $(toolset) ]
{
if <target-type>PYD in $(properties)
{
properties += <link-format>bundle ;
}
properties += <framework>$(PYTHON_FRAMEWORK) ;
}
return $(properties) ;
}
if $(NT)
{
python-nt-sysinclude = [ GLOB $(PYTHON_ROOT) : PC ] ;
}
rule select-nt-python-includes ( toolset variant : properties * )
{
if $(toolset) in $(gcc-compilers)
{
local d = "" ;
if <define>BOOST_DEBUG_PYTHON in $(properties)
{
d = DEBUG_ ;
}
properties += <sysinclude>$(CYGWIN_PYTHON_$(d)ROOT)/include/python$(CYGWIN_PYTHON_$(d)VERSION) ;
}
else
{
properties +=
<sysinclude>$(PYTHON_INCLUDES)
<sysinclude>$(python-nt-sysinclude) # in case the user is using a source installation
;
if [ MATCH (cwpro) : $(toolset) ] && ( $(variant) = debug-python )
{
properties = [ difference $(properties) : <define>_DEBUG ] ; #it warns about redefinition otherwise.
}
else
{
properties += <debug-python><define>_DEBUG ;
}
}
return $(properties) ;
}
PYTHON_PROPERTIES +=
<sysinclude>@boost
<stlport-iostream>on
select-python-library
;
BOOST_PYTHON_V2_PROPERTIES
= $(PYTHON_PROPERTIES)
<metrowerks><*><cxxflags>"-inline deferred"
<cwpro8><*><cxxflags>"-inline deferred" # added for internal testing purposes
<cxx><*><sysinclude>@boost/boost/compatibility/cpp_c_headers
<define>BOOST_PYTHON_DYNAMIC_LIB
;
# Extends the RUN_PATH assignment for targets built under Cygwin so
# that the Python DLL can be found.
rule add-cygwin-python-run-path ( module )
{
if <define>BOOST_DEBUG_PYTHON in $(gBUILD_PROPERTIES)
{
gRUN_LD_LIBRARY_PATH($(module)) += $(CYGWIN_PYTHON_DEBUG_DLL_PATH) ;
}
else
{
gRUN_LD_LIBRARY_PATH($(module)) += $(CYGWIN_PYTHON_DLL_PATH) ;
}
}
# This is the generator function for Python modules. It deals with the
# need to change the name of modules compiled with debugging on. This
# is just a wrapper around the generator for shared libraries,
# dll-files.
rule python-files ( module implib ? : sources * )
{
dll-files $(module) $(implib) : $(sources) : PYD ;
if $(gCURRENT_TOOLSET) in $(gcc-compilers)
{
if $(PYTHON_WINDOWS)
{
add-cygwin-python-run-path $(<[-1]) ;
}
else
{
gRUN_PATH($(module)) += $(GCC_ROOT_DIRECTORY)/lib ;
}
}
}
if $(NT)
{
# Adjust the name of Python modules so that they have the _d
# suffix when compiled with python debugging enabled.
gNAME_ADJUST(PYD) = name-adjust-PYD ;
rule name-adjust-PYD ( pyd implib ? : properties * : toolset variant )
{
# Cygwin python is only happy if compiled modules have a .dll
# extension
if $(toolset) in $(gcc-compilers)
{
pyd = $(pyd:S=.dll) ;
}
else if <define>BOOST_DEBUG_PYTHON in $(properties)
{
pyd = $(pyd:S=)_d$(pyd:S) ;
}
return $(pyd) $(implib) ;
}
}
rule Link-PYD
{
if $(UNIX)
{
LINK_LIBPATH on $(<) = [ join $(gRUN_LD_LIBRARY_PATH($(<))) : $(SPLITPATH) ] ;
}
gRUN_PYTHONPATH($(<)) += $(gLOCATE($(<[1]))) ;
.do-link $(<) : $(>) : PYD ;
}
declare-target-type PYD : <shared-linkable>true ;
gGENERATOR_FUNCTION(PYD) = python-files ;
if $(NT)
{
SUFPYD = .pyd $(SUFDLL[2-]) ;
}
else if $(OS) = MACOSX
{
SUFPYD = .so $(SUFDLL[2-]) ;
}
else
{
SUFPYD = $(SUFDLL) ;
}
PYDMODE = $(DLLMODE) ;
SHARED_TYPES += PYD ;
gTARGET_TYPE_ID(pyd) = PYD ;
gIS_DEPENDENCY(PYD) = TRUE ;
# Declare a python extension.
rule extension ( name : sources + : requirements * : default-BUILD * )
{
requirements += $(BOOST_PYTHON_V2_PROPERTIES) ;
declare-local-target $(name) : $(sources) : $(requirements) : $(default-BUILD) : PYD ;
}
gGENERATOR_FUNCTION(TEST_PYD) = run-test PYD ;
SUFTEST_PYD = .run ;
declare-build-succeed-test RUN_PYD : TEST_PYD ;
# boost-python-runtest target : python-script sources : requirements : local-build : args
#
# declare a python module test $(<).test which builds when out-of-date
#
# pass --python-test-all on the command-line to force rebuilding
rule boost-python-runtest (
target : sources + : requirements * : local-build * : args * )
{
local gRUN_TEST_ARGS = $(args) ;
local pyfiles = [ MATCH ^(.*[.]py)$ : $(sources) ] ;
sources = [ difference $(sources) : $(pyfiles) ] ;
local gRUN_TEST_INPUT_FILES = [ FGristFiles $(pyfiles) ] ;
# tell Jam that the python script is relative to this directory
SEARCH on $(gRUN_TEST_INPUT_FILES) = $(SEARCH_SOURCE) ;
# The user can add additional arguments in PYTHON_TEST_ARGS.
local gRUN_TEST_ARGS2 = $(PYTHON_TEST_ARGS) ;
gRUN_TEST_ARGS2 ?= -v ;
#
# Stick the names of the python script and source files used in
# testing into $(source-files) on the main target. This is kind
# of a hack, because boost-test will be returning the name of the
# main target, but unfortunatedly dump-tests runs during the
# evaluation of boost-test and not during the build phase :(
#
local main-target = [ FGristFiles [ expand-target-names $(target) : RUN_PYD ] ] ;
source-files on $(main-target) = $(gRUN_TEST_INPUT_FILES) ;
local dependencies = [ FGristFiles [ expand-source-names $(sources) ] ] ;
source-files on $(main-target) += $(gTARGET_SOURCES($(dependencies))) ;
local result = [
boost-test $(sources)
: RUN_PYD
: $(requirements)
boost-python-disable-borland
<default>python-intel-use-gcc-stdlib # unless otherwise
# specified, assume the GCC standard
# library is needed for intel
: $(target)
: $(local-build)
] ;
}
rule boost-python-test ( name : sources + : requirements * : default-BUILD * )
{
extension $(name) : $(sources) : $(requirements) <suppress>true : $(4) ;
}
# Returns the executable to use for testing one or more Python modules
rule test-executable(PYD) ( targets-to-test + )
{
# choose the right python executable
local python = $(PYTHON) ;
if $(NT)
{
local d = "" ;
if <define>BOOST_DEBUG_PYTHON in $(gBUILD_PROPERTIES)
{
d = _D ;
}
if $(gCURRENT_TOOLSET) in $(gcc-compilers)
{
python = $(CYGWIN_PYTHON$(d)) ;
}
else
{
python = $(PYTHON$(d)) ;
}
}
return $(python) ;
}
rule check-python-config ( )
{
if --without-python in $(ARGV)
{
gNO_PYTHON_INSTALL = true ;
}
else if ! $(gPYTHON_CONFIG_CHECKED)
{
local dir ;
if $(NT) && $(TOOLS) in $(gcc-compilers)
{
dir = $(CYGWIN_PYTHON_DEBUG_ROOT) $(CYGWIN_PYTHON_ROOT) ;
v = $(CYGWIN_PYTHON_DEBUG_VERSION) $(CYGWIN_PYTHON_VERSION) ;
dir = $(dir)/include/python$(v) ;
dir = /cygwin/$(dir) $(dir) ;
}
dir += $(PYTHON_INCLUDES) ;
# This represents an improvement over the checking that was in
# Boost 1.28.0, but it is still an imperfect hack. For
# Boost.Build v2 we will clean up the rules.
if ! [ GLOB $(dir) : Python.h ]
{
gNO_PYTHON_INSTALL = true ;
ECHO "---------------------------------------------------------------------" ;
ECHO "*** If you don't need Boost.Python, you can ignore this section ***" ;
ECHO "*** pass --without-python to suppress this message in the future ***" ;
ECHO ;
ECHO skipping Boost.Python library build due to missing or incorrect configuration ;
ECHO ;
ECHO "couldn't find Python.h in" \"$(dir:J=" ")\" ;
ECHO ;
ECHO You can configure the location of your python installation by setting: ;
ECHO "PYTHON_VERSION - The 2-part python Major.Minor version number (e.g." ;
ECHO " \"2.2\", NOT \"2.2.1\") - currently" \"$(PYTHON_VERSION)\" ;
ECHO ;
if $(NT)
{
ECHO "PYTHON_ROOT - automatically configured from PYTHON_VERSION if not" ;
ECHO " otherwise set ; currently" \"$(PYTHON_ROOT:J=" ")\" ;
}
else
{
ECHO "PYTHON_ROOT - currently" \"$(PYTHON_ROOT:J=" ")\" ;
}
ECHO ;
ECHO "The following are automatically configured from PYTHON_ROOT if not" ;
ECHO "otherwise set:" ;
ECHO ;
ECHO " PYTHON_LIB_PATH - path to Python library object; currently" ;
ECHO " \""$(PYTHON_LIB_PATH:J=" ")\" ;
if ! $(NT)
{
ECHO " PYTHON_INCLUDES - path to Python #include directories; currently" ;
ECHO " \""$(PYTHON_INCLUDES:J=" ")\" ;
}
else if [ intersection $(TOOLS) : $(gcc-compilers) ]
{
ECHO ;
ECHO " For detailed configuration of Boost.Python for Cygwin GCC" ;
ECHO " under Windows NT please see" ;
ECHO " http://www.boost.org/libs/python/doc/building.html" ;
}
ECHO "---------------------------------------------------------------------" ;
}
gPYTHON_CONFIG_CHECKED = true ;
}
if ! $(gNO_PYTHON_INSTALL)
{
return true ;
}
}
}

View File

@@ -1,9 +0,0 @@
# Copyright (c) 2005 Jim Douglas.
# 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)
{
local GXX = QCC -V3.3.1,gcc_ntox86 ;
local GCC = qcc -V3.3.1,gcc_ntox86 ;
extends-toolset qcc ;
}

View File

@@ -1,9 +0,0 @@
# Copyright (c) 2005 Jim Douglas.
# 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)
{
local GXX = QCC -V3.3.5,gcc_ntox86_cpp ;
local GCC = qcc -V3.3.5,gcc_ntox86_cpp ;
extends-toolset qcc ;
}

View File

@@ -1,9 +0,0 @@
# Copyright (c) 2005 Jim Douglas.
# 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)
{
local GXX = QCC -V3.3.5,gcc_ntox86_gpp ;
local GCC = qcc -V3.3.5,gcc_ntox86_gpp ;
extends-toolset qcc ;
}

View File

@@ -1,31 +0,0 @@
# Copyright (c) 2005 Jim Douglas.
# 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)
GXX ?= QCC ;
GCC ?= qcc ;
extends-toolset gcc ;
CFLAGS = [ difference $(CFLAGS) : -Wall -fno-inline -Wno-inline -finline-functions -fPIC -g ] ;
flags qcc CFLAGS <inlining>off : -Wc,-fno-inline ;
flags qcc CFLAGS <inlining>on : -Wc,-Wno-inline ;
flags qcc CFLAGS <inlining>full : -Wc,-finline-functions,-Wno-inline ;
flags qcc CFLAGS <debug-symbols>on : -gstabs+ ;
flags qcc CFLAGS : -Wc,-Wall,-Wno-non-virtual-dtor ;
flags qcc CFLAGS <shared-linkable>true : -Wc,-fPIC ;
LINKFLAGS = [ difference $(LINKFLAGS) : -g -fPIC ] ;
flags qcc LINKFLAGS <debug-symbols>on : -gstabs+ ;
flags qcc LINKFLAGS <shared-linkable>true : -Wl,-fPIC ;
flags qcc FINDLIBS : m ;
C++FLAGS = [ difference $(C++FLAGS) : -ftemplate-depth-255 ] ;
flags qcc C++FLAGS : -Wc,-ftemplate-depth-255 ;
actions gcc-C++-action
{
$(.SET_EXIT)
"$(.GXX[1]:R=$(GCC_BIN_DIR))" $(.GXX[2-]) -c -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I$(_)"$(STDHDRS)" -I$(_)"$(SYSHDRS)" -o "$(<)" "$(>)"
"$(.OBJCOPY[1])"$(_)$(OBJCOPY_FLAGS)$(_)"$(<)"
}

View File

@@ -1,222 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
<title>Boost.Build - stlport library support</title>
</head>
<body link="#0000FF" vlink="#800080">
<table border="0" cellpadding="7" cellspacing="0" width="100%" summary=
"header">
<tbody>
<tr>
<td valign="top" width="300">
<h3><a href="http://www.boost.org/"><img height="86" width="277"
alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<h2 align="center">stlport library support</h2>
</td>
</tr>
</tbody>
</table>
<hr>
<h2>Introduction</h2>
<p>Boost.Build's <a href="stlport.jam">stlport</a> supports the use
of <a href="http://www.stlport.org">STLport</a> standard library
implementation with the various Boost.Build toolsets. It is designed to
allow you to build and test with multiple installed versions of STLPort, so
that objects built in each configuration will be built into separate
directories. The configuration and features describe here are in addition
to those provided by the specific toolsets that can be configured use the
STLport library.</p>
<h2><a name="configuration" id="configuration">Configuration
Variables</a></h2>
<p>The <code>stlport</code> support 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>.</p>
<p>In the table below, <i>version</i> corresponds to an STLPort version
number, e.g. "<code>5.0</code>".</p>
<table border="1" summary="settings">
<tr>
<th>Variable Name</th>
<th>Semantics</th>
<th>Default</th>
<th>Notes</th>
</tr>
<tr>
<td><code>STLPORT_PATH</code></td>
<td>A directory containing at least one subdirectory of the form
<code>/STLPort-</code><i>version</i> where an STLPort installation can
be found.</td>
<td><i>empty</i></td>
<td>Allows easy configuration for an installation where several STLPort
versions are installed under a single directory.</td>
</tr>
<tr>
<td><code>STLPORT_</code><i>version</i><code>_PATH</code></td>
<td>The directory where the specific STLPort <i>version</i>
installation can be found, in case there is no central location
appropriate for <code>STLPORT_PATH</code>, above, or a particular
version's installation is not located in the usual place.</td>
<td><i>empty</i></td>
<td>Allows configuration of a specific STLPort installation.</td>
</tr>
<tr>
<td><code>STLPORT_VERSION</code></td>
<td>The version of STLPort in use by default.</td>
<td><code>4.6.2</code></td>
<td>Other values can be selected in parallel setting the <a href=
"build_system.htm#initiating">build property</a>
&lt;stlport-version&gt; to values from the list of
<code>$(STLPORT_VERSIONS)</code></td>
</tr>
<tr>
<td><code>STLPORT_VERSIONS</code></td>
<td>A space-separated list of alternate versions of STLport available
on this machine.</td>
<td><code>5.0&nbsp;4.6.2&nbsp;4.6&nbsp;4.5.3&nbsp;4.5</code></td>
</tr>
</table>
<h2><a name="features" id="features">STLport Specific Features</a></h2>
<p>The following <code>stlport</code> specific <a href=
"build_system.htm#features">features</a> can be used in target build
requirements or in the <a href=
"build_system.htm#initiating"><code>BUILD</code></a> variable:</p>
<table border="1" summary="features">
<tr>
<th>Feature</th>
<th>Values</th>
<th>Default</th>
<th>Semantics</th>
</tr>
<tr>
<td><code>stlport-version</code></td>
<td><code>$(STLPORT_VERSION)&nbsp;$(STLPORT_VERSIONS)</code> (see
above)</td>
<td><code>$(STLPORT_VERSION)</code></td>
<td>Selects a version of STLPort for each target</td>
</tr>
<tr>
<td><code>stlport-iostream</code></td>
<td><code>on off</code></td>
<td><code>on</code></td>
<td>Controls whether STLPort's own iostreams are in use. The default
for this is now "on". This is because overwhelmingly STLport is used
for it's iostreams support to the extent that non-iostream mode is no
longer available on version 5.0. Since this mode is not available in
5.0 this feature is ignored when using version 5.0.</td>
</tr>
<tr>
<td><code>stlport-cstd-namespace</code></td>
<td><code>std global</code></td>
<td><code>std</code></td>
<td>Controls whether or not names from the "C" library headers such as
&lt;cstdlib&gt; are imported into <code>namespace std</code>.</td>
</tr>
<tr>
<td><code>stlport-debug-alloc</code></td>
<td><code>off on</code></td>
<td><code>off</code></td>
<td>Enables STLport support for debugging memory allocations, i.e. it
defines <code>_STLP_DEBUG_ALLOC</code> appropriately.</td>
</tr>
<tr>
<td><code>stlport-cross</code></td>
<td><code>off on</code></td>
<td><code>off</code></td>
<td>For STLport 5.0, with it's new library naming scheme, it is
possible to build using compiler specific targets. This tells
Boost.Build that you built STLport in it's "cross compile" mode and
will adjust how it looks for the STLport libraries to match.</td>
</tr>
<tr>
<td><code>stlport-extensions</code></td>
<td><code>on off</code></td>
<td><code>on</code></td>
<td>Defines <code>_STLP_NO_EXTENSIONS</code> appropriately.</td>
</tr>
<tr>
<td><code>stlport-anachronisms</code></td>
<td><code>on off</code></td>
<td><code>on</code></td>
<td>Defines <code>_STLP_NO_ANACHRONISMS</code> appropriately.</td>
</tr>
</table>
<hr>
<p>Revised $Date$</p>
<p>Copyright &copy; Dave Abrahams 2002, Aleksey Gurtovoy 2004, Rene Rivera
2005.</p>
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</body>
</html>

View File

@@ -1,205 +0,0 @@
# (C) Copyright Gennadiy Rozental 2002. Permission to copy, use,
# modify, sell and distribute this software is granted provided this
# copyright notice appears in all copies. This software is provided
# "as is" without express or implied warranty, and with no claim as
# to its suitability for any purpose.
# Use this toolset to add STLport flavor for any base toolset
# define STLPORT_LIB_BASE_NAME to the shared between debug and release
# versions prefix for stlport library name for example stlport_sunpro
# Define STLPORT_AUTOLINK to use the autolink facilities of the new
# STLport-5.0
# STLport iostreams or native iostreams
feature stlport-iostream : on off ;
# STLport extensions
feature stlport-extensions : on off ;
# STLport anachronisms
feature stlport-anachronisms : on off ;
# STLport debug allocation
feature stlport-debug-alloc : off on ;
# ?
feature stlport-cstd-namespace : std global ;
# STLport-5 libraries are located in cross-compilation individual subdirectories.
feature stlport-cross : off on ;
CURR_TOOLSET = $(gCURRENT_TOOLSET) ;
# STLport versions
STLPORT_VERSIONS(default) ?= 4.6.2 ;
STLPORT_VERSIONS(4) ?= 4.6.2 4.6 4.5.3 4.5 ;
STLPORT_VERSIONS(5) ?= 5.0 ;
STLPORT_VERSION ?= $(STLPORT_VERSION(default)) ;
STLPORT_VERSIONS ?= $(STLPORT_VERSIONS(4)) $(STLPORT_VERSIONS(5)) ;
feature stlport-version : [ unique $(STLPORT_VERSION) $(STLPORT_VERSIONS) ] ;
flags $(CURR_TOOLSET) STLPORT_VERSION_RELEVANT_FEATURE <stlport-version> ;
# singleton variables...
set-as-singleton STLPORT_INCLUDE_DIRECTORY STLPORT_LIB_DIRECTORY STLPORT_PATH STLPORT_ROOT ;
#############################################################################
# Returns a path which is assumed to be the root of the STLport installation.
#
# The result depends on the current version X.Y of STLport.
# 1. If global STLPORT_<X.Y>_PATH is set, return it.
# 2. If global STLPORT_PATH is set, return $(STLPORT_PATH)/STLport-<X.Y>
#
rule get-stlport-root
{
local version = [ get-values <stlport-version> : $(gBUILD_PROPERTIES) ] ;
version ?= $(STLPORT_VERSION) ;
local path ;
path ?= $(STLPORT_$(version)_PATH) ;
path ?= $(STLPORT_PATH)$(SLASH)STLport-$(version) ;
path ?= $(STLPORT_ROOT) ; #<< For backward compatability.
if $(version) && ! $(path)
{
local dollar = "$" ;
ECHO **** No STLPORT_PATH configured. *** ;
ECHO To configure STLport for use with the $(CURR_TOOLSET) toolset, the following variables can be set: ;
ECHO ;
ECHO STLPORT_PATH - A directory containing at least one subdirectory of the form /STLport-<version> ;
ECHO " where STLport installations can be found." ;
ECHO ;
ECHO STLPORT_<version>_PATH - The directory where the specific STLport <version> installation can be ;
ECHO " found, in case there is no central location appropriate for STLPORT_PATH, above, or a" ;
ECHO " particular version's installation is not located in the usual place." ;
ECHO ;
ECHO STLPORT_VERSION - The version of STLport in use by default. Defaults to \"$(STLPORT_VERSIONS(default))\". Other ;
ECHO " values can be selected in parallel setting the build property <stlport-version> to" ;
ECHO " values from the list of $(dollar)(STLPORT_VERSIONS)" ;
ECHO ;
ECHO STLPORT_VERSIONS - Alternate versions of STLport available on this machine. Defaults to $(STLPORT_VERSIONS:J=" ") . ;
ECHO ;
ECHO "Note that STLport iostreams are /not/ in use by default. To enable them, you must place" ;
ECHO " <stlport-iostream>on in your BUILD variable or in target requirements." ;
EXIT ;
}
return $(path) ;
}
#############################################################################
STLPORT_INCLUDE_DIRECTORY ?= stlport ;
STLPORT_LIB_DIRECTORY ?= lib ;
STLPORT_BIN_DIRECTORY ?= bin ;
STLPORT_LIB_DEBUG_SUFFIX ?= _stldebug ;
# Clear out the STD paths so that the real toolset doesn't include
# anything but the STLport as the STD. But also set the STDLIBPATH to
# include the compiler libs afterwards as STLport still relies on the
# rest of the runtime.
local .stdlibpath = $(STDLIBPATH) ;
STDHDRS = ;
STDLIBPATH = ;
### Common options.
flags $(CURR_TOOLSET) STDHDRS : [ join [ get-stlport-root ] $(SLASH)$(STLPORT_INCLUDE_DIRECTORY) ] ;
flags $(CURR_TOOLSET) DEFINES <stlport-extensions>off : _STLP_NO_EXTENSIONS=1 ;
flags $(CURR_TOOLSET) DEFINES <stlport-anachronisms>off : _STLP_NO_ANACHRONISMS=1 ;
flags $(CURR_TOOLSET) DEFINES <stlport-cstd-namespace>global : _STLP_VENDOR_GLOBAL_CSTD=1 ;
flags $(CURR_TOOLSET) DEFINES <exception-handling>off : _STLP_NO_EXCEPTIONS=1 ;
flags $(CURR_TOOLSET) DEFINES <stlport-debug-alloc>on : _STLP_DEBUG_ALLOC=1 ;
flags $(CURR_TOOLSET) DEFINES <runtime-build>debug : _STLP_DEBUG=1 _STLP_DEBUG_UNINITIALIZED=1 ;
flags $(CURR_TOOLSET) DEFINES <runtime-link>dynamic : _STLP_USE_DYNAMIC_LIB=1 ;
### STLport 4.x
flags $(CURR_TOOLSET) DEFINES
<stlport-version>$(STLPORT_VERSIONS(4))/<stlport-iostream>off :
_STLP_NO_OWN_IOSTREAMS=1 _STLP_HAS_NO_NEW_IOSTREAMS=1 ;
flags $(CURR_TOOLSET) STDLIBPATH
<stlport-version>$(STLPORT_VERSIONS(4))/<stlport-iostream>on :
[ join [ get-stlport-root ] $(SLASH)$(STLPORT_LIB_DIRECTORY) ]
$(.stdlibpath) ;
flags $(CURR_TOOLSET) FINDLIBS
<stlport-version>$(STLPORT_VERSIONS(4))/<stlport-iostream>on/<runtime-build>debug/<runtime-link>static :
$(STLPORT_LIB_BASE_NAME)$(STLPORT_LIB_DEBUG_SUFFIX)$(STLPORT_LIB_STATIC_SUFFIX) ;
flags $(CURR_TOOLSET) FINDLIBS
<stlport-version>$(STLPORT_VERSIONS(4))/<stlport-iostream>on/<runtime-build>debug/<runtime-link>dynamic :
$(STLPORT_LIB_BASE_NAME)$(STLPORT_LIB_DEBUG_SUFFIX) ;
flags $(CURR_TOOLSET) FINDLIBS
<stlport-version>$(STLPORT_VERSIONS(4))/<stlport-iostream>on/<runtime-build>release/<runtime-link>static :
$(STLPORT_LIB_BASE_NAME)$(STLPORT_LIB_STATIC_SUFFIX) ;
flags $(CURR_TOOLSET) FINDLIBS
<stlport-version>$(STLPORT_VERSIONS(4))/<stlport-iostream>on/<runtime-build>release/<runtime-link>dynamic :
$(STLPORT_LIB_BASE_NAME) ;
### STLport 5.x
switch $(CURR_TOOLSET)
{
case msvc* : STLPORT_AUTOLINK = TRUE ;
case vc* : STLPORT_AUTOLINK = TRUE ;
}
switch $(CURR_TOOLSET)
{
case intel-win32* : STLPORT_CROSS_DIR ?= icl ;
case iw* : STLPORT_CROSS_DIR ?= icl ;
case msvc* : STLPORT_CROSS_DIR ?= vc6 ;
case vc-6* : STLPORT_CROSS_DIR ?= vc6 ;
case vc-7-* : STLPORT_CROSS_DIR ?= vc70 ;
case vc-7_0* : STLPORT_CROSS_DIR ?= vc70 ;
case vc-7_1* : STLPORT_CROSS_DIR ?= vc71 ;
case vc-8* : STLPORT_CROSS_DIR ?= vc8 ;
}
switch $(CURR_TOOLSET)
{
# GCC compilers have 'g' to indicate debug.
case gcc* : STLPORT_DEBUG_SUFFIX ?= g ;
case mingw* : STLPORT_DEBUG_SUFFIX ?= g ;
case darwin* : STLPORT_DEBUG_SUFFIX ?= g ;
# The others use 'd'.
case * : STLPORT_DEBUG_SUFFIX ?= d ;
}
# STLport-5 doesn't directly support single-threaded builds. There is an open
# question if single-threaded application code can be combined with the
# multi-threaded STLport-5. Until that's answered this is commented out and
# boost-base.jam requires all builds to be multi-threaded.
#~ flags $(CURR_TOOLSET) DEFINES
#~ <stlport-version>$(STLPORT_VERSIONS(5)) :
#~ _STLP_THREADS=1 ;
flags $(CURR_TOOLSET) STDLIBPATH
<stlport-version>$(STLPORT_VERSIONS(5))/<stlport-cross>off :
[ join [ get-stlport-root ] $(SLASH)$(STLPORT_LIB_DIRECTORY) ]
[ join [ get-stlport-root ] $(SLASH)$(STLPORT_BIN_DIRECTORY) ]
$(.stdlibpath) ;
flags $(CURR_TOOLSET) STDLIBPATH
<stlport-version>$(STLPORT_VERSIONS(5))/<stlport-cross>on :
[ join [ get-stlport-root ] $(SLASH)$(STLPORT_LIB_DIRECTORY) $(SLASH)$(STLPORT_CROSS_DIR) ]
[ join [ get-stlport-root ] $(SLASH)$(STLPORT_BIN_DIRECTORY) $(SLASH)$(STLPORT_CROSS_DIR) ]
$(.stdlibpath) ;
if ! $(STLPORT_AUTOLINK)
{
STLPORT_LIB_STATIC_SUFFIX ?= "" ;
for local v in $(STLPORT_VERSIONS(5))
{
flags $(CURR_TOOLSET) FINDLIBS
<stlport-version>$(v)/<runtime-build>debug/<runtime-link>static :
stlportstl$(STLPORT_DEBUG_SUFFIX)$(STLPORT_LIB_STATIC_SUFFIX).$(v) ;
flags $(CURR_TOOLSET) FINDLIBS
<stlport-version>$(v)/<runtime-build>debug/<runtime-link>dynamic :
stlportstl$(STLPORT_DEBUG_SUFFIX).$(v) ;
flags $(CURR_TOOLSET) FINDLIBS
<stlport-version>$(v)/<runtime-build>release/<runtime-link>static :
stlport$(STLPORT_LIB_STATIC_SUFFIX).$(v) ;
flags $(CURR_TOOLSET) FINDLIBS
<stlport-version>$(v)/<runtime-build>release/<runtime-link>dynamic :
stlport.$(v) ;
}
}

View File

@@ -1,20 +0,0 @@
# (C) Copyright Gennadiy Rozental 2002. Permission to copy, use,
# modify, sell and distribute this software is granted provided this
# copyright notice appears in all copies. This software is provided
# "as is" without express or implied warranty, and with no claim as
# to its suitability for any purpose.
# Sun Workshop 6 C++ compiler with STLPort version of STL
# this is simply an extension to the sunpro toolset.
extends-toolset sunpro ;
flags $(gCURRENT_TOOLSET) STLPORT_LIB_BASE_NAME ;
STLPORT_LIB_BASE_NAME = stlport_sunpro ;
# bring in the STLPort configuration
SEARCH on stlport.jam = $(BOOST_BUILD_PATH) ;
include stlport.jam ;
flags sunpro-stlport FINDLIBS <stlport-iostream>off : iostream ;

View File

@@ -1,213 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1st September 2003), see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
<title>Boost.Build - sunpro toolset</title>
</head>
<body bgcolor="#FFFFFF" 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="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Boost.Build</h1>
<h2 align="center">sunpro toolset</h2>
</td>
</tr>
</table>
<hr>
<h2>Introduction</h2>
<p>Boost.Build's <code>sunpro</code> toolset supports the <a href=
"http://wwws.sun.com/software/sundev/suncc/index.html">Sun ONE Studio</a>
compiler. This compiler has been known under several trade names including
Sun WorkShop and Forte Developer. For convenience, this document will refer
to numbered releases of the compiler when differention is necessary; this
release number can be obtained by running <code>CC &#8209;V</code> at the
command line.</p>
<h2>Compatibility</h2>
<p>As of this writing (November 2003) the Sun C++ compiler has difficulty
building many of the libraries included with Boost. <a href=
"http://www.boost.org/regression/release/developer/summary.html">Complete
regression test information is available</a>, although absent from the
regression tables are some libraries that Sun C++ has particular difficulty
with, including <code><a href=
"../../../libs/mpl/doc/index.html">mpl</a></code> and <code><a href=
"../../../libs/spirit/index.html">spirit</a></code>.</p>
<h3>Notes on specific versions</h3>
<p>Best results can be obtained by being up-to-date on the most recent
patches for your compiler version. Information on patches is <a href=
"http://access1.sun.com/sundev/index.html">available from Sun
Microsystems.</a></p>
<p style="text-align: center">&nbsp;</p>
<table border="1" summary="Version notes">
<tr>
<th>Compiler Version</th>
<th>Trade Name(s)</th>
<th>Notes</th>
</tr>
<tr>
<td>&lt;= 5.2</td>
<td>Sun&nbsp;WorkShop&nbsp;5<br>
Sun&nbsp;WorkShop&nbsp;6<br>
Sun&nbsp;WorkShop&nbsp;6&nbsp;update&nbsp;1</td>
<td>
<p>No current information available. Boost is unlikely to be very
functional with these older releases, as they do not support some of
the necessary parts of the C++ language. Patches and workarounds are
welcome.</p>
</td>
</tr>
<tr>
<td>5.3</td>
<td>Sun&nbsp;WorkShop&nbsp;6&nbsp;update&nbsp;2</td>
<td>
<p>The most recent reports seem to imply that this release is
<a href="http://article.gmane.org/gmane.comp.lib.boost.devel/27660">&ldquo;hopeless
for Boost&rdquo;</a>, but patches and workarounds are welcome.</p>
</td>
</tr>
<tr>
<td>5.4</td>
<td>Forte&nbsp;Developer&nbsp;7</td>
<td>
<p>This version recognizes an undocumented, unsupported flag that
improves its success in compiling templates:</p>
<blockquote>
<code>&#8209;Qoption CC &#8209;xcomdat</code>
</blockquote>
<p>This flag changes the template instantiation method from
&ldquo;exported&rdquo; to an improved &ldquo;global&rdquo; which has
been found to eliminate some compiler bugs regarding the
instantiation of template run-time type information. This option, if
used, is required for both compiling and linking.</p>
</td>
</tr>
<tr>
<td>5.5</td>
<td>Sun ONE Studio 8</td>
<td>
<p>No current information is available. This version changes the
default template instantiation method from &ldquo;exported&rdquo;
(using a template repository) to &ldquo;global&rdquo; (storing
instances in object files with global linkage). The linker should
then automatically detect and eliminate duplicate definitions. This
change <i>should</i> improve template performace over previous
releases.</p>
</td>
</tr>
</table>
<h2>Configuration Variables</h2>
<p>The sunpro toolset responds to the following variables which can be set
in the environment or configured on the bjam command line using
<code>&#8209;s<i>VARIABLE_NAME</i>=</code><i>value</i>:</p>
<p style="text-align: center">&nbsp;</p>
<table border="1" summary="settings">
<tr>
<th>Variable Name</th>
<th>Semantics</th>
<th>Default</th>
<th>Notes</th>
</tr>
<tr>
<td><code>SUNPRO_ROOT_DIRECTORY</code></td>
<td>Path to installation directory of compiler tools.</td>
<td>(none)</td>
<td>Usually there is no need to set this variable at all. However, if
<code>CC</code> is not in the path is is usually sufficient to
configure this one variable. A typical value for this variable is
<code>/opt/SUNWspro</code>.</td>
</tr>
<tr>
<td><code>SUNPRO_BIN_DIRECTORY</code></td>
<td>Path to bin directory.</td>
<td><code>$(SUNPRO_ROOT_DIRECTORY)/bin/</code></td>
<td>&nbsp;</td>
</tr>
<tr>
<td><code>SUNPRO_CXX</code></td>
<td>The name by which the C++ compiler is invoked</td>
<td><code>$(SUNPRO_BIN_DIRECTORY)CC</code></td>
<td>You can also use this in lieu of setting the &lt;cxxflags&gt;
property to force options such as <code>&#8209;Qoption CC
&#8209;xcomdat</code> into the CC command line:
<code>&ldquo;&#8209;sSUNPRO_CXX=CC &#8209;Qoption CC
&#8209;xcomdat&rdquo;</code>.</td>
</tr>
<tr>
<td><code>SUNPRO_CC</code></td>
<td>The name by which the C compiler is invoked</td>
<td><code>$(SUNPRO_BIN_DIRECTORY)cc</code></td>
<td>&nbsp;</td>
</tr>
</table>
<hr>
<p>Revised $Date$</p>
<p>Copyright 2003 Christopher Currie, 2003 Gennadiy Rozental, 2003 Jens
Maurer</p>
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More