Make warnings about parse problems in .desktop files "debug" messages. Most people...
[dana/openbox.git] / configure.ac
1 AC_PREREQ([2.54])
2 AC_INIT([openbox], [3.5.0], [http://bugzilla.icculus.org])
3 AC_CONFIG_SRCDIR([openbox/openbox.c])
4
5 AM_INIT_AUTOMAKE([foreign])
6 AM_SILENT_RULES([yes])
7
8 OB_VERSION=$PACKAGE_VERSION
9 AC_SUBST(OB_VERSION)
10
11 dnl Making releases:
12 dnl   RR_MICRO_VERSION += 1;
13 dnl   RR_INTERFACE_AGE += 1;
14 dnl   R_BINARY_AGE += 1;
15 dnl if any functions have been added, set RR_INTERFACE_AGE to 0.
16 dnl if backwards compatibility has been broken,
17 dnl set RR_BINARY_AGE and RR_INTERFACE_AGE to 0.
18 dnl
19 dnl if MAJOR or MINOR version changes, be sure to change AC_INIT above to match
20 dnl
21 RR_MAJOR_VERSION=3
22 RR_MINOR_VERSION=5
23 RR_MICRO_VERSION=28
24 RR_INTERFACE_AGE=1
25 RR_BINARY_AGE=1
26 RR_VERSION=$RR_MAJOR_VERSION.$RR_MINOR_VERSION
27
28 OBT_MAJOR_VERSION=3
29 OBT_MINOR_VERSION=5
30 OBT_MICRO_VERSION=1
31 OBT_INTERFACE_AGE=1
32 OBT_BINARY_AGE=1
33 OBT_VERSION=$OBT_MAJOR_VERSION.$OBT_MINOR_VERSION
34
35 AC_SUBST(RR_MAJOR_VERSION)
36 AC_SUBST(RR_MINOR_VERSION)
37 AC_SUBST(RR_MICRO_VERSION)
38 AC_SUBST(RR_INTERFACE_AGE)
39 AC_SUBST(RR_BINARY_AGE)
40 AC_SUBST(RR_VERSION)
41 AC_SUBST(OBT_MAJOR_VERSION)
42 AC_SUBST(OBT_MINOR_VERSION)
43 AC_SUBST(OBT_MICRO_VERSION)
44 AC_SUBST(OBT_INTERFACE_AGE)
45 AC_SUBST(OBT_BINARY_AGE)
46 AC_SUBST(OBT_VERSION)
47
48 dnl Libtool versioning
49 RR_RELEASE=$RR_MAJOR_VERSION.$RR_MINOR_VERSION
50 RR_CURRENT=`expr $RR_MICRO_VERSION - $RR_INTERFACE_AGE`
51 RR_REVISION=$RR_INTERFACE_AGE
52 RR_AGE=`expr $RR_BINARY_AGE - $RR_INTERFACE_AGE`
53 RR_CURRENT_MINUS_AGE=`expr $RR_CURRENT - $RR_AGE`
54
55 OBT_RELEASE=$OBT_MAJOR_VERSION.$OBT_MINOR_VERSION
56 OBT_CURRENT=`expr $OBT_MICRO_VERSION - $OBT_INTERFACE_AGE`
57 OBT_REVISION=$OBT_INTERFACE_AGE
58 OBT_AGE=`expr $OBT_BINARY_AGE - $OBT_INTERFACE_AGE`
59 OBT_CURRENT_MINUS_AGE=`expr $OBT_CURRENT - $OBT_AGE`
60
61 AC_SUBST(RR_RELEASE)
62 AC_SUBST(RR_CURRENT)
63 AC_SUBST(RR_REVISION)
64 AC_SUBST(RR_AGE)
65 AC_SUBST(RR_CURRENT_MINUS_AGE)
66 AC_SUBST(OBT_RELEASE)
67 AC_SUBST(OBT_CURRENT)
68 AC_SUBST(OBT_REVISION)
69 AC_SUBST(OBT_AGE)
70 AC_SUBST(OBT_CURRENT_MINUS_AGE)
71
72 AC_PREFIX_DEFAULT([/usr/local])
73 test "$prefix" = "NONE" && prefix=$ac_default_prefix
74
75 dnl Determine build target
76 OB_DEBUG
77 dnl Pick compiler specific/build target flags, and set $CVS
78 AM_PROG_CC_C_O
79 OB_COMPILER_FLAGS
80 AC_C_CONST
81 AC_C_INLINE
82
83 AC_PROG_LIBTOOL
84 AC_SUBST(LIBTOOL_DEPS)
85 LIBTOOL="$LIBTOOL --silent"
86
87 AC_PROG_INSTALL
88
89 AM_GNU_GETTEXT_VERSION(0.15)
90 AM_GNU_GETTEXT([external])
91
92 AC_CHECK_HEADERS(ctype.h dirent.h errno.h fcntl.h grp.h locale.h pwd.h)
93 AC_CHECK_HEADERS(signal.h string.h stdio.h stdlib.h unistd.h sys/stat.h)
94 AC_CHECK_HEADERS(sys/select.h sys/socket.h sys/time.h sys/types.h sys/wait.h)
95
96 AC_ARG_ENABLE(inotify,
97   AC_HELP_STRING(
98     [--disable-inotify],
99     [disable inotify support [default=enabled]]
100   ),
101   [enable_inotify=$enableval],
102   [enable_inotify=yes]
103 )
104 if test "$enable_inotify" = yes; then
105   AC_CHECK_HEADERS(sys/inotify.h)
106 fi
107
108 AC_PATH_PROG([SED], [sed], [no])
109 if test "$SED" = "no"; then
110   AC_MSG_ERROR([The program "sed" is not available. This program is required to build Openbox.])
111 fi
112
113 AC_PATH_PROG([DIRNAME], [dirname], [no])
114 if test "$DIRNAME" = "no"; then
115   AC_MSG_ERROR([The program "dirname" is not available. This program is required to build Openbox.])
116 fi
117
118 PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.14.0])
119 AC_SUBST(GLIB_CFLAGS)
120 AC_SUBST(GLIB_LIBS)
121
122 PKG_CHECK_MODULES(PANGO, [pango >= 1.8.0 pangoxft >= 1.8.0])
123 AC_SUBST(PANGO_CFLAGS)
124 AC_SUBST(PANGO_LIBS)
125
126 PKG_CHECK_MODULES(XML, [libxml-2.0 >= 2.6.0])
127 AC_SUBST(XML_CFLAGS)
128 AC_SUBST(XML_LIBS)
129
130 AC_ARG_ENABLE(startup-notification,
131   AC_HELP_STRING(
132     [--disable-startup-notification],
133     [disable the startup notification library. [default=enabled]]
134   ),
135   [enable_sn=$enableval],
136   [enable_sn=yes]
137 )
138
139 if test "$enable_sn" = yes; then
140 PKG_CHECK_MODULES(LIBSN, [libstartup-notification-1.0 >= 0.8],
141   [
142     AC_DEFINE(USE_LIBSN, [1], [Use startup-notification])
143     AC_SUBST(LIBSN_CFLAGS)
144     AC_SUBST(LIBSN_LIBS)
145     sn_found=yes
146   ],
147   [
148     sn_found=no
149   ]
150 )
151 else
152   sn_found=no
153 fi
154
155 AC_ARG_ENABLE(xcursor,
156   AC_HELP_STRING(
157     [--disable-xcursor],
158     [disable use of the X Cursor library. [default=enabled]]
159   ),
160   [enable_xcursor=$enableval],
161   [enable_xcursor=yes]
162 )
163
164 if test "$enable_xcursor" = yes; then
165 PKG_CHECK_MODULES(XCURSOR, [xcursor],
166   [
167     AC_DEFINE(USE_XCURSOR, [1], [Use X Cursor library])
168     AC_SUBST(XCURSOR_CFLAGS)
169     AC_SUBST(XCURSOR_LIBS)
170     xcursor_found=yes
171   ],
172   [
173     xcursor_found=no
174   ]
175 )
176 else
177   xcursor_found=no
178 fi
179
180 AC_ARG_ENABLE(imlib2,
181   AC_HELP_STRING(
182     [--disable-imlib2],
183     [disable use of Imlib2 image library for loading icons. [default=enabled]]
184   ),
185   [enable_imlib2=$enableval],
186   [enable_imlib2=yes]
187 )
188
189 if test "$enable_imlib2" = yes; then
190 PKG_CHECK_MODULES(IMLIB2, [imlib2],
191   [
192     AC_DEFINE(USE_IMLIB2, [1], [Use Imlib2 image library])
193     AC_SUBST(IMLIB2_CFLAGS)
194     AC_SUBST(IMLIB2_LIBS)
195     # export it for the pkg-config file
196     PKG_CONFIG_IMLIB=imlib2
197     AC_SUBST(PKG_CONFIG_IMLIB)
198     imlib2_found=yes
199   ],
200   [
201     imlib2_found=no
202   ]
203 )
204 else
205   imlib2_found=no
206 fi
207
208 AM_CONDITIONAL(USE_IMLIB2, [test $imlib2_found = yes])
209
210 dnl Check for session management
211 X11_SM
212
213 #EFENCE_LIBS=-lefence
214 EFENCE_LIBS=""
215 AC_SUBST(EFENCE_LIBS)
216
217 dnl Check for X11 extensions
218 X11_EXT_XKB
219 X11_EXT_XRANDR
220 X11_EXT_SHAPE
221 X11_EXT_XINERAMA
222 X11_EXT_SYNC
223 X11_EXT_AUTH
224
225 AC_CONFIG_FILES([
226   Makefile
227   m4/Makefile
228   po/Makefile.in
229   obrender/obrender-3.5.pc
230   obt/obt-3.5.pc
231   obrender/version.h
232   obt/version.h
233   version.h
234 ])
235 AC_CONFIG_COMMANDS([doc],
236                    [test -d doc || mkdir doc])
237 AC_CONFIG_COMMANDS([data],
238                    [test -d data || mkdir data])
239 AC_CONFIG_COMMANDS([data/xsession],
240                    [test -d data/xsession || mkdir data/xsession])
241 AC_OUTPUT
242
243 AC_MSG_RESULT
244 AC_MSG_RESULT([Compiling with these options:
245                Startup Notification... $sn_found
246                X Cursor Library... $xcursor_found
247                Session Management... $SM
248                Imlib2 library... $imlib2_found
249                ])
250 AC_MSG_RESULT([configure complete, now type "make"])