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