# HG changeset patch # User Matti Hamalainen # Date 1425515830 -7200 # Node ID af2c9f76c78259c0cb91d3fc7f993e6fc5025722 # Parent 7842e977d3df3aa8e620b885d06e19a2ddab9db9 MinGW does not define PRI* format specifiers, so define them ourselves :S diff -r 7842e977d3df -r af2c9f76c782 src/dmlib.h --- a/src/dmlib.h Thu Mar 05 02:35:21 2015 +0200 +++ b/src/dmlib.h Thu Mar 05 02:37:10 2015 +0200 @@ -29,6 +29,53 @@ # define __USE_MINGW_ANSI_STDIO 1 # endif #endif + +#if !defined(DM_ARCH) +# if defined(__LP64__) || defined(_LP64) +# define DM_ARCH 64 +# else +# define DM_ARCH 32 +# endif +#endif + +#if !defined(DM_ARCH) && (defined(__WIN64) || defined(_WIN64)) +# define DM_ARCH 64 +#endif + +#if !defined(DM_ARCH) && (defined(__WIN32) || defined(_WIN32)) +# define DM_ARCH 32 +#endif + + +// Do we have a valid arch? +// If so, set some printf specifiers +#if DM_ARCH == 32 +# define DM_ARCH_32BIT 1 +# define DM_PRIu32 "u" +# define DM_PRId32 "d" +# define DM_PRIx32 "x" +# define DM_PRIu64 "llu" +# define DM_PRId64 "lld" +# define DM_PRIx64 "llx" +# define DM_PRIu_SIZE_T "u" +# define DM_PRId_SSIZE_T "d" +# define DM_PRIx_SIZE_T "x" +#elif DM_ARCH == 64 +# define DM_ARCH_64BIT 1 +# define DM_PRIu32 "u" +# define DM_PRId32 "d" +# define DM_PRIx32 "x" +# define DM_PRIu64 "lu" +# define DM_PRId64 "ld" +# define DM_PRIx64 "lx" +# define DM_PRIu_SIZE_T "lu" +# define DM_PRId_SSIZE_T "ld" +# define DM_PRIx_SIZE_T "lx" +#else +# error Could not determine architecture (32/64bit), please define DM_ARCH=32 or 64 +#endif + + #ifdef __cplusplus extern "C" { #endif