| 1 | AC_PREREQ(2.50) |
| 2 | AC_INIT([libnfs], [1.4.0], [ronniesahlberg@gmail.com]) |
| 3 | AC_CONFIG_HEADERS([config.h]) |
| 4 | AM_INIT_AUTOMAKE([foreign]) |
| 5 | AC_CANONICAL_HOST |
| 6 | |
| 7 | # Work around stupid autoconf default cflags. pt 1 |
| 8 | SAVE_CFLAGS="x${CFLAGS}" |
| 9 | |
| 10 | AC_PROG_CC |
| 11 | AC_PROG_LIBTOOL |
| 12 | |
| 13 | AM_PROG_CC_C_O |
| 14 | PKG_PROG_PKG_CONFIG |
| 15 | |
| 16 | # Work around stupid autoconf default cflags. pt 2 |
| 17 | if test "$SAVE_CFLAGS" = "x"; then |
| 18 | CFLAGS="" |
| 19 | fi |
| 20 | |
| 21 | # We always want 64 bit file offsets |
| 22 | CFLAGS="${CFLAGS} -D_FILE_OFFSET_BITS=64" |
| 23 | |
| 24 | AC_CHECK_PROG([HAVE_RPCGEN], [rpcgen], [yes], [no]) |
| 25 | if test x$HAVE_RPCGEN != xyes; then |
| 26 | AC_MSG_ERROR([Can not find required program]) |
| 27 | fi |
| 28 | |
| 29 | #option: examples |
| 30 | AC_ARG_ENABLE([examples], |
| 31 | [AC_HELP_STRING([--enable-examples], |
| 32 | [Build example programs])], |
| 33 | [ENABLE_EXAMPLES=$enableval], |
| 34 | [ENABLE_EXAMPLES="no"]) |
| 35 | |
| 36 | # We need popt to compile the examples |
| 37 | if test x$ENABLE_EXAMPLES = xyes; then |
| 38 | AC_MSG_CHECKING(whether libpopt is available) |
| 39 | ac_save_CFLAGS="$CFLAGS" |
| 40 | ac_save_LIBS="$LIBS" |
| 41 | CFLAGS="$CFLAGS $GLIB_CFLAGS" |
| 42 | LIBS="$GLIB_LIBS $LIBS -lpopt" |
| 43 | AC_TRY_RUN([ |
| 44 | /* |
| 45 | * Just see if we can compile/link with popt |
| 46 | */ |
| 47 | #include <popt.h> |
| 48 | |
| 49 | int main(int argc, const char *argv[]) |
| 50 | { |
| 51 | struct poptOption popt_options[] = { |
| 52 | POPT_TABLEEND |
| 53 | }; |
| 54 | poptGetContext(argv[0], argc, argv, popt_options, POPT_CONTEXT_KEEP_FIRST); |
| 55 | |
| 56 | return 0; |
| 57 | } |
| 58 | ], ac_cv_have_popt=yes, ac_cv_have_popt=no, |
| 59 | [echo $ac_n "compile with POPT. Assuming OK... $ac_c" |
| 60 | ac_cv_have_popt=yes]) |
| 61 | CFLAGS="$ac_save_CFLAGS" |
| 62 | LIBS="$ac_save_LIBS" |
| 63 | if test "$ac_cv_have_popt" = yes ; then |
| 64 | AC_MSG_RESULT(yes) |
| 65 | MAYBE_EXAMPLES="examples" |
| 66 | else |
| 67 | AC_MSG_RESULT(no) |
| 68 | AC_MSG_NOTICE(You need libpopt to compile the sample libnfs clients.) |
| 69 | AC_MSG_NOTICE(Only the library will be compiled and installed.) |
| 70 | fi |
| 71 | fi |
| 72 | |
| 73 | AC_SUBST(MAYBE_EXAMPLES) |
| 74 | |
| 75 | |
| 76 | AC_ARG_ENABLE(tirpc, |
| 77 | [AC_HELP_STRING([--enable-tirpc], |
| 78 | [enable use of TI-RPC @<:@default=no@:>@])], |
| 79 | enable_tirpc=$enableval, |
| 80 | enable_tirpc='no') |
| 81 | |
| 82 | case $host in |
| 83 | *darwin*) |
| 84 | RPCGENFLAGS=-DU_INT64_PLATTFORM_TYPE="u_int64_t" |
| 85 | ;; |
| 86 | *cygwin*) |
| 87 | RPCGENFLAGS=-DU_INT64_PLATTFORM_TYPE="u_int64_t" |
| 88 | ;; |
| 89 | *solaris*) |
| 90 | AC_CHECK_HEADERS([sys/filio.h]) |
| 91 | AC_CHECK_HEADERS([sys/sockio.h]) |
| 92 | if test x$ENABLE_EXAMPLES = xyes; then |
| 93 | AC_CHECK_LIB([socket], [main], , [AC_MSG_ERROR([Can not find required library])]) |
| 94 | AC_CHECK_LIB([nsl], [main], , [AC_MSG_ERROR([Can not find required library])]) |
| 95 | fi |
| 96 | ;; |
| 97 | *) |
| 98 | ;; |
| 99 | esac |
| 100 | |
| 101 | AC_SUBST(RPCGENFLAGS) |
| 102 | |
| 103 | # check for SA_LEN |
| 104 | dnl Check if sockaddr data structure includes a "sa_len" |
| 105 | AC_CHECK_MEMBER([struct sockaddr.sa_len], |
| 106 | [ AC_DEFINE(HAVE_SOCKADDR_LEN,1,[Whether sockaddr struct has sa_len]) ], |
| 107 | [], |
| 108 | [ |
| 109 | #include <sys/types.h> |
| 110 | #include <sys/socket.h> |
| 111 | ]) |
| 112 | |
| 113 | LIBNFS_PC_REQ_PRIVATE= |
| 114 | |
| 115 | if test "$enable_tirpc" = "yes"; then |
| 116 | PKG_CHECK_MODULES(TIRPC, libtirpc, [], |
| 117 | AC_MSG_ERROR([unable to locate libtirpc files])) |
| 118 | CFLAGS="${CFLAGS} ${TIRPC_CFLAGS}" |
| 119 | LIBS="${LIBS} ${TIRPC_LIBS}" |
| 120 | LIBNFS_PC_REQ_PRIVATE="${LIBNFS_PC_REQ_PRIVATE} libtirpc" |
| 121 | fi |
| 122 | |
| 123 | AC_SUBST(LIBNFS_PC_REQ_PRIVATE) |
| 124 | |
| 125 | #output |
| 126 | AC_CONFIG_FILES([Makefile] |
| 127 | [include/Makefile] |
| 128 | [lib/Makefile] |
| 129 | [mount/Makefile] |
| 130 | [nfs/Makefile] |
| 131 | [nlm/Makefile] |
| 132 | [portmap/Makefile] |
| 133 | [rquota/Makefile] |
| 134 | [examples/Makefile] |
| 135 | ) |
| 136 | |
| 137 | AC_OUTPUT([libnfs.pc]) |