]> icculus.org git repositories - dana/openbox.git/blob - configure.ac
make the root background color a config option, and add name_window_pixmap() helper...
[dana/openbox.git] / configure.ac
1 AC_PREREQ([2.54])
2 AC_INIT([openbox], [3.5.0-rc1], [http://bugzilla.icculus.org])
3 AM_INIT_AUTOMAKE
4 AC_CONFIG_SRCDIR([openbox/openbox.c])
5
6 OB_VERSION=$PACKAGE_VERSION
7 AC_SUBST(OB_VERSION)
8
9 dnl Making releases:
10 dnl   RR_MICRO_VERSION += 1;
11 dnl   RR_INTERFACE_AGE += 1;
12 dnl   R_BINARY_AGE += 1;
13 dnl if any functions have been added, set RR_INTERFACE_AGE to 0.
14 dnl if backwards compatibility has been broken,
15 dnl set RR_BINARY_AGE and RR_INTERFACE_AGE to 0.
16 dnl
17 dnl if MAJOR or MINOR version changes, be sure to change AC_INIT above to match
18 dnl
19 RR_MAJOR_VERSION=3
20 RR_MINOR_VERSION=5
21 RR_MICRO_VERSION=27
22 RR_INTERFACE_AGE=0
23 RR_BINARY_AGE=0
24 RR_VERSION=$RR_MAJOR_VERSION.$RR_MINOR_VERSION
25
26 OBTHEME_MAJOR_VERSION=1
27 OBTHEME_MINOR_VERSION=0
28 OBTHEME_MICRO_VERSION=0
29 OBTHEME_INTERFACE_AGE=0
30 OBTHEME_BINARY_AGE=0
31 OBTHEME_VERSION=$OBTHEME_MAJOR_VERSION.$OBTHEME_MINOR_VERSION
32
33 OBT_MAJOR_VERSION=3
34 OBT_MINOR_VERSION=5
35 OBT_MICRO_VERSION=0
36 OBT_INTERFACE_AGE=0
37 OBT_BINARY_AGE=0
38 OBT_VERSION=$OBT_MAJOR_VERSION.$OBT_MINOR_VERSION
39
40 AC_SUBST(RR_MAJOR_VERSION)
41 AC_SUBST(RR_MINOR_VERSION)
42 AC_SUBST(RR_MICRO_VERSION)
43 AC_SUBST(RR_INTERFACE_AGE)
44 AC_SUBST(RR_BINARY_AGE)
45 AC_SUBST(RR_VERSION)
46 AC_SUBST(OBTHEME_MAJOR_VERSION)
47 AC_SUBST(OBTHEME_MINOR_VERSION)
48 AC_SUBST(OBTHEME_MICRO_VERSION)
49 AC_SUBST(OBTHEME_INTERFACE_AGE)
50 AC_SUBST(OBTHEME_BINARY_AGE)
51 AC_SUBST(OBTHEME_VERSION)
52 AC_SUBST(OBT_MAJOR_VERSION)
53 AC_SUBST(OBT_MINOR_VERSION)
54 AC_SUBST(OBT_MICRO_VERSION)
55 AC_SUBST(OBT_INTERFACE_AGE)
56 AC_SUBST(OBT_BINARY_AGE)
57 AC_SUBST(OBT_VERSION)
58
59 dnl Libtool versioning
60 RR_RELEASE=$RR_MAJOR_VERSION.$RR_MINOR_VERSION
61 RR_CURRENT=`expr $RR_MICRO_VERSION - $RR_INTERFACE_AGE`
62 RR_REVISION=$RR_INTERFACE_AGE
63 RR_AGE=`expr $RR_BINARY_AGE - $RR_INTERFACE_AGE`
64 RR_CURRENT_MINUS_AGE=`expr $RR_CURRENT - $RR_AGE`
65
66 OBTHEME_RELEASE=$OBTHEME_MAJOR_VERSION.$OBTHEME_MINOR_VERSION
67 OBTHEME_CURRENT=`expr $OBTHEME_MICRO_VERSION - $OBTHEME_INTERFACE_AGE`
68 OBTHEME_REVISION=$OBTHEME_INTERFACE_AGE
69 OBTHEME_AGE=`expr $OBTHEME_BINARY_AGE - $OBTHEME_INTERFACE_AGE`
70 OBTHEME_CURRENT_MINUS_AGE=`expr $OBTHEME_CURRENT - $OBTHEME_AGE`
71
72 OBT_RELEASE=$OBT_MAJOR_VERSION.$OBT_MINOR_VERSION
73 OBT_CURRENT=`expr $OBT_MICRO_VERSION - $OBT_INTERFACE_AGE`
74 OBT_REVISION=$OBT_INTERFACE_AGE
75 OBT_AGE=`expr $OBT_BINARY_AGE - $OBT_INTERFACE_AGE`
76 OBT_CURRENT_MINUS_AGE=`expr $OBT_CURRENT - $OBT_AGE`
77
78 AC_SUBST(RR_RELEASE)
79 AC_SUBST(RR_CURRENT)
80 AC_SUBST(RR_REVISION)
81 AC_SUBST(RR_AGE)
82 AC_SUBST(RR_CURRENT_MINUS_AGE)
83 AC_SUBST(OBTHEME_RELEASE)
84 AC_SUBST(OBTHEME_CURRENT)
85 AC_SUBST(OBTHEME_REVISION)
86 AC_SUBST(OBTHEME_AGE)
87 AC_SUBST(OBTHEME_CURRENT_MINUS_AGE)
88 AC_SUBST(OBT_RELEASE)
89 AC_SUBST(OBT_CURRENT)
90 AC_SUBST(OBT_REVISION)
91 AC_SUBST(OBT_AGE)
92 AC_SUBST(OBT_CURRENT_MINUS_AGE)
93
94 AC_PREFIX_DEFAULT([/usr/local])
95 test "$prefix" = "NONE" && prefix=$ac_default_prefix
96
97 dnl Determine build target
98 OB_DEBUG
99 dnl Pick compiler specific/build target flags, and set $CVS
100 AM_PROG_CC_C_O
101 OB_COMPILER_FLAGS
102 AC_C_CONST
103 AC_C_INLINE
104
105 AC_PROG_LIBTOOL
106 AC_SUBST(LIBTOOL_DEPS)
107 LIBTOOL="$LIBTOOL --silent"
108
109 AC_PROG_INSTALL
110
111 AM_PROG_LEX
112 AC_PROG_YACC
113
114 AM_GNU_GETTEXT_VERSION(0.15)
115 AM_GNU_GETTEXT([external])
116
117 AC_CHECK_HEADERS(ctype.h fcntl.h grp.h locale.h pwd.h signal.h string.h)
118 AC_CHECK_HEADERS(stdio.h stdlib.h unistd.h sys/stat.h sys/select.h)
119 AC_CHECK_HEADERS(sys/socket.h sys/time.h sys/wait.h sys/inotify.h)
120 # AC_HEADER_TIME
121 # AC_TYPE_SIGNAL
122
123 AC_PATH_PROG([SED], [sed], [no])
124 if test "$SED" = "no"; then
125   AC_MSG_ERROR([The program "sed" is not available. This program is required to build Openbox.])
126 fi
127
128 PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.14.0])
129 AC_SUBST(GLIB_CFLAGS)
130 AC_SUBST(GLIB_LIBS)
131
132 PKG_CHECK_MODULES(PANGO, [pango >= 1.8.0 pangoxft >= 1.8.0])
133 AC_SUBST(PANGO_CFLAGS)
134 AC_SUBST(PANGO_LIBS)
135
136 PKG_CHECK_MODULES(XML, [libxml-2.0 >= 2.6.0])
137 AC_SUBST(XML_CFLAGS)
138 AC_SUBST(XML_LIBS)
139
140 AC_ARG_ENABLE(startup-notification,
141   AC_HELP_STRING(
142     [--disable-startup-notification],
143     [disable the startup notification library. [[default=enabled]]]
144   ),
145   [enable_sn=$enableval],
146   [enable_sn=yes]
147 )
148
149 if test "$enable_sn" = yes; then
150 PKG_CHECK_MODULES(LIBSN, [libstartup-notification-1.0 >= 0.8],
151   [
152     AC_DEFINE(USE_LIBSN, [1], [Use startup-notification])
153     AC_SUBST(LIBSN_CFLAGS)
154     AC_SUBST(LIBSN_LIBS)
155     sn_found=yes
156   ],
157   [
158     sn_found=no
159   ]
160 )
161 else
162   sn_found=no
163 fi
164
165 AC_ARG_ENABLE(xcursor,
166   AC_HELP_STRING(
167     [--disable-xcursor],
168     [disable use of the X Cursor library. [[default=enabled]]]
169   ),
170   [enable_xcursor=$enableval],
171   [enable_xcursor=yes]
172 )
173
174 if test "$enable_xcursor" = yes; then
175 PKG_CHECK_MODULES(XCURSOR, [xcursor],
176   [
177     AC_DEFINE(USE_XCURSOR, [1], [Use X Cursor library])
178     AC_SUBST(XCURSOR_CFLAGS)
179     AC_SUBST(XCURSOR_LIBS)
180     xcursor_found=yes
181   ],
182   [
183     xcursor_found=no
184   ]
185 )
186 else
187   xcursor_found=no
188 fi
189
190 AC_ARG_ENABLE(imlib2,
191   AC_HELP_STRING(
192     [--disable-imlib2],
193     [disable use of Imlib2 image library for loading icons. [[default=enabled]]]
194   ),
195   [enable_imlib2=$enableeval],
196   [enable_imlib2=yes]
197 )
198
199 if test "$enable_imlib2" = yes; then
200 PKG_CHECK_MODULES(IMLIB2, [imlib2],
201   [
202     AC_DEFINE(USE_IMLIB2, [1], [Use Imlib2 image library])
203     AC_SUBST(IMLIB2_CFLAGS)
204     AC_SUBST(IMLIB2_LIBS)
205     # export it for the pkg-config file
206     PKG_CONFIG_IMLIB=imlib2
207     AC_SUBST(PKG_CONFIG_IMLIB)
208     imlib2_found=yes
209   ],
210   [
211     imlib2_found=no
212   ]
213 )
214 else
215   imlib2_found=no
216 fi
217
218 AM_CONDITIONAL(USE_IMLIB2, [test $imlib2_found = yes])
219
220 AC_ARG_ENABLE(compositing,
221   AC_HELP_STRING(
222     [--disable-compositing],
223     [disable the built-in compositing manager [[default=enabled]]]
224   ),
225   [enable_compositing=$enableval],
226   [enable_compositing=yes]
227 )
228
229 AC_MSG_CHECKING(if compositing manager support should be enabled)
230 AC_MSG_RESULT($enable_compositing)
231
232 if test "$enable_compositing" = yes; then
233   PKG_CHECK_MODULES(XCOMPOSITE, [xcomposite])
234   AC_SUBST(XCOMPOSITE_CFLAGS)
235   AC_SUBST(XCOMPOSITE_LIBS)
236
237   PKG_CHECK_MODULES([XRENDER], [xrender])
238   AC_SUBST(XRENDER_CFLAGS)
239   AC_SUBST(XRENDER_LIBS)
240
241   PKG_CHECK_MODULES(XDAMAGE, [xdamage])
242   AC_SUBST(XDAMAGE_CFLAGS)
243   AC_SUBST(XDAMAGE_LIBS)
244
245   PKG_CHECK_MODULES(XFIXES, [xfixes])
246   AC_SUBST(XDAMAGE_CFLAGS)
247   AC_SUBST(XDAMAGE_LIBS)
248
249   PKG_CHECK_MODULES(GLEW, [glew])
250   AC_SUBST(GLEW_CFLAGS)
251   AC_SUBST(GLEW_LIBS)
252
253   AC_MSG_CHECKING(for GL_CFLAGS)
254   AC_ARG_WITH(gl-cflags, [  --with-gl-cflags=CFLAGS ],
255                          [GL_CFLAGS="$withval"],
256                          [GL_CFLAGS=""])
257
258   AC_MSG_RESULT($GL_CFLAGS)
259   AC_MSG_CHECKING(for GL_LIBS)
260   AC_ARG_WITH(gl-libs, [  --with-gl-libs=LIBS ],
261                        [GL_LIBS="$withval"],
262                        [GL_LIBS="-lGL"])
263   AC_MSG_RESULT($GL_LIBS)
264
265   AC_CHECK_LIB([GL], [glPopMatrix], ,
266     AC_MSG_ERROR([Could not find glPopMatrix in -lGL.]))
267
268   AC_MSG_CHECKING([for GL/gl.h])
269   AC_TRY_COMPILE(
270     [#include <GL/gl.h>],
271     [GLenum e = GL_INVALID_ENUM;],
272     [AC_MSG_RESULT([yes])],
273     [AC_MSG_RESULT([no])
274      AC_MSG_ERROR([Could not compile with GL/gl.h])])
275
276   AC_MSG_CHECKING([for GL/glx.h])
277   AC_TRY_COMPILE(
278     [#include <GL/glx.h>],
279     [int i = GLX_USE_GL;],
280     [AC_MSG_RESULT([yes])],
281     [AC_MSG_RESULT([no])
282      AC_MSG_ERROR([Could not compile with GL/glx.h])])
283
284   AC_SUBST(GL_CFLAGS)
285   AC_SUBST(GL_LIBS)
286
287   AC_DEFINE(USE_COMPOSITING, [1], [Support being a compositing manager])
288   do_compositing="yes"
289 else
290   do_compositing="no"
291 fi
292
293 dnl Check for session management
294 X11_SM
295
296 #EFENCE_LIBS=-lefence
297 EFENCE_LIBS=""
298 AC_SUBST(EFENCE_LIBS)
299
300 dnl Check for X11 extensions
301 X11_EXT_XKB
302 X11_EXT_XRANDR
303 X11_EXT_SHAPE
304 X11_EXT_XINERAMA
305 X11_EXT_SYNC
306
307 AC_CONFIG_FILES([
308   Makefile
309   m4/Makefile
310   po/Makefile.in
311   obrender/obrender-3.5.pc
312   obt/obt-3.5.pc
313   obrender/version.h
314   obt/version.h
315   version.h
316 ])
317 AC_CONFIG_COMMANDS([doc],
318                    [test -d doc || mkdir doc])
319 AC_CONFIG_COMMANDS([data],
320                    [test -d data || mkdir data])
321 AC_CONFIG_COMMANDS([data/xsession],
322                    [test -d data/xsession || mkdir data/xsession])
323 AC_OUTPUT
324
325 AC_MSG_RESULT
326 AC_MSG_RESULT([Compiling with these options:
327                Startup Notification... $sn_found
328                X Cursor Library... $xcursor_found
329                Session Management... $SM
330                Imlib2 library... $imlib2_found
331                Compositing manager... $do_compositing
332                ])
333 AC_MSG_RESULT([configure complete, now type "make"])