Logo AND Algorithmique Numérique Distribuée

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