/usr/share/boost-build/tools/vacpp.jam is in libboost1.49-dev 1.49.0-3.2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | # 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 XL C++ compiler
#
import toolset : flags ;
import feature ;
import common ;
import generators ;
import os ;
feature.extend toolset : vacpp ;
toolset.inherit vacpp : unix ;
generators.override vacpp.prebuilt : builtin.prebuilt ;
generators.override vacpp.searched-lib-generator : searched-lib-generator ;
# Configure the vacpp toolset
rule init ( version ? : command * : options * )
{
local condition = [
common.check-init-parameters vacpp : version $(version) ] ;
command = [ common.get-invocation-command vacpp : xlC
: $(command) : "/usr/vacpp/bin/xlC" ] ;
common.handle-options vacpp : $(condition) : $(command) : $(options) ;
}
# Declare generators
generators.register-c-compiler vacpp.compile.c : C : OBJ : <toolset>vacpp ;
generators.register-c-compiler vacpp.compile.c++ : CPP : OBJ : <toolset>vacpp ;
# Allow C++ style comments in C files
flags vacpp CFLAGS : -qcpluscmt ;
# Declare flags
flags vacpp CFLAGS <optimization>off : -qNOOPTimize ;
flags vacpp CFLAGS <optimization>speed : -O3 -qstrict ;
flags vacpp CFLAGS <optimization>space : -O2 -qcompact ;
# Discretionary inlining (not recommended)
flags vacpp CFLAGS <inlining>off : -qnoinline ;
flags vacpp CFLAGS <inlining>on : -qinline ;
#flags vacpp CFLAGS <inlining>full : -qinline ;
flags vacpp CFLAGS <inlining>full : ;
# Exception handling
flags vacpp C++FLAGS <exception-handling>off : -qnoeh ;
flags vacpp C++FLAGS <exception-handling>on : -qeh ;
# Run-time Type Identification
flags vacpp C++FLAGS <rtti>off : -qnortti ;
flags vacpp C++FLAGS <rtti>on : -qrtti ;
# Enable 64-bit memory addressing model
flags vacpp CFLAGS <address-model>64 : -q64 ;
flags vacpp LINKFLAGS <address-model>64 : -q64 ;
flags vacpp ARFLAGS <target-os>aix/<address-model>64 : -X 64 ;
# Use absolute path when generating debug information
flags vacpp CFLAGS <debug-symbols>on : -g -qfullpath ;
flags vacpp LINKFLAGS <debug-symbols>on : -g -qfullpath ;
flags vacpp LINKFLAGS <debug-symbols>off : -s ;
if [ os.name ] = AIX
{
flags vacpp.compile C++FLAGS : -qfuncsect ;
# The -bnoipath strips the prepending (relative) path of libraries from
# the loader section in the target library or executable. Hence, during
# load-time LIBPATH (identical to LD_LIBRARY_PATH) or a hard-coded
# -blibpath (*similar* to -lrpath/-lrpath-link) is searched. Without
# this option, the prepending (relative) path + library name is
# hard-coded in the loader section, causing *only* this path to be
# searched during load-time. Note that the AIX linker does not have an
# -soname equivalent, this is as close as it gets.
#
# The above options are definately for AIX 5.x, and most likely also for
# AIX 4.x and AIX 6.x. For details about the AIX linker see:
# http://download.boulder.ibm.com/ibmdl/pub/software/dw/aix/es-aix_ll.pdf
#
flags vacpp.link LINKFLAGS <link>shared : -bnoipath ;
# Run-time linking
flags vacpp.link EXE-LINKFLAGS <link>shared : -brtl ;
}
else
{
# Linux PPC
flags vacpp.compile CFLAGS <link>shared : -qpic=large ;
flags vacpp FINDLIBS : rt ;
}
# Profiling
flags vacpp CFLAGS <profiling>on : -pg ;
flags vacpp LINKFLAGS <profiling>on : -pg ;
flags vacpp.compile OPTIONS <cflags> ;
flags vacpp.compile.c++ OPTIONS <cxxflags> ;
flags vacpp DEFINES <define> ;
flags vacpp UNDEFS <undef> ;
flags vacpp HDRS <include> ;
flags vacpp STDHDRS <sysinclude> ;
flags vacpp.link OPTIONS <linkflags> ;
flags vacpp ARFLAGS <arflags> ;
flags vacpp LIBPATH <library-path> ;
flags vacpp NEEDLIBS <library-file> ;
flags vacpp FINDLIBS <find-shared-library> ;
flags vacpp FINDLIBS <find-static-library> ;
# Select the compiler name according to the threading model.
flags vacpp VA_C_COMPILER <threading>single : xlc ;
flags vacpp VA_C_COMPILER <threading>multi : xlc_r ;
flags vacpp VA_CXX_COMPILER <threading>single : xlC ;
flags vacpp VA_CXX_COMPILER <threading>multi : xlC_r ;
SPACE = " " ;
flags vacpp.link.dll HAVE_SONAME <target-os>linux : "" ;
actions vacpp.link bind NEEDLIBS
{
$(VA_CXX_COMPILER) $(EXE-LINKFLAGS) $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) $(OPTIONS) $(USER_OPTIONS)
}
actions vacpp.link.dll bind NEEDLIBS
{
xlC_r -G $(LINKFLAGS) -o "$(<[1])" $(HAVE_SONAME)-Wl,-soname$(SPACE)-Wl,$(<[-1]:D=) -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) $(OPTIONS) $(USER_OPTIONS)
}
actions vacpp.compile.c
{
$(VA_C_COMPILER) -c $(OPTIONS) $(USER_OPTIONS) -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)"
}
actions vacpp.compile.c++
{
$(VA_CXX_COMPILER) -c $(OPTIONS) $(USER_OPTIONS) -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)"
}
actions updated together piecemeal vacpp.archive
{
ar $(ARFLAGS) ru "$(<)" "$(>)"
}
|