* erc.el (open-ssl-stream, open-tls-stream, erc-network-name):
[emacs.git] / configure.in
blob17d1f55fd556a0b0f14b114f4f24afeeeec791cd
1 dnl  Autoconf script for GNU Emacs
2 dnl To rebuild the `configure' script from this, execute the command
3 dnl     autoconf
4 dnl in the directory containing this script.
5 dnl
6 dnl  Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2003,
7 dnl    2004, 2005, 2006, 2007  Free Software Foundation, Inc.
8 dnl
9 dnl  This file is part of GNU Emacs.
10 dnl
11 dnl  GNU Emacs is free software; you can redistribute it and/or modify
12 dnl  it under the terms of the GNU General Public License as published by
13 dnl  the Free Software Foundation; either version 3, or (at your option)
14 dnl  any later version.
15 dnl
16 dnl  GNU Emacs is distributed in the hope that it will be useful,
17 dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
18 dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 dnl  GNU General Public License for more details.
20 dnl
21 dnl  You should have received a copy of the GNU General Public License
22 dnl  along with GNU Emacs; see the file COPYING.  If not, write to the
23 dnl  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
24 dnl  Boston, MA 02110-1301, USA.
26 AC_PREREQ(2.61)dnl
27 AC_INIT(src/lisp.h)
28 AC_CONFIG_HEADER(src/config.h:src/config.in)
30 dnl Support for --program-prefix, --program-suffix and
31 dnl --program-transform-name options
32 AC_ARG_PROGRAM
34 lispdir='${datadir}/emacs/${version}/lisp'
35 locallisppath='${datadir}/emacs/${version}/site-lisp:'\
36 '${datadir}/emacs/site-lisp'
37 lisppath='${locallisppath}:${lispdir}:${datadir}/emacs/${version}/leim'
38 etcdir='${datadir}/emacs/${version}/etc'
39 archlibdir='${libexecdir}/emacs/${version}/${configuration}'
40 docdir='${datadir}/emacs/${version}/etc'
41 gamedir='${localstatedir}/games/emacs'
43 gameuser=games
45 dnl Autoconf is so much less fun under VMS, maybe
46 dnl because everything is less fun under VMS. --ttn
47 AC_DEFUN([EMACS_ARG_Y],[dnl
48 AC_ARG_WITH([$1],[AS_HELP_STRING([--with-$1],[$2])],[$3],[$4])dnl
49 ])dnl
50 AC_DEFUN([EMACS_ARG_N],[dnl
51 AC_ARG_WITH([$1],[AS_HELP_STRING([--without-$1],[$2])],[$3],[$4])dnl
52 ])dnl
54 EMACS_ARG_N([gcc],[don't use GCC to compile Emacs if GCC is found])
56 EMACS_ARG_N([pop],[don't support POP mail retrieval with movemail],
57 [if test "$withval" = yes; then
58    AC_DEFINE(MAIL_USE_POP)
59 else :
60 fi],
61 AC_DEFINE(MAIL_USE_POP))
62 AH_TEMPLATE(MAIL_USE_POP, [Define to support POP mail retrieval.])dnl
64 EMACS_ARG_Y([kerberos],[support Kerberos-authenticated POP],
65 [if test "$withval" = yes; then
66    AC_DEFINE(KERBEROS)
67 fi])
68 AH_TEMPLATE(KERBEROS,
69             [Define to support Kerberos-authenticated POP mail retrieval.])dnl
71 EMACS_ARG_Y([kerberos5],[support Kerberos version 5 authenticated POP],
72 [if test "${with_kerberos5+set}" = set; then
73   if test "${with_kerberos+set}" != set; then
74     with_kerberos=yes
75     AC_DEFINE(KERBEROS)
76   fi
77   AC_DEFINE(KERBEROS5, 1, [Define to use Kerberos 5 instead of Kerberos 4.])
78 fi])
80 EMACS_ARG_Y([hesiod],[support Hesiod to get the POP server host],
81 [if test "$withval" = yes; then
82   AC_DEFINE(HESIOD, 1, [Define to support using a Hesiod database to find the POP server.])
83 fi])
85 EMACS_ARG_N([sound],[don't compile with sound support])
87 dnl This should be the last --with option, because --with-x is
88 dnl added later on when we find the path of X, and it's best to
89 dnl keep them together visually.
90 AC_ARG_WITH([x-toolkit],[AS_HELP_STRING([--with-x-toolkit=KIT],
91  [use an X toolkit (KIT one of: yes, lucid, athena, motif, gtk, no)])],
92 [         case "${withval}" in
93             y | ye | yes )      val=gtk ;;
94             n | no )            val=no  ;;
95             l | lu | luc | luci | lucid )       val=lucid ;;
96             a | at | ath | athe | athen | athena )      val=athena ;;
97             m | mo | mot | moti | motif )       val=motif ;;
98             g | gt | gtk  )     val=gtk ;;
99             * )
100 AC_MSG_ERROR([`--with-x-toolkit=$withval' is invalid;
101 this option's value should be `yes', `no', `lucid', `athena', `motif' or `gtk'.
102 `yes' and `gtk' are synonyms. `athena' and `lucid' are synonyms.])
103             ;;
104           esac
105           with_x_toolkit=$val
108 EMACS_ARG_Y([xpm],[use -lXpm for displaying XPM images])
109 EMACS_ARG_Y([jpeg],[use -ljpeg for displaying JPEG images])
110 EMACS_ARG_Y([tiff],[use -ltiff for displaying TIFF images])
111 EMACS_ARG_Y([gif],[use -lgif (or -lungif) for displaying GIF images])
112 EMACS_ARG_Y([png],[use -lpng for displaying PNG images])
113 EMACS_ARG_Y([gpm],[use -lgpm for mouse support on a GNU/Linux console])
114 EMACS_ARG_Y([rsvg],[use -lrsvg-2 for displaying SVG images])
115 EMACS_ARG_Y([gtk],[use GTK (same as --with-x-toolkit=gtk)])
116 EMACS_ARG_Y([pkg-config-prog],[Path to pkg-config for finding GTK and librsvg])
117 EMACS_ARG_N([toolkit-scroll-bars],[don't use Motif or Xaw3d scroll bars])
118 EMACS_ARG_N([xaw3d],[don't use Xaw3d])
119 EMACS_ARG_N([xim],[don't use X11 XIM])
120 EMACS_ARG_N([carbon],[don't use Carbon GUI on Mac OS X])
122 AC_ARG_ENABLE(carbon-app,
123 [AS_HELP_STRING([--enable-carbon-app@<:@=DIR@:>@],
124                 [specify install directory for Emacs.app on Mac OS X
125                  [DIR=/Application]])],
126 [ carbon_appdir_x=${enableval}])
128 AC_ARG_ENABLE(asserts,
129 [AS_HELP_STRING([--enable-asserts], [compile code with asserts enabled])],
130       USE_XASSERTS=$enableval,
131       USE_XASSERTS=no)
133 AC_ARG_ENABLE(maintainer-mode,
134 [AS_HELP_STRING([--enable-maintainer-mode],
135                 [enable make rules and dependencies not useful (and sometimes
136                  confusing) to the casual installer])],
137       USE_MAINTAINER_MODE=$enableval,
138       USE_MAINTAINER_MODE=no)
139 if test $USE_MAINTAINER_MODE = yes; then
140   MAINT=
141 else
142   MAINT=#
144 AC_SUBST(MAINT)
146 AC_ARG_ENABLE(locallisppath,
147 [AS_HELP_STRING([--enable-locallisppath=PATH],
148                 [directories Emacs should search for lisp files specific
149                  to this site])],
150 if test "${enableval}" = "no"; then
151   locallisppath=
152 elif test "${enableval}" != "yes"; then
153   locallisppath=${enableval}
156 #### Make srcdir absolute, if it isn't already.  It's important to
157 #### avoid running the path through pwd unnecessarily, since pwd can
158 #### give you automounter prefixes, which can go away.  We do all this
159 #### so Emacs can find its files when run uninstalled.
160 ## Make sure CDPATH doesn't affect cd (in case PWD is relative).
161 unset CDPATH
162 case "${srcdir}" in
163   /* ) ;;
164   . )
165     ## We may be able to use the $PWD environment variable to make this
166     ## absolute.  But sometimes PWD is inaccurate.
167     ## Note: we used to use ${PWD} at the end instead of `pwd`,
168     ## but that tested only for a well-formed and valid PWD,
169     ## it did not object when PWD was well-formed and valid but just wrong.
170     if test ".${PWD}" != "." && test ".`(cd ${PWD} ; sh -c pwd)`" = ".`pwd`"  ;
171     then
172       srcdir="$PWD"
173     else
174       srcdir="`(cd ${srcdir}; pwd)`"
175     fi
176   ;;
177   *  ) srcdir="`(cd ${srcdir}; pwd)`" ;;
178 esac
180 #### Check if the source directory already has a configured system in it.
181 if test `pwd` != `(cd ${srcdir} && pwd)` \
182    && test -f "${srcdir}/src/config.h" ; then
183   AC_MSG_WARN([[The directory tree `${srcdir}' is being used
184    as a build directory right now; it has been configured in its own
185    right.  To configure in another directory as well, you MUST
186    use GNU make.  If you do not have GNU make, then you must
187    now do `make distclean' in ${srcdir},
188    and then run $0 again.]])
191 #### Given the configuration name, set machfile and opsysfile to the
192 #### names of the m/*.h and s/*.h files we should use.
194 ### Canonicalize the configuration name.
196 AC_CANONICAL_HOST
197 canonical=$host
198 configuration=${host_alias-${build_alias-$host}}
200 dnl This used to use changequote, but, apart from `changequote is evil'
201 dnl per the autoconf manual, we can speed up autoconf somewhat by quoting
202 dnl the great gob of text.  Thus it's not processed for possible expansion.
203 dnl Just make sure the brackets remain balanced.
205 dnl Since Emacs can't find matching pairs of quotes, boundaries are
206 dnl indicated by comments.
207 dnl quotation begins
210 ### If you add support for a new configuration, add code to this
211 ### switch statement to recognize your configuration name and select
212 ### the appropriate operating system and machine description files.
214 ### You would hope that you could choose an m/*.h file pretty much
215 ### based on the machine portion of the configuration name, and an s-
216 ### file based on the operating system portion.  However, it turns out
217 ### that each m/*.h file is pretty manufacturer-specific - for
218 ### example, apollo.h, hp9000s300.h, mega68k, news.h, and tad68k are
219 ### all 68000 machines; mips.h, pmax.h, and news-risc are all MIPS
220 ### machines.  So we basically have to have a special case for each
221 ### configuration name.
223 ### As far as handling version numbers on operating systems is
224 ### concerned, make sure things will fail in a fixable way.  If
225 ### /etc/MACHINES doesn't say anything about version numbers, be
226 ### prepared to handle anything reasonably.  If version numbers
227 ### matter, be sure /etc/MACHINES says something about it.
229 ### Eric Raymond says we should accept strings like "sysvr4" to mean
230 ### "System V Release 4"; he writes, "The old convention encouraged
231 ### confusion between `system' and `release' levels'."
233 machine='' opsys='' unported=no
234 case "${canonical}" in
236   ## FreeBSD ports
237   *-*-freebsd* )
238     opsys=freebsd
239     case "${canonical}" in
240       alpha*-*-freebsd*)        machine=alpha ;;
241       ia64-*-freebsd*)          machine=ia64 ;;
242       sparc64-*-freebsd*)       machine=sparc ;;
243       powerpc-*-freebsd*)       machine=macppc ;;
244       i[3456]86-*-freebsd*)     machine=intel386 ;;
245       amd64-*-freebsd*|x86_64-*-freebsd*) machine=amdx86-64 ;;
246     esac
247   ;;
249   ## FreeBSD kernel + glibc based userland
250   *-*-kfreebsd*gnu* )
251     opsys=gnu-kfreebsd
252     case "${canonical}" in
253       alpha*-*-kfreebsd*)       machine=alpha ;;
254       ia64-*-kfreebsd*)         machine=ia64 ;;
255       sparc64-*-kfreebsd*)      machine=sparc ;;
256       powerpc-*-kfreebsd*)      machine=macppc ;;
257       i[3456]86-*-kfreebsd*)    machine=intel386 ;;
258       amd64-*-kfreebsd*|x86_64-*-kfreebsd*) machine=amdx86-64 ;;
259     esac
260   ;;
262   ## NetBSD ports
263   *-*-netbsd* )
264     opsys=netbsd
265     if test -f /usr/lib/crti.o; then]
266 dnl The close and open brackets here are because this section is quoted --
267 dnl see the `changequote' comment above.
268       AC_DEFINE(HAVE_CRTIN, [], [Define to 1 if you have /usr/lib/crti.o.])
269 [   fi
271     case "${canonical}" in
272       alpha*-*-netbsd*) machine=alpha ;;
273       i[3456]86-*-netbsd*) machine=intel386 ;;
274       m68k-*-netbsd*)
275                         # This is somewhat bogus.
276                         machine=hp9000s300 ;;
277       mips-*-netbsd*)   machine=pmax ;;
278       mipsel-*-netbsd*) machine=pmax ;;
279       mipseb-*-netbsd*) machine=pmax ;;
280       ns32k-*-netbsd*)  machine=ns32000 ;;
281       powerpc-*-netbsd*) machine=macppc ;;
282       sparc*-*-netbsd*) machine=sparc ;;
283       vax-*-netbsd*)    machine=vax ;;
284       arm-*-netbsd*)    machine=arm ;;
285       x86_64-*-netbsd*) machine=amdx86-64 ;;
286       hppa-*-netbsd*)   machine=hp800 ;;
287       shle-*-netbsd*)   machine=sh3el ;;
288     esac
289   ;;
291   ## OpenBSD ports
292   *-*-openbsd* )
293     opsys=openbsd
294     case "${canonical}" in
295       alpha*-*-openbsd*)        machine=alpha ;;
296       arm-*-openbsd*)          machine=arm ;;
297       hppa-*-openbsd*)         machine=hp9000s300 ;;
298       i386-*-openbsd*)         machine=intel386 ;;
299       m68k-*-openbsd*)         machine=hp9000s300 ;;
300       m88k-*-openbsd*)         machine=aviion ;;
301       mips64-*-openbsd*)       machine=mips64 ;;
302       powerpc-*-openbsd*)      machine=macppc ;;
303       sh-*-openbsd*)           machine=sh3el ;;
304       sparc*-*-openbsd*)       machine=sparc ;;
305       vax-*-openbsd*)          machine=vax ;;
306       x86_64-*-openbsd*)       machine=amdx86-64 ;;
307     esac
308   ;;
310   ## LynxOS ports
311   *-*-lynxos* )
312     opsys=lynxos
313     case "${canonical}" in
314       i[3456]86-*-lynxos*) machine=intel386 ;;
315       powerpc-*-lynxos*) machine=powerpc ;;
316     esac
317   ;;
319   ## Acorn RISCiX:
320   arm-acorn-riscix1.1* )
321     machine=acorn opsys=riscix1-1
322   ;;
323   arm-acorn-riscix1.2* | arm-acorn-riscix )
324     ## This name is riscix12 instead of riscix1.2
325     ## to avoid a file name conflict on MSDOS.
326     machine=acorn opsys=riscix12
327   ;;
329   ## BSDI ports
330   *-*-bsdi* )
331     opsys=bsdi
332     case "${canonical}" in
333       i[345]86-*-bsdi*) machine=intel386 ;;
334       sparc-*-bsdi*)  machine=sparc ;;
335       powerpc-*-bsdi*)  machine=macppc ;;
336     esac
337     case "${canonical}" in
338       *-*-bsd386* | *-*-bsdi1* )        opsys=bsd386 ;;
339       *-*-bsdi2.0* )            opsys=bsdos2 ;;
340       *-*-bsdi2* )              opsys=bsdos2-1 ;;
341       *-*-bsdi3* )              opsys=bsdos3 ;;
342       *-*-bsdi[45]* )           opsys=bsdos4 ;;
343     esac
344   ;;
346   ## Alliant machines
347   ## Strictly speaking, we need the version of the alliant operating
348   ## system to choose the right machine file, but currently the
349   ## configuration name doesn't tell us enough to choose the right
350   ## one; we need to give alliants their own operating system name to
351   ## do this right.  When someone cares, they can help us.
352   fx80-alliant-* )
353     machine=alliant4 opsys=bsd4-2
354   ;;
355   i860-alliant-* )
356     machine=alliant-2800 opsys=bsd4-3
357   ;;
359   ## Alpha (DEC) machines.
360   alpha*-dec-osf* )
361     machine=alpha opsys=osf1
362     # This is needed to find X11R6.1 libraries for certain tests.
363     NON_GCC_LINK_TEST_OPTIONS=-Wl,-rpath,/usr/X11R6/lib
364     GCC_LINK_TEST_OPTIONS=-Wl,-rpath,/usr/X11R6/lib
365     # NON_GNU_CPP is necessary on 5.0 to avoid mangling src/Makefile
366     # due to non-traditional preprocessing with the current compiler
367     # defaults.  OSF 4 can also have that compiler version, and there
368     # seems always to have been a usable /usr/bin/cpp.
369     NON_GNU_CPP=/usr/bin/cpp
370     case "${canonical}" in
371     alpha*-dec-osf[5-9]*)
372       opsys=osf5-0 ;;
373     esac
374   ;;
376   alpha*-*-linux-gnu* )
377     machine=alpha opsys=gnu-linux
378   ;;
380   arm*-*-linux-gnu* )
381     machine=arm opsys=gnu-linux
382   ;;
384   ## Altos 3068
385   m68*-altos-sysv* )
386     machine=altos opsys=usg5-2
387   ;;
389   ## Amdahl UTS
390   580-amdahl-sysv* )
391     machine=amdahl opsys=usg5-2-2
392   ;;
394   ## Apollo, Domain/OS
395   m68*-apollo-* )
396     machine=apollo opsys=bsd4-3
397   ;;
399   ## Apple Darwin / Mac OS X
400   *-apple-darwin* )
401     case "${canonical}" in
402       i[3456]86-* )  machine=intel386 ;;
403       powerpc-* )    machine=powermac ;;
404       * )            unported=yes ;;
405     esac
406     opsys=darwin
407     # Define CPP as follows to make autoconf work correctly.
408     CPP="${CC-cc} -E -no-cpp-precomp"
409     # Use fink packages if available.
410     if test -d /sw/include && test -d /sw/lib; then
411       GCC_TEST_OPTIONS="-I/sw/include -L/sw/lib"
412       CPP="${CPP} ${GCC_TEST_OPTIONS}"
413       NON_GCC_TEST_OPTIONS=${GCC_TEST_OPTIONS}
414     fi
415   ;;
417   ## AT&T 3b2, 3b5, 3b15, 3b20
418   we32k-att-sysv* )
419     machine=att3b opsys=usg5-2-2
420   ;;
422   ## AT&T 3b1 - The Mighty Unix PC!
423   m68*-att-sysv* )
424     machine=7300 opsys=usg5-2-2
425   ;;
427   ## Bull dpx20
428   rs6000-bull-bosx* )
429     machine=ibmrs6000 opsys=aix3-2
430   ;;
432   ## Bull dpx2
433   m68*-bull-sysv3* )
434     machine=dpx2 opsys=usg5-3
435   ;;
437   ## Bull sps7
438   m68*-bull-sysv2* )
439     machine=sps7 opsys=usg5-2
440   ;;
442   ## CCI 5/32, 6/32 -- see "Tahoe".
444   ## Celerity
445   ## I don't know what configuration name to use for this; config.sub
446   ## doesn't seem to know anything about it.  Hey, Celerity users, get
447   ## in touch with us!
448   celerity-celerity-bsd* )
449     machine=celerity opsys=bsd4-2
450   ;;
452   ## Clipper
453   ## What operating systems does this chip run that Emacs has been
454   ## tested on?
455   clipper-* )
456     machine=clipper
457     ## We'll use the catch-all code at the bottom to guess the
458     ## operating system.
459   ;;
461   ## Compaq Nonstop
462   mips-compaq-nonstopux* )
463     machine=nonstopux opsys=nonstopux
464     ;;
466   ## Convex
467   *-convex-bsd* | *-convex-convexos* )
468     machine=convex opsys=bsd4-3
469     ## Prevents spurious white space in makefiles - d.m.cooke@larc.nasa.gov
470     NON_GNU_CPP="cc -E -P"
471   ;;
473   ## Cubix QBx/386
474   i[3456]86-cubix-sysv* )
475     machine=intel386 opsys=usg5-3
476   ;;
478   ## Cydra 5
479   cydra*-cydrome-sysv* )
480     machine=cydra5 opsys=usg5-3
481   ;;
483   ## Data General AViiON Machines
484   ## DG changed naming conventions with the release of 5.4.4.10, they
485   ## dropped the initial 5.4 but left the intervening R.  Because of the
486   ## R this shouldn't conflict with older versions of the OS (which I
487   ## think were named like dgux4.*). In addition, DG new AViiONs series
488   ## uses either Motorola M88k or Intel Pentium CPUs.
489   m88k-dg-dguxR4.* | m88k-dg-dgux4* )
490     machine=aviion opsys=dgux4
491   ;;
492   m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* )
493     ## This name is dgux5-4-3 instead of dgux5-4r3
494     ## to avoid a file name conflict on MSDOS.
495     machine=aviion opsys=dgux5-4-3
496   ;;
497   m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* )
498     machine=aviion opsys=dgux5-4r2
499   ;;
500   m88k-dg-dgux* )
501     machine=aviion opsys=dgux
502   ;;
504   ## Data General AViiON Intel (x86) Machines
505   ## Exists from 5.4.3 (current i586-dg-dguxR4.11)
506   ## Ehud Karni, 1998-may-30, ehud@unix.simonwiesel.co.il
507   i[345]86-dg-dguxR4* )
508     machine=aviion-intel opsys=dgux4
509   ;;
511   ## DECstations
512   mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0* | mips-dec-bsd4.2* )
513     machine=pmax opsys=bsd4-2
514   ;;
515   mips-dec-ultrix4.[12]* | mips-dec-bsd* )
516     machine=pmax opsys=bsd4-3
517   ;;
518   mips-dec-ultrix* )
519     machine=pmax opsys=ultrix4-3
520   ;;
521   mips-dec-osf* )
522     machine=pmax opsys=osf1
523   ;;
524   mips-dec-mach_bsd4.3* )
525     machine=pmax opsys=mach-bsd4-3
526   ;;
528   ## Motorola Delta machines
529   m68k-motorola-sysv* | m68000-motorola-sysv* )
530     machine=delta opsys=usg5-3
531     if test -z "`type gnucc | grep 'not found'`"
532     then
533       if test -s /etc/167config
534       then CC="gnucc -m68040"
535       else CC="gnucc -m68881"
536       fi
537     else
538       if test -z "`type gcc | grep 'not found'`"
539       then CC=gcc
540       else CC=cc
541       fi
542     fi
543   ;;
544   m88k-motorola-sysv4* )
545     # jbotte@bnr.ca says that UNIX_System_V <hostName> 4.0 R40V4.3 m88k mc88110
546     # needs POSIX_SIGNALS and therefore needs usg5-4-2.
547     # I hope there are not other 4.0 versions for this machine
548     # which really need usg5-4 instead.
549     machine=delta88k opsys=usg5-4-2
550   ;;
551   m88k-motorola-sysv* | m88k-motorola-m88kbcs* )
552     machine=delta88k opsys=usg5-3
553   ;;
555   ## Dual machines
556   m68*-dual-sysv* )
557     machine=dual opsys=usg5-2
558   ;;
559   m68*-dual-uniplus* )
560     machine=dual opsys=unipl5-2
561   ;;
563   ## Elxsi 6400
564   elxsi-elxsi-sysv* )
565     machine=elxsi opsys=usg5-2
566   ;;
568   ## Encore machines
569   ns16k-encore-bsd* )
570     machine=ns16000 opsys=umax
571   ;;
573   ## The GEC 63 - apparently, this port isn't really finished yet.
574   #  I'm sure we finished off the last of the machines, though.  -- fx
576   ## Gould Power Node and NP1
577   pn-gould-bsd4.2* )
578     machine=gould opsys=bsd4-2
579   ;;
580   pn-gould-bsd4.3* )
581     machine=gould opsys=bsd4-3
582   ;;
583   np1-gould-bsd* )
584     machine=gould-np1 opsys=bsd4-3
585   ;;
587   ## Harris Night Hawk machines running CX/UX (a 5000 looks just like a 4000
588   ## as far as Emacs is concerned).
589   m88k-harris-cxux* )
590     # Build needs to be different on 7.0 and later releases
591     case "`uname -r`" in
592        [56].[0-9] ) machine=nh4000 opsys=cxux ;;
593        [7].[0-9] ) machine=nh4000 opsys=cxux7 ;;
594     esac
595     NON_GNU_CPP="/lib/cpp"
596   ;;
597   ## Harris ecx or gcx running CX/UX (Series 1200, Series 3000)
598   m68k-harris-cxux* )
599     machine=nh3000 opsys=cxux
600   ;;
601   ## Harris power pc NightHawk running Power UNIX (Series 6000)
602   powerpc-harris-powerunix )
603     machine=nh6000 opsys=powerunix
604     NON_GNU_CPP="cc -Xo -E -P"
605   ;;
606   ## SR2001/SR2201 running HI-UX/MPP
607   hppa1.1-hitachi-hiuxmpp* )
608     machine=sr2k opsys=hiuxmpp
609   ;;
610   hppa1.1-hitachi-hiuxwe2* )
611     machine=sr2k opsys=hiuxwe2
612   ;;
613   ## Honeywell XPS100
614   xps*-honeywell-sysv* )
615     machine=xps100 opsys=usg5-2
616   ;;
618   ## HP 9000 series 200 or 300
619   m68*-hp-bsd* )
620     machine=hp9000s300 opsys=bsd4-3
621   ;;
622   ## HP/UX 7, 8, 9, and 10 are supported on these machines.
623   m68*-hp-hpux* )
624     case "`uname -r`" in
625       ## Someone's system reports A.B8.05 for this.
626       ## I wonder what other possibilities there are.
627       *.B8.* ) machine=hp9000s300 opsys=hpux8 ;;
628       *.08.* ) machine=hp9000s300 opsys=hpux8 ;;
629       *.09.* ) machine=hp9000s300 opsys=hpux9 ;;
630       *.1[0-9].* ) machine=hp9000s300 opsys=hpux9shr ;;
631       *) machine=hp9000s300 opsys=hpux ;;
632     esac
633   ;;
635   ## HP 9000 series 700 and 800, running HP/UX
636   hppa*-hp-hpux7* )
637     machine=hp800 opsys=hpux
638   ;;
639   hppa*-hp-hpux8* )
640     machine=hp800 opsys=hpux8
641   ;;
642   hppa*-hp-hpux9shr* )
643     machine=hp800 opsys=hpux9shr
644   ;;
645   hppa*-hp-hpux9* )
646     machine=hp800 opsys=hpux9
647   ;;
648   hppa*-hp-hpux10.2* )
649     machine=hp800 opsys=hpux10-20
650   ;;
651   hppa*-hp-hpux10* )
652     machine=hp800 opsys=hpux10
653   ;;
654   hppa*-hp-hpux1[1-9]* )
655     machine=hp800 opsys=hpux11
656     CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS"
657   ;;
659   hppa*-*-linux-gnu* )
660     machine=hp800 opsys=gnu-linux
661   ;;
663   ## HP 9000 series 700 and 800, running HP/UX
664   hppa*-hp-hpux* )
665     ## Cross-compilation?  Nah!
666     case "`uname -r`" in
667       ## Someone's system reports A.B8.05 for this.
668       ## I wonder what other possibilities there are.
669       *.B8.* ) machine=hp800 opsys=hpux8 ;;
670       *.08.* ) machine=hp800 opsys=hpux8 ;;
671       *.09.* ) machine=hp800 opsys=hpux9 ;;
672       *) machine=hp800 opsys=hpux10 ;;
673     esac
674   ;;
675   hppa*-*-nextstep* )
676     machine=hp800 opsys=nextstep
677   ;;
679   ## Orion machines
680   orion-orion-bsd* )
681     machine=orion opsys=bsd4-2
682   ;;
683   clipper-orion-bsd* )
684     machine=orion105 opsys=bsd4-2
685   ;;
687   ## IBM machines
688   i[3456]86-ibm-aix1.1* )
689     machine=ibmps2-aix opsys=usg5-2-2
690   ;;
691   i[3456]86-ibm-aix1.[23]* | i[3456]86-ibm-aix* )
692     machine=ibmps2-aix opsys=usg5-3
693   ;;
694   i370-ibm-aix*)
695     machine=ibm370aix opsys=usg5-3
696   ;;
697   s390-*-linux-gnu* )
698     machine=ibms390 opsys=gnu-linux
699   ;;
700   s390x-*-linux-gnu* )
701     machine=ibms390x opsys=gnu-linux
702   ;;
703   rs6000-ibm-aix3.1* | powerpc-ibm-aix3.1*  )
704     machine=ibmrs6000 opsys=aix3-1
705   ;;
706   rs6000-ibm-aix3.2.5 | powerpc-ibm-aix3.2.5 )
707     machine=ibmrs6000 opsys=aix3-2-5
708   ;;
709   rs6000-ibm-aix4.1* | powerpc-ibm-aix4.1*  )
710     machine=ibmrs6000 opsys=aix4-1
711   ;;
712   rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2*  )
713     machine=ibmrs6000 opsys=aix4-2
714   ;;
715   rs6000-ibm-aix4.3* | powerpc-ibm-aix4.3*  )
716     machine=ibmrs6000 opsys=aix4-2
717   ;;
718   rs6000-ibm-aix5* | powerpc-ibm-aix5*  )
719     machine=ibmrs6000 opsys=aix4-2
720   ;;
721   rs6000-ibm-aix4.0* | powerpc-ibm-aix4.0*  )
722     machine=ibmrs6000 opsys=aix4
723   ;;
724   rs6000-ibm-aix4* | powerpc-ibm-aix4*  )
725     machine=ibmrs6000 opsys=aix4-1
726   ;;
727   rs6000-ibm-aix* | powerpc-ibm-aix* )
728     machine=ibmrs6000 opsys=aix3-2
729   ;;
730   romp-ibm-bsd4.3* )
731     machine=ibmrt opsys=bsd4-3
732   ;;
733   romp-ibm-bsd4.2* )
734     machine=ibmrt opsys=bsd4-2
735   ;;
736   romp-ibm-aos4.3* )
737     machine=ibmrt opsys=bsd4-3
738   ;;
739   romp-ibm-aos4.2* )
740     machine=ibmrt opsys=bsd4-2
741   ;;
742   romp-ibm-aos* )
743     machine=ibmrt opsys=bsd4-3
744   ;;
745   romp-ibm-bsd* )
746     machine=ibmrt opsys=bsd4-3
747   ;;
748   romp-ibm-aix* )
749     machine=ibmrt-aix opsys=usg5-2-2
750   ;;
752   ## Integrated Solutions `Optimum V'
753   m68*-isi-bsd4.2* )
754     machine=isi-ov opsys=bsd4-2
755   ;;
756   m68*-isi-bsd4.3* )
757     machine=isi-ov opsys=bsd4-3
758   ;;
760   ## Intel 386 machines where we do care about the manufacturer
761   i[3456]86-intsys-sysv* )
762     machine=is386 opsys=usg5-2-2
763   ;;
765   ## Prime EXL
766   i[3456]86-prime-sysv* )
767     machine=i386 opsys=usg5-3
768   ;;
770   ## Sequent Symmetry running Dynix
771   i[3456]86-sequent-bsd* )
772     machine=symmetry opsys=bsd4-3
773   ;;
775   ## Sequent Symmetry running ptx 4, which is a modified SVR4.
776   i[3456]86-sequent-ptx4* | i[3456]86-sequent-sysv4* )
777     machine=sequent-ptx opsys=ptx4
778     NON_GNU_CPP=/lib/cpp
779   ;;
781   ## Sequent Symmetry running DYNIX/ptx
782   ## Use the old cpp rather than the newer ANSI one.
783   i[3456]86-sequent-ptx* )
784     machine=sequent-ptx opsys=ptx
785     NON_GNU_CPP="/lib/cpp"
786   ;;
788   ## ncr machine running svr4.3.
789   i[3456]86-ncr-sysv4.3 )
790     machine=ncr386 opsys=usg5-4-3
791   ;;
793   ## Unspecified sysv on an ncr machine defaults to svr4.2.
794   ## (Plain usg5-4 doesn't turn on POSIX signals, which we need.)
795   i[3456]86-ncr-sysv* )
796     machine=ncr386 opsys=usg5-4-2
797   ;;
799   ## Intel Paragon OSF/1
800   i860-intel-osf1* )
801     machine=paragon opsys=osf1 NON_GNU_CPP=/usr/mach/lib/cpp
802   ;;
804   ## Intel 860
805   i860-*-sysv4* )
806     machine=i860 opsys=usg5-4
807     NON_GNU_CC="/bin/cc" # Ie, not the one in /usr/ucb/cc.
808     NON_GNU_CPP="/usr/ccs/lib/cpp" # cc -E tokenizes macro expansion.
809   ;;
811   ## Macintosh PowerPC
812   powerpc*-*-linux-gnu* )
813     machine=macppc opsys=gnu-linux
814   ;;
816   ## Masscomp machines
817   m68*-masscomp-rtu* )
818     machine=masscomp opsys=rtu
819   ;;
821   ## Megatest machines
822   m68*-megatest-bsd* )
823     machine=mega68 opsys=bsd4-2
824   ;;
826   ## Workstations sold by MIPS
827   ## This is not necessarily all workstations using the MIPS processor -
828   ## Irises are produced by SGI, and DECstations by DEC.
830   ## etc/MACHINES lists mips.h and mips4.h as possible machine files,
831   ## and usg5-2-2 and bsd4-3 as possible OS files.  The only guidance
832   ## it gives for choosing between the alternatives seems to be "Use
833   ## -machine=mips4 for RISCOS version 4; use -opsystem=bsd4-3 with
834   ## the BSD world."  I'll assume that these are instructions for
835   ## handling two odd situations, and that every other situation
836   ## should use mips.h and usg5-2-2, they being listed first.
837   mips-mips-usg* )
838     machine=mips4
839     ## Fall through to the general code at the bottom to decide on the OS.
840   ;;
841   mips-mips-riscos4* )
842     machine=mips4 opsys=bsd4-3
843     NON_GNU_CC="cc -systype bsd43"
844     NON_GNU_CPP="cc -systype bsd43 -E"
845   ;;
846   mips-mips-riscos5* )
847     machine=mips4 opsys=riscos5
848     NON_GNU_CC="cc -systype bsd43"
849     NON_GNU_CPP="cc -systype bsd43 -E"
850   ;;
851   mips-mips-bsd* )
852     machine=mips opsys=bsd4-3
853   ;;
854   mips-mips-* )
855     machine=mips opsys=usg5-2-2
856   ;;
858   ## NeXT
859   m68*-next-* | m68k-*-nextstep* )
860     machine=m68k opsys=nextstep
861   ;;
863   ## The complete machine from National Semiconductor
864   ns32k-ns-genix* )
865     machine=ns32000 opsys=usg5-2
866   ;;
868   ## NCR machines
869   m68*-ncr-sysv2* | m68*-ncr-sysvr2* )
870     machine=tower32 opsys=usg5-2-2
871   ;;
872   m68*-ncr-sysv3* | m68*-ncr-sysvr3* )
873     machine=tower32v3 opsys=usg5-3
874   ;;
876   ## NEC EWS4800
877   mips-nec-sysv4*)
878   machine=ews4800 opsys=ux4800
879   ;;
881   ## Nixdorf Targon 31
882   m68*-nixdorf-sysv* )
883     machine=targon31 opsys=usg5-2-2
884   ;;
886   ## Nu (TI or LMI)
887   m68*-nu-sysv* )
888     machine=nu opsys=usg5-2
889   ;;
891   ## Plexus
892   m68*-plexus-sysv* )
893     machine=plexus opsys=usg5-2
894   ;;
896   ## Pyramid machines
897   ## I don't really have any idea what sort of processor the Pyramid has,
898   ## so I'm assuming it is its own architecture.
899   pyramid-pyramid-bsd* )
900     machine=pyramid opsys=bsd4-2
901   ;;
903   ## Sequent Balance
904   ns32k-sequent-bsd4.2* )
905     machine=sequent opsys=bsd4-2
906   ;;
907   ns32k-sequent-bsd4.3* )
908     machine=sequent opsys=bsd4-3
909   ;;
911   ## Siemens Nixdorf
912   mips-siemens-sysv* | mips-sni-sysv*)
913     machine=mips-siemens opsys=usg5-4
914     NON_GNU_CC=/usr/ccs/bin/cc
915     NON_GNU_CPP=/usr/ccs/lib/cpp
916   ;;
918   ## Silicon Graphics machines
919   ## Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
920   m68*-sgi-iris3.5* )
921     machine=irist opsys=iris3-5
922   ;;
923   m68*-sgi-iris3.6* | m68*-sgi-iris*)
924     machine=irist opsys=iris3-6
925   ;;
926   ## Iris 4D
927   mips-sgi-irix3* )
928     machine=iris4d opsys=irix3-3
929   ;;
930   mips-sgi-irix4* )
931     machine=iris4d opsys=irix4-0
932   ;;
933   mips-sgi-irix6.5 )
934     machine=iris4d opsys=irix6-5
935     # Without defining _LANGUAGE_C, things get masked out in the headers
936     # so that, for instance, grepping for `free' in stdlib.h fails and
937     # AC_HEADER_STD_C fails.   (MIPSPro 7.2.1.2m compilers, Irix 6.5.3m).
938     NON_GNU_CPP="/lib/cpp -D_LANGUAGE_C"
939     NON_GCC_TEST_OPTIONS="-D_LANGUAGE_C"
940   ;;
941   mips-sgi-irix6* )
942     machine=iris4d opsys=irix6-0
943     # It's not clear whether -D_LANGUAGE_C is necessary as it is for 6.5,
944     # but presumably it does no harm.
945     NON_GNU_CPP="/lib/cpp -D_LANGUAGE_C"
946     # -32 probably isn't necessary in later v.6s -- anyone know which?
947     NON_GCC_TEST_OPTIONS=-32
948   ;;
949   mips-sgi-irix5.[01]* )
950     machine=iris4d opsys=irix5-0
951   ;;
952   mips-sgi-irix5* | mips-sgi-irix* )
953     machine=iris4d opsys=irix5-2
954   ;;
956   ## SONY machines
957   m68*-sony-bsd4.2* )
958     machine=news opsys=bsd4-2
959   ;;
960   m68*-sony-bsd4.3* )
961     machine=news opsys=bsd4-3
962   ;;
963   m68*-sony-newsos3* | m68*-sony-news3*)
964     machine=news opsys=bsd4-3
965   ;;
966   mips-sony-bsd* | mips-sony-newsos4* | mips-sony-news4*)
967     machine=news-risc opsys=bsd4-3
968   ;;
969   mips-sony-newsos6* )
970     machine=news-r6 opsys=newsos6
971   ;;
972   mips-sony-news* )
973     machine=news-risc opsys=newsos5
974   ;;
976   ## Stride
977   m68*-stride-sysv* )
978     machine=stride opsys=usg5-2
979   ;;
981   ## Suns
982   sparc-*-linux-gnu* | sparc64-*-linux-gnu* )
983     machine=sparc opsys=gnu-linux
984   ;;
986   *-auspex-sunos* | *-sun-sunos* | *-sun-bsd* | *-sun-solaris* \
987     | i[3456]86-*-solaris2* | i[3456]86-*-sunos5* | powerpc*-*-solaris2* \
988     | rs6000-*-solaris2*)
989     case "${canonical}" in
990       m68*-sunos1* )    machine=sun1 ;;
991       m68*-sunos2* )    machine=sun2 ;;
992       m68* )            machine=sun3 ;;
993       i[3456]86-sun-sunos[34]* )        machine=sun386 ;;
994       i[3456]86-*-* )     machine=intel386 ;;
995       amd64-*-*|x86_64-*-*)     machine=amdx86-64 ;;
996       powerpcle* )      machine=powerpcle ;;
997       powerpc* | rs6000* )  machine=ibmrs6000 ;;
998       sparc* )          machine=sparc ;;
999       * )               unported=yes ;;
1000     esac
1001     case "${canonical}" in
1002       ## The Sun386 didn't get past 4.0.
1003       i[3456]86-*-sunos4          ) opsys=sunos4-0 ;;
1004       *-sunos4.0*         ) opsys=sunos4-0 ;;
1005       *-sunos4.1.[3-9]*noshare )
1006                 ## This name is sunos413 instead of sunos4-1-3
1007                 ## to avoid a file name conflict on MSDOS.
1008                 opsys=sunos413
1009                 NON_GNU_CPP=/usr/lib/cpp
1010                 NON_GCC_TEST_OPTIONS=-Bstatic
1011                 GCC_TEST_OPTIONS=-static
1012                 ;;
1013       *-sunos4.1.[3-9]* | *-sunos4shr*)
1014                 opsys=sunos4shr
1015                 NON_GNU_CPP=/usr/lib/cpp
1016                 ;;
1017       *-sunos4* | *-sunos )
1018                 opsys=sunos4-1
1019                 NON_GCC_TEST_OPTIONS=-Bstatic
1020                 GCC_TEST_OPTIONS=-static
1021                 ;;
1022       *-sunos5.3* | *-solaris2.3* )
1023                 opsys=sol2-3
1024                 NON_GNU_CPP=/usr/ccs/lib/cpp
1025                 ;;
1026       *-sunos5.4* | *-solaris2.4* )
1027                 opsys=sol2-4
1028                 NON_GNU_CPP=/usr/ccs/lib/cpp
1029                 RANLIB="ar -ts"
1030                 ;;
1031       *-sunos5.5* | *-solaris2.5* )
1032                 opsys=sol2-5
1033                 NON_GNU_CPP=/usr/ccs/lib/cpp
1034                 RANLIB="ar -ts"
1035                 ;;
1036       *-sunos5.6* | *-solaris2.6* )
1037                 opsys=sol2-6
1038                 NON_GNU_CPP=/usr/ccs/lib/cpp
1039                 RANLIB="ar -ts"
1040                 ;;
1041       *-sunos5* | *-solaris* )
1042                 opsys=sol2-6
1043                 emacs_check_sunpro_c=yes
1044                 NON_GNU_CPP=/usr/ccs/lib/cpp
1045                 ;;
1046       *                   ) opsys=bsd4-2   ;;
1047     esac
1048     ## Watch out for a compiler that we know will not work.
1049     case "${canonical}" in
1050      *-solaris* | *-sunos5* )
1051                 if [ "x$CC" = x/usr/ucb/cc ]; then
1052                   ## /usr/ucb/cc doesn't work;
1053                   ## we should find some other compiler that does work.
1054                   unset CC
1055                 fi
1056                 ;;
1057       *) ;;
1058     esac
1059   ;;
1060   sparc-*-nextstep* )
1061     machine=sparc opsys=nextstep
1062   ;;
1064   ## Tadpole 68k
1065   m68*-tadpole-sysv* )
1066     machine=tad68k opsys=usg5-3
1067   ;;
1069   ## Tahoe machines
1070   tahoe-tahoe-bsd4.2* )
1071     machine=tahoe opsys=bsd4-2
1072   ;;
1073   tahoe-tahoe-bsd4.3* )
1074     machine=tahoe opsys=bsd4-3
1075   ;;
1077   ## Tandem Integrity S2
1078   mips-tandem-sysv* )
1079     machine=tandem-s2 opsys=usg5-3
1080   ;;
1082   ## Tektronix XD88
1083   m88k-tektronix-sysv3* )
1084   machine=tekxd88 opsys=usg5-3
1085   ;;
1087   ## Tektronix 16000 box (6130?)
1088   ns16k-tektronix-bsd* )
1089     machine=ns16000 opsys=bsd4-2
1090   ;;
1091   ## Tektronix 4300
1092   ## src/m/tek4300.h hints that this is a m68k machine.
1093   m68*-tektronix-bsd* )
1094     machine=tek4300 opsys=bsd4-3
1095   ;;
1097   ## Titan P2 or P3
1098   ## We seem to have lost the machine-description file titan.h!
1099   titan-titan-sysv* )
1100     machine=titan opsys=usg5-3
1101   ;;
1103   ## Ustation E30 (SS5E)
1104   m68*-unisys-uniplus* )
1105     machine=ustation opsystem=unipl5-2
1106   ;;
1108   ## Vaxen.
1109   vax-dec-* )
1110     machine=vax
1111     case "${canonical}" in
1112       *-bsd4.1* )                                       opsys=bsd4-1 ;;
1113       *-bsd4.2* | *-ultrix[0-3].* | *-ultrix4.0* )      opsys=bsd4-2 ;;
1114       *-bsd4.3* | *-ultrix* )                           opsys=bsd4-3 ;;
1115       *-sysv[01]* | *-sysvr[01]* )                      opsys=usg5-0 ;;
1116       *-sysv2* | *-sysvr2* )                            opsys=usg5-2 ;;
1117       *-vms* )                                          opsys=vms ;;
1118       * )                                               unported=yes
1119     esac
1120   ;;
1122   ## Whitechapel MG1
1123   ns16k-whitechapel-* )
1124     machine=mg1
1125     ## We don't know what sort of OS runs on these; we'll let the
1126     ## operating system guessing code below try.
1127   ;;
1129   ## Wicat
1130   m68*-wicat-sysv* )
1131     machine=wicat opsys=usg5-2
1132   ;;
1134   ## IA-64
1135   ia64*-*-linux* )
1136     machine=ia64 opsys=gnu-linux
1137   ;;
1139   ## Intel 386 machines where we don't care about the manufacturer
1140   i[3456]86-*-* )
1141     machine=intel386
1142     case "${canonical}" in
1143       *-cygwin )                opsys=cygwin ;;
1144       *-darwin* )               opsys=darwin
1145                                 CPP="${CC-cc} -E -no-cpp-precomp"
1146                                 ;;
1147       *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;;
1148       *-isc2.2* )               opsys=isc2-2 ;;
1149       *-isc4.0* )               opsys=isc4-0 ;;
1150       *-isc4.* )                opsys=isc4-1
1151                                 GCC_TEST_OPTIONS=-posix
1152                                 NON_GCC_TEST_OPTIONS=-Xp
1153                                 ;;
1154       *-isc* )                  opsys=isc3-0 ;;
1155       *-esix5* )                opsys=esix5r4; NON_GNU_CPP=/usr/lib/cpp ;;
1156       *-esix* )                 opsys=esix ;;
1157       *-xenix* )                opsys=xenix ;;
1158       *-linux-gnu* )            opsys=gnu-linux ;;
1159       *-sco3.2v4* )             opsys=sco4 ; NON_GNU_CPP=/lib/cpp  ;;
1160       *-sco3.2v5* )             opsys=sco5
1161                                 NON_GNU_CPP=/lib/cpp
1162                                 # Prevent -belf from being passed to $CPP.
1163                                 # /lib/cpp does not accept it.
1164                                 OVERRIDE_CPPFLAGS=" "
1165                                 ;;
1166       *-sysv4.2uw* )            opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
1167       *-sysv5uw* )              opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
1168       *-sysv5OpenUNIX* )        opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
1169       *-386bsd* )               opsys=386bsd ;;
1170       *-nextstep* )             opsys=nextstep ;;
1171       ## Otherwise, we'll fall through to the generic opsys code at the bottom.
1172     esac
1173   ;;
1175   ## m68k Linux-based GNU system
1176   m68k-*-linux-gnu* )
1177     machine=m68k opsys=gnu-linux
1178   ;;
1180   ## Mips Linux-based GNU system
1181   mips-*-linux-gnu* | mipsel-*-linux-gnu* )
1182     machine=mips opsys=gnu-linux
1183   ;;
1185   ## UXP/DS
1186   sparc-fujitsu-sysv4* )
1187     machine=sparc opsys=uxpds
1188     NON_GNU_CPP=/usr/ccs/lib/cpp
1189     RANLIB="ar -ts"
1190   ;;
1192   ## UXP/V
1193   f301-fujitsu-uxpv4.1)
1194     machine=f301 opsys=uxpv
1195   ;;
1197   ## AMD x86-64 Linux-based GNU system
1198   x86_64-*-linux-gnu* )
1199     machine=amdx86-64 opsys=gnu-linux
1200   ;;
1202   ## Tensilica Xtensa Linux-based GNU system    
1203   xtensa-*-linux-gnu* )
1204     machine=xtensa opsys=gnu-linux
1205     ;;
1207   * )
1208     unported=yes
1209   ;;
1210 esac
1212 ### If the code above didn't choose an operating system, just choose
1213 ### an operating system based on the configuration name.  You really
1214 ### only want to use this when you have no idea what the right
1215 ### operating system is; if you know what operating systems a machine
1216 ### runs, it's cleaner to make it explicit in the case statement
1217 ### above.
1218 if test x"${opsys}" = x; then
1219   case "${canonical}" in
1220     *-gnu* )                            opsys=gnu ;;
1221     *-bsd4.[01] )                       opsys=bsd4-1 ;;
1222     *-bsd4.2 )                          opsys=bsd4-2 ;;
1223     *-bsd4.3 )                          opsys=bsd4-3 ;;
1224     *-sysv0 | *-sysvr0 )                opsys=usg5-0 ;;
1225     *-sysv2 | *-sysvr2 )                opsys=usg5-2 ;;
1226     *-sysv2.2 | *-sysvr2.2 )            opsys=usg5-2-2 ;;
1227     *-sysv3* | *-sysvr3* )              opsys=usg5-3 ;;
1228     *-sysv4.2uw* )                      opsys=unixware ;;
1229     *-sysv5uw* )                        opsys=unixware ;;
1230     *-sysv5OpenUNIX* )                  opsys=unixware ;;
1231     *-sysv4.1* | *-sysvr4.1* )
1232         NON_GNU_CPP=/usr/lib/cpp
1233         opsys=usg5-4 ;;
1234     *-sysv4.[2-9]* | *-sysvr4.[2-9]* )
1235         if [ x$NON_GNU_CPP = x ]; then
1236           if [ -f /usr/ccs/lib/cpp ]; then
1237             NON_GNU_CPP=/usr/ccs/lib/cpp
1238           else
1239             NON_GNU_CPP=/lib/cpp
1240           fi
1241         fi
1242         opsys=usg5-4-2 ;;
1243     *-sysv4* | *-sysvr4* )              opsys=usg5-4 ;;
1244     * )
1245       unported=yes
1246     ;;
1247   esac
1251 dnl quotation ends
1253 if test $unported = yes; then
1254   AC_MSG_ERROR([Emacs hasn't been ported to `${canonical}' systems.
1255 Check `etc/MACHINES' for recognized configuration names.])
1258 machfile="m/${machine}.h"
1259 opsysfile="s/${opsys}.h"
1262 #### Choose a compiler.
1263 test -n "$CC" && cc_specified=yes
1265 # Save the value of CFLAGS that the user specified.
1266 SPECIFIED_CFLAGS="$CFLAGS"
1268 case ${with_gcc} in
1269   "yes" ) CC="gcc" GCC=yes ;;
1270   "no"  ) : ${CC=cc} ;;
1271   * )
1272 esac
1273 AC_PROG_CC
1275 # On Suns, sometimes $CPP names a directory.
1276 if test -n "$CPP" && test -d "$CPP"; then
1277   CPP=
1280 ## If not using gcc, and on Solaris, and no CPP specified, see if
1281 ## using a Sun compiler, which needs -Xs to prevent whitespace.
1282 if test x"$GCC" != xyes && test x"$emacs_check_sunpro_c" = xyes && \
1283  test x"$CPP" = x; then
1284   AC_MSG_CHECKING([whether we are using a Sun C compiler])
1285   AC_CACHE_VAL(emacs_cv_sunpro_c,
1286   [AC_TRY_LINK([],
1287 [#ifndef __SUNPRO_C
1288 fail;
1289 #endif
1290 ], emacs_cv_sunpro_c=yes, emacs_cv_sunpro_c=no)])
1291   AC_MSG_RESULT($emacs_cv_sunpro_c)
1293   if test x"$emacs_cv_sunpro_c" = xyes; then
1294     NON_GNU_CPP="$CC -E -Xs"
1295   fi
1298 #### Some systems specify a CPP to use unless we are using GCC.
1299 #### Now that we know whether we are using GCC, we can decide whether
1300 #### to use that one.
1301 if test "x$NON_GNU_CPP" != x && test x$GCC != xyes && test "x$CPP" = x
1302 then
1303   CPP="$NON_GNU_CPP"
1306 #### Some systems specify a CC to use unless we are using GCC.
1307 #### Now that we know whether we are using GCC, we can decide whether
1308 #### to use that one.
1309 if test "x$NON_GNU_CC" != x && test x$GCC != xyes &&
1310   test x$cc_specified != xyes
1311 then
1312   CC="$NON_GNU_CC"
1315 if test x$GCC = xyes && test "x$GCC_TEST_OPTIONS" != x
1316 then
1317   CC="$CC $GCC_TEST_OPTIONS"
1320 if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x
1321 then
1322   CC="$CC $NON_GCC_TEST_OPTIONS"
1325 dnl checks for Unix variants
1326 AC_AIX
1327 AC_GNU_SOURCE
1329 ### Use -Wno-pointer-sign if the compiler supports it
1330 AC_MSG_CHECKING([whether gcc understands -Wno-pointer-sign])
1331 SAVE_CFLAGS="$CFLAGS"
1332 CFLAGS="$CFLAGS -Wno-pointer-sign"
1333 AC_TRY_COMPILE([], [], has_option=yes, has_option=no,)
1334 if test $has_option = yes; then
1335    C_WARNINGS_SWITCH="-Wno-pointer-sign $C_WARNINGS_SWITCH"
1337 AC_MSG_RESULT($has_option)
1338 CFLAGS="$SAVE_CFLAGS"
1339 unset has_option
1340 unset SAVE_CFLAGS
1342 #### Some other nice autoconf tests.
1344 dnl checks for programs
1345 AC_PROG_LN_S
1346 AC_PROG_CPP
1347 AC_PROG_INSTALL
1348 if test "x$RANLIB" = x; then
1349   AC_PROG_RANLIB
1351 AC_PATH_PROG(INSTALL_INFO, install-info)
1352 AC_PATH_PROG(INSTALL_INFO, install-info,, /usr/sbin)
1353 AC_PATH_PROG(INSTALL_INFO, install-info,:, /sbin)
1354 dnl Don't use GZIP, which is used by gzip for additional parameters.
1355 AC_PATH_PROG(GZIP_PROG, gzip)
1358 ## Need makeinfo >= 4.6 (?) to build the manuals.
1359 AC_PATH_PROG(MAKEINFO, makeinfo, no)
1360 dnl By this stage, configure has already checked for egrep and set EGREP, 
1361 dnl or exited with an error if no egrep was found.
1362 if test "$MAKEINFO" != "no" && \
1363   test x"`$MAKEINFO --version 2> /dev/null | $EGREP 'texinfo[[^0-9]]*([[1-4]][[0-9]]+|[[5-9]]|4\.[[6-9]]|4\.[[1-5]][[0-9]]+)'`" = x; then
1364    MAKEINFO=no    
1367 if test "$MAKEINFO" = "no"; then
1368   AC_MSG_ERROR( [makeinfo >= 4.6 is required] )
1372 dnl Add our options to ac_link now, after it is set up.
1374 if test x$GCC = xyes && test "x$GCC_LINK_TEST_OPTIONS" != x
1375 then
1376   ac_link="$ac_link $GCC_LINK_TEST_OPTIONS"
1379 if test x$GCC = x && test "x$NON_GCC_LINK_TEST_OPTIONS" != x
1380 then
1381   ac_link="$ac_link $NON_GCC_LINK_TEST_OPTIONS"
1384 dnl We need -znocombreloc if we're using a relatively recent GNU ld.
1385 dnl If we can link with the flag, it shouldn't do any harm anyhow.
1386 dnl (Don't use `-z nocombreloc' as -z takes no arg on Irix.)
1387 dnl Treat GCC specially since it just gives a non-fatal `unrecognized option'
1388 dnl if not built to support GNU ld.
1390 late_LDFLAGS=$LDFLAGS
1391 if test "$GCC" = yes; then
1392   LDFLAGS="$LDFLAGS -Wl,-znocombreloc"
1393 else
1394   LDFLAGS="$LDFLAGS -znocombreloc"
1397 AC_MSG_CHECKING([for -znocombreloc])
1398 AC_LINK_IFELSE([main(){return 0;}],
1399   [AC_MSG_RESULT(yes)],
1400   LDFLAGS=$late_LDFLAGS
1401   [AC_MSG_RESULT(no)])
1403 #### Extract some information from the operating system and machine files.
1405 AC_CHECKING([the machine- and system-dependent files to find out
1406  - which libraries the lib-src programs will want, and
1407  - whether the GNU malloc routines are usable])
1409 ### First figure out CFLAGS (which we use for running the compiler here)
1410 ### and REAL_CFLAGS (which we use for real compilation).
1411 ### The two are the same except on a few systems, where they are made
1412 ### different to work around various lossages.  For example,
1413 ### GCC 2.5 on GNU/Linux needs them to be different because it treats -g
1414 ### as implying static linking.
1416 ### If the CFLAGS env var is specified, we use that value
1417 ### instead of the default.
1419 ### It's not important that this name contain the PID; you can't run
1420 ### two configures in the same directory and have anything work
1421 ### anyway.
1422 tempcname="conftest.c"
1424 echo '
1425 #include "'${srcdir}'/src/'${opsysfile}'"
1426 #include "'${srcdir}'/src/'${machfile}'"
1427 #ifndef LIBS_MACHINE
1428 #define LIBS_MACHINE
1429 #endif
1430 #ifndef LIBS_SYSTEM
1431 #define LIBS_SYSTEM
1432 #endif
1433 #ifndef C_SWITCH_SYSTEM
1434 #define C_SWITCH_SYSTEM
1435 #endif
1436 #ifndef C_SWITCH_MACHINE
1437 #define C_SWITCH_MACHINE
1438 #endif
1439 configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
1440 configure___ c_switch_system=C_SWITCH_SYSTEM
1441 configure___ c_switch_machine=C_SWITCH_MACHINE
1443 #ifndef LIB_X11_LIB
1444 #define LIB_X11_LIB -lX11
1445 #endif
1447 #ifndef LIBX11_MACHINE
1448 #define LIBX11_MACHINE
1449 #endif
1451 #ifndef LIBX11_SYSTEM
1452 #define LIBX11_SYSTEM
1453 #endif
1454 configure___ LIBX=LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM
1456 #ifdef UNEXEC
1457 configure___ unexec=UNEXEC
1458 #else
1459 configure___ unexec=unexec.o
1460 #endif
1462 #ifdef SYSTEM_MALLOC
1463 configure___ system_malloc=yes
1464 #else
1465 configure___ system_malloc=no
1466 #endif
1468 #ifdef USE_MMAP_FOR_BUFFERS
1469 configure___ use_mmap_for_buffers=yes
1470 #else
1471 configure___ use_mmap_for_buffers=no
1472 #endif
1474 #ifndef C_DEBUG_SWITCH
1475 #define C_DEBUG_SWITCH -g
1476 #endif
1478 #ifndef C_OPTIMIZE_SWITCH
1479 #ifdef __GNUC__
1480 #define C_OPTIMIZE_SWITCH -O2
1481 #else
1482 #define C_OPTIMIZE_SWITCH -O
1483 #endif
1484 #endif
1486 #ifndef C_WARNINGS_SWITCH
1487 #define C_WARNINGS_SWITCH ${C_WARNINGS_SWITCH}
1488 #endif
1490 #ifndef LD_SWITCH_MACHINE
1491 #define LD_SWITCH_MACHINE
1492 #endif
1494 #ifndef LD_SWITCH_SYSTEM
1495 #define LD_SWITCH_SYSTEM
1496 #endif
1498 #ifndef LD_SWITCH_X_SITE_AUX
1499 #define LD_SWITCH_X_SITE_AUX
1500 #endif
1502 configure___ ld_switch_system=LD_SWITCH_SYSTEM
1503 configure___ ld_switch_machine=LD_SWITCH_MACHINE
1505 #ifdef THIS_IS_CONFIGURE
1507 /* Get the CFLAGS for tests in configure.  */
1508 #ifdef __GNUC__
1509 configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}'
1510 #else
1511 configure___ CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
1512 #endif
1514 #else /* not THIS_IS_CONFIGURE */
1516 /* Get the CFLAGS for real compilation.  */
1517 #ifdef __GNUC__
1518 configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH C_WARNINGS_SWITCH '${SPECIFIED_CFLAGS}'
1519 #else
1520 configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
1521 #endif
1523 #endif /* not THIS_IS_CONFIGURE */
1524 ' > ${tempcname}
1526 # The value of CPP is a quoted variable reference, so we need to do this
1527 # to get its actual value...
1528 CPP=`eval "echo $CPP"`
1529 [eval `${CPP} -Isrc ${tempcname} \
1530        | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
1531 if test "x$SPECIFIED_CFLAGS" = x; then
1532   eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \
1533          | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
1534 else
1535   REAL_CFLAGS="$CFLAGS"
1537 rm ${tempcname}
1539 ac_link="$ac_link $ld_switch_machine $ld_switch_system"
1541 ### Make sure subsequent tests use flags consistent with the build flags.
1543 if test x"${OVERRIDE_CPPFLAGS}" != x; then
1544   CPPFLAGS="${OVERRIDE_CPPFLAGS}"
1545 else
1546   CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
1549 dnl For AC_FUNC_GETLOADAVG, at least:
1550 AC_CONFIG_LIBOBJ_DIR(src)
1552 dnl Do this early because it can frob feature test macros for Unix-98 &c.
1553 AC_SYS_LARGEFILE
1556 ### The standard library on x86-64 GNU/Linux distributions can 
1557 ### be located in either /usr/lib64 or /usr/lib.
1558 case "${canonical}" in
1559   x86_64-*-linux-gnu* )
1560     if test -d /usr/lib64; then
1561       AC_DEFINE(HAVE_X86_64_LIB64_DIR, 1,
1562         [Define to 1 if the file /usr/lib64 exists.])
1564 esac
1566 dnl This function defintion taken from Gnome 2.0
1567 dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
1568 dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
1569 dnl also defines GSTUFF_PKG_ERRORS on error
1570 AC_DEFUN([PKG_CHECK_MODULES], [
1571   succeeded=no
1573   if test -z "$PKG_CONFIG"; then
1574     AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1575   fi
1577   if test "$PKG_CONFIG" = "no" ; then
1578      ifelse([$4], , [AC_MSG_ERROR([
1579       *** The pkg-config script could not be found. Make sure it is in your path, or give the full path to pkg-config with the PKG_CONFIG environment variable or --with-pkg-config-prog.  Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config.])], [$4])
1580   else
1581      PKG_CONFIG_MIN_VERSION=0.9.0
1582      if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
1583         AC_MSG_CHECKING(for $2)
1585         if $PKG_CONFIG --exists "$2" 2>&AS_MESSAGE_LOG_FD; then
1586             AC_MSG_RESULT(yes)
1587             succeeded=yes
1589             AC_MSG_CHECKING($1_CFLAGS)
1590             $1_CFLAGS=`$PKG_CONFIG --cflags "$2"|sed -e 's,///*,/,g'`
1591             AC_MSG_RESULT($$1_CFLAGS)
1593             AC_MSG_CHECKING($1_LIBS)
1594             $1_LIBS=`$PKG_CONFIG --libs "$2"|sed -e 's,///*,/,g'`
1595             AC_MSG_RESULT($$1_LIBS)
1596         else
1597             AC_MSG_RESULT(no)
1598             $1_CFLAGS=""
1599             $1_LIBS=""
1600             ## If we have a custom action on failure, don't print errors, but
1601             ## do set a variable so people can do so.
1602             $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
1603             ifelse([$4], ,echo $$1_PKG_ERRORS,)
1604         fi
1606         AC_SUBST($1_CFLAGS)
1607         AC_SUBST($1_LIBS)
1608      else
1609         echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
1610         echo "*** See http://www.freedesktop.org/software/pkgconfig"
1611      fi
1612   fi
1614   if test $succeeded = yes; then
1615      ifelse([$3], , :, [$3])
1616   else
1617      ifelse([$4], , [AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.])], [$4])
1618   fi
1622 if test "${with_sound}" != "no"; then
1623   # Sound support for GNU/Linux and the free BSDs.
1624   AC_CHECK_HEADERS(machine/soundcard.h sys/soundcard.h soundcard.h)
1625   # Emulation library used on NetBSD.
1626   AC_CHECK_LIB(ossaudio, _oss_ioctl, LIBSOUND=-lossaudio, LIBSOUND=)
1627   AC_SUBST(LIBSOUND)
1629   ALSA_REQUIRED=1.0.0
1630   ALSA_MODULES="alsa >= $ALSA_REQUIRED"
1631   dnl Check if --with-pkg-config-prog has been given.
1632   if test "X${with_pkg_config_prog}" != X; then
1633     PKG_CONFIG="${with_pkg_config_prog}"
1634   fi
1635   PKG_CHECK_MODULES(ALSA, $ALSA_MODULES, HAVE_ALSA=yes, HAVE_ALSA=no)
1636   if test $HAVE_ALSA = yes; then
1637     SAVE_CFLAGS="$CFLAGS"
1638     SAVE_LDFLAGS="$LDFLAGS"
1639     CFLAGS="$ALSA_CFLAGS $CFLAGS"
1640     LDFLAGS="$ALSA_LIBS $LDFLAGS"
1641     AC_TRY_COMPILE([#include <asoundlib.h>], [snd_lib_error_set_handler (0);],
1642                     emacs_alsa_normal=yes,
1643                     emacs_alsa_normal=no)
1644     if test "$emacs_alsa_normal" != yes; then
1645       AC_TRY_COMPILE([#include <alsa/asoundlib.h>],
1646                      [snd_lib_error_set_handler (0);],
1647                      emacs_alsa_subdir=yes,
1648                      emacs_alsa_subdir=no)
1649       if test "$emacs_alsa_subdir" != yes; then
1650         AC_MSG_ERROR([pkg-config found alsa, but it does not compile.  See config.log for error messages.])
1651       fi
1652       ALSA_CFLAGS="$ALSA_CFLAGS -DALSA_SUBDIR_INCLUDE"
1653     fi
1655     CFLAGS="$SAVE_CFLAGS"
1656     LDFLAGS="$SAVE_LDFLAGS"
1657     LIBSOUND="$LIBSOUND $ALSA_LIBS"
1658     CFLAGS_SOUND="$CFLAGS_SOUND $ALSA_CFLAGS"
1659     AC_DEFINE(HAVE_ALSA, 1, [Define to 1 if ALSA is available.])
1660   fi
1661   AC_SUBST(CFLAGS_SOUND)
1664 dnl checks for header files
1665 AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \
1666   linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \
1667   termcap.h stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \
1668   sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \
1669   sys/utsname.h pwd.h)
1671 AC_MSG_CHECKING(if personality LINUX32 can be set)
1672 AC_TRY_COMPILE([#include <sys/personality.h>], [personality (PER_LINUX32)],
1673                emacs_cv_personality_linux32=yes,
1674                emacs_cv_personality_linux32=no)
1675 AC_MSG_RESULT($emacs_cv_personality_linux32)
1677 if test $emacs_cv_personality_linux32 = yes; then
1678   AC_DEFINE(HAVE_PERSONALITY_LINUX32, 1,
1679             [Define to 1 if personality LINUX32 can be set.])
1682 dnl On Solaris 8 there's a compilation warning for term.h because
1683 dnl it doesn't define `bool'.
1684 AC_CHECK_HEADERS(term.h, , , -)
1685 AC_HEADER_STDC
1686 AC_HEADER_TIME
1687 AC_CHECK_DECLS([sys_siglist])
1688 if test $ac_cv_have_decl_sys_siglist != yes; then
1689   # For Tru64, at least:
1690   AC_CHECK_DECLS([__sys_siglist])
1691   if test $ac_cv_have_decl___sys_siglist = yes; then
1692     AC_DEFINE(sys_siglist, __sys_siglist,
1693               [Define to any substitute for sys_siglist.])
1694   fi
1696 AC_HEADER_SYS_WAIT
1698 dnl Some systems have utime.h but don't declare the struct anyplace.
1699 AC_CACHE_CHECK(for struct utimbuf, emacs_cv_struct_utimbuf,
1700 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
1701 #include <sys/time.h>
1702 #include <time.h>
1703 #else
1704 #ifdef HAVE_SYS_TIME_H
1705 #include <sys/time.h>
1706 #else
1707 #include <time.h>
1708 #endif
1709 #endif
1710 #ifdef HAVE_UTIME_H
1711 #include <utime.h>
1712 #endif], [static struct utimbuf x; x.actime = x.modtime;],
1713   emacs_cv_struct_utimbuf=yes, emacs_cv_struct_utimbuf=no))
1714 if test $emacs_cv_struct_utimbuf = yes; then
1715   AC_DEFINE(HAVE_STRUCT_UTIMBUF, 1, [Define to 1 if `struct utimbuf' is declared by <utime.h>.])
1718 dnl checks for typedefs
1719 AC_TYPE_SIGNAL
1721 dnl Check for speed_t typedef.
1722 AC_CACHE_CHECK(for speed_t, emacs_cv_speed_t,
1723   [AC_TRY_COMPILE([#include <termios.h>], [speed_t x = 1;],
1724     emacs_cv_speed_t=yes, emacs_cv_speed_t=no)])
1725 if test $emacs_cv_speed_t = yes; then
1726   AC_DEFINE(HAVE_SPEED_T, 1,
1727            [Define to 1 if `speed_t' is declared by <termios.h>.])
1730 AC_CACHE_CHECK(for struct timeval, emacs_cv_struct_timeval,
1731 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
1732 #include <sys/time.h>
1733 #include <time.h>
1734 #else
1735 #ifdef HAVE_SYS_TIME_H
1736 #include <sys/time.h>
1737 #else
1738 #include <time.h>
1739 #endif
1740 #endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
1741   emacs_cv_struct_timeval=yes, emacs_cv_struct_timeval=no))
1742 HAVE_TIMEVAL=$emacs_cv_struct_timeval
1743 if test $emacs_cv_struct_timeval = yes; then
1744   AC_DEFINE(HAVE_TIMEVAL, 1, [Define to 1 if `struct timeval' is declared by <sys/time.h>.])
1747 AC_CACHE_CHECK(for struct exception, emacs_cv_struct_exception,
1748 AC_TRY_COMPILE([#include <math.h>],
1749 [static struct exception x; x.arg1 = x.arg2 = x.retval; x.name = ""; x.type = 1;],
1750   emacs_cv_struct_exception=yes, emacs_cv_struct_exception=no))
1751 HAVE_EXCEPTION=$emacs_cv_struct_exception
1752 if test $emacs_cv_struct_exception != yes; then
1753   AC_DEFINE(NO_MATHERR, 1, [Define to 1 if you don't have struct exception in math.h.])
1756 AC_CHECK_HEADERS(sys/socket.h)
1757 AC_CHECK_HEADERS(net/if.h, , , [AC_INCLUDES_DEFAULT
1758 #if HAVE_SYS_SOCKET_H
1759 #include <sys/socket.h>
1760 #endif])
1762 dnl checks for structure members
1763 AC_STRUCT_TM
1764 AC_STRUCT_TIMEZONE
1765 AC_CHECK_MEMBER(struct tm.tm_gmtoff,
1766                 [AC_DEFINE(HAVE_TM_GMTOFF, 1,
1767                            [Define to 1 if `tm_gmtoff' is member of `struct tm'.])],,
1768                 [#include <time.h>])
1769 AC_CHECK_MEMBERS([struct ifreq.ifr_flags, struct ifreq.ifr_hwaddr,
1770                   struct ifreq.ifr_netmask, struct ifreq.ifr_broadaddr,
1771                   struct ifreq.ifr_addr], , ,
1772                  [AC_INCLUDES_DEFAULT
1773 #if HAVE_SYS_SOCKET_H
1774 #include <sys/socket.h>
1775 #endif
1776 #if HAVE_NET_IF_H
1777 #include <net/if.h>
1778 #endif])
1780 dnl checks for compiler characteristics
1782 dnl Testing __STDC__ to determine prototype support isn't good enough.
1783 dnl DEC C, for instance, doesn't define it with default options, and
1784 dnl is used on 64-bit systems (OSF Alphas).  Similarly for volatile
1785 dnl and void *.
1786 AC_C_PROTOTYPES
1787 AC_C_VOLATILE
1788 AC_C_CONST
1789 dnl This isn't useful because we can't turn on use of `inline' unless
1790 dnl the compiler groks `extern inline'.
1791 dnl AC_C_INLINE
1792 AC_CACHE_CHECK([for void * support], emacs_cv_void_star,
1793   [AC_TRY_COMPILE(, [void * foo;],
1794                    emacs_cv_void_star=yes, emacs_cv_void_star=no)])
1795 if test $emacs_cv_void_star = yes; then
1796   AC_DEFINE(POINTER_TYPE, void)
1797 else
1798   AC_DEFINE(POINTER_TYPE, char)
1800 AH_TEMPLATE(POINTER_TYPE,
1801             [Define as `void' if your compiler accepts `void *'; otherwise
1802              define as `char'.])dnl
1806 dnl This could be used for targets which can have both byte sexes.
1807 dnl We could presumably replace the hardwired WORDS_BIG_ENDIAN generally.
1808 dnl AC_C_BIGENDIAN
1810 dnl check for Make feature
1811 AC_PROG_MAKE_SET
1813 dnl checks for operating system services
1814 AC_SYS_LONG_FILE_NAMES
1816 #### Choose a window system.
1818 AC_PATH_X
1819 if test "$no_x" = yes; then
1820   window_system=none
1821 else
1822   window_system=x11
1825 if test "${x_libraries}" != NONE; then
1826   if test -n "${x_libraries}"; then
1827     LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
1828     LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
1829   fi
1830   x_default_search_path=""
1831   x_search_path=${x_libraries}
1832   if test -z "${x_search_path}"; then
1833     x_search_path=/usr/lib
1834   fi
1835   for x_library in `echo ${x_search_path}: | \
1836                     sed -e "s/:/ /g" -e p -e "s:/lib[[^ /]]* :/share :g"`; do
1837     x_search_path="\
1838 ${x_library}/X11/%L/%T/%N%C%S:\
1839 ${x_library}/X11/%l/%T/%N%C%S:\
1840 ${x_library}/X11/%T/%N%C%S:\
1841 ${x_library}/X11/%L/%T/%N%S:\
1842 ${x_library}/X11/%l/%T/%N%S:\
1843 ${x_library}/X11/%T/%N%S"
1844     if test x"${x_default_search_path}" = x; then
1845       x_default_search_path=${x_search_path}
1846     else
1847       x_default_search_path="${x_search_path}:${x_default_search_path}"
1848     fi
1849   done
1851 if test "${x_includes}" != NONE && test -n "${x_includes}"; then
1852   C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"`
1855 if test x"${x_includes}" = x; then
1856   bitmapdir=/usr/include/X11/bitmaps
1857 else
1858   # accumulate include directories that have X11 bitmap subdirectories
1859   bmd_acc="dummyval"
1860   for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do
1861     if test -d "${bmd}/X11/bitmaps"; then
1862       bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps"
1863     fi
1864     if test -d "${bmd}/bitmaps"; then
1865       bmd_acc="${bmd_acc}:${bmd}/bitmaps"
1866     fi
1867   done
1868   if test ${bmd_acc} != "dummyval"; then
1869     bitmapdir=`echo ${bmd_acc} | sed -e "s/^dummyval://"`
1870   fi
1873 HAVE_CARBON=no
1874 if test "${with_carbon}" != no; then
1875   AC_CHECK_HEADER(Carbon/Carbon.h, HAVE_CARBON=yes)
1877 if test "${window_system}" = x11 && test "${HAVE_CARBON}" = yes; then
1878   if test "${with_carbon+set}" != set \
1879      && test "${carbon_appdir_x+set}" != set; then
1880     for var in with_x with_x_toolkit with_gtk with_xim \
1881                with_xpm with_jpeg with_tiff with_gif with_png; do
1882       if eval test \"\${$var+set}\" = set; then
1883         HAVE_CARBON=no
1884         break
1885       fi
1886     done
1887   fi
1889 if test "${HAVE_CARBON}" = yes; then
1890   window_system=mac
1893 case "${window_system}" in
1894   x11 )
1895     HAVE_X_WINDOWS=yes
1896     HAVE_X11=yes
1897     case "${with_x_toolkit}" in
1898       athena | lucid ) USE_X_TOOLKIT=LUCID ;;
1899       motif ) USE_X_TOOLKIT=MOTIF ;;
1900       gtk ) with_gtk=yes
1901 dnl Dont set this for GTK.  A lot of tests below assumes Xt when
1902 dnl USE_X_TOOLKIT is set.
1903             USE_X_TOOLKIT=none ;;
1904       no ) USE_X_TOOLKIT=none ;;
1905 dnl If user did not say whether to use a toolkit, make this decision later:
1906 dnl use the toolkit if we have gtk, or X11R5 or newer.
1907       * ) 
1908           if test x"$with_gtk" = xyes; then
1909              USE_X_TOOLKIT=none
1910           else
1911              USE_X_TOOLKIT=maybe
1912           fi
1913           ;;
1914     esac
1915   ;;
1916   mac | none )
1917     HAVE_X_WINDOWS=no
1918     HAVE_X11=no
1919     USE_X_TOOLKIT=none
1920   ;;
1921 esac
1923 if test "$window_system" = none && test "X$with_x" != "Xno"; then
1924    AC_CHECK_PROG(HAVE_XSERVER, X, true, false)
1925    if test "$HAVE_XSERVER" = true ||
1926       test -n "$DISPLAY" || 
1927       test "`echo /usr/lib/libX11.*`" != "/usr/lib/libX11.*"; then
1928         AC_MSG_ERROR([You seem to be running X, but no X development libraries
1929 were found.  You should install the relevant development files for X
1930 and for the toolkit you want, such as Gtk+, Lesstif or Motif.  Also make
1931 sure you have development files for image handling, i.e.
1932 tiff, gif, jpeg, png and xpm.
1933 If you are sure you want Emacs compiled without X window support, pass
1934   --without-x
1935 to configure.])
1936    fi
1939 ### If we're using X11, we should use the X menu package.
1940 HAVE_MENUS=no
1941 case ${HAVE_X11} in
1942   yes ) HAVE_MENUS=yes ;;
1943 esac
1945 if test "${opsys}" = "hpux9"; then
1946   case "${x_libraries}" in
1947     *X11R4* )
1948       opsysfile="s/hpux9-x11r4.h"
1949       ;;
1950   esac
1953 if test "${opsys}" = "hpux9shr"; then
1954   case "${x_libraries}" in
1955     *X11R4* )
1956       opsysfile="s/hpux9shxr4.h"
1957       ;;
1958   esac
1961 ### Compute the unexec source name from the object name.
1962 UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`"
1964 # Do the opsystem or machine files prohibit the use of the GNU malloc?
1965 # Assume not, until told otherwise.
1966 GNU_MALLOC=yes
1967 doug_lea_malloc=yes
1968 AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no)
1969 AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
1970 AC_CACHE_CHECK(whether __after_morecore_hook exists,
1971                emacs_cv_var___after_morecore_hook,
1972 [AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
1973   emacs_cv_var___after_morecore_hook=yes,
1974   emacs_cv_var___after_morecore_hook=no)])
1975 if test $emacs_cv_var___after_morecore_hook = no; then
1976   doug_lea_malloc=no
1978 if test "${system_malloc}" = "yes"; then
1979   GNU_MALLOC=no
1980   GNU_MALLOC_reason="
1981     (The GNU allocators don't work with this system configuration.)"
1983 if test "$doug_lea_malloc" = "yes" ; then
1984   if test "$GNU_MALLOC" = yes ; then
1985     GNU_MALLOC_reason="
1986       (Using Doug Lea's new malloc from the GNU C Library.)"
1987   fi
1988   AC_DEFINE(DOUG_LEA_MALLOC, 1,
1989             [Define to 1 if you are using the GNU C Library.])
1992 if test x"${REL_ALLOC}" = x; then
1993   REL_ALLOC=${GNU_MALLOC}
1996 dnl For now, need to use an explicit `#define USE_MMAP_FOR_BUFFERS 1'
1997 dnl the system configuration file (s/*.h) to turn the use of mmap
1998 dnl in the relocating allocator on.
2000 AC_FUNC_MMAP
2001 if test $use_mmap_for_buffers = yes; then
2002   REL_ALLOC=no
2005 LIBS="$libsrc_libs $LIBS"
2007 dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
2008 dnl and also adds -ldnet to LIBS, which Autoconf uses for checks.
2009 AC_CHECK_LIB(dnet, dnet_ntoa)
2010 dnl This causes -lresolv to get used in subsequent tests,
2011 dnl which causes failures on some systems such as HPUX 9.
2012 dnl AC_CHECK_LIB(resolv, gethostbyname)
2014 dnl FIXME replace main with a function we actually want from this library.
2015 AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
2017 AC_CHECK_LIB(pthreads, cma_open)
2019 AC_MSG_CHECKING(for XFree86 in /usr/X386)
2020 if test -d /usr/X386/include; then
2021   HAVE_XFREE386=yes
2022   : ${C_SWITCH_X_SITE="-I/usr/X386/include"}
2023 else
2024   HAVE_XFREE386=no
2026 AC_MSG_RESULT($HAVE_XFREE386)
2028 dnl Check for need for bigtoc support on IBM AIX
2030 case ${host_os} in
2031 aix*)
2032   AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
2033     case $GCC in
2034     yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
2035     *) gdb_cv_bigtoc=-bbigtoc ;;
2036     esac
2038     LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
2039     AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
2040   ])
2041   ;;
2042 esac
2044 # Change CFLAGS and CPPFLAGS temporarily so that C_SWITCH_X_SITE gets
2045 # used for the tests that follow.  We set them back to REAL_CFLAGS and
2046 # REAL_CPPFLAGS later on.
2048 REAL_CPPFLAGS="$CPPFLAGS"
2050 if test "${HAVE_X11}" = "yes"; then
2051   DEFS="$C_SWITCH_X_SITE $DEFS"
2052   LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE"
2053   LIBS="$LIBX $LIBS"
2054   CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
2055   CPPFLAGS="$C_SWITCH_X_SITE $CPPFLAGS"
2057   # On Solaris, arrange for LD_RUN_PATH to point to the X libraries for tests.
2058   # This is handled by LD_SWITCH_X_SITE_AUX during the real build,
2059   # but it's more convenient here to set LD_RUN_PATH
2060   # since this also works on hosts that don't understand LD_SWITCH_X_SITE_AUX.
2061   if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
2062     LD_RUN_PATH=$x_libraries${LD_RUN_PATH+:}$LD_RUN_PATH
2063     export LD_RUN_PATH
2064   fi
2066   if test "${opsys}" = "gnu-linux"; then
2067     AC_MSG_CHECKING(whether X on GNU/Linux needs -b to link)
2068     AC_TRY_LINK([],
2069      [XOpenDisplay ("foo");],
2070      [xlinux_first_failure=no],
2071      [xlinux_first_failure=yes])
2072     if test "${xlinux_first_failure}" = "yes"; then
2073       OLD_LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE"
2074       OLD_C_SWITCH_X_SITE="$C_SWITCH_X_SITE"
2075       OLD_CPPFLAGS="$CPPFLAGS"
2076       OLD_LIBS="$LIBS"
2077       LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout"
2078       C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout"
2079       CPPFLAGS="$CPPFLAGS -b i486-linuxaout"
2080       LIBS="$LIBS -b i486-linuxaout"
2081       AC_TRY_LINK([],
2082        [XOpenDisplay ("foo");],
2083        [xlinux_second_failure=no],
2084        [xlinux_second_failure=yes])
2085       if test "${xlinux_second_failure}" = "yes"; then
2086         # If we get the same failure with -b, there is no use adding -b.
2087         # So take it out.  This plays safe.
2088         LD_SWITCH_X_SITE="$OLD_LD_SWITCH_X_SITE"
2089         C_SWITCH_X_SITE="$OLD_C_SWITCH_X_SITE"
2090         CPPFLAGS="$OLD_CPPFLAGS"
2091         LIBS="$OLD_LIBS"
2092         AC_MSG_RESULT(no)
2093       else
2094         AC_MSG_RESULT(yes)
2095       fi
2096     else
2097       AC_MSG_RESULT(no)
2098     fi
2099   fi
2101   # Reportedly, some broken Solaris systems have XKBlib.h but are missing
2102   # header files included from there.
2103   AC_MSG_CHECKING(for Xkb)
2104   AC_TRY_LINK([#include <X11/Xlib.h>
2105 #include <X11/XKBlib.h>],
2106         [XkbDescPtr kb = XkbGetKeyboard (0, XkbAllComponentsMask, XkbUseCoreKbd);],
2107         emacs_xkb=yes, emacs_xkb=no)
2108   AC_MSG_RESULT($emacs_xkb)
2109   if test $emacs_xkb = yes; then
2110     AC_DEFINE(HAVE_XKBGETKEYBOARD, 1, [Define to 1 if you have the XkbGetKeyboard function.])
2111   fi
2113   AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
2114 XScreenNumberOfScreen XSetWMProtocols)
2117 if test "${window_system}" = "x11"; then
2118   AC_MSG_CHECKING(X11 version 6)
2119   AC_CACHE_VAL(emacs_cv_x11_version_6,
2120   [AC_TRY_LINK([#include <X11/Xlib.h>],
2121 [#if XlibSpecificationRelease < 6
2122 fail;
2123 #endif
2124 ], emacs_cv_x11_version_6=yes, emacs_cv_x11_version_6=no)])
2125   if test $emacs_cv_x11_version_6 = yes; then
2126     AC_MSG_RESULT(6 or newer)
2127     AC_DEFINE(HAVE_X11R6, 1,
2128               [Define to 1 if you have the X11R6 or newer version of Xlib.])
2129   else
2130     AC_MSG_RESULT(before 6)
2131   fi
2135 ### Use -lrsvg-2 if available, unless `--with-rsvg=no' is specified.
2136 HAVE_RSVG=no
2137 if test "${HAVE_X11}" = "yes" || test "${HAVE_CARBON}" = "yes"; then
2138   if test "${with_rsvg}" != "no"; then
2139     dnl Check if `--with-pkg-config-prog' has been given.
2140     if test "X${with_pkg_config_prog}" != X; then
2141       PKG_CONFIG="${with_pkg_config_prog}"
2142     fi
2144     RSVG_REQUIRED=2.0.0
2145     RSVG_MODULE="librsvg-2.0 >= $RSVG_REQUIRED"
2147     PKG_CHECK_MODULES(RSVG, $RSVG_MODULE, :, :)
2148     AC_SUBST(RSVG_CFLAGS)
2149     AC_SUBST(RSVG_LIBS)
2151     if test ".${RSVG_CFLAGS}" != "."; then
2152       HAVE_RSVG=yes
2153       AC_DEFINE(HAVE_RSVG, 1, [Define to 1 if using librsvg.])
2154       CFLAGS="$CFLAGS $RSVG_CFLAGS"
2155       LIBS="$RSVG_LIBS $LIBS"
2156     fi
2157   fi
2161 HAVE_GTK=no
2162 if test "${with_gtk}" = "yes" && test "$USE_X_TOOLKIT" = "gtk"; then
2163   USE_X_TOOLKIT=none
2165 if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk" || \
2166  test "$USE_X_TOOLKIT" = "maybe"; then
2167   if test "$USE_X_TOOLKIT" != "none" && test "$USE_X_TOOLKIT" != "maybe"; then
2168     AC_MSG_ERROR([Conflicting options, --with-gtk is incompatible with --with-x-toolkit=${with_x_toolkit}]);
2169   fi
2170   GLIB_REQUIRED=2.6
2171   GTK_REQUIRED=2.6
2172   GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
2174   dnl Check if --with-pkg-config-prog has been given.
2175   if test "X${with_pkg_config_prog}" != X; then
2176     PKG_CONFIG="${with_pkg_config_prog}"
2177   fi
2178   dnl Checks for libraries.
2179   PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
2180   if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
2181      AC_MSG_ERROR($GTK_PKG_ERRORS)
2182   fi
2186 if test x"$pkg_check_gtk" = xyes; then
2188   AC_SUBST(GTK_CFLAGS)
2189   AC_SUBST(GTK_LIBS)
2190   C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS"
2191   CFLAGS="$CFLAGS $GTK_CFLAGS"
2192   LIBS="$GTK_LIBS $LIBS"
2193   dnl Try to compile a simple GTK program.
2194   GTK_COMPILES=no
2195   AC_CHECK_FUNCS(gtk_main, GTK_COMPILES=yes)
2196   if test "${GTK_COMPILES}" != "yes"; then
2197     if test "$USE_X_TOOLKIT" != "maybe"; then
2198       AC_MSG_ERROR([Gtk+ wanted, but it does not compile, see config.log.  Maybe some x11-devel files missing?]);
2199     fi
2200   else
2201     HAVE_GTK=yes
2202     AC_DEFINE(HAVE_GTK, 1, [Define to 1 if using GTK.])
2203     USE_X_TOOLKIT=none
2204   fi
2209 if test "${HAVE_GTK}" = "yes"; then
2211   dnl  GTK scrollbars resemble toolkit scrollbars a lot, so to avoid
2212   dnl  a lot if #ifdef:s, say we have toolkit scrollbars.
2213   if test "$with_toolkit_scroll_bars" != no; then
2214     with_toolkit_scroll_bars=yes
2215   fi
2217   dnl  Check if we can use multiple displays with this GTK version.
2218   dnl  If gdk_display_open exists, assume all others are there also.
2219   HAVE_GTK_MULTIDISPLAY=no
2220   AC_CHECK_FUNCS(gdk_display_open, HAVE_GTK_MULTIDISPLAY=yes)
2221   if test "${HAVE_GTK_MULTIDISPLAY}" = "yes"; then
2222     AC_DEFINE(HAVE_GTK_MULTIDISPLAY, 1,
2223               [Define to 1 if GTK can handle more than one display.])
2224   fi
2226   dnl  Check if we have the old file selection dialog.
2227   dnl  If gdk_display_open exists, assume all others are there also.
2228   HAVE_GTK_FILE_SELECTION=no
2229   AC_CHECK_FUNCS(gtk_file_selection_new, HAVE_GTK_FILE_SELECTION=yes)
2231   dnl  Check if we have the new file chooser dialog
2232   dnl  If gdk_display_open exists, assume all others are there also.
2233   HAVE_GTK_FILE_CHOOSER=no
2234   AC_CHECK_FUNCS(gtk_file_chooser_dialog_new, HAVE_GTK_FILE_CHOOSER=yes)
2236   if test "$HAVE_GTK_FILE_SELECTION" = yes \
2237      && test "$HAVE_GTK_FILE_CHOOSER" = yes;  then
2238     AC_DEFINE(HAVE_GTK_FILE_BOTH, 1,
2239               [Define to 1 if GTK has both file selection and chooser dialog.])
2240   fi
2242   dnl Check if pthreads are available.  Emacs only needs this when using
2243   dnl gtk_file_chooser under Gnome.
2244   if test "$HAVE_GTK_FILE_CHOOSER" = yes; then
2245     HAVE_GTK_AND_PTHREAD=no
2246     AC_CHECK_HEADERS(pthread.h)
2247     if test "$ac_cv_header_pthread_h"; then
2248       AC_CHECK_LIB(pthread, pthread_self, HAVE_GTK_AND_PTHREAD=yes)
2249     fi
2250     if test "$HAVE_GTK_AND_PTHREAD" = yes; then
2251       case "${canonical}" in
2252         *-hpux*) ;;
2253         *) GTK_LIBS="$GTK_LIBS -lpthread" ;;
2254       esac
2255       AC_DEFINE(HAVE_GTK_AND_PTHREAD, 1,
2256                [Define to 1 if you have GTK and pthread (-lpthread).])
2257     fi
2258   fi
2261 ### Link with -lXft if available to work around a bug.
2262 HAVE_XFT=maybe
2263 if test "${HAVE_GTK}" = "yes"; then
2264   dnl Check if --with-pkg-config-prog has been given.
2265   if test "X${with_pkg_config_prog}" != X; then
2266     PKG_CONFIG="${with_pkg_config_prog}"
2267   fi
2269   PKG_CHECK_MODULES(XFT, xft >= 0.13.0, , HAVE_XFT=no)
2270   if test "$HAVE_XFT" != no; then
2271     OLD_CFLAGS="$CPPFLAGS"
2272     OLD_CPPFLAGS="$CFLAGS"
2273     OLD_LIBS="$LIBS"
2274     CPPFLAGS="$CPPFLAGS $XFT_CFLAGS"
2275     CFLAGS="$CFLAGS $XFT_CFLAGS"
2276     LIBS="$XFT_LIBS $LIBS"
2277     AC_CHECK_HEADER(X11/Xft/Xft.h,
2278       [AC_CHECK_LIB(Xft, XftFontOpen, HAVE_XFT=yes, , $XFT_LIBS)])
2280     if test "${HAVE_XFT}" = "yes"; then
2281       AC_DEFINE(HAVE_XFT, 1, [Define to 1 if you have the Xft library.])
2282       AC_SUBST(XFT_LIBS)
2283       C_SWITCH_X_SITE="$C_SWITCH_X_SITE $XFT_CFLAGS"
2284     else
2285       CFLAGS="$OLD_CPPFLAGS"
2286       CFLAGS="$OLD_CFLAGS"
2287       LIBS="$OLD_LIBS"
2288     fi
2289   fi
2292 dnl Do not put whitespace before the #include statements below.
2293 dnl Older compilers (eg sunos4 cc) choke on it.
2294 HAVE_XAW3D=no
2295 if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then
2296   if test "$with_xaw3d" != no; then
2297     AC_MSG_CHECKING(for xaw3d)
2298     AC_CACHE_VAL(emacs_cv_xaw3d,
2299     [AC_TRY_LINK([
2300 #include <X11/Intrinsic.h>
2301 #include <X11/Xaw3d/Simple.h>],
2302       [],
2303       emacs_cv_xaw3d=yes,
2304       emacs_cv_xaw3d=no)])
2305   else
2306     emacs_cv_xaw3d=no
2307   fi
2308   if test $emacs_cv_xaw3d = yes; then
2309     AC_MSG_RESULT([yes; using Lucid toolkit])
2310     USE_X_TOOLKIT=LUCID
2311     HAVE_XAW3D=yes
2312     AC_DEFINE(HAVE_XAW3D, 1,
2313               [Define to 1 if you have the Xaw3d library (-lXaw3d).])
2314   else
2315     AC_MSG_RESULT(no)
2316     AC_MSG_CHECKING(for libXaw)
2317     AC_CACHE_VAL(emacs_cv_xaw,
2318     [AC_TRY_LINK([
2319 #include <X11/Intrinsic.h>
2320 #include <X11/Xaw/Simple.h>],
2321       [],
2322       emacs_cv_xaw=yes,
2323       emacs_cv_xaw=no)])
2324     if test $emacs_cv_xaw = yes; then
2325       AC_MSG_RESULT([yes; using Lucid toolkit])
2326       USE_X_TOOLKIT=LUCID
2327     elif test x"${USE_X_TOOLKIT}" = xLUCID; then
2328       AC_MSG_ERROR([Lucid toolkit requires X11/Xaw include files])
2329     else
2330       AC_MSG_RESULT([no; do not use toolkit by default])
2331       USE_X_TOOLKIT=none
2332     fi
2333   fi
2336 X_TOOLKIT_TYPE=$USE_X_TOOLKIT
2338 if test "${USE_X_TOOLKIT}" != "none"; then
2339   AC_MSG_CHECKING(X11 toolkit version)
2340   AC_CACHE_VAL(emacs_cv_x11_toolkit_version_6,
2341   [AC_TRY_LINK([#include <X11/Intrinsic.h>],
2342 [#if XtSpecificationRelease < 6
2343 fail;
2344 #endif
2345 ], emacs_cv_x11_toolkit_version_6=yes, emacs_cv_x11_toolkit_version_6=no)])
2346   HAVE_X11XTR6=$emacs_cv_x11_toolkit_version_6
2347   if test $emacs_cv_x11_toolkit_version_6 = yes; then
2348     AC_MSG_RESULT(6 or newer)
2349     AC_DEFINE(HAVE_X11XTR6, 1,
2350               [Define to 1 if you have the X11R6 or newer version of Xt.])
2351   else
2352     AC_MSG_RESULT(before 6)
2353   fi
2355 dnl If using toolkit, check whether libXmu.a exists.
2356 dnl tranle@intellicorp.com says libXmu.a can need XtMalloc in libXt.a to link.
2357   OLDLIBS="$LIBS"
2358   if test x$HAVE_X11XTR6 = xyes; then
2359     LIBS="-lXt -lSM -lICE $LIBS"
2360   else
2361     LIBS="-lXt $LIBS"
2362   fi
2363   AC_CHECK_LIB(Xmu, XmuConvertStandardSelection)
2364   test $ac_cv_lib_Xmu_XmuConvertStandardSelection = no && LIBS="$OLDLIBS"
2367 # On Irix 6.5, at least, we need XShapeQueryExtension from -lXext for Xaw3D.
2368 if test "${HAVE_X11}" = "yes"; then
2369   if test "${USE_X_TOOLKIT}" != "none"; then
2370     AC_CHECK_LIB(Xext, XShapeQueryExtension)
2371   fi
2374 if test "${USE_X_TOOLKIT}" = "MOTIF"; then
2375   AC_CACHE_CHECK(for Motif version 2.1, emacs_cv_motif_version_2_1,
2376   [AC_TRY_COMPILE([#include <Xm/Xm.h>],
2377     [#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1)
2378 int x = 5;
2379 #else
2380 Motif version prior to 2.1.
2381 #endif],
2382     emacs_cv_motif_version_2_1=yes, emacs_cv_motif_version_2_1=no)])
2383   HAVE_MOTIF_2_1=$emacs_cv_motif_version_2_1
2384   if test $emacs_cv_motif_version_2_1 = yes; then
2385     HAVE_LIBXP=no
2386     AC_DEFINE(HAVE_MOTIF_2_1, 1,
2387               [Define to 1 if you have Motif 2.1 or newer.])
2388     AC_CHECK_LIB(Xp, XpCreateContext, HAVE_LIBXP=yes)
2389     if test ${HAVE_LIBXP} = yes; then
2390       AC_DEFINE(HAVE_LIBXP, 1,
2391                 [Define to 1 if you have the Xp library (-lXp).])
2392     fi
2393   else
2394     AC_CACHE_CHECK(for LessTif where some systems put it, emacs_cv_lesstif,
2395     # We put this in CFLAGS temporarily to precede other -I options
2396     # that might be in CFLAGS temporarily.
2397     # We put this in CPPFLAGS where it precedes the other -I options.
2398     OLD_CPPFLAGS=$CPPFLAGS
2399     OLD_CFLAGS=$CFLAGS
2400     CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS"
2401     CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS"
2402     [AC_TRY_COMPILE([#include </usr/X11R6/LessTif/Motif1.2/include/Xm/Xm.h>],
2403       [int x = 5;],
2404       emacs_cv_lesstif=yes, emacs_cv_lesstif=no)])
2405     if test $emacs_cv_lesstif = yes; then
2406       # Make sure this -I option remains in CPPFLAGS after it is set
2407       # back to REAL_CPPFLAGS.
2408       # There is no need to change REAL_CFLAGS, because REAL_CFLAGS does not
2409       # have those other -I options anyway.  Ultimately, having this
2410       # directory ultimately in CPPFLAGS will be enough.
2411       REAL_CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $REAL_CPPFLAGS"
2412       LDFLAGS="-L/usr/X11R6/LessTif/Motif1.2/lib $LDFLAGS"
2413     else
2414       CFLAGS=$OLD_CFLAGS
2415       CPPFLAGS=$OLD_CPPFLAGS
2416     fi
2417   fi
2420 dnl Use toolkit scroll bars if configured for GTK or X toolkit and either
2421 dnl using Motif or Xaw3d is available, and unless
2422 dnl --with-toolkit-scroll-bars=no was specified.
2424 AH_TEMPLATE(USE_TOOLKIT_SCROLL_BARS,
2425             [Define to 1 if we should use toolkit scroll bars.])dnl
2426 USE_TOOLKIT_SCROLL_BARS=no
2427 if test "${with_toolkit_scroll_bars}" != "no"; then
2428   if test "${USE_X_TOOLKIT}" != "none"; then
2429     if test "${USE_X_TOOLKIT}" = "MOTIF"; then
2430       AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
2431       HAVE_XAW3D=no
2432       USE_TOOLKIT_SCROLL_BARS=yes
2433     elif test "${HAVE_XAW3D}" = "yes"; then
2434       AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
2435       USE_TOOLKIT_SCROLL_BARS=yes
2436     fi
2437   elif test "${HAVE_GTK}" = "yes"; then
2438     AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
2439     USE_TOOLKIT_SCROLL_BARS=yes
2440   elif test "${HAVE_CARBON}" = "yes"; then
2441     AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
2442     USE_TOOLKIT_SCROLL_BARS=yes
2443   fi
2446 dnl See if XIM is available.
2447 AC_TRY_COMPILE([
2448           #include <X11/Xlib.h>
2449           #include <X11/Xresource.h>],
2450          [XIMProc  callback;],
2451          [HAVE_XIM=yes
2452          AC_DEFINE(HAVE_XIM, 1, [Define to 1 if XIM is available])],
2453          HAVE_XIM=no)
2455 dnl `--with-xim' now controls only the initial value of use_xim at run time.
2457 if test "${with_xim}" != "no"; then
2458   AC_DEFINE(USE_XIM, 1,
2459             [Define to 1 if we should use XIM, if it is available.])
2463 if test "${HAVE_XIM}" != "no"; then
2464   late_CFLAGS=$CFLAGS
2465   if test "$GCC" = yes; then
2466     CFLAGS="$CFLAGS --pedantic-errors"
2467   fi
2468   AC_TRY_COMPILE([
2469 #include <X11/Xlib.h>
2470 #include <X11/Xresource.h>],
2471 [Display *display;
2472 XrmDatabase db;
2473 char *res_name;
2474 char *res_class;
2475 XIMProc  callback;
2476 XPointer *client_data;
2477 #ifndef __GNUC__
2478 /* If we're not using GCC, it's probably not XFree86, and this is
2479    probably right, but we can't use something like --pedantic-errors.  */
2480 extern Bool XRegisterIMInstantiateCallback(Display*, XrmDatabase, char*,
2481                                            char*, XIMProc, XPointer*);
2482 #endif
2483 (void)XRegisterIMInstantiateCallback(display, db, res_name, res_class, callback,
2484    client_data);],
2485     [emacs_cv_arg6_star=yes])
2486   AH_TEMPLATE(XRegisterIMInstantiateCallback_arg6,
2487          [Define to the type of the 6th arg of XRegisterIMInstantiateCallback,
2488 either XPointer or XPointer*.])dnl
2489   if test "$emacs_cv_arg6_star" = yes; then
2490     AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer*])
2491   else
2492     AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer])
2493   fi
2494   CFLAGS=$late_CFLAGS
2497 ### Use -lXpm if available, unless `--with-xpm=no'.
2498 HAVE_XPM=no
2499 if test "${HAVE_X11}" = "yes"; then
2500   if test "${with_xpm}" != "no"; then
2501     AC_CHECK_HEADER(X11/xpm.h,
2502       [AC_CHECK_LIB(Xpm, XpmReadFileToPixmap, HAVE_XPM=yes, , -lX11)])
2503     if test "${HAVE_XPM}" = "yes"; then
2504       AC_MSG_CHECKING(for XpmReturnAllocPixels preprocessor define)
2505       AC_EGREP_CPP(no_return_alloc_pixels,
2506       [#include "X11/xpm.h"
2507 #ifndef XpmReturnAllocPixels
2508 no_return_alloc_pixels
2509 #endif
2510       ], HAVE_XPM=no, HAVE_XPM=yes)
2512       if test "${HAVE_XPM}" = "yes"; then
2513         AC_MSG_RESULT(yes)
2514       else
2515         AC_MSG_RESULT(no)
2516       fi
2517     fi
2518   fi
2520   if test "${HAVE_XPM}" = "yes"; then
2521     AC_DEFINE(HAVE_XPM, 1, [Define to 1 if you have the Xpm libary (-lXpm).])
2522   fi
2525 ### Use -ljpeg if available, unless `--with-jpeg=no'.
2526 HAVE_JPEG=no
2527 if test "${HAVE_X11}" = "yes"; then
2528   if test "${with_jpeg}" != "no"; then
2529     dnl Checking for jpeglib.h can lose because of a redefinition of
2530     dnl  HAVE_STDLIB_H.
2531     AC_CHECK_HEADER(jerror.h,
2532       [AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes)])
2533   fi
2535   AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl
2536   if test "${HAVE_JPEG}" = "yes"; then
2537     AC_DEFINE(HAVE_JPEG)
2538     AC_EGREP_CPP([version= *(6[2-9]|[7-9][0-9])],
2539         [#include <jpeglib.h>
2540          version=JPEG_LIB_VERSION
2542         [AC_DEFINE(HAVE_JPEG)],
2543         [AC_MSG_WARN([libjpeg found, but not version 6b or later])
2544         HAVE_JPEG=no])
2545   fi
2548 ### Use -lpng if available, unless `--with-png=no'.
2549 HAVE_PNG=no
2550 if test "${HAVE_X11}" = "yes"; then
2551   if test "${with_png}" != "no"; then
2552     # Debian unstable as of July 2003 has multiple libpngs, and puts png.h
2553     # in /usr/include/libpng.
2554     AC_CHECK_HEADERS(png.h libpng/png.h)
2555     if test "$ac_cv_header_png_h" = yes || test "$ac_cv_header_libpng_png_h" = yes ; then
2556       AC_CHECK_LIB(png, png_get_channels, HAVE_PNG=yes, , -lz -lm)
2557     fi
2558   fi
2560   if test "${HAVE_PNG}" = "yes"; then
2561     AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library (-lpng).])
2562   fi
2565 ### Use -ltiff if available, unless `--with-tiff=no'.
2566 HAVE_TIFF=no
2567 if test "${HAVE_X11}" = "yes"; then
2568   if test "${with_tiff}" != "no"; then
2569     AC_CHECK_HEADER(tiffio.h,
2570       [tifflibs="-lz -lm"
2571       # At least one tiff package requires the jpeg library.
2572       if test "${HAVE_JPEG}" = yes; then tifflibs="-ljpeg $tifflibs"; fi
2573       AC_CHECK_LIB(tiff, TIFFGetVersion, HAVE_TIFF=yes, , $tifflibs)])
2574   fi
2576   if test "${HAVE_TIFF}" = "yes"; then
2577     AC_DEFINE(HAVE_TIFF, 1, [Define to 1 if you have the tiff library (-ltiff).])
2578   fi
2581 ### Use -lgif or -lungif if available, unless `--with-gif=no'.
2582 HAVE_GIF=no
2583 if test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no"; then
2584   AC_CHECK_HEADER(gif_lib.h,
2585 # EGifPutExtensionLast only exists from version libungif-4.1.0b1.
2586 # Earlier versions can crash Emacs.
2587     [AC_CHECK_LIB(gif, EGifPutExtensionLast, HAVE_GIF=yes, try_libungif=yes)])
2589   if test "$HAVE_GIF" = yes; then
2590       ac_gif_lib_name="-lgif"
2591   fi
2593 # If gif_lib.h but no libgif, try libungif.
2594   if test x"$try_libungif" = xyes; then
2595     AC_CHECK_LIB(ungif, EGifPutExtensionLast, HAVE_GIF=yes)
2597     if test "$HAVE_GIF" = yes; then
2598       AC_DEFINE(LIBGIF, -lungif, [Compiler option to link with the gif library (if not -lgif).])
2599       ac_gif_lib_name="-lungif"
2600     fi
2601   fi
2603   if test "${HAVE_GIF}" = "yes"; then
2604     AC_DEFINE(HAVE_GIF, 1, [Define to 1 if you have a gif library (default -lgif; otherwise specify with LIBGIF).])
2605   fi
2608 dnl Check for required libraries.
2609 if test "${HAVE_X11}" = "yes"; then
2610   MISSING=""
2611   WITH_NO=""
2612   test "${with_xpm}" != "no" && test "${HAVE_XPM}" != "yes" &&
2613     MISSING="libXpm" && WITH_NO="--with-xpm=no"
2614   test "${with_jpeg}" != "no" && test "${HAVE_JPEG}" != "yes" &&
2615     MISSING="$MISSING libjpeg" && WITH_NO="$WITH_NO --with-jpeg=no"
2616   test "${with_png}" != "no" && test "${HAVE_PNG}" != "yes" &&
2617     MISSING="$MISSING libpng" && WITH_NO="$WITH_NO --with-png=no"
2618   test "${with_gif}" != "no" && test "${HAVE_GIF}" != "yes" &&
2619     MISSING="$MISSING libgif/libungif" && WITH_NO="$WITH_NO --with-gif=no"
2620   test "${with_tiff}" != "no" && test "${HAVE_TIFF}" != "yes" &&
2621     MISSING="$MISSING libtiff" && WITH_NO="$WITH_NO --with-tiff=no"
2623   if test "X${MISSING}" != X; then
2624     AC_MSG_ERROR([The following required libraries were not found:
2625     $MISSING
2626 Maybe some development libraries/packages are missing?
2627 If you don't want to link with them give
2628     $WITH_NO
2629 as options to configure])
2630   fi
2633 ### Use -lgpm if available, unless `--with-gpm=no'.
2634 HAVE_GPM=no
2635 if test "${with_gpm}" != "no"; then
2636   AC_CHECK_HEADER(gpm.h,
2637     [AC_CHECK_LIB(gpm, Gpm_Open, HAVE_GPM=yes)])
2640 if test "${HAVE_GPM}" = "yes"; then
2641   AC_DEFINE(HAVE_GPM, 1, [Define to 1 if you have the gpm library (-lgpm).])
2644 dnl Check for malloc/malloc.h on darwin
2645 AC_CHECK_HEADER(malloc/malloc.h, [AC_DEFINE(HAVE_MALLOC_MALLOC_H, 1, [Define to 1 if you have the <malloc/malloc.h> header file.])])
2647 ### Use Mac OS X Carbon API to implement GUI.
2648 if test "${HAVE_CARBON}" = "yes"; then
2649   AC_DEFINE(HAVE_CARBON, 1, [Define to 1 if you are using the Carbon API on Mac OS X.])
2650   ## Specify the install directory
2651   carbon_appdir=
2652   if test "${carbon_appdir_x}" != ""; then
2653     case ${carbon_appdir_x} in
2654       y | ye | yes)  carbon_appdir=/Applications ;;
2655       * ) carbon_appdir=${carbon_appdir_x} ;;
2656     esac
2657   fi
2658   # We also have mouse menus.
2659   HAVE_MENUS=yes
2662 ### Use session management (-lSM -lICE) if available
2663 HAVE_X_SM=no
2664 if test "${HAVE_X11}" = "yes"; then
2665   AC_CHECK_HEADER(X11/SM/SMlib.h,
2666     [AC_CHECK_LIB(SM, SmcOpenConnection, HAVE_X_SM=yes, , -lICE)])
2668   if test "${HAVE_X_SM}" = "yes"; then
2669     AC_DEFINE(HAVE_X_SM, 1, [Define to 1 if you have the SM library (-lSM).])
2670     case "$LIBS" in
2671       *-lSM*) ;;
2672       *)      LIBS="-lSM -lICE $LIBS" ;;
2673     esac
2674   fi
2677 # If netdb.h doesn't declare h_errno, we must declare it by hand.
2678 AC_CACHE_CHECK(whether netdb declares h_errno,
2679                emacs_cv_netdb_declares_h_errno,
2680 [AC_TRY_LINK([#include <netdb.h>],
2681   [return h_errno;],
2682   emacs_cv_netdb_declares_h_errno=yes, emacs_cv_netdb_declares_h_errno=no)])
2683 if test $emacs_cv_netdb_declares_h_errno = yes; then
2684   AC_DEFINE(HAVE_H_ERRNO, 1, [Define to 1 if netdb.h declares h_errno.])
2687 AC_FUNC_ALLOCA
2689 dnl src/alloca.c has been removed.  Could also check if $ALLOCA is set?
2690 dnl FIXME is there an autoconf test that does the right thing, without
2691 dnl needing to call A_M_E afterwards?
2692 if test x"$ac_cv_func_alloca_works" != xyes; then
2693    AC_MSG_ERROR( [a system implementation of alloca is required] )
2696 # fmod, logb, and frexp are found in -lm on most systems.
2697 # On HPUX 9.01, -lm does not contain logb, so check for sqrt.
2698 AC_CHECK_LIB(m, sqrt)
2700 # Check for mail-locking functions in a "mail" library.  Probably this should
2701 # have the same check as for liblockfile below.
2702 AC_CHECK_LIB(mail, maillock)
2703 dnl Debian, at least:
2704 AC_CHECK_LIB(lockfile, maillock)
2705 # If we have the shared liblockfile, assume we must use it for mail
2706 # locking (e.g. Debian).  If we couldn't link against liblockfile
2707 # (no liblockfile.a installed), ensure that we don't need to.
2708 if test "$ac_cv_lib_lockfile_maillock" = no; then
2709   dnl This works for files generally, not just executables.
2710   dnl Should we look elsewhere for it?  Maybe examine /etc/ld.so.conf?
2711   AC_CHECK_PROG(liblockfile, liblockfile.so, yes, no,
2712                 /usr/lib:/lib:/usr/local/lib:$LD_LIBRARY_PATH)
2713   if test $ac_cv_prog_liblockfile = yes; then
2714     AC_MSG_ERROR([Shared liblockfile found but can't link against it.
2715 This probably means that movemail could lose mail.
2716 There may be a `development' package to install containing liblockfile.])
2717   else :
2718   fi
2720 AC_CHECK_FUNCS(touchlock)
2721 AC_CHECK_HEADERS(maillock.h)
2723 AC_CHECK_FUNCS(gethostname getdomainname dup2 \
2724 rename closedir mkdir rmdir sysinfo getrusage get_current_dir_name \
2725 random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime setsid \
2726 strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \
2727 utimes setrlimit setpgid getcwd getwd shutdown getaddrinfo \
2728 __fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \
2729 sendto recvfrom getsockopt setsockopt getsockname getpeername \
2730 gai_strerror mkstemp getline getdelim mremap memmove fsync sync bzero \
2731 memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign)
2733 AC_CHECK_HEADERS(sys/un.h)
2735 AC_FUNC_MKTIME
2736 if test "$ac_cv_func_working_mktime" = no; then
2737   AC_DEFINE(BROKEN_MKTIME, 1, [Define to 1 if the mktime function is broken.])
2740 AC_FUNC_GETLOADAVG
2742 AC_FUNC_FSEEKO
2744 # Configure getopt.
2745 m4_include([m4/getopt.m4])
2746 gl_GETOPT_IFELSE([
2747   gl_GETOPT_SUBSTITUTE_HEADER
2748   gl_PREREQ_GETOPT
2749   GETOPTOBJS='getopt.o getopt1.o'
2751 AC_SUBST(GETOPTOBJS)
2753 AC_FUNC_GETPGRP
2755 AC_FUNC_STRFTIME
2757 # UNIX98 PTYs.
2758 AC_CHECK_FUNCS(grantpt)
2760 # PTY-related GNU extensions.
2761 AC_CHECK_FUNCS(getpt)
2763 # Check this now, so that we will NOT find the above functions in ncurses.
2764 # That is because we have not set up to link ncurses in lib-src.
2765 # It's better to believe a function is not available
2766 # than to expect to find it in ncurses.
2767 AC_CHECK_LIB(ncurses, tparm)
2769 # Do we have res_init, for detecting changes in /etc/resolv.conf?
2771 resolv=no
2772 AC_TRY_LINK([#include <netinet/in.h>
2773 #include <arpa/nameser.h>
2774 #include <resolv.h>],
2775     [return res_init();],
2776     have_res_init=yes, have_res_init=no)
2777 if test "$have_res_init" = no; then
2778   OLIBS="$LIBS"
2779   LIBS="$LIBS -lresolv"
2780   AC_MSG_CHECKING(for res_init with -lresolv)
2781   AC_TRY_LINK([#include <netinet/in.h>
2782 #include <arpa/nameser.h>
2783 #include <resolv.h>],
2784     [return res_init();],
2785     have_res_init=yes, have_res_init=no)
2786   AC_MSG_RESULT($have_res_init)
2787   if test "$have_res_init" = yes ; then
2788     resolv=yes
2789   fi
2790   LIBS="$OLIBS"
2793 if test "$have_res_init" = yes; then
2794   AC_DEFINE(HAVE_RES_INIT, 1, [Define to 1 if res_init is available.])
2797 # Do we need the Hesiod library to provide the support routines?
2798 if test "$with_hesiod" = yes ; then
2799   # Don't set $LIBS here -- see comments above.
2800   AC_CHECK_FUNC(res_send, , [AC_CHECK_FUNC(__res_send, ,
2801      [AC_CHECK_LIB(resolv, res_send, resolv=yes,
2802                   [AC_CHECK_LIB(resolv, __res_send, resolv=yes)])])])
2803   if test "$resolv" = yes ; then
2804     RESOLVLIB=-lresolv
2805   else
2806     RESOLVLIB=
2807   fi
2808   AC_CHECK_FUNC(hes_getmailhost, , [AC_CHECK_LIB(hesiod, hes_getmailhost,
2809         [AC_DEFINE(HAVE_LIBHESIOD, 1,
2810                   [Define to 1 if you have the hesiod library (-lhesiod).])],
2811         :, $RESOLVLIB)])
2814 # Do we need libresolv (due to res_init or Hesiod)?
2815 if test "$resolv" = yes ; then
2816   AC_DEFINE(HAVE_LIBRESOLV, 1,
2817             [Define to 1 if you have the resolv library (-lresolv).])
2820 # These tell us which Kerberos-related libraries to use.
2821 if test "${with_kerberos+set}" = set; then
2822   AC_CHECK_LIB(com_err, com_err)
2823   AC_CHECK_LIB(k5crypto, mit_des_cbc_encrypt)
2824   AC_CHECK_LIB(crypto, mit_des_cbc_encrypt)
2825   AC_CHECK_LIB(krb5, krb5_init_context)
2826   if test "${with_kerberos5+set}" != set; then
2827     AC_CHECK_LIB(des425, des_cbc_encrypt,,
2828                  [AC_CHECK_LIB(des, des_cbc_encrypt)])
2829     AC_CHECK_LIB(krb4, krb_get_cred,,
2830                  [AC_CHECK_LIB(krb, krb_get_cred)])
2831   fi
2833   if test "${with_kerberos5+set}" = set; then
2834     AC_CHECK_HEADERS(krb5.h)
2835   else
2836     AC_CHECK_HEADERS(des.h,,
2837                      [AC_CHECK_HEADERS(kerberosIV/des.h,,
2838                                        [AC_CHECK_HEADERS(kerberos/des.h)])])
2839     AC_CHECK_HEADERS(krb.h,,
2840                      [AC_CHECK_HEADERS(kerberosIV/krb.h,,
2841                                        [AC_CHECK_HEADERS(kerberos/krb.h)])])
2842   fi
2843   AC_CHECK_HEADERS(com_err.h)
2846 # Solaris requires -lintl if you want strerror (which calls dgettext)
2847 # to return localized messages.
2848 AC_CHECK_LIB(intl, dgettext)
2850 AC_MSG_CHECKING(whether localtime caches TZ)
2851 AC_CACHE_VAL(emacs_cv_localtime_cache,
2852 [if test x$ac_cv_func_tzset = xyes; then
2853 AC_TRY_RUN([#include <time.h>
2854 extern char **environ;
2855 unset_TZ ()
2857   char **from, **to;
2858   for (to = from = environ; (*to = *from); from++)
2859     if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
2860       to++;
2862 char TZ_GMT0[] = "TZ=GMT0";
2863 char TZ_PST8[] = "TZ=PST8";
2864 main()
2866   time_t now = time ((time_t *) 0);
2867   int hour_GMT0, hour_unset;
2868   if (putenv (TZ_GMT0) != 0)
2869     exit (1);
2870   hour_GMT0 = localtime (&now)->tm_hour;
2871   unset_TZ ();
2872   hour_unset = localtime (&now)->tm_hour;
2873   if (putenv (TZ_PST8) != 0)
2874     exit (1);
2875   if (localtime (&now)->tm_hour == hour_GMT0)
2876     exit (1);
2877   unset_TZ ();
2878   if (localtime (&now)->tm_hour != hour_unset)
2879     exit (1);
2880   exit (0);
2881 }], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
2882 [# If we have tzset, assume the worst when cross-compiling.
2883 emacs_cv_localtime_cache=yes])
2884 else
2885         # If we lack tzset, report that localtime does not cache TZ,
2886         # since we can't invalidate the cache if we don't have tzset.
2887         emacs_cv_localtime_cache=no
2888 fi])dnl
2889 AC_MSG_RESULT($emacs_cv_localtime_cache)
2890 if test $emacs_cv_localtime_cache = yes; then
2891   AC_DEFINE(LOCALTIME_CACHE, 1,
2892             [Define to 1 if localtime caches TZ.])
2895 if test "x$HAVE_TIMEVAL" = xyes; then
2896   AC_CHECK_FUNCS(gettimeofday)
2897   if test $ac_cv_func_gettimeofday = yes; then
2898     AC_CACHE_CHECK(whether gettimeofday can accept two arguments,
2899                    emacs_cv_gettimeofday_two_arguments,
2900     [AC_TRY_COMPILE([
2901 #ifdef TIME_WITH_SYS_TIME
2902 #include <sys/time.h>
2903 #include <time.h>
2904 #else
2905 #ifdef HAVE_SYS_TIME_H
2906 #include <sys/time.h>
2907 #else
2908 #include <time.h>
2909 #endif
2910 #endif],
2911       [struct timeval time;
2912        gettimeofday (&time, 0);],
2913       emacs_cv_gettimeofday_two_arguments=yes,
2914       emacs_cv_gettimeofday_two_arguments=no)])
2915     if test $emacs_cv_gettimeofday_two_arguments = no; then
2916       AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT, 1,
2917                 [Define to 1 if gettimeofday accepts only one argument.])
2918     fi
2919   fi
2922 ok_so_far=yes
2923 AC_CHECK_FUNC(socket, , ok_so_far=no)
2924 if test $ok_so_far = yes; then
2925   AC_CHECK_HEADER(netinet/in.h, , ok_so_far=no)
2927 if test $ok_so_far = yes; then
2928   AC_CHECK_HEADER(arpa/inet.h, , ok_so_far=no)
2930 if test $ok_so_far = yes; then
2931 dnl Fixme: Not used.  Should this be HAVE_SOCKETS?
2932   AC_DEFINE(HAVE_INET_SOCKETS, 1,
2933             [Define to 1 if you have inet sockets.])
2936 AC_CHECK_HEADERS(sys/ioctl.h)
2938 if test -f /usr/lpp/X11/bin/smt.exp; then
2939   AC_DEFINE(HAVE_AIX_SMT_EXP, 1,
2940             [Define to 1 if the file /usr/lpp/X11/bin/smt.exp exists.])
2943 AC_MSG_CHECKING(whether system supports dynamic ptys)
2944 if test -d /dev/pts && ls -d /dev/ptmx > /dev/null 2>&1 ; then
2945   AC_MSG_RESULT(yes)
2946   AC_DEFINE(HAVE_DEV_PTMX, 1, [Define to 1 if dynamic ptys are supported.])
2947 else
2948   AC_MSG_RESULT(no)
2951 AC_FUNC_FORK
2953 dnl Adapted from Haible's version.
2954 AC_CACHE_CHECK([for nl_langinfo and CODESET], emacs_cv_langinfo_codeset,
2955   [AC_TRY_LINK([#include <langinfo.h>],
2956     [char* cs = nl_langinfo(CODESET);],
2957     emacs_cv_langinfo_codeset=yes,
2958     emacs_cv_langinfo_codeset=no)
2959   ])
2960 if test $emacs_cv_langinfo_codeset = yes; then
2961   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
2962     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
2965 AC_CHECK_TYPES(size_t)
2967 AC_TYPE_MBSTATE_T
2969 dnl Restrict could probably be used effectively other than in regex.c.
2970 AC_CACHE_CHECK([for C restrict keyword], emacs_cv_c_restrict,
2971   [AC_TRY_COMPILE([void fred (int *restrict x);], [],
2972                   emacs_cv_c_restrict=yes,
2973                   [AC_TRY_COMPILE([void fred (int *__restrict x);], [],
2974                                   emacs_cv_c_restrict=__restrict,
2975                                   emacs_cv_c_restrict=no)])])
2976 case "$emacs_cv_c_restrict" in
2977   yes) emacs_restrict=restrict;;
2978   no) emacs_restrict="";;
2979   *) emacs_restrict="$emacs_cv_c_restrict";;
2980 esac
2981 if test "$emacs_restrict" != __restrict; then
2982   AC_DEFINE_UNQUOTED(__restrict, $emacs_restrict,
2983     [Define to compiler's equivalent of C99 restrict keyword.
2984      Don't define if equivalent is `__restrict'.])
2987 AC_CACHE_CHECK([for C restricted array declarations], emacs_cv_c_restrict_arr,
2988   [AC_TRY_COMPILE([void fred (int x[__restrict]);], [],
2989                   emacs_cv_c_restrict_arr=yes, emacs_cv_c_restrict_arr=no)])
2990 if test "$emacs_cv_c_restrict_arr" = yes; then
2991   AC_DEFINE(__restrict_arr, __restrict,
2992     [Define to compiler's equivalent of C99 restrict keyword in array
2993      declarations.  Define as empty for no equivalent.])
2996 dnl Fixme: AC_SYS_POSIX_TERMIOS should probably be used, but it's not clear
2997 dnl how the tty code is related to POSIX and/or other versions of termios.
2998 dnl The following looks like a useful start.
3000 dnl AC_SYS_POSIX_TERMIOS
3001 dnl if test $ac_cv_sys_posix_termios = yes; then
3002 dnl    AC_DEFINE(HAVE_TERMIOS, 1, [Define to 1 if you have POSIX-style functions
3003 dnl                                and macros for terminal control.])
3004 dnl    AC_DEFINE(HAVE_TCATTR, 1, [Define to 1 if you have tcgetattr and tcsetattr.])
3005 dnl fi
3007 dnl Fixme: Use AC_FUNC_MEMCMP since memcmp is used.  (Needs libobj replacement.)
3009 # Set up the CFLAGS for real compilation, so we can substitute it.
3010 CFLAGS="$REAL_CFLAGS"
3011 CPPFLAGS="$REAL_CPPFLAGS"
3013 #### Find out which version of Emacs this is.
3014 [version=`grep 'defconst[        ]*emacs-version' ${srcdir}/lisp/version.el \
3015          | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`]
3016 if test x"${version}" = x; then
3017   AC_MSG_ERROR([can't find current emacs version in `${srcdir}/lisp/version.el'.])
3020 ### Specify what sort of things we'll be editing into Makefile and config.h.
3021 ### Use configuration here uncanonicalized to avoid exceeding size limits.
3022 AC_SUBST(version)
3023 AC_SUBST(configuration)
3024 AC_SUBST(canonical)
3025 AC_SUBST(srcdir)
3026 AC_SUBST(prefix)
3027 AC_SUBST(exec_prefix)
3028 AC_SUBST(bindir)
3029 AC_SUBST(datadir)
3030 AC_SUBST(sharedstatedir)
3031 AC_SUBST(libexecdir)
3032 AC_SUBST(mandir)
3033 AC_SUBST(infodir)
3034 AC_SUBST(lispdir)
3035 AC_SUBST(locallisppath)
3036 AC_SUBST(lisppath)
3037 AC_SUBST(x_default_search_path)
3038 AC_SUBST(etcdir)
3039 AC_SUBST(archlibdir)
3040 AC_SUBST(docdir)
3041 AC_SUBST(bitmapdir)
3042 AC_SUBST(gamedir)
3043 AC_SUBST(gameuser)
3044 AC_SUBST(c_switch_system)
3045 AC_SUBST(c_switch_machine)
3046 AC_SUBST(LD_SWITCH_X_SITE)
3047 AC_SUBST(LD_SWITCH_X_SITE_AUX)
3048 AC_SUBST(C_SWITCH_X_SITE)
3049 AC_SUBST(CFLAGS)
3050 AC_SUBST(X_TOOLKIT_TYPE)
3051 AC_SUBST(machfile)
3052 AC_SUBST(opsysfile)
3053 AC_SUBST(GETLOADAVG_LIBS)
3054 AC_SUBST(carbon_appdir)
3056 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION,  "${canonical}",
3057                    [Define to the canonical Emacs configuration name.])
3058 AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}",
3059                    [Define to the options passed to configure.])
3060 AC_DEFINE_UNQUOTED(config_machfile,  "${machfile}",
3061                    [Define to the used machine dependent file.])
3062 AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}",
3063                    [Define to the used os dependent file.])
3064 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE},
3065 [Define LD_SWITCH_X_SITE to contain any special flags your loader
3066  may need to deal with X Windows.  For instance, if you've defined
3067  HAVE_X_WINDOWS above and your X libraries aren't in a place that
3068  your loader can find on its own, you might want to add "-L/..." or
3069  something similar.])
3070 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX},
3071                    [Define LD_SWITCH_X_SITE_AUX with an -R option
3072                     in case it's needed (for Solaris, for example).])
3073 AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE,  ${C_SWITCH_X_SITE},
3074 [Define C_SWITCH_X_SITE to contain any special flags your compiler
3075  may need to deal with X Windows.  For instance, if you've defined
3076  HAVE_X_WINDOWS above and your X include files aren't in a place
3077  that your compiler can find on its own, you might want to add
3078  "-I/..." or something similar.])
3079 AC_DEFINE_UNQUOTED(UNEXEC_SRC,       ${UNEXEC_SRC},
3080                    [Define to the unexec source file name.])
3082 if test "${HAVE_X_WINDOWS}" = "yes" ; then
3083   AC_DEFINE(HAVE_X_WINDOWS, 1,
3084             [Define to 1 if you want to use the X window system.])
3086 if test "${USE_X_TOOLKIT}" != "none" ; then
3087   AC_DEFINE(USE_X_TOOLKIT, 1, [Define to 1 if using an X toolkit.])
3089 if test "${HAVE_X11}" = "yes" ; then
3090   AC_DEFINE(HAVE_X11, 1,
3091             [Define to 1 if you want to use version 11 of X windows.
3092              Otherwise, Emacs expects to use version 10.])
3094 if test "${HAVE_XFREE386}" = "yes" ; then
3095   AC_DEFINE(HAVE_XFREE386, 1, [Define to 1 if you're using XFree386.])
3097 if test "${HAVE_MENUS}" = "yes" ; then
3098   AC_DEFINE(HAVE_MENUS, 1,
3099             [Define to 1 if you have mouse menus.
3100              (This is automatic if you use X, but the option to specify it remains.)
3101              It is also defined with other window systems that support xmenu.c.])
3103 if test "${GNU_MALLOC}" = "yes" ; then
3104   AC_DEFINE(GNU_MALLOC, 1,
3105             [Define to 1 if you want to use the GNU memory allocator.])
3107 if test "${REL_ALLOC}" = "yes" ; then
3108   AC_DEFINE(REL_ALLOC, 1,
3109             [Define REL_ALLOC if you want to use the relocating allocator for
3110              buffer space.])
3114 AH_TOP([/* GNU Emacs site configuration template file.
3115    Copyright (C) 1988, 1993, 1994, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007
3116              Free Software Foundation, Inc.
3118 This file is part of GNU Emacs.
3120 GNU Emacs is free software; you can redistribute it and/or modify
3121 it under the terms of the GNU General Public License as published by
3122 the Free Software Foundation; either version 3, or (at your option)
3123 any later version.
3125 GNU Emacs is distributed in the hope that it will be useful,
3126 but WITHOUT ANY WARRANTY; without even the implied warranty of
3127 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
3128 GNU General Public License for more details.
3130 You should have received a copy of the GNU General Public License
3131 along with GNU Emacs; see the file COPYING.  If not, write to the
3132 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
3133 Boston, MA 02110-1301, USA.  */
3136 /* No code in Emacs #includes config.h twice, but some bits of code
3137    intended to work with other packages as well (like gmalloc.c)
3138    think they can include it as many times as they like.  */
3139 #ifndef EMACS_CONFIG_H
3140 #define EMACS_CONFIG_H
3141 ])dnl
3143 AH_BOTTOM([
3144 /* If we're using any sort of window system, define some consequences.  */
3145 #ifdef HAVE_X_WINDOWS
3146 #define HAVE_WINDOW_SYSTEM
3147 #define MULTI_KBOARD
3148 #define HAVE_MOUSE
3149 #endif
3151 /* Multi-tty support relies on MULTI_KBOARD.  It seems safe to turn it
3152    on unconditionally.  Note that src/s/darwin.h disables this at
3153    present.  */
3154 #ifndef MULTI_KBOARD
3155 #define MULTI_KBOARD
3156 #endif
3158 /* If we're using the Carbon API on Mac OS X, define a few more
3159    variables as well.  */
3160 #ifdef HAVE_CARBON
3161 #define HAVE_WINDOW_SYSTEM
3162 #define HAVE_MOUSE
3163 #endif
3165 /* Define USER_FULL_NAME to return a string
3166    that is the user's full name.
3167    It can assume that the variable `pw'
3168    points to the password file entry for this user.
3170    At some sites, the pw_gecos field contains
3171    the user's full name.  If neither this nor any other
3172    field contains the right thing, use pw_name,
3173    giving the user's login name, since that is better than nothing.  */
3174 #define USER_FULL_NAME pw->pw_gecos
3176 /* Define AMPERSAND_FULL_NAME if you use the convention
3177    that & in the full name stands for the login id.  */
3178 /* Turned on June 1996 supposing nobody will mind it.  */
3179 #define AMPERSAND_FULL_NAME
3181 /* We have blockinput.h.  */
3182 #define DO_BLOCK_INPUT
3184 /* Define HAVE_SOUND if we have sound support.  We know it works
3185    and compiles only on the specified platforms.   For others,
3186    it probably doesn't make sense to try.  */
3188 #if defined __FreeBSD__ || defined __NetBSD__ || defined __linux__
3189 #ifdef HAVE_MACHINE_SOUNDCARD_H
3190 #define HAVE_SOUND 1
3191 #endif
3192 #ifdef HAVE_SYS_SOUNDCARD_H
3193 #define HAVE_SOUND 1
3194 #endif
3195 #ifdef HAVE_SOUNDCARD_H
3196 #define HAVE_SOUND 1
3197 #endif
3198 #ifdef HAVE_ALSA
3199 #define HAVE_SOUND 1
3200 #endif
3201 #endif /* __FreeBSD__ || __NetBSD__ || __linux__  */
3203 /* If using GNU, then support inline function declarations. */
3204 /* Don't try to switch on inline handling as detected by AC_C_INLINE
3205    generally, because even if non-gcc compilers accept `inline', they
3206    may reject `extern inline'.  */
3207 #if defined (__GNUC__) && defined (OPTIMIZE)
3208 #define INLINE __inline__
3209 #else
3210 #define INLINE
3211 #endif
3213 /* Include the os and machine dependent files.  */
3214 #include config_opsysfile
3215 #include config_machfile
3217 /* Load in the conversion definitions if this system
3218    needs them and the source file being compiled has not
3219    said to inhibit this.  There should be no need for you
3220    to alter these lines.  */
3222 #ifdef SHORTNAMES
3223 #ifndef NO_SHORTNAMES
3224 #include "../shortnames/remap.h"
3225 #endif /* not NO_SHORTNAMES */
3226 #endif /* SHORTNAMES */
3228 /* If no remapping takes place, static variables cannot be dumped as
3229    pure, so don't worry about the `static' keyword. */
3230 #ifdef NO_REMAP
3231 #undef static
3232 #endif
3234 /* Define `subprocesses' should be defined if you want to
3235    have code for asynchronous subprocesses
3236    (as used in M-x compile and M-x shell).
3237    These do not work for some USG systems yet;
3238    for the ones where they work, the s/SYSTEM.h file defines this flag.  */
3240 #ifndef VMS
3241 #ifndef USG
3242 /* #define subprocesses */
3243 #endif
3244 #endif
3246 /* SIGTYPE is the macro we actually use.  */
3247 #ifndef SIGTYPE
3248 #define SIGTYPE RETSIGTYPE
3249 #endif
3251 #ifdef emacs /* Don't do this for lib-src.  */
3252 /* Tell regex.c to use a type compatible with Emacs.  */
3253 #define RE_TRANSLATE_TYPE Lisp_Object
3254 #define RE_TRANSLATE(TBL, C) CHAR_TABLE_TRANSLATE (TBL, C)
3255 #ifdef make_number
3256 /* If make_number is a macro, use it.  */
3257 #define RE_TRANSLATE_P(TBL) (!EQ (TBL, make_number (0)))
3258 #else
3259 /* If make_number is a function, avoid it.  */
3260 #define RE_TRANSLATE_P(TBL) (!(INTEGERP (TBL) && XINT (TBL) == 0))
3261 #endif
3262 #endif
3264 /* Avoid link-time collision with system mktime if we will use our own.  */
3265 #if ! HAVE_MKTIME || BROKEN_MKTIME
3266 #define mktime emacs_mktime
3267 #endif
3269 #define my_strftime nstrftime   /* for strftime.c */
3271 /* The rest of the code currently tests the CPP symbol BSTRING.
3272    Override any claims made by the system-description files.
3273    Note that on some SCO version it is possible to have bcopy and not bcmp.  */
3274 #undef BSTRING
3275 #if defined (HAVE_BCOPY) && defined (HAVE_BCMP)
3276 #define BSTRING
3277 #endif
3279 /* Some of the files of Emacs which are intended for use with other
3280    programs assume that if you have a config.h file, you must declare
3281    the type of getenv.
3283    This declaration shouldn't appear when alloca.s or Makefile.in
3284    includes config.h.  */
3285 #ifndef NOT_C_CODE
3286 extern char *getenv ();
3287 #endif
3289 /* These default definitions are good for almost all machines.
3290    The exceptions override them in m/MACHINE.h.  */
3292 #ifndef BITS_PER_CHAR
3293 #define BITS_PER_CHAR 8
3294 #endif
3296 #ifndef BITS_PER_SHORT
3297 #define BITS_PER_SHORT 16
3298 #endif
3300 /* Note that lisp.h uses this in a preprocessor conditional, so it
3301    would not work to use sizeof.  That being so, we do all of them
3302    without sizeof, for uniformity's sake.  */
3303 #ifndef BITS_PER_INT
3304 #define BITS_PER_INT 32
3305 #endif
3307 #ifndef BITS_PER_LONG
3308 #ifdef _LP64
3309 #define BITS_PER_LONG 64
3310 #else
3311 #define BITS_PER_LONG 32
3312 #endif
3313 #endif
3315 /* Define if the compiler supports function prototypes.  It may do so
3316    but not define __STDC__ (e.g. DEC C by default) or may define it as
3317    zero.  */
3318 #undef PROTOTYPES
3319 /* For mktime.c:  */
3320 #ifndef __P
3321 # if defined PROTOTYPES
3322 #  define __P(args) args
3323 # else
3324 #  define __P(args) ()
3325 # endif  /* GCC.  */
3326 #endif /* __P */
3328 /* Don't include "string.h" or <stdlib.h> in non-C code.  */
3329 #ifndef NOT_C_CODE
3330 #ifdef HAVE_STRING_H
3331 #include "string.h"
3332 #endif
3333 #ifdef HAVE_STRINGS_H
3334 #include "strings.h"  /* May be needed for bcopy & al. */
3335 #endif
3336 #ifdef HAVE_STDLIB_H
3337 #include <stdlib.h>
3338 #endif
3339 #ifndef __GNUC__
3340 # ifdef HAVE_ALLOCA_H
3341 #  include <alloca.h>
3342 # else /* AIX files deal with #pragma.  */
3343 #  ifndef alloca /* predefined by HP cc +Olibcalls */
3344 char *alloca ();
3345 #  endif
3346 # endif /* HAVE_ALLOCA_H */
3347 #endif /* __GNUC__ */
3348 #ifndef HAVE_SIZE_T
3349 typedef unsigned size_t;
3350 #endif
3351 #endif /* NOT_C_CODE */
3353 /* Define HAVE_X_I18N if we have usable i18n support.  */
3355 #ifdef HAVE_X11R6
3356 #define HAVE_X_I18N
3357 #elif !defined X11R5_INHIBIT_I18N
3358 #define HAVE_X_I18N
3359 #endif
3361 /* Define HAVE_X11R6_XIM if we have usable X11R6-style XIM support.  */
3363 #if defined HAVE_X11R6 && !defined INHIBIT_X11R6_XIM
3364 #define HAVE_X11R6_XIM
3365 #endif
3367 /* Should we enable expensive run-time checking of data types?  */
3368 #undef ENABLE_CHECKING
3370 #if defined __GNUC__ && (__GNUC__ > 2 \
3371                          || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5))
3372 #define NO_RETURN       __attribute__ ((__noreturn__))
3373 #else
3374 #define NO_RETURN       /* nothing */
3375 #endif
3377 /* These won't be used automatically yet.  We also need to know, at least,
3378    that the stack is continuous.  */
3379 #ifdef __GNUC__
3380 #  ifndef GC_SETJMP_WORKS
3381   /* GC_SETJMP_WORKS is nearly always appropriate for GCC --
3382      see NON_SAVING_SETJMP in the target descriptions.  */
3383   /* Exceptions (see NON_SAVING_SETJMP in target description) are ns32k,
3384      SCO5 non-ELF (but Emacs specifies ELF) and SVR3 on x86.
3385      Fixme: Deal with ns32k, SVR3.  */
3386 #    define GC_SETJMP_WORKS 1
3387 #  endif
3388 #  ifndef GC_LISP_OBJECT_ALIGNMENT
3389 #    define GC_LISP_OBJECT_ALIGNMENT (__alignof__ (Lisp_Object))
3390 #  endif
3391 #endif
3393 #ifndef HAVE_BCOPY
3394 #define bcopy(a,b,s) memcpy (b,a,s)
3395 #endif
3396 #ifndef HAVE_BZERO
3397 #define bzero(a,s) memset (a,0,s)
3398 #endif
3399 #ifndef HAVE_BCMP
3400 #define BCMP memcmp
3401 #endif
3403 #endif /* EMACS_CONFIG_H */
3406 Local Variables:
3407 mode: c
3408 End:
3410 ])dnl
3412 #### Report on what we decided to do.
3413 #### Report GTK as a toolkit, even if it doesn't use Xt.
3414 #### It makes printing result more understandable as using GTK sets
3415 #### toolkit_scroll_bars to yes by default.
3416 if test "${HAVE_GTK}" = "yes"; then
3417   USE_X_TOOLKIT=GTK
3420 echo "
3421 Configured for \`${canonical}'.
3423   Where should the build process find the source code?    ${srcdir}
3424   What operating system and machine description files should Emacs use?
3425         \`${opsysfile}' and \`${machfile}'
3426   What compiler should emacs be built with?               ${CC} ${CFLAGS}
3427   Should Emacs use the GNU version of malloc?             ${GNU_MALLOC}${GNU_MALLOC_reason}
3428   Should Emacs use a relocating allocator for buffers?    ${REL_ALLOC}
3429   Should Emacs use mmap(2) for buffer allocation?         $use_mmap_for_buffers
3430   What window system should Emacs use?                    ${window_system}
3431   What toolkit should Emacs use?                          ${USE_X_TOOLKIT}"
3433 if test -n "${x_includes}"; then
3434 echo "  Where do we find X Windows header files?                ${x_includes}"
3435 else
3436 echo "  Where do we find X Windows header files?                Standard dirs"
3438 if test -n "${x_libraries}"; then
3439 echo "  Where do we find X Windows libraries?                   ${x_libraries}"
3440 else
3441 echo "  Where do we find X Windows libraries?                   Standard dirs"
3444 echo "  Does Emacs use -lXaw3d?                                 ${HAVE_XAW3D}"
3445 echo "  Does Emacs use -lXpm?                                   ${HAVE_XPM}"
3446 echo "  Does Emacs use -ljpeg?                                  ${HAVE_JPEG}"
3447 echo "  Does Emacs use -ltiff?                                  ${HAVE_TIFF}"
3448 echo "  Does Emacs use a gif library?                           ${HAVE_GIF} $ac_gif_lib_name"
3449 echo "  Does Emacs use -lpng?                                   ${HAVE_PNG}"
3450 echo "  Does Emacs use -lrsvg-2?                                ${HAVE_RSVG}"
3451 echo "  Does Emacs use -lgpm?                                   ${HAVE_GPM}"
3452 echo "  Does Emacs use X toolkit scroll bars?                   ${USE_TOOLKIT_SCROLL_BARS}"
3453 echo
3455 if test $USE_XASSERTS = yes; then
3456    echo "  Compiling with asserts turned on."
3457    CPPFLAGS="$CPPFLAGS -DXASSERTS=1"
3458    echo
3461 if test "$USE_X_TOOLKIT" = GTK; then
3462   case "$canonical" in
3463   *cygwin*)
3464     echo "There are known problems with Emacs and Gtk+ on cygwin, so you
3465   will probably get a crash on startup.  If this happens, please use another
3466   toolkit for Emacs.  See etc/PROBLEMS for more information."
3467   ;;
3468   esac
3472 if test "$HAVE_CARBON" = "yes"; then
3473    echo
3474    echo "Warning: The Mac Carbon port is currently unsupported and has
3475 known problems.  It is not recommended for use by non-developers.
3476 Read the emacs-devel archives for more information."
3477    echo
3478 fi 
3481 # Remove any trailing slashes in these variables.
3482 [test "${prefix}" != NONE &&
3483   prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
3484 test "${exec_prefix}" != NONE &&
3485   exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`]
3487 ## Check if the C preprocessor will convert `..' to `. .'.  If so, set
3488 ## CPP_NEED_TRADITIONAL to `yes' so that the code to generate Makefile
3489 ## from Makefile.c can correctly provide the arg `-traditional' to the
3490 ## C preprocessor.
3492 AC_EGREP_CPP(yes..yes,
3493         [yes..yes],
3494         CPP_NEED_TRADITIONAL=no,
3495         CPP_NEED_TRADITIONAL=yes)
3497 AC_OUTPUT(Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile \
3498         doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \
3499         doc/lispref/Makefile src/Makefile.c:src/Makefile.in \
3500         lwlib/Makefile lisp/Makefile leim/Makefile, [
3502 ### Make the necessary directories, if they don't exist.
3503 for dir in etc lisp ; do
3504   test -d ${dir} || mkdir ${dir}
3505 done
3507 # Build src/Makefile from ${srcdir}/src/Makefile.c
3508 # and lib-src/Makefile from ${srcdir}/lib-src/Makefile.c
3509 # This must be done after src/config.h is built, since we rely on that file.
3511 # Now get this: Some word that is part of the ${srcdir} directory name
3512 # or the ${configuration} value might, just might, happen to be an
3513 # identifier like `sun4' or `i386' or something, and be predefined by
3514 # the C preprocessor to some helpful value like 1, or maybe the empty
3515 # string.  Needless to say consequent macro substitutions are less
3516 # than conducive to the makefile finding the correct directory.
3517 [undefs="`echo $top_srcdir $configuration $canonical |
3518 sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/  *$//' \
3519     -e 's/  */ -U/g' -e 's/-U[0-9][^ ]*//g' \
3522 echo creating src/epaths.h
3523 ${MAKE-make} epaths-force
3525 # As of 2000-11-19, newest development versions of GNU cpp preprocess
3526 # `..' to `. .'  unless invoked with -traditional
3528 if test "x$GCC" = xyes && test "x$CPP_NEED_TRADITIONAL" = xyes; then
3529   CPPFLAGS="$CPPFLAGS -traditional"
3532 echo creating lib-src/Makefile
3533 ( cd lib-src
3534   rm -f junk.c junk1.c junk2.c
3535   sed -e '/start of cpp stuff/q' \
3536       < Makefile.c > junk1.c
3537   sed -e '1,/start of cpp stuff/d'\
3538       -e 's,/\*\*/#\(.*\)$,/* \1 */,' \
3539       < Makefile.c > junk.c
3540   $CPP $undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
3541       sed -e 's/^ /     /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
3542   cat junk1.c junk2.c > Makefile.new
3543   rm -f junk.c junk1.c junk2.c
3544   chmod 444 Makefile.new
3545   mv -f Makefile.new Makefile
3548 echo creating src/Makefile
3549 ( cd src
3550   rm -f junk.c junk1.c junk2.c
3551   sed -e '/start of cpp stuff/q' \
3552       < Makefile.c > junk1.c
3553   sed -e '1,/start of cpp stuff/d'\
3554       -e 's,/\*\*/#\(.*\)$,/* \1 */,' \
3555       < Makefile.c > junk.c
3556   $CPP $undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
3557       sed -e 's/^ /     /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
3558   cat junk1.c junk2.c > Makefile.new
3559   rm -f junk.c junk1.c junk2.c
3560   chmod 444 Makefile.new
3561   mv -f Makefile.new Makefile
3564 if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then
3565   echo creating src/.gdbinit
3566   echo source $srcdir/src/.gdbinit > src/.gdbinit
3569 # This is how we know whether to re-run configure in certain cases.
3570 touch src/config.stamp
3572 ], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPP_NEED_TRADITIONAL="$CPP_NEED_TRADITIONAL" CPPFLAGS="$CPPFLAGS"])
3574 m4_if(dnl       Do not change this comment
3575    arch-tag: 156a4dd5-bddc-4d18-96ac-f37742cf6a5e
3576 )dnl