*** empty log message ***
[bpt/emacs.git] / configure.in
CommitLineData
6e502e37 1dnl Autoconf script for GNU Emacs
9ec10b2f
DM
2dnl To rebuild the `configure' script from this, execute the command
3dnl autoconf
4dnl in the directory containing this script.
6e502e37 5dnl
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 ;;
9ec10b2f 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 ;;
231 powerpc-*-bsdi*) machine=powerpc ;;
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
f8340326
DL
267 alpha*-dec-osf[4-9]*)
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* )
282 machine=powerpc opsys=gnu-linux
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
1231#ifndef C_DEBUG_SWITCH
1232#define C_DEBUG_SWITCH -g
1233#endif
1234
1235#ifndef C_OPTIMIZE_SWITCH
1236#ifdef __GNUC__
1237#define C_OPTIMIZE_SWITCH -O2
1238#else
1239#define C_OPTIMIZE_SWITCH -O
1240#endif
1241#endif
1242
1243#ifndef LD_SWITCH_MACHINE
1244#define LD_SWITCH_MACHINE
1245#endif
1246
1247#ifndef LD_SWITCH_SYSTEM
1248#define LD_SWITCH_SYSTEM
1249#endif
1250
1251#ifndef LD_SWITCH_X_SITE_AUX
1252#define LD_SWITCH_X_SITE_AUX
1253#endif
1254
1255configure___ ld_switch_system=LD_SWITCH_SYSTEM
1256configure___ ld_switch_machine=LD_SWITCH_MACHINE
1257
1258#ifdef THIS_IS_CONFIGURE
1259
1260/* Get the CFLAGS for tests in configure. */
1261#ifdef __GNUC__
1262configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}'
1263#else
1264configure___ CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
1265#endif
1266
1267#else /* not THIS_IS_CONFIGURE */
1268
1269/* Get the CFLAGS for real compilation. */
1270#ifdef __GNUC__
1271configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}'
1272#else
1273configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
1274#endif
1275
1276#endif /* not THIS_IS_CONFIGURE */
1277' > ${tempcname}
1278
1279# The value of CPP is a quoted variable reference, so we need to do this
1280# to get its actual value...
1281CPP=`eval "echo $CPP"`
1282changequote(, )dnl
1283eval `${CPP} -Isrc ${tempcname} \
1284 | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
1285if test "x$SPECIFIED_CFLAGS" = x; then
1286 eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \
1287 | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
1288else
1289 REAL_CFLAGS="$CFLAGS"
1290fi
1291changequote([, ])dnl
1292rm ${tempcname}
1293
1294ac_link="$ac_link $ld_switch_machine $ld_switch_system"
1295
1296### Make sure subsequent tests use flags consistent with the build flags.
1297
1298if test x"${OVERRIDE_CPPFLAGS}" != x; then
1299 CPPFLAGS="${OVERRIDE_CPPFLAGS}"
1300else
1301 CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
1302fi
1303
48989ead
DL
1304dnl Do this early because it can frob feature test macros for Unix-98 &c.
1305AC_SYS_LARGEFILE
1306
b412189c 1307# Sound support for GNU/Linux and the free BSDs.
b192d653
KR
1308AC_CHECK_HEADERS(machine/soundcard.h sys/soundcard.h soundcard.h)
1309# Emulation library used on NetBSD.
1310AC_CHECK_LIB(ossaudio, _oss_ioctl, LIBSOUND=-lossaudio, LIBSOUND=)
1311AC_SUBST(LIBSOUND)
b412189c 1312
9ec10b2f 1313dnl checks for header files
1113b624
PE
1314AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \
1315 linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \
1c70a086 1316 termcap.h stdio_ext.h fcntl.h term.h strings.h)
6e0dc84a
DM
1317AC_HEADER_STDC
1318AC_HEADER_TIME
1319AC_DECL_SYS_SIGLIST
2ce723a5 1320AC_HEADER_SYS_WAIT
9ec10b2f 1321
3cd69289 1322dnl Some systems have utime.h but don't declare the struct anyplace.
fd0a060b 1323AC_CACHE_CHECK(for struct utimbuf, emacs_cv_struct_utimbuf,
3cd69289
DM
1324AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
1325#include <sys/time.h>
1326#include <time.h>
1327#else
1328#ifdef HAVE_SYS_TIME_H
1329#include <sys/time.h>
1330#else
1331#include <time.h>
1332#endif
1333#endif
1334#ifdef HAVE_UTIME_H
1335#include <utime.h>
1336#endif], [static struct utimbuf x; x.actime = x.modtime;],
fd0a060b
AS
1337 emacs_cv_struct_utimbuf=yes, emacs_cv_struct_utimbuf=no))
1338if test $emacs_cv_struct_utimbuf = yes; then
1339 AC_DEFINE(HAVE_STRUCT_UTIMBUF)
1340fi
3cd69289 1341
9ec10b2f 1342dnl checks for typedefs
6e0dc84a 1343AC_TYPE_SIGNAL
9ec10b2f 1344
25abcaf1
GM
1345dnl Check for speed_t typedef.
1346AC_CACHE_CHECK(for speed_t, emacs_cv_speed_t,
1347AC_TRY_COMPILE([#include <termios.h>], [speed_t x = 1;],
1348 emacs_cv_speed_t=yes))
1349if test $emacs_cv_speed_t = yes; then
1350 AC_DEFINE(HAVE_SPEED_T)
1351fi
1352
fd0a060b 1353AC_CACHE_CHECK(for struct timeval, emacs_cv_struct_timeval,
3cd69289
DM
1354AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
1355#include <sys/time.h>
1356#include <time.h>
1357#else
1358#ifdef HAVE_SYS_TIME_H
1359#include <sys/time.h>
1360#else
1361#include <time.h>
1362#endif
1363#endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
fd0a060b
AS
1364 emacs_cv_struct_timeval=yes, emacs_cv_struct_timeval=no))
1365HAVE_TIMEVAL=$emacs_cv_struct_timeval
1366if test $emacs_cv_struct_timeval = yes; then
1367 AC_DEFINE(HAVE_TIMEVAL)
1368fi
3cd69289 1369
63c59d1e
DL
1370AC_CACHE_CHECK(for struct exception, emacs_cv_struct_exception,
1371AC_TRY_COMPILE([#include <math.h>],
1372[static struct exception x; x.arg1 = x.arg2 = x.retval; x.name = ""; x.type = 1;],
1373 emacs_cv_struct_exception=yes, emacs_cv_struct_exception=no))
1374HAVE_EXCEPTION=$emacs_cv_struct_exception
1375if test $emacs_cv_struct_exception != yes; then
1376 AC_DEFINE(NO_MATHERR)
1377fi
1378
9ec10b2f
DM
1379dnl checks for structure members
1380AC_STRUCT_TM
6e0dc84a 1381AC_STRUCT_TIMEZONE
1113b624
PE
1382AC_CACHE_CHECK(for tm_gmtoff in struct tm, emacs_cv_tm_gmtoff,
1383AC_TRY_LINK([#include <time.h>], [struct tm t; t.tm_gmtoff = 0],
1384 emacs_cv_tm_gmtoff=yes,
1385 emacs_cv_tm_gmtoff=no))
1386if test $emacs_cv_tm_gmtoff = yes; then
1387 AC_DEFINE(HAVE_TM_GMTOFF)
1388fi
9ec10b2f
DM
1389
1390dnl checks for compiler characteristics
3f5b097c
DL
1391
1392dnl Testing __STDC__ to determine prototype support isn't good enough.
1393dnl DEC C, for instance, doesn't define it with default options, and
1394dnl is used on 64-bit systems (OSF Alphas). Similarly for volatile
1395dnl and void *.
1396AC_C_PROTOTYPES
1397AC_C_VOLATILE
6e0dc84a 1398AC_C_CONST
3f5b097c
DL
1399dnl This isn't useful because we can't turn on use of `inline' unless
1400dnl the compiler groks `extern inline'.
1401dnl AC_C_INLINE
1402AC_CACHE_CHECK([for void * support], emacs_cv_void_star,
1403 [AC_TRY_COMPILE(, [void * foo;],
1404 emacs_cv_void_star=yes, emacs_cv_void_star=no)])
1405if test $emacs_cv_void_star = yes; then
1406 AC_DEFINE(POINTER_TYPE, void)
1407else
1408 AC_DEFINE(POINTER_TYPE, char)
1409fi
9ec10b2f
DM
1410
1411dnl check for Make feature
6e0dc84a 1412AC_PROG_MAKE_SET
9ec10b2f
DM
1413
1414dnl checks for operating system services
6e0dc84a 1415AC_SYS_LONG_FILE_NAMES
9ec10b2f
DM
1416
1417#### Choose a window system.
9ec10b2f 1418
6e0dc84a 1419AC_PATH_X
530ce502
DM
1420if test "$no_x" = yes; then
1421 window_system=none
1422else
1423 window_system=x11
1424fi
9ec10b2f 1425
ea199426 1426if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
00ac3ffc
KH
1427 LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
1428 LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
66d736a9
RS
1429 x_default_search_path=""
1430 for x_library in `echo ${x_libraries} | sed -e "s/:/ /g"`; do
54abe472
RS
1431 x_search_path="${x_library}/X11/%L/%T/%N%C%S:\
1432${x_library}/X11/%L/%T/%N%C%S:${x_libary}/X11/%l/%T/%N%C%S:\
1433${x_library}/X11/%T/%N%C%S:${x_library}/X11/%L/%T/%N%S:\
1434${x_library}/X11/%l/%T/%N%S:${x_library}/X11/%T/%N%S"
66d736a9
RS
1435 if test x"${x_default_search_path}" = x; then
1436 x_default_search_path=${x_search_path}
1437 else
1438 x_default_search_path="${x_search_path}:${x_default_search_path}"
1439 fi
1440 done
ea199426
DM
1441fi
1442if test "${x_includes}" != NONE && test -n "${x_includes}"; then
cc6476f6 1443 C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"`
ea199426 1444fi
9ec10b2f 1445
8dbeb353
DM
1446if test x"${x_includes}" = x; then
1447 bitmapdir=/usr/include/X11/bitmaps
3cd69289 1448else
908ff139 1449 # accumulate include directories that have X11 bitmap subdirectories
cc6476f6
KH
1450 bmd_acc="dummyval"
1451 for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do
1452 if test -d "${bmd}/X11/bitmaps"; then
1453 bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps"
4f6f5dab
GM
1454 fi
1455 if test -d "${bmd}/bitmaps"; then
cc6476f6
KH
1456 bmd_acc="${bmd_acc}:${bmd}/bitmaps"
1457 fi
1458 done
1459 if test ${bmd_acc} != "dummyval"; then
1460 bitmapdir=`echo ${bmd_acc} | sed -e "s/^dummyval://"`
1461 fi
3cd69289
DM
1462fi
1463
9ec10b2f
DM
1464case "${window_system}" in
1465 x11 )
1466 HAVE_X_WINDOWS=yes
1467 HAVE_X11=yes
1468 case "${with_x_toolkit}" in
c7f493fd
RM
1469 athena | lucid ) USE_X_TOOLKIT=LUCID ;;
1470 motif ) USE_X_TOOLKIT=MOTIF ;;
1471dnl open-look ) USE_X_TOOLKIT=OPEN_LOOK ;;
4be21f66
KH
1472 no ) USE_X_TOOLKIT=none ;;
1473dnl If user did not say whether to use a toolkit,
1474dnl make this decision later: use the toolkit if we have X11R5 or newer.
1475 * ) USE_X_TOOLKIT=maybe ;;
9ec10b2f
DM
1476 esac
1477 ;;
9ec10b2f
DM
1478 none )
1479 HAVE_X_WINDOWS=no
1480 HAVE_X11=no
1481 USE_X_TOOLKIT=none
1482 ;;
1483esac
9ec10b2f
DM
1484
1485### If we're using X11, we should use the X menu package.
08741ba9 1486HAVE_MENUS=no
9ec10b2f 1487case ${HAVE_X11} in
08741ba9 1488 yes ) HAVE_MENUS=yes ;;
9ec10b2f 1489esac
b412189c 1490
b95c8e7e
RS
1491if test "${opsys}" = "hpux9"; then
1492 case "${x_libraries}" in
1493 *X11R4* )
1494 opsysfile="s/hpux9-x11r4.h"
1495 ;;
1496 esac
1497fi
1498
1499if test "${opsys}" = "hpux9shr"; then
1500 case "${x_libraries}" in
1501 *X11R4* )
1502 opsysfile="s/hpux9shxr4.h"
1503 ;;
1504 esac
1505fi
1506
9ec10b2f
DM
1507### Compute the unexec source name from the object name.
1508UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`"
1509
1510# Do the opsystem or machine files prohibit the use of the GNU malloc?
1511# Assume not, until told otherwise.
1512GNU_MALLOC=yes
b05a95cb
RS
1513doug_lea_malloc=yes
1514AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no)
1515AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
fd0a060b
AS
1516AC_CACHE_CHECK(whether __after_morecore_hook exists,
1517 emacs_cv_var___after_morecore_hook,
3c0c48a7 1518AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
fd0a060b
AS
1519 emacs_cv_var___after_morecore_hook=yes,
1520 emacs_cv_var___after_morecore_hook=no))
1521if test $emacs_cv_var___after_morecore_hook = no; then
1522 doug_lea_malloc=no
1523fi
8cd88038 1524if test "${system_malloc}" = "yes"; then
9ec10b2f
DM
1525 GNU_MALLOC=no
1526 GNU_MALLOC_reason="
b05a95cb 1527 (The GNU allocators don't work with this system configuration.)"
9ec10b2f 1528fi
8cd88038
RS
1529if test "$doug_lea_malloc" = "yes" ; then
1530 if test "$GNU_MALLOC" = yes ; then
1531 GNU_MALLOC_reason="
0855015c 1532 (Using Doug Lea's new malloc from the GNU C Library.)"
8cd88038
RS
1533 fi
1534 AC_DEFINE(DOUG_LEA_MALLOC)
1535fi
9ec10b2f
DM
1536
1537if test x"${REL_ALLOC}" = x; then
1538 REL_ALLOC=${GNU_MALLOC}
1539fi
1540
52c76122 1541LIBS="$libsrc_libs $LIBS"
9ec10b2f
DM
1542
1543dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
1544dnl and also adds -ldnet to LIBS, which Autoconf uses for checks.
1545AC_CHECK_LIB(dnet, dnet_ntoa)
1546dnl This causes -lresolv to get used in subsequent tests,
1547dnl which causes failures on some systems such as HPUX 9.
1548dnl AC_CHECK_LIB(resolv, gethostbyname)
1549
1550dnl FIXME replace main with a function we actually want from this library.
1551AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
1552
027dae63 1553AC_CHECK_LIB(pthreads, cma_open)
1d94ee28 1554
5d4245a6 1555AC_MSG_CHECKING(for XFree86 in /usr/X386)
9ec10b2f 1556if test -d /usr/X386/include; then
9ec10b2f 1557 HAVE_XFREE386=yes
6e0dc84a 1558 : ${C_SWITCH_X_SITE="-I/usr/X386/include"}
9ec10b2f 1559else
6e0dc84a 1560 HAVE_XFREE386=no
9ec10b2f 1561fi
6e0dc84a 1562AC_MSG_RESULT($HAVE_XFREE386)
9ec10b2f 1563
509fccc3
RS
1564# Change CFLAGS temporarily so that C_SWITCH_X_SITE gets used
1565# for the tests that follow. We set it back to REAL_CFLAGS later on.
9ec10b2f 1566
5a9bf171
KR
1567REAL_CPPFLAGS="$CPPFLAGS"
1568
9ec10b2f
DM
1569if test "${HAVE_X11}" = "yes"; then
1570 DEFS="$C_SWITCH_X_SITE $DEFS"
96c20358
RS
1571 LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE"
1572 LIBS="$LIBX $LIBS"
9ec10b2f 1573 CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
5a9bf171 1574 CPPFLAGS="$C_SWITCH_X_SITE $CPPFLAGS"
509fccc3 1575
617a496c
RS
1576 # On Solaris, arrange for LD_RUN_PATH to point to the X libraries for tests.
1577 # This is handled by LD_SWITCH_X_SITE_AUX during the real build,
1578 # but it's more convenient here to set LD_RUN_PATH
1579 # since this also works on hosts that don't understand LD_SWITCH_X_SITE_AUX.
1580 if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
1581 LD_RUN_PATH=$x_libraries${LD_RUN_PATH+:}$LD_RUN_PATH
1582 export LD_RUN_PATH
1583 fi
1584
5ac83f86 1585 if test "${opsys}" = "gnu-linux"; then
3bbe016c 1586 AC_MSG_CHECKING(whether X on GNU/Linux needs -b to link)
509fccc3
RS
1587 AC_TRY_LINK([],
1588 [XOpenDisplay ("foo");],
3bbe016c
KH
1589 [xlinux_first_failure=no],
1590 [xlinux_first_failure=yes])
1591 if test "${xlinux_first_failure}" = "yes"; then
509fccc3
RS
1592 OLD_LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE"
1593 OLD_C_SWITCH_X_SITE="$C_SWITCH_X_SITE"
1594 OLD_CPPFLAGS="$CPPFLAGS"
1595 OLD_LIBS="$LIBS"
1596 LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout"
1597 C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout"
1598 CPPFLAGS="$CPPFLAGS -b i486-linuxaout"
1599 LIBS="$LIBS -b i486-linuxaout"
1600 AC_TRY_LINK([],
1601 [XOpenDisplay ("foo");],
3bbe016c
KH
1602 [xlinux_second_failure=no],
1603 [xlinux_second_failure=yes])
1604 if test "${xlinux_second_failure}" = "yes"; then
509fccc3
RS
1605 # If we get the same failure with -b, there is no use adding -b.
1606 # So take it out. This plays safe.
1607 LD_SWITCH_X_SITE="$OLD_LD_SWITCH_X_SITE"
1608 C_SWITCH_X_SITE="$OLD_C_SWITCH_X_SITE"
1609 CPPFLAGS="$OLD_CPPFLAGS"
1610 LIBS="$OLD_LIBS"
1611 AC_MSG_RESULT(no)
1612 else
1613 AC_MSG_RESULT(yes)
1614 fi
1615 else
1616 AC_MSG_RESULT(no)
1617 fi
1618 fi
1619
6e0dc84a 1620 AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
9ec10b2f
DM
1621XScreenNumberOfScreen XSetWMProtocols)
1622fi
1623
08741ba9 1624if test "${window_system}" = "x11"; then
4be21f66 1625 AC_MSG_CHECKING(X11 version 6)
fd0a060b 1626 AC_CACHE_VAL(emacs_cv_x11_version_6,
08741ba9
RS
1627 AC_TRY_LINK([#include <X11/Xlib.h>],
1628[#if XlibSpecificationRelease < 6
1629fail;
1630#endif
fd0a060b
AS
1631], emacs_cv_x11_version_6=yes, emacs_cv_x11_version_6=no))
1632 if test $emacs_cv_x11_version_6 = yes; then
1633 AC_MSG_RESULT(6 or newer)
1634 AC_DEFINE(HAVE_X11R6)
1635 else
1636 AC_MSG_RESULT(before 6)
1637 fi
08741ba9
RS
1638fi
1639
f7894e88 1640if test "${window_system}" = "x11"; then
4be21f66 1641 AC_MSG_CHECKING(X11 version 5)
fd0a060b 1642 AC_CACHE_VAL(emacs_cv_x11_version_5,
4be21f66
KH
1643 AC_TRY_LINK([#include <X11/Xlib.h>],
1644[#if XlibSpecificationRelease < 5
1645fail;
1646#endif
fd0a060b
AS
1647], emacs_cv_x11_version_5=yes, emacs_cv_x11_version_5=no))
1648 if test $emacs_cv_x11_version_5 = yes; then
1649 AC_MSG_RESULT(5 or newer)
f7894e88 1650 HAVE_X11R5=yes
fd0a060b
AS
1651 AC_DEFINE(HAVE_X11R5)
1652 else
f7894e88 1653 HAVE_X11R5=no
fd0a060b
AS
1654 AC_MSG_RESULT(before 5)
1655 fi
f7894e88
RS
1656fi
1657
bce97856
RS
1658dnl Do not put whitespace before the #include statements below.
1659dnl Older compilers (eg sunos4 cc) choke on it.
f7894e88
RS
1660if test x"${USE_X_TOOLKIT}" = xmaybe; then
1661 if test x"${HAVE_X11R5}" = xyes; then
1662 AC_MSG_CHECKING(X11 version 5 with Xaw)
fd0a060b 1663 AC_CACHE_VAL(emacs_cv_x11_version_5_with_xaw,
f7894e88 1664 AC_TRY_LINK([
bce97856
RS
1665#include <X11/Intrinsic.h>
1666#include <X11/Xaw/Simple.h>],
f7894e88 1667 [],
fd0a060b
AS
1668 emacs_cv_x11_version_5_with_xaw=yes,
1669 emacs_cv_x11_version_5_with_xaw=no))
1670 if test $emacs_cv_x11_version_5_with_xaw = yes; then
1671 AC_MSG_RESULT([5 or newer, with Xaw; use toolkit by default])
1672 USE_X_TOOLKIT=LUCID
1673 else
1674 AC_MSG_RESULT(before 5 or no Xaw; do not use toolkit by default)
1675 USE_X_TOOLKIT=none
1676 fi
f7894e88
RS
1677 else
1678 USE_X_TOOLKIT=none
1679 fi
4be21f66
KH
1680fi
1681
1682X_TOOLKIT_TYPE=$USE_X_TOOLKIT
1683
9ec10b2f
DM
1684if test "${USE_X_TOOLKIT}" != "none"; then
1685 AC_MSG_CHECKING(X11 toolkit version)
fd0a060b 1686 AC_CACHE_VAL(emacs_cv_x11_toolkit_version_6,
6e0dc84a 1687 AC_TRY_LINK([#include <X11/Intrinsic.h>],
9ec10b2f
DM
1688[#if XtSpecificationRelease < 6
1689fail;
1690#endif
fd0a060b
AS
1691], emacs_cv_x11_toolkit_version_6=yes, emacs_cv_x11_toolkit_version_6=no))
1692 HAVE_X11XTR6=$emacs_cv_x11_toolkit_version_6
1693 if test $emacs_cv_x11_toolkit_version_6 = yes; then
1694 AC_MSG_RESULT(6 or newer)
1695 AC_DEFINE(HAVE_X11XTR6)
1696 else
1697 AC_MSG_RESULT(before 6)
1698 fi
6aad10e4
RS
1699
1700dnl If using toolkit, check whether libXmu.a exists.
1701dnl tranle@intellicorp.com says libXmu.a can need XtMalloc in libXt.a to link.
1702 OLDLIBS="$LIBS"
fcc303f4
RS
1703 if test x$HAVE_X11XTR6 = xyes; then
1704 LIBS="-lXt -lSM -lICE $LIBS"
1705 else
1706 LIBS="-lXt $LIBS"
1707 fi
6aad10e4 1708 AC_CHECK_LIB(Xmu, XmuConvertStandardSelection)
6e502e37 1709 LIBS="$OLDLIBS"
9ec10b2f
DM
1710fi
1711
66d736a9 1712if test "${USE_X_TOOLKIT}" = "MOTIF"; then
fd0a060b 1713 AC_CACHE_CHECK(for Motif version 2.1, emacs_cv_motif_version_2_1,
66d736a9
RS
1714 AC_TRY_COMPILE([#include <Xm/Xm.h>],
1715 [#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1)
1716int x = 5;
1717#else
1718Motif version prior to 2.1.
1719#endif],
fd0a060b
AS
1720 emacs_cv_motif_version_2_1=yes, emacs_cv_motif_version_2_1=no))
1721 HAVE_MOTIF_2_1=$emacs_cv_motif_version_2_1
1722 if test $emacs_cv_motif_version_2_1 = yes; then
1723 AC_DEFINE(HAVE_MOTIF_2_1)
72d9b5b3
GM
1724 AC_CHECK_LIB(Xp, XpCreateContext, HAVE_LIBXP=yes, , -lXext)
1725 if test ${HAVE_LIBXP} = yes; then
1726 AC_DEFINE(HAVE_LIBXP)
1727 fi
fd0a060b 1728 fi
66d736a9
RS
1729fi
1730
620fdfdf
RS
1731### Is -lXaw3d available?
1732HAVE_XAW3D=no
1733if test "${HAVE_X11}" = "yes"; then
1734 if test "${USE_X_TOOLKIT}" != "none"; then
1735 old_c_flags="${CFLAGS}"
1736 CFLAGS="${LD_SWITCH_X_SITE}"
1737 AC_CHECK_HEADER(X11/Xaw3d/Scrollbar.h,
1738 AC_CHECK_LIB(Xaw3d, XawScrollbarSetThumb, HAVE_XAW3D=yes, , -lX11))
1739 CFLAGS="${old_c_flags}"
1740
1741 if test "${HAVE_XAW3D}" = "yes"; then
1742 AC_DEFINE(HAVE_XAW3D)
1743 fi
1744 fi
1745fi
1746
0be97a72
GM
1747dnl Use toolkit scroll bars if configured for X toolkit and either
1748dnl using Motif or Xaw3d is available, and unless
1749dnl --with-toolkit-scroll-bars=no was specified.
1750
1751USE_TOOLKIT_SCROLL_BARS=no
1752if test "${with_toolkit_scroll_bars}" != "no"; then
1753 if test "${USE_X_TOOLKIT}" != "none"; then
1754 if test "${USE_X_TOOLKIT}" = "MOTIF"; then
1755 AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
1756 HAVE_XAW3D=no
1757 USE_TOOLKIT_SCROLL_BARS=yes
1758 elif test "${HAVE_XAW3D}" = "yes"; then
1759 AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
1760 USE_TOOLKIT_SCROLL_BARS=yes
1761 fi
1762 fi
1763fi
1764
c6f7dae8
GM
1765dnl Don't use X11 input methods if user specifies he doesn't want it
1766dnl with `--with-xim=no'.
1767
1768if test "${with_xim}" != "no"; then
1769 AC_DEFINE(USE_XIM)
1770fi
1771
620fdfdf
RS
1772### Use -lXpm if available, unless `--with-xpm=no'.
1773HAVE_XPM=no
1774if test "${HAVE_X11}" = "yes"; then
1775 if test "${with_xpm}" != "no"; then
1776 old_c_flags="${CFLAGS}"
1777 CFLAGS="${LD_SWITCH_X_SITE}"
1778 AC_CHECK_HEADER(X11/xpm.h,
7960d0bd
GM
1779 AC_CHECK_LIB(Xpm, XpmReadFileToPixmap, HAVE_XPM=yes, , -lX11))
1780 if test "${HAVE_XPM}" = "yes"; then
1890c0c4 1781 AC_MSG_CHECKING(for XpmReturnAllocPixels preprocessor define)
7960d0bd
GM
1782 AC_EGREP_CPP(no_return_alloc_pixels,
1783 [#include "X11/xpm.h"
1784#ifndef XpmReturnAllocPixels
1785no_return_alloc_pixels
1786#endif
1787 ], HAVE_XPM=no, HAVE_XPM=yes)
1788 fi
620fdfdf 1789 CFLAGS="${old_c_flags}"
1890c0c4
GM
1790 if test "${HAVE_XPM}" = "yes"; then
1791 AC_MSG_RESULT(yes)
1792 else
1793 AC_MSG_RESULT(no)
1794 fi
620fdfdf
RS
1795 fi
1796
1797 if test "${HAVE_XPM}" = "yes"; then
1798 AC_DEFINE(HAVE_XPM)
1799 fi
1800fi
1801
1802### Use -ljpeg if available, unless `--with-jpeg=no'.
1803HAVE_JPEG=no
1804if test "${HAVE_X11}" = "yes"; then
1805 if test "${with_jpeg}" != "no"; then
1806 old_c_flags="${CFLAGS}"
1807 CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}"
3cc9d384
DL
1808 dnl Checking for jpeglib.h can lose becsue of a redefinition of
1809 dnl HAVE_STDLIB_H.
1810 AC_CHECK_HEADER(jerror.h,
1811 AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes, , -lX11))
620fdfdf
RS
1812 CFLAGS="${old_c_flags}"
1813 fi
1814
1815 if test "${HAVE_JPEG}" = "yes"; then
1816 AC_DEFINE(HAVE_JPEG)
1817 fi
1818fi
1819
1820### Use -lpng if available, unless `--with-png=no'.
1821HAVE_PNG=no
1822if test "${HAVE_X11}" = "yes"; then
1823 if test "${with_png}" != "no"; then
1824 old_c_flags="${CFLAGS}"
1825 CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}"
1826 AC_CHECK_HEADER(png.h,
1827 AC_CHECK_LIB(png, png_set_expand, HAVE_PNG=yes, , -lX11 -lz -lm))
1828 CFLAGS="${old_c_flags}"
1829 fi
1830
1831 if test "${HAVE_PNG}" = "yes"; then
1832 AC_DEFINE(HAVE_PNG)
1833 fi
1834fi
1835
1836### Use -ltiff if available, unless `--with-tiff=no'.
1837HAVE_TIFF=no
1838if test "${HAVE_X11}" = "yes"; then
1839 if test "${with_tiff}" != "no"; then
1840 old_c_flags="${CFLAGS}"
1841 CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}"
1842 AC_CHECK_HEADER(tiffio.h,
3b3cc4a4
KR
1843 tifflibs="-lX11 -lz -lm"
1844 # At least one tiff package requires the jpeg library.
1845 if test "${HAVE_JPEG}" = yes; then tifflibs="-ljpeg $tifflibs"; fi
1846 AC_CHECK_LIB(tiff, TIFFGetVersion, HAVE_TIFF=yes, , $tifflibs))
620fdfdf
RS
1847 CFLAGS="${old_c_flags}"
1848 fi
1849
1850 if test "${HAVE_TIFF}" = "yes"; then
1851 AC_DEFINE(HAVE_TIFF)
1852 fi
1853fi
1854
1855### Use -lgif if available, unless `--with-gif=no'.
1856HAVE_GIF=no
1857if test "${HAVE_X11}" = "yes"; then
1858 if test "${with_gif}" != "no"; then
1859 old_c_flags="${CFLAGS}"
1860 CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}"
1861 AC_CHECK_HEADER(gif_lib.h,
5119087b 1862 AC_CHECK_LIB(ungif, DGifOpen, HAVE_GIF=yes, , -lX11))
620fdfdf
RS
1863 CFLAGS="${old_c_flags}"
1864 fi
1865
1866 if test "${HAVE_GIF}" = "yes"; then
1867 AC_DEFINE(HAVE_GIF)
1868 fi
1869fi
1870
9ec10b2f 1871# If netdb.h doesn't declare h_errno, we must declare it by hand.
fd0a060b
AS
1872AC_CACHE_CHECK(whether netdb declares h_errno,
1873 emacs_cv_netdb_declares_h_errno,
6e0dc84a 1874AC_TRY_LINK([#include <netdb.h>],
01345308 1875 [return h_errno;],
fd0a060b
AS
1876 emacs_cv_netdb_declares_h_errno=yes, emacs_cv_netdb_declares_h_errno=no))
1877if test $emacs_cv_netdb_declares_h_errno = yes; then
1878 AC_DEFINE(HAVE_H_ERRNO)
1879fi
9ec10b2f 1880
6e0dc84a 1881AC_FUNC_ALLOCA
9ec10b2f 1882
f6e8adea 1883# fmod, logb, and frexp are found in -lm on most systems.
e468fb38 1884# On HPUX 9.01, -lm does not contain logb, so check for sqrt.
e6fd9047 1885AC_CHECK_LIB(m, sqrt)
e6fd9047 1886
4e4db900 1887# Check for mail-locking functions in a "mail" library
5ad9ac92
DL
1888AC_CHECK_LIB(mail, maillock)
1889dnl Debian, at least:
1890dnl AC_CHECK_LIB(lockfile, maillock, [AC_DEFINE(HAVE_LIBMAIL)])
1891AC_CHECK_LIB(lockfile, maillock)
1892# If we have the shared liblockfile, assume we must use it for mail
1893# locking (e.g. Debian). If we couldn't link against liblockfile
1894# (no liblockfile.a installed), ensure that we don't need to.
1895if test "$ac_cv_lib_lockfile_maillock" = no; then
1896 dnl This works for files generally, not just executables.
1897 dnl Should we look elsewhere for it? Maybe examine /etc/ld.so.conf?
1898 AC_CHECK_PROG(liblockfile, liblockfile.so, yes, no,
1899 /usr/lib:/lib:/usr/local/lib:$LD_LIBRARY_PATH)
1900 if test $ac_cv_prog_liblockfile = yes; then
1901 AC_MSG_ERROR([Shared liblockfile found but can't link against it.
1902This probably means that movemail could lose mail.
1903There may be a \`development' package to install containing liblockfile.])
1904 else AC_DEFINE(LIBMAIL, -llockfile)
1905 fi
1906 else :
1907fi
1908AC_CHECK_FUNCS(touchlock)
1909AC_CHECK_HEADERS(maillock.h)
4e4db900 1910
8a2c2328 1911AC_CHECK_FUNCS(gethostname getdomainname dup2 \
1effc2cb 1912rename closedir mkdir rmdir sysinfo \
fd4bc671 1913random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime res_init setsid \
85ea1a28 1914strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \
290c1191 1915utimes setrlimit setpgid getcwd getwd shutdown strftime getaddrinfo \
1c70a086 1916__fpending mblen mbrlen strsignal setitimer ualarm index rindex)
38c44a91
DL
1917
1918AC_FUNC_MKTIME
1919if test "$ac_cv_func_working_mktime" = no; then
1920 AC_DEFINE(BROKEN_MKTIME)
1921fi
1922
1ca2077a
DL
1923AC_FUNC_GETLOADAVG
1924
63c59d1e
DL
1925AC_CHECK_FUNCS(ftello)
1926
1927# UNIX98 PTYs. AC_SYS_LARGEFILE should have defined _XOPEN_SOURCE
1928# if we need it.
40ccc4c7
GM
1929AC_CHECK_FUNCS(grantpt)
1930
1931# PTY-related GNU extensions.
1932AC_CHECK_FUNCS(getpt)
1933
16831d8c
RS
1934# Check this now, so that we will NOT find the above functions in ncurses.
1935# That is because we have not set up to link ncurses in lib-src.
1936# It's better to believe a function is not available
1937# than to expect to find it in ncurses.
1938AC_CHECK_LIB(ncurses, tparm)
0c565a0a 1939
a21616bd
KR
1940# These tell us which Kerberos-related libraries to use.
1941if test "${with_kerberos+set}" = set; then
1942 AC_CHECK_LIB(com_err, com_err)
1943 AC_CHECK_LIB(k5crypto, mit_des_cbc_encrypt)
1944 AC_CHECK_LIB(crypto, mit_des_cbc_encrypt)
1945 AC_CHECK_LIB(krb5, krb5_init_context)
1946 if test "${with_kerberos5+set}" != set; then
1947 AC_CHECK_LIB(des425, des_cbc_encrypt,,
1948 AC_CHECK_LIB(des, des_cbc_encrypt))
1949 AC_CHECK_LIB(krb4, krb_get_cred,,
1950 AC_CHECK_LIB(krb, krb_get_cred))
1951 fi
1952
1953 if test "${with_kerberos5+set}" = set; then
1954 AC_CHECK_HEADERS(krb5.h)
1955 else
1956 AC_CHECK_HEADERS(des.h,,
1957 AC_CHECK_HEADERS(kerberosIV/des.h,,
1958 AC_CHECK_HEADERS(kerberos/des.h)))
1959 AC_CHECK_HEADERS(krb.h,,
1960 AC_CHECK_HEADERS(kerberosIV/krb.h,,
1961 AC_CHECK_HEADERS(kerberos/krb.h)))
1962 fi
1963 AC_CHECK_HEADERS(com_err.h)
1964fi
1965
c4510052
PE
1966# Solaris requires -lintl if you want strerror (which calls dgettext)
1967# to return localized messages.
1968AC_CHECK_LIB(intl, dgettext)
1969
0c565a0a
RS
1970AC_MSG_CHECKING(whether localtime caches TZ)
1971AC_CACHE_VAL(emacs_cv_localtime_cache,
fcc303f4 1972[if test x$ac_cv_func_tzset = xyes; then
0c565a0a 1973AC_TRY_RUN([#include <time.h>
22cc077c
RS
1974extern char **environ;
1975unset_TZ ()
1976{
1977 char **from, **to;
1978 for (to = from = environ; (*to = *from); from++)
1979 if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
1980 to++;
1981}
98ab445d
RS
1982char TZ_GMT0[] = "TZ=GMT0";
1983char TZ_PST8[] = "TZ=PST8";
0c565a0a
RS
1984main()
1985{
1986 time_t now = time ((time_t *) 0);
22cc077c 1987 int hour_GMT0, hour_unset;
98ab445d 1988 if (putenv (TZ_GMT0) != 0)
0c565a0a 1989 exit (1);
22cc077c
RS
1990 hour_GMT0 = localtime (&now)->tm_hour;
1991 unset_TZ ();
1992 hour_unset = localtime (&now)->tm_hour;
98ab445d 1993 if (putenv (TZ_PST8) != 0)
0c565a0a 1994 exit (1);
22cc077c
RS
1995 if (localtime (&now)->tm_hour == hour_GMT0)
1996 exit (1);
1997 unset_TZ ();
1998 if (localtime (&now)->tm_hour != hour_unset)
1999 exit (1);
2000 exit (0);
0c565a0a
RS
2001}], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
2002[# If we have tzset, assume the worst when cross-compiling.
2003emacs_cv_localtime_cache=yes])
2004else
2005 # If we lack tzset, report that localtime does not cache TZ,
2006 # since we can't invalidate the cache if we don't have tzset.
2007 emacs_cv_localtime_cache=no
2008fi])dnl
2009AC_MSG_RESULT($emacs_cv_localtime_cache)
2010if test $emacs_cv_localtime_cache = yes; then
2011 AC_DEFINE(LOCALTIME_CACHE)
2012fi
9ec10b2f 2013
3d68df05 2014if test "x$HAVE_TIMEVAL" = xyes; then
8a2c2328
DL
2015 AC_CHECK_FUNCS(gettimeofday)
2016 AC_CACHE_CHECK(whether gettimeofday can accept two arguments,
2017 emacs_cv_gettimeofday_two_arguments,
2018 AC_TRY_COMPILE([
5ab52d42
RS
2019#ifdef TIME_WITH_SYS_TIME
2020#include <sys/time.h>
2021#include <time.h>
2022#else
2023#ifdef HAVE_SYS_TIME_H
2024#include <sys/time.h>
2025#else
2026#include <time.h>
2027#endif
290c1191 2028#endif],
8a2c2328
DL
2029 [struct timeval time;
2030 gettimeofday (&time, 0);],
2031 emacs_cv_gettimeofday_two_arguments=yes,
2032 emacs_cv_gettimeofday_two_arguments=no))
fd0a060b
AS
2033 if test $emacs_cv_gettimeofday_two_arguments = no; then
2034 AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT)
2035 fi
5ab52d42
RS
2036fi
2037
8a2c2328
DL
2038dnl Note that AC_STRUCT_TIMEZONE doesn't do what you might expect.
2039if test "$ac_cv_func_gettimeofday" = yes; then
2040 AC_CACHE_CHECK([for struct timezone], emacs_cv_struct_timezone,
2041 [AC_TRY_COMPILE([#include <sys/time.h>],
2042 [struct timezone tz;],
2043 dnl It may be that we can't call gettimeofday with a non-null pointer,
2044 dnl even though we have struct timezone (e.g. HPUX). In that case
2045 dnl we'll lie about struct timezone.
2046 [AC_TRY_RUN([
2047#ifdef TIME_WITH_SYS_TIME
2048#include <sys/time.h>
2049#include <time.h>
2050#else
2051#ifdef HAVE_SYS_TIME_H
2052#include <sys/time.h>
2053#else
2054#include <time.h>
2055#endif
2056#endif
2057main () {
2058 struct timeval time;
2059 struct timezone dummy;
2060 exit (gettimeofday (&time, &dummy));
2061}],
2062 emacs_cv_struct_timezone=yes,
2063 emacs_cv_struct_timezone=no, emacs_cv_struct_timezone=yes)],
2064 emacs_cv_struct_timezone=no)])
2065fi
2066
9ec10b2f 2067ok_so_far=yes
6e0dc84a 2068AC_CHECK_FUNC(socket, , ok_so_far=no)
9ec10b2f 2069if test $ok_so_far = yes; then
6e0dc84a 2070 AC_CHECK_HEADER(netinet/in.h, , ok_so_far=no)
9ec10b2f
DM
2071fi
2072if test $ok_so_far = yes; then
6e0dc84a 2073 AC_CHECK_HEADER(arpa/inet.h, , ok_so_far=no)
9ec10b2f
DM
2074fi
2075if test $ok_so_far = yes; then
2076 AC_DEFINE(HAVE_INET_SOCKETS)
2077fi
2078
7bbbba31
DM
2079if test -f /usr/lpp/X11/bin/smt.exp; then
2080 AC_DEFINE(HAVE_AIX_SMT_EXP)
2081fi
2082
27b07953
GM
2083AC_MSG_CHECKING(whether system supports dynamic ptys)
2084if test -d /dev/pts && ls -d /dev/ptmx > /dev/null 2>&1 ; then
2085 AC_MSG_RESULT(yes)
2086 AC_DEFINE(HAVE_DEV_PTMX)
2087else
2088 AC_MSG_RESULT(no)
2089fi
2090
79e12078 2091AC_FUNC_VFORK
142e4bed 2092AC_FUNC_MMAP
79e12078 2093
8170f46b
DL
2094# Fixme: This should be replaced when we have autoconf 2.14.
2095AC_SIZE_T
2096
9ec10b2f
DM
2097# Set up the CFLAGS for real compilation, so we can substitute it.
2098CFLAGS="$REAL_CFLAGS"
5a9bf171 2099CPPFLAGS="$REAL_CPPFLAGS"
9ec10b2f
DM
2100
2101changequote(, )dnl
2102#### Find out which version of Emacs this is.
2103version=`grep 'defconst[ ]*emacs-version' ${srcdir}/lisp/version.el \
2104 | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`
2105changequote([, ])dnl
2106if test x"${version}" = x; then
2107 AC_MSG_ERROR(can't find current emacs version in \`${srcdir}/lisp/version.el'.)
2108fi
2109
9ec10b2f
DM
2110### Specify what sort of things we'll be editing into Makefile and config.h.
2111### Use configuration here uncanonicalized to avoid exceeding size limits.
2112AC_SUBST(version)
2113AC_SUBST(configuration)
3cd69289 2114AC_SUBST(canonical)
9ec10b2f
DM
2115AC_SUBST(srcdir)
2116AC_SUBST(prefix)
2117AC_SUBST(exec_prefix)
2118AC_SUBST(bindir)
2119AC_SUBST(datadir)
3cd69289
DM
2120AC_SUBST(sharedstatedir)
2121AC_SUBST(libexecdir)
9ec10b2f
DM
2122AC_SUBST(mandir)
2123AC_SUBST(infodir)
2124AC_SUBST(lispdir)
2125AC_SUBST(locallisppath)
2126AC_SUBST(lisppath)
66d736a9 2127AC_SUBST(x_default_search_path)
9ec10b2f 2128AC_SUBST(etcdir)
9ec10b2f
DM
2129AC_SUBST(archlibdir)
2130AC_SUBST(docdir)
3cd69289 2131AC_SUBST(bitmapdir)
9ec10b2f
DM
2132AC_SUBST(c_switch_system)
2133AC_SUBST(c_switch_machine)
2134AC_SUBST(LD_SWITCH_X_SITE)
2135AC_SUBST(LD_SWITCH_X_SITE_AUX)
2136AC_SUBST(C_SWITCH_X_SITE)
2137AC_SUBST(CFLAGS)
2138AC_SUBST(X_TOOLKIT_TYPE)
2139AC_SUBST(machfile)
2140AC_SUBST(opsysfile)
1ca2077a 2141AC_SUBST(GETLOADAVG_LIBS)
9ec10b2f 2142
3cd69289 2143AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "${canonical}")
6d1da0d1 2144AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}")
9ec10b2f
DM
2145AC_DEFINE_UNQUOTED(config_machfile, "${machfile}")
2146AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}")
2147AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE})
2148AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX})
2149AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE, ${C_SWITCH_X_SITE})
2150AC_DEFINE_UNQUOTED(UNEXEC_SRC, ${UNEXEC_SRC})
2151
2152if test "${HAVE_X_WINDOWS}" = "yes" ; then
2153 AC_DEFINE(HAVE_X_WINDOWS)
2154fi
2155if test "${USE_X_TOOLKIT}" != "none" ; then
2156 AC_DEFINE(USE_X_TOOLKIT)
2157fi
2158if test "${HAVE_X11}" = "yes" ; then
2159 AC_DEFINE(HAVE_X11)
2160fi
2161if test "${HAVE_XFREE386}" = "yes" ; then
2162 AC_DEFINE(HAVE_XFREE386)
2163fi
08741ba9
RS
2164if test "${HAVE_MENUS}" = "yes" ; then
2165 AC_DEFINE(HAVE_MENUS)
9ec10b2f
DM
2166fi
2167if test "${GNU_MALLOC}" = "yes" ; then
2168 AC_DEFINE(GNU_MALLOC)
2169fi
2170if test "${REL_ALLOC}" = "yes" ; then
2171 AC_DEFINE(REL_ALLOC)
2172fi
9ec10b2f 2173
9ec10b2f
DM
2174#### Report on what we decided to do.
2175echo "
9ec10b2f
DM
2176Configured for \`${canonical}'.
2177
2178 Where should the build process find the source code? ${srcdir}
2179 What operating system and machine description files should Emacs use?
2180 \`${opsysfile}' and \`${machfile}'
2181 What compiler should emacs be built with? ${CC} ${CFLAGS}
2182 Should Emacs use the GNU version of malloc? ${GNU_MALLOC}${GNU_MALLOC_reason}
2183 Should Emacs use the relocating allocator for buffers? ${REL_ALLOC}
2184 What window system should Emacs use? ${window_system}
509fccc3
RS
2185 What toolkit should Emacs use? ${USE_X_TOOLKIT}"
2186
2187if test -n "${x_includes}"; then
2188echo " Where do we find X Windows header files? ${x_includes}"
2189else
2190echo " Where do we find X Windows header files? Standard dirs"
2191fi
2192if test -n "${x_libraries}"; then
2193echo " Where do we find X Windows libraries? ${x_libraries}"
2194else
2195echo " Where do we find X Windows libraries? Standard dirs"
2196fi
9ec10b2f 2197
b412189c
GM
2198echo " Does Emacs use -lXaw3d? ${HAVE_XAW3D}"
2199echo " Does Emacs use -lXpm? ${HAVE_XPM}"
2200echo " Does Emacs use -ljpeg? ${HAVE_JPEG}"
495ccc04 2201echo " Does Emacs use -ltiff? ${HAVE_TIFF}"
b412189c
GM
2202echo " Does Emacs use -lungif? ${HAVE_GIF}"
2203echo " Does Emacs use -lpng? ${HAVE_PNG}"
20c1822e 2204echo " Does Emacs use X toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}"
509fccc3 2205echo
9ec10b2f
DM
2206
2207# Remove any trailing slashes in these variables.
2208changequote(, )dnl
2209test "${prefix}" != NONE &&
2210 prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
2211test "${exec_prefix}" != NONE &&
2212 exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`
2213changequote([, ])dnl
2214
5f8c8f00 2215AC_OUTPUT(Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile \
66a96cff 2216 man/Makefile lwlib/Makefile src/Makefile.c:src/Makefile.in \
9406115e 2217 lisp/Makefile leim/Makefile, [
7bbbba31 2218
b63df577 2219### Make the necessary directories, if they don't exist.
e0a3686b 2220for dir in etc lisp ; do
b3947967 2221 test -d ${dir} || mkdir ${dir}
9ec10b2f
DM
2222done
2223
5f8c8f00
RS
2224# Build src/Makefile from ${srcdir}/src/Makefile.c
2225# and lib-src/Makefile from ${srcdir}/lib-src/Makefile.c
2226# This must be done after src/config.h is built, since we rely on that file.
9ec10b2f 2227
2d73167a 2228changequote(, )dnl The horror, the horror.
9ec10b2f
DM
2229# Now get this: Some word that is part of the ${srcdir} directory name
2230# or the ${configuration} value might, just might, happen to be an
2231# identifier like `sun4' or `i386' or something, and be predefined by
2232# the C preprocessor to some helpful value like 1, or maybe the empty
2233# string. Needless to say consequent macro substitutions are less
2234# than conducive to the makefile finding the correct directory.
2235undefs="`echo $top_srcdir $configuration $canonical |
2236sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/ *$//' \
2237 -e 's/ */ -U/g' -e 's/-U[0-9][^ ]*//g' \
2238`"
2d73167a 2239changequote([, ])dnl
9ec10b2f 2240
6a4bb05d
RS
2241echo creating src/epaths.h
2242make epaths-force
ab85d355 2243
9ec10b2f
DM
2244echo creating lib-src/Makefile
2245( cd lib-src
2246 rm -f junk.c junk1.c junk2.c
2247 sed -e '/start of cpp stuff/q' \
5f8c8f00 2248 < Makefile.c > junk1.c
9ec10b2f
DM
2249 sed -e '1,/start of cpp stuff/d'\
2250 -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
5f8c8f00 2251 < Makefile.c > junk.c
9ec10b2f
DM
2252 $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
2253 sed -e 's/^ / /' -e '/^#/d' -e '/^[ \f]*$/d' > junk2.c
2254 cat junk1.c junk2.c > Makefile.new
2255 rm -f junk.c junk1.c junk2.c
2256 chmod 444 Makefile.new
2257 mv -f Makefile.new Makefile
2258)
2259
2260echo creating src/Makefile
2261( cd src
2262 rm -f junk.c junk1.c junk2.c
2263 sed -e '/start of cpp stuff/q' \
5f8c8f00 2264 < Makefile.c > junk1.c
9ec10b2f
DM
2265 sed -e '1,/start of cpp stuff/d'\
2266 -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
5f8c8f00 2267 < Makefile.c > junk.c
9ec10b2f
DM
2268 $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
2269 sed -e 's/^ / /' -e '/^#/d' -e '/^[ \f]*$/d' > junk2.c
2270 cat junk1.c junk2.c > Makefile.new
2271 rm -f junk.c junk1.c junk2.c
2272 chmod 444 Makefile.new
2273 mv -f Makefile.new Makefile
2274)
8b66759a
DM
2275
2276if test ! -f src/.gdbinit && test -f $top_srcdir/src/.gdbinit; then
2277 echo creating src/.gdbinit
2278 echo source $top_srcdir/src/.gdbinit > src/.gdbinit
2279fi
2280
66a96cff
RS
2281# This is how we know whether to re-run configure in certain cases.
2282touch src/config.stamp
2283
ea50c238 2284], [CPP="$CPP" CPPFLAGS="$CPPFLAGS"])