| 243 | } |
| 244 | |
| 245 | const char *get_compiler(void) |
| 246 | { |
| 247 | static char buffer[100] = {0x00}; |
| 248 | #ifdef WIN32 |
| 249 | # ifdef _MSC_VER |
| 250 | if (_MSC_VER == 1200) { /* ? */ |
| 251 | return "MS VC 6.0"; |
| 252 | } else if (_MSC_VER == 1300) { |
| 253 | return "MS VC .NET 2002"; |
| 254 | } else if (_MSC_VER == 1310) { |
| 255 | return "MS VC .NET 2003"; |
| 256 | } else if (_MSC_VER == 1400) { |
| 257 | return "MS VC .NET 2005"; |
| 258 | } else { |
| 259 | snprintf(buffer, sizeof(buffer) - 1, "MS VC %i",_MSC_VER); |
| 260 | } |
| 261 | # elif defined(__BORLANDC__) |
| 262 | snprintf(buffer, sizeof(buffer) - 1, "Borland C++ %i",__BORLANDC__); |
| 263 | # elif defined(__MINGW32__) |
| 264 | snprintf(buffer, sizeof(buffer) - 1, "GCC %i.%i, MinGW %i.%i", __GNUC__, __GNUC_MINOR__, __MINGW32_MAJOR_VERSION, __MINGW32_MINOR_VERSION); |
| 265 | # elif defined(__CYGWIN32__) |
| 266 | #if defined(CYGWIN_VERSION_DLL_MAJOR) && defined(CYGWIN_VERSION_DLL_MINOR) |
| 267 | snprintf(buffer, sizeof(buffer) - 1, "GCC %i.%i, Cygwin32 %i.%i", __GNUC__, __GNUC_MINOR__, CYGWIN_VERSION_DLL_MAJOR, CYGWIN_VERSION_DLL_MINOR); |
| 268 | #else |
| 269 | snprintf(buffer, sizeof(buffer) - 1, "GCC %i.%i, Cygwin32", __GNUC__, __GNUC_MINOR__); |
| 270 | #endif |
| 271 | # elif defined(__CYGWIN__) |
| 272 | #if defined(CYGWIN_VERSION_DLL_MAJOR) && defined(CYGWIN_VERSION_DLL_MINOR) |
| 273 | snprintf(buffer, sizeof(buffer) - 1, "GCC %i.%i, Cygwin %i.%i", __GNUC__, __GNUC_MINOR__, CYGWIN_VERSION_DLL_MAJOR, CYGWIN_VERSION_DLL_MINOR); |
| 274 | #else |
| 275 | snprintf(buffer, sizeof(buffer) - 1, "GCC %i.%i, Cygwin", __GNUC__, __GNUC_MINOR__); |
| 276 | #endif |
| 277 | # elif defined(__GNUC__) |
| 278 | snprintf(buffer, sizeof(buffer) - 1, "GCC %i.%i", __GNUC__, __GNUC_MINOR__); |
| 279 | # else |
| 280 | return "unknown compiler"; |
| 281 | # endif |
| 282 | #elif defined(DJGPP) |
| 283 | snprintf(buffer, sizeof(buffer) - 1, "djgpp %d.%d", __DJGPP, __DJGPP_MINOR); |
| 284 | #elif defined(__GNUC__) |
| 285 | snprintf(buffer, sizeof(buffer) - 1, "GCC %i.%i", __GNUC__, __GNUC_MINOR__); |
| 286 | #elif defined(__SUNPRO_CC) |
| 287 | snprintf(buffer, sizeof(buffer) - 1, "Sun C++ %x", __SUNPRO_CC); |
| 288 | #elif defined(__INTEL_COMPILER) |
| 289 | snprintf(buffer, sizeof(buffer) - 1, "Intel Compiler %ld", __INTEL_COMPILER); |
| 290 | #else |
| 291 | return "unknown compiler"; |
| 292 | #endif |
| 293 | buffer[99]='\0'; |
| 294 | /*@ assert valid_read_string(&buffer[0]); */ |
| 295 | return buffer; |
| 296 | } |
| 297 | |
| 298 | #ifdef RECORD_COMPILATION_DATE |
| 299 | const char *get_compilation_date(void) |