//
// TARGET SPECIFIC BUILD SETTINGS
//
-#ifdef WIN32
+#if defined(WIN32) || defined (WIN64)
// Release platform - windows
#define PLATFORM "Win32"
#define _OPEN_FLAGS _O_TRUNC|_O_CREAT|_O_BINARY|_O_RDWR
#if _MSC_VER > 1000
#pragma warning(disable:4996)
#endif
+
+ // Makes warnings double clickable on visual studio (ggn)
+ #define STRINGIZE_HELPER(x) #x
+ #define STRINGIZE(x) STRINGIZE_HELPER(x)
+ #define WARNING(desc) __pragma(message(__FILE__ "(" STRINGIZE(__LINE__) ") : Warning: " #desc))
+
+ // usage:
+ // WARNING(FIXME: Code removed because...)
+
+ #else
+ //If we're not compiling for Visual Studio let's assume that we're using
+ //some flavour of gcc instead. So let's use the gcc compliant macro instead.
+ //If some weirdo uses something else (I dunno, Intel compiler or something?)
+ //this is probably going to explode spectacularly. Let's wait for the fireworks!
+ #define DO_PRAGMA(x) _Pragma (#x)
+ #define WARNING(desc) DO_PRAGMA(message (#desc))
+
#endif
#include <io.h>
#include <fcntl.h>
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
+
#else
#ifdef __GCCUNIX__
// Release platform - mac OS-X or linux
#define _OPEN_FLAGS O_TRUNC|O_CREAT|O_RDWR
#define _OPEN_INC O_RDONLY
#define _PERM_MODE S_IREAD|S_IWRITE
+ // WARNING WARNING WARNING
+ #define DO_PRAGMA(x) _Pragma (#x)
+ #define WARNING(desc) DO_PRAGMA(message (#desc))
#include <sys/fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#define _OPEN_FLAGS O_TRUNC|O_CREAT|O_RDWR
#define _OPEN_INC O_RDONLY
#define _PERM_MODE S_IREAD|S_IWRITE
+ // Defined here, even though the platfrom may not support it...
+ #define DO_PRAGMA(x) _Pragma (#x)
+ #define WARNING(desc) DO_PRAGMA(message (#desc))
#include <sys/fcntl.h>
#include <stdio.h>
#include <stdlib.h>
extern int sbra_flag;
extern int obj_format;
extern int legacy_flag;
+extern LONG PRGFLAGS;
+extern int optim_flag;
// Exported functions
char * fext(char *, char *, int);