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