Boost logo

Boost-Build :

From: Michael Stevens (Michael.Stevens_at_[hidden])
Date: 2004-05-11 15:22:43


On Tuesday 11 May 2004 16:28, Vladimir Prus wrote:
> The last version I've played with is attached. Usual disclaimers apply -- I
> have *some* V2 tests work with it, but otherwise it's completely untested.
>
> Of course, if you could share some expertise with the intel toolset, that
> would be most appreciated.
>
Thanks for mailing that. It got me working and I have merged it with my own
experimental code. I have attached my version.

It is a little more complete. I call it "intellinux.jam" which I find visually
simpler when specifying properties. Does anyone have any strong preferences
for naming?

It add few useful features.
An comprehensive init which allow path, compiler name and compile and link
options to be specified in the user-config. These are all conditioned on the
version which is therefore mandatory.

A default compiler location. This should probably be extended to the new
scheme that version 80 uses.

An override for the inlining options as the intel compiler does not understand
the gcc options.

I dropped the LANG handing in compiler.c++ as the gcc comment states this is
only for distcc which doesn't understand '-x'. I assume distcc cannot be
using with icc anyway.

To make everything perfect gcc.jam should be modifed with
flags gcc.link OPTIONS <debug-symbols>off : -Wl,--strip-all ;
as icc does not understand '-s'.

All the best,
Michael

-- 
___________________________________
Michael Stevens Systems Engineering
Navigation Systems, Estimation and
Bayesian Filtering
http://bayesclasses.sf.net
___________________________________
 --Boundary-00=_TYToA61LhqMk/13 Content-Type: text/plain;
charset="iso-8859-1";
name="intellinux.jam"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="intellinux.jam"
# Copyright (c) 2003 Michael Stevens
#
# Use, modification and distribution is subject to the Boost Software
# License Version 1.0. (See accompanying file LICENSE_1_0.txt or
# http://www.boost.org/LICENSE_1_0.txt)
import toolset ;
import feature ;
import toolset : flags ;
feature.extend toolset : intellinux ;
import gcc ; # toolset.inherit intellinux : gcc ; with prohibit flag properties
toolset.inherit-generators intellinux : gcc ;
toolset.inherit-flags intellinux : gcc : <inlining>off <inlining>on <inlining>full ;
toolset.inherit-rules intellinux : gcc ;
feature.subfeature toolset intellinux : version : : propagated link-incompatible ;
# Initializes the intellinux toolset
# version in mandatory
# path and name are combine to find the name to invoke the specified intellinux version.
# compile and link options allow you to specify addition command line options for each version
rule init ( version : path ? : name ? : compile_options * : link_options * )
{
name ?= "icc" ;
path ?= "/opt/intel/compiler"$(version)"/ia32/bin/" ;
feature.extend-subfeature toolset intellinux : version : $(version) ;
flags intellinux CONFIG_NAME <toolset>intellinux-$(version) : $(path)$(name) ;
flags intellinux CONFIG_COMPILE <toolset>intellinux-$(version) : $(compile_options) ;
flags intellinux CONFIG_LINK <toolset>intellinux-$(version) : $(link_options) ;
}
flags intellinux.compile OPTIONS <inlining>off : "-Ob0" ;
flags intellinux.compile OPTIONS <inlining>on : "-Ob1" ;
flags intellinux.compile OPTIONS <inlining>full : "-Ob2" ;
actions compile.c++
{
$(CONFIG_NAME) -c -xc++ $(CONFIG_COMPILE) $(OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
}
actions compile.c
{
$(CONFIG_NAME) -c -xc $(CONFIG_LINK) $(OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
}
 --Boundary-00=_TYToA61LhqMk/13-- 

Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk