New module 'select'.
authorBruno Haible <bruno@clisp.org>
Sun, 5 Oct 2008 15:20:58 +0000 (17:20 +0200)
committerBruno Haible <bruno@clisp.org>
Sun, 5 Oct 2008 15:20:58 +0000 (17:20 +0200)
lib/sys_select.in.h
m4/sys_select_h.m4
modules/select [new file with mode: 0644]
modules/sys_select

index 396f209..5a4b7a5 100644 (file)
 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
 }
index 865a414..c537e79 100644 (file)
@@ -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 (file)
index 0000000..647dc05
--- /dev/null
@@ -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
index 4f13917..ffb5fae 100644 (file)
@@ -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