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