1 |
|
2 |
/******************************************************* |
3 |
* |
4 |
* Copyright (c) 2003-2008 by University of Queensland |
5 |
* Earth Systems Science Computational Center (ESSCC) |
6 |
* http://www.uq.edu.au/esscc |
7 |
* |
8 |
* Primary Business: Queensland, Australia |
9 |
* Licensed under the Open Software License version 3.0 |
10 |
* http://www.opensource.org/licenses/osl-3.0.php |
11 |
* |
12 |
*******************************************************/ |
13 |
|
14 |
|
15 |
/** |
16 |
\file system_dep.h |
17 |
\ingroup Other |
18 |
*/ |
19 |
// |
20 |
// @(#) system_dep.h |
21 |
// |
22 |
|
23 |
#ifndef esysutils_system_dep_h |
24 |
#define esysutils_system_dep_h |
25 |
|
26 |
#if defined(_WIN32) && defined(__INTEL_COMPILER) |
27 |
// The Intel compiler on windows has an "improved" math library compared to the usual Visual C++ one |
28 |
// In particular it has a acosh and other similar functions which aren't implemented in Visual C++ math.h |
29 |
// Note you will get a compile time error if any other header (including system ones) include math.h before mathimf.h |
30 |
// has been included. As a result system_dep.h must be included FIRST at all times (this prevents math.h from being included). |
31 |
#include <mathimf.h> |
32 |
#else |
33 |
#include <math.h> |
34 |
#endif |
35 |
|
36 |
#define ESYSUTILS_DLL_API |
37 |
|
38 |
#ifdef _WIN32 |
39 |
# ifndef INTERFACE_STATIC_LIB |
40 |
# undef ESYSUTILS_DLL_API |
41 |
# ifdef ESYSUTILS_EXPORTS |
42 |
# define ESYSUTILS_DLL_API __declspec(dllexport) |
43 |
# else |
44 |
# define ESYSUTILS_DLL_API __declspec(dllimport) |
45 |
# endif |
46 |
# endif |
47 |
|
48 |
// This is because of the different declarations of std::exception mentods |
49 |
// on windows. |
50 |
// Also, putting a "throw" in any declaration on windows causes a warning!!!!!! |
51 |
// If you wish to generate a throw() on other systems, please use |
52 |
// THROW(NO_ARG). This is because windows generates warnings if you say |
53 |
// THROW(), so the NO_ARG trick must be used to avoid the mass of warnings. |
54 |
|
55 |
# define THROW(ARG) |
56 |
#else |
57 |
# define ESYSUTILS_DLL_API |
58 |
# define THROW(ARG) throw(ARG) |
59 |
#endif |
60 |
|
61 |
#define NO_ARG |
62 |
|
63 |
#endif |