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