updated timer
[xboard.git] / configure.ac
1 dnl| configure.in
2 dnl|
3 dnl| Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006, 2007, 
4 dnl| 2008, 2009 Free Software Foundation, Inc.
5 dnl|
6 dnl| GNU XBoard is free software: you can redistribute it and/or modify
7 dnl| it under the terms of the GNU General Public License as published by
8 dnl| the Free Software Foundation, either version 3 of the License, or (at
9 dnl| your option) any later version.
10 dnl| 
11 dnl| GNU XBoard is distributed in the hope that it will be useful, but
12 dnl| WITHOUT ANY WARRANTY; without even the implied warranty of
13 dnl| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 dnl| General Public License for more details.
15 dnl| 
16 dnl| You should have received a copy of the GNU General Public License
17 dnl| along with this program. If not, see http://www.gnu.org/licenses/.  
18 dnl| 
19 dnl| --------------------------------------------------------------------
20 dnl|
21 dnl| You can process this file with autoconf to produce a configure script.
22 dnl| However, normally the supplied configure script will work fine.
23 dnl|
24 dnl| If you do need to change the configure script, instead of editing
25 dnl| it directly, try to edit configure.in (in a way that will keep
26 dnl| it portable to sites and systems other than your own), and run autoconf 
27 dnl| to regenerate configure.  Then submit your changes to be folded into
28 dnl| the standard version of xboard.
29
30 dnl| define second argument as VERSION.PATCHLEVEL. e.g. 4.4.0j
31 AC_INIT([xboard],[5.0.0.20090730],[bug-xboard@gnu.org])
32 AM_INIT_AUTOMAKE
33
34 AC_CONFIG_HEADERS([config.h])
35
36 dnl | a bunch of templates for defines used below
37 AH_TEMPLATE([FIRST_PTY_LETTER],[template])
38 AH_TEMPLATE([HAVE_FCNTL_H],[template])
39 AH_TEMPLATE([HAVE_GETHOSTNAME],[template])
40 AH_TEMPLATE([HAVE_GETTIMEOFDAY],[template])
41 AH_TEMPLATE([HAVE_RANDOM],[template])
42 AH_TEMPLATE([HAVE_SYS_SOCKET_H],[template])
43 AH_TEMPLATE([IBMRTAIX],[template])
44 AH_TEMPLATE([LAST_PTY_LETTER],[template])
45 AH_TEMPLATE([PTY_ITERATION],[template])
46 AH_TEMPLATE([PTY_NAME_SPRINTF],[template])
47 AH_TEMPLATE([PTY_OPEN],[template])
48 AH_TEMPLATE([PTY_TTY_NAME_SPRINTF],[template])
49 AH_TEMPLATE([REMOTE_SHELL],[template])
50 AH_TEMPLATE([RTU],[template])
51 AH_TEMPLATE([UNIPLUS],[template])
52 AH_TEMPLATE([USE_PTYS],[template])
53 AH_TEMPLATE([X_WCHAR],[template])
54 AH_TEMPLATE([ATTENTION],[template])
55 AH_TEMPLATE([DEFINED_SYS_ERRLIST],[template])
56 AH_TEMPLATE([HAVE_LIBXPM],[template])
57 AH_TEMPLATE([USE_XAW3D],[template])
58 AH_TEMPLATE([X_LOCALE],[template])
59
60
61
62 if test -z "$CFLAGS" ; then
63 dnl| Prevent the next macro from setting CFLAGS to -g
64   CFLAGS=" "
65 fi
66 AC_PROG_CC
67 AC_PROG_CPP
68 AC_ISC_POSIX
69 AC_PROG_INSTALL
70
71 AC_PROG_LEX
72 if test "$LEX" != flex; then
73   LEX="$SHELL $missing_dir/missing flex"
74   AC_SUBST([LEX_OUTPUT_ROOT], [lex.yy])
75   AC_SUBST([LEXLIB], [''])
76 fi
77
78
79 AC_CHECK_PROGS(RSH, remsh rsh, rsh)
80 AC_CHECK_PROGS(MINFO, makeinfo, makeinfo_not_found)
81 if test "$MINFO" == makeinfo_not_found ; then
82    echo Please install \"makeinfo\"
83    exit 1
84 fi
85 AC_DEFINE_UNQUOTED(REMOTE_SHELL, "$RSH")
86 AC_CHECK_PROG(NROFF, nroff, [nroff -man], cat)
87 AC_SUBST(NROFFFLAGS)
88 AC_PATH_PROGS(AWKPATH, awk mawk gawk nawk)
89 AC_PATH_PROGS(PERLPATH, perl)
90
91 PKG_CHECK_MODULES([GTK], [gtk+-2.0 >= 2.16.0 gmodule-export-2.0 ])
92 AC_SUBST(GTK_CFLAGS)
93 AC_SUBST(GTK_LIBS)
94
95 AC_HEADER_STDC
96 AC_HEADER_TIME
97 AC_HEADER_SYS_WAIT
98 AC_HEADER_DIRENT
99 AC_TYPE_SIGNAL
100 AC_CHECK_HEADERS(stropts.h sys/time.h string.h unistd.h sys/systeminfo.h)
101 AC_CHECK_HEADERS(fcntl.h sys/fcntl.h, break)
102 AC_CHECK_HEADERS(sys/socket.h lan/socket.h, break)
103 AC_CHECK_HEADER(stddef.h, [], AC_DEFINE(X_WCHAR, 1))
104
105 AC_CHECK_FUNCS(_getpty grantpt setitimer usleep)
106 AC_CHECK_FUNCS(gettimeofday ftime, break)
107 AC_CHECK_FUNCS(random rand48, break)
108 AC_CHECK_FUNCS(gethostname sysinfo, break)
109 AC_CHECK_FUNC(setlocale, [],
110   AC_CHECK_LIB(i, setlocale, [], AC_DEFINE(X_LOCALE, 1)))
111
112 AC_CHECK_LIB(seq, getpseudotty)
113
114 AC_PATH_XTRA
115 if test -n "$no_x" ; then
116   echo $PACKAGE requires the X Window System header files and libraries!
117   echo They were not found on your system.  See FAQ topic C.2.
118   echo configure failed
119   exit 1
120 fi
121
122 AC_CHECK_HEADER(X11/Intrinsic.h,xt="yes",xt="no")
123
124 if test "$xt" == "no" ; then
125    echo Xt headers not found
126    exit 1
127 fi
128
129 dnl | test if user wants ot use Xaw3d headers
130 AC_ARG_WITH([Xaw3d],
131             [AS_HELP_STRING([--with-Xaw3d],
132                             [use Xaw3d instead of Xaw])],
133             [with_xaw3d=yes],
134             [with_xaw3d=no])
135
136 XAW_LIBS=
137 AS_IF([test "x$with_xaw3d" != xno],
138       [AC_CHECK_LIB([Xaw3d], 
139                     [XawTextReplace],
140                     [AC_SUBST([XAW_LIBS], 
141                               ["-lXaw3d"])
142                      AC_DEFINE([USE_XAW3D], [1],
143                                [Define if you want to use Xaw3d])],
144                     [AC_CHECK_HEADER(X11/Xaw/Dialog.h,xaw_headers="yes")
145                      AC_MSG_FAILURE(
146                                [--with-Xaw3d was given, but test for Xaw3d failed])],
147                                [-lXaw])])
148 if test "$with_xaw3d" == "no" ; then
149    XAW_LIBS="-lXaw"
150 fi
151 AC_SUBST(XAW_LIBS)
152
153 dnl | end Xaw3d test
154
155 if test "$xaw_headers" == "no" ; then
156    echo Xaw headers not found 
157    exit 1
158
159 fi
160
161
162 AC_CANONICAL_HOST
163
164 dnl| The following info is mostly gathered from GNU Emacs 19.24.  Basically,
165 dnl| we are trying to find out whether this is a System-V derivative in
166 dnl| which pipes don't work with select() and if so, whether there is anything
167 dnl| strange about the way to open a pty.  Some of the work was done above
168 dnl| by looking for _getpty, grantpt, and getpseudotty.  A few other strange
169 dnl| properties of particular systems are also handled here.
170
171 dnl| 4/6/97 I'm not sure there really are any systems where pipes
172 dnl| don't work with select(), and ptys cause problems on many
173 dnl| systems, so I'm changing the default to disable ptys in all
174 dnl| cases.  I will change it back if I get bug reports that are fixed
175 dnl| by doing a "configure --enable-ptys"
176
177 USE_PTYS=0
178 case "$host" in
179   *-*-hpux* )
180     AC_DEFINE(PTY_TTY_NAME_SPRINTF,
181         [sprintf (pty_name, "/dev/pty/tty%c%x", c, i);])
182     AC_DEFINE(PTY_NAME_SPRINTF,
183         [sprintf (pty_name, "/dev/ptym/pty%c%x", c, i);])
184 dnl| USE_PTYS=1
185     if test "$GCC" = yes; then
186       CONF_CFLAGS="-fwritable-strings"
187     else
188
189 dnl| Note: You might be able to build xboard even if your compiler does not
190 dnl| support ANSI C (-Aa).  xboard itself does not require ANSI C.  I don't
191 dnl| know whether the X header files on HP-UX require it.
192
193       CONF_CFLAGS="-Aa -D_HPUX_SOURCE"
194     fi
195
196 dnl| HP doesn't supply a full set of X header files and libraries.  People
197 dnl| often have some things installed in one place and some in another. 
198 dnl| AC_PATH_XTRA will find only one place, so we try to add all the
199 dnl| likely ones that might be missing here.  It might be better to
200 dnl| change AC_PATH_XTRA to try to extract this information from imake,
201 dnl| since folks who install the missing bits often configure their
202 dnl| imake to find them, but I don't want to delve into autoconf and
203 dnl| hack on its internals.
204
205     if test -d /opt/hppd/include/X11; then
206       X_CFLAGS="$X_CFLAGS -I/opt/hppd/include"
207       X_LIBS="$X_LIBS -L/opt/hppd/lib"
208     elif test -d /usr/contrib/X11R5/include; then
209       X_CFLAGS="$X_CFLAGS -I/usr/contrib/X11R5/include"
210       X_LIBS="$X_LIBS -L/usr/contrib/X11R5/lib"
211     elif test -d /usr/contrib/mitX11R5/include; then
212       X_CFLAGS="$X_CFLAGS -I/usr/contrib/mitX11R5/include"
213       X_LIBS="$X_LIBS -L/usr/contrib/mitX11R5/lib"
214     elif test -d /MIT/X11R5/include; then
215       X_CFLAGS="$X_CFLAGS -I/MIT/X11R5/include"
216       X_LIBS="$X_LIBS -L/MIT/X11R5/lib"
217     elif test -d /usr/local/include/X11R5; then
218       X_CFLAGS="$X_CFLAGS -I/usr/local/include/X11R5"
219       X_LIBS="$X_LIBS -L/usr/local/lib/X11R5"
220     fi
221     if test -d /usr/include/X11R5; then
222       X_CFLAGS="$X_CFLAGS -I/usr/include/X11R5"
223       X_LIBS="$X_LIBS -L/usr/lib/X11R5 -L/usr/lib/X11R4"
224     elif test -d /usr/include/X11R4; then
225       X_CFLAGS="$X_CFLAGS -I/usr/include/X11R4"
226       X_LIBS="$X_LIBS -L/usr/lib/X11R4"
227     fi
228   ;;
229
230   romp-ibm-aix* )
231     AC_DEFINE(IBMRTAIX, 1)
232 dnl| USE_PTYS=1
233   ;;
234
235   i386-ibm-aix )
236 dnl| USE_PTYS=1
237     if test "$GCC" = yes; then
238       CONF_CFLAGS="-fwritable-strings"
239     fi
240   ;;
241
242   *-*-aix3* | *-*-bosx* )
243     AC_DEFINE(PTY_ITERATION, [for (c = 0; !c; c++)])
244     AC_DEFINE(PTY_NAME_SPRINTF, [strcpy (pty_name, "/dev/ptc");])
245     AC_DEFINE(PTY_TTY_NAME_SPRINTF, [strcpy (pty_name, ttyname (fd));])
246 dnl| USE_PTYS=1
247   ;;
248
249   *-*-cxux* )
250     AC_DEFINE(FIRST_PTY_LETTER, 'A')
251     AC_DEFINE(LAST_PTY_LETTER, 'P')
252 dnl| USE_PTYS=1
253   ;;
254
255   *-*-uniplus* )
256     AC_DEFINE(UNIPLUS, 1)
257 dnl| USE_PTYS=1
258   ;;
259
260   *-*-rtu* )
261     AC_DEFINE(FIRST_PTY_LETTER, 'z')
262     AC_DEFINE(PTY_TTY_NAME_SPRINTF,
263         [sprintf (pty_name, "/dev/ttyp%x", i);])
264     AC_DEFINE(PTY_NAME_SPRINTF,
265         [sprintf (pty_name, "/dev/pty%x", i);])
266     AC_DEFINE(RTU, 1)
267 dnl| USE_PTYS=1
268   ;;
269
270   *-*-iris* | *-*-irix3* )
271     AC_DEFINE(PTY_ITERATION, [for (c = 0; !c; c++)])
272     AC_DEFINE(PTY_NAME_SPRINTF, [strcpy (pty_name, "/dev/ptc");])
273     AC_DEFINE(PTY_TTY_NAME_SPRINTF,
274         [sprintf (pty_name, "/dev/ttyq%d", minor(stb.st_rdev));])
275 dnl| USE_PTYS=1
276   ;;
277
278   *-*-irix* )
279 dnl| USE_PTYS=1
280   ;;
281
282   *-*-sunos4* | *-*-solaris1* )
283
284 dnl| Work around a bug in the SunOS 4.x linker.  Not needed if you have patches
285 dnl|  100512-02 and 100573-03 from Sun.  The X FAQ says that the following is
286 dnl|  "overkill," but doesn't explain what should be done instead.
287
288     if test "$GCC" = yes; then
289       PRE_XMULIB="-static"
290       POST_XMULIB="-dynamic"
291     else
292       PRE_XMULIB="-Bstatic"
293       POST_XMULIB="-Bdynamic"
294     fi
295   ;;
296
297   *-*-sunos5* | *-*-solaris2* )
298 dnl| USE_PTYS=1
299
300 dnl| I'm not sure -lelf is needed, but it was in the old Imakefile.
301 dnl| The other libraries should all be found by Ac_PATH_XTRA or other
302 dnl| code above.
303
304     X_LIBS="$X_LIBS -lelf"
305   ;;
306
307   *-*-sco* )
308     AC_DEFINE(PTY_ITERATION, [for (i = 0; ; i++)])
309     AC_DEFINE(PTY_NAME_SPRINTF, [sprintf (pty_name, "/dev/ptyp%d", i);])
310     AC_DEFINE(PTY_TTY_NAME_SPRINTF, [sprintf (pty_name, "/dev/ttyp%d", i);])
311 dnl| USE_PTYS=1
312   ;;
313         
314   *-*-dynix* | *-*-ptx* )
315 dnl| USE_PTYS=1
316   ;;
317
318   *-*-esix* )
319 dnl| USE_PTYS=1
320   ;;
321
322   *-*-usg5-4* | *-*-sysvr4* )
323 dnl| USE_PTYS=1
324   ;;
325
326   *-*-usg* | *-*-sysv* | *-*-aix* )
327 dnl| USE_PTYS=1
328   ;;
329
330   vax-*-ultrix )
331     if test "$GCC" = yes; then
332       CONF_CFLAGS="-fwritable-strings"
333     fi
334   ;;
335 esac
336
337 AC_ARG_ENABLE(xpm,
338 [  --enable-xpm            libXpm will be used if found (default)
339   --disable-xpm           libXpm will not be used],
340 [enable_xpm="$enableval"], [enable_xpm="yes"])
341
342 if test "$enable_xpm" = "yes"; then
343   save_cflags="$CFLAGS"
344   CFLAGS="$CFLAGS $X_CFLAGS"
345   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
346   AC_CHECK_HEADERS(X11/xpm.h)
347   CFLAGS="$save_cflags"
348   if test "$ac_cv_header_X11_xpm_h" = "yes"; then
349     save_ldflags="$LDFLAGS"
350     LDFLAGS="$LDFLAGS $X_LIBS"
351     AC_CHECK_LIB(Xpm, XpmReadFileToPixmap,
352                  [X_PRE_LIBS="-lXpm $X_PRE_LIBS"; AC_DEFINE(HAVE_LIBXPM)], [],
353                  [$X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
354     LDFLAGS="$save_ldflags"
355   fi
356 fi
357
358 AC_SUBST(PRE_XMULIB)
359 AC_SUBST(POST_XMULIB)
360 AC_SUBST(CONF_CFLAGS)
361 AC_SUBST(CONF_LDFLAGS)
362
363 AC_MSG_CHECKING(whether ptys or pipes should be used)
364 AC_ARG_ENABLE(ptys, 
365 [  --enable-ptys           force use of pseudo-ttys with child processes
366   --disable-ptys          force use of pipes with child processes],
367 [if test "$enableval" = yes; then
368   USE_PTYS=1
369   AC_MSG_RESULT([ptys (user override)])
370 fi
371 if test "$enableval" = no; then
372   USE_PTYS=0
373   AC_MSG_RESULT([pipes (user override)])
374 fi],
375 [if test "$USE_PTYS" = 1; then
376   AC_MSG_RESULT(ptys)
377 else
378   AC_MSG_RESULT(pipes)
379 fi])
380 AC_DEFINE_UNQUOTED(USE_PTYS, $USE_PTYS)
381
382
383 dnl | define not to build zippy as a default, so that autoheader is happy
384 AC_DEFINE(ZIPPY, 0,[should zippy be enabled])
385 AC_ARG_ENABLE(zippy, 
386 [  --enable-zippy          support interfacing a chess program to ICS (default)
387   --disable-zippy         do not support interfacing a chess program to ICS],
388 [enable_zippy="$enableval"], [enable_zippy="yes"])
389 if test "$enable_zippy" = yes; then
390   AC_DEFINE(ZIPPY, 1,[should zippy be enabled])
391   ZIPPY_O=zippy.o
392   ZIPPY_H=zippy.h
393 fi
394 AC_SUBST(ZIPPY_O)  
395 AC_SUBST(ZIPPY_H)  
396
397 AC_ARG_ENABLE(sigint, 
398 [  --enable-sigint         sending SIGINT (^C) wakes up GNU Chess (default)
399   --disable-sigint        typing a command wakes up GNU Chess],
400 [if test "$enableval" = yes; then
401   AC_DEFINE(ATTENTION, 1)
402 fi],
403 [AC_DEFINE(ATTENTION, 1)])
404
405 AC_CONFIG_FILES([Makefile cmail])
406 AC_CONFIG_COMMANDS([test-stamp-h],[test -z "$CONFIG_HEADERS" || date > stamp-h])
407 AC_CONFIG_COMMANDS([chmod-cmail],[chmod 755 cmail])
408 AC_OUTPUT