gr_pwin32.m4: Replace inline sleep() function

Building libltdl recursively with MinGW failed with an error of "sleep"
being redefined.  Commenting out the sleep() definition in config.h.in
resulted in libtdl compiling but a linker failure in libyaesu as
"_sleep" was not defined.

A bit of searching reveals that the MS Windows API does not include
"sleep" and MinGW does not include it either, hence the definition in
gr_pwin32.m4 from the GNU Radio project.  Uopn finding a MinGW User
thread from 2007 that discussed this very issue, the following message
hinted that using a CPP #define to wrap Windows Sleep() may work:

http://mingw.5.n7.nabble.com/Help-where-is-the-C-language-sleep-function-tp8921p8925.html

And indeed it seems to.  Compilation is now clean with recursive libltdl
and the rest of Hamlib, but does it work?
Hamlib-3.0
Nate Bargmann 2013-04-24 21:58:50 -05:00
rodzic 74a6e7e6b9
commit a16dd4797a
1 zmienionych plików z 6 dodań i 5 usunięć

Wyświetl plik

@ -89,7 +89,8 @@ int usleep(unsigned long usec); /* SUSv2 */
#include <winbase.h>
#endif
/* TODO: what about SleepEx? */
static inline unsigned int sleep (unsigned int nb_sec) { Sleep(nb_sec*1000); return 0; }
/* static inline unsigned int sleep (unsigned int nb_sec) { Sleep(nb_sec*1000); return 0; } */
#define sleep(seconds) Sleep((seconds)*1000)
#endif
#ifndef HAVE_GETTIMEOFDAY