libshout 2.3.1 fails to build on MSVC (VS 2008, Windows SDK 7.1 compilers in this case)
Error message: src\timing\timing.c(62) : fatal error C1189: #error : need time query handler
Reason: timing.c depends on preprocessor defines (HAVE_GETTIMEOFDAY or HAVE_FTIME) that are only set by the configure process which is not used with MSVC.
(FWIW, Microsoft has an _ftime function documented here: http://msdn.microsoft.com/en-us/library/z54t9z5f%28v=vs.80%29.aspx)
This is a regression as I was able to build libshout 2.2.2 on the same system after making the hacks documented here: http://mixxx.org/wiki/doku.php/build_windows_dependencies#libshout
With any new version, I start without any hacks and add them as needed. So on 2.3.1, I've only had to copy compat.h and rename include\shout\shout.h.in to shout.h so far.
Edit timing.h and add near the top:
#if defined(_WIN32) #define HAVE_FTIME 1 #include <sys/timeb.h> #endif Edit timing.c and replace the struct definition and ftime call with the following: #if defined(_WIN32) struct _timeb t; _ftime(&t); #else struct timeb t; ftime(&t); #endif