MinGW compilation fixes.

git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@1068 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
meep-eep
2003-07-19 01:20:50 +00:00
parent 027262a356
commit 32eb481811
9 changed files with 131 additions and 73 deletions
+54 -18
View File
@@ -3,43 +3,70 @@
#include "config.h"
#ifdef _MSC_VER
#define alloca _alloca
#define snprintf _snprintf
#ifdef WIN32
# include <io.h>
#else
# include <unistd.h>
#endif
#ifndef HAVE_STRICMP
#define stricmp strcasecmp
# define stricmp strcasecmp
#endif
#ifndef HAVE_STRUPR
char *strupr (char *str);
#endif
// Compilation related
#ifdef _MSC_VER
# define inline __inline
#else
# define inline __inline__
#endif
// Directories
#ifdef WIN32
# include <stdlib.h>
# define PATH_MAX _MAX_PATH
# define NAME_MAX _MAX_FNAME
// _MAX_DIR and FILENAME_MAX could also be candidates.
// If anyone can tell me which one matches NAME_MAX, please
// tell me. - SvdB
// let me know. - SvdB
#else
/* PATH_MAX is per POSIX defined in <limits.h> */
# include <limits.h>
/* PATH_MAX is per POSIX defined in <limits.h> */
#endif
// Some types
#ifdef WIN32
typedef int ssize_t;
#endif
#ifdef _MSC_VER
# include <io.h>
typedef int ssize_t;
typedef unsigned short mode_t;
#endif
// Directories
#include <sys/stat.h>
#ifdef WIN32
# ifdef _MSC_VER
# define MKDIR(name, mode) ((void) mode, _mkdir(name))
# else
# define MKDIR(name, mode) ((void) mode, mkdir(name))
# endif
#else
# define MKDIR mkdir
#endif
#ifdef _MSC_VER
# include <direct.h>
# define chdir _chdir
# define getcwd _getcwd
# define access _access
# define F_OK 0
# define W_OK 2
# define R_OK 4
# include <direct.h>
# define open _open
# define mkdir _mkdir
# define read _read
# define rmdir _rmdir
//# define fstat _fstat
# define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR)
# define S_IRWXU (S_IREAD | S_IWRITE | S_IEXEC)
@@ -51,15 +78,24 @@ typedef unsigned short mode_t;
//# define stat _stat
# define unlink _unlink
#elif defined (__MINGW32__)
typedef int ssize_t;
typedef unsigned short mode_t;
# define S_IRWXU (S_IREAD | S_IWRITE | S_IEXEC)
# define S_IRWXG 0
# define S_IRWXO 0
# define S_ISDIR(mode) (((mode) & _S_IFMT) == _S_IFDIR)
# define S_ISREG(mode) (((mode) & _S_IFMT) == _S_IFREG)
#else
# include <unistd.h>
#endif
// Memory
#ifdef WIN32
# ifdef __MINGW32__
# include <malloc.h>
# elif defined (_MSC_VER)
# define alloca _alloca
# endif
#elif defined (__linux__)
# include <alloca.h>
#endif
// Printf
#ifdef _MSC_VER
#define snprintf _snprintf
#endif
#endif /* _PORT_H */