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