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