]> git.mxchange.org Git - simgear.git/commitdiff
Various changes for MingWin32 support.
authorcurt <curt>
Thu, 2 Aug 2001 22:56:33 +0000 (22:56 +0000)
committercurt <curt>
Thu, 2 Aug 2001 22:56:33 +0000 (22:56 +0000)
configure.in
simgear/compiler.h
simgear/io/sg_binobj.cxx
simgear/io/sg_file.cxx
simgear/io/sg_socket.cxx
simgear/io/sg_socket.hxx
simgear/threads/SGThread.cxx
simgear/timing/sg_time.cxx
simgear/timing/sg_time.hxx

index 732c2458f1b2bd595dde56b5586eac546179a85c..045daf47eb6425a8ca01485d09bb822ca1a65ec3 100644 (file)
@@ -77,9 +77,10 @@ if test -d /opt/X11R6 ; then
 fi
 
 if test "x$ac_cv_header_windows_h" = "xyes" ; then
+    if test -d /usr/mingw/usr ; then
+        EXTRA_DIRS="$EXTRA_DIRS /usr/mingw/usr"
+    fi
     EXTRA_DIRS="${EXTRA_DIRS} `pwd`/Win32"
-# elif test `uname -s` = "SunOS" ; then
-#   EXTRA_DIRS="${EXTRA_DIRS} `pwd`/SunOS"
 fi
 wi_EXTRA_DIRS(no, ${EXTRA_DIRS})
 
index b64e8386832aa1f55d3802835b72e6fdb2aae918..bb7e830357782455c2c213c45c670655ba9b7eda 100644 (file)
 #  endif
 #endif
 
+#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)
 
index 474a2f21502b40bdf145758b26524a69c2c6d315..ff72ea501bf2e048f0676e64fe2e5fb01914d286 100644 (file)
@@ -551,7 +551,7 @@ bool SGBinObject::write_bin( const string& base, const string& name,
 
     string dir = base + "/" + b.gen_base_path();
     string command = "mkdir -p " + dir;
-#ifdef _MSC_VER
+#if defined(_MSC_VER) || defined(__MINGW32__)
     system( (string("mkdir ") + dir).c_str() );
 #else
     system(command.c_str());
@@ -828,7 +828,7 @@ bool SGBinObject::write_ascii( const string& base, const string& name,
 
     string dir = base + "/" + b.gen_base_path();
     string command = "mkdir -p " + dir;
-#ifdef _MSC_VER
+#if defined(_MSC_VER) || defined(__MINGW32__)
     system( (string("mkdir ") + dir).c_str() );
 #else
     system(command.c_str());
index e8c7bb8e9ec7c01a0cd51e550556e1705ec02ae2..79cec7b7328bcf6dd8662ea2aa92ce8e04391fdf 100644 (file)
@@ -25,7 +25,7 @@
 
 #include STL_STRING
 
-#ifdef _MSC_VER
+#if defined(_MSC_VER) || defined(__MINGW32__)
 #  include <io.h>
 #endif
 
@@ -51,7 +51,7 @@ bool SGFile::open( const SGProtocolDir d ) {
     set_dir( d );
 
     if ( get_dir() == SG_IO_OUT ) {
-#ifdef _MSC_VER
+#if defined(_MSC_VER) || defined(__MINGW32__)
         int mode = 00666;
 #else
         mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
index 905639b91d2c01f437dbe9a01d2b9827246f5658..3fd1216820075ccc528871296891163e49e19b3f 100644 (file)
@@ -23,7 +23,7 @@
 
 #include <simgear/compiler.h>
 
-#if !defined(_MSC_VER)
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
 #  include <sys/time.h>                // select()
 #  include <sys/types.h>       // socket(), bind(), select(), accept()
 #  include <sys/socket.h>      // socket(), bind(), listen(), accept()
@@ -48,7 +48,7 @@ SGSocket::SGSocket( const string& host, const string& port,
     port_str(port),
     save_len(0)
 {
-#if defined(_MSC_VER)
+#if defined(_MSC_VER) || defined(__MINGW32__)
     if (!wsock_init && !wsastartup()) {
        SG_LOG( SG_IO, SG_ALERT, "Winsock not available");
     }
@@ -75,7 +75,7 @@ SGSocket::~SGSocket() {
 SGSocket::SocketType SGSocket::make_server_socket () {
     struct sockaddr_in name;
 
-#if defined( __CYGWIN__ ) || defined( __CYGWIN32__ ) || defined( sgi ) || defined( _MSC_VER )
+#if defined( __CYGWIN__ ) || defined( __CYGWIN32__ ) || defined( sgi ) || defined( _MSC_VER ) || defined(__MINGW32__)
     int length;
 #else
     socklen_t length;
@@ -161,7 +161,7 @@ SGSocket::SocketType SGSocket::make_client_socket () {
 
 // Wrapper functions
 size_t SGSocket::readsocket( int fd, void *buf, size_t count ) {
-#if defined(_MSC_VER)
+#if defined(_MSC_VER) || defined(__MINGW32__)
     return ::recv( fd, (char *)buf, count, 0 );
 #else
     return ::read( fd, buf, count );
@@ -169,14 +169,14 @@ size_t SGSocket::readsocket( int fd, void *buf, size_t count ) {
 }
 
 size_t SGSocket::writesocket( int fd, const void *buf, size_t count ) {
-#if defined(_MSC_VER)
+#if defined(_MSC_VER) || defined(__MINGW32__)
     return ::send( fd, (const char*)buf, count, 0 );
 #else
     return ::write( fd, buf, count );
 #endif
 }
 
-#if !defined(_MSC_VER)
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
 int SGSocket::closesocket( int fd ) {
     return ::close( fd );
 }
@@ -504,7 +504,7 @@ bool SGSocket::nonblock() {
        return 0;
     }
 
-#if defined(_MSC_VER)
+#if defined(_MSC_VER) || defined(__MINGW32__)
     u_long arg = 1;
     if (ioctlsocket( sock, FIONBIO, &arg ) != 0) {
         int error_code = WSAGetLastError();
@@ -519,7 +519,7 @@ bool SGSocket::nonblock() {
     return true;
 }
 
-#if defined(_MSC_VER)
+#if defined(_MSC_VER) || defined(__MINGW32__)
 
 bool SGSocket::wsock_init = false;
 
index 795972d8810558b568158d6fce530d8fb7b83888..ced2b2052a46018c8f0f27513ebcf7f7fcf53546 100644 (file)
@@ -41,8 +41,8 @@
 
 SG_USING_STD(string);
 
-#if defined(_MSC_VER)
-#  include <winsock.h>
+#if defined(_MSC_VER) || defined(__MINGW32__)
+#  include <winsock2.h>
 #endif
 
 #define SG_MAX_SOCKET_QUEUE 32
@@ -53,7 +53,7 @@ SG_USING_STD(string);
  */
 class SGSocket : public SGIOChannel {
 public:
-#if defined(_MSC_VER)
+#if defined(_MSC_VER) || defined(__MINGW32__)
     typedef SOCKET SocketType;
 #else
     typedef int SocketType;
@@ -83,11 +83,11 @@ private:
     // wrapper functions
     size_t readsocket( int fd, void *buf, size_t count );
     size_t writesocket( int fd, const void *buf, size_t count );
-#if !defined(_MSC_VER)
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
     int closesocket(int fd);
 #endif
 
-#if defined(_MSC_VER)
+#if defined(_MSC_VER) || defined(__MINGW32__)
     // Ensure winsock has been initialised.
     static bool wsock_init;
     static bool wsastartup();
index f7de11f7dfb69ffc4b4def88ad3e5cb3d0bcfe45..4119d7b4ab335c53d4dfa957785313c4a5db217c 100644 (file)
@@ -1,6 +1,6 @@
 #include <simgear/compiler.h>
 
-#ifdef _MSC_VER
+#if defined(_MSC_VER) || defined(__MINGW32__)
 #  include <time.h>
 #else
 #  include <sys/time.h>
index 12980c0b2d43e8e88aaea2423459274da7f7ebc3..76fb6f407eb6dbdc9e79ceb2f6640535d2edcdf5 100644 (file)
@@ -193,7 +193,7 @@ static double sidereal_course( time_t cur_time, struct tm *gmt, double lng )
 void SGTime::update( double lon, double lat, long int warp ) {
     double gst_precise, gst_course;
 
-#ifdef _MSC_VER
+#if defined(_MSC_VER) || defined(__MINGW32__)
     tm * gmt = &m_gmt;
 #endif
 
@@ -207,7 +207,7 @@ void SGTime::update( double lon, double lat, long int warp ) {
            << "  warp = " << warp );
 
     // get GMT break down for current time
-#ifdef _MSC_VER
+#if defined(_MSC_VER) || defined(__MINGW32__)
     memcpy( gmt, gmtime(&cur_time), sizeof(tm) );
 #else
     gmt = gmtime(&cur_time);
@@ -333,13 +333,14 @@ double sgTimeCalcMJD(int mn, double dy, int yr) {
 // return the current modified Julian date (number of days elapsed
 // since 1900 jan 0.5), mjd.
 double sgTimeCurrentMJD( long int warp ) {
-#ifdef _MSC_VER
+
+#if defined(_MSC_VER) || defined(__MINGW32__)
     struct tm m_gmt;    // copy of system gmtime(&time_t) structure
 #else
     struct tm *gmt;
 #endif
 
-#ifdef _MSC_VER
+#if defined(_MSC_VER) || defined(__MINGW32__)
     tm * gmt = &m_gmt;
 #endif
 
@@ -351,7 +352,7 @@ double sgTimeCurrentMJD( long int warp ) {
            << "  warp = " << warp );
 
     // get GMT break down for current time
-#ifdef _MSC_VER
+#if defined(_MSC_VER) || defined(__MINGW32__)
     memcpy( gmt, gmtime(&cur_time), sizeof(tm) );
 #else
     gmt = gmtime(&cur_time);
index e7e823029b7758a6f68d3a3a277a132839aa63f8..e8155c1d1442c6470df2fd1319a44a1efba242a5 100644 (file)
@@ -78,7 +78,7 @@ private:
     time_t cur_time;
 
     // Break down of equivalent GMT time
-#ifdef _MSC_VER
+#if defined(_MSC_VER) || defined(__MINGW32__)
     struct tm m_gmt;    // copy of system gmtime(&time_t) structure
 #else
     struct tm *gmt;
@@ -166,7 +166,7 @@ public:
     inline char* get_zonename() const { return zonename; }
 
     /** @return GMT in a "brokent down" tm structure */
-#ifdef _MSC_VER
+#if defined(_MSC_VER) || defined(__MINGW32__)
     inline struct tm* getGmt()const { return (struct tm *)&m_gmt; };
 #else
     inline struct tm* getGmt()const { return gmt; };