# Copyright Vladimir Prus 2004. # Copyright Toon Knapen 2004. # Copyright Boris Gubenko 2007. # 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 aC++ compiler. # import toolset : flags ; import feature ; import generators ; import common ; feature.extend toolset : acc ; toolset.inherit acc : unix ; generators.override builtin.lib-generator : acc.prebuilt ; generators.override acc.searched-lib-generator : searched-lib-generator ; # Configures the acc toolset. rule init ( version ? : user-provided-command * : options * ) { local condition = [ common.check-init-parameters acc : version $(version) ] ; local command = [ common.get-invocation-command acc : aCC : $(user-provided-command) ] ; common.handle-options acc : $(condition) : $(command) : $(options) ; } # Declare generators generators.register-c-compiler acc.compile.c : C : OBJ : acc ; generators.register-c-compiler acc.compile.c++ : CPP : OBJ : acc ; # Declare flags. flags acc CFLAGS off : ; flags acc CFLAGS speed : -O3 ; flags acc CFLAGS space : -O2 ; flags acc CFLAGS off : +d ; flags acc CFLAGS on : ; flags acc CFLAGS full : ; flags acc C++FLAGS off : ; flags acc C++FLAGS on : ; flags acc C++FLAGS off : ; flags acc C++FLAGS on : ; # 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 on : -g ; flags acc LINKFLAGS on : -g ; flags acc LINKFLAGS off : -s ; # V2 does not have , not sure what this meant in V1. # flags acc CFLAGS true : +Z ; flags acc CFLAGS on : -pg ; flags acc LINKFLAGS on : -pg ; flags acc CFLAGS 64 : +DD64 ; flags acc LINKFLAGS 64 : +DD64 ; # It is unknown if there's separate option for rpath used only # at link time, similar to -rpath-link in GNU. We'll use -L. flags acc RPATH_LINK : ; flags acc CFLAGS ; flags acc C++FLAGS ; flags acc DEFINES ; flags acc UNDEFS ; flags acc HDRS ; flags acc STDHDRS ; flags acc LINKFLAGS ; flags acc ARFLAGS ; flags acc LIBPATH ; flags acc NEEDLIBS ; flags acc FINDLIBS ; flags acc FINDLIBS ; # Select the compiler name according to the threading model. flags acc CFLAGS multi : -mt ; flags acc LINKFLAGS multi : -mt ; flags acc.compile.c++ TEMPLATE_DEPTH ; actions acc.link bind NEEDLIBS { $(CONFIG_COMMAND) -AA $(LINKFLAGS) -o "$(<[1])" -L"$(RPATH_LINK)" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) $(OPTIONS) } SPACE = " " ; actions acc.link.dll bind NEEDLIBS { $(CONFIG_COMMAND) -AA -b $(LINKFLAGS) -o "$(<[1])" -L"$(RPATH_LINK)" -Wl,+h$(<[-1]:D=) -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) $(OPTIONS) } actions acc.compile.c { cc -c -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)" $(OPTIONS) } actions acc.compile.c++ { $(CONFIG_COMMAND) -AA -c -Wc,--pending_instantiations=$(TEMPLATE_DEPTH) -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)" $(OPTIONS) } actions updated together piecemeal acc.archive { ar ru$(ARFLAGS:E="") "$(<)" "$(>)" }