# Copyright Vladimir Prus 2004. # Copyright Toon Knapen 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 IBM VisualAge compiler # import toolset : flags ; import feature ; import common ; import generators ; feature.extend toolset : vacpp ; toolset.inherit vacpp : unix ; generators.override vacpp.prebuilt : builtin.lib-generator ; generators.override vacpp.searched-lib-generator : searched-lib-generator ; feature.subfeature toolset vacpp : version ; # Configures the vacpp toolset. rule init ( version ? : command * : options * ) { } # Declare generators generators.register-c-compiler vacpp.compile.c : C : OBJ : vacpp ; generators.register-c-compiler vacpp.compile.c++ : CPP : OBJ : vacpp ; # Declare flags. flags vacpp CFLAGS off : -qNOOPTimize ; flags vacpp CFLAGS speed : -O3 -qstrict ; flags vacpp CFLAGS space : -O2 -qcompact ; flags vacpp CFLAGS off : -qnoinline ; flags vacpp CFLAGS on : -qinline ; flags vacpp CFLAGS full : -qinline ; flags vacpp C++FLAGS off : -qnoeh ; flags vacpp C++FLAGS on : -qeh ; flags vacpp C++FLAGS off : -qnortti ; flags vacpp C++FLAGS on : -qrtti ; # flags vacpp LINKFLAGS static : -llibstd_v2.a ; # flags vacpp LINKFLAGS 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 vacpp CFLAGS on : -g ; flags vacpp LINKFLAGS on : -g ; flags vacpp LINKFLAGS off : -s ; # V2 does not have , not sure what this meant in V1. #flags vacpp CFLAGS true : +Z ; flags vacpp CFLAGS on : -pg ; flags vacpp LINKFLAGS on : -pg ; flags vacpp CFLAGS ; flags vacpp C++FLAGS ; flags vacpp DEFINES ; flags vacpp UNDEFS ; flags vacpp HDRS ; flags vacpp STDHDRS ; flags vacpp LINKFLAGS ; flags vacpp ARFLAGS ; flags vacpp LIBPATH ; flags vacpp NEEDLIBS ; flags vacpp FINDLIBS ; flags vacpp FINDLIBS ; # Select the compiler name according to the threading model. flags vacpp VA_C_COMPILER single : xlc ; flags vacpp VA_C_COMPILER multi : xlc_r ; flags vacpp VA_CXX_COMPILER single : xlC ; flags vacpp VA_CXX_COMPILER multi : xlC_r ; ROOT = /usr/vacpp/bin ; actions vacpp.link bind NEEDLIBS { $(ROOT)/$(VA_CXX_COMPILER) $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) } actions vacpp.link.dll bind NEEDLIBS { xlC_r -qmkshrobj $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) } actions vacpp.compile.c { $(ROOT)/$(VA_C_COMPILER) -c -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)" } actions vacpp.compile.c++ { $(ROOT)/$(VA_CXX_COMPILER) -c -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)" } actions updated together piecemeal vacpp.archive { ar ru$(ARFLAGS:E="") "$(<)" "$(>)" }