MINGW patch from Benot Laniel

This commit is contained in:
fredb
2010-01-23 11:40:02 +00:00
committed by Tim Moore
parent e7f151ad02
commit 3dcffc7df8
29 changed files with 54 additions and 101 deletions

View 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"

View File

@@ -1958,6 +1958,10 @@
>
</File>
</Filter>
<File
RelativePath="..\..\simgear\compiler.h"
>
</File>
<File
RelativePath="..\..\simgear\simgear_config.h-msvc90"
>

View 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

View 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.

View 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;

View 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();

View 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);

View 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)

View 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;

View 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
}
}

View File

@@ -18,10 +18,6 @@
#ifndef SGVec2_H
#define SGVec2_H
#if defined ( __CYGWIN__ )
#include <ieeefp.h>
#endif
#ifndef NO_OPENSCENEGRAPH_INTERFACE
#include <osg/Vec2f>
#include <osg/Vec2d>

View 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;

View 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);

View 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)

View File

@@ -25,10 +25,6 @@
# 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>

View 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;

View 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;

View File

@@ -20,10 +20,6 @@
// 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>

View File

@@ -27,10 +27,6 @@
# include <simgear_config.h>
#endif
#ifdef __CYGWIN__
#include <ieeefp.h>
#endif
#include <simgear/compiler.h>
#include <simgear/constants.h>
#include <simgear/debug/logstream.hxx>

View File

@@ -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

View 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);

View File

@@ -24,11 +24,7 @@
#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

View File

@@ -23,11 +23,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

View 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;

View 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;

View 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

View 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

View 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

View 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;