Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
7a0d2bbb4a8181b6a3a457799e8a3f2f71213ddb
[simgrid.git] / src / win32 / compiler / borland.h
1 #ifndef __XBT_BORLAND_COMPILER_CONFIG_H__
2 #define __XBT_BORLAND_COMPILER_CONFIG_H__
3
4 /* borland.h - simgrid config for Borland C++ Builder   */
5
6 /* Copyright (c) 2003, 2004 Cherier Malek. All rights reserved.            */
7
8 /* This program is free software; you can redistribute it and/or modify it
9  * under the terms of the license (GNU LGPL) which comes with this package. */
10
11 /*
12  *  Borland C++ compiler configuration
13  */
14
15 #include <win32/platform/select_platform_features.h>
16
17 /* 
18  * include files. 
19  */
20
21 /* No <dlfcn.h> header file. */
22 #if defined(HAVE_DLFCN_H)
23         #undef HAVE_DLFCN_H
24 #endif 
25
26 /* Defined if the compiler has the <errno.h> header file. */
27 #if !defined(HAVE_ERRNO_H)
28         #define HAVE_ERRNO_H            1
29 #endif
30
31 /* No <execinfo.h> header file. */
32 #if defined(HAVE_EXECINFO_H)
33         #undef HAVE_EXECINFO_H
34 #endif
35
36 /* No <inttypes.h> header file. */
37 #if defined(HAVE_INTTYPES_H)
38         #undef HAVE_INTTYPES_H
39 #endif
40
41 /* Defined if compiler has the <memory.h> header file. */
42 #if !defined(HAVE_MEMORY_H)
43         #define HAVE_MEMORY_H           1
44 #endif
45
46 /* No <pthread.h> header file. */
47 #if defined(HAVE_PTHREAD_H)
48         #undef HAVE_PTHREAD_H
49 #endif
50
51
52 /* No <stdint.h> header file. */
53 #if defined(HAVE_STDINT_H)
54         #undef HAVE_STDINT_H
55 #endif
56
57 /* The compiler has the <stdlib.h> header file. */
58 #if !defined(HAVE_STDLIB_H)
59         #define HAVE_STDLIB_H           1
60 #endif
61
62 /* No <strings.h> header file. */
63 #if defined(HAVE_STRINGS_H)
64         #undef HAVE_STRINGS_H
65 #endif
66
67 /* The compiler has the <string.h> header file. */
68 #if !defined(HAVE_STRING_H)
69         #define HAVE_STRING_H           1
70 #endif
71
72 /* No <sys/socket.h> header file. */
73 #if defined(HAVE_SYS_SOCKET_H)
74         #undef HAVE_SYS_SOCKET_H
75 #endif
76
77 /* The compiler has <sys/stat.h> header file. */
78 #if !defined(HAVE_SYS_STAT_H)
79         #define HAVE_SYS_STAT_H         1
80 #endif
81
82 /* No <sys/time.h> header file. */
83 #if defined(HAVE_SYS_TIME_H)
84         #undef HAVE_SYS_TIME_H          1
85 #endif
86
87 /* The compiler has the <sys/types.h> header file. */
88 #if !defined(HAVE_SYS_TYPES_H)
89         #define HAVE_SYS_TYPES_H        1
90 #endif
91
92 /* No <unistd.h> header file. */
93 #if defined(HAVE_UNISTD_H)
94         #undef HAVE_UNISTD_H    
95 #endif
96
97 /* 
98  * The compiler has the <windows.h> header file. 
99  * Process the case of afx.h
100 */
101 #if !defined(HAVE_WINDOWS_H)
102         #define HAVE_WINDOWS_H          1
103 #endif
104
105 /* The compiler has the <winsock2.h> header file. */
106 #if !defined(HAVE_WINSOCK2_H)
107         #define HAVE_WINSOCK2_H
108 #endif
109
110 /*  
111  * The compiler has the <winsock.h> header file.
112  * Trouble if winsock2.h exists ?  
113  */
114 #if !defined(HAVE_WINSOCK_H)
115         #define HAVE_WINSOCK_H  1
116 #endif
117
118 /* The compiler has the <signal.h> header file */
119 #if !defined(HAVE_SIGNAL_H)
120         #define HAVE_SIGNAL_H   1
121 #endif
122
123 /* 
124  * functions.
125  */
126
127 /* No `getcontext' function. */
128 #if defined(HAVE_GETCONTEXT)
129         #undef HAVE_GETCONTEXT
130 #endif
131
132 /* No `getdtablesize' function. */
133 #if defined(HAVE_GETDTABLESIZE)
134         #undef HAVE_GETDTABLESIZE
135 #endif
136
137 /* No `gettimeofday' function. */
138 #if defined(HAVE_GETTIMEOFDAY)
139         #undef HAVE_GETTIMEOFDAY
140 #endif
141
142 /* No `makecontext' function. */
143 #if defined(HAVE_MAKECONTEXT)
144         #undef HAVE_MAKECONTEXT
145 #endif
146
147 /* No 'popen' function. */
148 #if defined(HAVE_POPEN)
149         #undef HAVE_POPEN
150 #endif
151
152 /* No `readv' function. */
153 #if defined(HAVE_READV)
154         #undef HAVE_READV
155 #endif
156
157 /* No `setcontext' function. */
158 #if defined(HAVE_SETCONTEXT)
159         #undef HAVE_SETCONTEXT
160 #endif
161
162 /* No 'signal' function */
163 #if defined(HAVE_SIGNAL)
164         #undef HAVE_SIGNAL
165 #endif
166
167 /* The compiler has `snprintf' function. */
168 #if !defined(HAVE_SNPRINTF)
169         #define HAVE_SNPRINTF   1
170 #endif
171
172 /* No `swapcontext' function. */
173 #if defined(HAVE_SWAPCONTEXT)
174         #undef HAVE_SWAPCONTEXT
175 #endif
176
177 /* No `sysconf' function. */
178 #if defined(HAVE_SYSCONF)
179         #undef HAVE_SYSCONF
180 #endif
181
182 /* No `usleep' function. */
183 #if defined(HAVE_USLEEP)
184         #undef HAVE_USLEEP
185 #endif
186
187 /* The compiler has the `vsnprintf' function. */
188 #if !defined(HAVE_VSNPRINTF)
189         #define HAVE_VSNPRINTF  1
190 #endif
191
192 /* enable the asprintf replacement */
193 #if !defined(NEED_ASPRINTF)
194         #define NEED_ASPRINTF   1
195 #endif
196
197 /* enable the vasprintf replacement */
198 #if  !defined(NEED_VASPRINTF)
199         #define NEED_VASPRINTF  1
200 #endif
201
202 /* "disable the snprintf replacement ( this function is broken on system v only" */
203
204 /* FIXEME TO ANALYZE
205 #if defined(PREFER_PORTABLE_SNPRINTF)
206         #undef PREFER_PORTABLE_SNPRINTF 
207 #endif
208 */
209
210 #if !defined(PREFER_PORTABLE_SNPRINTF)
211         #define PREFER_PORTABLE_SNPRINTF        
212 #endif
213
214 /* The maximal size of any scalar on this arch */
215 #if !defined(SIZEOF_MAX)
216         #define SIZEOF_MAX 8
217 #endif
218
219 /* Define to 1 if you have the ANSI C header files. */
220 #if !defined(STDC_HEADERS)
221         #define STDC_HEADERS 1
222 #endif
223
224 #if defined(TIME_WITH_SYS_TIME)
225         #undef TIME_WITH_SYS_TIME 
226 #endif
227
228 /* 
229  * libraries
230  */
231
232 /* Define to 1 if you have the `pthread' library (-lpthread). */
233 #if defined(HAVE_LIBPTHREAD)
234         #undef HAVE_LIBPTHREAD
235 #endif
236
237 /* 
238  * package informations ?
239  */
240  
241  
242 /* Defined if arrays in struct can straddle struct alignment boundaries. This
243 is like than the structure compaction above, but this time, the argument to
244 be compacted is an array whom each element would be normally compacted.
245 Exemple: struct s { double d; int i; char c[6]; }; Arrays can straddle if c
246 is allowed to come just after i. Note that GRAS only support architecture
247 presenting this caracteristic so far. */
248
249 #if defined(GRAS_ARRAY_STRADDLE_STRUCT)
250         #undef GRAS_ARRAY_STRADDLE_STRUCT
251 #endif
252
253 /* Defined if structures are compacted when possible. Consider this structure:
254 struct s {double d; int i; char c;}; If it is allowed, the char is placed
255 just after the int. If not, it has to be on the 8 bytes boundary imposed by
256 the double. For now, GRAS requires the structures to be compacted. */
257 #if defined(GRAS_STRUCT_COMPACT)
258         #undef GRAS_STRUCT_COMPACT
259 #endif
260
261 /* Name of package */
262 #define PACKAGE "simgrid"
263
264 /* Define to the address where bug reports for this package should be sent. */
265 #define PACKAGE_BUGREPORT "simgrid-devel@lists.gforge.inria.fr"
266
267 /* Define to the full name of this package. */
268 #define PACKAGE_NAME "simgrid"
269
270 /* Define to the full name and version of this package. */
271 #define PACKAGE_STRING "simgrid 3.1.1-cvs"
272
273 /* Define to the one symbol short name of this package. */
274 #define PACKAGE_TARNAME "simgrid"
275
276 /* Define to the version of this package. */
277 #define PACKAGE_VERSION "3.1.1-cvs"
278
279 /* 
280  * macro
281  */
282  
283  /* define if big endian */
284 #if !defined(GRAS_BIGENDIAN)
285         #define GRAS_BIGENDIAN 0
286 #endif
287
288 /* Defined if structures are compacted when possible. Consider this structure:
289 struct s {double d; int i; char c;}; If it is allowed, the char is placed
290 just after the int. If not, it has to be on the 8 bytes boundary imposed by
291 the double. For now, GRAS requires the structures to be compacted. */
292 #if defined(GRAS_STRUCT_COMPACT)
293         #define GRAS_STRUCT_COMPACT 1
294 #endif
295
296 /* defines the GRAS architecture signature of this machine */
297 #if defined(GRAS_THISARCH)
298         #undef GRAS_THISARCH
299 #endif
300
301 #define GRAS_THISARCH 0
302
303  
304  /* Path to the addr2line tool */
305 #if defined(ADDR2LINE)
306         #undef ADDR2LINE
307 #endif
308
309 #if !defined(HAVE_VA_COPY)
310         #define HAVE_VA_COPY 1
311 #endif
312
313 /* This macro is not defined in borland stdarg.h include file, adds it. */
314 #define va_copy(dest,src)   ((dest)=(src))  
315
316 /* Predefined possible va_copy() implementation (id: ASP) */
317 #define __VA_COPY_USE_ASP(d, s) do { *(d) = *(s); } while (0)
318
319 /* Predefined possible va_copy() implementation (id: ASS) */
320 #define __VA_COPY_USE_ASS(d, s) do { (d) = (s); } while (0)
321
322 /* Predefined possible va_copy() implementation (id: C99) */
323 #define __VA_COPY_USE_C99(d, s) va_copy((d), (s))
324
325 /* Predefined possible va_copy() implementation (id: CPP) */
326 #define __VA_COPY_USE_CPP(d, s) memcpy((void *)(d), (void *)(s)), sizeof(*(s))
327
328 /* Predefined possible va_copy() implementation (id: CPS) */
329 #define __VA_COPY_USE_CPS(d, s) memcpy((void *)&(d), (void *)&(s)), sizeof((s))
330
331 /* Predefined possible va_copy() implementation (id: GCB) */
332 #define __VA_COPY_USE_GCB(d, s) __builtin_va_copy((d), (s))
333
334 /* Predefined possible va_copy() implementation (id: GCH) */
335 #define __VA_COPY_USE_GCH(d, s) __va_copy((d), (s))
336
337 /* Predefined possible va_copy() implementation (id: GCM) */
338 #define __VA_COPY_USE_GCM(d, s) VA_COPY((d), (s))
339
340
341 /* Optional va_copy() implementation activation */
342 #ifndef HAVE_VA_COPY
343 #define va_copy(d, s) __VA_COPY_USE(d, s)
344 #endif
345
346 #ifdef USE_UCONTEXT
347 #undef USE_UCONTEXT
348 #endif
349
350
351 /* Define to id of used va_copy() implementation */
352 #define __VA_COPY_USE __VA_COPY_USE_C99
353
354 #if defined(_XBT_DESIGNATED_DLL)
355         #define _XBT_CALL __cdecl __export
356 #elif defined(_RTLDLL)
357         #define  _XBT_CALL __cdecl __import
358 #else
359         #define  _XBT_CALL __cdecl
360 #endif
361
362 /* auto enable thread safety and exceptions: */
363 #ifndef _CPPUNWIND
364         #define _XBT_HAS_NO_EXCEPTIONS
365 #endif
366
367 #if defined ( __MT__ ) && !defined (_NOTHREADS) && !defined (_REENTRANT)
368         #define _REENTRANT 1
369 #endif
370
371 #if defined ( __DEBUG ) && ( __DEBUG > 1 )
372         #define _XBT_DEBUG
373 #endif
374
375 #define _XBT_LIB_BASENAME "xbt"
376
377 #define _XBT_EXPORT_DECLSPEC __declspec(dllexport)
378 #define _XBT_IMPORT_DECLSPEC __declspec(dllimport)
379         
380 #define _XBT_CLASS_EXPORT_DECLSPEC __declspec(dllexport)
381 #define _XBT_CLASS_IMPORT_DECLSPEC __declspec(dllimport)
382
383     #if(__BORLANDC__>= 0x500)
384             #define _XBT_HAS_NAMESPACES
385     #endif
386
387
388 #if(__BORLANDC__ < 0x540)
389
390         #if (defined (__DLL) || defined (_DLL) || defined (_WINDLL) || defined (_RTLDLL) || defined (_XBT_USE_DYNAMIC_LIB) ) && ! defined (_XBT_USE_STATIC_LIB)
391                 #undef  _XBT_USE_DECLSPEC
392                 #define _XBT_USE_DECLSPEC
393         #endif
394         
395 #else
396                 
397         #if ( defined (__DLL) || defined (_DLL) || defined (_WINDLL) || defined (_RTLDLL) || defined(_AFXDLL) || defined (_XBT_USE_DYNAMIC_LIB) )
398                 #undef  _XBT_USE_DECLSPEC
399                 #define _XBT_USE_DECLSPEC 1
400         #endif
401 #endif
402
403 /* For open, read etc. file operations. */
404 #include <io.h>
405 #include <fcntl.h>
406
407 /* For getpid() function. */
408 #include <process.h>
409
410 /* no unistd.h header file. */
411 #define YY_NO_UNISTD_H 
412 /*
413  * Replace winsock2.h,ws2tcpip.h and winsock.h header files */
414 #include <windows.h>
415
416 /* types */
417 typedef unsigned int uint32_t;
418 typedef int socklen_t;
419
420 /* Choose setjmp as exception implementation */
421 #ifndef __EX_MCTX_SJLJ__
422 #define __EX_MCTX_SJLJ__
423 #endif 
424
425 #endif /* #ifndef __XBT_BORLAND_COMPILER_CONFIG_H__ */