-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)
+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"
+],
+[int 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>
+ ],
+[int 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>
+ ],
+ [int 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>'
+ 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