]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
m4: Improve geo backend dependecy checks
authorAki Tuomi <cmouse@cmouse.fi>
Sat, 30 Dec 2017 19:11:30 +0000 (21:11 +0200)
committerAki Tuomi <cmouse@cmouse.fi>
Wed, 14 Feb 2018 07:15:53 +0000 (09:15 +0200)
m4/pdns_with_geo.m4

index b239356a33167cb63bafef297ad50bb09562e456..352da97d51fae4d4dd5084574e71f32237fdaf91 100644 (file)
@@ -1,7 +1,46 @@
 AC_DEFUN([PDNS_CHECK_GEOIP], [
-  PKG_CHECK_MODULES([GEOIP], [geoip],[],
-    AC_MSG_ERROR([Could not find libGeoIP])
+  PKG_CHECK_MODULES([GEOIP], [geoip], AC_DEFINE([HAVE_GEOIP], [1], [Define this if you have GeoIP]), [have_geoip=0])
+  AC_ARG_WITH([maxminddb_incdir],
+    AS_HELP_STRING([--with-maxminddb-includedir],[path to maxminddb include directory @<:@default=auto@:>@]),
+    [with_maxminddb_incdir=$withval],
+    [with_maxminddb_incdir=auto]
   )
+  AC_ARG_WITH([maxminddb_libdir],
+    AS_HELP_STRING([--with-maxminddb-libdir],[path to maxminddb library directory @<:@default=auto@:>@]),
+    [with_maxminddb_libdir=$withval],
+    [with_maxminddb_libdir=auto],
+  )
+
+  PKG_CHECK_MODULES([MMDB], [libmaxminddb], [
+    AC_DEFINE([HAVE_MMDB], [1], [Define this if you have Maxmind DB])
+  ], [
+    AS_IF([test "x$with_maxminddb_incdir" = "xauto"], [
+      AC_CHECK_HEADER([maxminddb.h], [have_mmdb=1], [have_mmdb=0])
+    ], [
+      OLD_CFLAGS="$CFLAGS"
+      CFLAGS="$CFLAGS -I$with_maxminddb_incdir"
+      AC_CHECK_HEADER([maxminddb.h], [have_mmdb=1], [have_mmdb=0])
+      CFLAGS="$OLD_CFLAGS"
+    ])
+
+    AS_IF([test "$have_mmdb" = "1"], [
+      AS_IF([test "x$with_maxminddb_libdir" = "xauto"], [
+        AC_CHECK_LIB([maxminddb], [MMDB_open], [
+          AC_DEFINE([HAVE_MMDB], [1], [Define this if you have Maxmind DB])
+          MMDB_LIBS="-lmaxminddb"
+        ])
+      ], [
+        OLD_LDFLAGS="$LDFLAGS"
+        LDFLAGS="$LDFLAGS -L$with_maxminddb_libdir"
+        AC_CHECK_LIB([maxminddb], [MMDB_open], [
+          AC_DEFINE([HAVE_MMDB], [1], [Define this if you have Maxmind DB])
+          MMDB_CFLAGS="-I$with_maxminddb_incdir"
+          MMDB_LIBS="-L$with_maxminddb_libdir -lmaxminddb"
+        ])
+      ])
+    ])
+  ])
+
   PKG_CHECK_MODULES([YAML], [yaml-cpp >= 0.5],[],
     AC_MSG_ERROR([Could not find yaml-cpp])
   )