1 //  (C) Copyright David Abrahams 2000.
2 // Distributed under the Boost Software License, Version 1.0. (See
3 // accompanying file LICENSE_1_0.txt or copy at
4 // http://www.boost.org/LICENSE_1_0.txt)
5 //
6 //  The author gratefully acknowleges the support of Dragon Systems, Inc., in
7 //  producing this work.
8 
9 //  Revision History:
10 //  04 Mar 01  Some fixes so it will compile with Intel C++ (Dave Abrahams)
11 
12 #ifndef CONFIG_DWA052200_H_
13 # define CONFIG_DWA052200_H_
14 
15 # include <boost/config.hpp>
16 # include <boost/detail/workaround.hpp>
17 
18 # ifdef BOOST_NO_OPERATORS_IN_NAMESPACE
19    // A gcc bug forces some symbols into the global namespace
20 #  define BOOST_PYTHON_BEGIN_CONVERSION_NAMESPACE
21 #  define BOOST_PYTHON_END_CONVERSION_NAMESPACE
22 #  define BOOST_PYTHON_CONVERSION
23 #  define BOOST_PYTHON_IMPORT_CONVERSION(x) using ::x
24 # else
25 #  define BOOST_PYTHON_BEGIN_CONVERSION_NAMESPACE namespace boost { namespace python {
26 #  define BOOST_PYTHON_END_CONVERSION_NAMESPACE }} // namespace boost::python
27 #  define BOOST_PYTHON_CONVERSION boost::python
28 #  define BOOST_PYTHON_IMPORT_CONVERSION(x) void never_defined() // so we can follow the macro with a ';'
29 # endif
30 
31 # if defined(BOOST_MSVC)
32 
33 #  pragma warning (disable : 4786) // disable truncated debug symbols
34 #  pragma warning (disable : 4251) // disable exported dll function
35 #  pragma warning (disable : 4800) //'int' : forcing value to bool 'true' or 'false'
36 #  pragma warning (disable : 4275) // non dll-interface class
37 
38 # elif defined(__ICL) && __ICL < 600 // Intel C++ 5
39 
40 #  pragma warning(disable: 985) // identifier was truncated in debug information
41 
42 # endif
43 
44 // The STLport puts all of the standard 'C' library names in std (as far as the
45 // user is concerned), but without it you need a fix if you're using MSVC or
46 // Intel C++
47 # if defined(BOOST_NO_STDC_NAMESPACE)
48 #  define BOOST_CSTD_
49 # else
50 #  define BOOST_CSTD_ std
51 # endif
52 
53 /*****************************************************************************
54  *
55  *  Set up dll import/export options:
56  *
57  ****************************************************************************/
58 
59 // backwards compatibility:
60 #ifdef BOOST_PYTHON_STATIC_LIB
61 #  define BOOST_PYTHON_STATIC_LINK
62 # elif !defined(BOOST_PYTHON_DYNAMIC_LIB)
63 #  define BOOST_PYTHON_DYNAMIC_LIB
64 #endif
65 
66 #if defined(BOOST_PYTHON_DYNAMIC_LIB)
67 #  if defined(BOOST_SYMBOL_EXPORT)
68 #     if defined(BOOST_PYTHON_SOURCE)
69 #        define BOOST_PYTHON_DECL           BOOST_SYMBOL_EXPORT
70 #        define BOOST_PYTHON_DECL_FORWARD   BOOST_SYMBOL_FORWARD_EXPORT
71 #        define BOOST_PYTHON_DECL_EXCEPTION BOOST_EXCEPTION_EXPORT
72 #        define BOOST_PYTHON_BUILD_DLL
73 #     else
74 #        define BOOST_PYTHON_DECL           BOOST_SYMBOL_IMPORT
75 #        define BOOST_PYTHON_DECL_FORWARD   BOOST_SYMBOL_FORWARD_IMPORT
76 #        define BOOST_PYTHON_DECL_EXCEPTION BOOST_EXCEPTION_IMPORT
77 #     endif
78 #  endif
79 #endif
80 
81 #ifndef BOOST_PYTHON_DECL
82 #  define BOOST_PYTHON_DECL
83 #endif
84 
85 #ifndef BOOST_PYTHON_DECL_FORWARD
86 #  define BOOST_PYTHON_DECL_FORWARD
87 #endif
88 
89 #ifndef BOOST_PYTHON_DECL_EXCEPTION
90 #  define BOOST_PYTHON_DECL_EXCEPTION
91 #endif
92 
93 #if BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042))
94 // Replace broken Tru64/cxx offsetof macro
95 # define BOOST_PYTHON_OFFSETOF(s_name, s_member) \
96         ((size_t)__INTADDR__(&(((s_name *)0)->s_member)))
97 #else
98 # define BOOST_PYTHON_OFFSETOF offsetof
99 #endif
100 
101 //  enable automatic library variant selection  ------------------------------//
102 
103 #if !defined(BOOST_PYTHON_SOURCE) && !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_PYTHON_NO_LIB)
104 //
105 // Set the name of our library, this will get undef'ed by auto_link.hpp
106 // once it's done with it:
107 //
108 #define _BOOST_PYTHON_CONCAT(N, M, m) N ## M ## m
109 #define BOOST_PYTHON_CONCAT(N, M, m) _BOOST_PYTHON_CONCAT(N, M, m)
110 #define BOOST_LIB_NAME BOOST_PYTHON_CONCAT(boost_python, PY_MAJOR_VERSION, PY_MINOR_VERSION)
111 //
112 // If we're importing code from a dll, then tell auto_link.hpp about it:
113 //
114 #ifdef BOOST_PYTHON_DYNAMIC_LIB
115 #  define BOOST_DYN_LINK
116 #endif
117 //
118 // And include the header that does the work:
119 //
120 #include <boost/config/auto_link.hpp>
121 #endif  // auto-linking disabled
122 
123 #undef BOOST_PYTHON_CONCAT
124 #undef _BOOST_PYTHON_CONCAT
125 
126 #ifndef BOOST_PYTHON_NO_PY_SIGNATURES
127 #define BOOST_PYTHON_SUPPORTS_PY_SIGNATURES // enables smooth transition
128 #endif
129 
130 #if !defined(BOOST_ATTRIBUTE_UNUSED) && defined(__GNUC__) && (__GNUC__ >= 4)
131 #  define BOOST_ATTRIBUTE_UNUSED __attribute__((unused))
132 #endif
133 
134 #endif // CONFIG_DWA052200_H_
135