configure: Add switches for enabling/disabling libdw and libunwind
authorCarlos Rafael Giani <dv@pseudoterminal.org>
Fri, 11 Aug 2017 19:17:06 +0000 (21:17 +0200)
committerTim-Philipp Müller <tim@centricular.com>
Sun, 13 Aug 2017 09:59:34 +0000 (10:59 +0100)
https://bugzilla.gnome.org/show_bug.cgi?id=778193

configure.ac

index c0e6b09..5f7c83f 100644 (file)
@@ -799,19 +799,45 @@ fi
 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
 
 dnl libunwind is optionally used by the leaks tracer
-PKG_CHECK_MODULES(UNWIND, libunwind, HAVE_UNWIND=yes, HAVE_UNWIND=no)
-if test "x$HAVE_UNWIND" = "xyes"; then
-  AC_DEFINE(HAVE_UNWIND, 1, [libunwind available])
-  UNWIND_REQUIRE=libunwind
-  AC_SUBST(UNWIND_REQUIRE)
+AC_ARG_WITH([unwind],[AS_HELP_STRING([--with-unwind=yes|no|auto],[use libunwind])],
+            [], [with_unwind=auto])
+if [ test "x${with_unwind}" != "xno" ]; then
+  PKG_CHECK_MODULES(UNWIND, [libunwind],
+      [
+        HAVE_UNWIND=yes
+        AC_DEFINE(HAVE_UNWIND, 1, [libunwind available])
+        UNWIND_REQUIRE=libunwind
+        AC_SUBST(UNWIND_REQUIRE)
+      ],
+      [
+        HAVE_UNWIND=no
+        if [ test "x${with_unwind}" = "xyes" ]; then
+          AC_MSG_ERROR([could not find libunwind])
+        fi
+      ])
+else
+  HAVE_UNWIND=no
 fi
 
 dnl libdw is optionally used to add source lines and numbers to backtraces
-PKG_CHECK_MODULES(DW, libdw, HAVE_DW=yes, HAVE_DW=no)
-if test "x$HAVE_DW" = "xyes"; then
-  AC_DEFINE(HAVE_DW, 1, [libdw available])
-  DW_REQUIRE=libdw
-  AC_SUBST(DW_REQUIRE)
+AC_ARG_WITH([dw],[AS_HELP_STRING([--with-dw=yes|no|auto],[use libdw])],
+            [], [with_dw=auto])
+if [ test "x${with_dw}" != "xno" ]; then
+  PKG_CHECK_MODULES(DW, [libdw],
+      [
+        HAVE_DW=yes
+        AC_DEFINE(HAVE_DW, 1, [libdw available])
+        DW_REQUIRE=libdw
+        AC_SUBST(DW_REQUIRE)
+      ],
+      [
+        HAVE_DW=no
+        if [ test "x${with_dw}" = "xyes" ]; then
+          AC_MSG_ERROR([could not find libdw])
+        fi
+      ])
+else
+  HAVE_DW=no
 fi
 
 dnl Check for backtrace() from libc