X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fcompiler.h;h=5f02adb27bfeccab9c550d19e7094585e1acc624;hb=aefe9bc11682f39b3936b9f01a0d37e9d6428078;hp=beb409fdacfcec62cba97001a27708393fdc2925;hpb=733e6fa14ff507a1022ecab8d55cc9bf587bee40;p=simgear.git diff --git a/simgear/compiler.h b/simgear/compiler.h index beb409fd..5f02adb2 100644 --- a/simgear/compiler.h +++ b/simgear/compiler.h @@ -131,20 +131,35 @@ // #ifdef __APPLE__ -# define SG_GL_H -# define SG_GLX_H -# define SG_GLU_H -# define SG_GLEXT_H -# define SG_GLUT_H +# ifdef __GNUC__ +# if ( __GNUC__ >= 3 ) && ( __GNUC_MINOR__ >= 3 ) +inline int (isnan)(double r) { return !(r <= 0 || r >= 0); } +# else + // any C++ header file undefines isinf and isnan + // so this should be included before + // the functions are STILL in libm (libSystem on mac os x) +extern "C" int (isnan)(double); +extern "C" int (isinf)(double); +# endif +# else +inline int (isnan)(double r) { return !(r <= 0 || r >= 0); } +# endif +#endif + +#if defined (__FreeBSD__) +# if __FreeBSD_version < 500000 + extern "C" { + inline int isnan(double r) { return !(r <= 0 || r >= 0); } + } +# endif +#endif +#if defined (__CYGWIN__) +# include // isnan +#endif -inline int (isnan)(double r) { return !(r <= 0 || r >= 0); } -#else -# define SG_GL_H -# define SG_GLX_H -# define SG_GLU_H -# define SG_GLEXT_H -# define SG_GLUT_H +#if defined(__MINGW32__) +# define isnan(x) _isnan(x) #endif @@ -152,10 +167,5 @@ inline int (isnan)(double r) { return !(r <= 0 || r >= 0); } // No user modifiable definitions beyond here. // -/** \def SG_USING_STD(x) - * Expands to using std::X - */ -# define SG_USING_STD(X) using std::X - #endif // _SG_COMPILER_H