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