|
|
| version 1.171, 2014/12/23 13:26:59 | version 1.176, 2015/01/03 16:45:04 |
|---|---|
| Line 1 | Line 1 |
| /* $Id$ | /* $Id$ |
| $State$ | $State$ |
| $Log$ | $Log$ |
| Revision 1.176 2015/01/03 16:45:04 brouard | |
| *** empty log message *** | |
| Revision 1.175 2015/01/03 16:33:42 brouard | |
| *** empty log message *** | |
| Revision 1.174 2015/01/03 16:15:49 brouard | |
| Summary: Still in cross-compilation | |
| Revision 1.173 2015/01/03 12:06:26 brouard | |
| Summary: trying to detect cross-compilation | |
| Revision 1.172 2014/12/27 12:07:47 brouard | |
| Summary: Back from Visual Studio and Intel, options for compiling for Windows XP | |
| Revision 1.171 2014/12/23 13:26:59 brouard | Revision 1.171 2014/12/23 13:26:59 brouard |
| Summary: Back from Visual C | Summary: Back from Visual C |
| Line 537 | Line 552 |
| #ifdef _WIN32 | #ifdef _WIN32 |
| #include <io.h> | #include <io.h> |
| #include <windows.h> | |
| #include <tchar.h> | |
| #else | #else |
| #include <unistd.h> | #include <unistd.h> |
| #endif | #endif |
| Line 5451 int calandcheckages(int imx, int maxwav, | Line 5468 int calandcheckages(int imx, int maxwav, |
| return (1); | return (1); |
| } | } |
| #if defined(_MSC_VER) | |
| /*printf("Visual C++ compiler: %s \n;", _MSC_FULL_VER);*/ | |
| /*fprintf(ficlog, "Visual C++ compiler: %s \n;", _MSC_FULL_VER);*/ | |
| //#include "stdafx.h" | |
| //#include <stdio.h> | |
| //#include <tchar.h> | |
| //#include <windows.h> | |
| //#include <iostream> | |
| typedef BOOL(WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL); | |
| LPFN_ISWOW64PROCESS fnIsWow64Process; | |
| BOOL IsWow64() | |
| { | |
| BOOL bIsWow64 = FALSE; | |
| //typedef BOOL (APIENTRY *LPFN_ISWOW64PROCESS) | |
| // (HANDLE, PBOOL); | |
| //LPFN_ISWOW64PROCESS fnIsWow64Process; | |
| HMODULE module = GetModuleHandle(_T("kernel32")); | |
| const char funcName[] = "IsWow64Process"; | |
| fnIsWow64Process = (LPFN_ISWOW64PROCESS) | |
| GetProcAddress(module, funcName); | |
| if (NULL != fnIsWow64Process) | |
| { | |
| if (!fnIsWow64Process(GetCurrentProcess(), | |
| &bIsWow64)) | |
| //throw std::exception("Unknown error"); | |
| printf("Unknown error\n"); | |
| } | |
| return bIsWow64 != FALSE; | |
| } | |
| #endif | |
| void syscompilerinfo() | void syscompilerinfo() |
| { | { |
| /* #include "syscompilerinfo.h"*/ | /* #include "syscompilerinfo.h"*/ |
| /* #include <gnu/libc-version.h> */ /* Only on gnu */ | #if defined(__GNUC__) |
| #include <gnu/libc-version.h> /* Only on gnu */ | |
| struct utsname sysInfo; | |
| #endif | |
| #include <stdint.h> | #include <stdint.h> |
| int cross = CROSS; | |
| if (cross){ | |
| printf("Cross-"); | |
| fprintf(ficlog,"Cross-"); | |
| } | |
| printf("Compiled with:");fprintf(ficlog,"Compiled with:"); | printf("Compiled with:");fprintf(ficlog,"Compiled with:"); |
| #if defined(__clang__) | #if defined(__clang__) |
| printf(" Clang/LLVM");fprintf(ficlog," Clang/LLVM"); /* Clang/LLVM. ---------------------------------------------- */ | printf(" Clang/LLVM");fprintf(ficlog," Clang/LLVM"); /* Clang/LLVM. ---------------------------------------------- */ |
| Line 5481 void syscompilerinfo() | Line 5543 void syscompilerinfo() |
| #if defined(__SUNPRO_C) || defined(__SUNPRO_CC) | #if defined(__SUNPRO_C) || defined(__SUNPRO_CC) |
| printf(" Oracle Solaris Studio");fprintf(ficlog," Oracle Solaris Studio\n");/* Oracle Solaris Studio. ----------------------------------- */ | printf(" Oracle Solaris Studio");fprintf(ficlog," Oracle Solaris Studio\n");/* Oracle Solaris Studio. ----------------------------------- */ |
| #endif | #endif |
| printf(". ");fprintf(ficlog,". "); | printf(" for ");fprintf(ficlog," for "); |
| // http://stackoverflow.com/questions/4605842/how-to-identify-platform-compiler-from-preprocessor-macros | // http://stackoverflow.com/questions/4605842/how-to-identify-platform-compiler-from-preprocessor-macros |
| #ifdef _WIN32 // note the underscore: without it, it's not msdn official! | #ifdef _WIN32 // note the underscore: without it, it's not msdn official! |
| // Windows (x64 and x86) | // Windows (x64 and x86) |
| printf("Windows (x64 and x86) ");fprintf(ficlog,"Windows (x64 and x86) "); | |
| #elif __unix__ // all unices, not all compilers | #elif __unix__ // all unices, not all compilers |
| // Unix | // Unix |
| printf("Unix ");fprintf(ficlog,"Unix "); | |
| #elif __linux__ | #elif __linux__ |
| // linux | // linux |
| printf("linux ");fprintf(ficlog,"linux "); | |
| #elif __APPLE__ | #elif __APPLE__ |
| // Mac OS, not sure if this is covered by __posix__ and/or __unix__ though... | // Mac OS, not sure if this is covered by __posix__ and/or __unix__ though.. |
| printf("Mac OS ");fprintf(ficlog,"Mac OS "); | |
| #endif | #endif |
| /* __MINGW32__ */ | /* __MINGW32__ */ |
| Line 5505 void syscompilerinfo() | Line 5571 void syscompilerinfo() |
| /* _DEBUG // Defined when you compile with /LDd, /MDd, and /MTd. */ | /* _DEBUG // Defined when you compile with /LDd, /MDd, and /MTd. */ |
| #if UINTPTR_MAX == 0xffffffff | #if UINTPTR_MAX == 0xffffffff |
| printf(" 32-bit.\n"); fprintf(ficlog," 32-bit.\n");/* 32-bit */ | printf(" 32-bit"); fprintf(ficlog," 32-bit");/* 32-bit */ |
| #elif UINTPTR_MAX == 0xffffffffffffffff | #elif UINTPTR_MAX == 0xffffffffffffffff |
| printf(" 64-bit.\n"); fprintf(ficlog," 64-bit.\n");/* 64-bit */ | printf(" 64-bit"); fprintf(ficlog," 64-bit");/* 64-bit */ |
| #else | #else |
| printf(" wtf-bit.\n"); fprintf(ficlog," wtf-bit.\n");/* wtf */ | printf(" wtf-bit"); fprintf(ficlog," wtf-bit");/* wtf */ |
| #endif | #endif |
| /* struct utsname sysInfo; | |
| if (uname(&sysInfo) != -1) { | |
| printf(" %s %s %s %s %s\n",sysInfo.sysname, sysInfo.nodename, sysInfo.release, sysInfo.version, sysInfo.machine); | |
| fprintf(ficlog," %s %s %s %s %s\n ",sysInfo.sysname, sysInfo.nodename, sysInfo.release, sysInfo.version, sysInfo.machine); | |
| } | |
| else | |
| perror("uname() error"); | |
| */ | |
| #if defined(__GNUC__) | #if defined(__GNUC__) |
| # if defined(__GNUC_PATCHLEVEL__) | # if defined(__GNUC_PATCHLEVEL__) |
| # define __GNUC_VERSION__ (__GNUC__ * 10000 \ | # define __GNUC_VERSION__ (__GNUC__ * 10000 \ |
| Line 5530 void syscompilerinfo() | Line 5587 void syscompilerinfo() |
| # define __GNUC_VERSION__ (__GNUC__ * 10000 \ | # define __GNUC_VERSION__ (__GNUC__ * 10000 \ |
| + __GNUC_MINOR__ * 100) | + __GNUC_MINOR__ * 100) |
| # endif | # endif |
| printf("GNU C version %d.\n", __GNUC_VERSION__); | printf(" using GNU C version %d.\n", __GNUC_VERSION__); |
| fprintf(ficlog, "GNU C version %d.\n", __GNUC_VERSION__); | fprintf(ficlog, " using GNU C version %d.\n", __GNUC_VERSION__); |
| if (uname(&sysInfo) != -1) { | |
| printf("Running on: %s %s %s %s %s\n",sysInfo.sysname, sysInfo.nodename, sysInfo.release, sysInfo.version, sysInfo.machine); | |
| fprintf(ficlog,"Running on: %s %s %s %s %s\n ",sysInfo.sysname, sysInfo.nodename, sysInfo.release, sysInfo.version, sysInfo.machine); | |
| } | |
| else | |
| perror("uname() error"); | |
| printf("GNU libc version: %s\n", gnu_get_libc_version()); | |
| fprintf(ficlog,"GNU libc version: %s\n", gnu_get_libc_version()); | |
| #endif | #endif |
| // void main() | |
| // { | |
| #if defined(_MSC_VER) | #if defined(_MSC_VER) |
| /*printf("Visual C++ compiler: %s \n;", _MSC_FULL_VER);*/ | if (IsWow64()){ |
| /*fprintf(ficlog, "Visual C++ compiler: %s \n;", _MSC_FULL_VER);*/ | printf("The program (probably compiled for 32bit) is running under WOW64 (64bit) emulation.\n"); |
| fprintf(ficlog, "The program (probably compiled for 32bit) is running under WOW64 (64bit) emulation.\n"); | |
| } | |
| else{ | |
| printf("The process is not running under WOW64 (i.e probably on a 64bit Windows).\n"); | |
| frintf(ficlog,"The programm is not running under WOW64 (i.e probably on a 64bit Windows).\n"); | |
| } | |
| // printf("\nPress Enter to continue..."); | |
| // getchar(); | |
| // } | |
| #endif | #endif |
| /* printf("GNU libc version: %s\n", gnu_get_libc_version()); */ | |
| } | } |