aboutsummaryrefslogtreecommitdiffstats
path: root/macros/gnome-x-checks.m4
blob: 4ac3ba44396b52d2604ec53514a7e3f80bda8049 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
dnl GNOME_X_CHECKS
dnl
dnl Basic X11 related checks for X11.  At the end, the following will be
dnl defined/changed:
dnl   GTK_{CFLAGS,LIBS}      From AM_PATH_GTK
dnl   CPPFLAGS           Will include $X_CFLAGS
dnl   GNOME_HAVE_SM      `true' or `false' depending on whether session
dnl                          management is available.  It is available if
dnl                          both -lSM and X11/SM/SMlib.h exist.  (Some
dnl                          Solaris boxes have the library but not the header)
dnl   XPM_LIBS               -lXpm if Xpm library is present, otherwise ""
dnl
dnl The following configure cache variables are defined (but not used):
dnl   gnome_cv_passdown_{x_libs,X_LIBS,X_CFLAGS}
dnl
AC_DEFUN([GNOME_X_CHECKS],
[
    AM_PATH_GTK(1.2.0,,AC_MSG_ERROR(GTK not installed, or gtk-config not in path))
    dnl Hope that GTK_CFLAGS have only -I and -D.  Otherwise, we could
    dnl   test -z "$x_includes" || CPPFLAGS="$CPPFLAGS -I$x_includes"
    dnl
    dnl Use CPPFLAGS instead of CFLAGS because AC_CHECK_HEADERS uses
    dnl CPPFLAGS, not CFLAGS
        CPPFLAGS="$CPPFLAGS $GTK_CFLAGS"

        saved_ldflags="$LDFLAGS"
        LDFLAGS="$LDFLAGS $GTK_LIBS"

    gnome_cv_passdown_x_libs="$GTK_LIBS"
    gnome_cv_passdown_X_LIBS="$GTK_LIBS"
    gnome_cv_passdown_X_CFLAGS="$GTK_CFLAGS"
    gnome_cv_passdown_GTK_LIBS="$GTK_LIBS"

        LDFLAGS="$saved_ldflags $GTK_LIBS"

dnl Check that we *don't* get GTK 1.3.* yet 

    AC_MSG_CHECKING([whether we have GTK > 1.2])
    AC_EGREP_CPP(answer_affirmatively,
    [#include <gtk/gtk.h>
    #if GTK_MINOR_VERSION > 2
       answer_affirmatively
    #endif
    ], [AC_MSG_ERROR([Aborting, the current versions 
    of gnome are not yet compatible with the unstable GTK 1.3 release. 
    Please use GTK 1.2. To get Gtk 1.2 and Glib 1.2 from the CVS repo
    sitory, use the commands cvs checkout -r gtk-1-2 gtk and
    cvs checkout -r glib-1-2 glib.])])


dnl We are requiring GTK >= 1.1.1, which means this will be fine anyhow.
    USE_DEVGTK=true

dnl AC_MSG_CHECKING([whether to use features from (unstable) GTK+ 1.1.x])
dnl AC_EGREP_CPP(answer_affirmatively,
dnl [#include <gtk/gtkfeatures.h>
dnl #ifdef GTK_HAVE_FEATURES_1_1_0
dnl    answer_affirmatively
dnl #endif
dnl ], dev_gtk=yes, dev_gtk=no)
dnl if test "$dev_gtk" = "yes"; then
dnl    USE_DEVGTK=true
dnl fi
dnl AC_MSG_RESULT("$dev_gtk")

    GNOME_HAVE_SM=true
    case "$GTK_LIBS" in
     *-lSM*)
        dnl Already found it.
        ;;
     *)
        dnl Assume that if we have -lSM then we also have -lICE.
        AC_CHECK_LIB(SM, SmcSaveYourselfDone,
            [GTK_LIBS="-lSM -lICE $GTK_LIBS"],GNOME_HAVE_SM=false,
        $x_libs -lICE)
        ;;
    esac

    if test "$GNOME_HAVE_SM" = true; then
       AC_CHECK_HEADERS(X11/SM/SMlib.h,,GNOME_HAVE_SM=false)
    fi

    if test "$GNOME_HAVE_SM" = true; then
       AC_DEFINE(HAVE_LIBSM)
    fi

    XPM_LIBS=""
    AC_CHECK_LIB(Xpm, XpmFreeXpmImage, [XPM_LIBS="-lXpm"], , $x_libs)
    AC_SUBST(XPM_LIBS)

    AC_REQUIRE([GNOME_PTHREAD_CHECK])
        LDFLAGS="$saved_ldflags"

    AC_PROVIDE([GNOME_X_CHECKS])
])