changeset 10586:ca7f9b88efc1

New module 'select'.
author Bruno Haible <bruno@clisp.org>
date Sun, 05 Oct 2008 17:20:58 +0200
parents f6baf6887538
children 11a59edc66bd
files lib/sys_select.in.h m4/sys_select_h.m4 modules/select modules/sys_select
diffstat 4 files changed, 49 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/lib/sys_select.in.h	Sun Oct 05 17:01:24 2008 +0200
+++ b/lib/sys_select.in.h	Sun Oct 05 17:20:58 2008 +0200
@@ -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
 }
--- a/m4/sys_select_h.m4	Sun Oct 05 17:01:24 2008 +0200
+++ b/m4/sys_select_h.m4	Sun Oct 05 17:20:58 2008 +0200
@@ -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 @@
 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 @@
     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])
+])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/select	Sun Oct 05 17:20:58 2008 +0200
@@ -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
--- a/modules/sys_select	Sun Oct 05 17:01:24 2008 +0200
+++ b/modules/sys_select	Sun Oct 05 17:20:58 2008 +0200
@@ -3,11 +3,9 @@
 
 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 @@
 	      -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