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