Upstream tarball 9740
[amule.git] / m4 / fallocate.m4
blobb2f984779400bba1f7bd07da80097f58c9f63452
1 #                                                       -*- Autoconf -*-
2 # This file is part of the aMule Project.
4 # Copyright (c) 2003-2008 aMule Team ( admin@amule.org / http://www.amule.org )
6 # Any parts of this program derived from the xMule, lMule or eMule project,
7 # or contributed by third-party developers are copyrighted by their
8 # respective authors.
10 # This program is free software; you can redistribute it and/or modify
11 # it under the terms of the GNU General Public License as published by
12 # the Free Software Foundation; either version 2 of the License, or
13 # (at your option) any later version.
15 # This program is distributed in the hope that it will be useful,
16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 # GNU General Public License for more details.
19
20 # You should have received a copy of the GNU General Public License
21 # along with this program; if not, write to the Free Software
22 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
25 AC_DEFUN([MULE_CHECK_FALLOCATE],
27         AC_MSG_CHECKING([for fallocate])
28         MULE_BACKUP([CPPFLAGS])
29         MULE_APPEND([CPPFLAGS], [$WX_CPPFLAGS])
30         AC_LINK_IFELSE([
31                 AC_LANG_PROGRAM([[
32                         #define _GNU_SOURCE
33                         #ifdef HAVE_FCNTL_H
34                         #  include <fcntl.h>
35                         #endif
36                         #include <linux/falloc.h>
37                 ]], [[
38                         fallocate(0, 0, 0, 0);
39                 ]])
40         ], [
41                 AH_TEMPLATE([HAVE_FALLOCATE], [Define to 1 if you have the fallocate() function.])
42                 AC_DEFINE([HAVE_FALLOCATE])
43                 AC_MSG_RESULT([yes])
44         ], [
45                 AC_MSG_RESULT([no])
46         ])
47         MULE_RESTORE([CPPFLAGS])
50         AC_MSG_CHECKING([for SYS_fallocate])
51         AC_LINK_IFELSE([
52                 AC_LANG_PROGRAM([[
53                         #include <sys/syscall.h>
54                         #include <sys/types.h>
55                         #include <unistd.h>
56                 ]], [[
57                         syscall(SYS_fallocate, 0, (loff_t)0, (loff_t)0);
58                 ]])
59         ], [
60                 AH_TEMPLATE([HAVE_SYS_FALLOCATE], [Define to 1 if you have the SYS_fallocate syscall number.])
61                 AC_DEFINE([HAVE_SYS_FALLOCATE])
62                 AC_MSG_RESULT([yes])
63         ], [
64                 AC_MSG_RESULT([no])
65         ])
67         AC_MSG_CHECKING([for posix_fallocate])
68         AC_LINK_IFELSE([
69                 AC_LANG_PROGRAM([[
70                         #define _XOPEN_SOURCE 600
71                         #include <stdlib.h>
72                         #ifdef HAVE_FCNTL_H
73                         #  include <fcntl.h>
74                         #endif
75                 ]], [[
76                         posix_fallocate(0, 0, 0);
77                 ]])
78         ], [
79                 AH_TEMPLATE([HAVE_POSIX_FALLOCATE], [Define to 1 if you have posix_fallocate() and it should be used.])
80                 AC_DEFINE([HAVE_POSIX_FALLOCATE])
81                 AC_MSG_RESULT([yes])
82         ], [
83                 AC_MSG_RESULT([no])
84         ])