global address-model and architecutre
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Jamroot b/Jamroot | |
index d1b3c3a..779fe54 100644 | |
--- a/Jamroot | |
+++ b/Jamroot | |
@@ -136,6 +136,8 @@ constant BOOST_JAMROOT_MODULE : $(__name__) ; | |
boostcpp.set-version $(BOOST_VERSION) ; | |
+use-project /boost/architecture : libs/config/checks/architecture ; | |
+ | |
local all-headers = | |
[ MATCH .*libs/(.*)/include/boost : [ glob libs/*/include/boost ] ] ; | |
@@ -162,6 +164,10 @@ if $(all-headers) | |
project boost | |
: requirements <include>. | |
+ | |
+ [ boostcpp.architecture ] | |
+ [ boostcpp.address-model ] | |
+ | |
# Disable auto-linking for all targets here, primarily because it caused | |
# troubles with V2. | |
<define>BOOST_ALL_NO_LIB=1 | |
diff --git a/boostcpp.jam b/boostcpp.jam | |
index 257e70d..9a0f53b 100644 | |
--- a/boostcpp.jam | |
+++ b/boostcpp.jam | |
@@ -22,7 +22,7 @@ import project ; | |
import regex ; | |
import set ; | |
import targets ; | |
- | |
+import property ; | |
############################################################################## | |
# | |
@@ -553,3 +553,70 @@ rule declare-targets ( all-libraries * : headers * ) | |
declare_top_level_targets $(libraries) : $(headers) ; | |
} | |
+ | |
+rule deduce-address-model ( properties * ) | |
+{ | |
+ local result = [ property.select <address-model> : $(properties) ] ; | |
+ if $(result) | |
+ { | |
+ return $(result) ; | |
+ } | |
+ else | |
+ { | |
+ if [ configure.builds /boost/architecture//32 : $(properties) : 32-bit ] | |
+ { | |
+ return <address-model>32 ; | |
+ } | |
+ else if [ configure.builds /boost/architecture//64 : $(properties) : 64-bit ] | |
+ { | |
+ return <address-model>64 ; | |
+ } | |
+ } | |
+} | |
+ | |
+rule address-model ( ) | |
+{ | |
+ return <conditional>@boostcpp.deduce-address-model ; | |
+} | |
+ | |
+rule deduce-architecture ( properties * ) | |
+{ | |
+ local result = [ property.select <architecture> : $(properties) ] ; | |
+ if $(result) | |
+ { | |
+ return $(result) ; | |
+ } | |
+ else | |
+ { | |
+ if [ configure.builds /boost/architecture//arm : $(properties) : arm ] | |
+ { | |
+ return <architecture>arm ; | |
+ } | |
+ else if [ configure.builds /boost/architecture//mips1 : $(properties) : mips1 ] | |
+ { | |
+ return <architecture>mips1 ; | |
+ } | |
+ else if [ configure.builds /boost/architecture//power : $(properties) : power ] | |
+ { | |
+ return <architecture>power ; | |
+ } | |
+ else if [ configure.builds /boost/architecture//sparc : $(properties) : sparc ] | |
+ { | |
+ return <architecture>sparc ; | |
+ } | |
+ else if [ configure.builds /boost/architecture//x86 : $(properties) : x86 ] | |
+ { | |
+ return <architecture>x86 ; | |
+ } | |
+ else if [ configure.builds /boost/architecture//combined : $(properties) : combined ] | |
+ { | |
+ return <architecture>combined ; | |
+ } | |
+ } | |
+} | |
+ | |
+rule architecture ( ) | |
+{ | |
+ return <conditional>@boostcpp.deduce-architecture ; | |
+} | |
+ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/checks/architecture/32.cpp b/checks/architecture/32.cpp | |
new file mode 100644 | |
index 0000000..d3d2dba | |
--- /dev/null | |
+++ b/checks/architecture/32.cpp | |
@@ -0,0 +1,9 @@ | |
+// 32.cpp | |
+// | |
+// Copyright (c) 2012 Steven Watanabe | |
+// | |
+// 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) | |
+ | |
+int test[sizeof(void*) == 4? 1 : -1]; | |
diff --git a/checks/architecture/64.cpp b/checks/architecture/64.cpp | |
new file mode 100644 | |
index 0000000..5a33bc6 | |
--- /dev/null | |
+++ b/checks/architecture/64.cpp | |
@@ -0,0 +1,9 @@ | |
+// 64.cpp | |
+// | |
+// Copyright (c) 2012 Steven Watanabe | |
+// | |
+// 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) | |
+ | |
+int test[sizeof(void*) == 8? 1 : -1]; | |
diff --git a/checks/architecture/Jamroot.jam b/checks/architecture/Jamroot.jam | |
new file mode 100644 | |
index 0000000..ca653b7 | |
--- /dev/null | |
+++ b/checks/architecture/Jamroot.jam | |
@@ -0,0 +1,23 @@ | |
+# Jamfile.jam | |
+# | |
+# Copyright 2012 Steven Watanabe | |
+# | |
+# 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) | |
+ | |
+project /boost/architecture | |
+ : requirements | |
+ -<conditional>@boostcpp.deduce-address-model | |
+ -<conditional>@boostcpp.deduce-architecture | |
+ ; | |
+ | |
+obj 32 : 32.cpp ; | |
+obj 64 : 64.cpp ; | |
+ | |
+obj arm : arm.cpp ; | |
+obj combined : combined.cpp ; | |
+obj mips1 : mips1.cpp ; | |
+obj power : power.cpp ; | |
+obj sparc : sparc.cpp ; | |
+obj x86 : x86.cpp ; | |
diff --git a/checks/architecture/arm.cpp b/checks/architecture/arm.cpp | |
new file mode 100644 | |
index 0000000..6a83737 | |
--- /dev/null | |
+++ b/checks/architecture/arm.cpp | |
@@ -0,0 +1,13 @@ | |
+// arm.cpp | |
+// | |
+// Copyright (c) 2012 Steven Watanabe | |
+// | |
+// 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) | |
+ | |
+#if !defined(__arm__) && !defined(__thumb__) && \ | |
+ !defined(__TARGET_ARCH_ARM) && !defined(__TARGET_ARCH_THUMB) && \ | |
+ !defined(_ARM) && !defined(_M_ARM) | |
+#error "Not ARM" | |
+#endif | |
diff --git a/checks/architecture/combined.cpp b/checks/architecture/combined.cpp | |
new file mode 100644 | |
index 0000000..4e5a387 | |
--- /dev/null | |
+++ b/checks/architecture/combined.cpp | |
@@ -0,0 +1,21 @@ | |
+// combined.cpp | |
+// | |
+// Copyright (c) 2012 Steven Watanabe | |
+// 2014 Oliver Kowalke | |
+// | |
+// 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) | |
+ | |
+#if !defined(i386) && !defined(__i386__) && !defined(__i386) \ | |
+ && !defined(__i486__) && !defined(__i586__) && !defined(__i686__) \ | |
+ && !defined(_M_IX86) && !defined(__X86__) && !defined(_X86_) \ | |
+ && !defined(__THW_INTEL__) && !defined(__I86__) && !defined(__INTEL__) \ | |
+ && !defined(__amd64__) && !defined(__x86_64__) && !defined(__amd64) \ | |
+ && !defined(__x86_64) && !defined(_M_X64) \ | |
+ && !defined(__powerpc) && !defined(__powerpc__) && !defined(__ppc) \ | |
+ && !defined(__ppc__) && !defined(_M_PPC) && !defined(_ARCH_PPC) \ | |
+ && !defined(__POWERPC__) && !defined(__PPCGECKO__) \ | |
+ && !defined(__PPCBROADWAY) && !defined(_XENON) | |
+#error "Not combined" | |
+#endif | |
diff --git a/checks/architecture/mips1.cpp b/checks/architecture/mips1.cpp | |
new file mode 100644 | |
index 0000000..adc4a61 | |
--- /dev/null | |
+++ b/checks/architecture/mips1.cpp | |
@@ -0,0 +1,11 @@ | |
+// mips1.cpp | |
+// | |
+// Copyright (c) 2012 Steven Watanabe | |
+// | |
+// 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) | |
+ | |
+#if !((defined(__mips) && __mips == 1) || defined(_MIPS_ISA_MIPS1) || defined(_R3000)) | |
+#error "Not MIPS1" | |
+#endif | |
diff --git a/checks/architecture/power.cpp b/checks/architecture/power.cpp | |
new file mode 100644 | |
index 0000000..0551194 | |
--- /dev/null | |
+++ b/checks/architecture/power.cpp | |
@@ -0,0 +1,14 @@ | |
+// power.cpp | |
+// | |
+// Copyright (c) 2012 Steven Watanabe | |
+// | |
+// 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) | |
+ | |
+#if !defined(__powerpc) && !defined(__powerpc__) && !defined(__ppc) \ | |
+ && !defined(__ppc__) && !defined(_M_PPC) && !defined(_ARCH_PPC) \ | |
+ && !defined(__POWERPC__) && !defined(__PPCGECKO__) \ | |
+ && !defined(__PPCBROADWAY) && !defined(_XENON) | |
+#error "Not PPC" | |
+#endif | |
diff --git a/checks/architecture/sparc.cpp b/checks/architecture/sparc.cpp | |
new file mode 100644 | |
index 0000000..3df2df8 | |
--- /dev/null | |
+++ b/checks/architecture/sparc.cpp | |
@@ -0,0 +1,11 @@ | |
+// power.cpp | |
+// | |
+// Copyright (c) 2012 Steven Watanabe | |
+// | |
+// 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) | |
+ | |
+#if !defined(__sparc__) && !defined(__sparc) | |
+#error "Not SPARC" | |
+#endif | |
diff --git a/checks/architecture/x86.cpp b/checks/architecture/x86.cpp | |
new file mode 100644 | |
index 0000000..0d2f9c2 | |
--- /dev/null | |
+++ b/checks/architecture/x86.cpp | |
@@ -0,0 +1,16 @@ | |
+// x86.cpp | |
+// | |
+// Copyright (c) 2012 Steven Watanabe | |
+// | |
+// 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) | |
+ | |
+#if !defined(i386) && !defined(__i386__) && !defined(__i386) \ | |
+ && !defined(__i486__) && !defined(__i586__) && !defined(__i686__) \ | |
+ && !defined(_M_IX86) && !defined(__X86__) && !defined(_X86_) \ | |
+ && !defined(__THW_INTEL__) && !defined(__I86__) && !defined(__INTEL__) \ | |
+ && !defined(__amd64__) && !defined(__x86_64__) && !defined(__amd64) \ | |
+ && !defined(__x86_64) && !defined(_M_X64) | |
+#error "Not x86" | |
+#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/build/Jamfile.v2 b/build/Jamfile.v2 | |
index 889f28b..799acb0 100644 | |
--- a/build/Jamfile.v2 | |
+++ b/build/Jamfile.v2 | |
@@ -12,7 +12,6 @@ import indirect ; | |
import modules ; | |
import os ; | |
import toolset ; | |
-import architecture ; | |
feature.feature segmented-stacks : on : optional propagated composite ; | |
feature.compose <segmented-stacks>on : <define>BOOST_USE_SEGMENTED_STACKS ; | |
@@ -803,13 +802,6 @@ alias asm_context_sources | |
explicit asm_context_sources ; | |
-alias select_asm_context_sources | |
- : asm_context_sources | |
- : [ architecture.architecture ] | |
- [ architecture.address-model ] | |
- ; | |
- | |
- | |
alias stack_traits_sources | |
: windows/stack_traits.cpp | |
: <target-os>windows | |
@@ -823,7 +815,7 @@ explicit stack_traits_sources ; | |
lib boost_context | |
- : select_asm_context_sources | |
+ : asm_context_sources | |
stack_traits_sources | |
execution_context.cpp | |
; | |
diff --git a/config/32.cpp b/config/32.cpp | |
deleted file mode 100644 | |
index d3d2dba..0000000 | |
--- a/config/32.cpp | |
+++ /dev/null | |
@@ -1,9 +0,0 @@ | |
-// 32.cpp | |
-// | |
-// Copyright (c) 2012 Steven Watanabe | |
-// | |
-// 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) | |
- | |
-int test[sizeof(void*) == 4? 1 : -1]; | |
diff --git a/config/64.cpp b/config/64.cpp | |
deleted file mode 100644 | |
index 5a33bc6..0000000 | |
--- a/config/64.cpp | |
+++ /dev/null | |
@@ -1,9 +0,0 @@ | |
-// 64.cpp | |
-// | |
-// Copyright (c) 2012 Steven Watanabe | |
-// | |
-// 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) | |
- | |
-int test[sizeof(void*) == 8? 1 : -1]; | |
diff --git a/config/Jamfile.jam b/config/Jamfile.jam | |
deleted file mode 100644 | |
index 204c6ed..0000000 | |
--- a/config/Jamfile.jam | |
+++ /dev/null | |
@@ -1,19 +0,0 @@ | |
-# Jamfile.jam | |
-# | |
-# Copyright 2012 Steven Watanabe | |
-# | |
-# 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) | |
- | |
-project /boost/architecture ; | |
- | |
-obj 32 : 32.cpp ; | |
-obj 64 : 64.cpp ; | |
- | |
-obj arm : arm.cpp ; | |
-obj combined : combined.cpp ; | |
-obj mips1 : mips1.cpp ; | |
-obj power : power.cpp ; | |
-obj sparc : sparc.cpp ; | |
-obj x86 : x86.cpp ; | |
diff --git a/config/arm.cpp b/config/arm.cpp | |
deleted file mode 100644 | |
index 6a83737..0000000 | |
--- a/config/arm.cpp | |
+++ /dev/null | |
@@ -1,13 +0,0 @@ | |
-// arm.cpp | |
-// | |
-// Copyright (c) 2012 Steven Watanabe | |
-// | |
-// 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) | |
- | |
-#if !defined(__arm__) && !defined(__thumb__) && \ | |
- !defined(__TARGET_ARCH_ARM) && !defined(__TARGET_ARCH_THUMB) && \ | |
- !defined(_ARM) && !defined(_M_ARM) | |
-#error "Not ARM" | |
-#endif | |
diff --git a/config/combined.cpp b/config/combined.cpp | |
deleted file mode 100644 | |
index 4e5a387..0000000 | |
--- a/config/combined.cpp | |
+++ /dev/null | |
@@ -1,21 +0,0 @@ | |
-// combined.cpp | |
-// | |
-// Copyright (c) 2012 Steven Watanabe | |
-// 2014 Oliver Kowalke | |
-// | |
-// 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) | |
- | |
-#if !defined(i386) && !defined(__i386__) && !defined(__i386) \ | |
- && !defined(__i486__) && !defined(__i586__) && !defined(__i686__) \ | |
- && !defined(_M_IX86) && !defined(__X86__) && !defined(_X86_) \ | |
- && !defined(__THW_INTEL__) && !defined(__I86__) && !defined(__INTEL__) \ | |
- && !defined(__amd64__) && !defined(__x86_64__) && !defined(__amd64) \ | |
- && !defined(__x86_64) && !defined(_M_X64) \ | |
- && !defined(__powerpc) && !defined(__powerpc__) && !defined(__ppc) \ | |
- && !defined(__ppc__) && !defined(_M_PPC) && !defined(_ARCH_PPC) \ | |
- && !defined(__POWERPC__) && !defined(__PPCGECKO__) \ | |
- && !defined(__PPCBROADWAY) && !defined(_XENON) | |
-#error "Not combined" | |
-#endif | |
diff --git a/config/mips1.cpp b/config/mips1.cpp | |
deleted file mode 100644 | |
index adc4a61..0000000 | |
--- a/config/mips1.cpp | |
+++ /dev/null | |
@@ -1,11 +0,0 @@ | |
-// mips1.cpp | |
-// | |
-// Copyright (c) 2012 Steven Watanabe | |
-// | |
-// 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) | |
- | |
-#if !((defined(__mips) && __mips == 1) || defined(_MIPS_ISA_MIPS1) || defined(_R3000)) | |
-#error "Not MIPS1" | |
-#endif | |
diff --git a/config/power.cpp b/config/power.cpp | |
deleted file mode 100644 | |
index 0551194..0000000 | |
--- a/config/power.cpp | |
+++ /dev/null | |
@@ -1,14 +0,0 @@ | |
-// power.cpp | |
-// | |
-// Copyright (c) 2012 Steven Watanabe | |
-// | |
-// 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) | |
- | |
-#if !defined(__powerpc) && !defined(__powerpc__) && !defined(__ppc) \ | |
- && !defined(__ppc__) && !defined(_M_PPC) && !defined(_ARCH_PPC) \ | |
- && !defined(__POWERPC__) && !defined(__PPCGECKO__) \ | |
- && !defined(__PPCBROADWAY) && !defined(_XENON) | |
-#error "Not PPC" | |
-#endif | |
diff --git a/config/sparc.cpp b/config/sparc.cpp | |
deleted file mode 100644 | |
index 3df2df8..0000000 | |
--- a/config/sparc.cpp | |
+++ /dev/null | |
@@ -1,11 +0,0 @@ | |
-// power.cpp | |
-// | |
-// Copyright (c) 2012 Steven Watanabe | |
-// | |
-// 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) | |
- | |
-#if !defined(__sparc__) && !defined(__sparc) | |
-#error "Not SPARC" | |
-#endif | |
diff --git a/config/x86.cpp b/config/x86.cpp | |
deleted file mode 100644 | |
index 0d2f9c2..0000000 | |
--- a/config/x86.cpp | |
+++ /dev/null | |
@@ -1,16 +0,0 @@ | |
-// x86.cpp | |
-// | |
-// Copyright (c) 2012 Steven Watanabe | |
-// | |
-// 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) | |
- | |
-#if !defined(i386) && !defined(__i386__) && !defined(__i386) \ | |
- && !defined(__i486__) && !defined(__i586__) && !defined(__i686__) \ | |
- && !defined(_M_IX86) && !defined(__X86__) && !defined(_X86_) \ | |
- && !defined(__THW_INTEL__) && !defined(__I86__) && !defined(__INTEL__) \ | |
- && !defined(__amd64__) && !defined(__x86_64__) && !defined(__amd64) \ | |
- && !defined(__x86_64) && !defined(_M_X64) | |
-#error "Not x86" | |
-#endif |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment