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