Logo AND Algorithmique Numérique Distribuée

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