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:
119
v1/acc-tools.jam
119
v1/acc-tools.jam
@@ -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) "$(<)" "$(>)"
|
||||
}
|
||||
2246
v1/allyourbase.jam
2246
v1/allyourbase.jam
File diff suppressed because it is too large
Load Diff
2977
v1/boost-base.jam
2977
v1/boost-base.jam
File diff suppressed because it is too large
Load Diff
@@ -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) ;
|
||||
}
|
||||
@@ -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 ] ;
|
||||
}
|
||||
@@ -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 ] ;
|
||||
}
|
||||
@@ -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 ] ;
|
||||
}
|
||||
@@ -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 © 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>
|
||||
@@ -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) "$(<)" @"$(>)"
|
||||
}
|
||||
1565
v1/build_system.htm
1565
v1/build_system.htm
File diff suppressed because it is too large
Load Diff
@@ -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 ;
|
||||
}
|
||||
@@ -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 ;
|
||||
}
|
||||
@@ -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> </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> </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 © 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>
|
||||
@@ -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 $(<) $(>)
|
||||
}
|
||||
|
||||
@@ -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)" @"$(>)"
|
||||
}
|
||||
|
||||
@@ -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 ;
|
||||
}
|
||||
@@ -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 ;
|
||||
}
|
||||
@@ -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 ;
|
||||
}
|
||||
@@ -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 ;
|
||||
}
|
||||
@@ -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>
|
||||
377
v1/cw-tools.jam
377
v1/cw-tools.jam
@@ -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)"
|
||||
}
|
||||
@@ -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 © 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>
|
||||
@@ -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)"
|
||||
}
|
||||
@@ -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" >> $(<)
|
||||
}
|
||||
@@ -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 © 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>
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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 © 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>
|
||||
106
v1/dmc-tools.jam
106
v1/dmc-tools.jam
@@ -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 "$(<)" "$(>)"
|
||||
}
|
||||
@@ -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>
|
||||
@@ -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 $(<) $(>)
|
||||
}
|
||||
|
||||
@@ -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 .. ;
|
||||
@@ -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
|
||||
;
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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 ;
|
||||
@@ -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; }
|
||||
@@ -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() {}
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
;
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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 ;
|
||||
@@ -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
|
||||
;
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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
|
||||
;
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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
|
||||
;
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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
|
||||
;
|
||||
@@ -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
|
||||
@@ -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
|
||||
;
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
251
v1/features.jam
251
v1/features.jam
@@ -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
|
||||
;
|
||||
|
||||
@@ -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>
|
||||
@@ -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 ;
|
||||
@@ -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 © 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>
|
||||
@@ -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 ;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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><cxxflags></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 © 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>
|
||||
529
v1/gcc-tools.jam
529
v1/gcc-tools.jam
@@ -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=) "$(<)" "$(>)"
|
||||
}
|
||||
@@ -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)
|
||||
155
v1/hacking.txt
155
v1/hacking.txt
@@ -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)
|
||||
@@ -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 © 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>
|
||||
@@ -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 © 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>
|
||||
@@ -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])"
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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" ;
|
||||
}
|
||||
@@ -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" ;
|
||||
}
|
||||
@@ -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" ;
|
||||
}
|
||||
@@ -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) ;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 © 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>
|
||||
@@ -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" ;
|
||||
}
|
||||
}
|
||||
@@ -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" ;
|
||||
}
|
||||
@@ -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" ;
|
||||
}
|
||||
@@ -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 © 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>
|
||||
@@ -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 "$(<)" "$(>)"
|
||||
}
|
||||
|
||||
@@ -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>© 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>
|
||||
@@ -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 $(<) $(>)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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 ;
|
||||
}
|
||||
@@ -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 ;
|
||||
}
|
||||
@@ -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 ;
|
||||
}
|
||||
@@ -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 © 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>
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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> </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> </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> </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>"-sMINGW_ROOT_DIRECTORY=C:\Progra~1\Dev-Cpp"</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 © 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>
|
||||
@@ -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 ;
|
||||
@@ -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> </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> </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> </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> </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 © 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>
|
||||
@@ -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 "$(<)" \
|
||||
"$(>)"
|
||||
}
|
||||
@@ -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 © 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>
|
||||
@@ -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) ] ;
|
||||
@@ -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 Files\Microsoft Visual 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 Files\Microsoft Visual 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 © 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>
|
||||
@@ -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:"$(<)" @"$(>)"
|
||||
}
|
||||
|
||||
|
||||
647
v1/python.jam
647
v1/python.jam
@@ -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 ;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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 ;
|
||||
}
|
||||
@@ -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 ;
|
||||
}
|
||||
@@ -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 ;
|
||||
}
|
||||
@@ -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)$(_)"$(<)"
|
||||
}
|
||||
222
v1/stlport.html
222
v1/stlport.html
@@ -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>
|
||||
<stlport-version> 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 4.6.2 4.6 4.5.3 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) $(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
|
||||
<cstdlib> 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 © 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>
|
||||
205
v1/stlport.jam
205
v1/stlport.jam
@@ -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) ;
|
||||
}
|
||||
}
|
||||
@@ -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 ;
|
||||
@@ -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 ‑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"> </p>
|
||||
|
||||
<table border="1" summary="Version notes">
|
||||
<tr>
|
||||
<th>Compiler Version</th>
|
||||
|
||||
<th>Trade Name(s)</th>
|
||||
|
||||
<th>Notes</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><= 5.2</td>
|
||||
|
||||
<td>Sun WorkShop 5<br>
|
||||
Sun WorkShop 6<br>
|
||||
Sun WorkShop 6 update 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 WorkShop 6 update 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">“hopeless
|
||||
for Boost”</a>, but patches and workarounds are welcome.</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>5.4</td>
|
||||
|
||||
<td>Forte Developer 7</td>
|
||||
|
||||
<td>
|
||||
<p>This version recognizes an undocumented, unsupported flag that
|
||||
improves its success in compiling templates:</p>
|
||||
|
||||
<blockquote>
|
||||
<code>‑Qoption CC ‑xcomdat</code>
|
||||
</blockquote>
|
||||
|
||||
<p>This flag changes the template instantiation method from
|
||||
“exported” to an improved “global” 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 “exported”
|
||||
(using a template repository) to “global” (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>‑s<i>VARIABLE_NAME</i>=</code><i>value</i>:</p>
|
||||
|
||||
<p style="text-align: center"> </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> </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 <cxxflags>
|
||||
property to force options such as <code>‑Qoption CC
|
||||
‑xcomdat</code> into the CC command line:
|
||||
<code>“‑sSUNPRO_CXX=CC ‑Qoption CC
|
||||
‑xcomdat”</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> </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
Reference in New Issue
Block a user