/usr/share/boost-build/src/tools/xlcpp.jam is in libboost1.65-tools-dev 1.65.1+dfsg-0ubuntu5.
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 151 | # Copyright Vladimir Prus 2004.
# Copyright Toon Knapen 2004.
# Copyright Catherine Morton 2015.
# 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 : xlcpp ;
toolset.inherit xlcpp : unix ;
generators.override xlcpp.prebuilt : builtin.prebuilt ;
generators.override xlcpp.searched-lib-generator : searched-lib-generator ;
# Configure the xlcpp toolset
rule init ( version ? : command * : options * )
{
local condition = [
common.check-init-parameters xlcpp : version $(version) ] ;
command = [ common.get-invocation-command xlcpp : xlC
: $(command) : "/usr/xlcpp/bin/xlC" ] ;
common.handle-options xlcpp : $(condition) : $(command) : $(options) ;
}
# Declare generators
generators.register-c-compiler xlcpp.compile.c : C : OBJ : <toolset>xlcpp ;
generators.register-c-compiler xlcpp.compile.c++ : CPP : OBJ : <toolset>xlcpp ;
# Allow C++ style comments in C files
flags xlcpp CFLAGS : -qnoxlcompatmacros ;
# Declare flags
flags xlcpp CFLAGS <optimization>off : -qNOOPTimize ;
flags xlcpp CFLAGS <optimization>speed : ;
flags xlcpp CFLAGS <optimization>space : -O2 -qcompact ;
# Discretionary inlining (not recommended)
flags xlcpp CFLAGS <inlining>off : -qnoinline ;
flags xlcpp CFLAGS <inlining>on : -qinline ;
#flags xlcpp CFLAGS <inlining>full : -qinline ;
flags xlcpp CFLAGS <inlining>full : ;
# Exception handling
flags xlcpp C++FLAGS <exception-handling>off : -qnoeh ;
flags xlcpp C++FLAGS <exception-handling>on : -qeh ;
# Run-time Type Identification
flags xlcpp C++FLAGS <rtti>off : -qnortti ;
flags xlcpp C++FLAGS <rtti>on : -qrtti ;
# Enable 64-bit memory addressing model
flags xlcpp CFLAGS <address-model>64 : -q64 ;
flags xlcpp LINKFLAGS <address-model>64 : -q64 ;
flags xlcpp ARFLAGS <target-os>aix/<address-model>64 : -X 64 ;
# Use absolute path when generating debug information
flags xlcpp CFLAGS <debug-symbols>on : -g -qfullpath ;
flags xlcpp LINKFLAGS <debug-symbols>on : -g -qfullpath ;
flags xlcpp LINKFLAGS <debug-symbols>off : -s ;
if [ os.name ] = AIX
{
flags xlcpp.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 xlcpp.link LINKFLAGS <link>shared : -bnoipath ;
# Run-time linking
flags xlcpp.link EXE-LINKFLAGS <link>shared : -brtl ;
}
else
{
# Linux PPC
flags xlcpp.compile CFLAGS <link>shared : -qpic=large ;
flags xlcpp FINDLIBS : rt ;
}
# Profiling
flags xlcpp CFLAGS <profiling>on : -pg ;
flags xlcpp LINKFLAGS <profiling>on : -pg ;
flags xlcpp.compile OPTIONS <cflags> ;
flags xlcpp.compile.c++ OPTIONS <cxxflags> ;
flags xlcpp DEFINES <define> ;
flags xlcpp UNDEFS <undef> ;
flags xlcpp HDRS <include> ;
flags xlcpp STDHDRS <sysinclude> ;
flags xlcpp.link OPTIONS <linkflags> ;
flags xlcpp ARFLAGS <arflags> ;
flags xlcpp LIBPATH <library-path> ;
flags xlcpp NEEDLIBS <library-file> ;
flags xlcpp FINDLIBS <find-shared-library> ;
flags xlcpp FINDLIBS <find-static-library> ;
# Select the compiler name according to the threading model.
flags xlcpp VA_C_COMPILER <threading>single : xlc ;
flags xlcpp VA_C_COMPILER <threading>multi : xlc ;
flags xlcpp VA_CXX_COMPILER <threading>single : xlC ;
flags xlcpp VA_CXX_COMPILER <threading>multi : xlC ;
SPACE = " " ;
flags xlcpp.link.dll HAVE_SONAME <target-os>linux : "" ;
actions xlcpp.link bind NEEDLIBS
{
$(VA_CXX_COMPILER) $(EXE-LINKFLAGS) $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) $(OPTIONS) $(USER_OPTIONS)
}
actions xlcpp.link.dll bind NEEDLIBS
{
xlC -G $(LINKFLAGS) -o "$(<[1])" $(HAVE_SONAME)-Wl,-soname$(SPACE)-Wl,$(<[-1]:D=) -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) $(OPTIONS) $(USER_OPTIONS)
}
actions xlcpp.compile.c
{
$(VA_C_COMPILER) -c $(OPTIONS) $(USER_OPTIONS) -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)"
}
actions xlcpp.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 xlcpp.archive
{
ar $(ARFLAGS) ru "$(<)" "$(>)"
}
|