jcs ratpoison hax
1dnl Process this file with autoconf to produce a configure script.
2dnl Copyright (C) 2000, 2001, 2002, 2003, 2004 Shawn Betts <sabetts@vcn.bc.ca>
3dnl
4dnl This file is part of ratpoison.
5dnl
6dnl ratpoison is free software; you can redistribute it and/or modify
7dnl it under the terms of the GNU General Public License as published by
8dnl the Free Software Foundation; either version 2 of the License, or
9dnl (at your option) any later version.
10dnl
11dnl ratpoison is distributed in the hope that it will be useful,
12dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
13dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14dnl GNU General Public License for more details.
15dnl
16dnl You should have received a copy of the GNU General Public License
17dnl along with this program; if not, write to the Free Software
18dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
20AC_INIT([ratpoison], [1.4.9], [ratpoison-devel@nongnu.org])
21AC_CONFIG_AUX_DIR([build-aux])
22AC_CONFIG_MACRO_DIR([m4])
23AC_CONFIG_SRCDIR([src/main.c])
24AM_INIT_AUTOMAKE([-Wall -Werror gnu])
25
26AM_MAINTAINER_MODE([enable])
27
28AC_CONFIG_HEADER(src/config.h)
29
30dnl by default turn off debugging
31AC_MSG_CHECKING([whether to enable debugging])
32AC_ARG_ENABLE([debug],
33 [AS_HELP_STRING([--enable-debug],[build with extra debugging messages])],
34 [], [enable_debug=no])
35AS_CASE([$enable_debug],
36 [yes], [AC_MSG_RESULT([yes])
37 AC_DEFINE([DEBUG], 1, [Define this to enable debugging messages])],
38 [no], [AC_MSG_RESULT([no])],
39 [AC_MSG_ERROR([invalid --enable-debug="$enable_debug" parameter])])
40
41AC_ARG_WITH([electric-fence],
42 [AS_HELP_STRING([--with-electric-fence],
43 [Use the Electric Fence library (memory allocation debugging).])])
44
45AC_ARG_WITH([xterm],
46 [AS_HELP_STRING([--with-xterm=PROG],
47 [set the x terminal emulator used by ratpoison])],
48 [term_prog=$withval],
49 [term_prog=xterm])
50AC_DEFINE_UNQUOTED([TERM_PROG], ["$term_prog"], [X terminal emulator to use])
51
52XFT_CFLAGS=
53XFT_LIBS=
54AC_ARG_WITH(xft,AS_HELP_STRING([--without-xft],[Don't use the Xft library even if available]),
55 xft=$withval, xft=default)
56if test "x$xft" != "xno"; then
57 dnl Configure Xft.
58 PKG_CHECK_MODULES([XFT], [xft],,[noop=noop])
59 AC_MSG_CHECKING(whether to use Xft)
60 echo "pkg_failed is $pkg_failed" >&5
61dnl pkg_failed can be yes, no or untried (if there is no pkg-config or that does not work).
62 if test "$pkg_failed" = "no" ; then
63 AC_DEFINE_UNQUOTED(USE_XFT_FONT, 1, [Define this to use Xft])
64 AC_MSG_RESULT(yes)
65 elif test "x$xft" != "xdefault" ; then
66dnl if explicitly requested but not found, bail out:
67 AC_MSG_RESULT(no)
68 if test "$pkg_failed" = "untried" ; then
69 AC_MSG_ERROR([Not Xft library found (this needs a working pkg-config)!])
70 else
71 AC_MSG_ERROR([No Xft library found!])
72 fi
73 else
74 AC_MSG_RESULT(no)
75 fi
76else
77 AC_MSG_CHECKING(whether to use Xft)
78 AC_MSG_RESULT(no)
79fi
80AC_SUBST(XFT_CFLAGS)
81AC_SUBST(XFT_LIBS)
82
83AC_ARG_WITH([xkb],
84 [AS_HELP_STRING([--without-xkb], [Don't build XKB support for keyboard input.])],
85 [xkb=$withval],
86 [xkb=yes])
87AS_IF([test "X$xkb" = "Xyes"],
88 [AC_DEFINE([WANT_XKB], 1,
89 [Define to 1 if you want to build XKB support for keyboard input.])])
90
91AC_MSG_CHECKING([manpage format])
92AC_ARG_ENABLE([mdoc],
93 [AS_HELP_STRING([--disable-mdoc],
94 [install man(7) manpages, useful if you don't have a mdoc(7) formatter\
95 such as mandoc(1) or groff(1)])],
96 [], [enable_mdoc=yes])
97AS_CASE([$enable_mdoc],
98 [yes], [manpage_format=mdoc],
99 [no], [manpage_format=man],
100 [AC_MSG_ERROR([invalid --enable-mdoc="$enable_mdoc" parameter])])
101AC_MSG_RESULT([$manpage_format])
102AC_SUBST([manpage_format])
103
104AC_MSG_CHECKING([Xrandr support])
105AC_ARG_WITH([xrandr],
106 [AS_HELP_STRING([--without-xrandr],
107 [Build without Xrandr support, default is to require and use it.])],
108 [with_xrandr=$withval],
109 [with_xrandr=check])
110AC_MSG_RESULT([$with_xrandr])
111
112dnl Checks for programs.
113AC_PROG_CC
114AM_MISSING_PROG([MANDOC], [mandoc])
115AC_ARG_VAR([MANDOC],
116 [path to mandoc(1), only used when regenerating doc/ratpoison.man.1 \
117 after editing doc/ratpoison.mdoc.1])
118
119AX_CHECK_COMPILE_FLAG([-Wall], [CFLAGS="-Wall $CFLAGS"], [], [], [])
120
121dnl check for an x terminal emulator
122AC_MSG_CHECKING(terminal emulator)
123AC_MSG_RESULT($term_prog)
124
125dnl Check for the X libs
126AC_PATH_X
127AC_PATH_XTRA
128
129if test "x$no_x" = "xyes"; then
130 AC_MSG_ERROR([*** Can't find X11 headers and libs])
131fi
132
133
134dnl Those who do not learn the lessons of history
135dnl are doomed to delete it... yuk yuk. --ttn
136AC_ARG_ENABLE([history],
137 AS_HELP_STRING([--enable-history],
138 [Link with libhistory (default: disabled. Note: only used for ! expansion)]),
139 [], [enable_history=no])
140
141HISTORY_LIBS=
142have_history=no
143AS_CASE([$enable_history],
144 [no], [],
145 [yes],
146 [AC_CHECK_HEADERS([readline/history.h],
147 [AC_CHECK_LIB([history], [add_history], [have_history=yes], [])],
148 [])],
149 [AC_MSG_ERROR([invalid --disable-history="$enable_history" parameter])])
150
151AC_MSG_CHECKING([whether to use libhistory])
152AS_CASE([$enable_history:$have_history],
153 [yes:no], [AC_MSG_ERROR([Can't find history headers/lib. \
154Install readline dev libs for history expansion.])],
155 [no:*], [AC_MSG_RESULT([no])],
156 [yes:yes], [AC_MSG_RESULT([yes])
157 AC_DEFINE_UNQUOTED(HAVE_HISTORY, 1, Define this to enable history)
158 HISTORY_LIBS="-lhistory"])
159
160AC_SUBST(HISTORY_LIBS)
161
162AC_CHECK_LIB(X11, XOpenDisplay, [X_LIBS="-lX11 $X_LIBS"],
163 AC_MSG_ERROR([*** Can't find libX11]),$X_LIBS $X_EXTRA_LIBS)
164
165mysavedCPPFLAGS="$CPPFLAGS"
166CPPFLAGS="$CPPFLAGS $X_CFLAGS"
167AC_CHECK_HEADERS([X11/XKBlib.h], [], [], [
168#include <X11/Xlib.h>
169])
170CPPFLAGS="$mysavedCPPFLAGS"
171
172AC_CHECK_LIB(Xtst, XTestFakeButtonEvent, [X_LIBS="-lXtst $X_LIBS"; AC_DEFINE(HAVE_LIBXTST,1,[Xtst])],,$X_LIBS $X_EXTRA_LIBS)
173AC_CHECK_LIB([X11], [XkbKeycodeToKeysym],
174 [AC_DEFINE(HAVE_XKBKEYCODETOKEYSYM, 1,
175 [Define to 1 if you have the `XkbKeycodeToKeysym' function.])],
176 [], [$X_LIBS $X_EXTRA_LIBS])
177
178mysavedCPPFLAGS="$CPPFLAGS"
179CPPFLAGS="$CPPFLAGS $X_CFLAGS"
180AC_CHECK_HEADERS([X11/extensions/Xrandr.h], [xrandr_h=yes], [xrandr_h=no], [
181#include <X11/Xlib.h>
182])
183CPPFLAGS="$mysavedCPPFLAGS"
184
185AC_CHECK_LIB(Xrandr, XRRGetScreenResources, [libxrandr=yes], [libxrandr=no], [$X_LIBS $X_EXTRA_LIBS])
186
187AS_CASE(["$with_xrandr:$xrandr_h:$libxrandr"],
188 [yes:no:*], [AC_MSG_ERROR([*** Can't enable Xrandr support, header Xrandr.h not found.])],
189 [yes:*:no], [AC_MSG_ERROR([*** Can't enable Xrandr support, libXrandr not found.])],
190 [check:no:*], [AC_MSG_ERROR([*** Header Xrandr.h not found, use ./configure --without-xrandr to build without multiple screens support.])],
191 [check:*:no], [AC_MSG_ERROR([*** libXrandr not found, use ./configure --without-xrandr to build without multiple screens support.])],
192 [yes:yes:yes|check:yes:yes], [X_LIBS="-lXrandr $X_LIBS"
193 AC_DEFINE(HAVE_XRANDR, 1, [Define to 1 if you want Xrandr support.])])
194
195AC_SUBST(X_LIBS)
196AC_SUBST(X_EXTRA_LIBS)
197AC_SUBST(X_CFLAGS)
198
199AS_IF([test "$with_electric_fence" = yes],
200 [AC_CHECK_LIB([efence], [malloc], [],
201 [AC_MSG_ERROR([Couldn't find the Electric Fence library (-lefence)])])])
202
203dnl Checks for header files.
204AC_HEADER_STDC
205AC_CHECK_HEADERS([pwd.h sys/ioctl.h sys/stat.h])
206
207dnl Checks for typedefs, structures, and compiler characteristics.
208AC_C_TYPEOF
209
210AH_TEMPLATE([HAVE___BUILTIN_PREFETCH],
211 [Define to 1 if your compiler supports the `__builtin_prefetch' function.])
212AC_MSG_CHECKING([for __builtin_prefetch()])
213AC_LINK_IFELSE([AC_LANG_PROGRAM([],
214 [
215 int a = 9;
216 __builtin_prefetch(&a);
217 return 0;
218 ])],
219 [AC_DEFINE([HAVE___BUILTIN_PREFETCH], 1)
220 AC_MSG_RESULT(yes)],
221 [AC_MSG_RESULT(no)])
222
223dnl Checks for library functions.
224AC_CHECK_FUNCS(getline getopt_long getpwuid setenv setpgid setpgrp setsid)
225AC_CHECK_FUNCS(unsetenv vsnprintf)
226
227AM_LANGINFO_CODESET
228
229lispdir='${datarootdir}/emacs/site-lisp'
230AC_SUBST([lispdir])
231
232AC_CONFIG_FILES([Makefile doc/Makefile src/Makefile contrib/Makefile])
233AC_OUTPUT