# define STL_STRSTREAM <strstream>
# endif
-# elif __GNUC__ == 3
+# elif __GNUC__ >= 3
// g++-3.0.x
# define SG_EXPLICIT_FUNCTION_TMPL_ARGS
# define SG_NEED_AUTO_PTR
#endif // __GNUC__
-#if defined( __MINGW32__ )
-# define bcopy(from, to, n) memcpy(to, from, n)
-# define FG_MEM_COPY(to,from,n) memcpy(to, from, n)
-# define snprintf _snprintf
-#endif
-
/* KAI C++ */
#if defined(__KCC)
# define STL_STRING <string>
# define STL_STRSTREAM <strstream>
+# define isnan _isnan
# define snprintf _snprintf
# pragma warning(disable: 4786) // identifier was truncated to '255' characters
#endif // Native SGI compilers
-#if defined ( sun )
+#if defined (__sun)
# include <strings.h>
# include <memory.h>
# if defined ( __cplusplus )
extern void *memmove(void *, const void *, size_t);
# endif // __cplusplus
-# define SG_COMPILER_STR "Sun compiler version " SG_STRINGIZE(__SUNPRO_CC)
+# if !defined( __GNUC__ )
+# define SG_COMPILER_STR "Sun compiler version " SG_STRINGIZE(__SUNPRO_CC)
+# endif
#endif // sun
#endif // __ICC
+//
+// Platform dependent gl.h and glut.h definitions
+//
+
+#ifdef __APPLE__
+# define SG_GL_H <OpenGL/gl.h>
+# define SG_GLX_H <AGL/agl.h>
+# define SG_GLU_H <OpenGL/glu.h>
+# define SG_GLEXT_H <OpenGL/glext.h>
+# define SG_GLUT_H <GLUT/glut.h>
+
+inline int (isnan)(double r) { return !(r <= 0 || r >= 0); }
+#else
+# define SG_GL_H <GL/gl.h>
+# define SG_GLX_H <GL/glx.h>
+# define SG_GLU_H <GL/glu.h>
+# define SG_GLEXT_H <GL/glext.h>
+# define SG_GLUT_H <GL/glut.h>
+#endif
+
+
//
// No user modifiable definitions beyond here.
//
#endif // SG_INCOMPLETE_FUNCTIONAL
#endif // _SG_COMPILER_H
+