fixed autoconf problem with VERSION/PATCHLEVEL variables
[xboard.git] / configure.ac
1 dnl| configure.in\r
2 dnl|\r
3 dnl| Copyright 1992-2001,2002,2003,2004,2005,2006,2007,2008,2009 Free Software\r
4 dnl| 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.0j],[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 AC_ARG_WITH(Xaw3d, [  --with-Xaw3d            use Xaw3d instead of Xaw],\r
126   with_xaw3d="yes", with_xaw3d="no")\r
127 \r
128 \r
129 xaw_headers="no"\r
130 if test "$with_xaw3d" == "yes" ; then\r
131    XAW_LIBS="-lXaw3d"\r
132    AC_CHECK_LIB([Xaw3d], [XawTextReplace], xaw3d_lib="yes", xaw3d_lib="no")\r
133    if test "$xaw3d_lib" == "no" ; then\r
134       echo Xaw3d libraries not found\r
135       exit 1\r
136    else\r
137       AC_CHECK_HEADER(X11/Xaw3d/Dialog.h,xaw3d_headers="yes",xaw3d_headers="no")        \r
138       if test "$xaw3d_headers" == "yes" ; then\r
139         AC_DEFINE(USE_XAW3D)\r
140         xaw_headers="yes"\r
141       else\r
142         AC_CHECK_HEADER(X11/Xaw/Dialog.h,xaw_headers="yes")     \r
143       fi\r
144    fi\r
145 else\r
146    XAW_LIBS="-lXaw"\r
147    AC_CHECK_HEADER(X11/Xaw/Dialog.h,xaw_headers="yes")\r
148 fi\r
149 \r
150 AC_SUBST(XAW_LIBS)\r
151 \r
152 \r
153 \r
154 if test "$xaw_headers" == "no" ; then\r
155    echo Xaw headers not found \r
156    exit 1\r
157 \r
158 fi\r
159 \r
160 \r
161 AC_CANONICAL_HOST\r
162 \r
163 dnl| The following info is mostly gathered from GNU Emacs 19.24.  Basically,\r
164 dnl| we are trying to find out whether this is a System-V derivative in\r
165 dnl| which pipes don't work with select() and if so, whether there is anything\r
166 dnl| strange about the way to open a pty.  Some of the work was done above\r
167 dnl| by looking for _getpty, grantpt, and getpseudotty.  A few other strange\r
168 dnl| properties of particular systems are also handled here.\r
169 \r
170 dnl| 4/6/97 I'm not sure there really are any systems where pipes\r
171 dnl| don't work with select(), and ptys cause problems on many\r
172 dnl| systems, so I'm changing the default to disable ptys in all\r
173 dnl| cases.  I will change it back if I get bug reports that are fixed\r
174 dnl| by doing a "configure --enable-ptys"\r
175 \r
176 USE_PTYS=0\r
177 case "$host" in\r
178   *-*-hpux* )\r
179     AC_DEFINE(PTY_TTY_NAME_SPRINTF,\r
180         [sprintf (pty_name, "/dev/pty/tty%c%x", c, i);])\r
181     AC_DEFINE(PTY_NAME_SPRINTF,\r
182         [sprintf (pty_name, "/dev/ptym/pty%c%x", c, i);])\r
183 dnl| USE_PTYS=1\r
184     if test "$GCC" = yes; then\r
185       CONF_CFLAGS="-fwritable-strings"\r
186     else\r
187 \r
188 dnl| Note: You might be able to build xboard even if your compiler does not\r
189 dnl| support ANSI C (-Aa).  xboard itself does not require ANSI C.  I don't\r
190 dnl| know whether the X header files on HP-UX require it.\r
191 \r
192       CONF_CFLAGS="-Aa -D_HPUX_SOURCE"\r
193     fi\r
194 \r
195 dnl| HP doesn't supply a full set of X header files and libraries.  People\r
196 dnl| often have some things installed in one place and some in another. \r
197 dnl| AC_PATH_XTRA will find only one place, so we try to add all the\r
198 dnl| likely ones that might be missing here.  It might be better to\r
199 dnl| change AC_PATH_XTRA to try to extract this information from imake,\r
200 dnl| since folks who install the missing bits often configure their\r
201 dnl| imake to find them, but I don't want to delve into autoconf and\r
202 dnl| hack on its internals.\r
203 \r
204     if test -d /opt/hppd/include/X11; then\r
205       X_CFLAGS="$X_CFLAGS -I/opt/hppd/include"\r
206       X_LIBS="$X_LIBS -L/opt/hppd/lib"\r
207     elif test -d /usr/contrib/X11R5/include; then\r
208       X_CFLAGS="$X_CFLAGS -I/usr/contrib/X11R5/include"\r
209       X_LIBS="$X_LIBS -L/usr/contrib/X11R5/lib"\r
210     elif test -d /usr/contrib/mitX11R5/include; then\r
211       X_CFLAGS="$X_CFLAGS -I/usr/contrib/mitX11R5/include"\r
212       X_LIBS="$X_LIBS -L/usr/contrib/mitX11R5/lib"\r
213     elif test -d /MIT/X11R5/include; then\r
214       X_CFLAGS="$X_CFLAGS -I/MIT/X11R5/include"\r
215       X_LIBS="$X_LIBS -L/MIT/X11R5/lib"\r
216     elif test -d /usr/local/include/X11R5; then\r
217       X_CFLAGS="$X_CFLAGS -I/usr/local/include/X11R5"\r
218       X_LIBS="$X_LIBS -L/usr/local/lib/X11R5"\r
219     fi\r
220     if test -d /usr/include/X11R5; then\r
221       X_CFLAGS="$X_CFLAGS -I/usr/include/X11R5"\r
222       X_LIBS="$X_LIBS -L/usr/lib/X11R5 -L/usr/lib/X11R4"\r
223     elif test -d /usr/include/X11R4; then\r
224       X_CFLAGS="$X_CFLAGS -I/usr/include/X11R4"\r
225       X_LIBS="$X_LIBS -L/usr/lib/X11R4"\r
226     fi\r
227   ;;\r
228 \r
229   romp-ibm-aix* )\r
230     AC_DEFINE(IBMRTAIX, 1)\r
231 dnl| USE_PTYS=1\r
232   ;;\r
233 \r
234   i386-ibm-aix )\r
235 dnl| USE_PTYS=1\r
236     if test "$GCC" = yes; then\r
237       CONF_CFLAGS="-fwritable-strings"\r
238     fi\r
239   ;;\r
240 \r
241   *-*-aix3* | *-*-bosx* )\r
242     AC_DEFINE(PTY_ITERATION, [for (c = 0; !c; c++)])\r
243     AC_DEFINE(PTY_NAME_SPRINTF, [strcpy (pty_name, "/dev/ptc");])\r
244     AC_DEFINE(PTY_TTY_NAME_SPRINTF, [strcpy (pty_name, ttyname (fd));])\r
245 dnl| USE_PTYS=1\r
246   ;;\r
247 \r
248   *-*-cxux* )\r
249     AC_DEFINE(FIRST_PTY_LETTER, 'A')\r
250     AC_DEFINE(LAST_PTY_LETTER, 'P')\r
251 dnl| USE_PTYS=1\r
252   ;;\r
253 \r
254   *-*-uniplus* )\r
255     AC_DEFINE(UNIPLUS, 1)\r
256 dnl| USE_PTYS=1\r
257   ;;\r
258 \r
259   *-*-rtu* )\r
260     AC_DEFINE(FIRST_PTY_LETTER, 'z')\r
261     AC_DEFINE(PTY_TTY_NAME_SPRINTF,\r
262         [sprintf (pty_name, "/dev/ttyp%x", i);])\r
263     AC_DEFINE(PTY_NAME_SPRINTF,\r
264         [sprintf (pty_name, "/dev/pty%x", i);])\r
265     AC_DEFINE(RTU, 1)\r
266 dnl| USE_PTYS=1\r
267   ;;\r
268 \r
269   *-*-iris* | *-*-irix3* )\r
270     AC_DEFINE(PTY_ITERATION, [for (c = 0; !c; c++)])\r
271     AC_DEFINE(PTY_NAME_SPRINTF, [strcpy (pty_name, "/dev/ptc");])\r
272     AC_DEFINE(PTY_TTY_NAME_SPRINTF,\r
273         [sprintf (pty_name, "/dev/ttyq%d", minor(stb.st_rdev));])\r
274 dnl| USE_PTYS=1\r
275   ;;\r
276 \r
277   *-*-irix* )\r
278 dnl| USE_PTYS=1\r
279   ;;\r
280 \r
281   *-*-sunos4* | *-*-solaris1* )\r
282 \r
283 dnl| Work around a bug in the SunOS 4.x linker.  Not needed if you have patches\r
284 dnl|  100512-02 and 100573-03 from Sun.  The X FAQ says that the following is\r
285 dnl|  "overkill," but doesn't explain what should be done instead.\r
286 \r
287     if test "$GCC" = yes; then\r
288       PRE_XMULIB="-static"\r
289       POST_XMULIB="-dynamic"\r
290     else\r
291       PRE_XMULIB="-Bstatic"\r
292       POST_XMULIB="-Bdynamic"\r
293     fi\r
294   ;;\r
295 \r
296   *-*-sunos5* | *-*-solaris2* )\r
297 dnl| USE_PTYS=1\r
298 \r
299 dnl| I'm not sure -lelf is needed, but it was in the old Imakefile.\r
300 dnl| The other libraries should all be found by Ac_PATH_XTRA or other\r
301 dnl| code above.\r
302 \r
303     X_LIBS="$X_LIBS -lelf"\r
304   ;;\r
305 \r
306   *-*-sco* )\r
307     AC_DEFINE(PTY_ITERATION, [for (i = 0; ; i++)])\r
308     AC_DEFINE(PTY_NAME_SPRINTF, [sprintf (pty_name, "/dev/ptyp%d", i);])\r
309     AC_DEFINE(PTY_TTY_NAME_SPRINTF, [sprintf (pty_name, "/dev/ttyp%d", i);])\r
310 dnl| USE_PTYS=1\r
311   ;;\r
312         \r
313   *-*-dynix* | *-*-ptx* )\r
314 dnl| USE_PTYS=1\r
315   ;;\r
316 \r
317   *-*-esix* )\r
318 dnl| USE_PTYS=1\r
319   ;;\r
320 \r
321   *-*-usg5-4* | *-*-sysvr4* )\r
322 dnl| USE_PTYS=1\r
323   ;;\r
324 \r
325   *-*-usg* | *-*-sysv* | *-*-aix* )\r
326 dnl| USE_PTYS=1\r
327   ;;\r
328 \r
329   vax-*-ultrix )\r
330     if test "$GCC" = yes; then\r
331       CONF_CFLAGS="-fwritable-strings"\r
332     fi\r
333   ;;\r
334 esac\r
335 \r
336 AC_ARG_ENABLE(xpm,\r
337 [  --enable-xpm            libXpm will be used if found (default)\r
338   --disable-xpm           libXpm will not be used],\r
339 [enable_xpm="$enableval"], [enable_xpm="yes"])\r
340 \r
341 if test "$enable_xpm" = "yes"; then\r
342   save_cflags="$CFLAGS"\r
343   CFLAGS="$CFLAGS $X_CFLAGS"\r
344   CPPFLAGS="$CPPFLAGS $X_CFLAGS"\r
345   AC_CHECK_HEADERS(X11/xpm.h)\r
346   CFLAGS="$save_cflags"\r
347   if test "$ac_cv_header_X11_xpm_h" = "yes"; then\r
348     save_ldflags="$LDFLAGS"\r
349     LDFLAGS="$LDFLAGS $X_LIBS"\r
350     AC_CHECK_LIB(Xpm, XpmReadFileToPixmap,\r
351                  [X_PRE_LIBS="-lXpm $X_PRE_LIBS"; AC_DEFINE(HAVE_LIBXPM)], [],\r
352                  [$X_PRE_LIBS -lX11 $X_EXTRA_LIBS])\r
353     LDFLAGS="$save_ldflags"\r
354   fi\r
355 fi\r
356 \r
357 AC_SUBST(PRE_XMULIB)\r
358 AC_SUBST(POST_XMULIB)\r
359 AC_SUBST(CONF_CFLAGS)\r
360 AC_SUBST(CONF_LDFLAGS)\r
361 \r
362 AC_MSG_CHECKING(whether ptys or pipes should be used)\r
363 AC_ARG_ENABLE(ptys, \r
364 [  --enable-ptys           force use of pseudo-ttys with child processes\r
365   --disable-ptys          force use of pipes with child processes],\r
366 [if test "$enableval" = yes; then\r
367   USE_PTYS=1\r
368   AC_MSG_RESULT([ptys (user override)])\r
369 fi\r
370 if test "$enableval" = no; then\r
371   USE_PTYS=0\r
372   AC_MSG_RESULT([pipes (user override)])\r
373 fi],\r
374 [if test "$USE_PTYS" = 1; then\r
375   AC_MSG_RESULT(ptys)\r
376 else\r
377   AC_MSG_RESULT(pipes)\r
378 fi])\r
379 AC_DEFINE_UNQUOTED(USE_PTYS, $USE_PTYS)\r
380 \r
381 \r
382 dnl | define not to build zippy as a default, so that autoheader is happy\r
383 AC_DEFINE(ZIPPY, 0,[should zippy be enabled])\r
384 AC_ARG_ENABLE(zippy, \r
385 [  --enable-zippy          support interfacing a chess program to ICS (default)\r
386   --disable-zippy         do not support interfacing a chess program to ICS],\r
387 [enable_zippy="$enableval"], [enable_zippy="yes"])\r
388 if test "$enable_zippy" = yes; then\r
389   AC_DEFINE(ZIPPY, 1,[should zippy be enabled])\r
390   ZIPPY_O=zippy.o\r
391   ZIPPY_H=zippy.h\r
392 fi\r
393 AC_SUBST(ZIPPY_O)  \r
394 AC_SUBST(ZIPPY_H)  \r
395 \r
396 AC_ARG_ENABLE(sigint, \r
397 [  --enable-sigint         sending SIGINT (^C) wakes up GNU Chess (default)\r
398   --disable-sigint        typing a command wakes up GNU Chess],\r
399 [if test "$enableval" = yes; then\r
400   AC_DEFINE(ATTENTION, 1)\r
401 fi],\r
402 [AC_DEFINE(ATTENTION, 1)])\r
403 \r
404 AC_CONFIG_FILES([Makefile cmail])\r
405 AC_CONFIG_COMMANDS([test-stamp-h],[test -z "$CONFIG_HEADERS" || date > stamp-h])\r
406 AC_CONFIG_COMMANDS([chmod-cmail],[chmod 755 cmail])\r
407 AC_OUTPUT\r