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