r230: Add test for even more recent kernels
[nbd.git] / configure.ac
1 dnl Configure script for NBD system
2 dnl (c) 1998 Martin Mares <mj@ucw.cz>, (c) 2000 Pavel Machek <pavel@ucw.cz>,
3 dnl (c) 2003-2006 Wouter Verhelst <wouter@debian.org>
4 AC_INIT([nbd],[SVN],[wouter@debian.org])
5 AM_INIT_AUTOMAKE(foreign dist-bzip2)
6 AM_MAINTAINER_MODE
7
8 AC_ARG_ENABLE(
9   lfs,
10   AC_HELP_STRING(--disable-lfs,Disable Large File Support (default on)),
11   [
12     if test "x$enableval" = "xyes" ; then
13       NBD_LFS=1
14     else
15       NBD_LFS=0
16     fi
17   ],
18   [NBD_LFS=1]
19 )
20 AC_MSG_CHECKING([whether Large File Support should be enabled])
21 if test $NBD_LFS -eq 1; then
22   AC_DEFINE(NBD_LFS,1, [Define to 1 if Large File Support should be enabled])
23   AC_MSG_RESULT([yes])
24 else
25   AC_DEFINE(NBD_LFS,0)
26   AC_MSG_RESULT([no])
27 fi
28
29 AC_ARG_ENABLE(
30   syslog,
31   AC_HELP_STRING(--enable-syslog,Enable Syslog logging),
32   [
33     if test "x$enableval" = "xyes" ; then
34       ISSERVER=1
35     else
36       ISSERVER=0
37     fi
38   ],
39   [ISSERVER=0]
40 )
41 AC_MSG_CHECKING([whether syslog logging is requested])
42 if test $ISSERVER -eq 1; then
43   AC_DEFINE(ISSERVER,1, [Define to 1 if you want nbd-server to log through syslog])
44   AC_MSG_RESULT([yes])
45 else
46   AC_MSG_RESULT([no])
47 fi
48
49 AC_PROG_CC
50 AC_PROG_CPP
51 AC_PROG_INSTALL
52 AC_CANONICAL_HOST
53 AC_C_BIGENDIAN
54 AC_C_INLINE
55 AC_C_CONST
56 AC_CHECK_SIZEOF(unsigned short int)
57 AC_CHECK_SIZEOF(unsigned int)
58 AC_CHECK_SIZEOF(unsigned long int)
59 AC_CHECK_SIZEOF(unsigned long long int)
60 AC_CHECK_FUNCS([llseek alarm gethostbyname inet_ntoa memset socket strerror strstr])
61 AC_FUNC_FORK
62 AC_FUNC_SETVBUF_REVERSED
63 AC_MSG_CHECKING(whether client should be built)
64 case $host_os in
65      linux*) sbin_PROGRAMS=nbd-client
66               AC_MSG_RESULT(yes)
67               ;;
68      *) AC_MSG_RESULT(no) ;;
69 esac
70 AC_MSG_CHECKING(where to find a working nbd.h)
71 AC_TRY_COMPILE([#define u32 int
72 #define u64 int
73 #define __be32 int
74 #define __be64 int
75 #include "nbd.h"
76 ],
77 [int foo=NBD_CMD_DISC], 
78   [AC_DEFINE(NBD_H_LOCAL, 1, Set to 1 if a (2.6) nbd.h can be found in the current directory)
79     NBD_H='"nbd.h"'],
80   AC_TRY_COMPILE([#define u32 int
81 #define u64 int
82 #define __be32 int
83 #define __be64 int
84 #include <linux/nbd.h>
85   ],
86 [int foo=NBD_CMD_DISC],
87     [AC_DEFINE(NBD_H_LINUX, 1, Set to 1 if a (2.6) nbd.h can be found in the linux directory in the search path)
88       NBD_H='<linux/nbd.h>'],
89     AC_TRY_COMPILE([#include <linux/nbd.h>
90       ],
91       [int foo=NBD_CMD_DISC],
92       [AC_DEFINE(NBD_H_LINUX, 1, Set to 1 if a (2.6) nbd.h can be found in the linux directory in the search path)
93         NBD_H='<linux/nbd.h>'],
94     AC_MSG_ERROR(Could not find an nbd.h from 2.6 or above.)
95     )
96   )
97 )
98 if test -f nbd.h
99 then
100   if test $NBD_H='<linux/nbd.h>'
101   then
102     AC_MSG_WARN([there is a local nbd.h, but it is from the 2.4-series of kernels. Using the system-provided, working, nbd.h])
103   fi
104 fi
105 AC_MSG_RESULT($NBD_H)
106 AC_CHECK_HEADERS([sys/mount.h],,,
107 [[#include <sys/param.h>
108 ]])
109 AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h sys/ioctl.h sys/socket.h syslog.h])
110 AM_PATH_GLIB_2_0(2.6.0, [HAVE_GLIB=yes], AC_MSG_ERROR([Missing glib]))
111 AC_HEADER_SYS_WAIT
112 AC_TYPE_OFF_T
113 AC_TYPE_PID_T
114 AC_SUBST(sbin_PROGRAMS)
115 nbd_server_CPPFLAGS=$nbd_server_CPPFLAGS" -DSYSCONFDIR='\"$sysconfdir\"'"
116 AC_SUBST(nbd_server_CPPFLAGS)
117 AC_CONFIG_HEADERS([config.h])
118 AC_CONFIG_FILES([Makefile Doxyfile nbd-server.1 nbd-server.5])
119 AC_OUTPUT
120