r74: * Added checks for GLib (not used yet, but will be in this release)
[nbd.git] / configure.ac
index 94dc1f1..989733f 100644 (file)
@@ -1,9 +1,21 @@
 dnl Configure script for NBD system
 dnl (c) 1998 Martin Mares <mj@ucw.cz>, (c) 2000 Pavel Machek <pavel@ucw.cz>,
-dnl (c) 2003-2004 Wouter Verhelst
-AC_INIT([nbd],[2.7],[wouter@debian.org])
-AM_INIT_AUTOMAKE(nbd, 2.7)
-AC_ARG_ENABLE(lfs, AC_HELP_STRING([--enable-lfs],[Enable Large File Support]), [NBD_LFS=1], [NBD_LFS=0])
+dnl (c) 2003-2004 Wouter Verhelst <wouter@debian.org>
+AC_INIT([nbd],[2.7.99pre2.8],[wouter@debian.org])
+AM_INIT_AUTOMAKE()
+
+AC_ARG_ENABLE(
+  lfs,
+  AC_HELP_STRING(--enable-lfs,Enable Large File Support),
+  [
+    if test "x$enableval" = "xyes" ; then
+      NBD_LFS=1
+    else
+      NBD_LFS=0
+    fi
+  ],
+  [NBD_LFS=0]
+)
 AC_MSG_CHECKING([whether Large File Support should be enabled])
 if test $NBD_LFS -eq 1; then
   AC_DEFINE(NBD_LFS,1, [Define to 1 if Large File Support should be enabled])
@@ -12,7 +24,19 @@ else
   AC_DEFINE(NBD_LFS,0)
   AC_MSG_RESULT([no])
 fi
-AC_ARG_ENABLE(syslog, AC_HELP_STRING([--enable-syslog],[Enable Syslog logging]), [ISSERVER=1], [ISSERVER=0])
+
+AC_ARG_ENABLE(
+  syslog,
+  AC_HELP_STRING(--enable-syslog,Enable Syslog logging),
+  [
+    if test "x$enableval" = "xyes" ; then
+      ISSERVER=1
+    else
+      ISSERVER=0
+    fi
+  ],
+  [ISSERVER=0]
+)
 AC_MSG_CHECKING([whether syslog logging is requested])
 if test $ISSERVER -eq 1; then
   AC_DEFINE(ISSERVER,1, [Define to 1 if you want nbd-server to log through syslog])
@@ -20,15 +44,10 @@ if test $ISSERVER -eq 1; then
 else
   AC_MSG_RESULT([no])
 fi
+
 AC_PROG_CC
-AC_MSG_CHECKING(whether warnings should be enabled)
-if test -n "$GCC" ; then
-  AC_MSG_RESULT(yes)
-  CFLAGS="$CFLAGS -Wall -W -Wno-parentheses -Wstrict-prototypes -Wno-unused"
-else
-  AC_MSG_RESULT(no)
-fi
-#AC_PROG_INSTALL
+AC_PROG_CPP
+AC_PROG_INSTALL
 AC_C_BIGENDIAN
 AC_C_INLINE
 AC_C_CONST
@@ -46,23 +65,35 @@ case "`uname`" in
               ;;
      *) AC_MSG_RESULT(no) ;;
 esac
-AC_MSG_CHECKING(whether there is a local nbd.h)
-if test -f nbd.h; then
-  AC_DEFINE(HAVE_LOCAL_NBD_H,1, [Define to 1 if you want to use a local nbd.h (not provided, must be supplied by you])
-  AC_MSG_RESULT(yes)
-else
-  AC_MSG_RESULT(no)
-fi
-AC_CHECK_HEADERS([linux/nbd.h],,,
-[[#define u32 unsigned int
-#define u64 unsigned long int
-]])
+AC_MSG_CHECKING(where to find a working nbd.h)
+dnl We need to check for NBD_CMD_DISC, but that's part of an enum, it is not
+dnl #define'd. Therefore, we check for something which is differently #define'd
+dnl in the old or new versions, even if we don't really care about that.
+dnl This might break at some time, but it should work for now, so...
+AC_TRY_CPP([#include "nbd.h"
+#ifdef LOCAL_END_REQUEST
+#error not here
+#endif
+], 
+  [AC_DEFINE(NBD_H, "nbd.h", Set to where a (recent enough) nbd.h can be found)
+    NBD_H='"nbd.h"'],
+  AC_TRY_CPP([#include <linux/nbd.h>
+#ifdef LOCAL_END_REQUEST
+#error not here
+#endif
+],
+    [AC_DEFINE(NBD_H, <linux/nbd.h>) NBD_H='<linux/nbd.h>'],
+    AC_MSG_ERROR(Could not find a (recent enough) nbd.h)
+  )
+)
+AC_MSG_RESULT($NBD_H)
 AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h sys/ioctl.h sys/mount.h sys/socket.h syslog.h])
+AM_PATH_GLIB_2_0(2.2.0, [HAVE_GLIB=yes], AC_MSG_ERROR([Missing glib]))
 AC_HEADER_SYS_WAIT
 AC_TYPE_OFF_T
 AC_TYPE_PID_T
 AC_SUBST(sbin_PROGRAMS)
-AM_CONFIG_HEADER(config.h)
+AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_FILES([Makefile])
 AC_OUTPUT