r319: Merge from trunk
[nbd.git] / configure.ac
index 3ebb983..9cc59e6 100644 (file)
@@ -82,6 +82,40 @@ AC_ARG_ENABLE(
   ]
 )
 
+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
+        AC_MSG_ERROR("specified klcc is not executable or does not exist.")
+      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
@@ -98,7 +132,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) ;;
@@ -109,8 +143,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
@@ -118,13 +157,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.)