X-Git-Url: https://git.piment-noir.org/?p=deb_libnfs.git;a=blobdiff_plain;f=configure.ac;h=2e64295be8b37d782639bc579ac25a5dbc9f6eaa;hp=9973c92ad4a7044cbc5a66e1ca90063145c1a102;hb=HEAD;hpb=e644e70061c1fc5330ac062ec41e5949d724365f diff --git a/configure.ac b/configure.ac index 9973c92..2e64295 100644 --- a/configure.ac +++ b/configure.ac @@ -1,89 +1,174 @@ 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.9.6], [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" -is_darwin="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' - ldconfig='echo no ldconfig on darwin' - is_darwin="yes" - ;; - AIX*) - ;; - SunOS) - is_solaris="yes" - install="ginstall" - ldconfig="echo no ldconfig on solaris" - LIBS="$LIBS -lsocket -lnsl" +#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 + +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) + + +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])]) ;; *) ;; esac -if test "$ac_cv_prog_gcc" = yes; then - CFLAGS="$CFLAGS -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings" -fi +# check for poll.h +dnl Check for poll.h +AC_CHECK_HEADERS([poll.h]) -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 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]) -AC_ARG_WITH([examples], - [ --without-examples Disable build of examples], - [ENABLE_EXAMPLES="no"], - [ENABLE_EXAMPLES="yes"] - ) -AC_SUBST(ENABLE_EXAMPLES) +# check for sys/vfs.h +dnl Check for sys/vfs.h +AC_CHECK_HEADERS([sys/vfs.h]) -AC_ARG_WITH([ldconfig], - [ --without-ldconfig Disable call of ldconfig on make install], - [ldconfig='echo ldconfig disabled']) +# check for sys/statvfs.h +dnl Check for sys/statvfs.h +AC_CHECK_HEADERS([sys/statvfs.h]) -AC_CONFIG_HEADER(config.h) +# check for sys/socket.h +dnl Check for sys/socket.h +AC_CHECK_HEADERS([sys/socket.h]) -EXTRA_OBJ="" +# check for netinet/tcp.h +dnl Check for netinet/tcp.h +AC_CHECK_HEADERS([netinet/tcp.h]) -#AC_CHECK_HEADERS(sched.h) -#AC_CHECK_FUNCS(mlockall) +# check for netinet/in.h +dnl Check for netinet/in.h +AC_CHECK_HEADERS([netinet/in.h]) -AC_CACHE_CHECK([for sin_len in sock],libnfs_cv_HAVE_SOCK_SIN_LEN,[ -AC_TRY_COMPILE([#include +# 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 #include -#include ], -[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(is_darwin) -#AC_SUBST(LIBNFS_LDFLAGS) +]) + +# 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 +#include +]) + +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] + [nlm/Makefile] + [nsm/Makefile] + [portmap/Makefile] + [rquota/Makefile] + [utils/Makefile] + [examples/Makefile] + ) -AC_OUTPUT(Makefile) +AC_OUTPUT([libnfs.pc])