]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/tools/build/src/tools/intel-vxworks.jam
import quincy beta 17.1.0
[ceph.git] / ceph / src / boost / tools / build / src / tools / intel-vxworks.jam
CommitLineData
b32b8144
FG
1# Copyright Wind River 2017.
2# Distributed under the Boost Software License, Version 1.0.
3# (See accompanying file LICENSE_1_0.txt
4# or copy at http://www.boost.org/LICENSE_1_0.txt)
5
6import intel ;
7import feature : feature ;
8import os ;
9import toolset ;
10import toolset : flags ;
11import gcc ;
12import common ;
13import errors ;
14import generators ;
15
16feature.extend-subfeature toolset intel : platform : vxworks ;
17
18toolset.inherit-generators intel-vxworks
19 <toolset>intel <toolset-intel:platform>vxworks
20 : gcc
21 # Don't inherit PCH generators. They were not tested, and probably
22 # don't work for this compiler.
23 : gcc.mingw.link gcc.mingw.link.dll gcc.compile.c.pch gcc.compile.c++.pch
24 ;
25
26generators.override intel-vxworks.prebuilt : builtin.lib-generator ;
27generators.override intel-vxworks.prebuilt : builtin.prebuilt ;
28generators.override intel-vxworks.searched-lib-generator : searched-lib-generator ;
29
30toolset.inherit-rules intel-vxworks : gcc ;
31toolset.inherit-flags intel-vxworks : gcc
32 : <inlining>off <inlining>on <inlining>full <optimization>space
33 <warnings>off <warnings>all <warnings>on
20effc67
TL
34 <warnings>extra <warnings>pedantic
35 <warnings-as-errors>off <warnings-as-errors>on
b32b8144
FG
36 <architecture>x86/<address-model>32
37 <architecture>x86/<address-model>64
38 ;
39
40if [ MATCH (--debug-configuration) : [ modules.peek : ARGV ] ]
41{
42 .debug-configuration = true ;
43}
44
45# Initializes the intel-vxworks toolset
46# version in mandatory
92f5a8d4 47# name (default icc) is used to invoke the specified intel compiler
b32b8144
FG
48# compile and link options allow you to specify addition command line options for each version
49rule init ( version ? : command * : options * )
50{
51 local condition = [ common.check-init-parameters intel-vxworks
52 : version $(version) ] ;
53
54 command = [ common.get-invocation-command intel-vxworks : icc
55 : $(command) : /opt/intel_cc_80/bin ] ;
56
57 common.handle-options intel-vxworks : $(condition) : $(command) : $(options) ;
58
b32b8144
FG
59 # handle <library-path>
60 # local library-path = [ feature.get-values <library-path> : $(options) ] ;
61 # flags intel-vxworks.link USER_OPTIONS $(condition) : [ feature.get-values <dll-path> : $(options) ] ;
62
63 local root = [ feature.get-values <root> : $(options) ] ;
64 local bin ;
65 if $(command) || $(root)
66 {
67 bin ?= [ common.get-absolute-tool-path $(command[-1]) ] ;
68 root ?= $(bin:D) ;
69
70 if $(root)
71 {
72 # Libraries required to run the executable may be in either
73 # $(root)/lib (10.1 and earlier)
74 # or
75 # $(root)/lib/architecture-name (11.0 and later:
76 local lib_path = $(root)/lib $(root:P)/lib/$(bin:B) ;
77 if $(.debug-configuration)
78 {
11fdf7f2 79 ECHO notice\: using intel libraries "::" $(condition) "::" $(lib_path) ;
b32b8144
FG
80 }
81 flags intel-vxworks.link RUN_PATH $(condition) : $(lib_path) ;
82 }
83 }
84
85 local m = [ MATCH (..).* : $(version) ] ;
86 local n = [ MATCH (.)\\. : $(m) ] ;
87 if $(n) {
88 m = $(n) ;
89 }
90
91 local major = $(m) ;
92
93
94 flags intel-vxworks.compile OPTIONS $(condition)/<inlining>off : -inline-level=0 ;
95 flags intel-vxworks.compile OPTIONS $(condition)/<inlining>on : -inline-level=1 ;
96 flags intel-vxworks.compile OPTIONS $(condition)/<inlining>full : -inline-level=2 ;
97
98 flags intel-vxworks.link OPTIONS $(condition)/<runtime-link>static : [ os.environ LDFLAGS_STATIC ] ;
99 flags intel-vxworks.link OPTIONS $(condition)/<runtime-link>shared : [ os.environ LDFLAGS_DYNAMIC ] ;
100 flags intel-vxworks.compile OPTIONS $(condition)/<link>shared : -fPIC ;
101
102 local minor = [ MATCH ".*\\.(.).*" : $(version) ] ;
103
104
105}
106
107SPACE = " " ;
108
109flags intel-vxworks.compile OPTIONS <cflags> ;
110flags intel-vxworks.compile.c++ OPTIONS <cxxflags> ;
111flags intel-vxworks.compile INCLUDES <include> ;
112
113
114.cpu-type-em64t = prescott nocona core2 corei7 corei7-avx core-avx-i
115 conroe conroe-xe conroe-l allendale merom
116 merom-xe kentsfield kentsfield-xe penryn wolfdale
20effc67
TL
117 yorksfield nehalem sandy-bridge ivy-bridge haswell
118 broadwell skylake skylake-avx512 cannonlake
119 icelake-client icelake-server cascadelake cooperlake
120 tigerlake ;
b32b8144 121.cpu-type-amd64 = k8 opteron athlon64 athlon-fx k8-sse3 opteron-sse3
20effc67
TL
122 athlon64-sse3 amdfam10 barcelona bdver1 bdver2 bdver3 btver1 btver2
123 znver1 znver2 ;
b32b8144
FG
124.cpu-type-x86-64 = $(.cpu-type-em64t) $(.cpu-type-amd64) ;
125
126#flags intel-vxworks.compile OPTIONS <instruction-set>$(.cpu-type-x86-64)/<address-model>32 : -m32 ; # -mcmodel=small ;
127#flags intel-vxworks.compile OPTIONS <instruction-set>$(.cpu-type-x86-64)/<address-model>64 : -m64 ; # -mcmodel=large ;
128
129flags intel-vxworks.compile.c OPTIONS <warnings>off : -w0 ;
130flags intel-vxworks.compile.c OPTIONS <warnings>on : -w1 ;
131flags intel-vxworks.compile.c OPTIONS <warnings>all : -w2 ;
20effc67
TL
132flags intel-vxworks.compile.c OPTIONS <warnings>extra : -w3 ;
133flags intel-vxworks.compile.c OPTIONS <warnings>pedantic : -w3 -Wcheck ;
134flags intel-vxworks.compile.c OPTIONS <warnings-as-errors>on : -Werror-all ;
b32b8144
FG
135
136flags intel-vxworks.compile.c++ OPTIONS <warnings>off : -w0 ;
137flags intel-vxworks.compile.c++ OPTIONS <warnings>on : -w1 ;
138flags intel-vxworks.compile.c++ OPTIONS <warnings>all : -w2 ;
20effc67
TL
139flags intel-vxworks.compile.c++ OPTIONS <warnings>extra : -w3 ;
140flags intel-vxworks.compile.c++ OPTIONS <warnings>pedantic : -w3 -Wcheck ;
141flags intel-vxworks.compile.c++ OPTIONS <warnings-as-errors>on : -Werror-all ;
b32b8144
FG
142
143actions compile.c
144{
145 "$(CONFIG_COMMAND)" -xc $(OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
146}
147
148actions compile.c++
149{
150 "$(CONFIG_COMMAND)" -xc++ $(OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
151}
152
153flags intel-vxworks ARFLAGS <archiveflags> ;
154
155.AR = ar ;
156
157rule archive ( targets * : sources * : properties * )
158{
159 # Always remove archive and start again.
160 # of the archive.
161 #
162 local clean.a = $(targets[1])(clean) ;
163 TEMPORARY $(clean.a) ;
164 NOCARE $(clean.a) ;
165 LOCATE on $(clean.a) = [ on $(targets[1]) return $(LOCATE) ] ;
166 DEPENDS $(clean.a) : $(sources) ;
167 DEPENDS $(targets) : $(clean.a) ;
168 common.RmTemps $(clean.a) : $(targets) ;
169}
170
171actions piecemeal archive
172{
173 "$(.AR)" $(AROPTIONS) rc "$(<)" "$(>)"
174}
175
176flags intel-vxworks.link USER_OPTIONS <linkflags> ;
177
178# Declare actions for linking
179rule link ( targets * : sources * : properties * )
180{
181 SPACE on $(targets) = " " ;
182 # Serialize execution of the 'link' action, since
183 # running N links in parallel is just slower.
184 JAM_SEMAPHORE on $(targets) = <s>intel-vxworks-link-semaphore ;
185}
186
187actions link bind LIBRARIES
188{
189 "$(CONFIG_COMMAND)" $(USER_OPTIONS) -L"$(LINKPATH)" -o "$(<)" "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-SA) -l$(FINDLIBS-ST) $(OPTIONS)
190}
191
192actions link.dll bind LIBRARIES
193{
194 "$(CONFIG_COMMAND)" $(USER_OPTIONS) -L"$(LINKPATH)" -o "$(<)" "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-SA) -l$(FINDLIBS-ST) $(OPTIONS)
195}