tCheck for select() function. - vaccinewars - be a doctor and try to vaccinate the world
(HTM) git clone git://src.adamsgaard.dk/vaccinewars
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit b36bd78ee5b0889699c42507f141c44542c453c0
(DIR) parent ad47d9c630d8d3b0261beb097a282c97aaa4ca16
(HTM) Author: Ben Webb <ben@salilab.org>
Date: Sun, 29 Mar 2015 00:02:23 -0700
Check for select() function.
Diffstat:
M CMakeLists.txt | 16 +++++++++++++++-
M config-cmake.h.in | 6 +++---
M src/curses_client/curses_client.c | 2 +-
M src/util.c | 2 +-
4 files changed, 20 insertions(+), 6 deletions(-)
---
(DIR) diff --git a/CMakeLists.txt b/CMakeLists.txt
t@@ -4,6 +4,7 @@ project(dopewars)
set(VERSION "SVN")
include(CheckIncludeFiles)
+include(CheckFunctionExists)
include(GNUInstallDirs)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
t@@ -22,12 +23,25 @@ check_include_files(sys/time.h HAVE_SYS_TIME_H)
check_include_files(unistd.h HAVE_UNISTD_H)
check_include_files(stdlib.h HAVE_STDLIB_H)
+# Check for socket and select even if networking gets manually
+# disabled below, since select is used if available for
+# millisecond sleeping
+check_function_exists(socket HAVE_SOCKET)
+check_function_exists(gethostbyname HAVE_GETHOSTBYNAME)
+check_function_exists(select HAVE_SELECT)
+if (${HAVE_SOCKET} AND ${HAVE_GETHOSTBYNAME} AND ${HAVE_SELECT})
+ set(HAVE_NETWORK ON)
+else()
+ set(HAVE_NETWORK OFF)
+endif()
+
# Process client options
option(GUI_CLIENT "include graphical client (GTK+/Win32)" ON)
option(CURSES_CLIENT "include curses client" ON)
option(GUI_SERVER "use a simple GTK+/Win32 GUI for the server" "probe")
option(NETWORKING
- "should dopewars use TCP/IP networking to connect to servers?" ON)
+ "should dopewars use TCP/IP networking to connect to servers?"
+ ${HAVE_NETWORK})
option(WITH_ESD "support ESD sound output" ON)
option(WITH_SDL "support SDL sound output" ON)
(DIR) diff --git a/config-cmake.h.in b/config-cmake.h.in
t@@ -52,7 +52,7 @@
#undef HAVE_FORK
/* Define to 1 if you have the `gethostbyname' function. */
-#undef HAVE_GETHOSTBYNAME
+#cmakedefine HAVE_GETHOSTBYNAME
/* Define to 1 if you have the `getopt' function. */
#undef HAVE_GETOPT
t@@ -85,10 +85,10 @@
#undef HAVE_SDL_MIXER
/* Define to 1 if you have the `select' function. */
-#undef HAVE_SELECT
+#cmakedefine HAVE_SELECT
/* Define to 1 if you have the `socket' function. */
-#undef HAVE_SOCKET
+#cmakedefine HAVE_SOCKET
/* Do we have the socklen_t data type? */
#undef HAVE_SOCKLEN_T
(DIR) diff --git a/src/curses_client/curses_client.c b/src/curses_client/curses_client.c
t@@ -2502,7 +2502,7 @@ static void Curses_DoGame(Player *Play)
}
}
if (FD_ISSET(0, &readfs)) {
-#elif HAVE_SELECT
+#elif defined(HAVE_SELECT)
FD_ZERO(&readfs);
FD_SET(0, &readfs);
MaxSock = 1;
(DIR) diff --git a/src/util.c b/src/util.c
t@@ -231,7 +231,7 @@ void ReleaseLock(FILE * fp)
*/
void MicroSleep(int microsec)
{
-#if HAVE_SELECT || CYGWIN
+#if defined(HAVE_SELECT) || CYGWIN
struct timeval tv;
tv.tv_sec = 0;