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