2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-16 01:12:13 +00:00

New "c++abi" feature. Implement "cxxarm" value of that feature to Tru64,

and add proper -model compiler flags.


[SVN r32808]
This commit is contained in:
Vladimir Prus
2006-02-10 15:00:52 +00:00
parent 8546ac52b4
commit d005b61309
3 changed files with 18 additions and 14 deletions

View File

@@ -83,6 +83,10 @@ rule flags ( rule-or-module # If contains dot, should be a rule name.
# will be added.
unchecked ? # If value 'unchecked' is passed, will not test
# that flags are set for the calling module.
: hack-hack ? # For
# flags rule OPTIONS <cxx-abi> : -model ansi
# Treak <cxx-abi> as condition
# FIXME: ugly hack.
)
{
local caller = [ CALLER_MODULE ] ;
@@ -107,7 +111,7 @@ rule flags ( rule-or-module # If contains dot, should be a rule name.
}
if $(condition) && ! $(condition:G=)
if $(condition) && ! $(condition:G=) && ! $(hack-hack)
{
# We have condition in the form '<feature>', that is, without
# value. That's a previous syntax:
@@ -261,7 +265,7 @@ rule set-target-variables-aux ( rule-or-module : property-set )
local variable = $(.$(rule-or-module).variable.$(f)) ;
local condition = $(.$(rule-or-module).condition.$(f)) ;
local values = $(.$(rule-or-module).values.$(f)) ;
if ! $(condition) ||
[ find-property-subset $(condition) : $(properties) ]

View File

@@ -179,6 +179,11 @@ feature instruction-set :
: propagated optional ;
# Used to select specific variant of C++ ABI is the compiler
# supports several.
feature c++abi : : propagated optional ;
feature conditional : : incidental free ;
# The value of 'no' prevents building of a target.

View File

@@ -31,6 +31,7 @@ import feature generators common ;
import toolset : flags ;
feature.extend toolset : tru64 ;
feature.extend c++abi : cxxarm ;
# Inherit from Unix toolset to get library ordering magic.
toolset.inherit tru64 : unix ;
@@ -104,18 +105,13 @@ flags tru64.link OPTIONS <profiling>on : -pg ;
# Selection of the object model. This flag is needed on both the C++ compiler
# and linker command line.
#
# FIXME: Don't know what this <object-model> feature does. Disabling until
# it's figured out.
#flags tru64.compile.c++ OPTIONS <object-model>arm : -model arm ;
#flags tru64.compile.c++ OPTIONS <object-model>ansi : -model ansi ;
#flags tru64.compile.c++ OPTIONS <object-model>default : -model ansi ;
#flags tru64.link OPTIONS <object-model>arm : -model arm ;
#flags tru64.link OPTIONS <object-model>ansi : -model ansi ;
#flags tru64.link OPTIONS <object-model>default : -model ansi ;
# Unspecified ABI translates to '-model ansi' as most
# standard-conforming.
flags tru64.compile.c++ OPTIONS <c++abi> : -model ansi : : hack-hack ;
flags tru64.compile.c++ OPTIONS <c++abi>cxxarm : -model arm ;
flags tru64.link OPTIONS <c++abi> : -model ansi : : hack-hack ;
flags tru64.link OPTIONS <c++abi>cxxarm : -model arm ;
flags tru64.compile OPTIONS <cflags> ;
@@ -129,7 +125,6 @@ flags tru64.link LIBRARIES <library-file> ;
flags tru64.link FINDLIBS-ST <find-static-library> ;
flags tru64.link FINDLIBS-SA <find-shared-library> ;
actions link bind LIBRARIES
{
$(CONFIG_COMMAND) -noimplicit_include $(OPTIONS) -o "$(<)" -L$(LIBPATH) "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-ST) -l$(FINDLIBS-SA) -lrt -lm