1 #ifndef __XBT_BORLAND_COMPILER_CONFIG_H__
2 #define __XBT_BORLAND_COMPILER_CONFIG_H__
4 /* borland.h - simgrid config for Borland C++ Builder */
6 /* Copyright (c) 2003, 2004 Cherier Malek. All rights reserved. */
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. */
12 * Borland C++ compiler configuration
15 #include <platform/select_platform_features.h>
21 /* No <dlfcn.h> header file. */
22 #if defined(HAVE_DLFCN_H)
26 /* Defined if the compiler has the <errno.h> header file. */
27 #if !defined(HAVE_ERRNO_H)
28 #define HAVE_ERRNO_H 1
31 /* No <execinfo.h> header file. */
32 #if defined(HAVE_EXECINFO_H)
33 #undef HAVE_EXECINFO_H
36 /* No <inttypes.h> header file. */
37 #if defined(HAVE_INTTYPES_H)
38 #undef HAVE_INTTYPES_H
41 /* Defined if compiler has the <memory.h> header file. */
42 #if !defined(HAVE_MEMORY_H)
43 #define HAVE_MEMORY_H 1
46 /* No <pthread.h> header file. */
47 #if defined(HAVE_PTHREAD_H)
52 /* No <stdint.h> header file. */
53 #if defined(HAVE_STDINT_H)
57 /* The compiler has the <stdlib.h> header file. */
58 #if !defined(HAVE_STDLIB_H)
59 #define HAVE_STDLIB_H 1
62 /* No <strings.h> header file. */
63 #if defined(HAVE_STRINGS_H)
67 /* The compiler has the <string.h> header file. */
68 #if !defined(HAVE_STRING_H)
69 #define HAVE_STRING_H 1
72 /* No <sys/socket.h> header file. */
73 #if defined(HAVE_SYS_SOCKET_H)
74 #undef HAVE_SYS_SOCKET_H
77 /* The compiler has <sys/stat.h> header file. */
78 #if !defined(HAVE_SYS_STAT_H)
79 #define HAVE_SYS_STAT_H 1
82 /* No <sys/time.h> header file. */
83 #if defined(HAVE_SYS_TIME_H)
84 #undef HAVE_SYS_TIME_H 1
87 /* The compiler has the <sys/types.h> header file. */
88 #if !defined(HAVE_SYS_TYPES_H)
89 #define HAVE_SYS_TYPES_H 1
92 /* No <unistd.h> header file. */
93 #if defined(HAVE_UNISTD_H)
98 * The compiler has the <windows.h> header file.
99 * Process the case of afx.h
101 #if !defined(HAVE_WINDOWS_H)
102 #define HAVE_WINDOWS_H 1
105 /* The compiler has the <winsock2.h> header file. */
106 #if !defined(HAVE_WINSOCK2_H)
107 #define HAVE_WINSOCK2_H
111 * The compiler has the <winsock.h> header file.
112 * Trouble if winsock2.h exists ?
114 #if !defined(HAVE_WINSOCK_H)
115 #define HAVE_WINSOCK_H 1
118 /* The compiler has the <signal.h> header file */
119 #if !defined(HAVE_SIGNAL_H)
120 #define HAVE_SIGNAL_H 1
127 /* No `getcontext' function. */
128 #if defined(HAVE_GETCONTEXT)
129 #undef HAVE_GETCONTEXT
132 /* No `getdtablesize' function. */
133 #if defined(HAVE_GETDTABLESIZE)
134 #undef HAVE_GETDTABLESIZE
137 /* No `gettimeofday' function. */
138 #if defined(HAVE_GETTIMEOFDAY)
139 #undef HAVE_GETTIMEOFDAY
142 /* No `makecontext' function. */
143 #if defined(HAVE_MAKECONTEXT)
144 #undef HAVE_MAKECONTEXT
147 /* No 'popen' function. */
148 #if defined(HAVE_POPEN)
152 /* No `readv' function. */
153 #if defined(HAVE_READV)
157 /* No `setcontext' function. */
158 #if defined(HAVE_SETCONTEXT)
159 #undef HAVE_SETCONTEXT
162 /* No 'signal' function */
163 #if defined(HAVE_SIGNAL)
167 /* The compiler has `snprintf' function. */
168 #if !defined(HAVE_SNPRINTF)
169 #define HAVE_SNPRINTF 1
172 /* No `swapcontext' function. */
173 #if defined(HAVE_SWAPCONTEXT)
174 #undef HAVE_SWAPCONTEXT
177 /* No `sysconf' function. */
178 #if defined(HAVE_SYSCONF)
182 /* No `usleep' function. */
183 #if defined(HAVE_USLEEP)
187 /* The compiler has the `vsnprintf' function. */
188 #if !defined(HAVE_VSNPRINTF)
189 #define HAVE_VSNPRINTF 1
192 /* enable the asprintf replacement */
193 #if !defined(NEED_ASPRINTF)
194 #define NEED_ASPRINTF 1
197 /* enable the vasprintf replacement */
198 #if !defined(NEED_VASPRINTF)
199 #define NEED_VASPRINTF 1
202 /* "disable the snprintf replacement ( this function is broken on system v only" */
203 #if defined(PREFER_PORTABLE_SNPRINTF)
204 #undef PREFER_PORTABLE_SNPRINTF
207 /* The maximal size of any scalar on this arch */
208 #if !defined(SIZEOF_MAX)
212 /* Define to 1 if you have the ANSI C header files. */
213 #if !defined(STDC_HEADERS)
214 #define STDC_HEADERS 1
217 #if defined(TIME_WITH_SYS_TIME)
218 #undef TIME_WITH_SYS_TIME
225 /* Define to 1 if you have the `pthread' library (-lpthread). */
226 #if defined(HAVE_LIBPTHREAD)
227 #undef HAVE_LIBPTHREAD
231 * package informations ?
235 /* Defined if arrays in struct can straddle struct alignment boundaries. This
236 is like than the structure compaction above, but this time, the argument to
237 be compacted is an array whom each element would be normally compacted.
238 Exemple: struct s { double d; int i; char c[6]; }; Arrays can straddle if c
239 is allowed to come just after i. Note that GRAS only support architecture
240 presenting this caracteristic so far. */
242 #if defined(GRAS_ARRAY_STRADDLE_STRUCT)
243 #undef GRAS_ARRAY_STRADDLE_STRUCT
246 /* Defined if structures are compacted when possible. Consider this structure:
247 struct s {double d; int i; char c;}; If it is allowed, the char is placed
248 just after the int. If not, it has to be on the 8 bytes boundary imposed by
249 the double. For now, GRAS requires the structures to be compacted. */
250 #if defined(GRAS_STRUCT_COMPACT)
251 #undef GRAS_STRUCT_COMPACT
254 /* Name of package */
255 #define PACKAGE "simgrid"
257 /* Define to the address where bug reports for this package should be sent. */
258 #define PACKAGE_BUGREPORT "simgrid-devel@lists.gforge.inria.fr"
260 /* Define to the full name of this package. */
261 #define PACKAGE_NAME "simgrid"
263 /* Define to the full name and version of this package. */
264 #define PACKAGE_STRING "simgrid 3.1.1-cvs"
266 /* Define to the one symbol short name of this package. */
267 #define PACKAGE_TARNAME "simgrid"
269 /* Define to the version of this package. */
270 #define PACKAGE_VERSION "3.1.1-cvs"
276 /* define if big endian */
277 #if !defined(GRAS_BIGENDIAN)
278 #define GRAS_BIGENDIAN 0
281 /* Defined if structures are compacted when possible. Consider this structure:
282 struct s {double d; int i; char c;}; If it is allowed, the char is placed
283 just after the int. If not, it has to be on the 8 bytes boundary imposed by
284 the double. For now, GRAS requires the structures to be compacted. */
285 #if defined(GRAS_STRUCT_COMPACT)
286 #define GRAS_STRUCT_COMPACT 1
289 /* defines the GRAS architecture signature of this machine */
290 #if defined(GRAS_THISARCH)
294 #define GRAS_THISARCH 0
297 /* Path to the addr2line tool */
298 #if defined(ADDR2LINE)
302 #if !defined(HAVE_VA_COPY)
303 #define HAVE_VA_COPY 1
306 /* This macro is not defined in borland stdarg.h include file, adds it. */
307 #define va_copy(dest,src) ((dest)=(src))
309 /* Predefined possible va_copy() implementation (id: ASP) */
310 #define __VA_COPY_USE_ASP(d, s) do { *(d) = *(s); } while (0)
312 /* Predefined possible va_copy() implementation (id: ASS) */
313 #define __VA_COPY_USE_ASS(d, s) do { (d) = (s); } while (0)
315 /* Predefined possible va_copy() implementation (id: C99) */
316 #define __VA_COPY_USE_C99(d, s) va_copy((d), (s))
318 /* Predefined possible va_copy() implementation (id: CPP) */
319 #define __VA_COPY_USE_CPP(d, s) memcpy((void *)(d), (void *)(s)), sizeof(*(s))
321 /* Predefined possible va_copy() implementation (id: CPS) */
322 #define __VA_COPY_USE_CPS(d, s) memcpy((void *)&(d), (void *)&(s)), sizeof((s))
324 /* Predefined possible va_copy() implementation (id: GCB) */
325 #define __VA_COPY_USE_GCB(d, s) __builtin_va_copy((d), (s))
327 /* Predefined possible va_copy() implementation (id: GCH) */
328 #define __VA_COPY_USE_GCH(d, s) __va_copy((d), (s))
330 /* Predefined possible va_copy() implementation (id: GCM) */
331 #define __VA_COPY_USE_GCM(d, s) VA_COPY((d), (s))
334 /* Optional va_copy() implementation activation */
336 #define va_copy(d, s) __VA_COPY_USE(d, s)
340 /* Define to id of used va_copy() implementation */
341 #define __VA_COPY_USE __VA_COPY_USE_C99
343 #if defined(_XBT_DESIGNATED_DLL)
344 #define _XBT_CALL __cdecl __export
345 #elif defined(_RTLDLL)
346 #define _XBT_CALL __cdecl __import
348 #define _XBT_CALL __cdecl
351 /* auto enable thread safety and exceptions: */
353 #define _XBT_HAS_NO_EXCEPTIONS
356 #if defined ( __MT__ ) && !defined (_NOTHREADS) && !defined (_REENTRANT)
360 #if defined ( __DEBUG ) && ( __DEBUG > 1 )
364 #define _XBT_LIB_BASENAME "xbt"
366 #define _XBT_EXPORT_DECLSPEC __declspec(dllexport)
367 #define _XBT_IMPORT_DECLSPEC __declspec(dllimport)
369 #define _XBT_CLASS_EXPORT_DECLSPEC __declspec(dllexport)
370 #define _XBT_CLASS_IMPORT_DECLSPEC __declspec(dllimport)
372 #if(__BORLANDC__>= 0x500)
373 #define _XBT_HAS_NAMESPACES
377 #if(__BORLANDC__ < 0x540)
379 #if (defined (__DLL) || defined (_DLL) || defined (_WINDLL) || defined (_RTLDLL) || defined (_XBT_USE_DYNAMIC_LIB) ) && ! defined (_XBT_USE_STATIC_LIB)
380 #undef _XBT_USE_DECLSPEC
381 #define _XBT_USE_DECLSPEC
386 #if ( defined (__DLL) || defined (_DLL) || defined (_WINDLL) || defined (_RTLDLL) || defined(_AFXDLL) || defined (_XBT_USE_DYNAMIC_LIB) )
387 #undef _XBT_USE_DECLSPEC
388 #define _XBT_USE_DECLSPEC 1
392 /* For open, read etc. file operations. */
396 /* For getpid() function. */
399 /* no unistd.h header file. */
400 #define YY_NO_UNISTD_H
402 * Replace winsock2.h,ws2tcpip.h and winsock.h header files */
406 typedef unsigned int uint32_t;
407 typedef int socklen_t;
409 #define tcp_read( s, buf, len ) recv( s, buf, len, 0 )
410 #define tcp_write( s, buf, len ) send( s, buf, len, 0 )
411 #define ioctl( s, c, a ) ioctlsocket( (s), (c), (a) )
412 #define ioctl_t u_long
413 #define AC_SOCKET_INVALID ((unsigned int) ~0)
416 #define tcp_close(s) (shutdown( s, SD_BOTH ), closesocket(s))
418 #define tcp_close( s ) closesocket( s )
422 #define EWOULDBLOCK WSAEWOULDBLOCK
426 #define EINPROGRESS WSAEINPROGRESS
430 #define ETIMEDOUT WSAETIMEDOUT
437 #define sock_errno WSAGetLastError()
443 #define sock_errstr(err) gras_wsa_err2string(err)
445 const char *gras_wsa_err2string(int errcode);
459 #endif /* #ifndef __XBT_BORLAND_COMPILER_CONFIG_H__ */