X-Git-Url: http://git.alex.org.uk diff --git a/configure.ac b/configure.ac index 94dc1f1..cff4928 100644 --- a/configure.ac +++ b/configure.ac @@ -1,9 +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) -AC_ARG_ENABLE(lfs, AC_HELP_STRING([--enable-lfs],[Enable Large File Support]), [NBD_LFS=1], [NBD_LFS=0]) +dnl (c) 2003-2006 Wouter Verhelst +AC_INIT([nbd],[2.9.21a],[wouter@debian.org]) +AM_INIT_AUTOMAKE(foreign dist-bzip2) +AM_MAINTAINER_MODE + +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]) @@ -12,7 +25,20 @@ else AC_DEFINE(NBD_LFS,0) 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]) @@ -20,15 +46,46 @@ 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" + +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) + AC_MSG_RESULT([no]) fi -#AC_PROG_INSTALL + +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 @@ -36,33 +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(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) -fi -AC_CHECK_HEADERS([linux/nbd.h],,, -[[#define u32 unsigned int -#define u64 unsigned long int +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/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 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) -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 doc/Doxyfile man/Makefile man/nbd-client.8.sh man/nbd-server.5.sh man/nbd-server.1.sh]) AC_OUTPUT