MrSID Decode SDK for Raster Reference Manual  9.5.4.4709
lt_platform.h
Go to the documentation of this file.
1 /* $Id$ */
2 /* //////////////////////////////////////////////////////////////////////////
3 // //
4 // This code is Copyright (c) 2004 LizardTech, Inc, 1008 Western Avenue, //
5 // Suite 200, Seattle, WA 98104. Unauthorized use or distribution //
6 // prohibited. Access to and use of this code is permitted only under //
7 // license from LizardTech, Inc. Portions of the code are protected by //
8 // US and foreign patents and other filings. All Rights Reserved. //
9 // //
11 /* PUBLIC */
12 
13 
36 #ifndef LT_PLATFORM_H
37 #define LT_PLATFORM_H
38 
39 /* Check Compiler */
40 #if (defined(__GNUC__) || defined(__GNUG__)) && (3 <= __GNUC__ && __GNUC__ <= 5)
41  #define LT_COMPILER_GNU 1
42 
43  #if defined(__GNUC__)
44  #define LT_COMPILER_GCC 1
45  #endif
46  #if defined(__GNUG__)
47  #define LT_COMPILER_GXX 1
48  #endif
49 
50  #if(__GNUC__ == 3)
51  #define LT_COMPILER_GCC3 1
52  #elif(__GNUC__ == 4)
53  #define LT_COMPILER_GCC4 1
54  #else
55  #define LT_COMPILER_GCC5 1
56  #endif
57 
58  #define LT_DEPRECATED(NEW) __attribute__ ((__deprecated__))
59 
60 #elif defined (__SUNPRO_CC) || defined(__SUNPRO_C)
61  #define LT_COMPILER_SUN 1
62 
63  #if defined (__SUNPRO_CC)
64  #define LT_COMPILER_SUNPRO_CC 1
65  #endif
66  #if defined(__SUNPRO_C)
67  #define LT_COMPILER_SUNPRO_C 1
68  #endif
69 
70  #define LT_DEPRECATED(NEW)
71 
72 #elif defined(_MSC_VER) && (1300 <= _MSC_VER && _MSC_VER <= 1910)
73  #define LT_COMPILER_MS 1
74  #if _MSC_VER < 1400
75  #define LT_COMPILER_MS7 1
76  #elif _MSC_VER < 1500
77  #define LT_COMPILER_MS8 1
78  #elif _MSC_VER < 1600
79  #define LT_COMPILER_MS9 1
80  #elif _MSC_VER < 1700
81  #define LT_COMPILER_MS10 1
82  #elif _MSC_VER < 1800
83  #define LT_COMPILER_MS11 1
84  #elif _MSC_VER < 1900
85  #define LT_COMPILER_MS12 1
86  #elif _MSC_VER < 1910
87  #define LT_COMPILER_MS14 1
88  #else
89  #define LT_COMPILER_MS17 1
90  #endif
91 
92  #if !defined(_CRT_SECURE_NO_DEPRECATE) && _MSC_VER >= 1400
93  #define _CRT_SECURE_NO_DEPRECATE
94  #define _CRT_SECURE_NO_WARNINGS
95  #define _CRT_NONSTDC_NO_WARNINGS
96  #define LT_DEPRECATED(NEW) __declspec(deprecated("was declared deprecated and replaced by "#NEW))
97  #else
98  #define LT_DEPRECATED(NEW)
99  #endif
100 
101 #else
102  #error PLATFORM ERROR: unknown compiler
103 #endif
104 
105 /* Check Architecture and Endian */
106 /* We do not define LT_BIG_ENDIAN, as that would just confuse things;
107  either you're little endian, or you're not. */
108 
109 #if defined(__ppc) || defined(__ppc__)
110  #define LT_ARCH_PPC 1
111 #elif defined(__ppc64) || defined(__ppc64__)
112  #define LT_ARCH_PPC64 1
113 #elif defined(__sparcv9) || defined(__sparcv9__)
114  #define LT_ARCH_SPARC64 1
115 #elif defined(__sparc) || defined(__sparcv9__)
116  #define LT_ARCH_SPARC 1
117 #elif defined(__i386__) || defined(i386) || \
118  defined(_M_IX86) || defined(_X86_) || defined(x86)
119  #define LT_ARCH_IA32 1
120  #define LT_LITTLE_ENDIAN
121 #elif defined(__x86_64) || defined(__x86_64__) || \
122  defined(__amd64) || defined(__amd64__) || \
123  defined(_M_AMD64)
124  #define LT_ARCH_AMD64 1 /* x86 w/ 64-extensions ("x86-64") */
125  #define LT_LITTLE_ENDIAN
126 #elif defined(__hppa__)
127  #define LT_ARCH_PARISC 1
128 #elif defined(_M_IX86)
129  #define LT_ARCH_IA64 1 /* Itanium */
130  #define LT_LITTLE_ENDIAN
131 #elif defined(ARM) || defined(_ARM_) || defined(__arm__)
132  #define LT_ARCH_ARM 1
133  #define LT_LITTLE_ENDIAN
134 #elif defined(__arm64) || defined(__arm64__) || defined (__ARM_NEON)
135  #define LT_ARCH_ARM64 1
136  #define LT_LITTLE_ENDIAN
137 #elif defined(__MIPSEL__)
138  #define LT_ARCH_MIPSEL 1
139  #define LT_LITTLE_ENDIAN
140 #else
141  #error PLATFORM ERROR: unknown architecture
142 #endif
143 
144 /* Check OS */
145 #if defined(_WIN64) || defined(WIN64)
146  #define LT_OS_WIN 1
147  #define LT_OS_WIN64 1
148 #elif defined(_WIN32_WCE)
149  #define LT_OS_WIN 1
150  #define LT_OS_WINCE 1
151 #elif defined(_WIN32) || defined(WIN32)
152  #define LT_OS_WIN 1
153  #define LT_OS_WIN32 1
154 #elif defined(__APPLE__) && defined(__MACH__)
155  #define LT_OS_UNIX 1
156  #define LT_OS_DARWIN 1
157 #elif defined(__hpux)
158  #define LT_OS_UNIX 1
159  #define LT_OS_HPUX 1
160 #elif defined (__sun)
161  #define LT_OS_UNIX 1
162  #define LT_OS_SUNOS 1
163 #elif defined (linux) || defined (__linux__) || defined (__linux)
164  #define LT_OS_UNIX 1
165  #define LT_OS_LINUX 1
166 #else
167  #error PLATFORM ERROR: unsupported platform
168 #endif
169 
170 #if !defined(LT_OS_WIN) && !defined(LT_OS_UNIX)
171  #error PLATFORM ERROR: set LT_OS_WIN or LT_OS_UNIX
172 #endif
173 
174 /* backwards compatability, deprecated stuff */
175 
176 #if defined(LT_LITTLE_ENDIAN) && !defined(_LITTLE_ENDIAN)
177  /* this is deprecated! */
178  #define _LITTLE_ENDIAN
179 #endif
180 
181 #ifdef LT_OS_UNIX
182  #define LT_UNIX 1
183 #endif
184 
185 #endif /* LT_PLATFORM_H */
186 

LizardTech