annotate DEPENDENCIES/generic/include/boost/mpi/config.hpp @ 125:34e428693f5d vext

Vext -> Repoint
author Chris Cannam
date Thu, 14 Jun 2018 11:15:39 +0100
parents c530137014c0
children
rev   line source
Chris@16 1 // Copyright (C) 2006 Douglas Gregor <doug.gregor -at- gmail.com>
Chris@16 2
Chris@16 3 // Use, modification and distribution is subject to the Boost Software
Chris@16 4 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
Chris@16 5 // http://www.boost.org/LICENSE_1_0.txt)
Chris@16 6
Chris@16 7 /** @file config.hpp
Chris@16 8 *
Chris@16 9 * This header provides MPI configuration details that expose the
Chris@16 10 * capabilities of the underlying MPI implementation, and provides
Chris@16 11 * auto-linking support on Windows.
Chris@16 12 */
Chris@16 13 #ifndef BOOST_MPI_CONFIG_HPP
Chris@16 14 #define BOOST_MPI_CONFIG_HPP
Chris@16 15
Chris@16 16 /* Force MPICH not to define SEEK_SET, SEEK_CUR, and SEEK_END, which
Chris@16 17 conflict with the versions in <stdio.h> and <cstdio>. */
Chris@16 18 #define MPICH_IGNORE_CXX_SEEK 1
Chris@16 19
Chris@16 20 #include <mpi.h>
Chris@16 21 #include <boost/config.hpp>
Chris@16 22
Chris@16 23 /** @brief Define this macro to avoid expensice MPI_Pack/Unpack calls on
Chris@16 24 * homogeneous machines.
Chris@16 25 */
Chris@16 26 //#define BOOST_MPI_HOMOGENEOUS
Chris@16 27
Chris@16 28 // If this is an MPI-2 implementation, define configuration macros for
Chris@16 29 // the features we are interested in.
Chris@16 30 #if defined(MPI_VERSION) && MPI_VERSION >= 2
Chris@16 31 /** @brief Determine if the MPI implementation has support for memory
Chris@16 32 * allocation.
Chris@16 33 *
Chris@16 34 * This macro will be defined when the underlying MPI implementation
Chris@16 35 * has support for the MPI-2 memory allocation routines @c
Chris@16 36 * MPI_Alloc_mem and @c MPI_Free_mem. When defined, the @c allocator
Chris@16 37 * class template will provide Standard Library-compliant access to
Chris@16 38 * these memory-allocation routines.
Chris@16 39 */
Chris@16 40 # define BOOST_MPI_HAS_MEMORY_ALLOCATION
Chris@16 41
Chris@16 42 /** @brief Determine if the MPI implementation has supports initialization
Chris@16 43 * without command-line arguments.
Chris@16 44 *
Chris@16 45 * This macro will be defined when the underlying implementation
Chris@16 46 * supports initialization of MPI without passing along command-line
Chris@16 47 * arguments, e.g., @c MPI_Init(NULL, NULL). When defined, the @c
Chris@16 48 * environment class will provide a default constructor. This macro is
Chris@16 49 * always defined for MPI-2 implementations. */
Chris@16 50 # define BOOST_MPI_HAS_NOARG_INITIALIZATION
Chris@16 51 #else
Chris@16 52 // If this is an MPI-1.x implementation, no arg initialization for
Chris@16 53 // mpi environement could still be available, but not mandatory.
Chris@16 54 // Undef this if no arg init is available:
Chris@16 55 //# define BOOST_MPI_HAS_NOARG_INITIALIZATION
Chris@16 56 #endif
Chris@16 57
Chris@16 58 #if defined(MPIAPI)
Chris@16 59 # define BOOST_MPI_CALLING_CONVENTION MPIAPI
Chris@16 60 #else
Chris@16 61 /** @brief Specifies the calling convention that will be used for callbacks
Chris@16 62 * from the underlying C MPI.
Chris@16 63 *
Chris@16 64 * This is a Windows-specific macro, which will be used internally to state
Chris@16 65 * the calling convention of any function that is to be used as a callback
Chris@16 66 * from MPI. For example, the internally-defined functions that are used in
Chris@16 67 * a call to @c MPI_Op_create. This macro is likely only to be useful to
Chris@16 68 * users that wish to bypass Boost.MPI, registering their own callbacks in
Chris@16 69 * certain cases, e.g., through @c MPI_Op_create.
Chris@16 70 */
Chris@16 71 # define BOOST_MPI_CALLING_CONVENTION
Chris@16 72 #endif
Chris@16 73
Chris@16 74 #if defined(LAM_MPI)
Chris@16 75 // Configuration for LAM/MPI
Chris@16 76 # define BOOST_MPI_HAS_MEMORY_ALLOCATION
Chris@16 77 # define BOOST_MPI_HAS_NOARG_INITIALIZATION
Chris@16 78 #elif defined(MPICH_NAME)
Chris@16 79 // Configuration for MPICH
Chris@16 80 #endif
Chris@16 81
Chris@16 82 /*****************************************************************************
Chris@16 83 * *
Chris@16 84 * DLL import/export options *
Chris@16 85 * *
Chris@16 86 *****************************************************************************/
Chris@16 87
Chris@101 88 #if (defined(BOOST_MPI_DYN_LINK) || defined(BOOST_ALL_DYN_LINK)) && !defined(BOOST_MPI_STATIC_LINK)
Chris@16 89 # if defined(BOOST_MPI_SOURCE)
Chris@101 90 # define BOOST_MPI_DECL BOOST_SYMBOL_EXPORT
Chris@16 91 # define BOOST_MPI_BUILD_DLL
Chris@16 92 # else
Chris@101 93 # define BOOST_MPI_DECL BOOST_SYMBOL_IMPORT
Chris@16 94 # endif
Chris@16 95 #endif
Chris@16 96
Chris@16 97 #ifndef BOOST_MPI_DECL
Chris@16 98 # define BOOST_MPI_DECL
Chris@16 99 #endif
Chris@16 100
Chris@16 101 #if !defined(BOOST_MPI_NO_LIB) && !defined(BOOST_MPI_SOURCE) && !defined(BOOST_ALL_NO_LIB) && defined(__cplusplus)
Chris@16 102 # define BOOST_LIB_NAME boost_mpi
Chris@16 103 # if defined(BOOST_MPI_DYN_LINK) || defined(BOOST_ALL_DYN_LINK)
Chris@16 104 # define BOOST_DYN_LINK
Chris@16 105 # endif
Chris@16 106 # ifdef BOOST_MPI_DIAG
Chris@16 107 # define BOOST_LIB_DIAGNOSTIC
Chris@16 108 # endif
Chris@16 109 # include <boost/config/auto_link.hpp>
Chris@16 110 #endif
Chris@16 111
Chris@16 112 #endif // BOOST_MPI_CONFIG_HPP