]> git.mxchange.org Git - simgear.git/blobdiff - simgear/compiler.h
Modified Files:
[simgear.git] / simgear / compiler.h
index 9d6136f27f0cfee7136e7b12ca76fb6913bcaec4..40bb0855ef6244ac99fc61c86acb136fa5b4e80e 100644 (file)
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Library General Public License for more details.
  *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA  02111-1307, USA.
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  *
  * $Id$
  *
 #      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
 #      define STL_STDEXCEPT  <stdexcept>
 #      define STL_STRING     <string>
 #      define STL_STRSTREAM  <strstream>
-
 #  else
 #    error Time to upgrade. GNU compilers < 2.7 not supported
 #  endif
 
 #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)
-#endif
-
 /* KAI C++ */
 #if defined(__KCC)
 
 #  define bcopy(from, to, n) memcpy(to, from, n)
 #  define FG_MEM_COPY(to,from,n) memcpy(to, from, n)
 
-#  if _MSC_VER == 1200  // msvc++ 6.0
+#  if _MSC_VER >= 1200  // msvc++ 6.0 or greater
 #    define SG_NAMESPACES
 #    define SG_HAVE_STD
 #    define SG_HAVE_STD_INCLUDES
 #    define STL_STRING     <string>
 #    define STL_STRSTREAM  <strstream>
 
-#    define SG_NO_INCLASS_MEMBER_INITIALIZATION
-
-// disable min/max macros if defined:
-// #    ifdef min
-// #      undef min
-// #    endif
-// #    ifdef max
-// #      undef max
-// #    endif
-// #    ifndef NOMINMAX
-// #      define NOMINMAX
-// #    endif
+#    define isnan _isnan
+#    define snprintf _snprintf
 
 #    pragma warning(disable: 4786) // identifier was truncated to '255' characters
 #    pragma warning(disable: 4244) // conversion from double to float
 #  define SG_HAVE_NATIVE_SGI_COMPILERS
 
 #  define SG_EXPLICIT_FUNCTION_TMPL_ARGS
+#  define SG_CLASS_PARTIAL_SPECIALIZATION
 #  define SG_NEED_AUTO_PTR
 #  define SG_MEMBER_TEMPLATES
 #  define SG_NAMESPACES
 #  define SG_HAVE_STD
-#  define SG_CLASS_PARTIAL_SPECIALIZATION
+#  define SG_HAVE_STREAMBUF
 #  define SG_HAVE_TRAITS
+#  define SG_HAVE_STD_INCLUDES
 
 #  define STL_ALGORITHM  <algorithm>
 #  define STL_FUNCTIONAL <functional>
-#  define STL_IOMANIP    <iomanip.h>
-#  define STL_IOSTREAM   <iostream.h>
-#  define STL_ITERATOR   <iterator.h>
-#  define STL_FSTREAM    <fstream.h>
+#  define STL_IOMANIP    <iomanip>
+#  define STL_IOSTREAM   <iostream>
+#  define STL_ITERATOR   <iterator>
+#  define STL_FSTREAM    <fstream>
 #  define STL_STDEXCEPT  <stdexcept>
+#if (_COMPILER_VERSION < 740)
+#  define STL_STRING     <irix_string>
+#else
 #  define STL_STRING     <string>
-#  define STL_STRSTREAM  <strstream.h>
-
-// #  define __STL_FUNCTION_TMPL_PARTIAL_ORDER
-// typedef void PFNGLPOINTPARAMETERFEXTPROC
-
-#define glPointParameterfEXT   glPointParameterfSGIS
-#define glPointParameterfvEXT  glPointParameterfvSGIS
+#endif
+#  define STL_STRSTREAM  <strstream>
 
 #pragma set woff 1001,1012,1014,1116,1155,1172,1174
 #pragma set woff 1401,1460,1551,1552,1681
 
 #ifdef __cplusplus
 #pragma set woff 1682,3303
+#if (_COMPILER_VERSION >= 740)
+#  pragma set woff 3624
+#endif
 #endif
 
-#  define SG_COMPILER_STR "SGI Irix compiler version " SG_STRINGIZE(_COMPILER_VERSION)
+#  define SG_COMPILER_STR "SGI MipsPro compiler version " SG_STRINGIZE(_COMPILER_VERSION)
 
 #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
 
 //
 // Intel C++ Compiler
 //
-#if defined(__ICC)
+#if defined(__ICC) || defined (__ECC)
 #  define SG_NAMESPACES
 #  define SG_HAVE_STD
 #  define SG_HAVE_STREAMBUF
 
 #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.
 //
@@ -458,3 +467,4 @@ inline const_mem_fun_ref_t<_Ret,_Tp> mem_fun_ref(_Ret (_Tp::*__f)() const)
 #endif // SG_INCOMPLETE_FUNCTIONAL
 
 #endif // _SG_COMPILER_H
+