summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2008-10-05 17:20:58 +0200
committerBruno Haible <bruno@clisp.org>2008-10-05 17:20:58 +0200
commit23c6fc446a93d098c9e531234af635316a4386ef (patch)
tree1b8fdb9e78f7156fcb0ce9fa9cafc75718c70db3
parentf480ad7b0d2c0cf0e48f6dcd50f31d97d893708c (diff)
downloadgnulib-23c6fc446a93d098c9e531234af635316a4386ef.tar.gz
New module 'select'.
-rw-r--r--lib/sys_select.in.h9
-rw-r--r--m4/sys_select_h.m418
-rw-r--r--modules/select27
-rw-r--r--modules/sys_select3
4 files changed, 49 insertions, 8 deletions
diff --git a/lib/sys_select.in.h b/lib/sys_select.in.h
index 396f209478..5a4b7a5a4d 100644
--- a/lib/sys_select.in.h
+++ b/lib/sys_select.in.h
@@ -49,9 +49,14 @@
extern "C" {
# endif
-# undef select
-# define select rpl_select
+# if @GNULIB_SELECT@
+# undef select
+# define select rpl_select
extern int rpl_select (int, fd_set *, fd_set *, fd_set *, struct timeval *);
+# else
+# undef select
+# define select select_used_without_requesting_gnulib_module_select
+# endif
# ifdef __cplusplus
}
diff --git a/m4/sys_select_h.m4 b/m4/sys_select_h.m4
index 865a414426..c537e7918a 100644
--- a/m4/sys_select_h.m4
+++ b/m4/sys_select_h.m4
@@ -1,4 +1,4 @@
-# sys_select_h.m4 serial 5
+# sys_select_h.m4 serial 6
dnl Copyright (C) 2006-2008 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -7,6 +7,7 @@ dnl with or without modifications, as long as this notice is preserved.
AC_DEFUN([gl_HEADER_SYS_SELECT],
[
AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+ AC_REQUIRE([gl_SYS_SELECT_H_DEFAULTS])
AC_CACHE_CHECK([whether <sys/select.h> is self-contained],
[gl_cv_header_sys_select_h_selfcontained],
[
@@ -29,7 +30,16 @@ AC_DEFUN([gl_HEADER_SYS_SELECT],
gl_PREREQ_SYS_H_WINSOCK2
fi
AC_SUBST([SYS_SELECT_H])
- if test x$ac_cv_header_winsock2_h = xyes; then
- AC_LIBOBJ(winsock-select)
- fi
+])
+
+AC_DEFUN([gl_SYS_SELECT_MODULE_INDICATOR],
+[
+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+ AC_REQUIRE([gl_SYS_SELECT_H_DEFAULTS])
+ GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
+])
+
+AC_DEFUN([gl_SYS_SELECT_H_DEFAULTS],
+[
+ GNULIB_SELECT=0; AC_SUBST([GNULIB_SELECT])
])
diff --git a/modules/select b/modules/select
new file mode 100644
index 0000000000..647dc05470
--- /dev/null
+++ b/modules/select
@@ -0,0 +1,27 @@
+Description:
+select() function: synchronous I/O multiplexing.
+
+Files:
+lib/winsock-select.c
+
+Depends-on:
+alloca
+sys_select
+
+configure.ac:
+AC_REQUIRE([gl_HEADER_SYS_SELECT])
+if test "$ac_cv_header_winsock2_h" = yes; then
+ AC_LIBOBJ([winsock-select])
+fi
+gl_SYS_SELECT_MODULE_INDICATOR([select])
+
+Makefile.am:
+
+Include:
+#include <sys/select.h>
+
+License:
+LGPLv2+
+
+Maintainer:
+Simon Josefsson
diff --git a/modules/sys_select b/modules/sys_select
index 4f13917818..ffb5fae852 100644
--- a/modules/sys_select
+++ b/modules/sys_select
@@ -3,11 +3,9 @@ A <sys/select.h> for systems lacking it.
Files:
lib/sys_select.in.h
-lib/winsock-select.c
m4/sys_select_h.m4
Depends-on:
-alloca
include_next
sys_socket
sys_time
@@ -29,6 +27,7 @@ sys/select.h: sys_select.in.h
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''NEXT_SYS_SELECT_H''@|$(NEXT_SYS_SELECT_H)|g' \
-e 's|@''HAVE_SYS_SELECT_H''@|$(HAVE_SYS_SELECT_H)|g' \
+ -e 's|@''GNULIB_SELECT''@|$(GNULIB_SELECT)|g' \
-e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
< $(srcdir)/sys_select.in.h; \
} > $@-t