1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
|
AC_INIT([ncdc],[1.23.1],[projects@yorhel.nl])
AC_CONFIG_SRCDIR([src/ncdc.h])
AC_CONFIG_HEADERS([config.h])
m4_include([deps/lean.m4])
AM_INIT_AUTOMAKE([foreign subdir-objects])
PKG_PROG_PKG_CONFIG([0.18])
# Check for programs.
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_RANLIB
AC_SYS_LARGEFILE
# Use silent building
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
# Check for pod2man
AC_CHECK_PROG([have_pod2man],[pod2man],[yes],[no])
AM_CONDITIONAL([USE_POD2MAN], [test "x$have_pod2man" = "xyes"])
# Check for makeheaders. If the system does not provide it, compile our own copy in deps/
AC_CHECK_PROG([have_mh],[makeheaders],[yes],[no])
AM_CONDITIONAL([HAVE_MH], [test "x$have_mh" = "xyes"])
# Check for header files.
AC_CHECK_HEADERS([zlib.h bzlib.h],[], AC_MSG_ERROR([Required header file not found]))
# Check for posix_fadvise()
AC_CHECK_FUNCS([posix_fadvise])
AC_SEARCH_LIBS([inet_pton], [nsl])
AC_SEARCH_LIBS([socket], [socket], [], [
AC_CHECK_LIB([socket], [socket], [LIBS="-lsocket -lnsl $LIBS"], [], [-lnsl])])
# Check for sendfile() support (not required)
# The following checks are based on ProFTPD's configure.in, except ncdc only
# supports the Linux and BSD variant at the moment, as those are the only two I
# have tested so far.
AC_CACHE_CHECK([which sendfile() implementation to use], pr_cv_sendfile_func,
pr_cv_sendfile_func="none"
# Linux
if test "$pr_cv_sendfile_func" = "none"; then
AC_LINK_IFELSE([AC_LANG_PROGRAM(
[[ #include <sys/types.h>
#include <sys/sendfile.h>
#include <unistd.h> ]],
[[ int i=0;
off_t o=0;
size_t c=0;
(void)sendfile(i,i,&o,c); ]])],
[pr_cv_sendfile_func="Linux"])
fi
# BSD
if test "$pr_cv_sendfile_func" = "none"; then
AC_LINK_IFELSE([AC_LANG_PROGRAM(
[[ #include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h> ]],
[[ int i=0;
off_t o=0;
size_t n=0;
struct sf_hdtr h={};
(void)sendfile(i,i,o,n,&h,&o,i); ]])],
[pr_cv_sendfile_func="BSD"])
fi
)
# set defines
if test "$pr_cv_sendfile_func" != none; then
AC_DEFINE(HAVE_SENDFILE, 1, [Define if sendfile support.])
fi
case "$pr_cv_sendfile_func" in
"Linux")
AC_DEFINE(HAVE_LINUX_SENDFILE, 1, [Define if using Linux sendfile support.]);;
"BSD")
AC_DEFINE(HAVE_BSD_SENDFILE, 1, [Define if using BSD sendfile support.]);;
esac
# Check for ncurses
PKG_CHECK_MODULES(NCURSES, ncursesw,,[
PKG_CHECK_MODULES(NCURSES, ncurses,,[
AC_MSG_ERROR(ncurses library is required)
])
])
# Check for zlib
AC_CHECK_LIB([z],
[deflate],
[AC_SUBST([Z_LIBS],[-lz])],
[AC_MSG_ERROR(zlib library is required)])
# Check for libbz2
AC_CHECK_LIB([bz2],
[BZ2_bzReadOpen],
[AC_SUBST([BZ2_LIBS],[-lbz2])],
[AC_MSG_ERROR(bzip2 library is required)])
# Check for SQLite3
PKG_CHECK_EXISTS([sqlite3],[
PKG_CHECK_MODULES([SQLITE],[sqlite3])
],[
AC_CHECK_HEADERS([sqlite3.h],[],
[AC_MSG_ERROR([sqlite3 header file not found])])
AC_CHECK_LIB([sqlite3],
[sqlite3_open],
[AC_SUBST([SQLITE_LIBS],[-lsqlite3])],
[AC_MSG_ERROR([sqlite3 library is required])])
]
)
# Check for modules
PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.32 gthread-2.0])
PKG_CHECK_MODULES([GNUTLS], [gnutls >= 3.0])
AC_ARG_WITH([geoip],
[AS_HELP_STRING([--with-geoip], [support for IP-to-country lookups @<:@default=no@:>@])],
[],
[with_geoip=no])
AS_IF([test "x$with_geoip" = xyes],
[PKG_CHECK_MODULES([GEOIP],
[libmaxminddb >= 1.0],
[AC_DEFINE(USE_GEOIP, 1, [Use libmaxminddb for IP-to-country lookups])])])
# Check whether we should use the version string from AC_INIT, or use
# git-describe to create one. This trick is copied from the pacman source.
AC_ARG_ENABLE(git-version,
AS_HELP_STRING([--enable-git-version], [enable use of git version in version string if available]),
[wantgitver=$enableval], [wantgitver=yes])
usegitver=no
if test "x$wantgitver" = "xyes" ; then
AC_CHECK_PROGS([GIT], [git], [no])
test "x$GIT" != "xno" -a -d "$srcdir/.git" && usegitver=yes
fi
AM_CONDITIONAL(USE_GIT_VERSION, test "x$usegitver" = "xyes")
# If we don't have pod2man and doc/ncdc.1 isn't available in the source
# directory, throw a warning and just go ahead without installing the man page.
installmanpage=yes
if test "x$have_pod2man" = "xno" -a \! -s "$srcdir/doc/ncdc.1"; then
echo ""
echo "Note: Could not find doc/ncdc.1 in the source directory nor the pod2man"
echo "utility on your system. No manual page will be installed."
echo ""
installmanpage=no
fi
AM_CONDITIONAL([INSTALL_MANPAGE], [test "x$installmanpage" = "xyes"])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
|