Initial checkin. I created this by combining the XBoard 4.2.6 and
[xboard.git] / configure.in
1 dnl| configure.in
2 dnl|
3 dnl| You can process this file with autoconf to produce a configure script.
4 dnl| However, normally the supplied configure script will work fine.
5 dnl|
6 dnl| If you do need to change the configure script, instead of editing
7 dnl| it directly, try to edit configure.in (in a way that will keep
8 dnl| it portable to sites and systems other than your own), and run autoconf 
9 dnl| to regenerate configure.  Then submit your changes to be folded into
10 dnl| the standard version of xboard.
11
12 AC_INIT(xboard.c)
13 AC_CONFIG_HEADER(config.h)
14
15 PRODUCT=xboard
16 VERSION=4.2
17 PATCHLEVEL=6
18
19 if test -z "$CFLAGS" ; then
20 dnl| Prevent the next macro from setting CFLAGS to -g
21   CFLAGS=" "
22 fi
23 AC_PROG_CC
24 AC_PROG_CPP
25 AC_ISC_POSIX
26 AC_PROG_INSTALL
27 AC_CHECK_PROGS(LEX, lex flex, lex_not_found)
28 if test "$LEX" != lex_not_found ; then
29   AC_DECL_YYTEXT
30 fi
31 AC_CHECK_PROGS(RSH, remsh rsh, rsh)
32 AC_DEFINE_UNQUOTED(REMOTE_SHELL, "$RSH")
33 AC_CHECK_PROG(NROFF, nroff, [nroff -man], cat)
34 AC_SUBST(NROFFFLAGS)
35 AC_PATH_PROGS(AWKPATH, awk mawk gawk nawk)
36 AC_PATH_PROGS(PERLPATH, perl)
37
38 AC_ARG_WITH(Xaw3d, [  --with-Xaw3d            use Xaw3d instead of Xaw],
39   [AC_DEFINE(USE_XAW3D)
40    XAW_LIBS="-lXaw3d"],
41   XAW_LIBS="-lXaw")
42 AC_SUBST(XAW_LIBS)
43
44 AC_HEADER_STDC
45 AC_HEADER_TIME
46 AC_HEADER_SYS_WAIT
47 AC_HEADER_DIRENT
48 AC_TYPE_SIGNAL
49 AC_CHECK_HEADERS(stropts.h sys/time.h string.h unistd.h sys/systeminfo.h)
50 AC_CHECK_HEADERS(fcntl.h sys/fcntl.h, break)
51 AC_CHECK_HEADERS(sys/socket.h lan/socket.h, break)
52 AC_CHECK_HEADER(stddef.h, [], AC_DEFINE(X_WCHAR, 1))
53
54 AC_EGREP_HEADER(sys_errlist, errno.h, AC_DEFINE(DEFINED_SYS_ERRLIST))
55 AC_EGREP_HEADER(sys_errlist, stdio.h, AC_DEFINE(DEFINED_SYS_ERRLIST))
56 AC_EGREP_HEADER(sys_errlist, stdlib.h, AC_DEFINE(DEFINED_SYS_ERRLIST))
57
58 AC_CHECK_FUNCS(_getpty grantpt setitimer usleep)
59 AC_CHECK_FUNCS(gettimeofday ftime, break)
60 AC_CHECK_FUNCS(random rand48, break)
61 AC_CHECK_FUNCS(gethostname sysinfo, break)
62 AC_CHECK_FUNC(setlocale, [],
63   AC_CHECK_LIB(i, setlocale, [], AC_DEFINE(X_LOCALE, 1)))
64
65 AC_CHECK_LIB(seq, getpseudotty)
66
67 AC_PATH_XTRA
68 if test -n "$no_x" ; then
69   echo $PRODUCT requires the X Window System header files and libraries!
70   echo They were not found on your system.  See FAQ topic C.2.
71   echo configure failed
72   exit 1
73 fi
74
75 AC_CANONICAL_HOST
76
77 dnl| The following info is mostly gathered from GNU Emacs 19.24.  Basically,
78 dnl| we are trying to find out whether this is a System-V derivative in
79 dnl| which pipes don't work with select() and if so, whether there is anything
80 dnl| strange about the way to open a pty.  Some of the work was done above
81 dnl| by looking for _getpty, grantpt, and getpseudotty.  A few other strange
82 dnl| properties of particular systems are also handled here.
83
84 dnl| 4/6/97 I'm not sure there really are any systems where pipes
85 dnl| don't work with select(), and ptys cause problems on many
86 dnl| systems, so I'm changing the default to disable ptys in all
87 dnl| cases.  I will change it back if I get bug reports that are fixed
88 dnl| by doing a "configure --enable-ptys"
89
90 USE_PTYS=0
91 case "$host" in
92   *-*-hpux* )
93     AC_DEFINE(PTY_TTY_NAME_SPRINTF,
94         [sprintf (pty_name, "/dev/pty/tty%c%x", c, i);])
95     AC_DEFINE(PTY_NAME_SPRINTF,
96         [sprintf (pty_name, "/dev/ptym/pty%c%x", c, i);])
97 dnl| USE_PTYS=1
98     if test "$GCC" = yes; then
99       CONF_CFLAGS="-fwritable-strings"
100     else
101
102 dnl| Note: You might be able to build xboard even if your compiler does not
103 dnl| support ANSI C (-Aa).  xboard itself does not require ANSI C.  I don't
104 dnl| know whether the X header files on HP-UX require it.
105
106       CONF_CFLAGS="-Aa -D_HPUX_SOURCE"
107     fi
108
109 dnl| HP doesn't supply a full set of X header files and libraries.  People
110 dnl| often have some things installed in one place and some in another. 
111 dnl| AC_PATH_XTRA will find only one place, so we try to add all the
112 dnl| likely ones that might be missing here.  It might be better to
113 dnl| change AC_PATH_XTRA to try to extract this information from imake,
114 dnl| since folks who install the missing bits often configure their
115 dnl| imake to find them, but I don't want to delve into autoconf and
116 dnl| hack on its internals.
117
118     if test -d /opt/hppd/include/X11; then
119       X_CFLAGS="$X_CFLAGS -I/opt/hppd/include"
120       X_LIBS="$X_LIBS -L/opt/hppd/lib"
121     elif test -d /usr/contrib/X11R5/include; then
122       X_CFLAGS="$X_CFLAGS -I/usr/contrib/X11R5/include"
123       X_LIBS="$X_LIBS -L/usr/contrib/X11R5/lib"
124     elif test -d /usr/contrib/mitX11R5/include; then
125       X_CFLAGS="$X_CFLAGS -I/usr/contrib/mitX11R5/include"
126       X_LIBS="$X_LIBS -L/usr/contrib/mitX11R5/lib"
127     elif test -d /MIT/X11R5/include; then
128       X_CFLAGS="$X_CFLAGS -I/MIT/X11R5/include"
129       X_LIBS="$X_LIBS -L/MIT/X11R5/lib"
130     elif test -d /usr/local/include/X11R5; then
131       X_CFLAGS="$X_CFLAGS -I/usr/local/include/X11R5"
132       X_LIBS="$X_LIBS -L/usr/local/lib/X11R5"
133     fi
134     if test -d /usr/include/X11R5; then
135       X_CFLAGS="$X_CFLAGS -I/usr/include/X11R5"
136       X_LIBS="$X_LIBS -L/usr/lib/X11R5 -L/usr/lib/X11R4"
137     elif test -d /usr/include/X11R4; then
138       X_CFLAGS="$X_CFLAGS -I/usr/include/X11R4"
139       X_LIBS="$X_LIBS -L/usr/lib/X11R4"
140     fi
141   ;;
142
143   romp-ibm-aix* )
144     AC_DEFINE(IBMRTAIX, 1)
145 dnl| USE_PTYS=1
146   ;;
147
148   i386-ibm-aix )
149 dnl| USE_PTYS=1
150     if test "$GCC" = yes; then
151       CONF_CFLAGS="-fwritable-strings"
152     fi
153   ;;
154
155   *-*-aix3* | *-*-bosx* )
156     AC_DEFINE(PTY_ITERATION, [for (c = 0; !c; c++)])
157     AC_DEFINE(PTY_NAME_SPRINTF, [strcpy (pty_name, "/dev/ptc");])
158     AC_DEFINE(PTY_TTY_NAME_SPRINTF, [strcpy (pty_name, ttyname (fd));])
159 dnl| USE_PTYS=1
160   ;;
161
162   *-*-cxux* )
163     AC_DEFINE(FIRST_PTY_LETTER, 'A')
164     AC_DEFINE(LAST_PTY_LETTER, 'P')
165 dnl| USE_PTYS=1
166   ;;
167
168   *-*-uniplus* )
169     AC_DEFINE(UNIPLUS, 1)
170 dnl| USE_PTYS=1
171   ;;
172
173   *-*-rtu* )
174     AC_DEFINE(FIRST_PTY_LETTER, 'z')
175     AC_DEFINE(PTY_TTY_NAME_SPRINTF,
176         [sprintf (pty_name, "/dev/ttyp%x", i);])
177     AC_DEFINE(PTY_NAME_SPRINTF,
178         [sprintf (pty_name, "/dev/pty%x", i);])
179     AC_DEFINE(RTU, 1)
180 dnl| USE_PTYS=1
181   ;;
182
183   *-*-iris* | *-*-irix3* )
184     AC_DEFINE(PTY_ITERATION, [for (c = 0; !c; c++)])
185     AC_DEFINE(PTY_NAME_SPRINTF, [strcpy (pty_name, "/dev/ptc");])
186     AC_DEFINE(PTY_TTY_NAME_SPRINTF,
187         [sprintf (pty_name, "/dev/ttyq%d", minor(stb.st_rdev));])
188 dnl| USE_PTYS=1
189   ;;
190
191   *-*-irix* )
192 dnl| USE_PTYS=1
193   ;;
194
195   *-*-sunos4* | *-*-solaris1* )
196
197 dnl| Work around a bug in the SunOS 4.x linker.  Not needed if you have patches
198 dnl|  100512-02 and 100573-03 from Sun.  The X FAQ says that the following is
199 dnl|  "overkill," but doesn't explain what should be done instead.
200
201     if test "$GCC" = yes; then
202       PRE_XMULIB="-static"
203       POST_XMULIB="-dynamic"
204     else
205       PRE_XMULIB="-Bstatic"
206       POST_XMULIB="-Bdynamic"
207     fi
208   ;;
209
210   *-*-sunos5* | *-*-solaris2* )
211 dnl| USE_PTYS=1
212
213 dnl| I'm not sure -lelf is needed, but it was in the old Imakefile.
214 dnl| The other libraries should all be found by Ac_PATH_XTRA or other
215 dnl| code above.
216
217     X_LIBS="$X_LIBS -lelf"
218   ;;
219
220   *-*-sco* )
221     AC_DEFINE(PTY_ITERATION, [for (i = 0; ; i++)])
222     AC_DEFINE(PTY_NAME_SPRINTF, [sprintf (pty_name, "/dev/ptyp%d", i);])
223     AC_DEFINE(PTY_TTY_NAME_SPRINTF, [sprintf (pty_name, "/dev/ttyp%d", i);])
224 dnl| USE_PTYS=1
225   ;;
226         
227   *-*-dynix* | *-*-ptx* )
228 dnl| USE_PTYS=1
229   ;;
230
231   *-*-esix* )
232 dnl| USE_PTYS=1
233   ;;
234
235   *-*-usg5-4* | *-*-sysvr4* )
236 dnl| USE_PTYS=1
237   ;;
238
239   *-*-usg* | *-*-sysv* | *-*-aix* )
240 dnl| USE_PTYS=1
241   ;;
242
243   vax-*-ultrix )
244     if test "$GCC" = yes; then
245       CONF_CFLAGS="-fwritable-strings"
246     fi
247   ;;
248 esac
249
250 AC_ARG_ENABLE(xpm,
251 [  --enable-xpm            libXpm will be used if found (default)
252   --disable-xpm           libXpm will not be used],
253 [enable_xpm="$enableval"], [enable_xpm="yes"])
254
255 if test "$enable_xpm" = "yes"; then
256   save_cflags="$CFLAGS"
257   CFLAGS="$CFLAGS $X_CFLAGS"
258   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
259   AC_CHECK_HEADERS(X11/xpm.h)
260   CFLAGS="$save_cflags"
261   if test "$ac_cv_header_X11_xpm_h" = "yes"; then
262     save_ldflags="$LDFLAGS"
263     LDFLAGS="$LDFLAGS $X_LIBS"
264     AC_CHECK_LIB(Xpm, XpmReadFileToPixmap,
265                  [X_PRE_LIBS="-lXpm $X_PRE_LIBS"; AC_DEFINE(HAVE_LIBXPM)], [],
266                  [$X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
267     LDFLAGS="$save_ldflags"
268   fi
269 fi
270
271 AC_SUBST(PRE_XMULIB)
272 AC_SUBST(POST_XMULIB)
273 AC_SUBST(CONF_CFLAGS)
274 AC_SUBST(CONF_LDFLAGS)
275
276 AC_MSG_CHECKING(whether ptys or pipes should be used)
277 AC_ARG_ENABLE(ptys, 
278 [  --enable-ptys           force use of pseudo-ttys with child processes
279   --disable-ptys          force use of pipes with child processes],
280 [if test "$enableval" = yes; then
281   USE_PTYS=1
282   AC_MSG_RESULT([ptys (user override)])
283 fi
284 if test "$enableval" = no; then
285   USE_PTYS=0
286   AC_MSG_RESULT([pipes (user override)])
287 fi],
288 [if test "$USE_PTYS" = 1; then
289   AC_MSG_RESULT(ptys)
290 else
291   AC_MSG_RESULT(pipes)
292 fi])
293 AC_DEFINE_UNQUOTED(USE_PTYS, $USE_PTYS)
294
295 AC_ARG_ENABLE(zippy, 
296 [  --enable-zippy          features for interfacing a chess program to ICS],
297 [if test "$enableval" = yes; then
298   AC_DEFINE(ZIPPY, 1)
299   ZIPPY_O=zippy.o
300   ZIPPY_H=zippy.h
301 fi])
302 AC_SUBST(ZIPPY_O)  
303 AC_SUBST(ZIPPY_H)  
304
305 AC_ARG_ENABLE(sigint, 
306 [  --enable-sigint         sending SIGINT (^C) wakes up GNU Chess (default)
307   --disable-sigint        typing a command wakes up GNU Chess],
308 [if test "$enableval" = yes; then
309   AC_DEFINE(ATTENTION, 1)
310 fi],
311 [AC_DEFINE(ATTENTION, 1)])
312
313 AC_DEFINE_UNQUOTED(PRODUCT, "$PRODUCT")
314 AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
315 AC_DEFINE_UNQUOTED(PATCHLEVEL, "$PATCHLEVEL")
316 AC_SUBST(PRODUCT)
317 AC_SUBST(VERSION)
318 AC_SUBST(PATCHLEVEL)
319
320 AC_OUTPUT(Makefile comment.awk:comment.in cmail xboard.texinfo,
321 [test -z "$CONFIG_HEADERS" || date > stamp-h
322 chmod 755 comment.awk cmail
323 ])