Jamfile.v2 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827
  1. # Boost.Context Library Build Jamfile
  2. # Copyright Oliver Kowalke 2009.
  3. # Distributed under the Boost Software License, Version 1.0.
  4. # (See accompanying file LICENSE_1_0.txt or copy at
  5. # http://www.boost.org/LICENSE_1_0.txt)
  6. import common ;
  7. import feature ;
  8. import indirect ;
  9. import modules ;
  10. import os ;
  11. import toolset ;
  12. import ../../config/checks/config : requires ;
  13. feature.feature segmented-stacks : on : optional propagated composite ;
  14. feature.compose <segmented-stacks>on : <define>BOOST_USE_SEGMENTED_STACKS ;
  15. feature.feature htm : tsx : optional propagated composite ;
  16. feature.compose <htm>tsx : <define>BOOST_USE_TSX ;
  17. feature.feature valgrind : on : optional propagated composite ;
  18. feature.compose <valgrind>on : <define>BOOST_USE_VALGRIND ;
  19. project boost/context
  20. : requirements
  21. <target-os>windows:<define>_WIN32_WINNT=0x0601
  22. <toolset>gcc,<segmented-stacks>on:<cxxflags>-fsplit-stack
  23. <toolset>gcc,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS
  24. <toolset>gcc,<segmented-stacks>on:<linkflags>"-static-libgcc"
  25. <toolset>clang,<segmented-stacks>on:<cxxflags>-fsplit-stack
  26. <toolset>clang,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS
  27. <toolset>clang,<segmented-stacks>on:<linkflags>"-static-libgcc"
  28. <toolset>intel,<link>shared:<define>BOOST_CONTEXT_EXPORT=EXPORT
  29. <toolset>intel,<link>static:<define>BOOST_CONTEXT_EXPORT=
  30. <toolset>msvc,<link>shared:<define>BOOST_CONTEXT_EXPORT=EXPORT
  31. <toolset>msvc,<link>static:<define>BOOST_CONTEXT_EXPORT=
  32. <toolset>clang-win,<link>shared:<define>BOOST_CONTEXT_EXPORT=EXPORT
  33. <toolset>clang-win,<link>static:<define>BOOST_CONTEXT_EXPORT=
  34. <link>shared:<define>BOOST_CONTEXT_DYN_LINK=1
  35. <define>BOOST_CONTEXT_SOURCE
  36. <threading>multi
  37. : usage-requirements
  38. <link>shared:<define>BOOST_CONTEXT_DYN_LINK=1
  39. <optimization>speed:<define>BOOST_DISABLE_ASSERTS
  40. <variant>release:<define>BOOST_DISABLE_ASSERTS
  41. : source-location ../src
  42. ;
  43. local rule default_binary_format ( )
  44. {
  45. local tmp = elf ;
  46. if [ os.name ] = "NT" { tmp = pe ; }
  47. else if [ os.name ] = "CYGWIN" { tmp = pe ; }
  48. else if [ os.name ] = "AIX" { tmp = xcoff ; }
  49. else if [ os.name ] = "MACOSX" { tmp = mach-o ; }
  50. return $(tmp) ;
  51. }
  52. feature.feature binary-format
  53. : elf
  54. mach-o
  55. pe
  56. xcoff
  57. : propagated
  58. ;
  59. feature.set-default binary-format : [ default_binary_format ] ;
  60. local rule default_abi ( )
  61. {
  62. local tmp = sysv ;
  63. if [ os.name ] = "NT" { tmp = ms ; }
  64. else if [ os.name ] = "CYGWIN" { tmp = ms ; }
  65. else if [ os.platform ] = "ARM" { tmp = aapcs ; }
  66. else if [ os.platform ] = "MIPS" { tmp = o32 ; }
  67. return $(tmp) ;
  68. }
  69. feature.feature abi
  70. : aapcs
  71. eabi
  72. ms
  73. n32
  74. n64
  75. o32
  76. o64
  77. sysv
  78. x32
  79. : propagated
  80. ;
  81. feature.set-default abi : [ default_abi ] ;
  82. feature.feature context-impl
  83. : fcontext
  84. ucontext
  85. winfib
  86. : propagated
  87. composite
  88. ;
  89. feature.set-default context-impl : fcontext ;
  90. feature.compose <context-impl>ucontext : <define>BOOST_USE_UCONTEXT ;
  91. feature.compose <context-impl>winfib : <define>BOOST_USE_WINFIB ;
  92. # ARM
  93. # ARM/AAPCS/ELF
  94. alias asm_sources
  95. : asm/make_arm_aapcs_elf_gas.S
  96. asm/jump_arm_aapcs_elf_gas.S
  97. asm/ontop_arm_aapcs_elf_gas.S
  98. : <abi>aapcs
  99. <address-model>32
  100. <architecture>arm
  101. <binary-format>elf
  102. <toolset>clang
  103. ;
  104. alias asm_sources
  105. : asm/make_arm_aapcs_elf_gas.S
  106. asm/jump_arm_aapcs_elf_gas.S
  107. asm/ontop_arm_aapcs_elf_gas.S
  108. : <abi>aapcs
  109. <address-model>32
  110. <architecture>arm
  111. <binary-format>elf
  112. <toolset>gcc
  113. ;
  114. alias asm_sources
  115. : asm/make_arm_aapcs_elf_gas.S
  116. asm/jump_arm_aapcs_elf_gas.S
  117. asm/ontop_arm_aapcs_elf_gas.S
  118. : <abi>aapcs
  119. <address-model>32
  120. <architecture>arm
  121. <binary-format>elf
  122. <toolset>qcc
  123. ;
  124. # ARM/AAPCS/MACH-O
  125. alias asm_sources
  126. : asm/make_arm_aapcs_macho_gas.S
  127. asm/jump_arm_aapcs_macho_gas.S
  128. asm/ontop_arm_aapcs_macho_gas.S
  129. : <abi>aapcs
  130. <address-model>32
  131. <architecture>arm
  132. <binary-format>mach-o
  133. <toolset>clang
  134. ;
  135. alias asm_sources
  136. : asm/make_arm_aapcs_macho_gas.S
  137. asm/jump_arm_aapcs_macho_gas.S
  138. asm/ontop_arm_aapcs_macho_gas.S
  139. : <abi>aapcs
  140. <address-model>32
  141. <architecture>arm
  142. <binary-format>mach-o
  143. <toolset>darwin
  144. ;
  145. # ARM/AAPCS/PE
  146. alias asm_sources
  147. : asm/make_arm_aapcs_pe_armasm.asm
  148. asm/jump_arm_aapcs_pe_armasm.asm
  149. asm/ontop_arm_aapcs_pe_armasm.asm
  150. untested.cpp
  151. : <abi>aapcs
  152. <address-model>32
  153. <architecture>arm
  154. <binary-format>pe
  155. <toolset>msvc
  156. ;
  157. # ARM64
  158. # ARM64/AAPCS/ELF
  159. alias asm_sources
  160. : asm/make_arm64_aapcs_elf_gas.S
  161. asm/jump_arm64_aapcs_elf_gas.S
  162. asm/ontop_arm64_aapcs_elf_gas.S
  163. : <abi>aapcs
  164. <address-model>64
  165. <architecture>arm
  166. <binary-format>elf
  167. <toolset>clang
  168. ;
  169. alias asm_sources
  170. : asm/make_arm64_aapcs_elf_gas.S
  171. asm/jump_arm64_aapcs_elf_gas.S
  172. asm/ontop_arm64_aapcs_elf_gas.S
  173. : <abi>aapcs
  174. <address-model>64
  175. <architecture>arm
  176. <binary-format>elf
  177. <toolset>gcc
  178. ;
  179. # ARM64/AAPCS/MACH-O
  180. alias asm_sources
  181. : asm/make_arm64_aapcs_macho_gas.S
  182. asm/jump_arm64_aapcs_macho_gas.S
  183. asm/ontop_arm64_aapcs_macho_gas.S
  184. : <abi>aapcs
  185. <address-model>64
  186. <architecture>arm
  187. <binary-format>mach-o
  188. <toolset>clang
  189. ;
  190. alias asm_sources
  191. : asm/make_arm64_aapcs_macho_gas.S
  192. asm/jump_arm64_aapcs_macho_gas.S
  193. asm/ontop_arm64_aapcs_macho_gas.S
  194. : <abi>aapcs
  195. <address-model>64
  196. <architecture>arm
  197. <binary-format>mach-o
  198. <toolset>darwin
  199. ;
  200. # MIPS
  201. # MIPS32/O32/ELF
  202. alias asm_sources
  203. : asm/make_mips32_o32_elf_gas.S
  204. asm/jump_mips32_o32_elf_gas.S
  205. asm/ontop_mips32_o32_elf_gas.S
  206. : <abi>o32
  207. <address-model>32
  208. <architecture>mips1
  209. <binary-format>elf
  210. <toolset>clang
  211. ;
  212. alias asm_sources
  213. : asm/make_mips32_o32_elf_gas.S
  214. asm/jump_mips32_o32_elf_gas.S
  215. asm/ontop_mips32_o32_elf_gas.S
  216. : <abi>o32
  217. <address-model>32
  218. <architecture>mips1
  219. <binary-format>elf
  220. <toolset>gcc
  221. ;
  222. # MIPS64/N64/ELF
  223. alias asm_sources
  224. : asm/make_mips64_n64_elf_gas.S
  225. asm/jump_mips64_n64_elf_gas.S
  226. asm/ontop_mips64_n64_elf_gas.S
  227. : <abi>n64
  228. <address-model>64
  229. <architecture>mips1
  230. <binary-format>elf
  231. <toolset>clang
  232. ;
  233. alias asm_sources
  234. : asm/make_mips64_n64_elf_gas.S
  235. asm/jump_mips64_n64_elf_gas.S
  236. asm/ontop_mips64_n64_elf_gas.S
  237. : <abi>n64
  238. <address-model>64
  239. <architecture>mips1
  240. <binary-format>elf
  241. <toolset>gcc
  242. ;
  243. # POWERPC_32
  244. # POWERPC_32/SYSV/ELF
  245. alias asm_sources
  246. : asm/make_ppc32_sysv_elf_gas.S
  247. asm/jump_ppc32_sysv_elf_gas.S
  248. asm/ontop_ppc32_sysv_elf_gas.S
  249. asm/tail_ppc32_sysv_elf_gas.cpp
  250. : <abi>sysv
  251. <address-model>32
  252. <architecture>power
  253. <binary-format>elf
  254. <toolset>clang
  255. ;
  256. alias asm_sources
  257. : asm/make_ppc32_sysv_elf_gas.S
  258. asm/jump_ppc32_sysv_elf_gas.S
  259. asm/ontop_ppc32_sysv_elf_gas.S
  260. asm/tail_ppc32_sysv_elf_gas.cpp
  261. : <abi>sysv
  262. <address-model>32
  263. <architecture>power
  264. <binary-format>elf
  265. <toolset>gcc
  266. ;
  267. alias asm_sources
  268. : asm/make_ppc32_sysv_macho_gas.S
  269. asm/jump_ppc32_sysv_macho_gas.S
  270. asm/ontop_ppc32_sysv_macho_gas.S
  271. : <abi>sysv
  272. <address-model>32
  273. <architecture>power
  274. <binary-format>mach-o
  275. <toolset>darwin
  276. ;
  277. #POWERPC_32/SYSV/XCOFF
  278. alias asm_sources
  279. : asm/make_ppc32_sysv_xcoff_gas.S
  280. asm/jump_ppc32_sysv_xcoff_gas.S
  281. asm/ontop_ppc32_sysv_xcoff_gas.S
  282. : <abi>sysv
  283. <address-model>32
  284. <architecture>power
  285. <binary-format>xcoff
  286. <toolset>clang
  287. ;
  288. alias asm_sources
  289. : asm/make_ppc32_sysv_xcoff_gas.S
  290. asm/jump_ppc32_sysv_xcoff_gas.S
  291. asm/ontop_ppc32_sysv_xcoff_gas.S
  292. : <abi>sysv
  293. <address-model>32
  294. <architecture>power
  295. <binary-format>xcoff
  296. <toolset>gcc
  297. ;
  298. # POWERPC_64
  299. # POWERPC_64/SYSV/ELF
  300. alias asm_sources
  301. : asm/make_ppc64_sysv_elf_gas.S
  302. asm/jump_ppc64_sysv_elf_gas.S
  303. asm/ontop_ppc64_sysv_elf_gas.S
  304. : <abi>sysv
  305. <address-model>64
  306. <architecture>power
  307. <binary-format>elf
  308. <toolset>clang
  309. ;
  310. alias asm_sources
  311. : asm/make_ppc64_sysv_elf_gas.S
  312. asm/jump_ppc64_sysv_elf_gas.S
  313. asm/ontop_ppc64_sysv_elf_gas.S
  314. : <abi>sysv
  315. <address-model>64
  316. <architecture>power
  317. <binary-format>elf
  318. <toolset>gcc
  319. ;
  320. # POWERPC_64/SYSV/MACH-O
  321. alias asm_sources
  322. : asm/make_ppc64_sysv_macho_gas.S
  323. asm/jump_ppc64_sysv_macho_gas.S
  324. asm/ontop_ppc64_sysv_macho_gas.S
  325. untested.cpp
  326. : <abi>sysv
  327. <address-model>64
  328. <architecture>power
  329. <binary-format>mach-o
  330. <toolset>clang
  331. ;
  332. alias asm_sources
  333. : asm/make_ppc64_sysv_macho_gas.S
  334. asm/jump_ppc64_sysv_macho_gas.S
  335. asm/ontop_ppc64_sysv_macho_gas.S
  336. untested.cpp
  337. : <abi>sysv
  338. <address-model>64
  339. <architecture>power
  340. <binary-format>mach-o
  341. <toolset>darwin
  342. ;
  343. # POWERPC_64/SYSV/XCOFF
  344. alias asm_sources
  345. : asm/make_ppc64_sysv_xcoff_gas.S
  346. asm/jump_ppc64_sysv_xcoff_gas.S
  347. asm/ontop_ppc64_sysv_xcoff_gas.S
  348. : <abi>sysv
  349. <address-model>64
  350. <architecture>power
  351. <binary-format>xcoff
  352. <toolset>clang
  353. ;
  354. alias asm_sources
  355. : asm/make_ppc64_sysv_xcoff_gas.S
  356. asm/jump_ppc64_sysv_xcoff_gas.S
  357. asm/ontop_ppc64_sysv_xcoff_gas.S
  358. : <abi>sysv
  359. <address-model>64
  360. <architecture>power
  361. <binary-format>xcoff
  362. <toolset>gcc
  363. ;
  364. # POWERPC universal
  365. # POWERPC_32_64/SYSV/MACH-O
  366. alias asm_sources
  367. : asm/make_ppc32_ppc64_sysv_macho_gas.S
  368. asm/jump_ppc32_ppc64_sysv_macho_gas.S
  369. asm/ontop_ppc32_ppc64_sysv_macho_gas.S
  370. : <abi>sysv
  371. <address-model>32_64
  372. <architecture>power
  373. <binary-format>mach-o
  374. ;
  375. # RISCV64
  376. # RISCV64/SYSV/ELF
  377. alias asm_sources
  378. : asm/make_riscv64_sysv_elf_gas.S
  379. asm/jump_riscv64_sysv_elf_gas.S
  380. asm/ontop_riscv64_sysv_elf_gas.S
  381. : <abi>sysv
  382. <address-model>64
  383. <architecture>riscv
  384. <binary-format>elf
  385. <toolset>gcc
  386. ;
  387. # S390X
  388. # S390X/SYSV/ELF
  389. alias asm_sources
  390. : asm/make_s390x_sysv_elf_gas.S
  391. asm/jump_s390x_sysv_elf_gas.S
  392. asm/ontop_s390x_sysv_elf_gas.S
  393. : <abi>sysv
  394. <address-model>64
  395. <architecture>s390x
  396. <binary-format>elf
  397. <toolset>gcc
  398. ;
  399. # X86
  400. # X86/SYSV/ELF
  401. alias asm_sources
  402. : asm/make_i386_sysv_elf_gas.S
  403. asm/jump_i386_sysv_elf_gas.S
  404. asm/ontop_i386_sysv_elf_gas.S
  405. : <abi>sysv
  406. <address-model>32
  407. <architecture>x86
  408. <binary-format>elf
  409. <toolset>clang
  410. ;
  411. alias asm_sources
  412. : asm/make_i386_sysv_elf_gas.S
  413. asm/jump_i386_sysv_elf_gas.S
  414. asm/ontop_i386_sysv_elf_gas.S
  415. : <abi>sysv
  416. <address-model>32
  417. <architecture>x86
  418. <binary-format>elf
  419. <toolset>gcc
  420. ;
  421. alias asm_sources
  422. : asm/make_i386_sysv_elf_gas.S
  423. asm/jump_i386_sysv_elf_gas.S
  424. asm/ontop_i386_sysv_elf_gas.S
  425. : <abi>sysv
  426. <address-model>32
  427. <architecture>x86
  428. <binary-format>elf
  429. <toolset>intel
  430. ;
  431. # X86/SYSV/MACH-O
  432. alias asm_sources
  433. : asm/make_i386_sysv_macho_gas.S
  434. asm/jump_i386_sysv_macho_gas.S
  435. asm/ontop_i386_sysv_macho_gas.S
  436. : <abi>sysv
  437. <address-model>32
  438. <architecture>x86
  439. <binary-format>mach-o
  440. <toolset>clang
  441. ;
  442. alias asm_sources
  443. : asm/make_i386_sysv_macho_gas.S
  444. asm/jump_i386_sysv_macho_gas.S
  445. asm/ontop_i386_sysv_macho_gas.S
  446. : <abi>sysv
  447. <address-model>32
  448. <architecture>x86
  449. <binary-format>mach-o
  450. <toolset>darwin
  451. ;
  452. # X86/MS/PE
  453. alias asm_sources
  454. : asm/make_i386_ms_pe_gas.asm
  455. asm/jump_i386_ms_pe_gas.asm
  456. asm/ontop_i386_ms_pe_gas.asm
  457. dummy.cpp
  458. : <abi>ms
  459. <address-model>32
  460. <architecture>x86
  461. <binary-format>pe
  462. <toolset>clang
  463. ;
  464. alias asm_sources
  465. : asm/make_i386_ms_pe_masm.asm
  466. asm/jump_i386_ms_pe_masm.asm
  467. asm/ontop_i386_ms_pe_masm.asm
  468. dummy.cpp
  469. : <abi>ms
  470. <address-model>32
  471. <architecture>x86
  472. <binary-format>pe
  473. <toolset>clang-win
  474. ;
  475. alias asm_sources
  476. : asm/make_i386_ms_pe_gas.asm
  477. asm/jump_i386_ms_pe_gas.asm
  478. asm/ontop_i386_ms_pe_gas.asm
  479. dummy.cpp
  480. : <abi>ms
  481. <address-model>32
  482. <architecture>x86
  483. <binary-format>pe
  484. <toolset>gcc
  485. ;
  486. alias asm_sources
  487. : asm/make_i386_ms_pe_masm.asm
  488. asm/jump_i386_ms_pe_masm.asm
  489. asm/ontop_i386_ms_pe_masm.asm
  490. dummy.cpp
  491. : <abi>ms
  492. <address-model>32
  493. <architecture>x86
  494. <binary-format>pe
  495. <toolset>intel
  496. ;
  497. alias asm_sources
  498. : asm/make_i386_ms_pe_masm.asm
  499. asm/jump_i386_ms_pe_masm.asm
  500. asm/ontop_i386_ms_pe_masm.asm
  501. dummy.cpp
  502. : <abi>ms
  503. <address-model>32
  504. <architecture>x86
  505. <binary-format>pe
  506. <toolset>msvc
  507. ;
  508. # X86_64
  509. # X86_64/SYSV/ELF
  510. alias asm_sources
  511. : asm/make_x86_64_sysv_elf_gas.S
  512. asm/jump_x86_64_sysv_elf_gas.S
  513. asm/ontop_x86_64_sysv_elf_gas.S
  514. : <abi>sysv
  515. <address-model>64
  516. <architecture>x86
  517. <binary-format>elf
  518. <toolset>clang
  519. ;
  520. alias asm_sources
  521. : asm/make_x86_64_sysv_elf_gas.S
  522. asm/jump_x86_64_sysv_elf_gas.S
  523. asm/ontop_x86_64_sysv_elf_gas.S
  524. : <abi>sysv
  525. <address-model>64
  526. <architecture>x86
  527. <binary-format>elf
  528. <toolset>gcc
  529. ;
  530. alias asm_sources
  531. : asm/make_x86_64_sysv_elf_gas.S
  532. asm/jump_x86_64_sysv_elf_gas.S
  533. asm/ontop_x86_64_sysv_elf_gas.S
  534. : <abi>sysv
  535. <address-model>64
  536. <architecture>x86
  537. <binary-format>elf
  538. <toolset>intel
  539. ;
  540. # X86_64/SYSV/MACH-O
  541. alias asm_sources
  542. : asm/make_x86_64_sysv_macho_gas.S
  543. asm/jump_x86_64_sysv_macho_gas.S
  544. asm/ontop_x86_64_sysv_macho_gas.S
  545. : <abi>sysv
  546. <address-model>64
  547. <architecture>x86
  548. <binary-format>mach-o
  549. <toolset>clang
  550. ;
  551. alias asm_sources
  552. : asm/make_x86_64_sysv_macho_gas.S
  553. asm/jump_x86_64_sysv_macho_gas.S
  554. asm/ontop_x86_64_sysv_macho_gas.S
  555. : <abi>sysv
  556. <address-model>64
  557. <architecture>x86
  558. <binary-format>mach-o
  559. <toolset>darwin
  560. ;
  561. alias asm_sources
  562. : asm/make_x86_64_sysv_macho_gas.S
  563. asm/jump_x86_64_sysv_macho_gas.S
  564. asm/ontop_x86_64_sysv_macho_gas.S
  565. : <abi>sysv
  566. <address-model>64
  567. <architecture>x86
  568. <binary-format>mach-o
  569. <toolset>intel
  570. ;
  571. # X86_64/MS/PE
  572. alias asm_sources
  573. : asm/make_x86_64_ms_pe_gas.asm
  574. asm/jump_x86_64_ms_pe_gas.asm
  575. asm/ontop_x86_64_ms_pe_gas.asm
  576. dummy.cpp
  577. : <abi>ms
  578. <address-model>64
  579. <architecture>x86
  580. <binary-format>pe
  581. <toolset>clang
  582. ;
  583. alias asm_sources
  584. : asm/make_x86_64_ms_pe_masm.asm
  585. asm/jump_x86_64_ms_pe_masm.asm
  586. asm/ontop_x86_64_ms_pe_masm.asm
  587. dummy.cpp
  588. : <abi>ms
  589. <address-model>64
  590. <architecture>x86
  591. <binary-format>pe
  592. <toolset>clang-win
  593. ;
  594. alias asm_sources
  595. : asm/make_x86_64_ms_pe_gas.asm
  596. asm/jump_x86_64_ms_pe_gas.asm
  597. asm/ontop_x86_64_ms_pe_gas.asm
  598. dummy.cpp
  599. : <abi>ms
  600. <address-model>64
  601. <architecture>x86
  602. <binary-format>pe
  603. <toolset>gcc
  604. ;
  605. alias asm_sources
  606. : asm/make_x86_64_ms_pe_masm.asm
  607. asm/jump_x86_64_ms_pe_masm.asm
  608. asm/ontop_x86_64_ms_pe_masm.asm
  609. dummy.cpp
  610. : <abi>ms
  611. <address-model>64
  612. <architecture>x86
  613. <binary-format>pe
  614. <toolset>intel
  615. ;
  616. alias asm_sources
  617. : asm/make_x86_64_ms_pe_masm.asm
  618. asm/jump_x86_64_ms_pe_masm.asm
  619. asm/ontop_x86_64_ms_pe_masm.asm
  620. dummy.cpp
  621. : <abi>ms
  622. <address-model>64
  623. <architecture>x86
  624. <binary-format>pe
  625. <toolset>msvc
  626. ;
  627. # X86_64/SYSV/X32
  628. alias asm_sources
  629. : asm/make_x86_64_sysv_elf_gas.S
  630. asm/jump_x86_64_sysv_elf_gas.S
  631. asm/ontop_x86_64_sysv_elf_gas.S
  632. : <abi>x32
  633. <address-model>64
  634. <architecture>x86
  635. <binary-format>elf
  636. <toolset>clang
  637. ;
  638. alias asm_sources
  639. : asm/make_x86_64_sysv_elf_gas.S
  640. asm/jump_x86_64_sysv_elf_gas.S
  641. asm/ontop_x86_64_sysv_elf_gas.S
  642. : <abi>x32
  643. <address-model>64
  644. <architecture>x86
  645. <binary-format>elf
  646. <toolset>gcc
  647. ;
  648. alias asm_sources
  649. : asm/make_x86_64_sysv_elf_gas.S
  650. asm/jump_x86_64_sysv_elf_gas.S
  651. asm/ontop_x86_64_sysv_elf_gas.S
  652. : <abi>x32
  653. <address-model>64
  654. <architecture>x86
  655. <binary-format>elf
  656. <toolset>intel
  657. ;
  658. #X86 universal
  659. alias asm_sources
  660. : asm/make_i386_x86_64_sysv_macho_gas.S
  661. asm/jump_i386_x86_64_sysv_macho_gas.S
  662. asm/ontop_i386_x86_64_sysv_macho_gas.S
  663. : <abi>sysv
  664. <address-model>32_64
  665. <architecture>x86
  666. <binary-format>mach-o
  667. ;
  668. # COMBINED
  669. alias asm_sources
  670. : asm/make_combined_sysv_macho_gas.S
  671. asm/jump_combined_sysv_macho_gas.S
  672. asm/ontop_combined_sysv_macho_gas.S
  673. : <abi>sysv
  674. <architecture>combined
  675. <binary-format>mach-o
  676. ;
  677. explicit asm_sources ;
  678. # fcontext_t
  679. alias impl_sources
  680. : asm_sources
  681. : <context-impl>fcontext
  682. ;
  683. # ucontext_t
  684. alias impl_sources
  685. : continuation.cpp
  686. fiber.cpp
  687. : <context-impl>ucontext
  688. [ requires cxx11_auto_declarations
  689. cxx11_constexpr
  690. cxx11_defaulted_functions
  691. cxx11_final
  692. cxx11_hdr_thread
  693. cxx11_hdr_tuple
  694. cxx11_lambdas
  695. cxx11_noexcept
  696. cxx11_nullptr
  697. cxx11_rvalue_references
  698. cxx11_template_aliases
  699. cxx11_thread_local
  700. cxx11_variadic_templates ]
  701. ;
  702. # WinFiber
  703. alias impl_sources
  704. : continuation.cpp
  705. fiber.cpp
  706. : <context-impl>winfib
  707. [ requires cxx11_auto_declarations
  708. cxx11_constexpr
  709. cxx11_defaulted_functions
  710. cxx11_final
  711. cxx11_hdr_thread
  712. cxx11_hdr_tuple
  713. cxx11_lambdas
  714. cxx11_noexcept
  715. cxx11_nullptr
  716. cxx11_rvalue_references
  717. cxx11_template_aliases
  718. cxx11_thread_local
  719. cxx11_variadic_templates ]
  720. ;
  721. explicit impl_sources ;
  722. obj cxx11_hdr_mutex_check : ../build/cxx11_hdr_mutex.cpp ;
  723. explicit cxx11_hdr_mutex_check ;
  724. local cxx11_mutex = [ check-target-builds
  725. cxx11_hdr_mutex_check "C++11 mutex"
  726. :
  727. : <library>/boost/thread//boost_thread
  728. ] ;
  729. alias stack_traits_sources
  730. : windows/stack_traits.cpp
  731. : <target-os>windows
  732. :
  733. : $(cxx11_mutex)
  734. ;
  735. alias stack_traits_sources
  736. : posix/stack_traits.cpp
  737. :
  738. :
  739. : $(cxx11_mutex)
  740. ;
  741. explicit stack_traits_sources ;
  742. lib boost_context
  743. : impl_sources
  744. stack_traits_sources
  745. ;
  746. boost-install boost_context ;