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