r336: Cut out klcc usage. It's broken, silly to even try.
[nbd.git] / configure.ac
index 2a180dc..3e5663a 100644 (file)
@@ -38,6 +38,7 @@ AC_ARG_ENABLE(
   ],
   [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])
@@ -46,6 +47,41 @@ else
   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_PROG_CC
 AC_PROG_CPP
 AC_PROG_INSTALL
@@ -62,7 +98,7 @@ AC_FUNC_FORK
 AC_FUNC_SETVBUF_REVERSED
 AC_MSG_CHECKING(whether client should be built)
 case $host_os in
-     linux*) sbin_PROGRAMS=nbd-client
+     linux*) sbin_PROGRAMS="$sbin_PROGRAMS nbd-client"
              AC_MSG_RESULT(yes)
               ;;
      *) AC_MSG_RESULT(no) ;;
@@ -73,8 +109,13 @@ AC_TRY_COMPILE([#define u32 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
@@ -82,13 +123,23 @@ AC_TRY_COMPILE([#define u32 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 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_MSG_ERROR(Could not find an nbd.h from 2.6 or above.)
@@ -97,12 +148,15 @@ AC_TRY_COMPILE([#define u32 int
 )
 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>
 ]])