Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2004-05-24 04:31:11


Hi Sean,
> Are there plans to include support for aCC in Boost Build v2?

Not yet, but if you're willing to help, I'm sure this can be done rather
quickly.

> Would
> it be possible for me to add this myself, using the aCC config file
> from v1 as a starting point? Any pointers for doing this?

I've sketched an initial version of acc.jam, which is attached. It's mostly v1
toolset which some syntax differences for V2.

It can be used by adding

using acc : <version> : <path to acc binary> ;

to 'user-config.jam'

When I go to tools/build/v2/example/hello and run "bjam -n acc" I get some
reasonable commands. However, I don't have acc, so I'm not sure if the
toolset really works.

Your help with making it work would be really appreciated. At the minimum, you
could try it on some examples you have and send all corrections. If you could
run all V2 tests with acc, this would be excellent.

To run the test you'd need:
1. Get Python installed
2. Add the same " using " line into test/test-config.jam
3. Go to the "test" dir and run "python test_all.py acc-<version>"

Of course, you might start just with some programs, and run the full test
later, when you have time.

Thanks,
Volodya
 --Boundary-00=_fDcsAmaugcmFrjN Content-Type: text/plain;
charset="iso-8859-1";
name="acc.jam"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="acc.jam"

# (C) Copyright Toon Knapen 2002, David Abrahams 2002
# Permission to copy, use,
# modify, sell and distribute this software is granted provided this
# copyright notice appears in all copies. This software is provided
# "as is" without express or implied warranty, and with no claim as
# to its suitability for any purpose.

# Copyright Vladimir Prus 2004.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt
# or copy at http://www.boost.org/LICENSE_1_0.txt)

#
# Boost.Build V2 toolset for the HP-UX aCC compiler
#

import toolset : flags ;
import feature ;

feature.extend toolset : acc ;
toolset.inherit acc : unix ;
feature.subfeature toolset acc : version ;

# Configures the acc toolset.
rule init ( version : path )
{
feature.extend-subfeature toolset acc : version : $(version) ;
flags acc ACC_PATH <toolset>acc-$(version) : $(path) ;
}

# Declare generators
generators.register-c-compiler acc.compile.c : C : OBJ : <toolset>acc ;
generators.register-c-compiler acc.compile.c++ : CPP : OBJ : <toolset>acc ;

# Declare flags.
flags acc CFLAGS <optimization>off : ;
flags acc CFLAGS <optimization>speed : -O3 ;
flags acc CFLAGS <optimization>space : -O2 ;

flags acc CFLAGS <inlining>off : ;
flags acc CFLAGS <inlining>on : ;
flags acc CFLAGS <inlining>full : ;
flags acc CFLAGS <threading>multi : -mt ;

flags acc C++FLAGS <exception-handling>off : ;
flags acc C++FLAGS <exception-handling>on : ;

flags acc C++FLAGS <rtti>off : ;
flags acc C++FLAGS <rtti>on : ;

flags acc LINKFLAGS <link-runtime>static : -llibstd_v2.a ;
flags acc LINKFLAGS <link-runtime>shared : -llibstd_v2.sl ;

# We want the full path to the sources in the debug symbols because otherwise
# the debugger won't find the sources when we use boost.build.
flags acc CFLAGS <debug-symbols>on : -g ;
flags acc LINKFLAGS <debug-symbols>on : -g ;
flags acc LINKFLAGS <debug-symbols>off : -s ;
flags acc LINKFLAGS <threading>multi : -mt ;

# V2 does not have <shared-linkable>, not sure what this meant in V1.
#flags acc CFLAGS <shared-linkable>true : +Z ;

flags acc CFLAGS <profiling>on : -pg ;
flags acc LINKFLAGS <profiling>on : -pg ;

flags acc CFLAGS <cflags> ;
flags acc C++FLAGS <cxxflags> ;
flags acc DEFINES <define> ;
flags acc UNDEFS <undef> ;
flags acc HDRS <include> ;
flags acc STDHDRS <sysinclude> ;
flags acc LINKFLAGS <linkflags> ;
flags acc ARFLAGS <arflags> ;

flags acc LIBPATH <library-path> ;
flags acc NEEDLIBS <library-file> ;
flags acc FINDLIBS <find-shared-library> ;
flags acc FINDLIBS <find-static-library> ;

actions acc.link bind NEEDLIBS
{
$(ACC_PATH)/aCC $(LINKFLAGS) -AA -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS)
}

actions acc.compile.c
{
$(ACC_PATH)/cc -c -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)"
}

actions acc.compile.c++
{
$(ACC_PATH)/aCC -AA -c +W823 -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)"
}

actions updated together piecemeal acc.archive
{
ar ru$(ARFLAGS:E="") "$(<)" "$(>)"
}
 --Boundary-00=_fDcsAmaugcmFrjN--


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