]> git.mxchange.org Git - simgear.git/commitdiff
MINGW patch from BenoƮt Laniel
authorfredb <fredb>
Sat, 23 Jan 2010 11:40:02 +0000 (11:40 +0000)
committerTim Moore <timoore33@gmail.com>
Mon, 25 Jan 2010 13:35:45 +0000 (14:35 +0100)
29 files changed:
configure.ac
projects/VC90/SimGear.vcproj
simgear/Makefile.am
simgear/compiler.h
simgear/debug/logstream.cxx
simgear/debug/logstream.hxx
simgear/environment/metar.cxx
simgear/io/Makefile.am
simgear/io/sg_file.cxx
simgear/io/socktest.cxx
simgear/math/SGVec2.hxx
simgear/misc/sg_path.cxx
simgear/nasal/code.c
simgear/nasal/iolib.c
simgear/scene/material/matlib.cxx
simgear/scene/sky/cloud.cxx
simgear/scene/sky/cloudfield.cxx
simgear/scene/sky/sphere.cxx
simgear/scene/sky/stars.cxx
simgear/screen/GLBitmaps.cxx
simgear/screen/RenderTexture.cpp
simgear/screen/extensions.hxx
simgear/screen/screen-dump.cxx
simgear/serial/serial.cxx
simgear/serial/serial.hxx
simgear/sound/openal_test1.cxx
simgear/structure/SGAtomic.hxx
simgear/threads/Makefile.am
simgear/timing/timestamp.cxx

index 6813d11e8e99d5f1e412627d87f44fe925f5829e..d2caab5ab9a8999c47fadcbdd1c33a8a3e9d3bc4 100644 (file)
@@ -34,6 +34,7 @@ AC_PROG_MAKE_SET
 AC_PROG_CC
 AC_PROG_CPP
 AC_PROG_CXX
+AC_PROG_CXXCPP
 AC_PROG_RANLIB
 AC_PROG_INSTALL
 AC_PROG_LN_S
@@ -301,7 +302,7 @@ case "${host}" in
     dnl CygWin under Windoze.
     INCLUDES="$INCLUDES -I/usr/local/include/"
     LIBS="$LIBS -L/usr/local/lib"
-    AC_SEARCH_LIBS(alGenBuffers, [ openal32 openal ] )
+    AC_SEARCH_LIBS(alGenBuffers, [ openal32 openal 'openal -ldsound -lwinmm' ] )
     AC_SEARCH_LIBS(alutInit, [ openal32 ALut alut ] )
     LIBS="$LIBS -lwinmm -ldsound -ldxguid -lole32"
     openal_LIBS="$LIBS"
index ec903b1328df0a6ac61cbe69795ebc8655c6f787..b8437fc081fa2600b2251ce3828f3be6f785b138 100644 (file)
                                >
                        </File>
                </Filter>
+               <File
+                       RelativePath="..\..\simgear\compiler.h"
+                       >
+               </File>
                <File
                        RelativePath="..\..\simgear\simgear_config.h-msvc90"
                        >
index 44e28bb1b1c9db61e86f4c246d8485a25b0f8211..de98c035aaa3db6359633d213f2427eb13703ced 100644 (file)
@@ -1,9 +1,3 @@
-if HAVE_THREADS
-SGTHREAD_DIR = threads
-else
-SGTHREAD_DIR = 
-endif
-
 # METAR_DIRS =
 METAR_DIRS = environment
 
@@ -31,7 +25,7 @@ SUBDIRS = \
        screen \
        serial \
        sound \
-       $(SGTHREAD_DIR) \
+       threads \
        timing
 
 DIST_SUBDIRS = $(SUBDIRS) compatibility
index eca95fe5274a4139052bf9cc4473b42cefd4ce86..939d9f319c6ad18b2942f7125ebd7fc6504688e4 100644 (file)
@@ -63,6 +63,9 @@
 #  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
 
 #    pragma warning(disable: 4786) // identifier was truncated to '255' characters
@@ -158,10 +161,6 @@ inline int (isnan)(double r) { return !(r <= 0 || r >= 0); }
 #  include <ieeefp.h>          // isnan
 #endif
 
-#if defined(__MINGW32__)
-#  define isnan(x) _isnan(x)
-#endif
-
 
 //
 // No user modifiable definitions beyond here.
index d906679e88ae1efa19194094ce6a146e539f0b6f..664038b93a713e57ebcfb368ca0ea5407e236dba 100644 (file)
@@ -27,7 +27,7 @@
 logstream *logstream::global_logstream = 0;
 
 bool            logbuf::logging_enabled = true;
-#ifdef _MSC_VER
+#ifdef _WIN32
    bool         logbuf::has_console = true;
 #endif
 sgDebugClass    logbuf::logClass        = SG_NONE;
index c2a5edc5b6d7110b5fc68462ae75f602c8384e78..d3649a4a21b3cf5912dd20778d9daf39abb37b5b 100644 (file)
@@ -27,7 +27,7 @@
 
 #include <simgear/compiler.h>
 
-#ifdef _MSC_VER
+#ifdef _WIN32
 #  include <windows.h>
 #endif
 
@@ -123,7 +123,7 @@ public:
      */
     void set_sb( std::streambuf* sb );
 
-#ifdef _MSC_VER
+#ifdef _WIN32
     static void has_no_console() { has_console = false; }
 #endif
 
@@ -142,7 +142,7 @@ private:
     static std::streambuf* sbuf;
 
     static bool logging_enabled;
-#ifdef _MSC_VER
+#ifdef _WIN32
     static bool has_console;
 #endif
     static sgDebugClass logClass;
@@ -176,7 +176,7 @@ logbuf::would_log( sgDebugClass c, sgDebugPriority p ) const
 inline logbuf::int_type
 logbuf::overflow( int c )
 {
-#ifdef _MSC_VER
+#ifdef _WIN32
     if ( logging_enabled ) {
         if ( !has_console ) {
             AllocConsole();
index ecda2c9b7140bf9d9d45f0c010d72dbacf0ee9a2..79401e39419d3680ae0495f1d68b34da42cfb987 100644 (file)
@@ -159,7 +159,7 @@ void SGMetar::useCurrentDate()
 {
        struct tm now;
        time_t now_sec = time(0);
-#if defined( _MSC_VER ) || defined ( __MINGW32__ )
+#ifdef _WIN32
        now = *gmtime(&now_sec);
 #else
        gmtime_r(&now_sec, &now);
index d51e287ad379979fefe7699b0551c44848f07c50..05b80db23f5619893179ceada3220054cbce8e23 100644 (file)
@@ -71,7 +71,7 @@ socktest_LDADD = \
        $(top_builddir)/simgear/debug/libsgdebug.a \
        $(top_builddir)/simgear/bucket/libsgbucket.a \
        $(top_builddir)/simgear/misc/libsgmisc.a \
-        $(socktest_PLIB_LIBS) -lz
+        $(socktest_PLIB_LIBS) -lz \
        $(network_LIBS) \
        $(base_LIBS) 
 
index bbfc324707b4d132ec8344f1719df9bbf218900f..67fbda3eb9547f107a768cfaf64791a228a94742 100644 (file)
@@ -25,7 +25,7 @@
 
 #include <string>
 
-#if defined(_MSC_VER) || defined(__MINGW32__)
+#ifdef _WIN32
 #  include <io.h>
 #endif
 
@@ -55,7 +55,7 @@ bool SGFile::open( const SGProtocolDir d ) {
     set_dir( d );
 
     if ( get_dir() == SG_IO_OUT ) {
-#if defined(_MSC_VER) || defined(__MINGW32__)
+#ifdef _WIN32
         int mode = 00666;
 #else
         mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
index 83adfd2742cc22be9a5fbd2628d62b051c298323..9a4f0cfe7450ad666f2debbda90ac45c88bbcb8a 100644 (file)
@@ -4,7 +4,12 @@
 
 #include <simgear/compiler.h>
 
+#ifdef _WIN32
+#include <windows.h>
+#define sleep(x) Sleep(x*1000)
+#else
 #include <unistd.h>
+#endif
 #include <iostream>
 
 #include "sg_socket.hxx"
@@ -44,10 +49,6 @@ int main() {
        if ( s.readline( buf, 256 ) > 0 ) {
            cout << "result = " << buf;
        }
-#ifdef __MINGW32__
-       Sleep(100);
-#else
        sleep(1);
-#endif
     }
 }
index 65c802ea3912ac5af7b18e7b7fdf332768b12f66..2a40564145c39e68ad13426a4b556f92a0ad6506 100644 (file)
 #ifndef SGVec2_H
 #define SGVec2_H
 
-#if defined ( __CYGWIN__ )
-#include <ieeefp.h>
-#endif
-
 #ifndef NO_OPENSCENEGRAPH_INTERFACE
 #include <osg/Vec2f>
 #include <osg/Vec2d>
index 6055becd8810bcb81caca3f362677a2daa66ae7f..8e34c98705a02a012dac085cd7158b3d31bebfe1 100644 (file)
@@ -29,7 +29,7 @@
 #include <stdio.h>
 #include <sys/stat.h>
 #include <sys/stat.h>
-#if defined( _MSC_VER) || defined(__MINGW32__)
+#ifdef _WIN32
 #  include <direct.h>
 #endif
 #include "sg_path.hxx"
@@ -42,7 +42,7 @@
 static const char sgDirPathSep = '/';
 static const char sgDirPathSepBad = '\\';
 
-#if defined( WIN32 ) && !defined(__CYGWIN__)
+#ifdef _WIN32
 static const char sgSearchPathSep = ';';
 #else
 static const char sgSearchPathSep = ':';
@@ -181,7 +181,7 @@ bool SGPath::exists() const {
     return true;
 }
 
-#if defined( _MSC_VER) || defined(__MINGW32__)
+#ifdef _WIN32
 #  define sgMkDir(d,m)       _mkdir(d)
 #else
 #  define sgMkDir(d,m)       mkdir(d,m)
@@ -199,7 +199,7 @@ int SGPath::create_dir( mode_t mode ) {
     unsigned int i = 1;
     SGPath dir = absolute ? string( 1, sgDirPathSep ) : "";
     dir.concat( path_elements[0] );
-#if defined( _MSC_VER) || defined(__MINGW32__)
+#ifdef _WIN32
     if ( dir.str().find(':') != string::npos && path_elements.size() >= 2 ) {
         dir.append( path_elements[1] );
         i = 2;
index cf48dc295770eeb9ad4e886eaecc45af6636c9a3..e58f7ecb96cc101ebef61d1e621a437e17e851bc 100644 (file)
@@ -20,10 +20,6 @@ void printOpDEBUG(int ip, int op);
 void printStackDEBUG(naContext ctx);
 ////////////////////////////////////////////////////////////////////////
 
-#ifdef _MSC_VER
-#define vsnprintf _vsnprintf
-#endif
-
 struct Globals* globals = 0;
 
 static naRef bindFunction(naContext ctx, struct Frame* f, naRef code);
index 37b6dd50efd5e71e63f73d6dea2a0eb2b788a970..b4dbc93df7f1110b6af8bb4cb53dbf1c5f9d9dca 100644 (file)
@@ -195,14 +195,16 @@ static naRef f_readln(naContext ctx, naRef me, int argc, naRef* args)
     return result;
 }
 
+#ifdef _WIN32
+#define S_ISLNK(m) 0
+#define S_ISSOCK(m) 0
+#endif
 #ifdef _MSC_VER
 #define S_ISREG(m) (((m)&_S_IFMT)==_S_IFREG)
 #define S_ISDIR(m) (((m)&_S_IFMT)==_S_IFDIR)
 #define S_ISCHR(m) (((m)&_S_IFMT)==_S_IFCHR)
 #define S_ISFIFO(m) (((m)&_S_IFMT)==_S_IFIFO)
 #define S_ISBLK(m) 0
-#define S_ISLNK(m) 0
-#define S_ISSOCK(m) 0
 typedef unsigned short mode_t;
 #endif
 static naRef ftype(naContext ctx, mode_t m)
index f82cb2599d955ba2eb6b902e39ebdfd788710720..5de7e01c75d9e227d8fb989370f7049a2b7e5272 100644 (file)
 #  include <simgear_config.h>
 #endif
 
-#if defined ( __CYGWIN__ )
-#include <ieeefp.h>
-#endif
-
 #include <simgear/compiler.h>
 #include <simgear/constants.h>
 #include <simgear/structure/exception.hxx>
index 68e41deb2b3c98eab8113c8afa5d8915476da126..e534a37a917a27a0a1f888ebca441ece3808237e 100644 (file)
@@ -75,10 +75,6 @@ using namespace osg;
 // #  endif
 // #endif
 
-#if defined (__CYGWIN__)
-#include <ieeefp.h>
-#endif
-
 static osg::ref_ptr<osg::StateSet> layer_states[SGCloudLayer::SG_MAX_CLOUD_COVERAGES];
 static osg::ref_ptr<osg::StateSet> layer_states2[SGCloudLayer::SG_MAX_CLOUD_COVERAGES];
 static osg::ref_ptr<osg::TextureCubeMap> cubeMap;
index 013efe1610c91ca408924a850799f7e6b0c3f0a4..829a55852996ced6aaef997eb1800ac22d6ee53c 100644 (file)
@@ -63,10 +63,6 @@ using std::vector;
 using namespace simgear;
 
 
-#if defined (__CYGWIN__)
-#include <ieeefp.h>
-#endif
-
 float SGCloudField::fieldSize = 50000.0f;
 double SGCloudField::timer_dt = 0.0;
 float SGCloudField::view_distance = 20000.0f;
index cee7ef415a11fc7660fd6e56928ae5753727b4b6..c41dd9b36ffb46298590c5dc47b1a00a8bdd2be9 100644 (file)
 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 //
 // $Id$
-#ifdef __CYGWIN__
-#include <ieeefp.h>
-#endif
-
 
 #include <simgear/compiler.h>
 #include <simgear/constants.h>
index 32b8244f766403688b182f4a9c59cc880fb3e17e..d4611e01ec91789bdfe2cd97792223dc44c59dda 100644 (file)
 #  include <simgear_config.h>
 #endif
 
-#ifdef __CYGWIN__
-#include <ieeefp.h>
-#endif
-
 #include <simgear/compiler.h>
 #include <simgear/constants.h>
 #include <simgear/debug/logstream.hxx>
index 05f61553df646d24eddf1ccbc395379aeef2f487..30b6e12b1eabde076492c29e2b8c5f935233ba85 100755 (executable)
@@ -2,11 +2,7 @@
 #  include <simgear_config.h>
 #endif
 
-#if defined(__CYGWIN__)  /* && !defined(USING_X) */
-#define WIN32
-#endif
-
-#if defined(WIN32)  /* MINGW and MSC predefine WIN32 */
+#ifdef WIN32
 # include <windows.h>
 #endif
 
index 0b2b63590283de24ef72dfa71f2c3c92a74a8a3f..ad594117edfefbe1049ab4a41aea54e0da8b9933 100644 (file)
@@ -39,9 +39,6 @@
 * Implementation of class RenderTexture.  A multi-format render to 
 * texture wrapper.
 */
-#ifdef _MSC_VER
-#pragma warning(disable:4786)
-#endif
 
 /*
  * Changelog:
@@ -339,11 +336,7 @@ void PrintExtensionError( const char* strMsg, ... )
     char strBuffer[512];
     va_list args;
     va_start(args, strMsg);
-#if defined _WIN32 && !defined __CYGWIN__
-    _vsnprintf( strBuffer, 512, strMsg, args );
-#else
     vsnprintf( strBuffer, 512, strMsg, args );
-#endif
     va_end(args);
     
     SG_LOG(SG_GL, SG_ALERT, strMsg);
@@ -1055,11 +1048,7 @@ bool RenderTexture::Reset(const char *strMode, ...)
     va_list args;
     char strBuffer[256];
     va_start(args,strMode);
-#if defined _WIN32 && !defined __CYGWIN__
-    _vsnprintf( strBuffer, 256, strMode, args );
-#else
     vsnprintf( strBuffer, 256, strMode, args );
-#endif
     va_end(args);
 
     _ParseModeString(strBuffer, _pixelFormatAttribs, _pbufferAttribs);
index c58f441605f0c891b04cc9f28368e42ecebfa450..d7999bc62cc0d1d0627dd47e8811b467e2405071 100644 (file)
 #ifndef __SG_EXTENSIONS_HXX
 #define __SG_EXTENSIONS_HXX 1
 
-#if defined(__CYGWIN__) && !defined(WIN32) /* && !defined(USING_X) */
-#define WIN32
-#endif
-
-#if defined(WIN32)  /* MINGW and MSC predefine WIN32 */
+#ifdef WIN32
 # include <windows.h>
 #endif
 
index e4e97106b12934ab94fa15a2885f1ff62607fbb9..5ba9f9efa5142afae684d81e8e04dc6884484bf1 100644 (file)
 #  include <simgear_config.h>
 #endif
 
-#if defined(__CYGWIN__)  /* && !defined(USING_X) */
-#define WIN32
-#endif
-
-#if defined(WIN32)  /* MINGW and MSC predefine WIN32 */
+#ifdef WIN32
 # include <windows.h>
 #endif
 
index 2d273090803165e24ac4ebe7e599301a49f3b270..985cc8755e47c4761a2feafb83b0f471c3010896 100644 (file)
@@ -26,7 +26,7 @@
 #include <iostream>
 #include <cerrno>
 
-#if !defined( WIN32 ) || defined( __CYGWIN__) || defined( __CYGWIN32__ )
+#ifndef _WIN32
 #  include <termios.h>
 #  include <sys/types.h>
 #  include <sys/stat.h>
@@ -60,7 +60,7 @@ SGSerialPort::~SGSerialPort() {
 
 bool SGSerialPort::open_port(const string& device) {
 
-#if defined( WIN32 ) && !defined( __CYGWIN__) && !defined( __CYGWIN32__ )
+#ifdef _WIN32
 
     fd = CreateFile( device.c_str(),
         GENERIC_READ | GENERIC_WRITE,
@@ -147,7 +147,7 @@ bool SGSerialPort::open_port(const string& device) {
 
 
 bool SGSerialPort::close_port() {
-#if defined( WIN32 ) && !defined( __CYGWIN__) && !defined( __CYGWIN32__ )
+#ifdef _WIN32
     CloseHandle( fd );
 #else
     close(fd);
@@ -161,7 +161,7 @@ bool SGSerialPort::close_port() {
 
 bool SGSerialPort::set_baud(int baud) {
 
-#if defined( WIN32 ) && !defined( __CYGWIN__) && !defined( __CYGWIN32__ )
+#ifdef _WIN32
 
     DCB dcb;
     if ( GetCommState( fd, &dcb ) ) {
@@ -274,7 +274,7 @@ string SGSerialPort::read_port() {
     char buffer[max_count+1];
     string result;
 
-#if defined( WIN32 ) && !defined( __CYGWIN__) && !defined( __CYGWIN32__ )
+#ifdef _WIN32
 
     DWORD count;
     if ( ReadFile( fd, buffer, max_count, &count, 0 ) ) {
@@ -326,7 +326,7 @@ string SGSerialPort::read_port() {
 
 int SGSerialPort::read_port(char *buf, int len) {
 
-#if defined( WIN32 ) && !defined( __CYGWIN__) && !defined( __CYGWIN32__ )
+#ifdef _WIN32
 
     DWORD count;
     if ( ReadFile( fd, buf, len, &count, 0 ) ) {
@@ -383,7 +383,7 @@ int SGSerialPort::read_port(char *buf, int len) {
 
 int SGSerialPort::write_port(const string& value) {
 
-#if defined( WIN32 ) && !defined( __CYGWIN__) && !defined( __CYGWIN32__ )
+#ifdef _WIN32
 
     LPCVOID lpBuffer = value.data();
     DWORD nNumberOfBytesToWrite = value.length();
@@ -457,7 +457,7 @@ int SGSerialPort::write_port(const string& value) {
 
 
 int SGSerialPort::write_port(const char* buf, int len) {
-#if defined( WIN32 ) && !defined( __CYGWIN__) && !defined( __CYGWIN32__ )
+#ifdef _WIN32
 
     LPCVOID lpBuffer = buf;
     DWORD nNumberOfBytesToWrite = len;
index 83cc60085fc7150a69aedc851fb346aecb4974af..6e9ec8dd0a5c355e9330c3bc21d942e96a022eaf 100644 (file)
@@ -32,7 +32,7 @@
 # error This library requires C++
 #endif
 
-#if defined( WIN32 ) && !defined( __CYGWIN__) && !defined( __CYGWIN32__ )
+#ifdef _WIN32
 #  include <windows.h>
 #endif
 
@@ -49,7 +49,7 @@ using std::string;
  */
 class SGSerialPort
 {
-#if defined( WIN32 ) && !defined( __CYGWIN__) && !defined( __CYGWIN32__ )
+#ifdef  _WIN32
     typedef HANDLE fd_type;
 #else
     typedef int fd_type;
index 66678f8b353be80af8aec366ff5b18a7ea337152..e563753a9e5e9c785e6d8bd1b99de23df34e52d1 100644 (file)
@@ -1,9 +1,8 @@
 #include <stdio.h>
 
-#ifdef __MINGW32__
-// This is broken, but allows the file to compile without a POSIX
-// environment.
-static unsigned int sleep(unsigned int secs) { return 0; }
+#ifdef _WIN32
+#include <windows.h>
+#define sleep(x) Sleep(x*1000)
 #else
 #include <unistd.h>    // sleep()
 #endif
index a7977fc31408483332cb004c026a59bd6cbb2d3c..d4611d11c078c0e8c5ef3cbb6332d68047d7ffad 100644 (file)
@@ -28,7 +28,7 @@
 #elif defined(__sgi) && defined(_COMPILER_VERSION) && (_COMPILER_VERSION>=730)
 // No need to include something. Is a Compiler API ...
 # define SGATOMIC_USE_MIPSPRO_BUILTINS
-#elif defined(WIN32)  && !defined ( __CYGWIN__ )
+#elif defined(_WIN32)
 # include <windows.h>
 # define SGATOMIC_USE_WIN32_INTERLOCKED
 #else
index 1672b28797321c6ad7ee393b2677d2175bdfe1ea..86af31af0a0ce3e7f3e58415afb057d1ad384c7c 100644 (file)
@@ -1,5 +1,6 @@
 includedir = @includedir@/threads
 
+if HAVE_THREADS
 lib_LIBRARIES = libsgthreads.a
 
 include_HEADERS = \
@@ -11,3 +12,6 @@ libsgthreads_a_SOURCES = \
        SGThread.cxx
 
 INCLUDES = -I$(top_srcdir)
+else
+include_HEADERS = SGQueue.hxx
+endif
index 7f7773f490174a7d1587e7ba990b450524428772..bfed66446da1df1c972c6c84e94c365f90d4546c 100644 (file)
@@ -59,7 +59,7 @@
 #include "timestamp.hxx"
 
 void SGTimeStamp::stamp() {
-#if defined( WIN32 ) && !defined(__CYGWIN__)
+#ifdef _WIN32
     unsigned int t;
     t = timeGetTime();
     _sec = t / 1000;