245 lines
6.5 KiB
Plaintext
Executable File
245 lines
6.5 KiB
Plaintext
Executable File
AC_PREREQ(2.50)
|
|
AC_INIT([libnfs], [2.0.0], [ronniesahlberg@gmail.com])
|
|
AC_CONFIG_HEADERS([config.h])
|
|
AM_INIT_AUTOMAKE([-Wall foreign subdir-objects])
|
|
AC_CANONICAL_HOST
|
|
AC_CONFIG_MACRO_DIR([m4])
|
|
m4_pattern_allow([AM_PROG_AR])
|
|
AM_PROG_AR
|
|
|
|
# Work around stupid autoconf default cflags. pt 1
|
|
SAVE_CFLAGS="x${CFLAGS}"
|
|
|
|
AC_PROG_CC
|
|
AC_PROG_LIBTOOL
|
|
|
|
AM_PROG_CC_C_O
|
|
PKG_PROG_PKG_CONFIG
|
|
|
|
# Work around stupid autoconf default cflags. pt 2
|
|
if test "$SAVE_CFLAGS" = "x"; then
|
|
CFLAGS=""
|
|
fi
|
|
|
|
# We always want 64 bit file offsets
|
|
AC_SYS_LARGEFILE
|
|
|
|
#option: utils
|
|
AC_ARG_ENABLE([utils],
|
|
[AC_HELP_STRING([--enable-utils],
|
|
[Build util programs])],
|
|
[MAYBE_UTILS=""],
|
|
[MAYBE_UTILS="utils"])
|
|
AC_SUBST(MAYBE_UTILS)
|
|
|
|
#option: examples
|
|
AC_ARG_ENABLE([examples],
|
|
[AC_HELP_STRING([--enable-examples],
|
|
[Build example programs])],
|
|
[ENABLE_EXAMPLES=$enableval],
|
|
[ENABLE_EXAMPLES="no"])
|
|
|
|
# We need popt to compile the examples
|
|
if test x$ENABLE_EXAMPLES = xyes; then
|
|
AC_MSG_CHECKING(whether libpopt is available)
|
|
ac_save_LIBS="$LIBS"
|
|
LIBS="$LIBS -lpopt"
|
|
AC_TRY_LINK([#include <popt.h>], [
|
|
/*
|
|
* Just see if we can compile/link with popt
|
|
*/
|
|
int _argc;
|
|
char **_argv;
|
|
struct poptOption popt_options[] = {
|
|
POPT_TABLEEND
|
|
};
|
|
poptGetContext(_argv[0], _argc, _argv, popt_options, POPT_CONTEXT_KEEP_FIRST);
|
|
], ac_cv_have_popt=yes, ac_cv_have_popt=no)
|
|
LIBS="$ac_save_LIBS"
|
|
if test "$ac_cv_have_popt" = yes ; then
|
|
AC_MSG_RESULT(yes)
|
|
MAYBE_EXAMPLES="examples"
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_NOTICE(You need libpopt to compile the sample libnfs clients.)
|
|
AC_MSG_NOTICE(Only the library will be compiled and installed.)
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(MAYBE_EXAMPLES)
|
|
|
|
AC_MSG_CHECKING(whether SO_BINDTODEVICE is available)
|
|
AC_TRY_COMPILE([#include <net/if.h>], [
|
|
int i = SO_BINDTODEVICE;
|
|
], ac_cv_have_so_bindtodevice=yes, ac_cv_have_so_bindtodevice=no)
|
|
if test "$ac_cv_have_so_bindtodevice" = yes ; then
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_SO_BINDTODEVICE, 1, [Whether our sockets support SO_BINDTODEVICE])
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_NOTICE(SO_BINDTODEVICE support for if= support is missing.)
|
|
AC_MSG_NOTICE(Compiling without if= support.)
|
|
fi
|
|
|
|
AC_ARG_ENABLE([werror], [AS_HELP_STRING([--disable-werror],
|
|
[Disables building with -Werror by default])])
|
|
|
|
if test "$ac_cv_prog_gcc" = yes; then
|
|
WARN_CFLAGS="-Wall -Wshadow -Wno-write-strings -Wstrict-prototypes -Wpointer-arith -Wcast-align -Wno-strict-aliasing"
|
|
if test "x$enable_werror" != "xno"; then
|
|
WARN_CFLAGS="$WARN_CFLAGS -Werror"
|
|
fi
|
|
fi
|
|
AC_SUBST(WARN_CFLAGS)
|
|
|
|
LIBSOCKET=
|
|
SYS=
|
|
|
|
case $host in
|
|
*solaris*)
|
|
AC_CHECK_HEADERS([sys/filio.h])
|
|
AC_CHECK_HEADERS([sys/sockio.h])
|
|
AC_CHECK_LIB([socket], [main], , [AC_MSG_ERROR([Can not find required library])])
|
|
AC_CHECK_LIB([nsl], [main], , [AC_MSG_ERROR([Can not find required library])])
|
|
;;
|
|
*mingw32* | *wince* | *mingwce*)
|
|
LIBSOCKET='-lws2_32'
|
|
SYS=mingw32
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
|
|
AC_SUBST([LIBSOCKET])
|
|
|
|
# check for sys/sysmacros.h
|
|
dnl Check for sys/sysmacros.h
|
|
AC_CHECK_HEADERS([sys/sysmacros.h])
|
|
|
|
# check for poll.h
|
|
dnl Check for poll.h
|
|
AC_CHECK_HEADERS([poll.h])
|
|
|
|
# check for unistd.h
|
|
dnl Check for unistd.h
|
|
AC_CHECK_HEADERS([unistd.h])
|
|
|
|
# check for netdb.h
|
|
dnl Check for netdb.h
|
|
AC_CHECK_HEADERS([netdb.h])
|
|
|
|
# check for utime.h
|
|
dnl Check for utime.h
|
|
AC_CHECK_HEADERS([utime.h])
|
|
|
|
# check for net/if.h
|
|
dnl Check for net/if.h
|
|
AC_CHECK_HEADERS([net/if.h])
|
|
|
|
# check for sys/time.h
|
|
dnl Check for sys/time.h
|
|
AC_CHECK_HEADERS([sys/time.h])
|
|
|
|
# check for sys/ioctl.h
|
|
dnl Check for sys/ioctl.h
|
|
AC_CHECK_HEADERS([sys/ioctl.h])
|
|
|
|
# check for sys/vfs.h
|
|
dnl Check for sys/vfs.h
|
|
AC_CHECK_HEADERS([sys/vfs.h])
|
|
|
|
# check for sys/statvfs.h
|
|
dnl Check for sys/statvfs.h
|
|
AC_CHECK_HEADERS([sys/statvfs.h])
|
|
|
|
# check for fuse.h
|
|
dnl Check for fuse.h
|
|
AC_CHECK_HEADERS([fuse.h])
|
|
|
|
# check for sys/socket.h
|
|
dnl Check for sys/socket.h
|
|
AC_CHECK_HEADERS([sys/socket.h])
|
|
|
|
# check for netinet/tcp.h
|
|
dnl Check for netinet/tcp.h
|
|
AC_CHECK_HEADERS([netinet/tcp.h])
|
|
|
|
# check for netinet/in.h
|
|
dnl Check for netinet/in.h
|
|
AC_CHECK_HEADERS([netinet/in.h])
|
|
|
|
# check for arpa/inet.h
|
|
dnl Check for arpa/inet.h
|
|
AC_CHECK_HEADERS([arpa/inet.h])
|
|
|
|
# check for SA_LEN
|
|
dnl Check if sockaddr data structure includes a "sa_len"
|
|
AC_CHECK_MEMBER([struct sockaddr.sa_len],
|
|
[ AC_DEFINE(HAVE_SOCKADDR_LEN,1,[Whether sockaddr struct has sa_len]) ],
|
|
[],
|
|
[
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
])
|
|
|
|
# check for sockaddr_storage
|
|
dnl Check if sockaddr structure includes a "ss_family"
|
|
AC_CHECK_MEMBER([struct sockaddr_storage.ss_family],
|
|
[ AC_DEFINE(HAVE_SOCKADDR_STORAGE,1,[Whether we have sockaddr_Storage]) ],
|
|
[],
|
|
[
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
])
|
|
|
|
# check for clock_gettime(CLOCK_MONOTONIC_COARSE)
|
|
AC_MSG_CHECKING(if clock_gettime(CLOCK_MONOTONIC_COARSE) is available)
|
|
AC_TRY_COMPILE([#include <time.h>], [
|
|
int i = clock_gettime(CLOCK_MONOTONIC_COARSE, NULL);
|
|
], ac_cv_have_clock_gettime=yes, ac_cv_have_clock_gettime=no)
|
|
if test "$ac_cv_have_clock_gettime" = yes ; then
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [Whether we have clock_gettime])
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_NOTICE(clock_gettime(CLOCK_MONOTONIC_COARSE) support is missing.)
|
|
AC_MSG_NOTICE(Compiling without clock_gettime support..)
|
|
fi
|
|
|
|
# check for tevent + talloc
|
|
AC_CACHE_CHECK([for talloc and tevent support],libnfs_cv_HAVE_TALLOC_TEVENT,[
|
|
AC_TRY_COMPILE([
|
|
#include <talloc.h>
|
|
#include <tevent.h>],
|
|
[struct tevent_context *ctx = tevent_context_init(NULL);
|
|
int major = talloc_version_major();],
|
|
libiscsi_cv_HAVE_TALLOC_TEVENT=yes,libiscsi_cv_HAVE_TALLOC_TEVENT=no)])
|
|
if test x"$libiscsi_cv_HAVE_TALLOC_TEVENT" = x"yes"; then
|
|
AC_DEFINE(HAVE_TALLOC_TEVENT,1,[Whether we have talloc nad tevent support])
|
|
fi
|
|
AM_CONDITIONAL([HAVE_TALLOC_TEVENT], [test $libiscsi_cv_HAVE_TALLOC_TEVENT = yes])
|
|
|
|
AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec])
|
|
|
|
# check where makedev is defined
|
|
AC_HEADER_MAJOR
|
|
|
|
#output
|
|
AC_CONFIG_FILES([Makefile]
|
|
[doc/Makefile]
|
|
[examples/Makefile]
|
|
[include/Makefile]
|
|
[lib/Makefile]
|
|
[mount/Makefile]
|
|
[nfs/Makefile]
|
|
[nfs4/Makefile]
|
|
[nlm/Makefile]
|
|
[nsm/Makefile]
|
|
[portmap/Makefile]
|
|
[rquota/Makefile]
|
|
[tests/Makefile]
|
|
[utils/Makefile]
|
|
)
|
|
|
|
AC_OUTPUT([libnfs.pc])
|