diff --git a/Makefile.am b/Makefile.am index cb59e57a83..c23b18cc66 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3,11 +3,16 @@ SRC_SUBDIRS = glib gdk gtk SUBDIRS = $(SRC_SUBDIRS) docs +bin_SCRIPTS = gtk-config + EXTRA_DIST = \ gtk+.prj \ makecopyright \ TODO +m4datadir = $(datadir)/aclocal +m4data_DATA = gtk.m4 + .PHONY: files populate checkin release files: diff --git a/configure.in b/configure.in index 504373599d..afde5d51b3 100644 --- a/configure.in +++ b/configure.in @@ -128,12 +128,12 @@ else AC_DEFINE(XINPUT_NONE) fi - AC_SUBST(x_cflags) AC_SUBST(x_includes) AC_SUBST(x_ldflags) AC_SUBST(x_libs) AC_SUBST(xinput_progs) +AC_SUBST(GTK_VERSION) CFLAGS="$saved_cflags" LDFLAGS="$saved_ldflags" @@ -260,4 +260,5 @@ if test $gtk_ok = no; then AC_DEFINE(NO_FD_SET) fi -AC_OUTPUT(Makefile gtk+.xconfig docs/Makefile gdk/Makefile gtk/Makefile) +AC_OUTPUT([Makefile gtk-config docs/Makefile gdk/Makefile gtk/Makefile], + [chmod +x gtk-config]) diff --git a/gtk+.xconfig.in b/gtk+.xconfig.in deleted file mode 100644 index 8843df6ce4..0000000000 --- a/gtk+.xconfig.in +++ /dev/null @@ -1,3 +0,0 @@ -X_CFLAGS = @x_cflags@ -X_LDFLAGS = @x_ldflags@ -X_LIBS = @x_libs@ diff --git a/gtk-config.in b/gtk-config.in new file mode 100644 index 0000000000..805d654109 --- /dev/null +++ b/gtk-config.in @@ -0,0 +1,28 @@ +#!/bin/sh + +prefix=@prefix@ +exec_prefix=@exec_prefix@ + +usage="\ +Usage: gtk-config [--version] [--libs] [--cflags]" + +if test $# -ne 1 ; then + echo "${usage}" 1>&2 + exit 1 +fi + +case $1 in + --version) + echo @GTK_VERSION@ + ;; + --cflags) + echo -I@includedir@ @x_cflags@ + ;; + --libs) + echo -L@libdir@ @x_ldflags@ -lgtk -lgdk -lglib @x_libs@ -lm + ;; + *) + echo "${usage}" 1>&2 + exit 1 + ;; +esac \ No newline at end of file diff --git a/gtk.m4 b/gtk.m4 new file mode 100644 index 0000000000..70b0aebc5e --- /dev/null +++ b/gtk.m4 @@ -0,0 +1,61 @@ +# Configure paths for GTK+ +# Owen Taylor 97-11-3 + +dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) +dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS +dnl +AC_DEFUN(AM_PATH_GTK, +[dnl +dnl Get the cflags and libraries from the gtk-config script +dnl + AC_CHECK_PROG(GTK_CONFIG, gtk-config, gtk-config, no) + ifelse($1 , ,min_gtk_version=$1,min_gtk_version=0.99.5) + AC_MSG_CHECKING(for GTK - version >= $min_gtk_version) + no_gtk="" + if test "$GTK_CONFIG" != "no" ; then + GTK_CFLAGS=$($GTK_CONFIG --cflags) + GTK_LIBS=$($GTK_CONFIG --libs) + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $GTK_CFLAGS" + LIBS="$LIBS $GTK_LIBS" +dnl +dnl Now check if the installed GTK is sufficiently new. (Also sanity +dnl checks the results of gtk-config to some extent +dnl + AC_TRY_RUN([ +#include +#include + +int +main () +{ + int major, minor, micro; + + if (sscanf("$min_gtk_version", "%d.%d.%d", &major, &minor, µ) != 3) { + printf("%s, bad version string\n", "$min_gtk_version"); + exit(1); + } + + return !((gtk_major_version > major) || + ((gtk_major_version == major) && (gtk_minor_version > minor)) || + ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))); +} +],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + else + no_gtk=yes + fi + if test x$no_gtk == x ; then + AC_MSG_RESULT(yes) + ifelse([$2], , :, [$2]) + else + AC_MSG_RESULT(no) + GTK_CFLAGS="" + GTK_LIBS="" + ifelse([$3], , :, [$3]) + fi + AC_SUBST(GTK_CFLAGS) + AC_SUBST(GTK_LIBS) +])