AC_PREREQ(2.50)
-AC_INIT(libnfs, m4_esyscmd([grep 'Version:' ./packaging/RPM/libnfs.spec.in 2>/dev/null | head -1 | sed -e 's/[ \t]*Version:[ \t]*\([^ \t]*\)[ \t]*.*/\1/' | tr -d '\n']))
-AC_CONFIG_SRCDIR([lib/init.c])
-
-if test "${libdir}" = '${exec_prefix}/lib'; then
- case `uname -m` in
- x86_64|ppc64|powerpc64)
- libdir='${exec_prefix}/lib64'
- ;;
- *)
- libdir='${exec_prefix}/lib'
- ;;
- esac
+AC_INIT([libnfs], [1.3.0], [ronniesahlberg@gmail.com])
+AC_CONFIG_HEADERS([config.h])
+AM_INIT_AUTOMAKE([foreign])
+AC_CANONICAL_HOST
+
+# 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
-is_solaris="no"
-install="/usr/bin/install"
-ldconfig="ldconfig"
+# We always want 64 bit file offsets
+CFLAGS="${CFLAGS} -D_FILE_OFFSET_BITS=64"
-case `uname` in
- Linux*)
- ;;
- Darwin*)
- libdir='${exec_prefix}/lib'
+AC_CHECK_PROG([HAVE_RPCGEN], [rpcgen], [yes], [no])
+if test x$HAVE_RPCGEN != xyes; then
+ AC_MSG_ERROR([Can not find required program])
+fi
+
+#option: examples
+AC_ARG_ENABLE([examples],
+ [AC_HELP_STRING([--enable-examples],
+ [Build example programs])],
+ [ENABLE_EXAMPLES=$enableval],
+ [ENABLE_EXAMPLES="no"])
+
+if test x$ENABLE_EXAMPLES = xyes; then
+ MAYBE_EXAMPLES="examples"
+fi
+AC_SUBST(MAYBE_EXAMPLES)
+
+AC_ARG_ENABLE(tirpc,
+ [AC_HELP_STRING([--enable-tirpc],
+ [enable use of TI-RPC @<:@default=no@:>@])],
+ enable_tirpc=$enableval,
+ enable_tirpc='no')
+
+case $host in
+ *darwin*)
+ RPCGENFLAGS=-DU_INT64_PLATTFORM_TYPE="u_int64_t"
;;
- AIX*)
+ *cygwin*)
+ RPCGENFLAGS=-DU_INT64_PLATTFORM_TYPE="u_int64_t"
;;
- SunOS)
- is_solaris="yes"
- install="ginstall"
- ldconfig="echo no ldconfig on solaris"
- LIBS="$LIBS -lsocket -lnsl"
+ *solaris*)
+ AC_CHECK_HEADERS([sys/filio.h])
+ AC_CHECK_HEADERS([sys/sockio.h])
+ if test x$ENABLE_EXAMPLES = xyes; then
+ 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])])
+ fi
;;
*)
;;
esac
-if test "$ac_cv_prog_gcc" = yes; then
- CFLAGS="$CFLAGS -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings"
-fi
+AC_SUBST(RPCGENFLAGS)
-LOGDIR='${localstatedir}/log'
-AC_ARG_WITH([logdir],
- [ --with-logdir=DIR path to log directory [[LOCALSTATEDIR/log]]],
- LOGDIR=$withval)
-if test ! -z "$LOGDIR"; then
- if test "$LOGDIR" = "yes" -o "$LOGDIR" = "no"; then
- AC_MSG_ERROR([--with-logdir must specify a path])
- fi
-fi
-AC_SUBST(LOGDIR)
+# 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>
+])
-AC_CONFIG_HEADER(config.h)
+LIBNFS_PC_REQ_PRIVATE=
-EXTRA_OBJ=""
+if test "$enable_tirpc" = "yes"; then
+ PKG_CHECK_MODULES(TIRPC, libtirpc, [],
+ AC_MSG_ERROR([unable to locate libtirpc files]))
+ CFLAGS="${CFLAGS} ${TIRPC_CFLAGS}"
+ LIBS="${LIBS} ${TIRPC_LIBS}"
+ LIBNFS_PC_REQ_PRIVATE="${LIBNFS_PC_REQ_PRIVATE} libtirpc"
+fi
-#AC_CHECK_HEADERS(sched.h)
-#AC_CHECK_FUNCS(mlockall)
+AC_SUBST(LIBNFS_PC_REQ_PRIVATE)
-AC_CACHE_CHECK([for sin_len in sock],libnfs_cv_HAVE_SOCK_SIN_LEN,[
-AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>],
-[struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
-libnfs_cv_HAVE_SOCK_SIN_LEN=yes,libnfs_cv_HAVE_SOCK_SIN_LEN=no)])
-if test x"$libnfs_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
- AC_DEFINE(HAVE_SOCK_SIN_LEN,1,[Whether the sockaddr_in struct has a sin_len property])
-fi
-AC_SUBST(libdir)
-AC_SUBST(install)
-AC_SUBST(ldconfig)
-#AC_SUBST(LIBNFS_LDFLAGS)
+#output
+AC_CONFIG_FILES([Makefile]
+ [include/Makefile]
+ [lib/Makefile]
+ [mount/Makefile]
+ [nfs/Makefile]
+ [nlm/Makefile]
+ [portmap/Makefile]
+ [rquota/Makefile]
+ [examples/Makefile]
+ )
-AC_OUTPUT(Makefile)
+AC_OUTPUT([libnfs.pc])