230 lines
5.6 KiB
Plaintext
230 lines
5.6 KiB
Plaintext
AC_PREREQ(2.50)
|
|
AC_INIT([libnfs], [1.11.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
|
|
CFLAGS="${CFLAGS} -D_FILE_OFFSET_BITS=64"
|
|
|
|
#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_CFLAGS="$CFLAGS"
|
|
ac_save_LIBS="$LIBS"
|
|
CFLAGS="$CFLAGS $GLIB_CFLAGS"
|
|
LIBS="$GLIB_LIBS $LIBS -lpopt"
|
|
AC_TRY_RUN([
|
|
/*
|
|
* Just see if we can compile/link with popt
|
|
*/
|
|
#include <popt.h>
|
|
|
|
int main(int argc, const char *argv[])
|
|
{
|
|
struct poptOption popt_options[] = {
|
|
POPT_TABLEEND
|
|
};
|
|
poptGetContext(argv[0], argc, argv, popt_options, POPT_CONTEXT_KEEP_FIRST);
|
|
|
|
return 0;
|
|
}
|
|
], ac_cv_have_popt=yes, ac_cv_have_popt=no,
|
|
[echo $ac_n "compile with POPT. Assuming OK... $ac_c"
|
|
ac_cv_have_popt=yes])
|
|
CFLAGS="$ac_save_CFLAGS"
|
|
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_RUN([
|
|
/*
|
|
* Just see if we can compile with SO_BINDTODEVICE
|
|
*/
|
|
#include <net/if.h>
|
|
|
|
int main(int argc, const char *argv[])
|
|
{
|
|
int i = SO_BINDTODEVICE;
|
|
return 0;
|
|
}
|
|
], ac_cv_have_so_bindtodevice=yes, ac_cv_have_so_bindtodevice=no,
|
|
[echo $ac_n "compile with SO_BINDTODEVICE. Assuming OK... $ac_c"
|
|
ac_cv_have_so_bindtodevice=yes])
|
|
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* | *cygwin* | *wince* | *mingwce*)
|
|
LIBSOCKET='-lws2_32'
|
|
SYS=mingw32
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
|
|
AC_SUBST([LIBSOCKET])
|
|
|
|
# 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 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>
|
|
])
|
|
|
|
AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec])
|
|
|
|
# check where makedev is defined
|
|
AC_HEADER_MAJOR
|
|
|
|
#output
|
|
AC_CONFIG_FILES([Makefile]
|
|
[doc/Makefile]
|
|
[include/Makefile]
|
|
[lib/Makefile]
|
|
[mount/Makefile]
|
|
[nfs/Makefile]
|
|
[nfs4/Makefile]
|
|
[nlm/Makefile]
|
|
[nsm/Makefile]
|
|
[portmap/Makefile]
|
|
[rquota/Makefile]
|
|
[utils/Makefile]
|
|
[examples/Makefile]
|
|
)
|
|
|
|
AC_OUTPUT([libnfs.pc])
|