changeset 13245:46c3f440d469

ioctl: Move autoconf macro to a .m4 file.
author Bruno Haible <bruno@clisp.org>
date Mon, 19 Apr 2010 22:24:13 +0200
parents 7aaa97d4cc50
children 89fadace6a88
files ChangeLog m4/ioctl.m4 modules/ioctl
diffstat 3 files changed, 48 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Mon Apr 19 08:50:09 2010 -0700
+++ b/ChangeLog	Mon Apr 19 22:24:13 2010 +0200
@@ -1,3 +1,11 @@
+2010-04-19  Bruno Haible  <bruno@clisp.org>
+
+	ioctl: Move autoconf macro to a .m4 file.
+	* m4/ioctl.m4: New file, extracted from modules/ioctl.
+	* modules/ioctl (Files): Add it.
+	(configure.ac): Simply invoke gl_FUNC_IOCTL.
+	Reported by Ian Beckwith <ianb@erislabs.net>.
+
 2010-04-18  Andreas Gruenbacher  <agruen@suse.de>
             Bruno Haible  <bruno@clisp.org>
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/m4/ioctl.m4	Mon Apr 19 22:24:13 2010 +0200
@@ -0,0 +1,38 @@
+# ioctl.m4 serial 1
+dnl Copyright (C) 2008-2010 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_IOCTL],
+[
+  AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS])
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    dnl Even if the 'socket' module is not used here, another part of the
+    dnl application may use it and pass file descriptors that refer to
+    dnl sockets to the ioctl() function. So enable the support for sockets.
+    AC_LIBOBJ([ioctl])
+    gl_REPLACE_SYS_IOCTL_H
+  else
+    AC_CHECK_FUNCS([ioctl])
+    dnl On glibc systems, the second parameter is 'unsigned long int request',
+    dnl not 'int request'. We cannot simply cast the function pointer, but
+    dnl instead need a wrapper.
+    AC_CACHE_CHECK([for ioctl with POSIX signature],
+      [gl_cv_func_ioctl_posix_signature],
+      [AC_COMPILE_IFELSE(
+         [AC_LANG_PROGRAM(
+            [[#include <sys/ioctl.h>]],
+            [[extern int ioctl (int, int, ...);]])
+         ],
+         [gl_cv_func_ioctl_posix_signature=yes],
+         [gl_cv_func_ioctl_posix_signature=no])
+      ])
+    if test $gl_cv_func_ioctl_posix_signature != yes; then
+      REPLACE_IOCTL=1
+      AC_LIBOBJ([ioctl])
+      gl_REPLACE_SYS_IOCTL_H
+    fi
+  fi
+])
--- a/modules/ioctl	Mon Apr 19 08:50:09 2010 -0700
+++ b/modules/ioctl	Mon Apr 19 22:24:13 2010 +0200
@@ -4,6 +4,7 @@
 Files:
 lib/ioctl.c
 lib/w32sock.h
+m4/ioctl.m4
 
 Depends-on:
 sys_ioctl
@@ -11,35 +12,7 @@
 errno
 
 configure.ac:
-AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS])
-AC_REQUIRE([gl_HEADER_SYS_SOCKET])
-if test "$ac_cv_header_winsock2_h" = yes; then
-  dnl Even if the 'socket' module is not used here, another part of the
-  dnl application may use it and pass file descriptors that refer to
-  dnl sockets to the ioctl() function. So enable the support for sockets.
-  AC_LIBOBJ([ioctl])
-  gl_REPLACE_SYS_IOCTL_H
-else
-  AC_CHECK_FUNCS([ioctl])
-  dnl On glibc systems, the second parameter is 'unsigned long int request',
-  dnl not 'int request'. We cannot simply cast the function pointer, but
-  dnl instead need a wrapper.
-  AC_CACHE_CHECK([for ioctl with POSIX signature],
-    [gl_cv_func_ioctl_posix_signature],
-    [AC_COMPILE_IFELSE(
-       [AC_LANG_PROGRAM(
-          [[#include <sys/ioctl.h>]],
-          [[extern int ioctl (int, int, ...);]])
-       ],
-       [gl_cv_func_ioctl_posix_signature=yes],
-       [gl_cv_func_ioctl_posix_signature=no])
-    ])
-  if test $gl_cv_func_ioctl_posix_signature != yes; then
-    REPLACE_IOCTL=1
-    AC_LIBOBJ([ioctl])
-    gl_REPLACE_SYS_IOCTL_H
-  fi
-fi
+gl_FUNC_IOCTL
 gl_SYS_IOCTL_MODULE_INDICATOR([ioctl])
 
 Makefile.am: