X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fcompiler.h;h=372f571d9d7dd1fa5e0fb4a15d87bf2d2fef8cee;hb=57a3b0fd1e0af0eb032bb426655a3af037cf5f01;hp=5f02adb27bfeccab9c550d19e7094585e1acc624;hpb=aefe9bc11682f39b3936b9f01a0d37e9d6428078;p=simgear.git diff --git a/simgear/compiler.h b/simgear/compiler.h index 5f02adb2..372f571d 100644 --- a/simgear/compiler.h +++ b/simgear/compiler.h @@ -63,7 +63,14 @@ # if _MSC_VER >= 1200 // msvc++ 6.0 or greater # define isnan _isnan # define snprintf _snprintf +# if _MSC_VER < 1500 +# define vsnprintf _vsnprintf +# endif # define copysign _copysign +# define strcasecmp stricmp + +# undef min +# undef max # pragma warning(disable: 4786) // identifier was truncated to '255' characters # pragma warning(disable: 4244) // conversion from double to float @@ -102,6 +109,7 @@ #if defined (__sun) +# define SG_UNIX # include # include # if defined ( __cplusplus ) @@ -131,8 +139,10 @@ // #ifdef __APPLE__ +# define SG_MAC +# define SG_UNIX # ifdef __GNUC__ -# if ( __GNUC__ >= 3 ) && ( __GNUC_MINOR__ >= 3 ) +# if ( __GNUC__ > 3 ) || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 3 ) inline int (isnan)(double r) { return !(r <= 0 || r >= 0); } # else // any C++ header file undefines isinf and isnan @@ -147,6 +157,8 @@ inline int (isnan)(double r) { return !(r <= 0 || r >= 0); } #endif #if defined (__FreeBSD__) +# define SG_UNIX +#include # if __FreeBSD_version < 500000 extern "C" { inline int isnan(double r) { return !(r <= 0 || r >= 0); } @@ -155,13 +167,19 @@ inline int (isnan)(double r) { return !(r <= 0 || r >= 0); } #endif #if defined (__CYGWIN__) +# define SG_WINDOWS +# define SG_UNIX # include // isnan #endif -#if defined(__MINGW32__) -# define isnan(x) _isnan(x) +// includes both MSVC and mingw compilers +#if defined(_WIN32) || defined(__WIN32__) +# define SG_WINDOWS #endif +#if defined(__linux__) || defined(_AIX) || defined ( sgi ) +# define SG_UNIX +#endif // // No user modifiable definitions beyond here.