Mercurial > projects > ldc
comparison dmd/mars.h @ 1367:8026319762be
Merged DMD 1.045 !!!
author | Tomas Lindquist Olsen <tomas.l.olsen gmail com> |
---|---|
date | Sat, 16 May 2009 22:21:31 +0200 |
parents | 46f6365a50d7 |
children | 229e02867307 |
comparison
equal
deleted
inserted
replaced
1366:81121ac19f61 | 1367:8026319762be |
---|---|
34 _WIN32 Microsoft NT, Windows 95, Windows 98, Win32s, | 34 _WIN32 Microsoft NT, Windows 95, Windows 98, Win32s, |
35 Windows 2000, Win XP, Vista | 35 Windows 2000, Win XP, Vista |
36 _WIN64 Windows for AMD64 | 36 _WIN64 Windows for AMD64 |
37 linux Linux | 37 linux Linux |
38 __APPLE__ Mac OSX | 38 __APPLE__ Mac OSX |
39 __FreeBSD__ FreeBSD | |
40 __sun&&__SVR4 Solaris, OpenSolaris (yes, both macros are necessary) | |
39 | 41 |
40 For the target systems, there are the target operating system and | 42 For the target systems, there are the target operating system and |
41 the target object file format: | 43 the target object file format: |
42 | 44 |
43 Target operating system: | 45 Target operating system: |
44 TARGET_WINDOS Covers 32 bit windows and 64 bit windows | 46 TARGET_WINDOS Covers 32 bit windows and 64 bit windows |
45 TARGET_LINUX Covers 32 and 64 bit linux | 47 TARGET_LINUX Covers 32 and 64 bit linux |
46 TARGET_OSX Covers 32 and 64 bit Mac OSX | 48 TARGET_OSX Covers 32 and 64 bit Mac OSX |
49 TARGET_FREEBSD Covers 32 and 64 bit FreeBSD | |
50 TARGET_SOLARIS Covers 32 and 64 bit Solaris | |
47 | 51 |
48 It is expected that the compiler for each platform will be able | 52 It is expected that the compiler for each platform will be able |
49 to generate 32 and 64 bit code from the same compiler binary. | 53 to generate 32 and 64 bit code from the same compiler binary. |
50 | 54 |
51 Target object module format: | 55 Target object module format: |
52 OMFOBJ Intel Object Module Format, used on Windows | 56 OMFOBJ Intel Object Module Format, used on Windows |
53 ELFOBJ Elf Object Module Format, used on linux | 57 ELFOBJ Elf Object Module Format, used on linux, FreeBSD and Solaris |
54 MACHOBJ Mach-O Object Module Format, used on Mac OSX | 58 MACHOBJ Mach-O Object Module Format, used on Mac OSX |
55 | 59 |
56 There are currently no macros for byte endianness order. | 60 There are currently no macros for byte endianness order. |
57 */ | 61 */ |
58 | 62 |
79 #define DMDV2 0 // Version 2.0 features | 83 #define DMDV2 0 // Version 2.0 features |
80 #define BREAKABI 1 // 0 if not ready to break the ABI just yet | 84 #define BREAKABI 1 // 0 if not ready to break the ABI just yet |
81 #define STRUCTTHISREF DMDV2 // if 'this' for struct is a reference, not a pointer | 85 #define STRUCTTHISREF DMDV2 // if 'this' for struct is a reference, not a pointer |
82 #define SNAN_DEFAULT_INIT DMDV2 // if floats are default initialized to signalling NaN | 86 #define SNAN_DEFAULT_INIT DMDV2 // if floats are default initialized to signalling NaN |
83 | 87 |
84 /* Other targets are TARGET_LINUX and TARGET_OSX, which are | 88 /* Other targets are TARGET_LINUX, TARGET_OSX, TARGET_FREEBSD and |
89 * TARGET_SOLARIS, which are | |
85 * set on the command line via the compiler makefile. | 90 * set on the command line via the compiler makefile. |
86 */ | 91 */ |
87 | 92 |
88 #if _WIN32 | 93 #if _WIN32 |
89 #define TARGET_WINDOS 1 // Windows dmd generates Windows targets | 94 #define TARGET_WINDOS 1 // Windows dmd generates Windows targets |
90 #define OMFOBJ 1 | 95 #define OMFOBJ 1 |
91 #endif | 96 #endif |
92 | 97 |
93 #if TARGET_LINUX | 98 #if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS |
94 #ifndef ELFOBJ | 99 #ifndef ELFOBJ |
95 #define ELFOBJ 1 | 100 #define ELFOBJ 1 |
96 #endif | 101 #endif |
97 #endif | 102 #endif |
98 | 103 |