]> Dogcows Code - chaz/openbox/blob - m4/x11.m4
add X_DEVEL and XFT_DEVEL m4 functions
[chaz/openbox] / m4 / x11.m4
1 # X11_DEVEL()
2 #
3 # Check for the presence of the X Window System headers and libraries.
4 # Sets the CXXFLAGS and LIBS variables as appropriate.
5 AC_DEFUN([X11_DEVEL],
6 [
7 AC_PATH_X
8 AC_PATH_XTRA
9 test "$no_x" = "yes" && \
10 AC_MSG_ERROR([The X Window System could not be found.])
11
12 CXXFLAGS="$CXXFLAGS $X_CFLAGS"
13 LIBS="$LIBS $X_PRE_LIBS $X_LIBS $X_EXTRA_LIBS"
14
15 # Check for required functions in -lX11
16 AC_CHECK_LIB(
17 [X11], [XOpenDisplay],
18 ,
19 AC_MSG_ERROR([Could not find XOpenDisplay in -lX11.])
20 )
21 ])
22
23
24 AC_DEFUN([XFT_ERROR],
25 [
26 if test "$XFT_MIN"; then
27 AC_MSG_ERROR([$PACKAGE requires the Xft font library >= $XFT_MIN.
28 See http://www.fontconfig.org/
29 ])
30 else
31 AC_MSG_ERROR([$PACKAGE requires the Xft font library.
32 See http://www.fontconfig.org/
33 ])
34 fi
35 ])
36
37 # XFT_DEVEL([required-version])
38 #
39 # Check for the XFT development package.
40 # You can use the optional argument to check for a library of at least the
41 # given version.
42 # It provides the $(PYTHON_CFLAGS) $(PYTHON_LIBS) output variables.
43 AC_DEFUN([XFT_DEVEL],
44 [
45 AC_REQUIRE([X11_DEVEL])
46
47 if test "$1"; then
48 XFT_MIN=$1
49 XFT_MIN_MAJOR=${XFT_MIN%.*.*}
50 XFT_MIN_MINOR=${XFT_MIN%.*}
51 XFT_MIN_MINOR=${XFT_MIN_MINOR#*.}
52 XFT_MIN_REVISION=${XFT_MIN#*.*.}
53 else
54 XFT_MIN=""
55 fi
56
57 if test -z "$XFT_MIN"; then
58 AC_MSG_CHECKING([for Xft])
59 if ! pkg-config xft; then
60 AC_MSG_RESULT([no])
61 XFT_ERROR
62 fi
63 else
64 AC_MSG_CHECKING([for Xft version >= $XFT_MIN])
65 if ! pkg-config --atleast-version $XFT_MIN xft; then
66 AC_MSG_RESULT([no])
67 XFT_ERROR
68 fi
69 fi
70 AC_MSG_RESULT([yes])
71
72
73 # Store these
74 OLDLIBS=$LIBS
75 OLDCXXFLAGS=$CXXFLAGS
76
77 XFT_CFLAGS="`pkg-config --cflags xft`"
78 XFT_LIBS="`pkg-config --libs xft`"
79
80 # Set these for checking with the tests below. They'll be restored after
81 LIBS="$LIBS $XFT_LIBS"
82 CXXFLAGS="$XFT_CFLAGS $CXXFLAGS"
83
84 AC_CHECK_LIB([Xft], [XftFontOpenName],
85 if test "$XFT_MIN"; then
86 AC_MSG_CHECKING([for X11/Xft/Xft.h for Xft >= $XFT_MIN])
87 AC_TRY_COMPILE(
88 [
89 #include <X11/Xlib.h>
90 #include <X11/Xft/Xft.h>
91 ],
92 [
93 #if !defined(XFT_MAJOR)
94 # error Xft.h is too old
95 #endif
96 #if XFT_MAJOR < $XFT_MIN_MAJOR
97 # error Xft.h is too old
98 #endif
99 #if XFT_MAJOR == $XFT_MIN_MAJOR
100 # if XFT_MINOR < $XFT_MIN_MINOR
101 # error Xft.h is too old
102 # endif
103 #endif
104 #if XFT_MAJOR == $XFT_MIN_MAJOR
105 # if XFT_MAJOR == $XFT_MIN_MINOR
106 # if XFT_REVISION < $XFT_MIN_REVISION
107 # error Xft.h is too old
108 # endif
109 # endif
110 #endif
111
112 int i = XFT_MAJOR;
113 XftFont foo;
114 ],
115 [
116 AC_MSG_RESULT([yes])
117 ],
118 [
119 AC_MSG_RESULT([no])
120 XFT_ERROR
121 ])
122 else
123 AC_MSG_CHECKING([for X11/Xft/Xft.h])
124 AC_TRY_COMPILE(
125 [
126 #include <X11/Xlib.h>
127 #include <X11/Xft/Xft.h>
128 ],
129 [
130 int i = XFT_MAJOR; /* make sure were using Xft 2, not 1 */
131 XftFont foo;
132 ],
133 [
134 AC_MSG_RESULT([yes])
135 ],
136 [
137 AC_MSG_RESULT([no])
138 XFT_ERROR
139 ])
140 fi
141
142 AC_MSG_CHECKING([if we can compile with Xft])
143 AC_TRY_LINK(
144 [
145 #include <X11/Xlib.h>
146 #include <X11/Xft/Xft.h>
147 ],
148 [
149 int i = XFT_MAJOR;
150 XftFont foo
151 ],
152 [
153 AC_MSG_RESULT([yes])
154 ],
155 [
156 AC_MSG_RESULT([no])
157 AC_MSG_ERROR([Unable to compile with the Xft font library.
158 ])
159 ])
160 )
161
162 # Restore the old values. Use XFT_CFLAGS and XFT_LIBS in the Makefile.am's
163 LIBS=$OLDLIBS
164 CXXFLAGS=$OLDCXXFLAGS
165
166 AC_SUBST([XFT_CFLAGS])
167 AC_SUBST([XFT_LIBS])
168 ])
This page took 0.047612 seconds and 5 git commands to generate.