X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=rmac.h;h=1fa419bc172d153c7f7f0d7ea92e301619827873;hp=62fb5427e0fc80b48dc1909352273369366e2931;hb=0fd4b86c9899d254d9aea0660e5046c4234cfd42;hpb=f4e9bcd703852c51c97d2586872b9b26389899e6 diff --git a/rmac.h b/rmac.h index 62fb542..1fa419b 100644 --- a/rmac.h +++ b/rmac.h @@ -9,10 +9,19 @@ #ifndef __RMAC_H__ #define __RMAC_H__ +#include +#include +#include +#include +#include +#include + // // TARGET SPECIFIC BUILD SETTINGS // #if defined(WIN32) || defined (WIN64) + #include + #include // Release platform - windows #define PLATFORM "Win32" #define _OPEN_FLAGS _O_TRUNC|_O_CREAT|_O_BINARY|_O_RDWR @@ -31,50 +40,39 @@ // 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)) + #define inline __inline + #endif - #include - #include - #include - #include - #include - #include - #include - #include #else #ifdef __GCCUNIX__ + #include + #include // Release platform - mac OS-X or linux #define PLATFORM "OSX/Linux" #define _OPEN_FLAGS O_TRUNC|O_CREAT|O_RDWR #define _OPEN_INC O_RDONLY - #define _PERM_MODE S_IREAD|S_IWRITE + #define _PERM_MODE S_IRUSR|S_IWUSR // WARNING WARNING WARNING #define DO_PRAGMA(x) _Pragma (#x) #define WARNING(desc) DO_PRAGMA(message (#desc)) - #include - #include - #include - #include - #include - #include - #include - #include #else // Release platform - not specified + #include #define PLATFORM "Unknown" #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 _PERM_MODE S_IREAD|S_IWRITE + // Defined here, even though the platform may not support it... #define DO_PRAGMA(x) _Pragma (#x) #define WARNING(desc) DO_PRAGMA(message (#desc)) - #include - #include - #include - #include - #include - #include - #include #endif #endif @@ -186,6 +184,16 @@ PTR //#define RISCSYM 0x00010000 +// Optimisation defines +enum +{ + OPT_ABS_SHORT = 0, + OPT_MOVEL_MOVEQ = 1, + OPT_BSR_BCC_S = 2, + OPT_INDIRECT_DISP = 3, + OPT_COUNT // Dummy, used to count number of optimisation switches +}; + // Globals, externals, etc. extern int verb_flag; extern int debug; @@ -202,10 +210,13 @@ extern int lsym_flag; extern int sbra_flag; extern int obj_format; extern int legacy_flag; +extern LONG PRGFLAGS; +extern int optim_flags[OPT_COUNT]; // Exported functions char * fext(char *, char *, int); int nthpath(char *, int, char *); +int ParseOptimization(char * optstring); #endif // __RMAC_H__