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