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