diff -ru boost_1_34_0/tools/build/v2/tools/vacpp.jam boost_1_34_0_ibm/tools/build/v2/tools/vacpp.jam --- boost_1_34_0/tools/build/v2/tools/vacpp.jam 2006-02-16 02:47:09.000000000 -0500 +++ boost_1_34_0_ibm/tools/build/v2/tools/vacpp.jam 2007-04-17 12:42:00.000000000 -0400 @@ -5,13 +5,14 @@ # or copy at http://www.boost.org/LICENSE_1_0.txt) # -# Boost.Build V2 toolset for the IBM VisualAge compiler +# Boost.Build V2 toolset for the IBM XL C++ compiler # import toolset : flags ; import feature ; import common ; import generators ; +import os ; feature.extend toolset : vacpp ; toolset.inherit vacpp : unix ; @@ -19,43 +20,65 @@ generators.override vacpp.searched-lib-generator : searched-lib-generator ; feature.subfeature toolset vacpp : version ; -# Configures the vacpp toolset. +# Configure 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. +# Allow C++ style comments in C files +flags vacpp CFLAGS : -qcpluscmt ; + +# Declare flags flags vacpp CFLAGS off : -qNOOPTimize ; flags vacpp CFLAGS speed : -O3 -qstrict ; flags vacpp CFLAGS space : -O2 -qcompact ; +# Discretionary inlining (not recommended) flags vacpp CFLAGS off : -qnoinline ; flags vacpp CFLAGS on : -qinline ; -flags vacpp CFLAGS full : -qinline ; +#flags vacpp CFLAGS full : -qinline ; +flags vacpp CFLAGS full : ; +# Exception handling flags vacpp C++FLAGS off : -qnoeh ; flags vacpp C++FLAGS on : -qeh ; +# Run-time Type Identification 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 ; +# Enable 64-bit memory addressing model +flags vacpp CFLAGS 64 : -q64 ; +flags vacpp LINKFLAGS 64 : -q64 ; +flags vacpp ARFLAGS 64 : -X 64 ; + +# Use absolute path when generating debug information +flags vacpp CFLAGS on : -g -qfullpath ; +flags vacpp LINKFLAGS on : -g -qfullpath ; flags vacpp LINKFLAGS off : -s ; -# V2 does not have , not sure what this meant in V1. -#flags vacpp CFLAGS true : +Z ; +if [ os.name ] = AIX +{ + # Tell the linker to discard unneeded object files from archive libraries. + # Please note that the static constructors contained by the discarded object + # files will not be invoked. + flags vacpp.compile C++FLAGS : -qfuncsect ; + flags vacpp.link LINKFLAGS static : -qtwolink ; + + # Run-time linking + flags vacpp.link EXE-LINKFLAGS shared : -brtl ; +} +else +{ + # Linux PPC + flags vacpp.compile CFLAGS shared : -qpic ; +} +# Profiling flags vacpp CFLAGS on : -pg ; flags vacpp LINKFLAGS on : -pg ; @@ -79,25 +102,25 @@ 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) + $(VA_CXX_COMPILER) $(EXE-LINKFLAGS) $(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) + xlC_r -G $(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 "$(<)" "$(>)" +{ + $(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 "$(<)" "$(>)" + $(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