]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | # Copyright (C) 2005, 2006 The Trustees of Indiana University. |
2 | # Copyright (C) 2005 Douglas Gregor <doug.gregor -at- gmail.com> | |
92f5a8d4 | 3 | # Copyright (c) 2018 Stefan Seefeld |
7c673cae FG |
4 | |
5 | # Use, modification and distribution is subject to the Boost Software | |
6 | # License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at | |
7 | # http://www.boost.org/LICENSE_1_0.txt) | |
8 | ||
9 | # Authors: Douglas Gregor | |
10 | # Andrew Lumsdaine | |
11 | ||
12 | import mpi ; | |
13 | import indirect ; | |
14 | import python ; | |
92f5a8d4 TL |
15 | import option ; |
16 | import regex ; | |
7c673cae | 17 | |
92f5a8d4 TL |
18 | # |
19 | # The `version-suffix` rule really belongs into python.jam, and | |
20 | # should be moved there. `split-version` is only duplicated here | |
21 | # as a prerequisite. (See https://github.com/boostorg/build/pull/290) | |
22 | # | |
23 | ||
24 | ||
92f5a8d4 | 25 | mpi_python_libs = ; |
7c673cae FG |
26 | |
27 | if [ mpi.configured ] | |
28 | { | |
29 | ||
30 | project boost/mpi | |
31 | : source-location ../src | |
32 | ; | |
33 | ||
b32b8144 FG |
34 | lib boost_mpi |
35 | : | |
7c673cae | 36 | broadcast.cpp |
11fdf7f2 | 37 | cartesian_communicator.cpp |
7c673cae FG |
38 | communicator.cpp |
39 | computation_tree.cpp | |
40 | content_oarchive.cpp | |
41 | environment.cpp | |
92f5a8d4 | 42 | error_string.cpp |
7c673cae FG |
43 | exception.cpp |
44 | graph_communicator.cpp | |
45 | group.cpp | |
46 | intercommunicator.cpp | |
47 | mpi_datatype_cache.cpp | |
48 | mpi_datatype_oarchive.cpp | |
20effc67 | 49 | offsets.cpp |
7c673cae FG |
50 | packed_iarchive.cpp |
51 | packed_oarchive.cpp | |
52 | packed_skeleton_iarchive.cpp | |
53 | packed_skeleton_oarchive.cpp | |
54 | point_to_point.cpp | |
55 | request.cpp | |
20effc67 | 56 | status.cpp |
7c673cae FG |
57 | text_skeleton_oarchive.cpp |
58 | timer.cpp | |
59 | : # Requirements | |
60 | <library>../../serialization/build//boost_serialization | |
61 | <library>/mpi//mpi [ mpi.extra-requirements ] | |
62 | <define>BOOST_MPI_SOURCE=1 | |
63 | <link>shared:<define>BOOST_MPI_DYN_LINK=1 | |
92f5a8d4 | 64 | <local-visibility>global |
7c673cae FG |
65 | : # Default build |
66 | <link>shared | |
67 | : # Usage requirements | |
68 | <library>../../serialization/build//boost_serialization | |
69 | <library>/mpi//mpi [ mpi.extra-requirements ] | |
70 | ; | |
b32b8144 | 71 | |
7c673cae FG |
72 | if [ python.configured ] |
73 | { | |
92f5a8d4 | 74 | lib boost_mpi_python |
b32b8144 FG |
75 | : # Sources |
76 | python/serialize.cpp | |
77 | : # Requirements | |
78 | <library>boost_mpi | |
79 | <library>/mpi//mpi [ mpi.extra-requirements ] | |
92f5a8d4 | 80 | <library>/boost/python//boost_python |
b32b8144 FG |
81 | <link>shared:<define>BOOST_MPI_DYN_LINK=1 |
82 | <link>shared:<define>BOOST_MPI_PYTHON_DYN_LINK=1 | |
83 | <link>shared:<define>BOOST_PYTHON_DYN_LINK=1 | |
84 | <define>BOOST_MPI_PYTHON_SOURCE=1 | |
b32b8144 | 85 | <python-debugging>on:<define>BOOST_DEBUG_PYTHON |
92f5a8d4 | 86 | -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag |
f67539c2 | 87 | <tag>@python-tag |
92f5a8d4 TL |
88 | <conditional>@python.require-py |
89 | <local-visibility>global | |
90 | ||
b32b8144 FG |
91 | : # Default build |
92 | <link>shared | |
93 | : # Usage requirements | |
94 | <library>/mpi//mpi [ mpi.extra-requirements ] | |
95 | ; | |
96 | ||
97 | python-extension mpi | |
98 | : # Sources | |
99 | python/collectives.cpp | |
100 | python/py_communicator.cpp | |
101 | python/datatypes.cpp | |
102 | python/documentation.cpp | |
103 | python/py_environment.cpp | |
104 | python/py_nonblocking.cpp | |
105 | python/py_exception.cpp | |
106 | python/module.cpp | |
107 | python/py_request.cpp | |
108 | python/skeleton_and_content.cpp | |
109 | python/status.cpp | |
110 | python/py_timer.cpp | |
111 | : # Requirements | |
92f5a8d4 TL |
112 | <library>/boost/python//boost_python |
113 | <library>boost_mpi_python | |
b32b8144 FG |
114 | <library>boost_mpi |
115 | <library>/mpi//mpi [ mpi.extra-requirements ] | |
116 | <link>shared:<define>BOOST_MPI_DYN_LINK=1 | |
117 | <link>shared:<define>BOOST_MPI_PYTHON_DYN_LINK=1 | |
118 | <link>shared:<define>BOOST_PYTHON_DYN_LINK=1 | |
119 | <link>shared <runtime-link>shared | |
120 | <python-debugging>on:<define>BOOST_DEBUG_PYTHON | |
b32b8144 FG |
121 | ; |
122 | ||
92f5a8d4 | 123 | mpi_python_libs = boost_mpi_python mpi ; |
7c673cae FG |
124 | } |
125 | } | |
126 | else if ! ( --without-mpi in [ modules.peek : ARGV ] ) | |
127 | { | |
128 | message boost_mpi | |
129 | : "warning: skipping optional Message Passing Interface (MPI) library." | |
130 | : "note: to enable MPI support, add \"using mpi ;\" to user-config.jam." | |
131 | : "note: to suppress this message, pass \"--without-mpi\" to bjam." | |
132 | : "note: otherwise, you can safely ignore this message." | |
133 | ; | |
134 | } | |
92f5a8d4 TL |
135 | else |
136 | { | |
137 | alias boost_mpi ; | |
138 | } | |
7c673cae | 139 | |
92f5a8d4 | 140 | boost-install boost_mpi $(mpi_python_libs) ; |