apply patch from 1696203, which enables window snapping for windows on all workspaces
[blackbox.git] / configure.ac
blob72c288c042b9366525fdc3a25114939e6690a677
1 dnl configure.in for Blackbox - an X11 Window manager
2 dnl Initialize autoconf and automake
4 AC_INIT([blackbox], [0.70.2cvs], [http://blackboxwm.sourceforge.net])
5 AM_INIT_AUTOMAKE([blackbox], [0.70.2cvs])
6 AC_CONFIG_SRCDIR([src/blackbox.cc])
8 dnl Determine default prefix
9 test "x$prefix" = "xNONE" && prefix="$ac_default_prefix"
11 dnl Look in the most logical places for external libraries
12 CPPFLAGS="$CPPFLAGS -I$prefix/include"
13 LDFLAGS="$LDFLAGS -L$prefix/lib"
14 if test "x$prefix" != "x/usr/local"; then
15   CPPFLAGS="$CPPFLAGS -I/usr/local/include"
16   LDFLAGS="$LDFLAGS -L/usr/local/lib"
19 dnl Locate required external software
20 AC_PROG_CC
22 dnl Blackbox requires ANSI C headers
23 AC_HEADER_STDC
24 if test "$ac_cv_header_stdc" = "no"; then
25   AC_MSG_ERROR([Blackbox requires ANSI C headers.])
28 AC_PROG_CXX
29 AC_PROG_INSTALL
31 dnl libbt shouldn't be shared by default (yet)
32 AC_DISABLE_SHARED
33 AC_PROG_LIBTOOL
34 AC_SUBST(LIBTOOL_DEPS)
36 AC_CHECK_PROGS([regex_cmd], [sed])
37 if test "x$regex_cmd" = "x"; then
38   AC_MSG_ERROR([error. sed is required to build the default menu file.])
41 AC_CHECK_PROGS([gencat_cmd], [gencat])
42 if test "x$gencat_cmd" = "x"; then
43   NLS=
46 dnl Blackbox uses C++
47 AC_LANG([C++])
49 dnl Compiler specific options
50 if test "x$GXX" != "xyes"; then
51    mips_pro_ver=`$CC -version 2>&1 | grep -i mipspro | cut -f4 -d ' '`
52    if test "x$mips_pro_ver" != "x"; then
53       AC_MSG_CHECKING([for MIPSpro version])
54       AC_MSG_RESULT([$mips_pro_ver.])
55       AC_MSG_CHECKING(for -LANG:std in CXXFLAGS)
56       lang_std_not_set=`echo $CXXFLAGS | grep "\-LANG:std"`
57       if test "x$lang_std_not_set" = "x"; then
58          AC_MSG_RESULT([not set, setting.])
59          CXXFLAGS="${CXXFLAGS} -LANG:std"
60       else
61          AC_MSG_RESULT([already set.])
62       fi
63    fi 
66 dnl Check if some required functions live in the C library, or in an
67 dnl external library
69 ICONV=
70 AC_CHECK_FUNCS([iconv_open],
71                [],
72                [AC_CHECK_LIB([iconv],
73                              [iconv_open],
74                              [ICONV="-liconv"],
75                              [AC_CHECK_LIB([iconv],
76                                            [libiconv_open],
77                                            [ICONV="-liconv"],
78                                            [AC_MSG_ERROR([Blackbox requires iconv(3) support.])])
79                              ])
80                ])
81 AC_SUBST(ICONV)
83 dnl check if we are using GNU libiconv
84 AC_MSG_CHECKING([for GNU libiconv])
85 AC_COMPILE_IFELSE([
86 #include <sys/types.h>
87 #include <iconv.h>
89 int main(int, char **) {
90     iconv_t cd;
91     const char *inp;
92     char *outp;
93     size_t inbytes, outbytes;
94     iconv(cd, &inp, &inbytes, &outp, &outbytes);
95     return 0;
98                   [AC_DEFINE([HAVE_GNU_LIBICONV], [1],
99                              [Define to 1 when using GNU libiconv])
100                    AC_MSG_RESULT([yes])],
101                   [AC_MSG_RESULT([no, assuming POSIX compliance])]
102                  )
104 LOCALE=
105 AC_CHECK_FUNCS([setlocale],
106                [],
107                [AC_CHECK_LIB([xpg4],
108                              [setlocale],
109                              [LOCALE="-lxpg4"],
110                              [AC_MSG_ERROR([Blackbox requires setlocale(3) support.])])
111                ])
112 AC_SUBST(LOCALE)
114 AC_MSG_CHECKING([for nl_langinfo])
115 AC_COMPILE_IFELSE([
116 #include <langinfo.h>
118 int main(int, char **)
120     const char *x;
121     x = nl_langinfo(CODESET);
122     return 0;
125                   [AC_DEFINE([HAVE_NL_LANGINFO], [1],
126                              [Define to 1 if you system has nl_langinfo(3)])
127                    AC_MSG_RESULT([yes])],
128                   [AC_MSG_RESULT([no])]
129                  )
131 dnl needed for some X11 libs
132 AC_CHECK_LIB([nsl],
133              [t_open],
134              [LIBS="$LIBS -lnsl"])
135 AC_CHECK_LIB([socket],
136              [socket],
137              [LIBS="$LIBS -lsocket"])
139 dnl Check for X headers and libraries
140 AC_PATH_X
142 if test "x$no_x" = "xyes"; then
143   AC_MSG_ERROR([Blackbox requires the X Window System libraries and headers.])
146 if test "x$x_includes" != "x"; then
147   CPPFLAGS="$CPPFLAGS -I$x_includes"
148   CXXFLAGS="$CXXFLAGS -I$x_includes"
150 if test "x$x_libraries" != "x"; then
151   LIBS="$LIBS -L$x_libraries"
154 dnl Check for required functions in -lX11
155 XLIB=
156 AC_CHECK_LIB([X11], [XOpenDisplay], [XLIB=yes], [XLIB=no])
157 test "x$XLIB" = "xno" && AC_MSG_ERROR([standard X11 libraries not found])
159 AC_CHECK_HEADERS([X11/Xlib.h], [XLIB=yes], [XLIB=no])
160 test "x$XLIB" = "xno" && AC_MSG_ERROR([standard X11 headers not found])
162 AC_CHECK_HEADERS([X11/Xatom.h X11/Xlocale.h X11/Xresource.h X11/Xutil.h X11/keysym.h], [XLIB=yes], [XLIB=no],
164 #include <X11/Xlib.h>
166 test "x$XLIB" = "xno" && AC_MSG_ERROR([standard X11 headers not found])
168 dnl Check for SHAPE extension support and proper library files.
169 AC_MSG_CHECKING([whether to build support for the SHAPE extension])
170 AC_ARG_ENABLE([shape],
171               AC_HELP_STRING([--enable-shape],
172                              [enable support of the SHAPE extension @<:@default=yes@:>@]),
173               [SHAPE="$enableval"],
174               [SHAPE=yes])
175 AC_MSG_RESULT([$SHAPE])
177 if test "x$SHAPE" = "xyes"; then
178   AC_CHECK_LIB([Xext], [XShapeCombineShape], [SHAPE=yes], [SHAPE=no])
179   
180   if test "x$SHAPE" = "xyes"; then
181     save_LIBS="$LIBS"
182       
183     if echo "$LIBS" | grep -q Xext 2>&1 >/dev/null; then
184       LIBS="$LIBS -lXext"
185     fi
186     AC_CHECK_HEADERS([X11/extensions/shape.h], [SHAPE=yes], [SHAPE=no],
188 #include <X11/Xlib.h>
190       
191     if test "x$SHAPE" = "xyes"; then
192       SHAPE="-DSHAPE"
193     else
194       SHAPE=
195       LIBS="$save_LIBS"
196     fi
197   else
198     SHAPE=
199   fi
200 else
201   SHAPE=
203 AC_SUBST([SHAPE])
205 dnl Check for MIT-SHM extension support and proper library files.
206 AC_MSG_CHECKING([whether to build support for the MIT-SHM extension])
207 AC_ARG_ENABLE([mitshm],
208               AC_HELP_STRING([--enable-mitshm],
209                              [enable support of the MIT-SHM extension @<:@default=yes@:>@]),
210               [MITSHM="$enableval"],
211               [MITSHM=yes])
212 AC_MSG_RESULT([$MITSHM])
214 if test "x$MITSHM" = "xyes"; then
215   AC_CHECK_LIB([Xext], [XShmPutImage], [MITSHM=yes], [MITSHM=no])
217   if test "x$MITSHM" = "xyes"; then
218     save_LIBS="$LIBS"
220     LIBS="$LIBS -lXext"
221     AC_CHECK_HEADERS([X11/extensions/XShm.h], [MITSHM=yes], [MITSHM=no],
223 #include <X11/Xlib.h>
226     if test "x$MITSHM" = "xyes"; then
227       MITSHM="-DMITSHM"
228     else
229       MITSHM=
230       LIBS="$save_LIBS"
231     fi
232   else
233     MITSHM=
234   fi
235 else
236   MITSHM=
238 AC_SUBST([MITSHM])
240 LIBS="$LIBS -lX11"
242 dnl Check for Xft libraries
243 AC_MSG_CHECKING([whether to build support for Xft])
244 AC_ARG_ENABLE([xft],
245               AC_HELP_STRING([--enable-xft],
246                              [enable support for the Xft library @<:@default=yes@:>@]),
247               [XFT="$enableval"],
248               [XFT=yes])
249 AC_MSG_RESULT([$XFT])
251 if test "x$XFT" = "xyes"; then
252   PKG_CHECK_MODULES([xft],
253                     [xft >= 2.0.0], 
254                     [XFT="-DXFT"
255                      XFT_PKGCONFIG="xft >= 2.0.0"
256                      CXXFLAGS="$CXXFLAGS $xft_CFLAGS"
257                      LIBS="$LIBS $xft_LIBS"],
258                     [XFT=
259                      XFT_PKGCONFIG=])
260 else
261   XFT=
262   XFT_PKGCONFIG=
264 AC_SUBST([XFT])
265 AC_SUBST([XFT_PKGCONFIG])
267 dnl Check whether to include debugging code
268 AC_MSG_CHECKING([whether to include verbose debugging code])
269 AC_ARG_ENABLE([debug],
270               AC_HELP_STRING([--enable-debug],
271                              [include verbose debugging code @<:@default=no@:>@]),
272               [DEBUG="$enableval"],
273               [DEBUG=no])
274 AC_MSG_RESULT([$DEBUG])
276 if test "x$DEBUG" = "xyes"; then
277     DEBUG="-DDEBUG -fno-inline -g"
278 else
279     DEBUG=
281 AC_SUBST(DEBUG)
283 dnl Check whether to include natural language support (i18n)
284 AC_MSG_CHECKING([whether to include NLS support])
285 AC_ARG_ENABLE([nls],
286               AC_HELP_STRING([--enable-nls],
287                              [include natural language support @<:@default=yes@:>@]),
288               [NLS="$enableval"],
289               [NLS=yes])
290 AC_MSG_RESULT([$NLS])
292 if test "x$NLS" = "xyes"; then
293   NLS="-DNLS"
294 else
295   NLS=
297 AC_SUBST(NLS)
299 dnl Determine if maintainer portions of the Makefiles should be included.
300 AM_MAINTAINER_MODE
302 dnl Output files
303 AM_CONFIG_HEADER(config.h)
304 AC_CONFIG_FILES([
305 version.h
306 Makefile
307 data/Makefile
308 data/styles/Makefile
309 doc/Makefile
310 doc/fr_FR/Makefile
311 doc/ja_JP/Makefile
312 doc/nl_NL/Makefile
313 doc/sl_SI/Makefile
314 lib/Makefile
315 lib/libbt.pc
316 src/Makefile
317 util/Makefile
319 AC_OUTPUT
321 dnl Print results
322 AC_MSG_RESULT([])
323 AC_MSG_RESULT([ $PACKAGE version $VERSION configured successfully.])
324 AC_MSG_RESULT([])
325 AC_MSG_RESULT([Using '$prefix' for installation.])
326 AC_MSG_RESULT([Using '$CXX' for C++ compiler.])
327 AC_MSG_RESULT([Building with '$CPPFLAGS $CXXFLAGS' for C++ compiler flags.])
328 AC_MSG_RESULT([Building with '$LDFLAGS $LIBS' libraries.])
329 AC_MSG_RESULT([])