Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_33_1/tools/build/v1/features.jam @ 12

Last change on this file since 12 was 12, checked in by landauf, 18 years ago

added boost

File size: 7.0 KB
Line 
1#~ Copyright David Abrahams 2001.
2#~ Copyright Rene Rivera 2004.
3
4#~ Distributed under the Boost Software License, Version 1.0.
5#~ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
6
7# A summary of features:
8#
9# - "feature" has a fixed list of values, of which the first is the default.
10#   Affect link compatability.
11#
12# - "free-feature" has a variable or fixed list of values, default is empty.
13#   Does not affect link compatability.
14#
15# - "path-feature" has a variable list of path values, default is empty.
16#   Does not affect link compatability.
17#
18# - "dependency-feature" like "path-feature" but affects dependency rebuilds.
19
20# Profiling feature support by Toon Knapen <toon@si-lab.com>.
21feature profiling : off on ;
22
23# C/C++ alignment of structure members
24feature struct-alignment : auto 1 2 4 8 16 ;
25
26# Type of exceptions to use, Metrowerks/CodeWarrior only.
27feature eh-model : default fast msvc ;
28
29# ??, GCC only.
30feature vtable-thunks : default on off ;
31
32# Generate code to support, or not threading.
33feature threading : single multi ;
34
35# Link to the language runtime libraries as a shared object, or statically
36# link them into the produced object.
37feature runtime-link : dynamic static ;
38
39# Use either the debug or release versions of the language runtime,
40# when available.
41feature runtime-build : debug release ;
42
43# Compilation optimization level.
44feature optimization : off speed space ;
45
46# Inlining, "off" disables it, "on" enables with "inline" keywords, and
47# "full" enables it for specified functions and any others the compiler
48# deams inline-able.
49feature inlining : off on full ;
50
51# Generate and include debug symbol information.
52feature debug-symbols : on off ;
53
54# ??.
55free-feature debug-store : object database ;
56
57# What type of OS subsystem to target. Windows only.
58free-feature user-interface : console gui ;
59
60# ??.
61feature unicode-application : on off ;
62
63# Enable/disable exceptions.
64feature exception-handling : on off ;
65
66# Enable/disable C++ runtime type information.
67feature rtti : on off ;
68
69# Set the feature to "no" in order to skip the build of this target.
70# Useful to disable known non-working compilers or variants.
71feature build : yes no ;
72
73# ??.
74feature stdlib : "default" gcc stlport ;
75
76# Used to specify "default-BUILD" properties that will be used if not
77# overridden by the BUILD variable.
78free-feature "default" ;
79
80# Custom flags for the various build procedures.
81free-feature cflags ;
82free-feature linkflags ;
83free-feature cxxflags ;
84free-feature arflags ;
85
86# Preprocessor definitions.
87free-feature define ; # <define>PYTHON=foo
88free-feature undef ; # <undef>PYTHON=foo
89
90# Add a user include path (#include "x.h").
91path-feature "include" ; # <include>../foo/bar/mumble
92
93# Add a system include path (#include <x.h>).
94path-feature sysinclude ; # <sysinclude>/fu/man/chu
95
96# Finding libraries needs a search path and a base library name.
97path-feature library-path ;
98free-feature find-library ;
99
100# Link in an external library file.
101dependency-feature library-file ;
102
103# The version of a shared object. <dllversion>1.27.0 (for use with soname-ing)
104free-feature dllversion ;
105
106# Add a name tag to a target, see Boost.Build documentation for details.
107free-feature tag ;
108
109# ??.
110free-feature version ;
111
112# Control warnings, to turn the on, off, how many, and which ones.
113# Values are toolset dependent, but the ones listed here must
114# be supported...
115# - "on", default has warnings enabled.
116# - "off", no warnings.
117# - "error", turn warnings into errors.
118# For toolsets that support it specifying a number
119# will limit the number of warnings produced.
120free-feature warnings ;
121
122# Control how many errors to tollerate.
123free-feature errors ;
124
125# Include file as prefix before all other includes.
126free-feature prefix ;
127
128# How to interpret relative paths in includes.
129# - "relative", as GCC search relative to inclusion point.
130# - "directory", relative to current directory.
131# - "source", realtive to original source file.
132# - "paths", only search given include and sysinclude paths.
133free-feature include-search : relative directory source paths ;
134
135# Can the target participate in a shared library?
136feature shared-linkable : false true ;
137
138# The addressing model to generate code for.
139# Currently a limited set only specifying the bit size of pointers.
140feature address-model : default 16 32 64 ;
141
142# Type of CPU architecture to compile for.
143feature architecture :
144    # The default is the machine we are on, i.e. nothing
145    native
146    # x86 and compatible
147    x86
148    # Sparc
149    sparc
150    # RS/6000 & PowerPC
151    power
152    # MIPS/SGI
153    mips1 mips2 mips3 mips4
154    ;
155
156# The specific instruction set in an architecture to compile.
157feature instruction-set :
158    # Default should probably always be the lowest common denominator.
159    default
160    # x86 and compatible
161    i386 i486 i586 i686 pentium pentium-mmx pentiumpro pentium2 pentium3 pentium4
162    k6 k6-2 k6-3 athlon athlon-tbird athlon-4 athlon-xp athlon-mp
163    # Sparc
164    v7 cypress v8 supersparc sparclite hypersparc sparclite86x
165    f930 f934 sparclet tsc701 v9 ultrasparc
166    # RS/6000 & PowerPC
167    rios rios1 rsc rios2 rs64a
168    601 602 603 603e 604 604e 620 630 740 750
169    power power2 powerpc power64
170    403 505 801 821 823 860
171    power-common
172    # MIPS
173    r2000 r3000 r3900 r4000 r4100 r4300 r4400 r4600 r4650 r5000 r6000 r8000 orion
174    ;
175
176# The object model the compiler uses when compiling C++ code. Currently only
177# relevant for Compaq C++ V6.3 and newer.
178feature object-model :
179    # Use the default object model which works best for boost. This most
180    # probably should be 'ansi' in all cases.
181    default
182    # Explicitly select the 'arm' object model. Used for backward compatible
183    # binaries.
184    arm
185    # Explicitly select the 'ansi' object model. Used to support the complete
186    # standard.
187    ansi
188    # AIX has it's own ABI, this is available with the gcc -maix32/64 options.
189    aix
190    ;
191
192gLINK_COMPATIBLE = <shared-linkable>true <target-type> <inlining> ;
193
194gALWAYS_RELEVANT = <target-type> <tag> <default> <build> ;
195
196##### Requirements by target type #####
197gTARGET_TYPE_REQUIREMENTS(DLL) = <shared-linkable>true ;
198
199##### Variant definitions ####
200variant common :
201    <vtable-thunks>default
202    <struct-alignment>auto
203    <eh-model>default
204    <threading>single
205    <unicode-application>off
206    <exception-handling>on
207    <rtti>on
208    <shared-linkable>false
209    <address-model>default
210    <architecture>native
211    <instruction-set>default
212    <profiling>off
213    <object-model>default
214    ;
215
216variant debug : common :
217    <debug-symbols>on
218    <runtime-build>debug
219    <optimization>off
220    <inlining>off
221    ;
222
223if $(NT)   
224{
225    variant debug-python : debug :
226      <define>BOOST_DEBUG_PYTHON
227      <gcc><define>Py_DEBUG
228      ;
229}
230else
231{
232    variant debug-python : debug :
233      <define>BOOST_DEBUG_PYTHON
234      <define>Py_DEBUG
235      ;
236}
237
238variant release : common :
239    <debug-symbols>off
240    <runtime-build>release
241    <optimization>speed
242    <inlining>full
243    <define>NDEBUG
244    ;
245
246# Profiling variant by Toon Knapen <toon@si-lab.com>
247variant profile : release :
248    <profiling>on
249    <debug-symbols>on
250    ;
251
Note: See TracBrowser for help on using the repository browser.