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