allow application rules to place transient/dialog/splash windows, and allow applicati...
[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 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=3
17 RR_MINOR_VERSION=5
18 RR_MICRO_VERSION=27
19 RR_INTERFACE_AGE=0
20 RR_BINARY_AGE=0
21 RR_VERSION=$RR_MAJOR_VERSION.$RR_MINOR_VERSION
22
23 OBT_MAJOR_VERSION=3
24 OBT_MINOR_VERSION=5
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 AC_SUBST(RR_MAJOR_VERSION)
31 AC_SUBST(RR_MINOR_VERSION)
32 AC_SUBST(RR_MICRO_VERSION)
33 AC_SUBST(RR_INTERFACE_AGE)
34 AC_SUBST(RR_BINARY_AGE)
35 AC_SUBST(RR_VERSION)
36 AC_SUBST(OBT_MAJOR_VERSION)
37 AC_SUBST(OBT_MINOR_VERSION)
38 AC_SUBST(OBT_MICRO_VERSION)
39 AC_SUBST(OBT_INTERFACE_AGE)
40 AC_SUBST(OBT_BINARY_AGE)
41 AC_SUBST(OBT_VERSION)
42
43 dnl Libtool versioning
44 RR_RELEASE=$RR_MAJOR_VERSION.$RR_MINOR_VERSION
45 RR_CURRENT=`expr $RR_MICRO_VERSION - $RR_INTERFACE_AGE`
46 RR_REVISION=$RR_INTERFACE_AGE
47 RR_AGE=`expr $RR_BINARY_AGE - $RR_INTERFACE_AGE`
48 RR_CURRENT_MINUS_AGE=`expr $RR_CURRENT - $RR_AGE`
49
50 OBT_RELEASE=$OBT_MAJOR_VERSION.$OBT_MINOR_VERSION
51 OBT_CURRENT=`expr $OBT_MICRO_VERSION - $OBT_INTERFACE_AGE`
52 OBT_REVISION=$OBT_INTERFACE_AGE
53 OBT_AGE=`expr $OBT_BINARY_AGE - $OBT_INTERFACE_AGE`
54 OBT_CURRENT_MINUS_AGE=`expr $OBT_CURRENT - $OBT_AGE`
55
56 AC_SUBST(RR_RELEASE)
57 AC_SUBST(RR_CURRENT)
58 AC_SUBST(RR_REVISION)
59 AC_SUBST(RR_AGE)
60 AC_SUBST(RR_CURRENT_MINUS_AGE)
61 AC_SUBST(OBT_RELEASE)
62 AC_SUBST(OBT_CURRENT)
63 AC_SUBST(OBT_REVISION)
64 AC_SUBST(OBT_AGE)
65 AC_SUBST(OBT_CURRENT_MINUS_AGE)
66
67 AC_PREFIX_DEFAULT([/usr/local])
68 test "$prefix" = "NONE" && prefix=$ac_default_prefix
69
70 dnl Determine build target
71 OB_DEBUG
72 dnl Pick compiler specific/build target flags, and set $CVS
73 AM_PROG_CC_C_O
74 OB_COMPILER_FLAGS
75 AC_C_CONST
76 AC_C_INLINE
77
78 AC_PROG_LIBTOOL
79 AC_SUBST(LIBTOOL_DEPS)
80 LIBTOOL="$LIBTOOL --silent"
81
82 AC_PROG_INSTALL
83
84 AM_GNU_GETTEXT_VERSION(0.15)
85 AM_GNU_GETTEXT([external])
86
87 AC_CHECK_HEADERS(ctype.h fcntl.h locale.h signal.h string.h stdio.h stdlib.h)
88 AC_CHECK_HEADERS(unistd.h sys/stat.h sys/select.h sys/socket.h sys/time.h)
89 AC_CHECK_HEADERS(sys/wait.h)
90 # AC_HEADER_TIME
91 # AC_TYPE_SIGNAL
92
93 AC_PATH_PROG([SED], [sed], [no])
94 if test "$SED" = "no"; then
95   AC_MSG_ERROR([The program "sed" is not available. This program is required to build Openbox.])
96 fi
97
98 PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.14.0])
99 AC_SUBST(GLIB_CFLAGS)
100 AC_SUBST(GLIB_LIBS)
101
102 PKG_CHECK_MODULES(PANGO, [pango >= 1.8.0 pangoxft >= 1.8.0])
103 AC_SUBST(PANGO_CFLAGS)
104 AC_SUBST(PANGO_LIBS)
105
106 PKG_CHECK_MODULES(XML, [libxml-2.0 >= 2.6.0])
107 AC_SUBST(XML_CFLAGS)
108 AC_SUBST(XML_LIBS)
109
110 AC_ARG_ENABLE(startup-notification,
111   AC_HELP_STRING(
112     [--disable-startup-notification],
113     [disable the startup notification library. [[default=enabled]]]
114   ),
115   [enable_sn=$enableval],
116   [enable_sn=yes]
117 )
118
119 if test "$enable_sn" = yes; then
120 PKG_CHECK_MODULES(LIBSN, [libstartup-notification-1.0 >= 0.8],
121   [
122     AC_DEFINE(USE_LIBSN, [1], [Use startup-notification])
123     AC_SUBST(LIBSN_CFLAGS)
124     AC_SUBST(LIBSN_LIBS)
125     sn_found=yes
126   ],
127   [
128     sn_found=no
129   ]
130 )
131 else
132   sn_found=no
133 fi
134
135 AC_ARG_ENABLE(xcursor,
136   AC_HELP_STRING(
137     [--disable-xcursor],
138     [disable use of the X Cursor library. [[default=enabled]]]
139   ),
140   [enable_xcursor=$enableval],
141   [enable_xcursor=yes]
142 )
143
144 if test "$enable_xcursor" = yes; then
145 PKG_CHECK_MODULES(XCURSOR, [xcursor],
146   [
147     AC_DEFINE(USE_XCURSOR, [1], [Use X Cursor library])
148     AC_SUBST(XCURSOR_CFLAGS)
149     AC_SUBST(XCURSOR_LIBS)
150     xcursor_found=yes
151   ],
152   [
153     xcursor_found=no
154   ]
155 )
156 else
157   xcursor_found=no
158 fi
159
160 AC_ARG_ENABLE(imlib2,
161   AC_HELP_STRING(
162     [--disable-imlib2],
163     [disable use of Imlib2 image library for loading icons. [[default=enabled]]]
164   ),
165   [enable_imlib2=$enableeval],
166   [enable_imlib2=yes]
167 )
168
169 if test "$enable_imlib2" = yes; then
170 PKG_CHECK_MODULES(IMLIB2, [imlib2],
171   [
172     AC_DEFINE(USE_IMLIB2, [1], [Use Imlib2 image library])
173     AC_SUBST(IMLIB2_CFLAGS)
174     AC_SUBST(IMLIB2_LIBS)
175     imlib2_found=yes
176   ],
177   [
178     imlib2_found=no
179   ]
180 )
181 else
182   imlib2_found=no
183 fi
184
185 AM_CONDITIONAL(USE_IMLIB2, [test $imlib2_found = yes])
186
187 dnl Check for session management
188 X11_SM
189
190 #EFENCE_LIBS=-lefence
191 EFENCE_LIBS=""
192 AC_SUBST(EFENCE_LIBS)
193
194 dnl Check for X11 extensions
195 X11_EXT_XKB
196 X11_EXT_XRANDR
197 X11_EXT_SHAPE
198 X11_EXT_XINERAMA
199 X11_EXT_SYNC
200
201 AC_CONFIG_FILES([
202   Makefile
203   m4/Makefile
204   po/Makefile.in
205   obrender/obrender-3.5.pc
206   obt/obt-3.5.pc
207   obrender/version.h
208   obt/version.h
209 ])
210 AC_CONFIG_COMMANDS([doc],
211                    [test -d doc || mkdir doc])
212 AC_CONFIG_COMMANDS([data],
213                    [test -d data || mkdir data])
214 AC_CONFIG_COMMANDS([data/xsession],
215                    [test -d data/xsession || mkdir data/xsession])
216 AC_OUTPUT
217
218 AC_MSG_RESULT
219 AC_MSG_RESULT([Compiling with these options:
220                Startup Notification... $sn_found
221                X Cursor Library... $xcursor_found
222                Session Management... $SM
223                Imlib2 library... $imlib2_found
224                ])
225 AC_MSG_RESULT([configure complete, now type "make"])