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