tools/build/v1/features.jam
#~ 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 ;