X-Git-Url: http://git.alex.org.uk diff --git a/configure.ac b/configure.ac index 5965ad3..6ebfa1a 100644 --- a/configure.ac +++ b/configure.ac @@ -1,25 +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.8.0-rc1],[wouter@debian.org]) +dnl (c) 2003-2006 Wouter Verhelst +AC_INIT([nbd],[2.9.21a],[wouter@debian.org]) AM_INIT_AUTOMAKE(foreign dist-bzip2) AM_MAINTAINER_MODE -dnl Assume we want LFS. If there's some weird operating system out there that -dnl doesn't support it, we can always add a check. -dnl AC_ARG_ENABLE( -dnl lfs, -dnl AC_HELP_STRING(--enable-lfs,Enable Large File Support), -dnl [ -dnl if test "x$enableval" = "xyes" ; then -dnl NBD_LFS=1 -dnl else -dnl NBD_LFS=0 -dnl fi -dnl ], -dnl [NBD_LFS=0] -dnl ) -NBD_LFS=1 +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]) @@ -41,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]) @@ -49,9 +47,45 @@ else AC_MSG_RESULT([no]) fi -AC_PROG_CC +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_C99 AC_PROG_CPP AC_PROG_INSTALL +AC_CANONICAL_HOST AC_C_BIGENDIAN AC_C_INLINE AC_C_CONST @@ -59,48 +93,36 @@ AC_CHECK_SIZEOF(unsigned short int) AC_CHECK_SIZEOF(unsigned int) AC_CHECK_SIZEOF(unsigned long int) AC_CHECK_SIZEOF(unsigned long long int) -AC_CHECK_FUNCS([llseek alarm gethostbyname inet_ntoa memset socket strerror strstr]) +AC_CHECK_FUNCS([llseek alarm gethostbyname inet_ntoa memset socket strerror strstr mkstemp]) +AC_CHECK_FUNC([sync_file_range], + [AC_DEFINE([HAVE_SYNC_FILE_RANGE], [sync_file_range(2) is not supported], [sync_file_range(2) is supported])], + []) AC_FUNC_FORK AC_FUNC_SETVBUF_REVERSED AC_MSG_CHECKING(whether client should be built) -case "`uname`" in - *Linux*) sbin_PROGRAMS=nbd-client - AC_MSG_RESULT(yes) - ;; - *) AC_MSG_RESULT(no) ;; +case $host_os in + linux*) NBD_CLIENT_NAME="nbd-client" + AC_MSG_RESULT(yes) + ;; + *) NBD_CLIENT_NAME="" + AC_MSG_RESULT(no) + ;; esac -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_CPP([#include "nbd.h" -#ifdef LOCAL_END_REQUEST -#error not here -#endif -], - [AC_DEFINE(NBD_H_LOCAL, 1, Set to 1 if a (recent enough) nbd.h can be found in the current directory) - NBD_H='"nbd.h"'], - AC_TRY_CPP([#include -#ifdef LOCAL_END_REQUEST -#error not here -#endif -], - [AC_DEFINE(NBD_H_LINUX, 1, Set to 1 if a (recent enough) nbd.h can be found in the linux directory in the search path) NBD_H=''], - AC_MSG_ERROR(Could not find a (recent enough) nbd.h) - ) -) -AC_MSG_RESULT($NBD_H) +AC_SUBST(NBD_CLIENT_NAME) +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 ]]) -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.2.0, [HAVE_GLIB=yes], AC_MSG_ERROR([Missing glib])) +AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h sys/ioctl.h sys/socket.h syslog.h linux/types.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) +nbd_server_CPPFLAGS=$nbd_server_CPPFLAGS" -DSYSCONFDIR='\"$sysconfdir\"'" +AC_SUBST(nbd_server_CPPFLAGS) AC_CONFIG_HEADERS([config.h]) -AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([Makefile doc/Doxyfile man/Makefile man/nbd-client.8.sh man/nbd-server.5.sh man/nbd-server.1.sh man/nbd-trdump.8.sh]) AC_OUTPUT