(read_char): Temporarily clear Vquit_flag
[bpt/emacs.git] / configure.in
CommitLineData
9ec10b2f
DM
1dnl This is an autoconf script.
2dnl To rebuild the `configure' script from this, execute the command
3dnl autoconf
4dnl in the directory containing this script.
caaaf02a 5AC_PREREQ(2.0)dnl
9ec10b2f
DM
6AC_INIT(src/lisp.h)
7AC_CONFIG_HEADER(src/config.h)
8
9ec10b2f
DM
9lispdir='${datadir}/emacs/${version}/lisp'
10locallisppath='${datadir}/emacs/site-lisp'
11lisppath='${locallisppath}:${lispdir}'
12etcdir='${datadir}/emacs/${version}/etc'
3cd69289 13lockdir='${sharedstatedir}/emacs/lock'
9ec10b2f
DM
14docdir='${datadir}/emacs/${version}/etc'
15
39a7c455 16AC_ARG_WITH(gcc,
4f734bde
DM
17[ --with-gcc use GCC to compile Emacs])
18AC_ARG_WITH(pop,
19[ --with-pop support POP for mail retrieval],
20[AC_DEFINE(MAIL_USE_POP)])
21AC_ARG_WITH(kerberos,
22[ --with-kerberos support Kerberos-authenticated POP],
23[AC_DEFINE(KERBEROS)])
24AC_ARG_WITH(hesiod,
25[ --with-hesiod support Hesiod to get the POP server host],
26[AC_DEFINE(HESIOD)])
27dnl This should be the last --with option, because --with-x is
28dnl added later on when we find the path of X, and it's best to
29dnl keep them together visually.
9ec10b2f 30AC_ARG_WITH(x-toolkit,
4f734bde 31[ --with-x-toolkit=KIT use an X toolkit (KIT = yes/lucid/athena/motif)],
9ec10b2f
DM
32[ case "${withval}" in
33 y | ye | yes ) val=athena ;;
34 n | no ) val=no ;;
35 l | lu | luc | luci | lucid ) val=lucid ;;
36 a | at | ath | athe | athena ) val=athena ;;
3cd69289 37 m | mo | mot | moti | motif ) val=motif ;;
2e71ec17 38dnl These don't currently work.
2e71ec17
DM
39dnl o | op | ope | open | open- | open-l | open-lo \
40dnl | open-loo | open-look ) val=open-look ;;
9ec10b2f 41 * )
2e71ec17
DM
42dnl AC_MSG_ERROR([the \`--with-x-toolkit' option is supposed to have a value
43dnl which is \`yes', \`no', \`lucid', \`athena', \`motif' or \`open-look'.])
9ec10b2f 44AC_MSG_ERROR([the \`--with-x-toolkit' option is supposed to have a value
3cd69289 45which is \`yes', \`no', \`lucid', \`athena', or \`motif'.
9ec10b2f
DM
46Currently, \`yes', \`athena' and \`lucid' are synonyms.])
47 ;;
48 esac
49 with_x_toolkit=$val
50])
9ec10b2f
DM
51
52#### Make srcdir absolute, if it isn't already. It's important to
53#### avoid running the path through pwd unnecessary, since pwd can
069df4bf
DM
54#### give you automounter prefixes, which can go away. We do all this
55#### so Emacs can find its files when run uninstalled.
9ec10b2f
DM
56case "${srcdir}" in
57 /* ) ;;
58 . )
59 ## We may be able to use the $PWD environment variable to make this
60 ## absolute. But sometimes PWD is inaccurate.
f6e8adea
DM
61 ## Make sure CDPATH doesn't affect cd (in case PWD is relative).
62 CDPATH=
9ec10b2f
DM
63 if test "${PWD}" != "" && test "`(cd ${PWD} ; sh -c pwd)`" = "`pwd`" ;
64 then
65 srcdir="$PWD"
66 else
67 srcdir="`(cd ${srcdir}; pwd)`"
68 fi
69 ;;
70 * ) srcdir="`(cd ${srcdir}; pwd)`" ;;
71esac
72
73#### Check if the source directory already has a configured system in it.
74if test `pwd` != `(cd ${srcdir} && pwd)` \
75 && test -f "${srcdir}/src/config.h" ; then
76 AC_MSG_WARN([The directory tree \`${srcdir}' is being used
77 as a build directory right now; it has been configured in its own
78 right. To configure in another directory as well, you MUST
79 use GNU make. If you do not have GNU make, then you must
80 now do \`make distclean' in ${srcdir},
81 and then run $0 again.])
82
2d73167a 83changequote(, )dnl
9ec10b2f 84 extrasub='/^VPATH[ ]*=/c\
2d73167a 85changequote([, ])dnl
9ec10b2f
DM
86vpath %.c $(srcdir)\
87vpath %.h $(srcdir)\
88vpath %.y $(srcdir)\
89vpath %.l $(srcdir)\
90vpath %.s $(srcdir)\
91vpath %.in $(srcdir)'
92fi
93
94#### Given the configuration name, set machfile and opsysfile to the
95#### names of the m/*.h and s/*.h files we should use.
96
97### Canonicalize the configuration name.
98
99AC_CANONICAL_HOST
100canonical=$host
7bbbba31 101configuration=$host_alias
9ec10b2f
DM
102
103changequote(, )dnl
104
105### If you add support for a new configuration, add code to this
106### switch statement to recognize your configuration name and select
107### the appropriate operating system and machine description files.
108
109### You would hope that you could choose an m/*.h file pretty much
110### based on the machine portion of the configuration name, and an s-
111### file based on the operating system portion. However, it turns out
112### that each m/*.h file is pretty manufacturer-specific - for
113### example, apollo.h, hp9000s300.h, mega68k, news.h, and tad68k are
114### all 68000 machines; mips.h, pmax.h, and news-risc are all MIPS
115### machines. So we basically have to have a special case for each
116### configuration name.
117###
118### As far as handling version numbers on operating systems is
119### concerned, make sure things will fail in a fixable way. If
120### /etc/MACHINES doesn't say anything about version numbers, be
121### prepared to handle anything reasonably. If version numbers
122### matter, be sure /etc/MACHINES says something about it.
123###
124### Eric Raymond says we should accept strings like "sysvr4" to mean
125### "System V Release 4"; he writes, "The old convention encouraged
126### confusion between `system' and `release' levels'."
127
128machine='' opsys='' unported=no
129case "${canonical}" in
130
131 ## NetBSD ports
132 *-*-netbsd* )
133 opsys=netbsd
134 case "${canonical}" in
135 i[345]86-*-netbsd*) machine=intel386 ;;
136 m68k-*-netbsd*)
137 # This is somewhat bogus.
138 machine=hp9000s300 ;;
139 mips-*-netbsd*) machine=pmax ;;
140 ns32k-*-netbsd*) machine=ns32000 ;;
141 sparc-*-netbsd*) machine=sparc ;;
142 esac
143 ;;
144
3cd69289
DM
145 ## Acorn RISCiX:
146 arm-acorn-riscix1.1* )
147 machine=acorn opsys=riscix1-1
148 ;;
149 arm-acorn-riscix1.2* | arm-acorn-riscix )
150 machine=acorn opsys=riscix1-2
151 ;;
152
9ec10b2f
DM
153 ## Alliant machines
154 ## Strictly speaking, we need the version of the alliant operating
155 ## system to choose the right machine file, but currently the
156 ## configuration name doesn't tell us enough to choose the right
157 ## one; we need to give alliants their own operating system name to
158 ## do this right. When someone cares, they can help us.
159 fx80-alliant-* )
160 machine=alliant4 opsys=bsd4-2
161 ;;
162 i860-alliant-* )
163 machine=alliant-2800 opsys=bsd4-3
164 ;;
165
3cd69289
DM
166 alpha-dec-osf* )
167 machine=alpha opsys=osf1
168 ;;
169
9ec10b2f
DM
170 ## Altos 3068
171 m68*-altos-sysv* )
172 machine=altos opsys=usg5-2
173 ;;
174
175 ## Amdahl UTS
176 580-amdahl-sysv* )
177 machine=amdahl opsys=usg5-2-2
178 ;;
179
acd04c87
RS
180 ## Apollo, Domain/OS
181 m68*-apollo-* )
182 machine=apollo opsys=bsd4-3
9ec10b2f
DM
183 ;;
184
185 ## AT&T 3b2, 3b5, 3b15, 3b20
186 we32k-att-sysv* )
187 machine=att3b opsys=usg5-2-2
188 ;;
189
190 ## AT&T 3b1 - The Mighty Unix PC!
191 m68*-att-sysv* )
192 machine=7300 opsys=usg5-2-2
193 ;;
194
195 ## Bull dpx20
196 rs6000-bull-bosx* )
197 machine=ibmrs6000 opsys=aix3-2
198 ;;
199
200 ## Bull dpx2
201 m68*-bull-sysv3* )
202 machine=dpx2 opsys=usg5-3
203 ;;
204
205 ## Bull sps7
206 m68*-bull-sysv2* )
207 machine=sps7 opsys=usg5-2
208 ;;
209
210 ## CCI 5/32, 6/32 -- see "Tahoe".
211
212 ## Celerity
213 ## I don't know what configuration name to use for this; config.sub
214 ## doesn't seem to know anything about it. Hey, Celerity users, get
215 ## in touch with us!
216 celerity-celerity-bsd* )
217 machine=celerity opsys=bsd4-2
218 ;;
219
220 ## Clipper
221 ## What operating systems does this chip run that Emacs has been
222 ## tested on?
223 clipper-* )
224 machine=clipper
225 ## We'll use the catch-all code at the bottom to guess the
226 ## operating system.
227 ;;
228
229 ## Convex
230 *-convex-bsd* | *-convex-convexos* )
231 machine=convex opsys=bsd4-3
232 ## Prevents suprious white space in makefiles - d.m.cooke@larc.nasa.gov
233 NON_GNU_CPP="cc -E -P"
234 ;;
235
236 ## Cubix QBx/386
237 i[345]86-cubix-sysv* )
238 machine=intel386 opsys=usg5-3
239 ;;
240
241 ## Cydra 5
242 cydra*-cydrome-sysv* )
243 machine=cydra5 opsys=usg5-3
244 ;;
245
246 ## Data General AViiON Machines
247 m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* )
248 machine=aviion opsys=dgux5-4r3
249 ;;
250 m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* )
251 machine=aviion opsys=dgux5-4r2
252 ;;
253 m88k-dg-dgux* )
254 machine=aviion opsys=dgux
255 ;;
256
257 ## DECstations
258 mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0* | mips-dec-bsd4.2* )
259 machine=pmax opsys=bsd4-2
260 ;;
261 mips-dec-ultrix* | mips-dec-bsd* )
262 machine=pmax opsys=bsd4-3
263 ;;
264 mips-dec-osf* )
265 machine=pmax opsys=osf1
266 ;;
b95c8e7e
RS
267 mips-dec-mach_bsd4.3* )
268 machine=pmax opsys=mach-bsd4-3
269 ;;
9ec10b2f
DM
270
271 ## Motorola Delta machines
272 m68k-motorola-sysv* | m68000-motorola-sysv* )
273 machine=delta opsys=usg5-3
274 if test -z "`type gnucc | grep 'not found'`"
018427ee
RS
275 then
276 if test -s /etc/167config
277 then CC="gnucc -m68040"
278 else CC="gnucc -m68881"
279 fi
9ec10b2f
DM
280 else
281 if test -z "`type gcc | grep 'not found'`"
282 then CC=gcc
283 else CC=cc
284 fi
285 fi
286 ;;
287 m88k-motorola-sysv4* )
63c1d3f2
RS
288 # jbotte@bnr.ca says that UNIX_System_V <hostName> 4.0 R40V4.3 m88k mc88110
289 # needs POSIX_SIGNALS and therefore needs usg5-4-2.
290 # I hope there are not other 4.0 versions for this machine
291 # which really need usg5-4 instead.
292 machine=delta88k opsys=usg5-4-2
9ec10b2f
DM
293 ;;
294 m88k-motorola-sysv* | m88k-motorola-m88kbcs* )
295 machine=delta88k opsys=usg5-3
296 ;;
297
298 ## Dual machines
299 m68*-dual-sysv* )
300 machine=dual opsys=usg5-2
301 ;;
302 m68*-dual-uniplus* )
303 machine=dual opsys=unipl5-2
304 ;;
305
306 ## Elxsi 6400
307 elxsi-elxsi-sysv* )
308 machine=elxsi opsys=usg5-2
309 ;;
310
311 ## Encore machines
312 ns16k-encore-bsd* )
313 machine=ns16000 opsys=umax
314 ;;
315
316 ## The GEC 93 - apparently, this port isn't really finished yet.
317
318 ## Gould Power Node and NP1
319 pn-gould-bsd4.2* )
320 machine=gould opsys=bsd4-2
321 ;;
322 pn-gould-bsd4.3* )
323 machine=gould opsys=bsd4-3
324 ;;
325 np1-gould-bsd* )
326 machine=gould-np1 opsys=bsd4-3
327 ;;
328
329 ## Harris Night Hawk machines running CX/UX (a 5000 looks just like a 4000
330 ## as far as Emacs is concerned).
331 m88k-harris-cxux* )
332 # Build needs to be different on 7.0 and later releases
333 case "`uname -r`" in
334 [56].[0-9] ) machine=nh4000 opsys=cxux ;;
335 [7].[0-9] ) machine=nh4000 opsys=cxux7 ;;
336 esac
337 ;;
338 ## Harris ecx or gcx running CX/UX (Series 1200, Series 3000)
339 m68k-harris-cxux* )
340 machine=nh3000 opsys=cxux
341 ;;
342
343 ## Honeywell XPS100
344 xps*-honeywell-sysv* )
345 machine=xps100 opsys=usg5-2
346 ;;
347
348 ## HP 9000 series 200 or 300
349 m68*-hp-bsd* )
350 machine=hp9000s300 opsys=bsd4-3
351 ;;
42c3a7f7 352 ## HP/UX 7, 8, 9, and 10 are supported on these machines.
9ec10b2f
DM
353 m68*-hp-hpux* )
354 case "`uname -r`" in
355 ## Someone's system reports A.B8.05 for this.
356 ## I wonder what other possibilities there are.
357 *.B8.* ) machine=hp9000s300 opsys=hpux8 ;;
358 *.08.* ) machine=hp9000s300 opsys=hpux8 ;;
359 *.09.* ) machine=hp9000s300 opsys=hpux9 ;;
42c3a7f7 360 *.10.* ) machine=hp9000s300 opsys=hpux9shr ;;
9ec10b2f
DM
361 *) machine=hp9000s300 opsys=hpux ;;
362 esac
363 ;;
364
365 ## HP 9000 series 700 and 800, running HP/UX
366 hppa*-hp-hpux7* )
367 machine=hp800 opsys=hpux
368 ;;
369 hppa*-hp-hpux8* )
370 machine=hp800 opsys=hpux8
371 ;;
372 hppa*-hp-hpux9shr* )
373 machine=hp800 opsys=hpux9shr
374 ;;
375 hppa*-hp-hpux9* )
376 machine=hp800 opsys=hpux9
377 ;;
42c3a7f7
KH
378 hppa*-hp-hpux10* )
379 machine=hp800 opsys=hpux9shr
380 ;;
9ec10b2f
DM
381
382 ## HP 9000 series 700 and 800, running HP/UX
383 hppa*-hp-hpux* )
384 ## Cross-compilation? Nah!
385 case "`uname -r`" in
386 ## Someone's system reports A.B8.05 for this.
387 ## I wonder what other possibilities there are.
388 *.B8.* ) machine=hp800 opsys=hpux8 ;;
389 *.08.* ) machine=hp800 opsys=hpux8 ;;
390 *.09.* ) machine=hp800 opsys=hpux9 ;;
391 *) machine=hp800 opsys=hpux ;;
392 esac
393 ;;
394
395 ## Orion machines
396 orion-orion-bsd* )
397 machine=orion opsys=bsd4-2
398 ;;
399 clipper-orion-bsd* )
400 machine=orion105 opsys=bsd4-2
401 ;;
402
403 ## IBM machines
404 i[345]86-ibm-aix1.1* )
405 machine=ibmps2-aix opsys=usg5-2-2
406 ;;
407 i[345]86-ibm-aix1.[23]* | i[345]86-ibm-aix* )
408 machine=ibmps2-aix opsys=usg5-3
409 ;;
410 i370-ibm-aix*)
411 machine=ibm370aix opsys=usg5-3
412 ;;
046545ec 413 rs6000-ibm-aix3.1* | powerpc-ibm-aix3.1* )
9ec10b2f
DM
414 machine=ibmrs6000 opsys=aix3-1
415 ;;
046545ec 416 rs6000-ibm-aix3.2.5 | powerpc-ibm-aix3.2.5 )
9ec10b2f
DM
417 machine=ibmrs6000 opsys=aix3-2-5
418 ;;
b63df577
RS
419 rs6000-ibm-aix4.1* | powerpc-ibm-aix4.1* )
420 machine=ibmrs6000 opsys=aix4-1
421 ;;
422 rs6000-ibm-aix4* | powerpc-ibm-aix4* )
423 machine=ibmrs6000 opsys=aix4
424 ;;
046545ec 425 rs6000-ibm-aix* | powerpc-ibm-aix* )
9ec10b2f
DM
426 machine=ibmrs6000 opsys=aix3-2
427 ;;
428 romp-ibm-bsd4.3* )
429 machine=ibmrt opsys=bsd4-3
430 ;;
431 romp-ibm-bsd4.2* )
432 machine=ibmrt opsys=bsd4-2
433 ;;
434 romp-ibm-aos4.3* )
435 machine=ibmrt opsys=bsd4-3
436 ;;
437 romp-ibm-aos4.2* )
438 machine=ibmrt opsys=bsd4-2
439 ;;
440 romp-ibm-aos* )
441 machine=ibmrt opsys=bsd4-3
442 ;;
443 romp-ibm-bsd* )
444 machine=ibmrt opsys=bsd4-3
445 ;;
446 romp-ibm-aix* )
447 machine=ibmrt-aix opsys=usg5-2-2
448 ;;
449
450 ## Integrated Solutions `Optimum V'
451 m68*-isi-bsd4.2* )
452 machine=isi-ov opsys=bsd4-2
453 ;;
454 m68*-isi-bsd4.3* )
455 machine=isi-ov opsys=bsd4-3
456 ;;
457
458 ## Intel 386 machines where we do care about the manufacturer
459 i[345]86-intsys-sysv* )
460 machine=is386 opsys=usg5-2-2
461 ;;
462
463 ## Prime EXL
464 i[345]86-prime-sysv* )
465 machine=i386 opsys=usg5-3
466 ;;
467
3cd69289 468 ## Sequent Symmetry running Dynix
9ec10b2f
DM
469 i[345]86-sequent-bsd* )
470 machine=symmetry opsys=bsd4-3
471 ;;
472
3cd69289
DM
473 ## Sequent Symmetry running DYNIX/ptx
474 ## Use the old cpp rather than the newer ANSI one.
475 i[345]86-sequent-ptx* )
476 machine=sequent-ptx opsys=ptx
477 NON_GNU_CPP="/lib/cpp"
478 ;;
479
9ec10b2f
DM
480 ## Unspecified sysv on an ncr machine defaults to svr4.2.
481 ## (Plain usg5-4 doesn't turn on POSIX signals, which we need.)
482 i[345]86-ncr-sysv* )
b0f36760 483 machine=ncr386 opsys=usg5-4-2
9ec10b2f
DM
484 ;;
485
cbce363f
RS
486 ## Intel Paragon OSF/1
487 i860-intel-osf1* )
488 machine=paragon opsys=osf1 NON_GNU_CPP=/usr/mach/lib/cpp
489 ;;
490
9ec10b2f
DM
491 ## Intel 860
492 i860-*-sysv4* )
493 machine=i860 opsys=usg5-4
494 NON_GNU_CC="/bin/cc" # Ie, not the one in /usr/ucb/cc.
495 NON_GNU_CPP="/usr/ccs/lib/cpp" # cc -E tokenizes macro expansion.
496 ;;
497
498 ## Masscomp machines
499 m68*-masscomp-rtu* )
500 machine=masscomp opsys=rtu
501 ;;
502
503 ## Megatest machines
504 m68*-megatest-bsd* )
505 machine=mega68 opsys=bsd4-2
506 ;;
507
508 ## Workstations sold by MIPS
509 ## This is not necessarily all workstations using the MIPS processor -
510 ## Irises are produced by SGI, and DECstations by DEC.
511
512 ## etc/MACHINES lists mips.h and mips4.h as possible machine files,
513 ## and usg5-2-2 and bsd4-3 as possible OS files. The only guidance
514 ## it gives for choosing between the alternatives seems to be "Use
515 ## -machine=mips4 for RISCOS version 4; use -opsystem=bsd4-3 with
516 ## the BSD world." I'll assume that these are instructions for
517 ## handling two odd situations, and that every other situation
518 ## should use mips.h and usg5-2-2, they being listed first.
519 mips-mips-usg* )
520 machine=mips4
521 ## Fall through to the general code at the bottom to decide on the OS.
522 ;;
523 mips-mips-riscos4* )
524 machine=mips4 opsys=bsd4-3
525 NON_GNU_CC="cc -systype bsd43"
526 NON_GNU_CPP="cc -systype bsd43 -E"
527 ;;
b95c8e7e
RS
528 mips-mips-riscos5* )
529 machine=mips4 opsys=riscos5
530 NON_GNU_CC="cc -systype bsd43"
531 NON_GNU_CPP="cc -systype bsd43 -E"
532 ;;
9ec10b2f
DM
533 mips-mips-bsd* )
534 machine=mips opsys=bsd4-3
535 ;;
536 mips-mips-* )
537 machine=mips opsys=usg5-2-2
538 ;;
539
540 ## NeXT
541 m68*-next-* | i[345]86-next-* )
542 machine=next opsys=mach2
543 ;;
544
545 ## The complete machine from National Semiconductor
546 ns32k-ns-genix* )
547 machine=ns32000 opsys=usg5-2
548 ;;
549
550 ## NCR machines
551 m68*-ncr-sysv2* | m68*-ncr-sysvr2* )
552 machine=tower32 opsys=usg5-2-2
553 ;;
554 m68*-ncr-sysv3* | m68*-ncr-sysvr3* )
555 machine=tower32v3 opsys=usg5-3
556 ;;
557
558 ## Nixdorf Targon 31
559 m68*-nixdorf-sysv* )
560 machine=targon31 opsys=usg5-2-2
561 ;;
562
563 ## Nu (TI or LMI)
564 m68*-nu-sysv* )
565 machine=nu opsys=usg5-2
566 ;;
567
568 ## Plexus
569 m68*-plexus-sysv* )
570 machine=plexus opsys=usg5-2
571 ;;
572
573 ## Pyramid machines
574 ## I don't really have any idea what sort of processor the Pyramid has,
575 ## so I'm assuming it is its own architecture.
576 pyramid-pyramid-bsd* )
577 machine=pyramid opsys=bsd4-2
578 ;;
579
580 ## Sequent Balance
581 ns32k-sequent-bsd4.2* )
582 machine=sequent opsys=bsd4-2
583 ;;
584 ns32k-sequent-bsd4.3* )
585 machine=sequent opsys=bsd4-3
586 ;;
587
588 ## Siemens Nixdorf
589 mips-siemens-sysv* )
590 machine=mips-siemens opsys=usg5-4
591 NON_GNU_CC=/usr/ccs/bin/cc
592 NON_GNU_CPP=/usr/ccs/lib/cpp
593 ;;
594
595 ## Silicon Graphics machines
596 ## Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
597 m68*-sgi-iris3.5* )
598 machine=irist opsys=iris3-5
599 ;;
600 m68*-sgi-iris3.6* | m68*-sgi-iris*)
601 machine=irist opsys=iris3-6
602 ;;
603 ## Iris 4D
604 mips-sgi-irix3* )
605 machine=iris4d opsys=irix3-3
606 ;;
4ab83697
RS
607 mips-sgi-irix4* )
608 machine=iris4d opsys=irix4-0
609 ;;
546fa279
RS
610 mips-sgi-irix6* )
611 machine=iris4d opsys=irix6-0
612 ;;
4ab83697 613 mips-sgi-irix5.[01]* )
9ec10b2f
DM
614 machine=iris4d opsys=irix5-0
615 ;;
4ab83697
RS
616 mips-sgi-irix5* | mips-sgi-irix* )
617 machine=iris4d opsys=irix5-2
9ec10b2f
DM
618 ;;
619
620 ## SONY machines
621 m68*-sony-bsd4.2* )
622 machine=news opsys=bsd4-2
623 ;;
624 m68*-sony-bsd4.3* )
625 machine=news opsys=bsd4-3
626 ;;
3d102c59 627 m68*-sony-newsos3* | m68*-sony-news3*)
9ec10b2f
DM
628 machine=news opsys=bsd4-3
629 ;;
3d102c59 630 mips-sony-bsd* | mips-sony-newsos4* | mips-sony-news4*)
9ec10b2f
DM
631 machine=news-risc opsys=bsd4-3
632 ;;
3d102c59 633 mips-sony-news* )
9ec10b2f
DM
634 machine=news-risc opsys=newsos5
635 ;;
636
637 ## Stride
638 m68*-stride-sysv* )
639 machine=stride opsys=usg5-2
640 ;;
641
642 ## Suns
643 *-sun-sunos* | *-sun-bsd* | *-sun-solaris* | i[345]86-*-solaris2* | i[345]86-*-sunos5* )
644 case "${canonical}" in
645 m68*-sunos1* ) machine=sun1 ;;
646 m68*-sunos2* ) machine=sun2 ;;
647 m68* ) machine=sun3 ;;
648 i[345]86-sun-sunos[34]* ) machine=sun386 ;;
649 i[345]86-*-* ) machine=intel386 ;;
650 sparc* ) machine=sparc ;;
651 * ) unported=yes ;;
652 esac
653 case "${canonical}" in
654 ## The Sun386 didn't get past 4.0.
655 i[345]86-*-sunos4 ) opsys=sunos4-0 ;;
656 *-sunos4.0* ) opsys=sunos4-0 ;;
b95c8e7e
RS
657 *-sunos4.1.[3-9]* )
658 opsys=sunos4shr
54bfe57b 659 NON_GNU_CPP=/usr/lib/cpp
9ec10b2f 660 ;;
9ec10b2f
DM
661 *-sunos4* | *-sunos ) opsys=sunos4-1
662 NON_GCC_TEST_OPTIONS=-Bstatic
663 GCC_TEST_OPTIONS=-static
664 ;;
665 *-sunos5.3* | *-solaris2.3* )
666 opsys=sol2-3
667 NON_GNU_CPP=/usr/ccs/lib/cpp
668 ;;
669 *-sunos5.4* | *-solaris2.4* )
670 opsys=sol2-4
671 NON_GNU_CPP=/usr/ccs/lib/cpp
672 ;;
2e567bad
KH
673 *-sunos5.5* | *-solaris2.5* )
674 opsys=sol2-5
675 NON_GNU_CPP=/usr/ccs/lib/cpp
676 ;;
9ec10b2f
DM
677 *-sunos5* | *-solaris* )
678 opsys=sol2
679 NON_GNU_CPP=/usr/ccs/lib/cpp
680 ;;
681 * ) opsys=bsd4-2 ;;
682 esac
683 ;;
684
685 ## Tadpole 68k
686 m68*-tadpole-sysv* )
687 machine=tad68k opsys=usg5-3
688 ;;
689
690 ## Tahoe machines
691 tahoe-tahoe-bsd4.2* )
692 machine=tahoe opsys=bsd4-2
693 ;;
694 tahoe-tahoe-bsd4.3* )
695 machine=tahoe opsys=bsd4-3
696 ;;
697
698 ## Tandem Integrity S2
699 mips-tandem-sysv* )
700 machine=tandem-s2 opsys=usg5-3
701 ;;
702
703 ## Tektronix XD88
704 m88k-tektronix-sysv3* )
705 machine=tekxd88 opsys=usg5-3
706 ;;
707
708 ## Tektronix 16000 box (6130?)
709 ns16k-tektronix-bsd* )
710 machine=ns16000 opsys=bsd4-2
711 ;;
712 ## Tektronix 4300
713 ## src/m/tek4300.h hints that this is a m68k machine.
714 m68*-tektronix-bsd* )
715 machine=tek4300 opsys=bsd4-3
716 ;;
717
718 ## Titan P2 or P3
719 ## We seem to have lost the machine-description file titan.h!
720 titan-titan-sysv* )
721 machine=titan opsys=usg5-3
722 ;;
723
724 ## Ustation E30 (SS5E)
725 m68*-unisys-uniplus* )
726 machine=ustation opsystem=unipl5-2
727 ;;
728
729 ## Vaxen.
730 vax-dec-* )
731 machine=vax
732 case "${canonical}" in
733 *-bsd4.1* ) opsys=bsd4-1 ;;
734 *-bsd4.2* | *-ultrix[0-3].* | *-ultrix4.0* ) opsys=bsd4-2 ;;
735 *-bsd4.3* | *-ultrix* ) opsys=bsd4-3 ;;
9ec10b2f
DM
736 *-sysv[01]* | *-sysvr[01]* ) opsys=usg5-0 ;;
737 *-sysv2* | *-sysvr2* ) opsys=usg5-2 ;;
738 *-vms* ) opsys=vms ;;
739 * ) unported=yes
740 esac
741 ;;
742
743 ## Whitechapel MG1
744 ns16k-whitechapel-* )
745 machine=mg1
746 ## We don't know what sort of OS runs on these; we'll let the
747 ## operating system guessing code below try.
748 ;;
749
750 ## Wicat
751 m68*-wicat-sysv* )
752 machine=wicat opsys=usg5-2
753 ;;
754
755 ## Intel 386 machines where we don't care about the manufacturer
756 i[345]86-*-* )
757 machine=intel386
758 case "${canonical}" in
759 *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;;
760 *-isc2.2* ) opsys=isc2-2 ;;
761 *-isc4.0* ) opsys=isc4-0 ;;
54bfe57b 762 *-isc4.* ) opsys=isc4-1 ;;
9ec10b2f
DM
763 *-isc* ) opsys=isc3-0 ;;
764 *-esix5* ) opsys=esix5r4; NON_GNU_CPP=/usr/lib/cpp ;;
765 *-esix* ) opsys=esix ;;
766 *-xenix* ) opsys=xenix ;;
767 *-linux* ) opsys=linux ;;
768 *-sco3.2v4* ) opsys=sco4 ; NON_GNU_CPP=/lib/cpp ;;
5be039b9
RS
769 *-bsd386* | *-bsdi1* ) opsys=bsd386 ;;
770 *-bsdi2* ) opsys=bsdos2 ;;
9ec10b2f
DM
771 *-386bsd* ) opsys=386bsd ;;
772 *-freebsd* ) opsys=freebsd ;;
773 *-nextstep* ) opsys=mach2 ;;
774 ## Otherwise, we'll fall through to the generic opsys code at the bottom.
775 esac
776 ;;
777
778 * )
779 unported=yes
780 ;;
781esac
782
783### If the code above didn't choose an operating system, just choose
784### an operating system based on the configuration name. You really
785### only want to use this when you have no idea what the right
786### operating system is; if you know what operating systems a machine
787### runs, it's cleaner to make it explicit in the case statement
788### above.
789if test x"${opsys}" = x; then
790 case "${canonical}" in
791 *-gnu* ) opsys=gnu ;;
792 *-bsd4.[01] ) opsys=bsd4-1 ;;
793 *-bsd4.2 ) opsys=bsd4-2 ;;
794 *-bsd4.3 ) opsys=bsd4-3 ;;
795 *-sysv0 | *-sysvr0 ) opsys=usg5-0 ;;
796 *-sysv2 | *-sysvr2 ) opsys=usg5-2 ;;
797 *-sysv2.2 | *-sysvr2.2 ) opsys=usg5-2-2 ;;
798 *-sysv3 | *-sysvr3 ) opsys=usg5-3 ;;
799 *-sysv4 | *-sysvr4 ) opsys=usg5-4 ;;
800 *-sysv4.1 | *-sysvr4.1 )
801 NON_GNU_CPP=/usr/lib/cpp
802 opsys=usg5-4 ;;
b63df577
RS
803 *-sysv4.2 | *-sysvr4.2 )
804 if [ x$NON_GNU_CPP = x ]; then
805 NON_GNU_CPP=/usr/ccs/lib/cpp
806 fi
807 opsys=usg5-4-2 ;;
9ec10b2f
DM
808 * )
809 unported=yes
810 ;;
811 esac
812fi
813
814changequote([, ])dnl
815
816if test $unported = yes; then
817 AC_MSG_ERROR([Emacs hasn't been ported to \`${canonical}' systems.
818Check \`etc/MACHINES' for recognized configuration names.])
819fi
820
821machfile="m/${machine}.h"
822opsysfile="s/${opsys}.h"
823
824
825#### Choose a compiler.
826test -n "$CC" && cc_specified=yes
827
828case ${with_gcc} in
829 "yes" ) CC="gcc" GCC=yes ;;
6e0dc84a 830 "no" ) : ${CC=cc} ;;
9ec10b2f
DM
831 * ) AC_PROG_CC
832esac
833
834# On Suns, sometimes $CPP names a directory.
835if test -n "$CPP" && test -d "$CPP"; then
836 CPP=
837fi
838
839#### Some systems specify a CPP to use unless we are using GCC.
840#### Now that we know whether we are using GCC, we can decide whether
841#### to use that one.
842if test "x$NON_GNU_CPP" != x && test x$GCC != xyes && test "x$CPP" = x
843then
844 CPP="$NON_GNU_CPP"
845fi
846
847#### Some systems specify a CC to use unless we are using GCC.
848#### Now that we know whether we are using GCC, we can decide whether
849#### to use that one.
850if test "x$NON_GNU_CC" != x && test x$GCC != xyes &&
851 test x$cc_specified != xyes
852then
853 CC="$NON_GNU_CC"
854fi
855
856if test x$GCC = xyes && test "x$GCC_TEST_OPTIONS" != x
857then
858 CC="$CC $GCC_TEST_OPTIONS"
859fi
860
861if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x
862then
863 CC="$CC $NON_GCC_TEST_OPTIONS"
864fi
865
866#### Some other nice autoconf tests. If you add a test here which
867#### should make an entry in src/config.h, don't forget to add an
868#### #undef clause to src/config.h.in for autoconf to modify.
869
870dnl checks for programs
6e0dc84a 871AC_PROG_LN_S
9ec10b2f
DM
872AC_PROG_CPP
873AC_PROG_INSTALL
874AC_PROG_YACC
875
3cd69289
DM
876dnl checks for Unix variants
877AC_AIX
878
9ec10b2f 879dnl checks for header files
cb4a25d9 880AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h)
6e0dc84a
DM
881AC_HEADER_STDC
882AC_HEADER_TIME
883AC_DECL_SYS_SIGLIST
9ec10b2f 884
3cd69289
DM
885dnl Some systems have utime.h but don't declare the struct anyplace.
886AC_MSG_CHECKING(for struct utimbuf)
887AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
888#include <sys/time.h>
889#include <time.h>
890#else
891#ifdef HAVE_SYS_TIME_H
892#include <sys/time.h>
893#else
894#include <time.h>
895#endif
896#endif
897#ifdef HAVE_UTIME_H
898#include <utime.h>
899#endif], [static struct utimbuf x; x.actime = x.modtime;],
900 [AC_MSG_RESULT(yes)
901 AC_DEFINE(HAVE_STRUCT_UTIMBUF)],
902 AC_MSG_RESULT(no))
903
9ec10b2f 904dnl checks for typedefs
6e0dc84a 905AC_TYPE_SIGNAL
9ec10b2f 906
3cd69289
DM
907AC_MSG_CHECKING(for struct timeval)
908AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
909#include <sys/time.h>
910#include <time.h>
911#else
912#ifdef HAVE_SYS_TIME_H
913#include <sys/time.h>
914#else
915#include <time.h>
916#endif
917#endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
918 [AC_MSG_RESULT(yes)
919 AC_DEFINE(HAVE_TIMEVAL)],
920 AC_MSG_RESULT(no))
921
9ec10b2f
DM
922dnl checks for structure members
923AC_STRUCT_TM
6e0dc84a 924AC_STRUCT_TIMEZONE
9ec10b2f
DM
925
926dnl checks for compiler characteristics
6e0dc84a 927AC_C_CONST
9ec10b2f
DM
928
929dnl check for Make feature
6e0dc84a 930AC_PROG_MAKE_SET
9ec10b2f
DM
931
932dnl checks for operating system services
6e0dc84a 933AC_SYS_LONG_FILE_NAMES
9ec10b2f
DM
934
935#### Choose a window system.
9ec10b2f 936
6e0dc84a 937AC_PATH_X
530ce502
DM
938if test "$no_x" = yes; then
939 window_system=none
940else
941 window_system=x11
942fi
9ec10b2f 943
ea199426 944if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
00ac3ffc
KH
945 LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
946 LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
ea199426
DM
947fi
948if test "${x_includes}" != NONE && test -n "${x_includes}"; then
cc6476f6 949 C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"`
ea199426 950fi
9ec10b2f 951
8dbeb353
DM
952if test x"${x_includes}" = x; then
953 bitmapdir=/usr/include/X11/bitmaps
3cd69289 954else
cc6476f6
KH
955 # accumulate include directories that have X11 bitmap sudirectories
956 bmd_acc="dummyval"
957 for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do
958 if test -d "${bmd}/X11/bitmaps"; then
959 bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps"
960 elif test -d "${bmd}/bitmaps"; then
961 bmd_acc="${bmd_acc}:${bmd}/bitmaps"
962 fi
963 done
964 if test ${bmd_acc} != "dummyval"; then
965 bitmapdir=`echo ${bmd_acc} | sed -e "s/^dummyval://"`
966 fi
3cd69289
DM
967fi
968
9ec10b2f
DM
969case "${window_system}" in
970 x11 )
971 HAVE_X_WINDOWS=yes
972 HAVE_X11=yes
973 case "${with_x_toolkit}" in
974 athena | lucid ) USE_X_TOOLKIT=LUCID ;;
caaaf02a 975 motif ) USE_X_TOOLKIT=MOTIF ;;
2e71ec17 976dnl open-look ) USE_X_TOOLKIT=OPEN_LOOK ;;
9ec10b2f
DM
977 * ) USE_X_TOOLKIT=none ;;
978 esac
979 ;;
9ec10b2f
DM
980 none )
981 HAVE_X_WINDOWS=no
982 HAVE_X11=no
983 USE_X_TOOLKIT=none
984 ;;
985esac
986X_TOOLKIT_TYPE=$USE_X_TOOLKIT
987
988### If we're using X11, we should use the X menu package.
989HAVE_X_MENU=no
990case ${HAVE_X11} in
991 yes ) HAVE_X_MENU=yes ;;
992esac
993
b95c8e7e
RS
994if test "${opsys}" = "hpux9"; then
995 case "${x_libraries}" in
996 *X11R4* )
997 opsysfile="s/hpux9-x11r4.h"
998 ;;
999 esac
1000fi
1001
1002if test "${opsys}" = "hpux9shr"; then
1003 case "${x_libraries}" in
1004 *X11R4* )
1005 opsysfile="s/hpux9shxr4.h"
1006 ;;
1007 esac
1008fi
1009
9ec10b2f
DM
1010#### Extract some information from the operating system and machine files.
1011
1012AC_CHECKING([the machine- and system-dependent files to find out
1013 - which libraries the lib-src programs will want, and
1014 - whether the GNU malloc routines are usable])
1015
1016### First figure out CFLAGS (which we use for running the compiler here)
1017### and REAL_CFLAGS (which we use for real compilation).
1018### The two are the same except on a few systems, where they are made
1019### different to work around various lossages. For example,
1020### GCC 2.5 on Linux needs them to be different because it treats -g
1021### as implying static linking.
1022
1023### If the CFLAGS env var is specified, we use that value
1024### instead of the default.
1025
1026### It's not important that this name contain the PID; you can't run
1027### two configures in the same directory and have anything work
1028### anyway.
1029tempcname="conftest.c"
1030
1031echo '
1032#include "'${srcdir}'/src/'${opsysfile}'"
1033#include "'${srcdir}'/src/'${machfile}'"
1034#ifndef LIBS_MACHINE
1035#define LIBS_MACHINE
1036#endif
1037#ifndef LIBS_SYSTEM
1038#define LIBS_SYSTEM
1039#endif
1040#ifndef C_SWITCH_SYSTEM
1041#define C_SWITCH_SYSTEM
1042#endif
1043#ifndef C_SWITCH_MACHINE
1044#define C_SWITCH_MACHINE
1045#endif
1046configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
1047configure___ c_switch_system=C_SWITCH_SYSTEM
1048configure___ c_switch_machine=C_SWITCH_MACHINE
1049
1050#ifndef LIB_X11_LIB
1051#define LIB_X11_LIB -lX11
1052#endif
1053
1054#ifndef LIBX11_MACHINE
1055#define LIBX11_MACHINE
1056#endif
1057
1058#ifndef LIBX11_SYSTEM
1059#define LIBX11_SYSTEM
1060#endif
1061configure___ LIBX=LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM
1062
1063#ifdef UNEXEC
1064configure___ unexec=UNEXEC
1065#else
1066configure___ unexec=unexec.o
1067#endif
1068
1069#ifdef SYSTEM_MALLOC
1070configure___ system_malloc=yes
1071#else
1072configure___ system_malloc=no
1073#endif
1074
1075#ifndef C_DEBUG_SWITCH
1076#define C_DEBUG_SWITCH -g
1077#endif
1078
1079#ifndef C_OPTIMIZE_SWITCH
1080#define C_OPTIMIZE_SWITCH -O
1081#endif
1082
1083#ifdef THIS_IS_CONFIGURE
1084
1085/* Get the CFLAGS for tests in configure. */
1086#ifdef __GNUC__
1087configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${CFLAGS}'
1088#else
1089configure___ CFLAGS=C_DEBUG_SWITCH '${CFLAGS}'
1090#endif
1091
1092#else /* not THIS_IS_CONFIGURE */
1093
1094/* Get the CFLAGS for real compilation. */
1095#ifdef __GNUC__
1096configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${CFLAGS}'
1097#else
1098configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${CFLAGS}'
1099#endif
1100
1101#endif /* not THIS_IS_CONFIGURE */
1102' > ${tempcname}
1103
1104# The value of CPP is a quoted variable reference, so we need to do this
1105# to get its actual value...
1106CPP=`eval "echo $CPP"`
1107changequote(, )dnl
1108eval `${CPP} -Isrc ${tempcname} \
1109 | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
1110if test "x$CFLAGS" = x; then
1111 eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \
1112 | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
1113else
1114 REAL_CFLAGS="$CFLAGS"
1115fi
1116changequote([, ])dnl
1117rm ${tempcname}
1118
1119### Compute the unexec source name from the object name.
1120UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`"
1121
1122# Do the opsystem or machine files prohibit the use of the GNU malloc?
1123# Assume not, until told otherwise.
1124GNU_MALLOC=yes
1125if test "${system_malloc}" = "yes"; then
1126 GNU_MALLOC=no
1127 GNU_MALLOC_reason="
1128 (The GNU allocators don't work with this system configuration.)"
1129fi
1130
1131if test x"${REL_ALLOC}" = x; then
1132 REL_ALLOC=${GNU_MALLOC}
1133fi
1134
1135LISP_FLOAT_TYPE=yes
1136
1137
1138#### Add the libraries to LIBS and check for some functions.
1139
1140CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
1141LIBS="$libsrc_libs"
1142
1143dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
1144dnl and also adds -ldnet to LIBS, which Autoconf uses for checks.
1145AC_CHECK_LIB(dnet, dnet_ntoa)
1146dnl This causes -lresolv to get used in subsequent tests,
1147dnl which causes failures on some systems such as HPUX 9.
1148dnl AC_CHECK_LIB(resolv, gethostbyname)
1149
1150dnl FIXME replace main with a function we actually want from this library.
1151AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
1152
027dae63 1153AC_CHECK_LIB(pthreads, cma_open)
1d94ee28 1154
9ec10b2f
DM
1155AC_MSG_CHECKING(for XFree86)
1156if test -d /usr/X386/include; then
9ec10b2f 1157 HAVE_XFREE386=yes
6e0dc84a 1158 : ${C_SWITCH_X_SITE="-I/usr/X386/include"}
9ec10b2f 1159else
6e0dc84a 1160 HAVE_XFREE386=no
9ec10b2f 1161fi
6e0dc84a 1162AC_MSG_RESULT($HAVE_XFREE386)
9ec10b2f 1163
509fccc3
RS
1164# Change CFLAGS temporarily so that C_SWITCH_X_SITE gets used
1165# for the tests that follow. We set it back to REAL_CFLAGS later on.
9ec10b2f
DM
1166
1167if test "${HAVE_X11}" = "yes"; then
1168 DEFS="$C_SWITCH_X_SITE $DEFS"
1169 LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS"
1170 CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
509fccc3
RS
1171
1172 if test "${HAVE_XFREE386}" = "yes" && test "${opsys}" = "linux"; then
1173 AC_MSG_CHECKING(whether XFree86 needs -b to link)
1174 AC_TRY_LINK([],
1175 [XOpenDisplay ("foo");],
1176 [xfree86_first_failure=no],
1177 [xfree86_first_failure=yes])
1178 if test "${xfree86_first_failure}" = "yes"; then
1179 OLD_LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE"
1180 OLD_C_SWITCH_X_SITE="$C_SWITCH_X_SITE"
1181 OLD_CPPFLAGS="$CPPFLAGS"
1182 OLD_LIBS="$LIBS"
1183 LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout"
1184 C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout"
1185 CPPFLAGS="$CPPFLAGS -b i486-linuxaout"
1186 LIBS="$LIBS -b i486-linuxaout"
1187 AC_TRY_LINK([],
1188 [XOpenDisplay ("foo");],
1189 [xfree86_second_failure=no],
1190 [xfree86_second_failure=yes])
1191 if test "${xfree86_second_failure}" = "yes"; then
1192 # If we get the same failure with -b, there is no use adding -b.
1193 # So take it out. This plays safe.
1194 LD_SWITCH_X_SITE="$OLD_LD_SWITCH_X_SITE"
1195 C_SWITCH_X_SITE="$OLD_C_SWITCH_X_SITE"
1196 CPPFLAGS="$OLD_CPPFLAGS"
1197 LIBS="$OLD_LIBS"
1198 AC_MSG_RESULT(no)
1199 else
1200 AC_MSG_RESULT(yes)
1201 fi
1202 else
1203 AC_MSG_RESULT(no)
1204 fi
1205 fi
1206
6e0dc84a 1207 AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
9ec10b2f
DM
1208XScreenNumberOfScreen XSetWMProtocols)
1209fi
1210
1211if test "${USE_X_TOOLKIT}" != "none"; then
1212 AC_MSG_CHECKING(X11 toolkit version)
6e0dc84a 1213 AC_TRY_LINK([#include <X11/Intrinsic.h>],
9ec10b2f
DM
1214[#if XtSpecificationRelease < 6
1215fail;
1216#endif
1217], [AC_MSG_RESULT(6)
1218 AC_DEFINE(HAVE_X11XTR6)],
1219 [AC_MSG_RESULT(not 6)])
1220fi
1221
1222# If netdb.h doesn't declare h_errno, we must declare it by hand.
b212bc89 1223AC_MSG_CHECKING(whether netdb declares h_errno)
6e0dc84a 1224AC_TRY_LINK([#include <netdb.h>],
01345308
DM
1225 [return h_errno;],
1226 [AC_MSG_RESULT(yes)
1227 AC_DEFINE(HAVE_H_ERRNO)],
1228 [AC_MSG_RESULT(no)])
9ec10b2f 1229
6e0dc84a 1230AC_FUNC_ALLOCA
9ec10b2f 1231
f6e8adea 1232# fmod, logb, and frexp are found in -lm on most systems.
e468fb38 1233# On HPUX 9.01, -lm does not contain logb, so check for sqrt.
55e1c92a 1234AC_CHECK_LIB(m, sqrt(0.0) + t)
6e0dc84a 1235AC_CHECK_FUNCS(gettimeofday gethostname dup2 rename closedir mkdir rmdir \
3cd69289
DM
1236random lrand48 bcopy bcmp logb frexp fmod drem ftime res_init setsid \
1237strerror fpathconf select mktime eaccess getpagesize)
9ec10b2f
DM
1238
1239ok_so_far=yes
6e0dc84a 1240AC_CHECK_FUNC(socket, , ok_so_far=no)
9ec10b2f 1241if test $ok_so_far = yes; then
6e0dc84a 1242 AC_CHECK_HEADER(netinet/in.h, , ok_so_far=no)
9ec10b2f
DM
1243fi
1244if test $ok_so_far = yes; then
6e0dc84a 1245 AC_CHECK_HEADER(arpa/inet.h, , ok_so_far=no)
9ec10b2f
DM
1246fi
1247if test $ok_so_far = yes; then
1248 AC_DEFINE(HAVE_INET_SOCKETS)
1249fi
1250
7bbbba31
DM
1251if test -f /usr/lpp/X11/bin/smt.exp; then
1252 AC_DEFINE(HAVE_AIX_SMT_EXP)
1253fi
1254
9ec10b2f
DM
1255# Set up the CFLAGS for real compilation, so we can substitute it.
1256CFLAGS="$REAL_CFLAGS"
1257
1258changequote(, )dnl
1259#### Find out which version of Emacs this is.
1260version=`grep 'defconst[ ]*emacs-version' ${srcdir}/lisp/version.el \
1261 | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`
1262changequote([, ])dnl
1263if test x"${version}" = x; then
1264 AC_MSG_ERROR(can't find current emacs version in \`${srcdir}/lisp/version.el'.)
1265fi
1266
9ec10b2f
DM
1267### Specify what sort of things we'll be editing into Makefile and config.h.
1268### Use configuration here uncanonicalized to avoid exceeding size limits.
1269AC_SUBST(version)
1270AC_SUBST(configuration)
3cd69289 1271AC_SUBST(canonical)
9ec10b2f
DM
1272AC_SUBST(srcdir)
1273AC_SUBST(prefix)
1274AC_SUBST(exec_prefix)
1275AC_SUBST(bindir)
1276AC_SUBST(datadir)
3cd69289
DM
1277AC_SUBST(sharedstatedir)
1278AC_SUBST(libexecdir)
9ec10b2f
DM
1279AC_SUBST(mandir)
1280AC_SUBST(infodir)
1281AC_SUBST(lispdir)
1282AC_SUBST(locallisppath)
1283AC_SUBST(lisppath)
1284AC_SUBST(etcdir)
1285AC_SUBST(lockdir)
1286AC_SUBST(archlibdir)
1287AC_SUBST(docdir)
3cd69289 1288AC_SUBST(bitmapdir)
9ec10b2f
DM
1289AC_SUBST(c_switch_system)
1290AC_SUBST(c_switch_machine)
1291AC_SUBST(LD_SWITCH_X_SITE)
1292AC_SUBST(LD_SWITCH_X_SITE_AUX)
1293AC_SUBST(C_SWITCH_X_SITE)
1294AC_SUBST(CFLAGS)
1295AC_SUBST(X_TOOLKIT_TYPE)
1296AC_SUBST(machfile)
1297AC_SUBST(opsysfile)
1298
3cd69289 1299AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "${canonical}")
6d1da0d1 1300AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}")
9ec10b2f
DM
1301AC_DEFINE_UNQUOTED(config_machfile, "${machfile}")
1302AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}")
1303AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE})
1304AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX})
1305AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE, ${C_SWITCH_X_SITE})
1306AC_DEFINE_UNQUOTED(UNEXEC_SRC, ${UNEXEC_SRC})
1307
1308if test "${HAVE_X_WINDOWS}" = "yes" ; then
1309 AC_DEFINE(HAVE_X_WINDOWS)
1310fi
1311if test "${USE_X_TOOLKIT}" != "none" ; then
1312 AC_DEFINE(USE_X_TOOLKIT)
1313fi
1314if test "${HAVE_X11}" = "yes" ; then
1315 AC_DEFINE(HAVE_X11)
1316fi
1317if test "${HAVE_XFREE386}" = "yes" ; then
1318 AC_DEFINE(HAVE_XFREE386)
1319fi
1320if test "${HAVE_X_MENU}" = "yes" ; then
1321 AC_DEFINE(HAVE_X_MENU)
1322fi
1323if test "${GNU_MALLOC}" = "yes" ; then
1324 AC_DEFINE(GNU_MALLOC)
1325fi
1326if test "${REL_ALLOC}" = "yes" ; then
1327 AC_DEFINE(REL_ALLOC)
1328fi
1329if test "${LISP_FLOAT_TYPE}" = "yes" ; then
1330 AC_DEFINE(LISP_FLOAT_TYPE)
1331fi
1332
9ec10b2f
DM
1333#### Report on what we decided to do.
1334echo "
9ec10b2f
DM
1335Configured for \`${canonical}'.
1336
1337 Where should the build process find the source code? ${srcdir}
1338 What operating system and machine description files should Emacs use?
1339 \`${opsysfile}' and \`${machfile}'
1340 What compiler should emacs be built with? ${CC} ${CFLAGS}
1341 Should Emacs use the GNU version of malloc? ${GNU_MALLOC}${GNU_MALLOC_reason}
1342 Should Emacs use the relocating allocator for buffers? ${REL_ALLOC}
1343 What window system should Emacs use? ${window_system}
509fccc3
RS
1344 What toolkit should Emacs use? ${USE_X_TOOLKIT}"
1345
1346if test -n "${x_includes}"; then
1347echo " Where do we find X Windows header files? ${x_includes}"
1348else
1349echo " Where do we find X Windows header files? Standard dirs"
1350fi
1351if test -n "${x_libraries}"; then
1352echo " Where do we find X Windows libraries? ${x_libraries}"
1353else
1354echo " Where do we find X Windows libraries? Standard dirs"
1355fi
9ec10b2f 1356
509fccc3 1357echo
9ec10b2f
DM
1358
1359# Remove any trailing slashes in these variables.
1360changequote(, )dnl
1361test "${prefix}" != NONE &&
1362 prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
1363test "${exec_prefix}" != NONE &&
1364 exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`
1365changequote([, ])dnl
1366
ea50c238 1367AC_OUTPUT(Makefile lib-src/Makefile.in oldXMenu/Makefile \
d581cd33 1368 man/Makefile lwlib/Makefile src/Makefile.in, [
7bbbba31 1369
b63df577 1370### Make the necessary directories, if they don't exist.
b3947967
DM
1371for dir in cpp etc ; do
1372 test -d ${dir} || mkdir ${dir}
9ec10b2f
DM
1373done
1374
1375# Build src/Makefile from ${srcdir}/src/Makefile.in. This must be done
1376# after src/config.h is built, since we rely on that file.
1377
2d73167a 1378changequote(, )dnl The horror, the horror.
9ec10b2f
DM
1379# Now get this: Some word that is part of the ${srcdir} directory name
1380# or the ${configuration} value might, just might, happen to be an
1381# identifier like `sun4' or `i386' or something, and be predefined by
1382# the C preprocessor to some helpful value like 1, or maybe the empty
1383# string. Needless to say consequent macro substitutions are less
1384# than conducive to the makefile finding the correct directory.
1385undefs="`echo $top_srcdir $configuration $canonical |
1386sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/ *$//' \
1387 -e 's/ */ -U/g' -e 's/-U[0-9][^ ]*//g' \
1388`"
2d73167a 1389changequote([, ])dnl
9ec10b2f
DM
1390
1391echo creating lib-src/Makefile
1392( cd lib-src
1393 rm -f junk.c junk1.c junk2.c
1394 sed -e '/start of cpp stuff/q' \
1395 < Makefile.in > junk1.c
1396 sed -e '1,/start of cpp stuff/d'\
1397 -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
1398 < Makefile.in > junk.c
1399 $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
1400 sed -e 's/^ / /' -e '/^#/d' -e '/^[ \f]*$/d' > junk2.c
1401 cat junk1.c junk2.c > Makefile.new
1402 rm -f junk.c junk1.c junk2.c
1403 chmod 444 Makefile.new
1404 mv -f Makefile.new Makefile
1405)
1406
1407echo creating src/Makefile
1408( cd src
1409 rm -f junk.c junk1.c junk2.c
1410 sed -e '/start of cpp stuff/q' \
1411 < Makefile.in > junk1.c
1412 sed -e '1,/start of cpp stuff/d'\
1413 -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
1414 < Makefile.in > junk.c
1415 $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
1416 sed -e 's/^ / /' -e '/^#/d' -e '/^[ \f]*$/d' > junk2.c
1417 cat junk1.c junk2.c > Makefile.new
1418 rm -f junk.c junk1.c junk2.c
1419 chmod 444 Makefile.new
1420 mv -f Makefile.new Makefile
1421)
8b66759a
DM
1422
1423if test ! -f src/.gdbinit && test -f $top_srcdir/src/.gdbinit; then
1424 echo creating src/.gdbinit
1425 echo source $top_srcdir/src/.gdbinit > src/.gdbinit
1426fi
1427
ea50c238 1428], [CPP="$CPP" CPPFLAGS="$CPPFLAGS"])