/usr/share/boost-build/tools/intel-darwin.jam is in libboost1.46-dev 1.46.1-7ubuntu3.
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 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 | # Copyright Vladimir Prus 2004.
# Copyright Noel Belcourt 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)
import intel ;
import feature : feature ;
import os ;
import toolset ;
import toolset : flags ;
import gcc ;
import common ;
import errors ;
import generators ;
feature.extend-subfeature toolset intel : platform : darwin ;
toolset.inherit-generators intel-darwin
<toolset>intel <toolset-intel:platform>darwin
: gcc
# Don't inherit PCH generators. They were not tested, and probably
# don't work for this compiler.
: gcc.mingw.link gcc.mingw.link.dll gcc.compile.c.pch gcc.compile.c++.pch
;
generators.override intel-darwin.prebuilt : builtin.lib-generator ;
generators.override intel-darwin.prebuilt : builtin.prebuilt ;
generators.override intel-darwin.searched-lib-generator : searched-lib-generator ;
toolset.inherit-rules intel-darwin : gcc ;
toolset.inherit-flags intel-darwin : gcc
: <inlining>off <inlining>on <inlining>full <optimization>space
<warnings>off <warnings>all <warnings>on
<architecture>x86/<address-model>32
<architecture>x86/<address-model>64
;
if [ MATCH (--debug-configuration) : [ modules.peek : ARGV ] ]
{
.debug-configuration = true ;
}
# vectorization diagnostics
feature vectorize : off on full ;
# Initializes the intel-darwin toolset
# version in mandatory
# name (default icc) is used to invoke the specified intel complier
# compile and link options allow you to specify addition command line options for each version
rule init ( version ? : command * : options * )
{
local condition = [ common.check-init-parameters intel-darwin
: version $(version) ] ;
command = [ common.get-invocation-command intel-darwin : icc
: $(command) : /opt/intel_cc_80/bin ] ;
common.handle-options intel-darwin : $(condition) : $(command) : $(options) ;
gcc.init-link-flags intel-darwin darwin $(condition) ;
# handle <library-path>
# local library-path = [ feature.get-values <library-path> : $(options) ] ;
# flags intel-darwin.link USER_OPTIONS $(condition) : [ feature.get-values <dll-path> : $(options) ] ;
local root = [ feature.get-values <root> : $(options) ] ;
local bin ;
if $(command) || $(root)
{
bin ?= [ common.get-absolute-tool-path $(command[-1]) ] ;
root ?= $(bin:D) ;
if $(root)
{
# Libraries required to run the executable may be in either
# $(root)/lib (10.1 and earlier)
# or
# $(root)/lib/architecture-name (11.0 and later:
local lib_path = $(root)/lib $(root:P)/lib/$(bin:B) ;
if $(.debug-configuration)
{
ECHO notice: using intel libraries :: $(condition) :: $(lib_path) ;
}
flags intel-darwin.link RUN_PATH $(condition) : $(lib_path) ;
}
}
local m = [ MATCH (..).* : $(version) ] ;
local n = [ MATCH (.)\\. : $(m) ] ;
if $(n) {
m = $(n) ;
}
local major = $(m) ;
if $(major) = "9" {
flags intel-darwin.compile OPTIONS $(condition)/<inlining>off : -Ob0 ;
flags intel-darwin.compile OPTIONS $(condition)/<inlining>on : -Ob1 ;
flags intel-darwin.compile OPTIONS $(condition)/<inlining>full : -Ob2 ;
flags intel-darwin.compile OPTIONS $(condition)/<vectorize>off : -vec-report0 ;
flags intel-darwin.compile OPTIONS $(condition)/<vectorize>on : -vec-report1 ;
flags intel-darwin.compile OPTIONS $(condition)/<vectorize>full : -vec-report5 ;
flags intel-darwin.link OPTIONS $(condition)/<runtime-link>static : -static -static-libcxa -lstdc++ -lpthread ;
flags intel-darwin.link OPTIONS $(condition)/<runtime-link>shared : -shared-libcxa -lstdc++ -lpthread ;
}
else {
flags intel-darwin.compile OPTIONS $(condition)/<inlining>off : -inline-level=0 ;
flags intel-darwin.compile OPTIONS $(condition)/<inlining>on : -inline-level=1 ;
flags intel-darwin.compile OPTIONS $(condition)/<inlining>full : -inline-level=2 ;
flags intel-darwin.compile OPTIONS $(condition)/<vectorize>off : -vec-report0 ;
flags intel-darwin.compile OPTIONS $(condition)/<vectorize>on : -vec-report1 ;
flags intel-darwin.compile OPTIONS $(condition)/<vectorize>full : -vec-report5 ;
flags intel-darwin.link OPTIONS $(condition)/<runtime-link>static : -static -static-intel -lstdc++ -lpthread ;
flags intel-darwin.link OPTIONS $(condition)/<runtime-link>shared : -shared-intel -lstdc++ -lpthread ;
}
local minor = [ MATCH ".*\\.(.).*" : $(version) ] ;
# wchar_t char_traits workaround for compilers older than 10.2
if $(major) = "9" || ( $(major) = "10" && ( $(minor) = "0" || $(minor) = "1" ) ) {
flags intel-darwin.compile DEFINES $(condition) : __WINT_TYPE__=int : unchecked ;
}
}
SPACE = " " ;
flags intel-darwin.compile OPTIONS <cflags> ;
flags intel-darwin.compile OPTIONS <cxxflags> ;
# flags intel-darwin.compile INCLUDES <include> ;
flags intel-darwin.compile OPTIONS <optimization>space : -O1 ; # no specific space optimization flag in icc
#
cpu-type-em64t = prescott nocona ;
flags intel-darwin.compile OPTIONS <instruction-set>$(cpu-type-em64t)/<address-model>32 : -m32 ; # -mcmodel=small ;
flags intel-darwin.compile OPTIONS <instruction-set>$(cpu-type-em64t)/<address-model>64 : -m64 ; # -mcmodel=large ;
flags intel-darwin.compile.c OPTIONS <warnings>off : -w0 ;
flags intel-darwin.compile.c OPTIONS <warnings>on : -w1 ;
flags intel-darwin.compile.c OPTIONS <warnings>all : -w2 ;
flags intel-darwin.compile.c++ OPTIONS <warnings>off : -w0 ;
flags intel-darwin.compile.c++ OPTIONS <warnings>on : -w1 ;
flags intel-darwin.compile.c++ OPTIONS <warnings>all : -w2 ;
actions compile.c
{
"$(CONFIG_COMMAND)" -xc $(OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
}
actions compile.c++
{
"$(CONFIG_COMMAND)" -xc++ $(OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
}
flags intel-darwin ARFLAGS <archiveflags> ;
# Default value. Mostly for the sake of intel-linux
# that inherits from gcc, but does not has the same
# logic to set the .AR variable. We can put the same
# logic in intel-linux, but that's hardly worth the trouble
# as on Linux, 'ar' is always available.
.AR = ar ;
rule archive ( targets * : sources * : properties * )
{
# Always remove archive and start again. Here's rationale from
# Andre Hentz:
#
# I had a file, say a1.c, that was included into liba.a.
# I moved a1.c to a2.c, updated my Jamfiles and rebuilt.
# My program was crashing with absurd errors.
# After some debugging I traced it back to the fact that a1.o was *still*
# in liba.a
#
# Rene Rivera:
#
# Originally removing the archive was done by splicing an RM
# onto the archive action. That makes archives fail to build on NT
# when they have many files because it will no longer execute the
# action directly and blow the line length limit. Instead we
# remove the file in a different action, just before the building
# of the archive.
#
local clean.a = $(targets[1])(clean) ;
TEMPORARY $(clean.a) ;
NOCARE $(clean.a) ;
LOCATE on $(clean.a) = [ on $(targets[1]) return $(LOCATE) ] ;
DEPENDS $(clean.a) : $(sources) ;
DEPENDS $(targets) : $(clean.a) ;
common.RmTemps $(clean.a) : $(targets) ;
}
actions piecemeal archive
{
"$(.AR)" $(AROPTIONS) rc "$(<)" "$(>)"
"ranlib" -cs "$(<)"
}
flags intel-darwin.link USER_OPTIONS <linkflags> ;
# Declare actions for linking
rule link ( targets * : sources * : properties * )
{
SPACE on $(targets) = " " ;
# Serialize execution of the 'link' action, since
# running N links in parallel is just slower.
JAM_SEMAPHORE on $(targets) = <s>intel-darwin-link-semaphore ;
}
actions link bind LIBRARIES
{
"$(CONFIG_COMMAND)" $(USER_OPTIONS) -L"$(LINKPATH)" -o "$(<)" "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-SA) -l$(FINDLIBS-ST) $(OPTIONS)
}
actions link.dll bind LIBRARIES
{
"$(CONFIG_COMMAND)" $(USER_OPTIONS) -L"$(LINKPATH)" -o "$(<)" -single_module -dynamiclib -install_name "$(<[1]:D=)" "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-SA) -l$(FINDLIBS-ST) $(OPTIONS)
}
|