1AC_PREREQ(2.64)
2
3m4_define(wdns_major_version, 0)
4m4_define(wdns_minor_version, 10)
5m4_define(wdns_patchlevel_version, 0)
6m4_define(wdns_version,
7          wdns_major_version.wdns_minor_version.wdns_patchlevel_version)
8
9AC_INIT([wdns],
10        [wdns_version()],
11        [https://github.com/farsightsec/wdns/issues],
12        [wdns],
13        [https://github.com/farsightsec/wdns])
14AC_CONFIG_SRCDIR([wdns/wdns.h.in])
15AC_CONFIG_AUX_DIR([build-aux])
16AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules subdir-objects])
17AC_PROG_CC_STDC
18AC_USE_SYSTEM_EXTENSIONS
19AC_SYS_LARGEFILE
20AC_CONFIG_MACRO_DIR([m4])
21AM_SILENT_RULES([yes])
22LT_INIT
23
24WDNS_MAJOR_VERSION=wdns_major_version()
25WDNS_MINOR_VERSION=wdns_minor_version()
26WDNS_PATCHLEVEL_VERSION=wdns_patchlevel_version()
27WDNS_VERSION=wdns_version()
28
29AC_SUBST(WDNS_MAJOR_VERSION)
30AC_SUBST(WDNS_MINOR_VERSION)
31AC_SUBST(WDNS_PATCHLEVEL_VERSION)
32AC_SUBST(WDNS_VERSION)
33
34AC_CONFIG_HEADERS(config.h)
35AC_CONFIG_FILES([Makefile wdns/libwdns.pc wdns/wdns.h])
36
37PKG_PROG_PKG_CONFIG
38if test -n "$PKG_CONFIG"; then
39    # Horrible hack for systems where the pkg-config install directory is simply wrong!
40    if $PKG_CONFIG --variable=pc_path pkg-config 2>/dev/null | grep -q /libdata/; then
41        PKG_INSTALLDIR(['${prefix}/libdata/pkgconfig'])
42    else
43        PKG_INSTALLDIR
44    fi
45else
46    AC_MSG_ERROR([pkg-config is required!])
47fi
48
49my_CFLAGS="-Wall \
50-Wmissing-declarations -Wmissing-prototypes \
51-Wnested-externs -Wpointer-arith \
52-Wpointer-arith -Wsign-compare -Wchar-subscripts \
53-Wstrict-prototypes -Wshadow \
54-Wformat-security"
55AC_SUBST([my_CFLAGS])
56
57AC_CHECK_HEADERS([alloca.h])
58
59AC_CHECK_HEADER([pcap.h])
60AC_CHECK_LIB([pcap], [pcap_loop],
61    [
62        AC_DEFINE([HAVE_LIBPCAP], [1], [Define to 1 if libpcap works.])
63        have_libpcap=true
64    ],
65    [
66        have_libpcap=false
67    ]
68)
69AM_CONDITIONAL([LIBPCAP], [test "$have_libpcap" = "true"])
70
71gl_LD_VERSION_SCRIPT
72
73AM_PATH_PYTHON(,, [:])
74AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
75
76AC_ARG_WITH(coverage,
77[ --with-coverage[=PROGRAM] enable gtest and coverage target using the specified lcov], lcov="$withval", lcov="no")
78
79
80USE_LCOV="no"
81if test "$lcov" != "no"; then
82	if test "$lcov" != "yes"; then
83		LCOV=$lcov
84	else
85		AC_PATH_PROG([LCOV], [lcov])
86	fi
87	if test -x "${LCOV}"; then
88		USE_LCOV="yes"
89	else
90		AC_MSG_ERROR([Cannot find lcov.])
91	fi
92	# is genhtml always in the same directory?
93	GENHTML=`echo "$LCOV" | ${SED} s/lcov$/genhtml/`
94	if test ! -x $GENHTML; then
95		AC_MSG_ERROR([genhtml not found, needed for lcov])
96	fi
97	CFLAGS="$CFLAGS --coverage"
98	LIBS=" $LIBS -lgcov"
99	AC_SUBST(CPPFLAGS)
100	AC_SUBST(LIBS)
101	AC_SUBST(LCOV)
102	AC_SUBST(GENHTML)
103fi
104AC_SUBST(USE_LCOV)
105
106AC_OUTPUT
107AC_MSG_RESULT([
108    $PACKAGE $VERSION
109
110        CC:                     ${CC}
111        CFLAGS:                 ${CFLAGS}
112        LDFLAGS:                ${LDFLAGS}
113        LIBS:                   ${LIBS}
114
115        prefix:                 ${prefix}
116        sysconfdir:             ${sysconfdir}
117        libdir:                 ${libdir}
118        includedir:             ${includedir}
119        pkgconfigdir:           ${pkgconfigdir}
120
121        code coverage enabled:  ${USE_LCOV}
122])
123