X-Git-Url: http://git.alex.org.uk diff --git a/configure.ac b/configure.ac index 68ef533..568f661 100644 --- a/configure.ac +++ b/configure.ac @@ -1,10 +1,22 @@ dnl Configure script for NBD system dnl (c) 1998 Martin Mares , (c) 2000 Pavel Machek , -dnl (c) 2003-2004 Wouter Verhelst -AC_INIT([nbd],[2.7],[wouter@debian.org]) -AM_INIT_AUTOMAKE(nbd, 2.7) +dnl (c) 2003-2004 Wouter Verhelst +AC_INIT([nbd],[SVN],[wouter@debian.org]) +AM_INIT_AUTOMAKE(foreign dist-bzip2) +AM_MAINTAINER_MODE -AC_ARG_ENABLE(lfs, AC_HELP_STRING([--enable-lfs],[Enable Large File Support]), [NBD_LFS=1], [NBD_LFS=0]) +AC_ARG_ENABLE( + lfs, + AC_HELP_STRING(--disable-lfs,Disable Large File Support (default on)), + [ + if test "x$enableval" = "xyes" ; then + NBD_LFS=1 + else + NBD_LFS=0 + fi + ], + [NBD_LFS=1] +) 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]) @@ -14,7 +26,18 @@ else 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]) @@ -22,15 +45,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 @@ -48,23 +66,48 @@ 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) +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_COMPILE([#define u32 int +#define u64 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 +#include + ], +[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=''], + AC_MSG_ERROR(Could not find an nbd.h from 2.6 or above.) + ) +) +if test -f nbd.h +then + if test $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_CHECK_HEADERS([linux/nbd.h],,, -[[#define u32 unsigned int -#define u64 unsigned long int +AC_MSG_RESULT($NBD_H) +AC_CHECK_HEADERS([sys/mount.h],,, +[[#include ]]) -AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h sys/ioctl.h sys/mount.h sys/socket.h syslog.h]) +AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h sys/ioctl.h sys/socket.h syslog.h]) +AM_PATH_GLIB_2_0(2.6.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_FILES([Makefile]) +nbd_server_CPPFLAGS=$nbd_server_CPPFLAGS" -DSYSCONFDIR='\"$sysconfdir\"'" +AC_SUBST(nbd_server_CPPFLAGS) +AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_FILES([Makefile Doxyfile]) AC_OUTPUT