Imported Upstream version 1.64.0
[platform/upstream/boost.git] / libs / context / build / Jamfile.v2
1
2 # Boost.Context Library Build Jamfile
3
4 #          Copyright Oliver Kowalke 2009.
5 # Distributed under the Boost Software License, Version 1.0.
6 #    (See accompanying file LICENSE_1_0.txt or copy at
7 #          http://www.boost.org/LICENSE_1_0.txt)
8
9 import common ;
10 import feature ;
11 import indirect ;
12 import modules ;
13 import os ;
14 import toolset ;
15
16 feature.feature segmented-stacks : on : optional propagated composite ;
17 feature.compose <segmented-stacks>on : <define>BOOST_USE_SEGMENTED_STACKS ;
18
19 feature.feature valgrind : on : optional propagated composite ;
20 feature.compose <valgrind>on : <define>BOOST_USE_VALGRIND ;
21
22 feature.feature context-switch : cc ec : optional propagated composite ;
23 feature.compose <context-switch>ec : <define>BOOST_USE_EXECUTION_CONTEXT ;
24
25 project boost/context
26     : requirements
27       <toolset>gcc,<segmented-stacks>on:<cxxflags>-fsplit-stack
28       <toolset>gcc,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS
29       <toolset>gcc,<segmented-stacks>on:<linkflags>"-static-libgcc"
30       <toolset>clang,<segmented-stacks>on:<cxxflags>-fsplit-stack
31       <toolset>clang,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS
32       <toolset>clang,<segmented-stacks>on:<linkflags>"-static-libgcc"
33       <toolset>intel,<link>shared:<define>BOOST_CONTEXT_EXPORT=EXPORT
34       <toolset>intel,<link>static:<define>BOOST_CONTEXT_EXPORT=
35       <toolset>msvc,<link>shared:<define>BOOST_CONTEXT_EXPORT=EXPORT
36       <toolset>msvc,<link>static:<define>BOOST_CONTEXT_EXPORT=
37       <link>shared:<define>BOOST_CONTEXT_DYN_LINK=1
38       <define>BOOST_CONTEXT_SOURCE
39       <threading>multi
40     : usage-requirements
41       <link>shared:<define>BOOST_CONTEXT_DYN_LINK=1
42       <optimization>speed:<define>BOOST_DISABLE_ASSERTS
43       <variant>release:<define>BOOST_DISABLE_ASSERTS
44     : source-location ../src
45     ;
46
47 local rule default_binary_format ( )
48 {
49     local tmp = elf ;
50     if [ os.name ] = "NT" { tmp = pe ; }
51     else if [ os.name ] = "CYGWIN" { tmp = pe ; }
52     else if [ os.name ] = "AIX" { tmp = xcoff ; }
53     else if [ os.name ] = "MACOSX" { tmp = mach-o ; }
54     return $(tmp) ;
55 }
56
57 feature.feature binary-format
58    : elf
59      mach-o
60      pe
61      xcoff
62    : propagated
63    ;
64 feature.set-default binary-format : [ default_binary_format ] ;
65
66
67 local rule default_abi ( )
68 {
69     local tmp = sysv ;
70     if [ os.name ] = "NT" { tmp = ms ; }
71     else if [ os.name ] = "CYGWIN" { tmp = ms ; }
72     else if [ os.platform ] = "ARM" { tmp = aapcs ; }
73     else if [ os.platform ] = "MIPS" { tmp = o32 ; }
74     return $(tmp) ;
75 }
76
77 feature.feature abi
78    : aapcs
79      eabi
80      ms
81      n32
82      n64
83      o32
84      o64
85      sysv
86      x32
87    : propagated
88    ;
89 feature.set-default abi : [ default_abi ] ;
90
91
92 actions gas32
93 {
94     cpp -x assembler-with-cpp "$(>)" | as --32 -o "$(<)"
95 }
96
97 actions gas64
98 {
99     cpp -x assembler-with-cpp "$(>)" | as --64 -o "$(<)"
100 }
101
102 actions gasx32
103 {
104     cpp -x assembler-with-cpp "$(>)" | as --x32 -o "$(<)"
105 }
106
107 actions gas
108 {
109     cpp -x assembler-with-cpp "$(>)" | as -o "$(<)"
110 }
111
112 actions armasm
113 {
114     armasm "$(>)" "$(<)"
115 }
116
117 actions masm
118 {
119     ml /c /Fo"$(<)" "$(>)"
120 }
121
122 actions masm64
123 {
124     ml64 /c /Fo"$(<)" "$(>)"
125 }
126
127
128 rule configure ( properties * )
129 {
130     local result  ;
131
132 #   if ( ! ( <toolset>gcc in $(properties)
133 #           || <toolset>intel in $(properties)
134 #           || <toolset>msvc in $(properties) ) )
135 #   {
136 #       result = <build>no ;
137 #       ECHO "toolset not supported" ;
138 #   }
139
140     return $(result) ;
141 }
142
143 # ARM
144 # ARM/AAPCS/ELF
145 alias asm_context_sources
146    : [ make asm/make_arm_aapcs_elf_gas.o : asm/make_arm_aapcs_elf_gas.S : @gas32 ]
147      [ make asm/jump_arm_aapcs_elf_gas.o : asm/jump_arm_aapcs_elf_gas.S : @gas32 ]
148      [ make asm/ontop_arm_aapcs_elf_gas.o : asm/ontop_arm_aapcs_elf_gas.S : @gas32 ]
149    : <abi>aapcs
150      <address-model>32
151      <architecture>arm
152      <binary-format>elf
153    ;
154
155 alias asm_context_sources
156    : asm/make_arm_aapcs_elf_gas.S
157      asm/jump_arm_aapcs_elf_gas.S
158      asm/ontop_arm_aapcs_elf_gas.S
159    : <abi>aapcs
160      <address-model>32
161      <architecture>arm
162      <binary-format>elf
163      <toolset>clang
164    ;
165
166 alias asm_context_sources
167    : asm/make_arm_aapcs_elf_gas.S
168      asm/jump_arm_aapcs_elf_gas.S
169      asm/ontop_arm_aapcs_elf_gas.S
170    : <abi>aapcs
171      <address-model>32
172      <architecture>arm
173      <binary-format>elf
174      <toolset>gcc
175    ;
176
177 alias asm_context_sources
178    : asm/make_arm_aapcs_elf_gas.S
179      asm/jump_arm_aapcs_elf_gas.S
180      asm/ontop_arm_aapcs_elf_gas.S
181    : <abi>aapcs
182      <address-model>32
183      <architecture>arm
184      <binary-format>elf
185      <toolset>qcc
186    ;
187 # ARM/AAPCS/MACH-O
188 alias asm_context_sources
189    : [ make asm/make_arm_aapcs_macho_gas.o : asm/make_arm_aapcs_macho_gas.S : @gas32 ]
190      [ make asm/jump_arm_aapcs_macho_gas.o : asm/jump_arm_aapcs_macho_gas.S : @gas32 ]
191      [ make asm/ontop_arm_aapcs_macho_gas.o : asm/ontop_arm_aapcs_macho_gas.S : @gas32 ]
192    : <abi>aapcs
193      <address-model>32
194      <architecture>arm
195      <binary-format>mach-o
196    ;
197
198 alias asm_context_sources
199    : asm/make_arm_aapcs_macho_gas.S
200      asm/jump_arm_aapcs_macho_gas.S
201      asm/ontop_arm_aapcs_macho_gas.S
202    : <abi>aapcs
203      <address-model>32
204      <architecture>arm
205      <binary-format>mach-o
206      <toolset>clang
207    ;
208
209 alias asm_context_sources
210    : asm/make_arm_aapcs_macho_gas.S
211      asm/jump_arm_aapcs_macho_gas.S
212      asm/ontop_arm_aapcs_macho_gas.S
213    : <abi>aapcs
214      <address-model>32
215      <architecture>arm
216      <binary-format>mach-o
217      <toolset>darwin
218    ;
219 # ARM/AAPCS/PE
220 alias asm_context_sources
221    : [ make asm/make_arm_aapcs_pe_armasm.o : asm/make_arm_aapcs_pe_armasm.asm : @armasm ]
222      [ make asm/jump_arm_aapcs_pe_armasm.o : asm/jump_arm_aapcs_pe_armasm.asm : @armasm ]
223      [ make asm/ontop_arm_aapcs_pe_armasm.o : asm/ontop_arm_aapcs_pe_armasm.asm : @armasm ]
224      untested.cpp
225    : <abi>aapcs
226      <address-model>32
227      <architecture>arm
228      <binary-format>pe
229    ;
230
231 alias asm_context_sources
232    : asm/make_arm_aapcs_pe_armasm.asm
233      asm/jump_arm_aapcs_pe_armasm.asm
234      asm/ontop_arm_aapcs_pe_armasm.asm
235      untested.cpp
236    : <abi>aapcs
237      <address-model>32
238      <architecture>arm
239      <binary-format>pe
240      <toolset>msvc
241    ;
242
243 # ARM64
244 # ARM64/AAPCS/ELF
245 alias asm_context_sources
246    : [ make asm/make_arm64_aapcs_elf_gas.o : asm/make_arm64_aapcs_elf_gas.S : @gas64 ]
247      [ make asm/jump_arm64_aapcs_elf_gas.o : asm/jump_arm64_aapcs_elf_gas.S : @gas64 ]
248      [ make asm/ontop_arm64_aapcs_elf_gas.o : asm/ontop_arm64_aapcs_elf_gas.S : @gas64 ]
249    : <abi>aapcs
250      <address-model>64
251      <architecture>arm
252      <binary-format>elf
253    ;
254
255 alias asm_context_sources
256    : asm/make_arm64_aapcs_elf_gas.S
257      asm/jump_arm64_aapcs_elf_gas.S
258      asm/ontop_arm64_aapcs_elf_gas.S
259    : <abi>aapcs
260      <address-model>64
261      <architecture>arm
262      <binary-format>elf
263      <toolset>clang
264    ;
265
266 alias asm_context_sources
267    : asm/make_arm64_aapcs_elf_gas.S
268      asm/jump_arm64_aapcs_elf_gas.S
269      asm/ontop_arm64_aapcs_elf_gas.S
270    : <abi>aapcs
271      <address-model>64
272      <architecture>arm
273      <binary-format>elf
274      <toolset>gcc
275    ;
276
277 # ARM64/AAPCS/MACH-O
278 alias asm_context_sources
279    : [ make asm/make_arm64_aapcs_macho_gas.o : asm/make_arm64_aapcs_macho_gas.S : @gas64 ]
280      [ make asm/jump_arm64_aapcs_macho_gas.o : asm/jump_arm64_aapcs_macho_gas.S : @gas64 ]
281      [ make asm/ontop_arm64_aapcs_macho_gas.o : asm/ontop_arm64_aapcs_macho_gas.S : @gas64 ]
282    : <abi>aapcs
283      <address-model>64
284      <architecture>arm
285      <binary-format>mach-o
286    ;
287
288 alias asm_context_sources
289    : asm/make_arm64_aapcs_macho_gas.S
290      asm/jump_arm64_aapcs_macho_gas.S
291      asm/ontop_arm64_aapcs_macho_gas.S
292    : <abi>aapcs
293      <address-model>64
294      <architecture>arm
295      <binary-format>mach-o
296      <toolset>clang
297    ;
298
299 alias asm_context_sources
300    : asm/make_arm64_aapcs_macho_gas.S
301      asm/jump_arm64_aapcs_macho_gas.S
302      asm/ontop_arm64_aapcs_macho_gas.S
303    : <abi>aapcs
304      <address-model>64
305      <architecture>arm
306      <binary-format>mach-o
307      <toolset>darwin
308    ;
309
310 # MIPS
311 # MIPS/O32/ELF
312 alias asm_context_sources
313    : [ make asm/make_mips32_o32_elf_gas.o : asm/make_mips32_o32_elf_gas.S : @gas32 ]
314      [ make asm/jump_mips32_o32_elf_gas.o : asm/jump_mips32_o32_elf_gas.S : @gas32 ]
315      [ make asm/ontop_mips32_o32_elf_gas.o : asm/ontop_mips32_o32_elf_gas.S : @gas32 ]
316    : <abi>o32
317      <address-model>32
318      <architecture>mips1
319      <binary-format>elf
320    ;
321
322 alias asm_context_sources
323    : asm/make_mips32_o32_elf_gas.S
324      asm/jump_mips32_o32_elf_gas.S
325      asm/ontop_mips32_o32_elf_gas.S
326    : <abi>o32
327      <address-model>32
328      <architecture>mips1
329      <binary-format>elf
330      <toolset>clang
331    ;
332
333 alias asm_context_sources
334    : asm/make_mips32_o32_elf_gas.S
335      asm/jump_mips32_o32_elf_gas.S
336      asm/ontop_mips32_o32_elf_gas.S
337    : <abi>o32
338      <address-model>32
339      <architecture>mips1
340      <binary-format>elf
341      <toolset>gcc
342    ;
343
344 # POWERPC_32
345 # POWERPC_32/SYSV/ELF
346 alias asm_context_sources
347    : [ make asm/make_ppc32_sysv_elf_gas.o : asm/make_ppc32_sysv_elf_gas.S : @gas32 ]
348      [ make asm/jump_ppc32_sysv_elf_gas.o : asm/jump_ppc32_sysv_elf_gas.S : @gas32 ]
349      [ make asm/ontop_ppc32_sysv_elf_gas.o : asm/ontop_ppc32_sysv_elf_gas.S : @gas32 ]
350    : <abi>sysv
351      <address-model>32
352      <architecture>power
353      <binary-format>elf
354    ;
355
356 alias asm_context_sources
357    : asm/make_ppc32_sysv_elf_gas.S
358      asm/jump_ppc32_sysv_elf_gas.S
359      asm/ontop_ppc32_sysv_elf_gas.S
360    : <abi>sysv
361      <address-model>32
362      <architecture>power
363      <binary-format>elf
364      <toolset>clang
365    ;
366
367 alias asm_context_sources
368    : asm/make_ppc32_sysv_elf_gas.S
369      asm/jump_ppc32_sysv_elf_gas.S
370      asm/ontop_ppc32_sysv_elf_gas.S
371    : <abi>sysv
372      <address-model>32
373      <architecture>power
374      <binary-format>elf
375      <toolset>gcc
376    ;
377 # POWERPC_32/SYSV/MACH-O
378 alias asm_context_sources
379    : [ make asm/make_ppc32_sysv_macho_gas.o : asm/make_ppc32_sysv_macho_gas.S : @gas32 ]
380      [ make asm/jump_ppc32_sysv_macho_gas.o : asm/jump_ppc32_sysv_macho_gas.S : @gas32 ]
381      [ make asm/ontop_ppc32_sysv_macho_gas.o : asm/ontop_ppc32_sysv_macho_gas.S : @gas32 ]
382    : <abi>sysv
383      <address-model>32
384      <architecture>power
385      <binary-format>mach-o
386    ;
387
388 alias asm_context_sources
389    : asm/make_ppc32_sysv_macho_gas.S
390      asm/jump_ppc32_sysv_macho_gas.S
391      asm/ontop_ppc32_sysv_macho_gas.S
392    : <abi>sysv
393      <address-model>32
394      <architecture>power
395      <binary-format>mach-o
396      <toolset>clang
397    ;
398
399 alias asm_context_sources
400    : asm/make_ppc32_sysv_macho_gas.S
401      asm/jump_ppc32_sysv_macho_gas.S
402      asm/ontop_ppc32_sysv_macho_gas.S
403    : <abi>sysv
404      <address-model>32
405      <architecture>power
406      <binary-format>mach-o
407      <toolset>darwin
408    ;
409 #POWERPC_32/SYSV/XCOFF
410 alias asm_context_sources
411    : [ make asm/make_ppc32_sysv_xcoff_gas.o : asm/make_ppc32_sysv_xcoff_gas.S : @gas ]
412      [ make asm/jump_ppc32_sysv_xcoff_gas.o : asm/jump_ppc32_sysv_xcoff_gas.S : @gas ]
413      [ make asm/ontop_ppc32_sysv_xcoff_gas.o : asm/ontop_ppc32_sysv_xcoff_gas.S : @gas ]
414    : <abi>sysv
415      <address-model>32
416      <architecture>power
417      <binary-format>xcoff
418    ;
419
420 alias asm_context_sources
421    : asm/make_ppc32_sysv_xcoff_gas.S
422      asm/jump_ppc32_sysv_xcoff_gas.S
423      asm/ontop_ppc32_sysv_xcoff_gas.S
424    : <abi>sysv
425      <address-model>32
426      <architecture>power
427      <binary-format>xcoff
428      <toolset>clang
429    ;
430
431 alias asm_context_sources
432    : asm/make_ppc32_sysv_xcoff_gas.S
433      asm/jump_ppc32_sysv_xcoff_gas.S
434      asm/ontop_ppc32_sysv_xcoff_gas.S
435    : <abi>sysv
436      <address-model>32
437      <architecture>power
438      <binary-format>xcoff
439      <toolset>gcc
440    ;
441
442 # POWERPC_64
443 # POWERPC_64/SYSV/ELF
444 alias asm_context_sources
445    : [ make asm/make_ppc64_sysv_elf_gas.o : asm/make_ppc64_sysv_elf_gas.S : @gas64 ]
446      [ make asm/jump_ppc64_sysv_elf_gas.o : asm/jump_ppc64_sysv_elf_gas.S : @gas64 ]
447      [ make asm/ontop_ppc64_sysv_elf_gas.o : asm/ontop_ppc64_sysv_elf_gas.S : @gas64 ]
448    : <abi>sysv
449      <address-model>64
450      <architecture>power
451      <binary-format>elf
452    ;
453
454 alias asm_context_sources
455    : asm/make_ppc64_sysv_elf_gas.S
456      asm/jump_ppc64_sysv_elf_gas.S
457      asm/ontop_ppc64_sysv_elf_gas.S
458    : <abi>sysv
459      <address-model>64
460      <architecture>power
461      <binary-format>elf
462      <toolset>clang
463    ;
464
465 alias asm_context_sources
466    : asm/make_ppc64_sysv_elf_gas.S
467      asm/jump_ppc64_sysv_elf_gas.S
468      asm/ontop_ppc64_sysv_elf_gas.S
469    : <abi>sysv
470      <address-model>64
471      <architecture>power
472      <binary-format>elf
473      <toolset>gcc
474    ;
475 # POWERPC_64/SYSV/MACH-O
476 alias asm_context_sources
477    : [ make asm/make_ppc64_sysv_macho_gas.o : asm/make_ppc64_sysv_macho_gas.S : @gas ]
478      [ make asm/jump_ppc64_sysv_macho_gas.o : asm/jump_ppc64_sysv_macho_gas.S : @gas ]
479      [ make asm/ontop_ppc64_sysv_macho_gas.o : asm/ontop_ppc64_sysv_macho_gas.S : @gas ]
480      untested.cpp
481    : <abi>sysv
482      <address-model>64
483      <architecture>power
484      <binary-format>mach-o
485    ;
486
487 alias asm_context_sources
488    : asm/make_ppc64_sysv_macho_gas.S
489      asm/jump_ppc64_sysv_macho_gas.S
490      asm/ontop_ppc64_sysv_macho_gas.S
491      untested.cpp
492    : <abi>sysv
493      <address-model>64
494      <architecture>power
495      <binary-format>mach-o
496      <toolset>clang
497    ;
498
499 alias asm_context_sources
500    : asm/make_ppc64_sysv_macho_gas.S
501      asm/jump_ppc64_sysv_macho_gas.S
502      asm/ontop_ppc64_sysv_macho_gas.S
503      untested.cpp
504    : <abi>sysv
505      <address-model>64
506      <architecture>power
507      <binary-format>mach-o
508      <toolset>darwin
509    ;
510 # POWERPC_64/SYSV/XCOFF
511 alias asm_context_sources
512    : [ make asm/make_ppc64_sysv_xcoff_gas.o : asm/make_ppc64_sysv_xcoff_gas.S : @gas ]
513      [ make asm/jump_ppc64_sysv_xcoff_gas.o : asm/jump_ppc64_sysv_xcoff_gas.S : @gas ]
514      [ make asm/ontop_ppc64_sysv_xcoff_gas.o : asm/ontop_ppc64_sysv_xcoff_gas.S : @gas ]
515    : <abi>sysv
516      <address-model>64
517      <architecture>power
518      <binary-format>xcoff
519    ;
520
521 alias asm_context_sources
522    : asm/make_ppc64_sysv_xcoff_gas.S
523      asm/jump_ppc64_sysv_xcoff_gas.S
524      asm/ontop_ppc64_sysv_xcoff_gas.S
525    : <abi>sysv
526      <address-model>64
527      <architecture>power
528      <binary-format>xcoff
529      <toolset>clang
530    ;
531
532 alias asm_context_sources
533    : asm/make_ppc64_sysv_xcoff_gas.S
534      asm/jump_ppc64_sysv_xcoff_gas.S
535      asm/ontop_ppc64_sysv_xcoff_gas.S
536    : <abi>sysv
537      <address-model>64
538      <architecture>power
539      <binary-format>xcoff
540      <toolset>gcc
541    ;
542
543 # POWERPC universal
544 # POWERPC_32_64/SYSV/MACH-O
545 alias asm_context_sources
546    : asm/make_ppc32_ppc64_sysv_macho_gas.S
547      asm/jump_ppc32_ppc64_sysv_macho_gas.S
548      asm/ontop_ppc32_ppc64_sysv_macho_gas.S
549    : <abi>sysv
550      <address-model>32_64
551      <architecture>power
552      <binary-format>mach-o
553    ;
554
555 # X86
556 # X86/SYSV/ELF
557 alias asm_context_sources
558    : [ make asm/make_i386_sysv_elf_gas.o : asm/make_i386_sysv_elf_gas.S : @gas32 ]
559      [ make asm/jump_i386_sysv_elf_gas.o : asm/jump_i386_sysv_elf_gas.S : @gas32 ]
560      [ make asm/ontop_i386_sysv_elf_gas.o : asm/ontop_i386_sysv_elf_gas.S : @gas32 ]
561    : <abi>sysv
562      <address-model>32
563      <architecture>x86
564      <binary-format>elf
565    ;
566
567 alias asm_context_sources
568    : asm/make_i386_sysv_elf_gas.S
569      asm/jump_i386_sysv_elf_gas.S
570      asm/ontop_i386_sysv_elf_gas.S
571    : <abi>sysv
572      <address-model>32
573      <architecture>x86
574      <binary-format>elf
575      <toolset>clang
576    ;
577
578 alias asm_context_sources
579    : asm/make_i386_sysv_elf_gas.S
580      asm/jump_i386_sysv_elf_gas.S
581      asm/ontop_i386_sysv_elf_gas.S
582    : <abi>sysv
583      <address-model>32
584      <architecture>x86
585      <binary-format>elf
586      <toolset>gcc
587    ;
588
589 alias asm_context_sources
590    : asm/make_i386_sysv_elf_gas.S
591      asm/jump_i386_sysv_elf_gas.S
592      asm/ontop_i386_sysv_elf_gas.S
593    : <abi>sysv
594      <address-model>32
595      <architecture>x86
596      <binary-format>elf
597      <toolset>intel
598    ;
599 # X86/SYSV/MACH-O
600 alias asm_context_sources
601    : [ make asm/make_i386_sysv_macho_gas.o : asm/make_i386_sysv_macho_gas.S : @gas32 ]
602      [ make asm/jump_i386_sysv_macho_gas.o : asm/jump_i386_sysv_macho_gas.S : @gas32 ]
603      [ make asm/ontop_i386_sysv_macho_gas.o : asm/ontop_i386_sysv_macho_gas.S : @gas32 ]
604    : <abi>sysv
605      <address-model>32
606      <architecture>x86
607      <binary-format>mach-o
608    ;
609
610 alias asm_context_sources
611    : asm/make_i386_sysv_macho_gas.S
612      asm/jump_i386_sysv_macho_gas.S
613      asm/ontop_i386_sysv_macho_gas.S
614    : <abi>sysv
615      <address-model>32
616      <architecture>x86
617      <binary-format>mach-o
618      <toolset>clang
619    ;
620
621 alias asm_context_sources
622    : asm/make_i386_sysv_macho_gas.S
623      asm/jump_i386_sysv_macho_gas.S
624      asm/ontop_i386_sysv_macho_gas.S
625    : <abi>sysv
626      <address-model>32
627      <architecture>x86
628      <binary-format>mach-o
629      <toolset>darwin
630    ;
631 # X86/MS/PE
632 alias asm_context_sources
633    : [ make asm/make_i386_ms_pe_masm.o : asm/make_i386_ms_pe_masm.asm : @masm ]
634      [ make asm/jump_i386_ms_pe_masm.o : asm/jump_i386_ms_pe_masm.asm : @masm ]
635      [ make asm/ontop_i386_ms_pe_masm.o : asm/ontop_i386_ms_pe_masm.asm : @masm ]
636      dummy.cpp
637    : <abi>ms
638      <address-model>32
639      <architecture>x86
640      <binary-format>pe
641    ;
642
643 alias asm_context_sources
644    : asm/make_i386_ms_pe_gas.asm
645      asm/jump_i386_ms_pe_gas.asm
646      asm/ontop_i386_ms_pe_gas.asm
647      dummy.cpp
648    : <abi>ms
649      <address-model>32
650      <architecture>x86
651      <binary-format>pe
652      <toolset>clang-win
653    ;
654
655 alias asm_context_sources
656    : asm/make_i386_ms_pe_gas.asm
657      asm/jump_i386_ms_pe_gas.asm
658      asm/ontop_i386_ms_pe_gas.asm
659      dummy.cpp
660    : <abi>ms
661      <address-model>32
662      <architecture>x86
663      <binary-format>pe
664      <toolset>gcc
665    ;
666
667 alias asm_context_sources
668    : asm/make_i386_ms_pe_masm.asm
669      asm/jump_i386_ms_pe_masm.asm
670      asm/ontop_i386_ms_pe_masm.asm
671      dummy.cpp
672    : <abi>ms
673      <address-model>32
674      <architecture>x86
675      <binary-format>pe
676      <toolset>intel
677    ;
678
679 alias asm_context_sources
680    : asm/make_i386_ms_pe_masm.asm
681      asm/jump_i386_ms_pe_masm.asm
682      asm/ontop_i386_ms_pe_masm.asm
683      dummy.cpp
684    : <abi>ms
685      <address-model>32
686      <architecture>x86
687      <binary-format>pe
688      <toolset>msvc
689    ;
690
691 # X86_64
692 # X86_64/SYSV/ELF
693 alias asm_context_sources
694    : [ make asm/make_x86_64_sysv_elf_gas.o : asm/make_x86_64_sysv_elf_gas.S : @gas64 ]
695      [ make asm/jump_x86_64_sysv_elf_gas.o : asm/jump_x86_64_sysv_elf_gas.S : @gas64 ]
696      [ make asm/ontop_x86_64_sysv_elf_gas.o : asm/ontop_x86_64_sysv_elf_gas.S : @gas64 ]
697    : <abi>sysv
698      <address-model>64
699      <architecture>x86
700      <binary-format>elf
701    ;
702
703 alias asm_context_sources
704    : asm/make_x86_64_sysv_elf_gas.S
705      asm/jump_x86_64_sysv_elf_gas.S
706      asm/ontop_x86_64_sysv_elf_gas.S
707    : <abi>sysv
708      <address-model>64
709      <architecture>x86
710      <binary-format>elf
711      <toolset>clang
712    ;
713
714 alias asm_context_sources
715    : asm/make_x86_64_sysv_elf_gas.S
716      asm/jump_x86_64_sysv_elf_gas.S
717      asm/ontop_x86_64_sysv_elf_gas.S
718    : <abi>sysv
719      <address-model>64
720      <architecture>x86
721      <binary-format>elf
722      <toolset>gcc
723    ;
724
725 alias asm_context_sources
726    : asm/make_x86_64_sysv_elf_gas.S
727      asm/jump_x86_64_sysv_elf_gas.S
728      asm/ontop_x86_64_sysv_elf_gas.S
729    : <abi>sysv
730      <address-model>64
731      <architecture>x86
732      <binary-format>elf
733      <toolset>intel
734    ;
735 # X86_64/SYSV/MACH-O
736 alias asm_context_sources
737    : [ make asm/make_x86_64_sysv_macho_gas.o : asm/make_x86_64_sysv_macho_gas.S : @gas64 ]
738      [ make asm/jump_x86_64_sysv_macho_gas.o : asm/jump_x86_64_sysv_macho_gas.S : @gas64 ]
739      [ make asm/ontop_x86_64_sysv_macho_gas.o : asm/ontop_x86_64_sysv_macho_gas.S : @gas64 ]
740    : <abi>sysv
741      <address-model>64
742      <architecture>x86
743      <binary-format>mach-o
744    ;
745
746 alias asm_context_sources
747    : asm/make_x86_64_sysv_macho_gas.S
748      asm/jump_x86_64_sysv_macho_gas.S
749      asm/ontop_x86_64_sysv_macho_gas.S
750    : <abi>sysv
751      <address-model>64
752      <architecture>x86
753      <binary-format>mach-o
754      <toolset>clang
755    ;
756
757 alias asm_context_sources
758    : asm/make_x86_64_sysv_macho_gas.S
759      asm/jump_x86_64_sysv_macho_gas.S
760      asm/ontop_x86_64_sysv_macho_gas.S
761    : <abi>sysv
762      <address-model>64
763      <architecture>x86
764      <binary-format>mach-o
765      <toolset>darwin
766    ;
767
768 alias asm_context_sources
769    : asm/make_x86_64_sysv_macho_gas.S
770      asm/jump_x86_64_sysv_macho_gas.S
771      asm/ontop_x86_64_sysv_macho_gas.S
772    : <abi>sysv
773      <address-model>64
774      <architecture>x86
775      <binary-format>mach-o
776      <toolset>intel
777    ;
778 # X86_64/MS/PE
779 alias asm_context_sources
780    : [ make asm/make_x86_64_ms_pe_masm.o : asm/make_x86_64_ms_pe_masm.asm : @masm64 ]
781      [ make asm/jump_x86_64_ms_pe_masm.o : asm/jump_x86_64_ms_pe_masm.asm : @masm64 ]
782      [ make asm/ontop_x86_64_ms_pe_masm.o : asm/ontop_x86_64_ms_pe_masm.asm : @masm64 ]
783      dummy.cpp
784    : <abi>ms
785      <address-model>64
786      <architecture>x86
787      <binary-format>pe
788    ;
789
790 alias asm_context_sources
791    : asm/make_x86_64_ms_pe_gas.asm
792      asm/jump_x86_64_ms_pe_gas.asm
793      asm/ontop_x86_64_ms_pe_gas.asm
794      dummy.cpp
795    : <abi>ms
796      <address-model>64
797      <architecture>x86
798      <binary-format>pe
799      <toolset>clang-win
800    ;
801
802 alias asm_context_sources
803    : asm/make_x86_64_ms_pe_gas.asm
804      asm/jump_x86_64_ms_pe_gas.asm
805      asm/ontop_x86_64_ms_pe_gas.asm
806      dummy.cpp
807    : <abi>ms
808      <address-model>64
809      <architecture>x86
810      <binary-format>pe
811      <toolset>gcc
812    ;
813
814 alias asm_context_sources
815    : asm/make_x86_64_ms_pe_masm.asm
816      asm/jump_x86_64_ms_pe_masm.asm
817      asm/ontop_x86_64_ms_pe_masm.asm
818      dummy.cpp
819    : <abi>ms
820      <address-model>64
821      <architecture>x86
822      <binary-format>pe
823      <toolset>intel
824    ;
825
826 alias asm_context_sources
827    : asm/make_x86_64_ms_pe_masm.asm
828      asm/jump_x86_64_ms_pe_masm.asm
829      asm/ontop_x86_64_ms_pe_masm.asm
830      dummy.cpp
831    : <abi>ms
832      <address-model>64
833      <architecture>x86
834      <binary-format>pe
835      <toolset>msvc
836    ;
837 # X86_64/SYSV/X32
838 alias asm_context_sources
839    : [ make asm/make_x86_64_sysv_elf_gas.o : asm/make_x86_64_sysv_elf_gas.S : @gas64 ]
840      [ make asm/jump_x86_64_sysv_elf_gas.o : asm/jump_x86_64_sysv_elf_gas.S : @gas64 ]
841      [ make asm/ontop_x86_64_sysv_elf_gas.o : asm/ontop_x86_64_sysv_elf_gas.S : @gas64 ]
842    : <abi>x32
843      <address-model>64
844      <architecture>x86
845      <binary-format>elf
846    ;
847
848 alias asm_context_sources
849    : asm/make_x86_64_sysv_elf_gas.S
850      asm/jump_x86_64_sysv_elf_gas.S
851      asm/ontop_x86_64_sysv_elf_gas.S
852    : <abi>x32
853      <address-model>64
854      <architecture>x86
855      <binary-format>elf
856      <toolset>clang
857    ;
858
859 alias asm_context_sources
860    : asm/make_x86_64_sysv_elf_gas.S
861      asm/jump_x86_64_sysv_elf_gas.S
862      asm/ontop_x86_64_sysv_elf_gas.S
863    : <abi>x32
864      <address-model>64
865      <architecture>x86
866      <binary-format>elf
867      <toolset>gcc
868    ;
869
870 alias asm_context_sources
871    : asm/make_x86_64_sysv_elf_gas.S
872      asm/jump_x86_64_sysv_elf_gas.S
873      asm/ontop_x86_64_sysv_elf_gas.S
874    : <abi>x32
875      <address-model>64
876      <architecture>x86
877      <binary-format>elf
878      <toolset>intel
879    ;
880
881 #X86 universal
882 alias asm_context_sources
883    : asm/make_i386_x86_64_sysv_macho_gas.S
884      asm/jump_i386_x86_64_sysv_macho_gas.S
885      asm/ontop_i386_x86_64_sysv_macho_gas.S
886    : <abi>sysv
887      <address-model>32_64
888      <architecture>x86
889      <binary-format>mach-o
890    ;
891
892 # COMBINED
893 alias asm_context_sources
894    : asm/make_combined_sysv_macho_gas.S
895      asm/jump_combined_sysv_macho_gas.S
896      asm/ontop_combined_sysv_macho_gas.S
897    : <abi>sysv
898      <architecture>combined
899      <binary-format>mach-o
900    ;
901
902
903 alias asm_context_sources
904    : unsupported.cpp
905    ;
906
907 explicit asm_context_sources ;
908
909 obj cxx11_hdr_mutex_check : ../build/cxx11_hdr_mutex.cpp ;
910 explicit cxx11_hdr_mutex_check ;
911 local cxx11_mutex = [ check-target-builds
912       cxx11_hdr_mutex_check "C++11 mutex"
913     :
914     : <library>/boost/thread//boost_thread
915   ] ;
916
917 alias stack_traits_sources
918     : windows/stack_traits.cpp
919     : <target-os>windows
920     :
921     : $(cxx11_mutex)
922     ;
923
924 alias stack_traits_sources
925     : posix/stack_traits.cpp
926     :
927     :
928     : $(cxx11_mutex)
929     ;
930
931 explicit stack_traits_sources ;
932
933
934 lib boost_context
935    : asm_context_sources
936      stack_traits_sources
937      execution_context.cpp
938    ;
939
940 boost-install boost_context ;