Mercurial > hg > octave-lyh > gnulib-hg
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 +++ b/ChangeLog @@ -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>
new file mode 100644 --- /dev/null +++ b/m4/ioctl.m4 @@ -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 +++ b/modules/ioctl @@ -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: