Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
add a newline at the end of the file to make gcc happy
[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 /*#ifdef NEED_ASPRINTF
198 #undef NEED_ASPRINTF
199 #endif*/
200
201
202 /* enable the vasprintf replacement */
203 #if  !defined(NEED_VASPRINTF)
204         #define NEED_VASPRINTF  1
205 #endif
206
207 /* "disable the snprintf replacement ( this function is broken on system v only" */
208
209 /* FIXME TO ANALYZE */
210 #if defined(PREFER_PORTABLE_SNPRINTF)
211         #undef PREFER_PORTABLE_SNPRINTF 
212 #endif
213
214 #if !defined(PREFER_PORTABLE_SNPRINTF)
215         #define PREFER_PORTABLE_SNPRINTF        
216 #endif
217
218 /* The maximal size of any scalar on this arch */
219 #if !defined(SIZEOF_MAX)
220         #define SIZEOF_MAX 8
221 #endif
222
223 /* Define to 1 if you have the ANSI C header files. */
224 #if !defined(STDC_HEADERS)
225         #define STDC_HEADERS 1
226 #endif
227
228 #if defined(TIME_WITH_SYS_TIME)
229         #undef TIME_WITH_SYS_TIME 
230 #endif
231
232 /* 
233  * libraries
234  */
235
236 /* Define to 1 if you have the `pthread' library (-lpthread). */
237 #if defined(HAVE_LIBPTHREAD)
238         #undef HAVE_LIBPTHREAD
239 #endif
240
241 /* 
242  * package informations ?
243  */
244  
245  
246 /* Defined if arrays in struct can straddle struct alignment boundaries. This
247 is like than the structure compaction above, but this time, the argument to
248 be compacted is an array whom each element would be normally compacted.
249 Exemple: struct s { double d; int i; char c[6]; }; Arrays can straddle if c
250 is allowed to come just after i. Note that GRAS only support architecture
251 presenting this caracteristic so far. */
252
253 #if defined(GRAS_ARRAY_STRADDLE_STRUCT)
254         #undef GRAS_ARRAY_STRADDLE_STRUCT
255 #endif
256
257 /* Defined if structures are compacted when possible. Consider this structure:
258 struct s {double d; int i; char c;}; If it is allowed, the char is placed
259 just after the int. If not, it has to be on the 8 bytes boundary imposed by
260 the double. For now, GRAS requires the structures to be compacted. */
261 #if defined(GRAS_STRUCT_COMPACT)
262         #undef GRAS_STRUCT_COMPACT
263 #endif
264
265 /* Name of package */
266 #define PACKAGE "simgrid"
267
268 /* Define to the address where bug reports for this package should be sent. */
269 #define PACKAGE_BUGREPORT "simgrid-devel@lists.gforge.inria.fr"
270
271 /* Define to the full name of this package. */
272 #define PACKAGE_NAME "simgrid"
273
274 /* Define to the full name and version of this package. */
275 #define PACKAGE_STRING "simgrid 3.1.1-cvs"
276
277 /* Define to the one symbol short name of this package. */
278 #define PACKAGE_TARNAME "simgrid"
279
280 /* Define to the version of this package. */
281 #define PACKAGE_VERSION "3.1.1-cvs"
282
283 /* 
284  * macro
285  */
286  
287  /* define if big endian */
288 #if !defined(GRAS_BIGENDIAN)
289         #define GRAS_BIGENDIAN 0
290 #endif
291
292 /* Defined if structures are compacted when possible. Consider this structure:
293 struct s {double d; int i; char c;}; If it is allowed, the char is placed
294 just after the int. If not, it has to be on the 8 bytes boundary imposed by
295 the double. For now, GRAS requires the structures to be compacted. */
296 #if defined(GRAS_STRUCT_COMPACT)
297         #define GRAS_STRUCT_COMPACT 1
298 #endif
299
300 /* defines the GRAS architecture signature of this machine */
301 #if defined(GRAS_THISARCH)
302         #undef GRAS_THISARCH
303 #endif
304
305 #define GRAS_THISARCH 0
306
307  
308  /* Path to the addr2line tool */
309 #if defined(ADDR2LINE)
310         #undef ADDR2LINE
311 #endif
312
313 #if !defined(HAVE_VA_COPY)
314         #define HAVE_VA_COPY 1
315 #endif
316
317 /* This macro is not defined in borland stdarg.h include file, adds it. */
318 #define va_copy(dest,src)   ((dest)=(src))  
319
320 /* Predefined possible va_copy() implementation (id: ASP) */
321 #define __VA_COPY_USE_ASP(d, s) do { *(d) = *(s); } while (0)
322
323 /* Predefined possible va_copy() implementation (id: ASS) */
324 #define __VA_COPY_USE_ASS(d, s) do { (d) = (s); } while (0)
325
326 /* Predefined possible va_copy() implementation (id: C99) */
327 #define __VA_COPY_USE_C99(d, s) va_copy((d), (s))
328
329 /* Predefined possible va_copy() implementation (id: CPP) */
330 #define __VA_COPY_USE_CPP(d, s) memcpy((void *)(d), (void *)(s)), sizeof(*(s))
331
332 /* Predefined possible va_copy() implementation (id: CPS) */
333 #define __VA_COPY_USE_CPS(d, s) memcpy((void *)&(d), (void *)&(s)), sizeof((s))
334
335 /* Predefined possible va_copy() implementation (id: GCB) */
336 #define __VA_COPY_USE_GCB(d, s) __builtin_va_copy((d), (s))
337
338 /* Predefined possible va_copy() implementation (id: GCH) */
339 #define __VA_COPY_USE_GCH(d, s) __va_copy((d), (s))
340
341 /* Predefined possible va_copy() implementation (id: GCM) */
342 #define __VA_COPY_USE_GCM(d, s) VA_COPY((d), (s))
343
344
345 /* Optional va_copy() implementation activation */
346 #ifndef HAVE_VA_COPY
347 #define va_copy(d, s) __VA_COPY_USE(d, s)
348 #endif
349
350 #ifdef USE_UCONTEXT
351 #undef USE_UCONTEXT
352 #endif
353
354
355 /* Define to id of used va_copy() implementation */
356 #define __VA_COPY_USE __VA_COPY_USE_C99
357
358 #ifndef _XBT_CALL
359         #if defined(_XBT_DESIGNATED_DLL)
360                 #define _XBT_CALL __cdecl __export
361         #elif defined(_RTLDLL)
362                 #define  _XBT_CALL __cdecl __import
363         #else
364                 #define  _XBT_CALL __cdecl
365         #endif
366 #endif
367
368 /* auto enable thread safety and exceptions: */
369 #ifndef _CPPUNWIND
370         #define _XBT_HAS_NO_EXCEPTIONS
371 #endif
372
373 #if defined ( __MT__ ) && !defined (_NOTHREADS) && !defined (_REENTRANT)
374         #define _REENTRANT 1
375 #endif
376
377 #if(__BORLANDC__>= 0x500)
378         #define _XBT_HAS_NAMESPACES
379 #endif
380
381
382 /* For open, read etc. file operations. */
383 #include <io.h>
384 #include <fcntl.h>
385
386 /* For getpid() function. */
387 #include <process.h>
388
389 /* no unistd.h header file. */
390 #define YY_NO_UNISTD_H 
391 /*
392  * Replace winsock2.h,ws2tcpip.h and winsock.h header files */
393 #include <windows.h>
394
395 /* types */
396 typedef unsigned int uint32_t;
397 typedef int socklen_t;
398
399 /* Choose setjmp as exception implementation */
400 #ifndef __EX_MCTX_SJLJ__
401 #define __EX_MCTX_SJLJ__
402 #endif 
403
404 /* this is used in context managment. */
405 #ifndef USE_WIN_THREADS
406 #define USE_WIN_THREADS
407 #endif
408
409 #endif /* #ifndef __XBT_BORLAND_COMPILER_CONFIG_H__ */