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:
@@ -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) ]
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user