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>. |
---|
21 | feature profiling : off on ; |
---|
22 | |
---|
23 | # C/C++ alignment of structure members |
---|
24 | feature struct-alignment : auto 1 2 4 8 16 ; |
---|
25 | |
---|
26 | # Type of exceptions to use, Metrowerks/CodeWarrior only. |
---|
27 | feature eh-model : default fast msvc ; |
---|
28 | |
---|
29 | # ??, GCC only. |
---|
30 | feature vtable-thunks : default on off ; |
---|
31 | |
---|
32 | # Generate code to support, or not threading. |
---|
33 | feature threading : single multi ; |
---|
34 | |
---|
35 | # Link to the language runtime libraries as a shared object, or statically |
---|
36 | # link them into the produced object. |
---|
37 | feature runtime-link : dynamic static ; |
---|
38 | |
---|
39 | # Use either the debug or release versions of the language runtime, |
---|
40 | # when available. |
---|
41 | feature runtime-build : debug release ; |
---|
42 | |
---|
43 | # Compilation optimization level. |
---|
44 | feature 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. |
---|
49 | feature inlining : off on full ; |
---|
50 | |
---|
51 | # Generate and include debug symbol information. |
---|
52 | feature debug-symbols : on off ; |
---|
53 | |
---|
54 | # ??. |
---|
55 | free-feature debug-store : object database ; |
---|
56 | |
---|
57 | # What type of OS subsystem to target. Windows only. |
---|
58 | free-feature user-interface : console gui ; |
---|
59 | |
---|
60 | # ??. |
---|
61 | feature unicode-application : on off ; |
---|
62 | |
---|
63 | # Enable/disable exceptions. |
---|
64 | feature exception-handling : on off ; |
---|
65 | |
---|
66 | # Enable/disable C++ runtime type information. |
---|
67 | feature 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. |
---|
71 | feature build : yes no ; |
---|
72 | |
---|
73 | # ??. |
---|
74 | feature stdlib : "default" gcc stlport ; |
---|
75 | |
---|
76 | # Used to specify "default-BUILD" properties that will be used if not |
---|
77 | # overridden by the BUILD variable. |
---|
78 | free-feature "default" ; |
---|
79 | |
---|
80 | # Custom flags for the various build procedures. |
---|
81 | free-feature cflags ; |
---|
82 | free-feature linkflags ; |
---|
83 | free-feature cxxflags ; |
---|
84 | free-feature arflags ; |
---|
85 | |
---|
86 | # Preprocessor definitions. |
---|
87 | free-feature define ; # <define>PYTHON=foo |
---|
88 | free-feature undef ; # <undef>PYTHON=foo |
---|
89 | |
---|
90 | # Add a user include path (#include "x.h"). |
---|
91 | path-feature "include" ; # <include>../foo/bar/mumble |
---|
92 | |
---|
93 | # Add a system include path (#include <x.h>). |
---|
94 | path-feature sysinclude ; # <sysinclude>/fu/man/chu |
---|
95 | |
---|
96 | # Finding libraries needs a search path and a base library name. |
---|
97 | path-feature library-path ; |
---|
98 | free-feature find-library ; |
---|
99 | |
---|
100 | # Link in an external library file. |
---|
101 | dependency-feature library-file ; |
---|
102 | |
---|
103 | # The version of a shared object. <dllversion>1.27.0 (for use with soname-ing) |
---|
104 | free-feature dllversion ; |
---|
105 | |
---|
106 | # Add a name tag to a target, see Boost.Build documentation for details. |
---|
107 | free-feature tag ; |
---|
108 | |
---|
109 | # ??. |
---|
110 | free-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. |
---|
120 | free-feature warnings ; |
---|
121 | |
---|
122 | # Control how many errors to tollerate. |
---|
123 | free-feature errors ; |
---|
124 | |
---|
125 | # Include file as prefix before all other includes. |
---|
126 | free-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. |
---|
133 | free-feature include-search : relative directory source paths ; |
---|
134 | |
---|
135 | # Can the target participate in a shared library? |
---|
136 | feature 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. |
---|
140 | feature address-model : default 16 32 64 ; |
---|
141 | |
---|
142 | # Type of CPU architecture to compile for. |
---|
143 | feature 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. |
---|
157 | feature 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. |
---|
178 | feature 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 | |
---|
192 | gLINK_COMPATIBLE = <shared-linkable>true <target-type> <inlining> ; |
---|
193 | |
---|
194 | gALWAYS_RELEVANT = <target-type> <tag> <default> <build> ; |
---|
195 | |
---|
196 | ##### Requirements by target type ##### |
---|
197 | gTARGET_TYPE_REQUIREMENTS(DLL) = <shared-linkable>true ; |
---|
198 | |
---|
199 | ##### Variant definitions #### |
---|
200 | variant 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 | |
---|
216 | variant debug : common : |
---|
217 | <debug-symbols>on |
---|
218 | <runtime-build>debug |
---|
219 | <optimization>off |
---|
220 | <inlining>off |
---|
221 | ; |
---|
222 | |
---|
223 | if $(NT) |
---|
224 | { |
---|
225 | variant debug-python : debug : |
---|
226 | <define>BOOST_DEBUG_PYTHON |
---|
227 | <gcc><define>Py_DEBUG |
---|
228 | ; |
---|
229 | } |
---|
230 | else |
---|
231 | { |
---|
232 | variant debug-python : debug : |
---|
233 | <define>BOOST_DEBUG_PYTHON |
---|
234 | <define>Py_DEBUG |
---|
235 | ; |
---|
236 | } |
---|
237 | |
---|
238 | variant 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> |
---|
247 | variant profile : release : |
---|
248 | <profiling>on |
---|
249 | <debug-symbols>on |
---|
250 | ; |
---|
251 | |
---|