]> git.ipfire.org Git - thirdparty/mtr.git/commitdiff
build-sys: use pkg-config to find gtk+-2.0
authorSami Kerola <kerolasa@iki.fi>
Thu, 18 Aug 2016 20:34:36 +0000 (21:34 +0100)
committerSami Kerola <kerolasa@iki.fi>
Sun, 21 Aug 2016 14:51:42 +0000 (15:51 +0100)
Makefile.am
configure.ac
display.c
gtk.c

index d15a6d5fecdab316619fbb875985e7c38dfb5d6a..0e740a933864547d70919a9b0a0ebabfdffd34a1 100644 (file)
@@ -23,10 +23,14 @@ if IPINFO
 mtr_SOURCES += asn.c asn.h
 endif
 
-EXTRA_mtr_SOURCES = curses.c \
-                    gtk.c
+EXTRA_mtr_SOURCES = curses.c
 
+if WITH_GTK
+mtr_SOURCES += gtk.c
+endif
+
+mtr_DEPENDENCIES = $(CURSES_OBJ)
+mtr_LDFLAGS = $(CURSES_OBJ)
 mtr_INCLUDES = $(GLIB_CFLAGS) -I$(top_builddir) -I$(top_srcdir)
-mtr_DEPENDENCIES = $(GTK_OBJ) $(CURSES_OBJ)
-mtr_LDFLAGS = $(GTK_OBJ) $(CURSES_OBJ)
-mtr_LDADD = $(GLIB_LIBS) $(RESOLV_LIBS)
+mtr_CFLAGS = $(GTK_CFLAGS) $(NCURSES_CFLAGS)
+mtr_LDADD = $(GTK_LIBS) $(NCURSES_LDADD) $(RESOLV_LIBS)
index e737f54910500bf0c2a5ffedb4992131613d02a7..92e2cefb575e965af6acad305a0c8ffb367c7543 100644 (file)
@@ -15,10 +15,7 @@ m4_ifdef([AM_SILENT_RULES],
   [AM_SILENT_RULES([yes])],
   [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
 
-AC_SUBST([GTK_OBJ])
 AC_SUBST([CURSES_OBJ])
-
-GTK_OBJ=gtk.o
 CURSES_OBJ=curses.o
 
 AC_PROG_CC
@@ -78,34 +75,14 @@ AC_CHECK_LIB([m], [floor], [], [AC_MSG_ERROR([No math library found])])
 
 # Find GTK
 AC_ARG_WITH([gtk],
-  [AS_HELP_STRING([--without-gtk], [Do not try to use GTK+ at all])],
+  [AS_HELP_STRING([--without-gtk], [Build without the GTK+2.0 interface])],
   [], [with_gtk=yes])
-AS_IF([test "x$with_gtk" = "xyes"], [WANTS_GTK=yes], [WANTS_GTK=no])
-
-m4_ifndef([AM_PATH_GTK_2_0],
-  [m4_defun([AM_PATH_GTK_2_0], [
-    AC_MSG_ERROR([dnl
-Could not locate the gtk2 automake macros, these are usually located in
-  .../share/aclocal/gtk-2.0.m4
-Before running bootstrap try setting the environment variable
-  ACLOCAL_PATH="/own/dir"
-or configure --without-gtk.])
-  ])
-])
-
-AS_IF([test "x$WANTS_GTK" = "xyes"], [
-  AM_PATH_GTK_2_0([2.6.0], [
-    CFLAGS="$CFLAGS $GTK_CFLAGS"
-    LIBS="$LIBS $GTK_LIBS -lm"
-  ], [
-    AC_MSG_WARN([Building without GTK2 display support])
-    AC_DEFINE([NO_GTK], [1], [Define if you don't have the GTK+ libraries available.])
-    GTK_OBJ=""
-  ])
-], [
-  AC_DEFINE([NO_GTK], [1], [Define if you don't have the GTK+ libraries available.])
-  GTK_OBJ=""
+AS_IF([test "x$with_gtk" = "xyes"],
+  [PKG_CHECK_MODULES([GTK], [gtk+-2.0],
+    [AC_DEFINE([HAVE_GTK], [1], [Define if gtk+-2.0 library available])],
+    [with_gtk=no])
 ])
+AM_CONDITIONAL([WITH_GTK], [test "x$with_gtk" = xyes])
 
 # Enable ipinfo
 AC_ARG_WITH([ipinfo],
index ed05035eca1433a47aca4575fe84e6ad0a9299cf..0c5b0e9a08f7efee7e7520c8dd5fd89b2dc502a2 100644 (file)
--- a/display.c
+++ b/display.c
@@ -45,15 +45,15 @@ extern int DisplayMode;
 #include "mtr-curses.h"
 #endif
 
-#ifdef NO_GTK
+#ifdef HAVE_GTK
+#include "mtr-gtk.h"
+#else
 // No support for gtk mode, allow the calls to remain in the code.
 #define gtk_open()
 #define gtk_close()
 #define gtk_redraw()
 #define gtk_keyaction() 0
 #define gtk_loop() {fprintf (stderr, "No GTK support. Sorry.\n"); exit(EXIT_FAILURE); }
-#else
-#include "mtr-gtk.h"
 #endif
 
 #ifdef NO_SPLIT
@@ -78,17 +78,17 @@ extern int DisplayMode;
 #define DEFAULT_DISPLAY DisplayCurses
 #endif
 
-#ifdef NO_GTK
-#define UNUSED_IF_NO_GTK UNUSED
-#else
+#ifdef HAVE_GTK
 #define UNUSED_IF_NO_GTK
+#else
+#define UNUSED_IF_NO_GTK UNUSED
 #endif
 
 void display_detect(int *argc UNUSED_IF_NO_GTK, char ***argv UNUSED_IF_NO_GTK)
 {
   DisplayMode = DEFAULT_DISPLAY;
 
-#ifndef NO_GTK
+#ifdef HAVE_GTK
   if(gtk_detect(argc, argv)) {
     DisplayMode = DisplayGTK;
   }
diff --git a/gtk.c b/gtk.c
index a785fd4abb30247cd2d7dd06b7e7a7484206f6af..e55f48934a6a8a3049b7cfd25ca6623d6fa488d4 100644 (file)
--- a/gtk.c
+++ b/gtk.c
@@ -25,7 +25,7 @@
 #include <sys/time.h>
 #include <sys/types.h>
 
-#ifndef NO_GTK
+#ifdef HAVE_GTK
 #include <string.h>
 #include <sys/types.h>
 #include <gtk/gtk.h>