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 <wouter@debian.org>
+dnl (c) 2003-2006 Wouter Verhelst <wouter@debian.org>
AC_INIT([nbd],[SVN],[wouter@debian.org])
AM_INIT_AUTOMAKE(foreign dist-bzip2)
AM_MAINTAINER_MODE
],
[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])
AC_MSG_RESULT([no])
fi
+AC_ARG_ENABLE(
+ debug,
+ AC_HELP_STRING(--enable-debug,Build a debugging version of the server),
+ [
+ if test "x$enableval" = "xyes"; then
+ DODBG=1
+ else
+ DODBG=0
+ fi
+ ],
+ [DODBG=0]
+)
+
+AC_MSG_CHECKING([whether a debugging version is requested])
+if test $DODBG -eq 1; then
+ AC_MSG_RESULT([yes])
+ if test $ISSERVER -eq 1; then
+ AC_MSG_ERROR([You requested both syslog logging and a debugging version of the server. Bad idea!])
+ fi
+ AC_DEFINE(DODBG,1,[Define if you want a debugging version of nbd-server (lots of copious output)])
+ AC_DEFINE(NOFORK,1,[Define if you don't want the nbd-server to fork()])
+else
+ AC_MSG_RESULT([no])
+fi
+
+AC_ARG_ENABLE(
+ sdp,
+ AC_HELP_STRING(--enable-sdp,Build a version of nbd-server with support for the Socket Direct Protocol (SDP). Requires you to build and install a kernel with the InfiniBand patches (default disabled)),
+ [
+ if test "x$enableval" = "xyes"; then
+ AC_DEFINE(WITH_SDP, 1, [Define to 1 if you have and want support for the Socket Direct Protocol])
+ fi
+ ]
+)
+
+AC_MSG_CHECKING(for klcc)
+AC_ARG_WITH(
+ klcc,
+ AC_HELP_STRING(--with-klcc,[Build a version of nbd-client against klibc (for initramfs uses). Specify the path to 'klcc' (default autodetected)]),
+ [
+ if test "x$withval" != "x"; then
+ if test -x "$withval"; then
+ KLCC="$withval"
+ sbin_PROGRAMS=knbd-client
+ AC_MSG_RESULT($KLCC)
+ else
+ if test "$withval" = "no"; then
+ KLCC=""
+ AC_MSG_RESULT(Disabled)
+ else
+ AC_MSG_ERROR([specified klcc ($withval) is not executable or does not exist.])
+ fi
+ fi
+ else
+ if test -x /usr/bin/klcc; then
+ KLCC=/usr/bin/klcc
+ sbin_PROGRAMS=knbd-client
+ AC_MSG_RESULT($KLCC)
+ else
+ AC_MSG_ERROR([klcc not found! Please specify it as a parameter to the --with-klcc option]);
+ fi
+ fi
+ ],
+ [ if test -x /usr/bin/klcc; then
+ sbin_PROGRAMS=knbd-client
+ KLCC=/usr/bin/klcc
+ AC_MSG_RESULT($KLCC)
+ else
+ AC_MSG_RESULT(not found)
+ fi
+ ]
+)
+AC_SUBST(KLCC)
+
AC_PROG_CC
AC_PROG_CPP
AC_PROG_INSTALL
+AC_CANONICAL_HOST
AC_C_BIGENDIAN
AC_C_INLINE
AC_C_CONST
AC_FUNC_FORK
AC_FUNC_SETVBUF_REVERSED
AC_MSG_CHECKING(whether client should be built)
-case "`uname`" in
- *Linux*) sbin_PROGRAMS=nbd-client
+case $host_os in
+ linux*) sbin_PROGRAMS="$sbin_PROGRAMS nbd-client"
AC_MSG_RESULT(yes)
;;
*) AC_MSG_RESULT(no) ;;
AC_MSG_CHECKING(where to find a working nbd.h)
AC_TRY_COMPILE([#define u32 int
#define u64 int
+#define __be32 int
+#define __be64 int
#include "nbd.h"
+#ifdef __GNUC__
+#define UNUSED __attribute__((__unused__))
+#else
+#define UNUSED
+#endif
],
-[int foo=NBD_CMD_DISC],
+[int UNUSED foo=NBD_CMD_DISC],
[AC_DEFINE(NBD_H_LOCAL, 1, Set to 1 if a (2.6) nbd.h can be found in the current directory)
NBD_H='"nbd.h"'],
AC_TRY_COMPILE([#define u32 int
#define u64 int
+#define __be32 int
+#define __be64 int
#include <linux/nbd.h>
+#ifdef __GNUC__
+#define UNUSED __attribute__((__unused__))
+#else
+#define UNUSED
+#endif
],
-[int foo=NBD_CMD_DISC],
+[int UNUSED foo=NBD_CMD_DISC],
[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)
NBD_H='<linux/nbd.h>'],
+ AC_TRY_COMPILE([#include <linux/nbd.h>
+#ifdef __GNUC__
+#define UNUSED __attribute__((__unused__))
+#else
+#define UNUSED
+#endif
+ ],
+ [int UNUSED foo=NBD_CMD_DISC],
+ [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)
+ NBD_H='<linux/nbd.h>'],
AC_MSG_ERROR(Could not find an nbd.h from 2.6 or above.)
+ )
)
)
if test -f nbd.h
then
- if test $NBD_H='<linux/nbd.h>'
+ if test "$NBD_H" = '<linux/nbd.h>'
then
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])
fi
fi
AC_MSG_RESULT($NBD_H)
+AC_SEARCH_LIBS(bind, socket,, AC_MSG_ERROR([Could not find an implementation of the bind() system call]))
+AC_SEARCH_LIBS(inet_ntoa, nsl,, AC_MSG_ERROR([Could not find an implementation of the inet_ntoa() system call]))
+AC_SEARCH_LIBS(daemon, resolv,, AC_MSG_ERROR([Could not find an implementation of the daemon() system call]))
AC_CHECK_HEADERS([sys/mount.h],,,
[[#include <sys/param.h>
]])
nbd_server_CPPFLAGS=$nbd_server_CPPFLAGS" -DSYSCONFDIR='\"$sysconfdir\"'"
AC_SUBST(nbd_server_CPPFLAGS)
AC_CONFIG_HEADERS([config.h])
-AC_CONFIG_FILES([Makefile Doxyfile])
+AC_CONFIG_FILES([Makefile Doxyfile nbd-server.1 nbd-server.5])
AC_OUTPUT