(Fconstrain_to_field): Make sure we don't violate the
[bpt/emacs.git] / configure.in
CommitLineData
6e502e37 1dnl Autoconf script for GNU Emacs
9ec10b2f
DM
2dnl To rebuild the `configure' script from this, execute the command
3dnl autoconf
4dnl in the directory containing this script.
6e502e37 5dnl
07d555c6 6dnl Copyright (C) 1994, 1995, 1996, 1999 Free Software Foundation, Inc.
552dfe31 7dnl
6e502e37 8dnl This file is part of GNU Emacs.
552dfe31 9dnl
6e502e37
RS
10dnl GNU Emacs is free software; you can redistribute it and/or modify
11dnl it under the terms of the GNU General Public License as published by
12dnl the Free Software Foundation; either version 2, or (at your option)
13dnl any later version.
552dfe31 14dnl
6e502e37
RS
15dnl GNU Emacs is distributed in the hope that it will be useful,
16dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
17dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18dnl GNU General Public License for more details.
19dnl
20dnl You should have received a copy of the GNU General Public License
1fb87c77
KH
21dnl along with GNU Emacs; see the file COPYING. If not, write to the
22dnl Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23dnl Boston, MA 02111-1307, USA.
6e502e37 24
552dfe31 25AC_PREREQ(2.8)dnl
9ec10b2f 26AC_INIT(src/lisp.h)
5f8c8f00 27AC_CONFIG_HEADER(src/config.h:src/config.in)
9ec10b2f 28
9ec10b2f 29lispdir='${datadir}/emacs/${version}/lisp'
4be21f66 30locallisppath='${datadir}/emacs/${version}/site-lisp:'\
684f4cb3 31'${datadir}/emacs/site-lisp:${datadir}/emacs/${version}/leim'
9ec10b2f
DM
32lisppath='${locallisppath}:${lispdir}'
33etcdir='${datadir}/emacs/${version}/etc'
60c3568d 34archlibdir='${libexecdir}/emacs/${version}/${configuration}'
9ec10b2f
DM
35docdir='${datadir}/emacs/${version}/etc'
36
39a7c455 37AC_ARG_WITH(gcc,
6fa064b6 38[ --without-gcc don't use GCC to compile Emacs if GCC is found])
4f734bde 39AC_ARG_WITH(pop,
6fa064b6
DL
40[ --without-pop don't support POP mail retrieval with movemail],
41[if test "$withval" = yes; then
42 AC_DEFINE(MAIL_USE_POP)
43else :
44fi])
4f734bde
DM
45AC_ARG_WITH(hesiod,
46[ --with-hesiod support Hesiod to get the POP server host],
47[AC_DEFINE(HESIOD)])
48dnl This should be the last --with option, because --with-x is
49dnl added later on when we find the path of X, and it's best to
50dnl keep them together visually.
9ec10b2f 51AC_ARG_WITH(x-toolkit,
f7894e88 52[ --with-x-toolkit=KIT use an X toolkit (KIT = yes/lucid/athena/motif/no)],
9ec10b2f
DM
53[ case "${withval}" in
54 y | ye | yes ) val=athena ;;
55 n | no ) val=no ;;
56 l | lu | luc | luci | lucid ) val=lucid ;;
84c5c823 57 a | at | ath | athe | athen | athena ) val=athena ;;
3cd69289 58 m | mo | mot | moti | motif ) val=motif ;;
2e71ec17 59dnl These don't currently work.
2e71ec17
DM
60dnl o | op | ope | open | open- | open-l | open-lo \
61dnl | open-loo | open-look ) val=open-look ;;
9ec10b2f 62 * )
2e71ec17
DM
63dnl AC_MSG_ERROR([the \`--with-x-toolkit' option is supposed to have a value
64dnl which is \`yes', \`no', \`lucid', \`athena', \`motif' or \`open-look'.])
90b777c5
RS
65AC_MSG_ERROR([\`--with-x-toolkit=$withval' is invalid\;
66this option's value should be \`yes', \`no', \`lucid', \`athena', or \`motif'.
9ec10b2f
DM
67Currently, \`yes', \`athena' and \`lucid' are synonyms.])
68 ;;
69 esac
70 with_x_toolkit=$val
71])
b412189c
GM
72AC_ARG_WITH(xpm,
73[ --with-xpm use -lXpm for displaying XPM images])
74AC_ARG_WITH(jpeg,
75[ --with-jpeg use -ljpeg for displaying JPEG images])
76AC_ARG_WITH(tiff,
495ccc04 77[ --with-tiff use -ltiff for displaying TIFF images])
b412189c
GM
78AC_ARG_WITH(gif,
79[ --with-gif use -lungif for displaying GIF images])
80AC_ARG_WITH(png,
81[ --with-png use -lpng for displaying PNG images])
20c1822e 82AC_ARG_WITH(toolkit-scroll-bars,
6fa064b6 83[ --without-toolkit-scroll-bars don't use Motif or Xaw3d scroll bars])
9ec10b2f
DM
84
85#### Make srcdir absolute, if it isn't already. It's important to
86#### avoid running the path through pwd unnecessary, since pwd can
069df4bf
DM
87#### give you automounter prefixes, which can go away. We do all this
88#### so Emacs can find its files when run uninstalled.
9ec10b2f
DM
89case "${srcdir}" in
90 /* ) ;;
91 . )
92 ## We may be able to use the $PWD environment variable to make this
93 ## absolute. But sometimes PWD is inaccurate.
f6e8adea 94 ## Make sure CDPATH doesn't affect cd (in case PWD is relative).
691beae8 95 unset CDPATH
9ec10b2f
DM
96 if test "${PWD}" != "" && test "`(cd ${PWD} ; sh -c pwd)`" = "`pwd`" ;
97 then
98 srcdir="$PWD"
99 else
100 srcdir="`(cd ${srcdir}; pwd)`"
101 fi
102 ;;
103 * ) srcdir="`(cd ${srcdir}; pwd)`" ;;
104esac
105
106#### Check if the source directory already has a configured system in it.
107if test `pwd` != `(cd ${srcdir} && pwd)` \
108 && test -f "${srcdir}/src/config.h" ; then
109 AC_MSG_WARN([The directory tree \`${srcdir}' is being used
110 as a build directory right now; it has been configured in its own
111 right. To configure in another directory as well, you MUST
112 use GNU make. If you do not have GNU make, then you must
113 now do \`make distclean' in ${srcdir},
114 and then run $0 again.])
115
2d73167a 116changequote(, )dnl
9ec10b2f 117 extrasub='/^VPATH[ ]*=/c\
2d73167a 118changequote([, ])dnl
9ec10b2f
DM
119vpath %.c $(srcdir)\
120vpath %.h $(srcdir)\
121vpath %.y $(srcdir)\
122vpath %.l $(srcdir)\
123vpath %.s $(srcdir)\
5ac83f86
RS
124vpath %.in $(srcdir)\
125vpath %.texi $(srcdir)'
9ec10b2f
DM
126fi
127
128#### Given the configuration name, set machfile and opsysfile to the
129#### names of the m/*.h and s/*.h files we should use.
130
131### Canonicalize the configuration name.
132
133AC_CANONICAL_HOST
134canonical=$host
7bbbba31 135configuration=$host_alias
9ec10b2f
DM
136
137changequote(, )dnl
138
139### If you add support for a new configuration, add code to this
140### switch statement to recognize your configuration name and select
141### the appropriate operating system and machine description files.
142
143### You would hope that you could choose an m/*.h file pretty much
144### based on the machine portion of the configuration name, and an s-
145### file based on the operating system portion. However, it turns out
146### that each m/*.h file is pretty manufacturer-specific - for
147### example, apollo.h, hp9000s300.h, mega68k, news.h, and tad68k are
148### all 68000 machines; mips.h, pmax.h, and news-risc are all MIPS
149### machines. So we basically have to have a special case for each
150### configuration name.
151###
152### As far as handling version numbers on operating systems is
153### concerned, make sure things will fail in a fixable way. If
154### /etc/MACHINES doesn't say anything about version numbers, be
155### prepared to handle anything reasonably. If version numbers
156### matter, be sure /etc/MACHINES says something about it.
157###
158### Eric Raymond says we should accept strings like "sysvr4" to mean
159### "System V Release 4"; he writes, "The old convention encouraged
160### confusion between `system' and `release' levels'."
161
162machine='' opsys='' unported=no
163case "${canonical}" in
164
165 ## NetBSD ports
166 *-*-netbsd* )
167 opsys=netbsd
168 case "${canonical}" in
98bbf2a1 169 alpha*-*-netbsd*) machine=alpha ;;
5ac83f86 170 i[3456]86-*-netbsd*) machine=intel386 ;;
9ec10b2f
DM
171 m68k-*-netbsd*)
172 # This is somewhat bogus.
173 machine=hp9000s300 ;;
ca568b47 174 powerpc-apple-netbsd*) machine=macppc ;;
9ec10b2f
DM
175 mips-*-netbsd*) machine=pmax ;;
176 ns32k-*-netbsd*) machine=ns32000 ;;
177 sparc-*-netbsd*) machine=sparc ;;
b336ddd3 178 vax-*-netbsd*) machine=vax ;;
9ec10b2f
DM
179 esac
180 ;;
181
e3ac1b7f
RS
182 ## OpenBSD ports
183 *-*-openbsd* )
184 opsys=openbsd
185 case "${canonical}" in
98bbf2a1 186 alpha*-*-openbsd*) machine=alpha ;;
e3ac1b7f 187 i386-*-openbsd*) machine=intel386 ;;
6239880d
RS
188 m68k-*-openbsd*) machine=hp9000s300 ;;
189 mipsel-*-openbsd*) machine=pmax ;;
e3ac1b7f
RS
190 ns32k-*-openbsd*) machine=ns32000 ;;
191 sparc-*-openbsd*) machine=sparc ;;
ca568b47 192 vax-*-openbsd*) machine=vax ;;
e3ac1b7f
RS
193 esac
194 ;;
195
3cd69289
DM
196 ## Acorn RISCiX:
197 arm-acorn-riscix1.1* )
198 machine=acorn opsys=riscix1-1
199 ;;
200 arm-acorn-riscix1.2* | arm-acorn-riscix )
aac2257c
RS
201 ## This name is riscix12 instead of riscix1.2
202 ## to avoid a file name conflict on MSDOS.
203 machine=acorn opsys=riscix12
3cd69289
DM
204 ;;
205
2c4f7ce7
RS
206 ## BSDI ports
207 *-*-bsdi* )
208 opsys=bsdi
209 case "${canonical}" in
210 i[345]86-*-bsdi*) machine=intel386 ;;
211 sparc-*-bsdi*) machine=sparc ;;
212 powerpc-*-bsdi*) machine=powerpc ;;
213 esac
214 case "${canonical}" in
215 *-*-bsd386* | *-*-bsdi1* ) opsys=bsd386 ;;
216 *-*-bsdi2.0* ) opsys=bsdos2 ;;
217 *-*-bsdi2* ) opsys=bsdos2-1 ;;
218 *-*-bsdi3* ) opsys=bsdos3 ;;
66b48ade 219 *-*-bsdi4* ) opsys=bsdos4 ;;
2c4f7ce7
RS
220 esac
221 ;;
222
9ec10b2f
DM
223 ## Alliant machines
224 ## Strictly speaking, we need the version of the alliant operating
225 ## system to choose the right machine file, but currently the
226 ## configuration name doesn't tell us enough to choose the right
227 ## one; we need to give alliants their own operating system name to
228 ## do this right. When someone cares, they can help us.
229 fx80-alliant-* )
230 machine=alliant4 opsys=bsd4-2
231 ;;
232 i860-alliant-* )
233 machine=alliant-2800 opsys=bsd4-3
234 ;;
235
30457b4f 236 ## Alpha (DEC) machines.
98bbf2a1 237 alpha*-dec-osf* )
3cd69289 238 machine=alpha opsys=osf1
f528522b 239 # This is needed to find X11R6.1 libraries for certain tests.
1bc5a004
RS
240 NON_GCC_LINK_TEST_OPTIONS=-Wl,-rpath,/usr/X11R6/lib
241 GCC_LINK_TEST_OPTIONS=-Wl,-rpath,/usr/X11R6/lib
3cd69289
DM
242 ;;
243
98bbf2a1 244 alpha*-*-linux-gnu* )
5ac83f86 245 machine=alpha opsys=gnu-linux
4e90a7d5
RS
246 ;;
247
9ec10b2f
DM
248 ## Altos 3068
249 m68*-altos-sysv* )
250 machine=altos opsys=usg5-2
251 ;;
c7f493fd 252
9ec10b2f
DM
253 ## Amdahl UTS
254 580-amdahl-sysv* )
255 machine=amdahl opsys=usg5-2-2
256 ;;
257
acd04c87
RS
258 ## Apollo, Domain/OS
259 m68*-apollo-* )
260 machine=apollo opsys=bsd4-3
9ec10b2f
DM
261 ;;
262
263 ## AT&T 3b2, 3b5, 3b15, 3b20
264 we32k-att-sysv* )
265 machine=att3b opsys=usg5-2-2
266 ;;
267
268 ## AT&T 3b1 - The Mighty Unix PC!
269 m68*-att-sysv* )
270 machine=7300 opsys=usg5-2-2
271 ;;
272
273 ## Bull dpx20
274 rs6000-bull-bosx* )
275 machine=ibmrs6000 opsys=aix3-2
276 ;;
277
278 ## Bull dpx2
279 m68*-bull-sysv3* )
280 machine=dpx2 opsys=usg5-3
281 ;;
282
283 ## Bull sps7
284 m68*-bull-sysv2* )
285 machine=sps7 opsys=usg5-2
286 ;;
287
288 ## CCI 5/32, 6/32 -- see "Tahoe".
289
290 ## Celerity
291 ## I don't know what configuration name to use for this; config.sub
292 ## doesn't seem to know anything about it. Hey, Celerity users, get
293 ## in touch with us!
294 celerity-celerity-bsd* )
295 machine=celerity opsys=bsd4-2
296 ;;
297
298 ## Clipper
299 ## What operating systems does this chip run that Emacs has been
300 ## tested on?
301 clipper-* )
302 machine=clipper
303 ## We'll use the catch-all code at the bottom to guess the
304 ## operating system.
305 ;;
306
307 ## Convex
308 *-convex-bsd* | *-convex-convexos* )
309 machine=convex opsys=bsd4-3
908ff139 310 ## Prevents spurious white space in makefiles - d.m.cooke@larc.nasa.gov
9ec10b2f
DM
311 NON_GNU_CPP="cc -E -P"
312 ;;
313
314 ## Cubix QBx/386
5ac83f86 315 i[3456]86-cubix-sysv* )
9ec10b2f
DM
316 machine=intel386 opsys=usg5-3
317 ;;
318
319 ## Cydra 5
320 cydra*-cydrome-sysv* )
321 machine=cydra5 opsys=usg5-3
322 ;;
323
324 ## Data General AViiON Machines
651fc2d2
RS
325 ## DG changed naming conventions with the release of 5.4.4.10, they
326 ## dropped the initial 5.4 but left the intervening R. Because of the
327 ## R this shouldn't conflict with older versions of the OS (which I
f4afda69
KH
328 ## think were named like dgux4.*). In addition, DG new AViiONs series
329 ## uses either Motorola M88k or Intel Pentium CPUs.
9ae70ffe 330 m88k-dg-dguxR4.* | m88k-dg-dgux4* )
651fc2d2
RS
331 machine=aviion opsys=dgux4
332 ;;
9ec10b2f 333 m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* )
aac2257c
RS
334 ## This name is dgux5-4-3 instead of dgux5-4r3
335 ## to avoid a file name conflict on MSDOS.
336 machine=aviion opsys=dgux5-4-3
9ec10b2f
DM
337 ;;
338 m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* )
339 machine=aviion opsys=dgux5-4r2
340 ;;
341 m88k-dg-dgux* )
342 machine=aviion opsys=dgux
343 ;;
344
4e746fa8
KH
345 ## Data General AViiON Intel (x86) Machines
346 ## Exists from 5.4.3 (current i586-dg-dguxR4.11)
347 ## Ehud Karni, 1998-may-30, ehud@unix.simonwiesel.co.il
9ae70ffe 348 i[345]86-dg-dguxR4* )
4e746fa8
KH
349 machine=aviion-intel opsys=dgux4
350 ;;
351
9ec10b2f
DM
352 ## DECstations
353 mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0* | mips-dec-bsd4.2* )
354 machine=pmax opsys=bsd4-2
355 ;;
3bbe016c 356 mips-dec-ultrix4.[12]* | mips-dec-bsd* )
9ec10b2f
DM
357 machine=pmax opsys=bsd4-3
358 ;;
3bbe016c
KH
359 mips-dec-ultrix* )
360 machine=pmax opsys=ultrix4-3
361 ;;
9ec10b2f
DM
362 mips-dec-osf* )
363 machine=pmax opsys=osf1
364 ;;
b95c8e7e
RS
365 mips-dec-mach_bsd4.3* )
366 machine=pmax opsys=mach-bsd4-3
367 ;;
9ec10b2f
DM
368
369 ## Motorola Delta machines
370 m68k-motorola-sysv* | m68000-motorola-sysv* )
371 machine=delta opsys=usg5-3
372 if test -z "`type gnucc | grep 'not found'`"
018427ee
RS
373 then
374 if test -s /etc/167config
375 then CC="gnucc -m68040"
376 else CC="gnucc -m68881"
c7f493fd 377 fi
9ec10b2f
DM
378 else
379 if test -z "`type gcc | grep 'not found'`"
380 then CC=gcc
381 else CC=cc
382 fi
383 fi
384 ;;
385 m88k-motorola-sysv4* )
63c1d3f2
RS
386 # jbotte@bnr.ca says that UNIX_System_V <hostName> 4.0 R40V4.3 m88k mc88110
387 # needs POSIX_SIGNALS and therefore needs usg5-4-2.
388 # I hope there are not other 4.0 versions for this machine
389 # which really need usg5-4 instead.
390 machine=delta88k opsys=usg5-4-2
9ec10b2f
DM
391 ;;
392 m88k-motorola-sysv* | m88k-motorola-m88kbcs* )
393 machine=delta88k opsys=usg5-3
394 ;;
395
396 ## Dual machines
397 m68*-dual-sysv* )
398 machine=dual opsys=usg5-2
399 ;;
400 m68*-dual-uniplus* )
401 machine=dual opsys=unipl5-2
402 ;;
403
404 ## Elxsi 6400
405 elxsi-elxsi-sysv* )
406 machine=elxsi opsys=usg5-2
407 ;;
408
409 ## Encore machines
410 ns16k-encore-bsd* )
411 machine=ns16000 opsys=umax
412 ;;
413
414 ## The GEC 93 - apparently, this port isn't really finished yet.
415
416 ## Gould Power Node and NP1
417 pn-gould-bsd4.2* )
418 machine=gould opsys=bsd4-2
419 ;;
420 pn-gould-bsd4.3* )
421 machine=gould opsys=bsd4-3
422 ;;
423 np1-gould-bsd* )
424 machine=gould-np1 opsys=bsd4-3
425 ;;
426
427 ## Harris Night Hawk machines running CX/UX (a 5000 looks just like a 4000
428 ## as far as Emacs is concerned).
429 m88k-harris-cxux* )
430 # Build needs to be different on 7.0 and later releases
431 case "`uname -r`" in
432 [56].[0-9] ) machine=nh4000 opsys=cxux ;;
433 [7].[0-9] ) machine=nh4000 opsys=cxux7 ;;
434 esac
3d68df05 435 NON_GNU_CPP="/lib/cpp"
9ec10b2f
DM
436 ;;
437 ## Harris ecx or gcx running CX/UX (Series 1200, Series 3000)
438 m68k-harris-cxux* )
439 machine=nh3000 opsys=cxux
440 ;;
3d68df05
KH
441 ## Harris power pc NightHawk running Power UNIX (Series 6000)
442 powerpc-harris-powerunix )
443 machine=nh6000 opsys=powerunix
444 NON_GNU_CPP="cc -Xo -E -P"
445 ;;
0e5f305e
RS
446 ## SR2001/SR2201 running HI-UX/MPP
447 hppa1.1-hitachi-hiuxmpp* )
448 machine=sr2k opsys=hiuxmpp
449 ;;
9ec10b2f
DM
450 ## Honeywell XPS100
451 xps*-honeywell-sysv* )
452 machine=xps100 opsys=usg5-2
453 ;;
454
455 ## HP 9000 series 200 or 300
456 m68*-hp-bsd* )
457 machine=hp9000s300 opsys=bsd4-3
458 ;;
42c3a7f7 459 ## HP/UX 7, 8, 9, and 10 are supported on these machines.
9ec10b2f
DM
460 m68*-hp-hpux* )
461 case "`uname -r`" in
462 ## Someone's system reports A.B8.05 for this.
463 ## I wonder what other possibilities there are.
464 *.B8.* ) machine=hp9000s300 opsys=hpux8 ;;
465 *.08.* ) machine=hp9000s300 opsys=hpux8 ;;
466 *.09.* ) machine=hp9000s300 opsys=hpux9 ;;
88a806e9 467 *.1[0-9].* ) machine=hp9000s300 opsys=hpux9shr ;;
9ec10b2f
DM
468 *) machine=hp9000s300 opsys=hpux ;;
469 esac
470 ;;
471
472 ## HP 9000 series 700 and 800, running HP/UX
473 hppa*-hp-hpux7* )
474 machine=hp800 opsys=hpux
475 ;;
476 hppa*-hp-hpux8* )
477 machine=hp800 opsys=hpux8
478 ;;
479 hppa*-hp-hpux9shr* )
480 machine=hp800 opsys=hpux9shr
481 ;;
482 hppa*-hp-hpux9* )
483 machine=hp800 opsys=hpux9
484 ;;
88a806e9 485 hppa*-hp-hpux1[0-9]* )
12760c02 486 machine=hp800 opsys=hpux10
42c3a7f7 487 ;;
9ec10b2f
DM
488
489 ## HP 9000 series 700 and 800, running HP/UX
490 hppa*-hp-hpux* )
491 ## Cross-compilation? Nah!
492 case "`uname -r`" in
493 ## Someone's system reports A.B8.05 for this.
494 ## I wonder what other possibilities there are.
495 *.B8.* ) machine=hp800 opsys=hpux8 ;;
496 *.08.* ) machine=hp800 opsys=hpux8 ;;
497 *.09.* ) machine=hp800 opsys=hpux9 ;;
842f8692 498 *) machine=hp800 opsys=hpux10 ;;
9ec10b2f
DM
499 esac
500 ;;
da945421 501 hppa*-*-nextstep* )
4be21f66
KH
502 machine=hp800 opsys=nextstep
503 ;;
9ec10b2f
DM
504
505 ## Orion machines
506 orion-orion-bsd* )
507 machine=orion opsys=bsd4-2
508 ;;
509 clipper-orion-bsd* )
510 machine=orion105 opsys=bsd4-2
511 ;;
512
513 ## IBM machines
5ac83f86 514 i[3456]86-ibm-aix1.1* )
9ec10b2f
DM
515 machine=ibmps2-aix opsys=usg5-2-2
516 ;;
5ac83f86 517 i[3456]86-ibm-aix1.[23]* | i[3456]86-ibm-aix* )
9ec10b2f
DM
518 machine=ibmps2-aix opsys=usg5-3
519 ;;
520 i370-ibm-aix*)
521 machine=ibm370aix opsys=usg5-3
522 ;;
046545ec 523 rs6000-ibm-aix3.1* | powerpc-ibm-aix3.1* )
9ec10b2f
DM
524 machine=ibmrs6000 opsys=aix3-1
525 ;;
046545ec 526 rs6000-ibm-aix3.2.5 | powerpc-ibm-aix3.2.5 )
9ec10b2f
DM
527 machine=ibmrs6000 opsys=aix3-2-5
528 ;;
b63df577
RS
529 rs6000-ibm-aix4.1* | powerpc-ibm-aix4.1* )
530 machine=ibmrs6000 opsys=aix4-1
531 ;;
a8958813
RS
532 rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2* )
533 machine=ibmrs6000 opsys=aix4-2
534 ;;
535 rs6000-ibm-aix4.0* | powerpc-ibm-aix4.0* )
b63df577
RS
536 machine=ibmrs6000 opsys=aix4
537 ;;
a8958813
RS
538 rs6000-ibm-aix4* | powerpc-ibm-aix4* )
539 machine=ibmrs6000 opsys=aix4-1
540 ;;
046545ec 541 rs6000-ibm-aix* | powerpc-ibm-aix* )
9ec10b2f
DM
542 machine=ibmrs6000 opsys=aix3-2
543 ;;
544 romp-ibm-bsd4.3* )
545 machine=ibmrt opsys=bsd4-3
c7f493fd 546 ;;
9ec10b2f
DM
547 romp-ibm-bsd4.2* )
548 machine=ibmrt opsys=bsd4-2
549 ;;
550 romp-ibm-aos4.3* )
551 machine=ibmrt opsys=bsd4-3
c7f493fd 552 ;;
9ec10b2f
DM
553 romp-ibm-aos4.2* )
554 machine=ibmrt opsys=bsd4-2
555 ;;
556 romp-ibm-aos* )
557 machine=ibmrt opsys=bsd4-3
558 ;;
559 romp-ibm-bsd* )
560 machine=ibmrt opsys=bsd4-3
561 ;;
562 romp-ibm-aix* )
563 machine=ibmrt-aix opsys=usg5-2-2
564 ;;
565
566 ## Integrated Solutions `Optimum V'
567 m68*-isi-bsd4.2* )
568 machine=isi-ov opsys=bsd4-2
569 ;;
570 m68*-isi-bsd4.3* )
571 machine=isi-ov opsys=bsd4-3
572 ;;
573
574 ## Intel 386 machines where we do care about the manufacturer
5ac83f86 575 i[3456]86-intsys-sysv* )
9ec10b2f
DM
576 machine=is386 opsys=usg5-2-2
577 ;;
578
579 ## Prime EXL
5ac83f86 580 i[3456]86-prime-sysv* )
9ec10b2f
DM
581 machine=i386 opsys=usg5-3
582 ;;
583
3cd69289 584 ## Sequent Symmetry running Dynix
5ac83f86 585 i[3456]86-sequent-bsd* )
9ec10b2f
DM
586 machine=symmetry opsys=bsd4-3
587 ;;
588
86d6f6ee
RS
589 ## Sequent Symmetry running ptx 4, which is a modified SVR4.
590 i[3456]86-sequent-ptx4* | i[3456]86-sequent-sysv4* )
591 machine=sequent-ptx opsys=ptx4
0dcdc912 592 NON_GNU_CPP=/lib/cpp
86d6f6ee
RS
593 ;;
594
3cd69289
DM
595 ## Sequent Symmetry running DYNIX/ptx
596 ## Use the old cpp rather than the newer ANSI one.
5ac83f86 597 i[3456]86-sequent-ptx* )
3cd69289
DM
598 machine=sequent-ptx opsys=ptx
599 NON_GNU_CPP="/lib/cpp"
600 ;;
601
cd837fee
KH
602 ## ncr machine running svr4.3.
603 i[3456]86-ncr-sysv4.3 )
604 machine=ncr386 opsys=usg5-4-3
605 ;;
606
9ec10b2f
DM
607 ## Unspecified sysv on an ncr machine defaults to svr4.2.
608 ## (Plain usg5-4 doesn't turn on POSIX signals, which we need.)
5ac83f86 609 i[3456]86-ncr-sysv* )
b0f36760 610 machine=ncr386 opsys=usg5-4-2
9ec10b2f
DM
611 ;;
612
cbce363f
RS
613 ## Intel Paragon OSF/1
614 i860-intel-osf1* )
615 machine=paragon opsys=osf1 NON_GNU_CPP=/usr/mach/lib/cpp
616 ;;
617
9ec10b2f
DM
618 ## Intel 860
619 i860-*-sysv4* )
620 machine=i860 opsys=usg5-4
621 NON_GNU_CC="/bin/cc" # Ie, not the one in /usr/ucb/cc.
622 NON_GNU_CPP="/usr/ccs/lib/cpp" # cc -E tokenizes macro expansion.
623 ;;
624
625 ## Masscomp machines
626 m68*-masscomp-rtu* )
627 machine=masscomp opsys=rtu
628 ;;
629
630 ## Megatest machines
631 m68*-megatest-bsd* )
632 machine=mega68 opsys=bsd4-2
633 ;;
634
635 ## Workstations sold by MIPS
636 ## This is not necessarily all workstations using the MIPS processor -
637 ## Irises are produced by SGI, and DECstations by DEC.
638
639 ## etc/MACHINES lists mips.h and mips4.h as possible machine files,
640 ## and usg5-2-2 and bsd4-3 as possible OS files. The only guidance
641 ## it gives for choosing between the alternatives seems to be "Use
642 ## -machine=mips4 for RISCOS version 4; use -opsystem=bsd4-3 with
643 ## the BSD world." I'll assume that these are instructions for
644 ## handling two odd situations, and that every other situation
645 ## should use mips.h and usg5-2-2, they being listed first.
646 mips-mips-usg* )
647 machine=mips4
648 ## Fall through to the general code at the bottom to decide on the OS.
649 ;;
650 mips-mips-riscos4* )
651 machine=mips4 opsys=bsd4-3
652 NON_GNU_CC="cc -systype bsd43"
653 NON_GNU_CPP="cc -systype bsd43 -E"
654 ;;
b95c8e7e
RS
655 mips-mips-riscos5* )
656 machine=mips4 opsys=riscos5
657 NON_GNU_CC="cc -systype bsd43"
658 NON_GNU_CPP="cc -systype bsd43 -E"
659 ;;
9ec10b2f
DM
660 mips-mips-bsd* )
661 machine=mips opsys=bsd4-3
662 ;;
663 mips-mips-* )
664 machine=mips opsys=usg5-2-2
665 ;;
666
667 ## NeXT
5ab52d42
RS
668 m68*-next-* | m68k-*-nextstep* )
669 machine=m68k opsys=nextstep
9ec10b2f
DM
670 ;;
671
672 ## The complete machine from National Semiconductor
673 ns32k-ns-genix* )
674 machine=ns32000 opsys=usg5-2
675 ;;
676
677 ## NCR machines
678 m68*-ncr-sysv2* | m68*-ncr-sysvr2* )
679 machine=tower32 opsys=usg5-2-2
680 ;;
681 m68*-ncr-sysv3* | m68*-ncr-sysvr3* )
682 machine=tower32v3 opsys=usg5-3
683 ;;
684
b4ea3111
KH
685 ## NEC EWS4800
686 mips-nec-sysv4*)
687 machine=ews4800 opsys=ux4800
688 ;;
689
9ec10b2f
DM
690 ## Nixdorf Targon 31
691 m68*-nixdorf-sysv* )
692 machine=targon31 opsys=usg5-2-2
693 ;;
694
695 ## Nu (TI or LMI)
696 m68*-nu-sysv* )
697 machine=nu opsys=usg5-2
698 ;;
699
700 ## Plexus
701 m68*-plexus-sysv* )
702 machine=plexus opsys=usg5-2
703 ;;
704
42326ef0
RS
705 ## PowerPC reference platform
706 powerpcle-*-solaris2* )
707 machine=prep
708 opsys=sol2-5
709 ;;
710
9ec10b2f
DM
711 ## Pyramid machines
712 ## I don't really have any idea what sort of processor the Pyramid has,
713 ## so I'm assuming it is its own architecture.
714 pyramid-pyramid-bsd* )
715 machine=pyramid opsys=bsd4-2
716 ;;
717
718 ## Sequent Balance
719 ns32k-sequent-bsd4.2* )
720 machine=sequent opsys=bsd4-2
721 ;;
722 ns32k-sequent-bsd4.3* )
723 machine=sequent opsys=bsd4-3
724 ;;
725
726 ## Siemens Nixdorf
7cba3845 727 mips-siemens-sysv* | mips-sni-sysv*)
9ec10b2f
DM
728 machine=mips-siemens opsys=usg5-4
729 NON_GNU_CC=/usr/ccs/bin/cc
730 NON_GNU_CPP=/usr/ccs/lib/cpp
731 ;;
732
733 ## Silicon Graphics machines
734 ## Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
735 m68*-sgi-iris3.5* )
736 machine=irist opsys=iris3-5
737 ;;
738 m68*-sgi-iris3.6* | m68*-sgi-iris*)
739 machine=irist opsys=iris3-6
740 ;;
741 ## Iris 4D
742 mips-sgi-irix3* )
743 machine=iris4d opsys=irix3-3
744 ;;
4ab83697
RS
745 mips-sgi-irix4* )
746 machine=iris4d opsys=irix4-0
747 ;;
a187fb80
KH
748 mips-sgi-irix6.5 )
749 machine=iris4d opsys=irix6-5
750 NON_GNU_CPP=/lib/cpp
751 NON_GCC_TEST_OPTIONS="-n32 -G0"
752 ;;
546fa279 753 mips-sgi-irix6* )
309daad2
RS
754 machine=iris4d opsys=irix6-0
755 NON_GNU_CPP=/lib/cpp
756 NON_GCC_TEST_OPTIONS=-32
546fa279 757 ;;
4ab83697 758 mips-sgi-irix5.[01]* )
9ec10b2f
DM
759 machine=iris4d opsys=irix5-0
760 ;;
4ab83697
RS
761 mips-sgi-irix5* | mips-sgi-irix* )
762 machine=iris4d opsys=irix5-2
9ec10b2f
DM
763 ;;
764
765 ## SONY machines
766 m68*-sony-bsd4.2* )
767 machine=news opsys=bsd4-2
768 ;;
769 m68*-sony-bsd4.3* )
770 machine=news opsys=bsd4-3
771 ;;
3d102c59 772 m68*-sony-newsos3* | m68*-sony-news3*)
9ec10b2f
DM
773 machine=news opsys=bsd4-3
774 ;;
3d102c59 775 mips-sony-bsd* | mips-sony-newsos4* | mips-sony-news4*)
9ec10b2f
DM
776 machine=news-risc opsys=bsd4-3
777 ;;
423ef6e8 778 mips-sony-newsos6* )
b48e4aeb 779 machine=news-r6 opsys=newsos6
423ef6e8 780 ;;
3d102c59 781 mips-sony-news* )
9ec10b2f
DM
782 machine=news-risc opsys=newsos5
783 ;;
784
785 ## Stride
786 m68*-stride-sysv* )
787 machine=stride opsys=usg5-2
788 ;;
789
790 ## Suns
b5b193a7 791 sparc-*-linux-gnu* | sparc64-*-linux-gnu* )
5ac83f86 792 machine=sparc opsys=gnu-linux
28d9bc0e
KH
793 ;;
794
c42b1767 795 *-sun-sunos* | *-sun-bsd* | *-sun-solaris* \
5ac83f86 796 | i[3456]86-*-solaris2* | i[3456]86-*-sunos5* | powerpc*-*-solaris2* \
c42b1767 797 | rs6000-*-solaris2*)
9ec10b2f
DM
798 case "${canonical}" in
799 m68*-sunos1* ) machine=sun1 ;;
800 m68*-sunos2* ) machine=sun2 ;;
801 m68* ) machine=sun3 ;;
5ac83f86
RS
802 i[3456]86-sun-sunos[34]* ) machine=sun386 ;;
803 i[3456]86-*-* ) machine=intel386 ;;
42326ef0 804 powerpcle* ) machine=powerpcle ;;
f7894e88 805 powerpc* | rs6000* ) machine=ibmrs6000 ;;
9ec10b2f
DM
806 sparc* ) machine=sparc ;;
807 * ) unported=yes ;;
808 esac
809 case "${canonical}" in
810 ## The Sun386 didn't get past 4.0.
5ac83f86 811 i[3456]86-*-sunos4 ) opsys=sunos4-0 ;;
9ec10b2f 812 *-sunos4.0* ) opsys=sunos4-0 ;;
0ff0179d 813 *-sunos4.1.[3-9]*noshare )
aac2257c
RS
814 ## This name is sunos413 instead of sunos4-1-3
815 ## to avoid a file name conflict on MSDOS.
816 opsys=sunos413
3d68df05
KH
817 NON_GNU_CPP=/usr/lib/cpp
818 NON_GCC_TEST_OPTIONS=-Bstatic
819 GCC_TEST_OPTIONS=-static
820 ;;
3e23af40
RS
821 *-sunos4.1.[3-9]* | *-sunos4shr*)
822 opsys=sunos4shr
823 NON_GNU_CPP=/usr/lib/cpp
824 ;;
3d68df05
KH
825 *-sunos4* | *-sunos )
826 opsys=sunos4-1
9ec10b2f
DM
827 NON_GCC_TEST_OPTIONS=-Bstatic
828 GCC_TEST_OPTIONS=-static
829 ;;
830 *-sunos5.3* | *-solaris2.3* )
831 opsys=sol2-3
832 NON_GNU_CPP=/usr/ccs/lib/cpp
833 ;;
834 *-sunos5.4* | *-solaris2.4* )
835 opsys=sol2-4
836 NON_GNU_CPP=/usr/ccs/lib/cpp
30457b4f 837 RANLIB="ar -ts"
9ec10b2f 838 ;;
2e567bad
KH
839 *-sunos5.5* | *-solaris2.5* )
840 opsys=sol2-5
841 NON_GNU_CPP=/usr/ccs/lib/cpp
30457b4f 842 RANLIB="ar -ts"
2e567bad 843 ;;
9ec10b2f 844 *-sunos5* | *-solaris* )
348e3a08 845 opsys=sol2-5
9ec10b2f
DM
846 NON_GNU_CPP=/usr/ccs/lib/cpp
847 ;;
848 * ) opsys=bsd4-2 ;;
849 esac
6e502e37
RS
850 ## Watch out for a compiler that we know will not work.
851 case "${canonical}" in
852 *-solaris* | *-sunos5* )
853 if [ "x$CC" = x/usr/ucb/cc ]; then
854 ## /usr/ucb/cc doesn't work;
855 ## we should find some other compiler that does work.
856 unset CC
857 fi
858 ;;
859 *) ;;
860 esac
9ec10b2f 861 ;;
5ab52d42 862 sparc-*-nextstep* )
19e45036 863 machine=sparc opsys=nextstep
5ab52d42 864 ;;
9ec10b2f
DM
865
866 ## Tadpole 68k
867 m68*-tadpole-sysv* )
868 machine=tad68k opsys=usg5-3
869 ;;
870
871 ## Tahoe machines
872 tahoe-tahoe-bsd4.2* )
873 machine=tahoe opsys=bsd4-2
874 ;;
875 tahoe-tahoe-bsd4.3* )
876 machine=tahoe opsys=bsd4-3
877 ;;
878
879 ## Tandem Integrity S2
880 mips-tandem-sysv* )
881 machine=tandem-s2 opsys=usg5-3
882 ;;
883
884 ## Tektronix XD88
885 m88k-tektronix-sysv3* )
886 machine=tekxd88 opsys=usg5-3
887 ;;
888
889 ## Tektronix 16000 box (6130?)
890 ns16k-tektronix-bsd* )
891 machine=ns16000 opsys=bsd4-2
892 ;;
893 ## Tektronix 4300
894 ## src/m/tek4300.h hints that this is a m68k machine.
895 m68*-tektronix-bsd* )
896 machine=tek4300 opsys=bsd4-3
897 ;;
898
899 ## Titan P2 or P3
900 ## We seem to have lost the machine-description file titan.h!
901 titan-titan-sysv* )
902 machine=titan opsys=usg5-3
903 ;;
c7f493fd 904
9ec10b2f
DM
905 ## Ustation E30 (SS5E)
906 m68*-unisys-uniplus* )
907 machine=ustation opsystem=unipl5-2
908 ;;
909
910 ## Vaxen.
911 vax-dec-* )
912 machine=vax
913 case "${canonical}" in
914 *-bsd4.1* ) opsys=bsd4-1 ;;
915 *-bsd4.2* | *-ultrix[0-3].* | *-ultrix4.0* ) opsys=bsd4-2 ;;
916 *-bsd4.3* | *-ultrix* ) opsys=bsd4-3 ;;
9ec10b2f
DM
917 *-sysv[01]* | *-sysvr[01]* ) opsys=usg5-0 ;;
918 *-sysv2* | *-sysvr2* ) opsys=usg5-2 ;;
919 *-vms* ) opsys=vms ;;
920 * ) unported=yes
921 esac
922 ;;
923
924 ## Whitechapel MG1
925 ns16k-whitechapel-* )
926 machine=mg1
927 ## We don't know what sort of OS runs on these; we'll let the
928 ## operating system guessing code below try.
929 ;;
930
931 ## Wicat
932 m68*-wicat-sysv* )
933 machine=wicat opsys=usg5-2
934 ;;
935
936 ## Intel 386 machines where we don't care about the manufacturer
5ac83f86 937 i[3456]86-*-* )
9ec10b2f
DM
938 machine=intel386
939 case "${canonical}" in
940 *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;;
941 *-isc2.2* ) opsys=isc2-2 ;;
942 *-isc4.0* ) opsys=isc4-0 ;;
135c9ca6
RS
943 *-isc4.* ) opsys=isc4-1
944 GCC_TEST_OPTIONS=-posix
945 NON_GCC_TEST_OPTIONS=-Xp
946 ;;
9ec10b2f
DM
947 *-isc* ) opsys=isc3-0 ;;
948 *-esix5* ) opsys=esix5r4; NON_GNU_CPP=/usr/lib/cpp ;;
949 *-esix* ) opsys=esix ;;
950 *-xenix* ) opsys=xenix ;;
5ac83f86 951 *-linux-gnu* ) opsys=gnu-linux ;;
9ec10b2f 952 *-sco3.2v4* ) opsys=sco4 ; NON_GNU_CPP=/lib/cpp ;;
5ac83f86
RS
953 *-sco3.2v5* ) opsys=sco5
954 NON_GNU_CPP=/lib/cpp
955 # Prevent -belf from being passed to $CPP.
956 # /lib/cpp does not accept it.
1e60bcf8 957 OVERRIDE_CPPFLAGS=" "
5ac83f86 958 ;;
0e6d70d5 959 *-sysv4.2uw* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
9ec10b2f
DM
960 *-386bsd* ) opsys=386bsd ;;
961 *-freebsd* ) opsys=freebsd ;;
5ab52d42 962 *-nextstep* ) opsys=nextstep ;;
9ec10b2f
DM
963 ## Otherwise, we'll fall through to the generic opsys code at the bottom.
964 esac
965 ;;
966
287f502c 967 ## m68k Linux-based GNU system
5ac83f86
RS
968 m68k-*-linux-gnu* )
969 machine=m68k opsys=gnu-linux
e1fd57e3
RS
970 ;;
971
287f502c
RS
972 ## Mips Linux-based GNU system
973 mips-*-linux-gnu* )
974 machine=mips opsys=gnu-linux
975 ;;
976
eded5b68
RS
977 ## UXP/DS
978 sparc-fujitsu-sysv4* )
979 machine=sparc opsys=uxpds
980 NON_GNU_CPP=/usr/ccs/lib/cpp
981 RANLIB="ar -ts"
982 ;;
983
5dbb45f2
KH
984 ## UXP/V
985 f301-fujitsu-uxpv4.1)
986 machine=f301 opsys=uxpv
987 ;;
988
9ec10b2f
DM
989 * )
990 unported=yes
991 ;;
992esac
993
994### If the code above didn't choose an operating system, just choose
995### an operating system based on the configuration name. You really
996### only want to use this when you have no idea what the right
997### operating system is; if you know what operating systems a machine
998### runs, it's cleaner to make it explicit in the case statement
999### above.
1000if test x"${opsys}" = x; then
1001 case "${canonical}" in
1002 *-gnu* ) opsys=gnu ;;
1003 *-bsd4.[01] ) opsys=bsd4-1 ;;
1004 *-bsd4.2 ) opsys=bsd4-2 ;;
1005 *-bsd4.3 ) opsys=bsd4-3 ;;
1006 *-sysv0 | *-sysvr0 ) opsys=usg5-0 ;;
1007 *-sysv2 | *-sysvr2 ) opsys=usg5-2 ;;
1008 *-sysv2.2 | *-sysvr2.2 ) opsys=usg5-2-2 ;;
5ab52d42 1009 *-sysv3* | *-sysvr3* ) opsys=usg5-3 ;;
66a96cff 1010 *-sysv4.2uw* ) opsys=unixware ;;
5ab52d42 1011 *-sysv4.1* | *-sysvr4.1* )
9ec10b2f
DM
1012 NON_GNU_CPP=/usr/lib/cpp
1013 opsys=usg5-4 ;;
5ab52d42 1014 *-sysv4.[2-9]* | *-sysvr4.[2-9]* )
b63df577 1015 if [ x$NON_GNU_CPP = x ]; then
16831d8c
RS
1016 if [ -f /usr/ccs/lib/cpp ]; then
1017 NON_GNU_CPP=/usr/ccs/lib/cpp
1018 else
1019 NON_GNU_CPP=/lib/cpp
1020 fi
b63df577
RS
1021 fi
1022 opsys=usg5-4-2 ;;
5ab52d42 1023 *-sysv4* | *-sysvr4* ) opsys=usg5-4 ;;
9ec10b2f
DM
1024 * )
1025 unported=yes
1026 ;;
1027 esac
1028fi
1029
30457b4f
RS
1030if test "x$RANLIB" = x; then
1031 RANLIB=ranlib
1032fi
1033
9ec10b2f
DM
1034changequote([, ])dnl
1035
1036if test $unported = yes; then
1037 AC_MSG_ERROR([Emacs hasn't been ported to \`${canonical}' systems.
1038Check \`etc/MACHINES' for recognized configuration names.])
1039fi
1040
1041machfile="m/${machine}.h"
1042opsysfile="s/${opsys}.h"
1043
1044
1045#### Choose a compiler.
1046test -n "$CC" && cc_specified=yes
1047
5ab52d42
RS
1048# Save the value of CFLAGS that the user specified.
1049SPECIFIED_CFLAGS="$CFLAGS"
1050
9ec10b2f
DM
1051case ${with_gcc} in
1052 "yes" ) CC="gcc" GCC=yes ;;
6e0dc84a 1053 "no" ) : ${CC=cc} ;;
9ec10b2f
DM
1054 * ) AC_PROG_CC
1055esac
1056
1057# On Suns, sometimes $CPP names a directory.
1058if test -n "$CPP" && test -d "$CPP"; then
1059 CPP=
1060fi
1061
1062#### Some systems specify a CPP to use unless we are using GCC.
1063#### Now that we know whether we are using GCC, we can decide whether
1064#### to use that one.
1065if test "x$NON_GNU_CPP" != x && test x$GCC != xyes && test "x$CPP" = x
1066then
1067 CPP="$NON_GNU_CPP"
1068fi
1069
1070#### Some systems specify a CC to use unless we are using GCC.
1071#### Now that we know whether we are using GCC, we can decide whether
1072#### to use that one.
1073if test "x$NON_GNU_CC" != x && test x$GCC != xyes &&
1074 test x$cc_specified != xyes
1075then
1076 CC="$NON_GNU_CC"
1077fi
1078
1079if test x$GCC = xyes && test "x$GCC_TEST_OPTIONS" != x
1080then
1081 CC="$CC $GCC_TEST_OPTIONS"
c7f493fd 1082fi
9ec10b2f
DM
1083
1084if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x
1085then
1086 CC="$CC $NON_GCC_TEST_OPTIONS"
c7f493fd 1087fi
9ec10b2f 1088
1bc5a004
RS
1089if test x$GCC = xyes && test "x$GCC_LINK_TEST_OPTIONS" != x
1090then
1091 ac_link="$ac_link $GCC_LINK_TEST_OPTIONS"
1092fi
1093
1094if test x$GCC = x && test "x$NON_GCC_LINK_TEST_OPTIONS" != x
1095then
1096 ac_link="$ac_link $NON_GCC_LINK_TEST_OPTIONS"
1097fi
1098
9ec10b2f
DM
1099#### Some other nice autoconf tests. If you add a test here which
1100#### should make an entry in src/config.h, don't forget to add an
1101#### #undef clause to src/config.h.in for autoconf to modify.
1102
1103dnl checks for programs
6e0dc84a 1104AC_PROG_LN_S
9ec10b2f
DM
1105AC_PROG_CPP
1106AC_PROG_INSTALL
1107AC_PROG_YACC
1108
3cd69289
DM
1109dnl checks for Unix variants
1110AC_AIX
1111
b412189c 1112# Sound support for GNU/Linux and the free BSDs.
8e5f5811 1113AC_CHECK_HEADERS(machine/soundcard.h sys/soundcard.h)
b412189c 1114
9ec10b2f 1115dnl checks for header files
13a9e2f5 1116AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h termcap.h)
6e0dc84a
DM
1117AC_HEADER_STDC
1118AC_HEADER_TIME
1119AC_DECL_SYS_SIGLIST
9ec10b2f 1120
3cd69289 1121dnl Some systems have utime.h but don't declare the struct anyplace.
fd0a060b 1122AC_CACHE_CHECK(for struct utimbuf, emacs_cv_struct_utimbuf,
3cd69289
DM
1123AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
1124#include <sys/time.h>
1125#include <time.h>
1126#else
1127#ifdef HAVE_SYS_TIME_H
1128#include <sys/time.h>
1129#else
1130#include <time.h>
1131#endif
1132#endif
1133#ifdef HAVE_UTIME_H
1134#include <utime.h>
1135#endif], [static struct utimbuf x; x.actime = x.modtime;],
fd0a060b
AS
1136 emacs_cv_struct_utimbuf=yes, emacs_cv_struct_utimbuf=no))
1137if test $emacs_cv_struct_utimbuf = yes; then
1138 AC_DEFINE(HAVE_STRUCT_UTIMBUF)
1139fi
3cd69289 1140
9ec10b2f 1141dnl checks for typedefs
6e0dc84a 1142AC_TYPE_SIGNAL
9ec10b2f 1143
fd0a060b 1144AC_CACHE_CHECK(for struct timeval, emacs_cv_struct_timeval,
3cd69289
DM
1145AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
1146#include <sys/time.h>
1147#include <time.h>
1148#else
1149#ifdef HAVE_SYS_TIME_H
1150#include <sys/time.h>
1151#else
1152#include <time.h>
1153#endif
1154#endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
fd0a060b
AS
1155 emacs_cv_struct_timeval=yes, emacs_cv_struct_timeval=no))
1156HAVE_TIMEVAL=$emacs_cv_struct_timeval
1157if test $emacs_cv_struct_timeval = yes; then
1158 AC_DEFINE(HAVE_TIMEVAL)
1159fi
3cd69289 1160
9ec10b2f
DM
1161dnl checks for structure members
1162AC_STRUCT_TM
6e0dc84a 1163AC_STRUCT_TIMEZONE
9ec10b2f
DM
1164
1165dnl checks for compiler characteristics
6e0dc84a 1166AC_C_CONST
9ec10b2f
DM
1167
1168dnl check for Make feature
6e0dc84a 1169AC_PROG_MAKE_SET
9ec10b2f
DM
1170
1171dnl checks for operating system services
6e0dc84a 1172AC_SYS_LONG_FILE_NAMES
9ec10b2f
DM
1173
1174#### Choose a window system.
9ec10b2f 1175
6e0dc84a 1176AC_PATH_X
530ce502
DM
1177if test "$no_x" = yes; then
1178 window_system=none
1179else
1180 window_system=x11
1181fi
9ec10b2f 1182
ea199426 1183if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
00ac3ffc
KH
1184 LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
1185 LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
66d736a9
RS
1186 x_default_search_path=""
1187 for x_library in `echo ${x_libraries} | sed -e "s/:/ /g"`; do
54abe472
RS
1188 x_search_path="${x_library}/X11/%L/%T/%N%C%S:\
1189${x_library}/X11/%L/%T/%N%C%S:${x_libary}/X11/%l/%T/%N%C%S:\
1190${x_library}/X11/%T/%N%C%S:${x_library}/X11/%L/%T/%N%S:\
1191${x_library}/X11/%l/%T/%N%S:${x_library}/X11/%T/%N%S"
66d736a9
RS
1192 if test x"${x_default_search_path}" = x; then
1193 x_default_search_path=${x_search_path}
1194 else
1195 x_default_search_path="${x_search_path}:${x_default_search_path}"
1196 fi
1197 done
ea199426
DM
1198fi
1199if test "${x_includes}" != NONE && test -n "${x_includes}"; then
cc6476f6 1200 C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"`
ea199426 1201fi
9ec10b2f 1202
8dbeb353
DM
1203if test x"${x_includes}" = x; then
1204 bitmapdir=/usr/include/X11/bitmaps
3cd69289 1205else
908ff139 1206 # accumulate include directories that have X11 bitmap subdirectories
cc6476f6
KH
1207 bmd_acc="dummyval"
1208 for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do
1209 if test -d "${bmd}/X11/bitmaps"; then
1210 bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps"
1211 elif test -d "${bmd}/bitmaps"; then
1212 bmd_acc="${bmd_acc}:${bmd}/bitmaps"
1213 fi
1214 done
1215 if test ${bmd_acc} != "dummyval"; then
1216 bitmapdir=`echo ${bmd_acc} | sed -e "s/^dummyval://"`
1217 fi
3cd69289
DM
1218fi
1219
9ec10b2f
DM
1220case "${window_system}" in
1221 x11 )
1222 HAVE_X_WINDOWS=yes
1223 HAVE_X11=yes
1224 case "${with_x_toolkit}" in
c7f493fd
RM
1225 athena | lucid ) USE_X_TOOLKIT=LUCID ;;
1226 motif ) USE_X_TOOLKIT=MOTIF ;;
1227dnl open-look ) USE_X_TOOLKIT=OPEN_LOOK ;;
4be21f66
KH
1228 no ) USE_X_TOOLKIT=none ;;
1229dnl If user did not say whether to use a toolkit,
1230dnl make this decision later: use the toolkit if we have X11R5 or newer.
1231 * ) USE_X_TOOLKIT=maybe ;;
9ec10b2f
DM
1232 esac
1233 ;;
9ec10b2f
DM
1234 none )
1235 HAVE_X_WINDOWS=no
1236 HAVE_X11=no
1237 USE_X_TOOLKIT=none
1238 ;;
1239esac
9ec10b2f
DM
1240
1241### If we're using X11, we should use the X menu package.
08741ba9 1242HAVE_MENUS=no
9ec10b2f 1243case ${HAVE_X11} in
08741ba9 1244 yes ) HAVE_MENUS=yes ;;
9ec10b2f 1245esac
b412189c 1246
b95c8e7e
RS
1247if test "${opsys}" = "hpux9"; then
1248 case "${x_libraries}" in
1249 *X11R4* )
1250 opsysfile="s/hpux9-x11r4.h"
1251 ;;
1252 esac
1253fi
1254
1255if test "${opsys}" = "hpux9shr"; then
1256 case "${x_libraries}" in
1257 *X11R4* )
1258 opsysfile="s/hpux9shxr4.h"
1259 ;;
1260 esac
1261fi
1262
9ec10b2f
DM
1263#### Extract some information from the operating system and machine files.
1264
1265AC_CHECKING([the machine- and system-dependent files to find out
1266 - which libraries the lib-src programs will want, and
1267 - whether the GNU malloc routines are usable])
1268
1269### First figure out CFLAGS (which we use for running the compiler here)
1270### and REAL_CFLAGS (which we use for real compilation).
1271### The two are the same except on a few systems, where they are made
1272### different to work around various lossages. For example,
5ac83f86 1273### GCC 2.5 on GNU/Linux needs them to be different because it treats -g
9ec10b2f
DM
1274### as implying static linking.
1275
1276### If the CFLAGS env var is specified, we use that value
1277### instead of the default.
1278
1279### It's not important that this name contain the PID; you can't run
1280### two configures in the same directory and have anything work
1281### anyway.
1282tempcname="conftest.c"
1283
1284echo '
1285#include "'${srcdir}'/src/'${opsysfile}'"
1286#include "'${srcdir}'/src/'${machfile}'"
1287#ifndef LIBS_MACHINE
1288#define LIBS_MACHINE
1289#endif
1290#ifndef LIBS_SYSTEM
1291#define LIBS_SYSTEM
1292#endif
1293#ifndef C_SWITCH_SYSTEM
1294#define C_SWITCH_SYSTEM
1295#endif
1296#ifndef C_SWITCH_MACHINE
1297#define C_SWITCH_MACHINE
1298#endif
1299configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
1300configure___ c_switch_system=C_SWITCH_SYSTEM
1301configure___ c_switch_machine=C_SWITCH_MACHINE
1302
1303#ifndef LIB_X11_LIB
1304#define LIB_X11_LIB -lX11
1305#endif
1306
1307#ifndef LIBX11_MACHINE
1308#define LIBX11_MACHINE
1309#endif
1310
1311#ifndef LIBX11_SYSTEM
1312#define LIBX11_SYSTEM
1313#endif
1314configure___ LIBX=LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM
1315
1316#ifdef UNEXEC
1317configure___ unexec=UNEXEC
1318#else
1319configure___ unexec=unexec.o
1320#endif
1321
1322#ifdef SYSTEM_MALLOC
1323configure___ system_malloc=yes
1324#else
1325configure___ system_malloc=no
1326#endif
1327
1328#ifndef C_DEBUG_SWITCH
1329#define C_DEBUG_SWITCH -g
1330#endif
1331
1332#ifndef C_OPTIMIZE_SWITCH
1333#define C_OPTIMIZE_SWITCH -O
1334#endif
1335
fd402b2a
RS
1336#ifndef LD_SWITCH_MACHINE
1337#define LD_SWITCH_MACHINE
1338#endif
1339
1340#ifndef LD_SWITCH_SYSTEM
1341#define LD_SWITCH_SYSTEM
1342#endif
1343
f8a9bac9
RS
1344#ifndef LD_SWITCH_X_SITE_AUX
1345#define LD_SWITCH_X_SITE_AUX
1346#endif
1347
fd402b2a 1348configure___ ld_switch_system=LD_SWITCH_SYSTEM
f8a9bac9 1349configure___ ld_switch_machine=LD_SWITCH_MACHINE
fd402b2a 1350
9ec10b2f
DM
1351#ifdef THIS_IS_CONFIGURE
1352
1353/* Get the CFLAGS for tests in configure. */
1354#ifdef __GNUC__
4e90a7d5 1355configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}'
9ec10b2f 1356#else
4e90a7d5 1357configure___ CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
9ec10b2f
DM
1358#endif
1359
1360#else /* not THIS_IS_CONFIGURE */
1361
1362/* Get the CFLAGS for real compilation. */
1363#ifdef __GNUC__
4e90a7d5 1364configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}'
9ec10b2f 1365#else
4e90a7d5 1366configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
9ec10b2f
DM
1367#endif
1368
1369#endif /* not THIS_IS_CONFIGURE */
1370' > ${tempcname}
1371
1372# The value of CPP is a quoted variable reference, so we need to do this
1373# to get its actual value...
1374CPP=`eval "echo $CPP"`
1375changequote(, )dnl
1376eval `${CPP} -Isrc ${tempcname} \
1377 | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
5ab52d42 1378if test "x$SPECIFIED_CFLAGS" = x; then
9ec10b2f
DM
1379 eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \
1380 | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
1381else
1382 REAL_CFLAGS="$CFLAGS"
1383fi
1384changequote([, ])dnl
1385rm ${tempcname}
1386
fd402b2a
RS
1387ac_link="$ac_link $ld_switch_machine $ld_switch_system"
1388
9ec10b2f
DM
1389### Compute the unexec source name from the object name.
1390UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`"
1391
1392# Do the opsystem or machine files prohibit the use of the GNU malloc?
1393# Assume not, until told otherwise.
1394GNU_MALLOC=yes
b05a95cb
RS
1395doug_lea_malloc=yes
1396AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no)
1397AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
fd0a060b
AS
1398AC_CACHE_CHECK(whether __after_morecore_hook exists,
1399 emacs_cv_var___after_morecore_hook,
3c0c48a7 1400AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
fd0a060b
AS
1401 emacs_cv_var___after_morecore_hook=yes,
1402 emacs_cv_var___after_morecore_hook=no))
1403if test $emacs_cv_var___after_morecore_hook = no; then
1404 doug_lea_malloc=no
1405fi
8cd88038 1406if test "${system_malloc}" = "yes"; then
9ec10b2f
DM
1407 GNU_MALLOC=no
1408 GNU_MALLOC_reason="
b05a95cb 1409 (The GNU allocators don't work with this system configuration.)"
9ec10b2f 1410fi
8cd88038
RS
1411if test "$doug_lea_malloc" = "yes" ; then
1412 if test "$GNU_MALLOC" = yes ; then
1413 GNU_MALLOC_reason="
0855015c 1414 (Using Doug Lea's new malloc from the GNU C Library.)"
8cd88038
RS
1415 fi
1416 AC_DEFINE(DOUG_LEA_MALLOC)
1417fi
9ec10b2f
DM
1418
1419if test x"${REL_ALLOC}" = x; then
1420 REL_ALLOC=${GNU_MALLOC}
1421fi
1422
1423LISP_FLOAT_TYPE=yes
1424
1425
1426#### Add the libraries to LIBS and check for some functions.
1427
5ac83f86 1428if test x"${OVERRIDE_CPPFLAGS}" != x; then
1e60bcf8 1429 CPPFLAGS="${OVERRIDE_CPPFLAGS}"
5ac83f86
RS
1430else
1431 CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
1432fi
1433
52c76122 1434LIBS="$libsrc_libs $LIBS"
9ec10b2f
DM
1435
1436dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
1437dnl and also adds -ldnet to LIBS, which Autoconf uses for checks.
1438AC_CHECK_LIB(dnet, dnet_ntoa)
1439dnl This causes -lresolv to get used in subsequent tests,
1440dnl which causes failures on some systems such as HPUX 9.
1441dnl AC_CHECK_LIB(resolv, gethostbyname)
1442
1443dnl FIXME replace main with a function we actually want from this library.
1444AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
1445
027dae63 1446AC_CHECK_LIB(pthreads, cma_open)
1d94ee28 1447
5d4245a6 1448AC_MSG_CHECKING(for XFree86 in /usr/X386)
9ec10b2f 1449if test -d /usr/X386/include; then
9ec10b2f 1450 HAVE_XFREE386=yes
6e0dc84a 1451 : ${C_SWITCH_X_SITE="-I/usr/X386/include"}
9ec10b2f 1452else
6e0dc84a 1453 HAVE_XFREE386=no
9ec10b2f 1454fi
6e0dc84a 1455AC_MSG_RESULT($HAVE_XFREE386)
9ec10b2f 1456
509fccc3
RS
1457# Change CFLAGS temporarily so that C_SWITCH_X_SITE gets used
1458# for the tests that follow. We set it back to REAL_CFLAGS later on.
9ec10b2f
DM
1459
1460if test "${HAVE_X11}" = "yes"; then
1461 DEFS="$C_SWITCH_X_SITE $DEFS"
96c20358
RS
1462 LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE"
1463 LIBS="$LIBX $LIBS"
9ec10b2f 1464 CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
509fccc3 1465
617a496c
RS
1466 # On Solaris, arrange for LD_RUN_PATH to point to the X libraries for tests.
1467 # This is handled by LD_SWITCH_X_SITE_AUX during the real build,
1468 # but it's more convenient here to set LD_RUN_PATH
1469 # since this also works on hosts that don't understand LD_SWITCH_X_SITE_AUX.
1470 if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
1471 LD_RUN_PATH=$x_libraries${LD_RUN_PATH+:}$LD_RUN_PATH
1472 export LD_RUN_PATH
1473 fi
1474
5ac83f86 1475 if test "${opsys}" = "gnu-linux"; then
3bbe016c 1476 AC_MSG_CHECKING(whether X on GNU/Linux needs -b to link)
509fccc3
RS
1477 AC_TRY_LINK([],
1478 [XOpenDisplay ("foo");],
3bbe016c
KH
1479 [xlinux_first_failure=no],
1480 [xlinux_first_failure=yes])
1481 if test "${xlinux_first_failure}" = "yes"; then
509fccc3
RS
1482 OLD_LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE"
1483 OLD_C_SWITCH_X_SITE="$C_SWITCH_X_SITE"
1484 OLD_CPPFLAGS="$CPPFLAGS"
1485 OLD_LIBS="$LIBS"
1486 LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout"
1487 C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout"
1488 CPPFLAGS="$CPPFLAGS -b i486-linuxaout"
1489 LIBS="$LIBS -b i486-linuxaout"
1490 AC_TRY_LINK([],
1491 [XOpenDisplay ("foo");],
3bbe016c
KH
1492 [xlinux_second_failure=no],
1493 [xlinux_second_failure=yes])
1494 if test "${xlinux_second_failure}" = "yes"; then
509fccc3
RS
1495 # If we get the same failure with -b, there is no use adding -b.
1496 # So take it out. This plays safe.
1497 LD_SWITCH_X_SITE="$OLD_LD_SWITCH_X_SITE"
1498 C_SWITCH_X_SITE="$OLD_C_SWITCH_X_SITE"
1499 CPPFLAGS="$OLD_CPPFLAGS"
1500 LIBS="$OLD_LIBS"
1501 AC_MSG_RESULT(no)
1502 else
1503 AC_MSG_RESULT(yes)
1504 fi
1505 else
1506 AC_MSG_RESULT(no)
1507 fi
1508 fi
1509
6e0dc84a 1510 AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
9ec10b2f
DM
1511XScreenNumberOfScreen XSetWMProtocols)
1512fi
1513
08741ba9 1514if test "${window_system}" = "x11"; then
4be21f66 1515 AC_MSG_CHECKING(X11 version 6)
fd0a060b 1516 AC_CACHE_VAL(emacs_cv_x11_version_6,
08741ba9
RS
1517 AC_TRY_LINK([#include <X11/Xlib.h>],
1518[#if XlibSpecificationRelease < 6
1519fail;
1520#endif
fd0a060b
AS
1521], emacs_cv_x11_version_6=yes, emacs_cv_x11_version_6=no))
1522 if test $emacs_cv_x11_version_6 = yes; then
1523 AC_MSG_RESULT(6 or newer)
1524 AC_DEFINE(HAVE_X11R6)
1525 else
1526 AC_MSG_RESULT(before 6)
1527 fi
08741ba9
RS
1528fi
1529
f7894e88 1530if test "${window_system}" = "x11"; then
4be21f66 1531 AC_MSG_CHECKING(X11 version 5)
fd0a060b 1532 AC_CACHE_VAL(emacs_cv_x11_version_5,
4be21f66
KH
1533 AC_TRY_LINK([#include <X11/Xlib.h>],
1534[#if XlibSpecificationRelease < 5
1535fail;
1536#endif
fd0a060b
AS
1537], emacs_cv_x11_version_5=yes, emacs_cv_x11_version_5=no))
1538 if test $emacs_cv_x11_version_5 = yes; then
1539 AC_MSG_RESULT(5 or newer)
f7894e88 1540 HAVE_X11R5=yes
fd0a060b
AS
1541 AC_DEFINE(HAVE_X11R5)
1542 else
f7894e88 1543 HAVE_X11R5=no
fd0a060b
AS
1544 AC_MSG_RESULT(before 5)
1545 fi
f7894e88
RS
1546fi
1547
bce97856
RS
1548dnl Do not put whitespace before the #include statements below.
1549dnl Older compilers (eg sunos4 cc) choke on it.
f7894e88
RS
1550if test x"${USE_X_TOOLKIT}" = xmaybe; then
1551 if test x"${HAVE_X11R5}" = xyes; then
1552 AC_MSG_CHECKING(X11 version 5 with Xaw)
fd0a060b 1553 AC_CACHE_VAL(emacs_cv_x11_version_5_with_xaw,
f7894e88 1554 AC_TRY_LINK([
bce97856
RS
1555#include <X11/Intrinsic.h>
1556#include <X11/Xaw/Simple.h>],
f7894e88 1557 [],
fd0a060b
AS
1558 emacs_cv_x11_version_5_with_xaw=yes,
1559 emacs_cv_x11_version_5_with_xaw=no))
1560 if test $emacs_cv_x11_version_5_with_xaw = yes; then
1561 AC_MSG_RESULT([5 or newer, with Xaw; use toolkit by default])
1562 USE_X_TOOLKIT=LUCID
1563 else
1564 AC_MSG_RESULT(before 5 or no Xaw; do not use toolkit by default)
1565 USE_X_TOOLKIT=none
1566 fi
f7894e88
RS
1567 else
1568 USE_X_TOOLKIT=none
1569 fi
4be21f66
KH
1570fi
1571
1572X_TOOLKIT_TYPE=$USE_X_TOOLKIT
1573
9ec10b2f
DM
1574if test "${USE_X_TOOLKIT}" != "none"; then
1575 AC_MSG_CHECKING(X11 toolkit version)
fd0a060b 1576 AC_CACHE_VAL(emacs_cv_x11_toolkit_version_6,
6e0dc84a 1577 AC_TRY_LINK([#include <X11/Intrinsic.h>],
9ec10b2f
DM
1578[#if XtSpecificationRelease < 6
1579fail;
1580#endif
fd0a060b
AS
1581], emacs_cv_x11_toolkit_version_6=yes, emacs_cv_x11_toolkit_version_6=no))
1582 HAVE_X11XTR6=$emacs_cv_x11_toolkit_version_6
1583 if test $emacs_cv_x11_toolkit_version_6 = yes; then
1584 AC_MSG_RESULT(6 or newer)
1585 AC_DEFINE(HAVE_X11XTR6)
1586 else
1587 AC_MSG_RESULT(before 6)
1588 fi
6aad10e4
RS
1589
1590dnl If using toolkit, check whether libXmu.a exists.
1591dnl tranle@intellicorp.com says libXmu.a can need XtMalloc in libXt.a to link.
1592 OLDLIBS="$LIBS"
fcc303f4
RS
1593 if test x$HAVE_X11XTR6 = xyes; then
1594 LIBS="-lXt -lSM -lICE $LIBS"
1595 else
1596 LIBS="-lXt $LIBS"
1597 fi
6aad10e4 1598 AC_CHECK_LIB(Xmu, XmuConvertStandardSelection)
6e502e37 1599 LIBS="$OLDLIBS"
9ec10b2f
DM
1600fi
1601
66d736a9 1602if test "${USE_X_TOOLKIT}" = "MOTIF"; then
fd0a060b 1603 AC_CACHE_CHECK(for Motif version 2.1, emacs_cv_motif_version_2_1,
66d736a9
RS
1604 AC_TRY_COMPILE([#include <Xm/Xm.h>],
1605 [#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1)
1606int x = 5;
1607#else
1608Motif version prior to 2.1.
1609#endif],
fd0a060b
AS
1610 emacs_cv_motif_version_2_1=yes, emacs_cv_motif_version_2_1=no))
1611 HAVE_MOTIF_2_1=$emacs_cv_motif_version_2_1
1612 if test $emacs_cv_motif_version_2_1 = yes; then
1613 AC_DEFINE(HAVE_MOTIF_2_1)
03e8ce6a 1614 AC_CHECK_LIB(Xp, XpCreateContext)
fd0a060b 1615 fi
66d736a9
RS
1616fi
1617
620fdfdf
RS
1618### Is -lXaw3d available?
1619HAVE_XAW3D=no
1620if test "${HAVE_X11}" = "yes"; then
1621 if test "${USE_X_TOOLKIT}" != "none"; then
1622 old_c_flags="${CFLAGS}"
1623 CFLAGS="${LD_SWITCH_X_SITE}"
1624 AC_CHECK_HEADER(X11/Xaw3d/Scrollbar.h,
1625 AC_CHECK_LIB(Xaw3d, XawScrollbarSetThumb, HAVE_XAW3D=yes, , -lX11))
1626 CFLAGS="${old_c_flags}"
1627
1628 if test "${HAVE_XAW3D}" = "yes"; then
1629 AC_DEFINE(HAVE_XAW3D)
1630 fi
1631 fi
1632fi
1633
0be97a72
GM
1634dnl Use toolkit scroll bars if configured for X toolkit and either
1635dnl using Motif or Xaw3d is available, and unless
1636dnl --with-toolkit-scroll-bars=no was specified.
1637
1638USE_TOOLKIT_SCROLL_BARS=no
1639if test "${with_toolkit_scroll_bars}" != "no"; then
1640 if test "${USE_X_TOOLKIT}" != "none"; then
1641 if test "${USE_X_TOOLKIT}" = "MOTIF"; then
1642 AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
1643 HAVE_XAW3D=no
1644 USE_TOOLKIT_SCROLL_BARS=yes
1645 elif test "${HAVE_XAW3D}" = "yes"; then
1646 AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
1647 USE_TOOLKIT_SCROLL_BARS=yes
1648 fi
1649 fi
1650fi
1651
620fdfdf
RS
1652### Use -lXpm if available, unless `--with-xpm=no'.
1653HAVE_XPM=no
1654if test "${HAVE_X11}" = "yes"; then
1655 if test "${with_xpm}" != "no"; then
1656 old_c_flags="${CFLAGS}"
1657 CFLAGS="${LD_SWITCH_X_SITE}"
1658 AC_CHECK_HEADER(X11/xpm.h,
1659 AC_CHECK_LIB(Xpm, XpmReadFileToPixmap, HAVE_XPM=yes, , -lX11))
1660 CFLAGS="${old_c_flags}"
1661 fi
1662
1663 if test "${HAVE_XPM}" = "yes"; then
1664 AC_DEFINE(HAVE_XPM)
1665 fi
1666fi
1667
1668### Use -ljpeg if available, unless `--with-jpeg=no'.
1669HAVE_JPEG=no
1670if test "${HAVE_X11}" = "yes"; then
1671 if test "${with_jpeg}" != "no"; then
1672 old_c_flags="${CFLAGS}"
1673 CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}"
1674 AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes, , -lX11)
1675 CFLAGS="${old_c_flags}"
1676 fi
1677
1678 if test "${HAVE_JPEG}" = "yes"; then
1679 AC_DEFINE(HAVE_JPEG)
1680 fi
1681fi
1682
1683### Use -lpng if available, unless `--with-png=no'.
1684HAVE_PNG=no
1685if test "${HAVE_X11}" = "yes"; then
1686 if test "${with_png}" != "no"; then
1687 old_c_flags="${CFLAGS}"
1688 CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}"
1689 AC_CHECK_HEADER(png.h,
1690 AC_CHECK_LIB(png, png_set_expand, HAVE_PNG=yes, , -lX11 -lz -lm))
1691 CFLAGS="${old_c_flags}"
1692 fi
1693
1694 if test "${HAVE_PNG}" = "yes"; then
1695 AC_DEFINE(HAVE_PNG)
1696 fi
1697fi
1698
1699### Use -ltiff if available, unless `--with-tiff=no'.
1700HAVE_TIFF=no
1701if test "${HAVE_X11}" = "yes"; then
1702 if test "${with_tiff}" != "no"; then
1703 old_c_flags="${CFLAGS}"
1704 CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}"
1705 AC_CHECK_HEADER(tiffio.h,
0be97a72 1706 AC_CHECK_LIB(tiff, TIFFGetVersion, HAVE_TIFF=yes, , -lX11 -lm))
620fdfdf
RS
1707 CFLAGS="${old_c_flags}"
1708 fi
1709
1710 if test "${HAVE_TIFF}" = "yes"; then
1711 AC_DEFINE(HAVE_TIFF)
1712 fi
1713fi
1714
1715### Use -lgif if available, unless `--with-gif=no'.
1716HAVE_GIF=no
1717if test "${HAVE_X11}" = "yes"; then
1718 if test "${with_gif}" != "no"; then
1719 old_c_flags="${CFLAGS}"
1720 CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}"
1721 AC_CHECK_HEADER(gif_lib.h,
1722 AC_CHECK_LIB(ungif, DGifOpenFileName, HAVE_GIF=yes, , -lX11))
1723 CFLAGS="${old_c_flags}"
1724 fi
1725
1726 if test "${HAVE_GIF}" = "yes"; then
1727 AC_DEFINE(HAVE_GIF)
1728 fi
1729fi
1730
9ec10b2f 1731# If netdb.h doesn't declare h_errno, we must declare it by hand.
fd0a060b
AS
1732AC_CACHE_CHECK(whether netdb declares h_errno,
1733 emacs_cv_netdb_declares_h_errno,
6e0dc84a 1734AC_TRY_LINK([#include <netdb.h>],
01345308 1735 [return h_errno;],
fd0a060b
AS
1736 emacs_cv_netdb_declares_h_errno=yes, emacs_cv_netdb_declares_h_errno=no))
1737if test $emacs_cv_netdb_declares_h_errno = yes; then
1738 AC_DEFINE(HAVE_H_ERRNO)
1739fi
9ec10b2f 1740
6e0dc84a 1741AC_FUNC_ALLOCA
9ec10b2f 1742
f6e8adea 1743# fmod, logb, and frexp are found in -lm on most systems.
e468fb38 1744# On HPUX 9.01, -lm does not contain logb, so check for sqrt.
e6fd9047 1745AC_CHECK_LIB(m, sqrt)
e6fd9047 1746
4e4db900 1747# Check for mail-locking functions in a "mail" library
5ad9ac92
DL
1748AC_CHECK_LIB(mail, maillock)
1749dnl Debian, at least:
1750dnl AC_CHECK_LIB(lockfile, maillock, [AC_DEFINE(HAVE_LIBMAIL)])
1751AC_CHECK_LIB(lockfile, maillock)
1752# If we have the shared liblockfile, assume we must use it for mail
1753# locking (e.g. Debian). If we couldn't link against liblockfile
1754# (no liblockfile.a installed), ensure that we don't need to.
1755if test "$ac_cv_lib_lockfile_maillock" = no; then
1756 dnl This works for files generally, not just executables.
1757 dnl Should we look elsewhere for it? Maybe examine /etc/ld.so.conf?
1758 AC_CHECK_PROG(liblockfile, liblockfile.so, yes, no,
1759 /usr/lib:/lib:/usr/local/lib:$LD_LIBRARY_PATH)
1760 if test $ac_cv_prog_liblockfile = yes; then
1761 AC_MSG_ERROR([Shared liblockfile found but can't link against it.
1762This probably means that movemail could lose mail.
1763There may be a \`development' package to install containing liblockfile.])
1764 else AC_DEFINE(LIBMAIL, -llockfile)
1765 fi
1766 else :
1767fi
1768AC_CHECK_FUNCS(touchlock)
1769AC_CHECK_HEADERS(maillock.h)
4e4db900 1770
1effc2cb
PE
1771AC_CHECK_FUNCS(gettimeofday gethostname getdomainname dup2 \
1772rename closedir mkdir rmdir sysinfo \
fd4bc671 1773random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime res_init setsid \
85ea1a28 1774strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \
bab630c9 1775utimes setrlimit setpgid getcwd shutdown strftime getaddrinfo)
16831d8c
RS
1776
1777# Check this now, so that we will NOT find the above functions in ncurses.
1778# That is because we have not set up to link ncurses in lib-src.
1779# It's better to believe a function is not available
1780# than to expect to find it in ncurses.
1781AC_CHECK_LIB(ncurses, tparm)
0c565a0a 1782
c4510052
PE
1783# Solaris requires -lintl if you want strerror (which calls dgettext)
1784# to return localized messages.
1785AC_CHECK_LIB(intl, dgettext)
1786
0c565a0a
RS
1787AC_MSG_CHECKING(whether localtime caches TZ)
1788AC_CACHE_VAL(emacs_cv_localtime_cache,
fcc303f4 1789[if test x$ac_cv_func_tzset = xyes; then
0c565a0a
RS
1790AC_TRY_RUN([#include <time.h>
1791#if STDC_HEADERS
1792# include <stdlib.h>
1793#endif
22cc077c
RS
1794extern char **environ;
1795unset_TZ ()
1796{
1797 char **from, **to;
1798 for (to = from = environ; (*to = *from); from++)
1799 if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
1800 to++;
1801}
98ab445d
RS
1802char TZ_GMT0[] = "TZ=GMT0";
1803char TZ_PST8[] = "TZ=PST8";
0c565a0a
RS
1804main()
1805{
1806 time_t now = time ((time_t *) 0);
22cc077c 1807 int hour_GMT0, hour_unset;
98ab445d 1808 if (putenv (TZ_GMT0) != 0)
0c565a0a 1809 exit (1);
22cc077c
RS
1810 hour_GMT0 = localtime (&now)->tm_hour;
1811 unset_TZ ();
1812 hour_unset = localtime (&now)->tm_hour;
98ab445d 1813 if (putenv (TZ_PST8) != 0)
0c565a0a 1814 exit (1);
22cc077c
RS
1815 if (localtime (&now)->tm_hour == hour_GMT0)
1816 exit (1);
1817 unset_TZ ();
1818 if (localtime (&now)->tm_hour != hour_unset)
1819 exit (1);
1820 exit (0);
0c565a0a
RS
1821}], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
1822[# If we have tzset, assume the worst when cross-compiling.
1823emacs_cv_localtime_cache=yes])
1824else
1825 # If we lack tzset, report that localtime does not cache TZ,
1826 # since we can't invalidate the cache if we don't have tzset.
1827 emacs_cv_localtime_cache=no
1828fi])dnl
1829AC_MSG_RESULT($emacs_cv_localtime_cache)
1830if test $emacs_cv_localtime_cache = yes; then
1831 AC_DEFINE(LOCALTIME_CACHE)
1832fi
9ec10b2f 1833
3d68df05 1834if test "x$HAVE_TIMEVAL" = xyes; then
fd0a060b
AS
1835AC_CACHE_CHECK(whether gettimeofday can accept two arguments,
1836 emacs_cv_gettimeofday_two_arguments,
5ab52d42
RS
1837AC_TRY_LINK([
1838#ifdef TIME_WITH_SYS_TIME
1839#include <sys/time.h>
1840#include <time.h>
1841#else
1842#ifdef HAVE_SYS_TIME_H
1843#include <sys/time.h>
1844#else
1845#include <time.h>
1846#endif
1847#endif
1848 ],
1849 [
1850 struct timeval time;
1851 struct timezone dummy;
1852 gettimeofday (&time, &dummy);
1853],
fd0a060b
AS
1854 emacs_cv_gettimeofday_two_arguments=yes,
1855 emacs_cv_gettimeofday_two_arguments=no))
1856 if test $emacs_cv_gettimeofday_two_arguments = no; then
1857 AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT)
1858 fi
5ab52d42
RS
1859fi
1860
9ec10b2f 1861ok_so_far=yes
6e0dc84a 1862AC_CHECK_FUNC(socket, , ok_so_far=no)
9ec10b2f 1863if test $ok_so_far = yes; then
6e0dc84a 1864 AC_CHECK_HEADER(netinet/in.h, , ok_so_far=no)
9ec10b2f
DM
1865fi
1866if test $ok_so_far = yes; then
6e0dc84a 1867 AC_CHECK_HEADER(arpa/inet.h, , ok_so_far=no)
9ec10b2f
DM
1868fi
1869if test $ok_so_far = yes; then
1870 AC_DEFINE(HAVE_INET_SOCKETS)
1871fi
1872
7bbbba31
DM
1873if test -f /usr/lpp/X11/bin/smt.exp; then
1874 AC_DEFINE(HAVE_AIX_SMT_EXP)
1875fi
1876
9ec10b2f
DM
1877# Set up the CFLAGS for real compilation, so we can substitute it.
1878CFLAGS="$REAL_CFLAGS"
1879
1880changequote(, )dnl
1881#### Find out which version of Emacs this is.
1882version=`grep 'defconst[ ]*emacs-version' ${srcdir}/lisp/version.el \
1883 | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`
1884changequote([, ])dnl
1885if test x"${version}" = x; then
1886 AC_MSG_ERROR(can't find current emacs version in \`${srcdir}/lisp/version.el'.)
1887fi
1888
9ec10b2f
DM
1889### Specify what sort of things we'll be editing into Makefile and config.h.
1890### Use configuration here uncanonicalized to avoid exceeding size limits.
1891AC_SUBST(version)
1892AC_SUBST(configuration)
3cd69289 1893AC_SUBST(canonical)
9ec10b2f
DM
1894AC_SUBST(srcdir)
1895AC_SUBST(prefix)
1896AC_SUBST(exec_prefix)
1897AC_SUBST(bindir)
1898AC_SUBST(datadir)
3cd69289
DM
1899AC_SUBST(sharedstatedir)
1900AC_SUBST(libexecdir)
9ec10b2f
DM
1901AC_SUBST(mandir)
1902AC_SUBST(infodir)
1903AC_SUBST(lispdir)
1904AC_SUBST(locallisppath)
1905AC_SUBST(lisppath)
66d736a9 1906AC_SUBST(x_default_search_path)
9ec10b2f 1907AC_SUBST(etcdir)
9ec10b2f
DM
1908AC_SUBST(archlibdir)
1909AC_SUBST(docdir)
3cd69289 1910AC_SUBST(bitmapdir)
9ec10b2f
DM
1911AC_SUBST(c_switch_system)
1912AC_SUBST(c_switch_machine)
1913AC_SUBST(LD_SWITCH_X_SITE)
1914AC_SUBST(LD_SWITCH_X_SITE_AUX)
1915AC_SUBST(C_SWITCH_X_SITE)
1916AC_SUBST(CFLAGS)
1917AC_SUBST(X_TOOLKIT_TYPE)
1918AC_SUBST(machfile)
1919AC_SUBST(opsysfile)
30457b4f 1920AC_SUBST(RANLIB)
9ec10b2f 1921
3cd69289 1922AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "${canonical}")
6d1da0d1 1923AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}")
9ec10b2f
DM
1924AC_DEFINE_UNQUOTED(config_machfile, "${machfile}")
1925AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}")
1926AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE})
1927AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX})
1928AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE, ${C_SWITCH_X_SITE})
1929AC_DEFINE_UNQUOTED(UNEXEC_SRC, ${UNEXEC_SRC})
1930
1931if test "${HAVE_X_WINDOWS}" = "yes" ; then
1932 AC_DEFINE(HAVE_X_WINDOWS)
1933fi
1934if test "${USE_X_TOOLKIT}" != "none" ; then
1935 AC_DEFINE(USE_X_TOOLKIT)
1936fi
1937if test "${HAVE_X11}" = "yes" ; then
1938 AC_DEFINE(HAVE_X11)
1939fi
1940if test "${HAVE_XFREE386}" = "yes" ; then
1941 AC_DEFINE(HAVE_XFREE386)
1942fi
08741ba9
RS
1943if test "${HAVE_MENUS}" = "yes" ; then
1944 AC_DEFINE(HAVE_MENUS)
9ec10b2f
DM
1945fi
1946if test "${GNU_MALLOC}" = "yes" ; then
1947 AC_DEFINE(GNU_MALLOC)
1948fi
1949if test "${REL_ALLOC}" = "yes" ; then
1950 AC_DEFINE(REL_ALLOC)
1951fi
1952if test "${LISP_FLOAT_TYPE}" = "yes" ; then
1953 AC_DEFINE(LISP_FLOAT_TYPE)
1954fi
1955
9ec10b2f
DM
1956#### Report on what we decided to do.
1957echo "
9ec10b2f
DM
1958Configured for \`${canonical}'.
1959
1960 Where should the build process find the source code? ${srcdir}
1961 What operating system and machine description files should Emacs use?
1962 \`${opsysfile}' and \`${machfile}'
1963 What compiler should emacs be built with? ${CC} ${CFLAGS}
1964 Should Emacs use the GNU version of malloc? ${GNU_MALLOC}${GNU_MALLOC_reason}
1965 Should Emacs use the relocating allocator for buffers? ${REL_ALLOC}
1966 What window system should Emacs use? ${window_system}
509fccc3
RS
1967 What toolkit should Emacs use? ${USE_X_TOOLKIT}"
1968
1969if test -n "${x_includes}"; then
1970echo " Where do we find X Windows header files? ${x_includes}"
1971else
1972echo " Where do we find X Windows header files? Standard dirs"
1973fi
1974if test -n "${x_libraries}"; then
1975echo " Where do we find X Windows libraries? ${x_libraries}"
1976else
1977echo " Where do we find X Windows libraries? Standard dirs"
1978fi
9ec10b2f 1979
b412189c
GM
1980echo " Does Emacs use -lXaw3d? ${HAVE_XAW3D}"
1981echo " Does Emacs use -lXpm? ${HAVE_XPM}"
1982echo " Does Emacs use -ljpeg? ${HAVE_JPEG}"
495ccc04 1983echo " Does Emacs use -ltiff? ${HAVE_TIFF}"
b412189c
GM
1984echo " Does Emacs use -lungif? ${HAVE_GIF}"
1985echo " Does Emacs use -lpng? ${HAVE_PNG}"
20c1822e 1986echo " Does Emacs use X toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}"
509fccc3 1987echo
9ec10b2f
DM
1988
1989# Remove any trailing slashes in these variables.
1990changequote(, )dnl
1991test "${prefix}" != NONE &&
1992 prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
1993test "${exec_prefix}" != NONE &&
1994 exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`
1995changequote([, ])dnl
1996
5f8c8f00 1997AC_OUTPUT(Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile \
66a96cff
RS
1998 man/Makefile lwlib/Makefile src/Makefile.c:src/Makefile.in \
1999 leim/Makefile, [
7bbbba31 2000
b63df577 2001### Make the necessary directories, if they don't exist.
e0a3686b 2002for dir in etc lisp ; do
b3947967 2003 test -d ${dir} || mkdir ${dir}
9ec10b2f
DM
2004done
2005
5f8c8f00
RS
2006# Build src/Makefile from ${srcdir}/src/Makefile.c
2007# and lib-src/Makefile from ${srcdir}/lib-src/Makefile.c
2008# This must be done after src/config.h is built, since we rely on that file.
9ec10b2f 2009
2d73167a 2010changequote(, )dnl The horror, the horror.
9ec10b2f
DM
2011# Now get this: Some word that is part of the ${srcdir} directory name
2012# or the ${configuration} value might, just might, happen to be an
2013# identifier like `sun4' or `i386' or something, and be predefined by
2014# the C preprocessor to some helpful value like 1, or maybe the empty
2015# string. Needless to say consequent macro substitutions are less
2016# than conducive to the makefile finding the correct directory.
2017undefs="`echo $top_srcdir $configuration $canonical |
2018sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/ *$//' \
2019 -e 's/ */ -U/g' -e 's/-U[0-9][^ ]*//g' \
2020`"
2d73167a 2021changequote([, ])dnl
9ec10b2f 2022
6a4bb05d
RS
2023echo creating src/epaths.h
2024make epaths-force
ab85d355 2025
9ec10b2f
DM
2026echo creating lib-src/Makefile
2027( cd lib-src
2028 rm -f junk.c junk1.c junk2.c
2029 sed -e '/start of cpp stuff/q' \
5f8c8f00 2030 < Makefile.c > junk1.c
9ec10b2f
DM
2031 sed -e '1,/start of cpp stuff/d'\
2032 -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
5f8c8f00 2033 < Makefile.c > junk.c
9ec10b2f
DM
2034 $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
2035 sed -e 's/^ / /' -e '/^#/d' -e '/^[ \f]*$/d' > junk2.c
2036 cat junk1.c junk2.c > Makefile.new
2037 rm -f junk.c junk1.c junk2.c
2038 chmod 444 Makefile.new
2039 mv -f Makefile.new Makefile
2040)
2041
2042echo creating src/Makefile
2043( cd src
2044 rm -f junk.c junk1.c junk2.c
2045 sed -e '/start of cpp stuff/q' \
5f8c8f00 2046 < Makefile.c > junk1.c
9ec10b2f
DM
2047 sed -e '1,/start of cpp stuff/d'\
2048 -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
5f8c8f00 2049 < Makefile.c > junk.c
9ec10b2f
DM
2050 $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
2051 sed -e 's/^ / /' -e '/^#/d' -e '/^[ \f]*$/d' > junk2.c
2052 cat junk1.c junk2.c > Makefile.new
2053 rm -f junk.c junk1.c junk2.c
2054 chmod 444 Makefile.new
2055 mv -f Makefile.new Makefile
2056)
8b66759a
DM
2057
2058if test ! -f src/.gdbinit && test -f $top_srcdir/src/.gdbinit; then
2059 echo creating src/.gdbinit
2060 echo source $top_srcdir/src/.gdbinit > src/.gdbinit
2061fi
2062
66a96cff
RS
2063# This is how we know whether to re-run configure in certain cases.
2064touch src/config.stamp
2065
ea50c238 2066], [CPP="$CPP" CPPFLAGS="$CPPFLAGS"])