(custom-tool-bar-map): Move initialization of this
[emacs.git] / configure.in
blob19471e32582e873bbea8be56ce21597e1581ab51
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(emacs, 23.0.50)
28 AC_CONFIG_HEADER(src/config.h:src/config.in)
29 AC_CONFIG_SRCDIR(src/lisp.h)
31 dnl Support for --program-prefix, --program-suffix and
32 dnl --program-transform-name options
33 AC_ARG_PROGRAM
35 lispdir='${datadir}/emacs/${version}/lisp'
36 locallisppath='${datadir}/emacs/${version}/site-lisp:'\
37 '${datadir}/emacs/site-lisp'
38 lisppath='${locallisppath}:${lispdir}:${datadir}/emacs/${version}/leim'
39 etcdir='${datadir}/emacs/${version}/etc'
40 archlibdir='${libexecdir}/emacs/${version}/${configuration}'
41 docdir='${datadir}/emacs/${version}/etc'
42 gamedir='${localstatedir}/games/emacs'
44 gameuser=games
46 dnl Autoconf is so much less fun under VMS, maybe
47 dnl because everything is less fun under VMS. --ttn
48 AC_DEFUN([EMACS_ARG_Y],[dnl
49 AC_ARG_WITH([$1],[AS_HELP_STRING([--with-$1],[$2])],[$3],[$4])dnl
50 ])dnl
51 AC_DEFUN([EMACS_ARG_N],[dnl
52 AC_ARG_WITH([$1],[AS_HELP_STRING([--without-$1],[$2])],[$3],[$4])dnl
53 ])dnl
55 EMACS_ARG_N([gcc],[don't use GCC to compile Emacs if GCC is found])
57 EMACS_ARG_N([pop],[don't support POP mail retrieval with movemail],
58 [if test "$withval" = yes; then
59    AC_DEFINE(MAIL_USE_POP)
60 else :
61 fi],
62 AC_DEFINE(MAIL_USE_POP))
63 AH_TEMPLATE(MAIL_USE_POP, [Define to support POP mail retrieval.])dnl
65 EMACS_ARG_Y([kerberos],[support Kerberos-authenticated POP],
66 [if test "$withval" = yes; then
67    AC_DEFINE(KERBEROS)
68 fi])
69 AH_TEMPLATE(KERBEROS,
70             [Define to support Kerberos-authenticated POP mail retrieval.])dnl
72 EMACS_ARG_Y([kerberos5],[support Kerberos version 5 authenticated POP],
73 [if test "${with_kerberos5+set}" = set; then
74   if test "${with_kerberos+set}" != set; then
75     with_kerberos=yes
76     AC_DEFINE(KERBEROS)
77   fi
78   AC_DEFINE(KERBEROS5, 1, [Define to use Kerberos 5 instead of Kerberos 4.])
79 fi])
81 EMACS_ARG_Y([hesiod],[support Hesiod to get the POP server host],
82 [if test "$withval" = yes; then
83   AC_DEFINE(HESIOD, 1, [Define to support using a Hesiod database to find the POP server.])
84 fi])
86 EMACS_ARG_N([sound],[don't compile with sound support])
88 dnl This should be the last --with option, because --with-x is
89 dnl added later on when we find the path of X, and it's best to
90 dnl keep them together visually.
91 AC_ARG_WITH([x-toolkit],[AS_HELP_STRING([--with-x-toolkit=KIT],
92  [use an X toolkit (KIT one of: yes, lucid, athena, motif, gtk, no)])],
93 [         case "${withval}" in
94             y | ye | yes )      val=gtk ;;
95             n | no )            val=no  ;;
96             l | lu | luc | luci | lucid )       val=lucid ;;
97             a | at | ath | athe | athen | athena )      val=athena ;;
98             m | mo | mot | moti | motif )       val=motif ;;
99             g | gt | gtk  )     val=gtk ;;
100             * )
101 AC_MSG_ERROR([`--with-x-toolkit=$withval' is invalid;
102 this option's value should be `yes', `no', `lucid', `athena', `motif' or `gtk'.
103 `yes' and `gtk' are synonyms. `athena' and `lucid' are synonyms.])
104             ;;
105           esac
106           with_x_toolkit=$val
109 EMACS_ARG_Y([xpm],[use -lXpm for displaying XPM images])
110 EMACS_ARG_Y([jpeg],[use -ljpeg for displaying JPEG images])
111 EMACS_ARG_Y([tiff],[use -ltiff for displaying TIFF images])
112 EMACS_ARG_Y([gif],[use -lgif (or -lungif) for displaying GIF images])
113 EMACS_ARG_Y([png],[use -lpng for displaying PNG images])
114 EMACS_ARG_Y([gpm],[use -lgpm for mouse support on a GNU/Linux console])
115 EMACS_ARG_Y([rsvg],[use -lrsvg-2 for displaying SVG images])
116 EMACS_ARG_Y([gtk],[use GTK (same as --with-x-toolkit=gtk)])
117 EMACS_ARG_Y([pkg-config-prog],[Path to pkg-config for finding GTK and librsvg])
118 EMACS_ARG_N([toolkit-scroll-bars],[don't use Motif or Xaw3d scroll bars])
119 EMACS_ARG_N([xaw3d],[don't use Xaw3d])
120 EMACS_ARG_N([xim],[don't use X11 XIM])
121 EMACS_ARG_N([carbon],[don't use Carbon GUI on Mac OS X])
122 EMACS_ARG_Y([dbus],[use D-Bus])
124 AC_ARG_ENABLE(carbon-app,
125 [AS_HELP_STRING([--enable-carbon-app@<:@=DIR@:>@],
126                 [specify install directory for Emacs.app on Mac OS X
127                  [DIR=/Application]])],
128 [ carbon_appdir_x=${enableval}])
130 AC_ARG_ENABLE(asserts,
131 [AS_HELP_STRING([--enable-asserts], [compile code with asserts enabled])],
132       USE_XASSERTS=$enableval,
133       USE_XASSERTS=no)
135 AC_ARG_ENABLE(maintainer-mode,
136 [AS_HELP_STRING([--enable-maintainer-mode],
137                 [enable make rules and dependencies not useful (and sometimes
138                  confusing) to the casual installer])],
139       USE_MAINTAINER_MODE=$enableval,
140       USE_MAINTAINER_MODE=no)
141 if test $USE_MAINTAINER_MODE = yes; then
142   MAINT=
143 else
144   MAINT=#
146 AC_SUBST(MAINT)
148 AC_ARG_ENABLE(locallisppath,
149 [AS_HELP_STRING([--enable-locallisppath=PATH],
150                 [directories Emacs should search for lisp files specific
151                  to this site])],
152 if test "${enableval}" = "no"; then
153   locallisppath=
154 elif test "${enableval}" != "yes"; then
155   locallisppath=${enableval}
158 #### Make srcdir absolute, if it isn't already.  It's important to
159 #### avoid running the path through pwd unnecessarily, since pwd can
160 #### give you automounter prefixes, which can go away.  We do all this
161 #### so Emacs can find its files when run uninstalled.
162 ## Make sure CDPATH doesn't affect cd (in case PWD is relative).
163 unset CDPATH
164 case "${srcdir}" in
165   /* ) ;;
166   . )
167     ## We may be able to use the $PWD environment variable to make this
168     ## absolute.  But sometimes PWD is inaccurate.
169     ## Note: we used to use ${PWD} at the end instead of `pwd`,
170     ## but that tested only for a well-formed and valid PWD,
171     ## it did not object when PWD was well-formed and valid but just wrong.
172     if test ".${PWD}" != "." && test ".`(cd ${PWD} ; sh -c pwd)`" = ".`pwd`"  ;
173     then
174       srcdir="$PWD"
175     else
176       srcdir="`(cd ${srcdir}; pwd)`"
177     fi
178   ;;
179   *  ) srcdir="`(cd ${srcdir}; pwd)`" ;;
180 esac
182 #### Check if the source directory already has a configured system in it.
183 if test `pwd` != `(cd ${srcdir} && pwd)` \
184    && test -f "${srcdir}/src/config.h" ; then
185   AC_MSG_WARN([[The directory tree `${srcdir}' is being used
186    as a build directory right now; it has been configured in its own
187    right.  To configure in another directory as well, you MUST
188    use GNU make.  If you do not have GNU make, then you must
189    now do `make distclean' in ${srcdir},
190    and then run $0 again.]])
193 #### Given the configuration name, set machfile and opsysfile to the
194 #### names of the m/*.h and s/*.h files we should use.
196 ### Canonicalize the configuration name.
198 AC_CANONICAL_HOST
199 canonical=$host
200 configuration=${host_alias-${build_alias-$host}}
202 dnl This used to use changequote, but, apart from `changequote is evil'
203 dnl per the autoconf manual, we can speed up autoconf somewhat by quoting
204 dnl the great gob of text.  Thus it's not processed for possible expansion.
205 dnl Just make sure the brackets remain balanced.
207 dnl Since Emacs can't find matching pairs of quotes, boundaries are
208 dnl indicated by comments.
209 dnl quotation begins
212 ### If you add support for a new configuration, add code to this
213 ### switch statement to recognize your configuration name and select
214 ### the appropriate operating system and machine description files.
216 ### You would hope that you could choose an m/*.h file pretty much
217 ### based on the machine portion of the configuration name, and an s-
218 ### file based on the operating system portion.  However, it turns out
219 ### that each m/*.h file is pretty manufacturer-specific - for
220 ### example hp9000s300.h is a 68000 machine;
221 ### mips.h, pmax.h are all MIPS
222 ### machines.  So we basically have to have a special case for each
223 ### configuration name.
225 ### As far as handling version numbers on operating systems is
226 ### concerned, make sure things will fail in a fixable way.  If
227 ### /etc/MACHINES doesn't say anything about version numbers, be
228 ### prepared to handle anything reasonably.  If version numbers
229 ### matter, be sure /etc/MACHINES says something about it.
231 ### Eric Raymond says we should accept strings like "sysvr4" to mean
232 ### "System V Release 4"; he writes, "The old convention encouraged
233 ### confusion between `system' and `release' levels'."
235 machine='' opsys='' unported=no
236 case "${canonical}" in
238   ## FreeBSD ports
239   *-*-freebsd* )
240     opsys=freebsd
241     case "${canonical}" in
242       alpha*-*-freebsd*)        machine=alpha ;;
243       ia64-*-freebsd*)          machine=ia64 ;;
244       sparc64-*-freebsd*)       machine=sparc ;;
245       powerpc-*-freebsd*)       machine=macppc ;;
246       i[3456]86-*-freebsd*)     machine=intel386 ;;
247       amd64-*-freebsd*|x86_64-*-freebsd*) machine=amdx86-64 ;;
248     esac
249   ;;
251   ## FreeBSD kernel + glibc based userland
252   *-*-kfreebsd*gnu* )
253     opsys=gnu-kfreebsd
254     case "${canonical}" in
255       alpha*-*-kfreebsd*)       machine=alpha ;;
256       ia64-*-kfreebsd*)         machine=ia64 ;;
257       sparc64-*-kfreebsd*)      machine=sparc ;;
258       powerpc-*-kfreebsd*)      machine=macppc ;;
259       i[3456]86-*-kfreebsd*)    machine=intel386 ;;
260       amd64-*-kfreebsd*|x86_64-*-kfreebsd*) machine=amdx86-64 ;;
261     esac
262   ;;
264   ## NetBSD ports
265   *-*-netbsd* )
266     opsys=netbsd
267     if test -f /usr/lib/crti.o; then]
268 dnl The close and open brackets here are because this section is quoted --
269 dnl see the `changequote' comment above.
270       AC_DEFINE(HAVE_CRTIN, [], [Define to 1 if you have /usr/lib/crti.o.])
271 [   fi
273     case "${canonical}" in
274       alpha*-*-netbsd*) machine=alpha ;;
275       i[3456]86-*-netbsd*) machine=intel386 ;;
276       m68k-*-netbsd*)
277                         # This is somewhat bogus.
278                         machine=hp9000s300 ;;
279       mips-*-netbsd*)   machine=pmax ;;
280       mipsel-*-netbsd*) machine=pmax ;;
281       mipseb-*-netbsd*) machine=pmax ;;
282       powerpc-*-netbsd*) machine=macppc ;;
283       sparc*-*-netbsd*) machine=sparc ;;
284       vax-*-netbsd*)    machine=vax ;;
285       arm-*-netbsd*)    machine=arm ;;
286       x86_64-*-netbsd*) machine=amdx86-64 ;;
287       hppa-*-netbsd*)   machine=hp800 ;;
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       mips64-*-openbsd*)       machine=mips64 ;;
301       powerpc-*-openbsd*)      machine=macppc ;;
302       sparc*-*-openbsd*)       machine=sparc ;;
303       vax-*-openbsd*)          machine=vax ;;
304       x86_64-*-openbsd*)       machine=amdx86-64 ;;
305     esac
306   ;;
308   ## LynxOS ports
309   *-*-lynxos* )
310     opsys=lynxos
311     case "${canonical}" in
312       i[3456]86-*-lynxos*) machine=intel386 ;;
313       powerpc-*-lynxos*) machine=powerpc ;;
314     esac
315   ;;
317   ## BSDI ports
318   *-*-bsdi* )
319     opsys=bsdi
320     case "${canonical}" in
321       i[345]86-*-bsdi*) machine=intel386 ;;
322       sparc-*-bsdi*)  machine=sparc ;;
323       powerpc-*-bsdi*)  machine=macppc ;;
324     esac
325     case "${canonical}" in
326       *-*-bsd386* | *-*-bsdi1* )        opsys=bsd386 ;;
327       *-*-bsdi2.0* )            opsys=bsdos2 ;;
328       *-*-bsdi2* )              opsys=bsdos2-1 ;;
329       *-*-bsdi3* )              opsys=bsdos3 ;;
330       *-*-bsdi[45]* )           opsys=bsdos4 ;;
331     esac
332   ;;
334   ## Alpha (DEC) machines.
335   alpha*-dec-osf* )
336     machine=alpha opsys=osf1
337     # This is needed to find X11R6.1 libraries for certain tests.
338     NON_GCC_LINK_TEST_OPTIONS=-Wl,-rpath,/usr/X11R6/lib
339     GCC_LINK_TEST_OPTIONS=-Wl,-rpath,/usr/X11R6/lib
340     # NON_GNU_CPP is necessary on 5.0 to avoid mangling src/Makefile
341     # due to non-traditional preprocessing with the current compiler
342     # defaults.  OSF 4 can also have that compiler version, and there
343     # seems always to have been a usable /usr/bin/cpp.
344     NON_GNU_CPP=/usr/bin/cpp
345     case "${canonical}" in
346     alpha*-dec-osf[5-9]*)
347       opsys=osf5-0 ;;
348     esac
349   ;;
351   alpha*-*-linux-gnu* )
352     machine=alpha opsys=gnu-linux
353   ;;
355   arm*-*-linux-gnu* )
356     machine=arm opsys=gnu-linux
357   ;;
359   ## Apple Darwin / Mac OS X
360   *-apple-darwin* )
361     case "${canonical}" in
362       i[3456]86-* )  machine=intel386 ;;
363       powerpc-* )    machine=powermac ;;
364       * )            unported=yes ;;
365     esac
366     opsys=darwin
367     # Define CPP as follows to make autoconf work correctly.
368     CPP="${CC-cc} -E -no-cpp-precomp"
369     # Use fink packages if available.
370     if test -d /sw/include && test -d /sw/lib; then
371       GCC_TEST_OPTIONS="-I/sw/include -L/sw/lib"
372       CPP="${CPP} ${GCC_TEST_OPTIONS}"
373       NON_GCC_TEST_OPTIONS=${GCC_TEST_OPTIONS}
374     fi
375   ;;
377   ## Compaq Nonstop
378   mips-compaq-nonstopux* )
379     machine=nonstopux opsys=nonstopux
380     ;;
382   ## Cubix QBx/386
383   i[3456]86-cubix-sysv* )
384     machine=intel386 opsys=usg5-3
385   ;;
387   mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0* | mips-dec-bsd4.2* )
388     machine=pmax opsys=bsd4-2
389   ;;
390   mips-dec-ultrix4.[12]* | mips-dec-bsd* )
391     machine=pmax opsys=bsd4-3
392   ;;
393   mips-dec-ultrix* )
394     machine=pmax opsys=ultrix4-3
395   ;;
396   mips-dec-osf* )
397     machine=pmax opsys=osf1
398   ;;
399   mips-dec-mach_bsd4.3* )
400     machine=pmax opsys=mach-bsd4-3
401   ;;
403   ## HP 9000 series 200 or 300
404   m68*-hp-bsd* )
405     machine=hp9000s300 opsys=bsd4-3
406   ;;
407   ## HP/UX 7, 8, 9, and 10 are supported on these machines.
408   m68*-hp-hpux* )
409     case "`uname -r`" in
410       ## Someone's system reports A.B8.05 for this.
411       ## I wonder what other possibilities there are.
412       *.B8.* ) machine=hp9000s300 opsys=hpux8 ;;
413       *.08.* ) machine=hp9000s300 opsys=hpux8 ;;
414       *.09.* ) machine=hp9000s300 opsys=hpux9 ;;
415       *.1[0-9].* ) machine=hp9000s300 opsys=hpux9shr ;;
416       *) machine=hp9000s300 opsys=hpux ;;
417     esac
418   ;;
420   ## HP 9000 series 700 and 800, running HP/UX
421   hppa*-hp-hpux7* )
422     machine=hp800 opsys=hpux
423   ;;
424   hppa*-hp-hpux8* )
425     machine=hp800 opsys=hpux8
426   ;;
427   hppa*-hp-hpux9shr* )
428     machine=hp800 opsys=hpux9shr
429   ;;
430   hppa*-hp-hpux9* )
431     machine=hp800 opsys=hpux9
432   ;;
433   hppa*-hp-hpux10.2* )
434     machine=hp800 opsys=hpux10-20
435   ;;
436   hppa*-hp-hpux10* )
437     machine=hp800 opsys=hpux10
438   ;;
439   hppa*-hp-hpux1[1-9]* )
440     machine=hp800 opsys=hpux11
441     CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS"
442   ;;
444   hppa*-*-linux-gnu* )
445     machine=hp800 opsys=gnu-linux
446   ;;
448   ## HP 9000 series 700 and 800, running HP/UX
449   hppa*-hp-hpux* )
450     ## Cross-compilation?  Nah!
451     case "`uname -r`" in
452       ## Someone's system reports A.B8.05 for this.
453       ## I wonder what other possibilities there are.
454       *.B8.* ) machine=hp800 opsys=hpux8 ;;
455       *.08.* ) machine=hp800 opsys=hpux8 ;;
456       *.09.* ) machine=hp800 opsys=hpux9 ;;
457       *) machine=hp800 opsys=hpux10 ;;
458     esac
459   ;;
460   hppa*-*-nextstep* )
461     machine=hp800 opsys=nextstep
462   ;;
464   ## IBM machines
465   i370-ibm-aix*)
466     machine=ibm370aix opsys=usg5-3
467   ;;
468   s390-*-linux-gnu* )
469     machine=ibms390 opsys=gnu-linux
470   ;;
471   s390x-*-linux-gnu* )
472     machine=ibms390x opsys=gnu-linux
473   ;;
474   rs6000-ibm-aix3.1* | powerpc-ibm-aix3.1*  )
475     machine=ibmrs6000 opsys=aix3-1
476   ;;
477   rs6000-ibm-aix3.2.5 | powerpc-ibm-aix3.2.5 )
478     machine=ibmrs6000 opsys=aix3-2-5
479   ;;
480   rs6000-ibm-aix4.1* | powerpc-ibm-aix4.1*  )
481     machine=ibmrs6000 opsys=aix4-1
482   ;;
483   rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2*  )
484     machine=ibmrs6000 opsys=aix4-2
485   ;;
486   rs6000-ibm-aix4.3* | powerpc-ibm-aix4.3*  )
487     machine=ibmrs6000 opsys=aix4-2
488   ;;
489   rs6000-ibm-aix5* | powerpc-ibm-aix5*  )
490     machine=ibmrs6000 opsys=aix4-2
491   ;;
492   rs6000-ibm-aix4.0* | powerpc-ibm-aix4.0*  )
493     machine=ibmrs6000 opsys=aix4
494   ;;
495   rs6000-ibm-aix4* | powerpc-ibm-aix4*  )
496     machine=ibmrs6000 opsys=aix4-1
497   ;;
498   rs6000-ibm-aix* | powerpc-ibm-aix* )
499     machine=ibmrs6000 opsys=aix3-2
500   ;;
502   ## Prime EXL
503   i[3456]86-prime-sysv* )
504     machine=i386 opsys=usg5-3
505   ;;
507   ## Sequent Symmetry running ptx 4, which is a modified SVR4.
508   i[3456]86-sequent-ptx4* | i[3456]86-sequent-sysv4* )
509     machine=sequent-ptx opsys=ptx4
510     NON_GNU_CPP=/lib/cpp
511   ;;
513   ## Sequent Symmetry running DYNIX/ptx
514   ## Use the old cpp rather than the newer ANSI one.
515   i[3456]86-sequent-ptx* )
516     machine=sequent-ptx opsys=ptx
517     NON_GNU_CPP="/lib/cpp"
518   ;;
520   ## ncr machine running svr4.3.
521   i[3456]86-ncr-sysv4.3 )
522     machine=ncr386 opsys=usg5-4-3
523   ;;
525   ## Unspecified sysv on an ncr machine defaults to svr4.2.
526   ## (Plain usg5-4 doesn't turn on POSIX signals, which we need.)
527   i[3456]86-ncr-sysv* )
528     machine=ncr386 opsys=usg5-4-2
529   ;;
531   ## Macintosh PowerPC
532   powerpc*-*-linux-gnu* )
533     machine=macppc opsys=gnu-linux
534   ;;
536   ## Workstations sold by MIPS
537   ## This is not necessarily all workstations using the MIPS processor -
538   ## Irises are produced by SGI, and DECstations by DEC.
540   ## etc/MACHINES lists mips.h and mips4.h as possible machine files,
541   ## and usg5-2-2 and bsd4-3 as possible OS files.  The only guidance
542   ## it gives for choosing between the alternatives seems to be "Use
543   ## -machine=mips4 for RISCOS version 4; use -opsystem=bsd4-3 with
544   ## the BSD world."  I'll assume that these are instructions for
545   ## handling two odd situations, and that every other situation
546   ## should use mips.h and usg5-2-2, they being listed first.
547   mips-mips-usg* )
548     machine=mips4
549     ## Fall through to the general code at the bottom to decide on the OS.
550   ;;
551   mips-mips-riscos4* )
552     machine=mips4 opsys=bsd4-3
553     NON_GNU_CC="cc -systype bsd43"
554     NON_GNU_CPP="cc -systype bsd43 -E"
555   ;;
556   mips-mips-riscos5* )
557     machine=mips4 opsys=riscos5
558     NON_GNU_CC="cc -systype bsd43"
559     NON_GNU_CPP="cc -systype bsd43 -E"
560   ;;
561   mips-mips-bsd* )
562     machine=mips opsys=bsd4-3
563   ;;
564   mips-mips-* )
565     machine=mips opsys=usg5-2-2
566   ;;
568   ## NeXT
569   m68*-next-* | m68k-*-nextstep* )
570     machine=m68k opsys=nextstep
571   ;;
573   ## NEC EWS4800
574   mips-nec-sysv4*)
575   machine=ews4800 opsys=ux4800
576   ;;
578   ## Siemens Nixdorf
579   mips-siemens-sysv* | mips-sni-sysv*)
580     machine=mips-siemens opsys=usg5-4
581     NON_GNU_CC=/usr/ccs/bin/cc
582     NON_GNU_CPP=/usr/ccs/lib/cpp
583   ;;
585   ## Silicon Graphics machines
586   ## Iris 4D
587   mips-sgi-irix3* )
588     machine=iris4d opsys=irix3-3
589   ;;
590   mips-sgi-irix4* )
591     machine=iris4d opsys=irix4-0
592   ;;
593   mips-sgi-irix6.5 )
594     machine=iris4d opsys=irix6-5
595     # Without defining _LANGUAGE_C, things get masked out in the headers
596     # so that, for instance, grepping for `free' in stdlib.h fails and
597     # AC_HEADER_STD_C fails.   (MIPSPro 7.2.1.2m compilers, Irix 6.5.3m).
598     NON_GNU_CPP="/lib/cpp -D_LANGUAGE_C"
599     NON_GCC_TEST_OPTIONS="-D_LANGUAGE_C"
600   ;;
601   mips-sgi-irix6* )
602     machine=iris4d opsys=irix6-0
603     # It's not clear whether -D_LANGUAGE_C is necessary as it is for 6.5,
604     # but presumably it does no harm.
605     NON_GNU_CPP="/lib/cpp -D_LANGUAGE_C"
606     # -32 probably isn't necessary in later v.6s -- anyone know which?
607     NON_GCC_TEST_OPTIONS=-32
608   ;;
609   mips-sgi-irix5.[01]* )
610     machine=iris4d opsys=irix5-0
611   ;;
612   mips-sgi-irix5* | mips-sgi-irix* )
613     machine=iris4d opsys=irix5-2
614   ;;
616   ## Suns
617   sparc-*-linux-gnu* | sparc64-*-linux-gnu* )
618     machine=sparc opsys=gnu-linux
619   ;;
621   *-auspex-sunos* | *-sun-sunos* | *-sun-bsd* | *-sun-solaris* \
622     | i[3456]86-*-solaris2* | i[3456]86-*-sunos5* | powerpc*-*-solaris2* \
623     | rs6000-*-solaris2*)
624     case "${canonical}" in
625       i[3456]86-*-* )     machine=intel386 ;;
626       amd64-*-*|x86_64-*-*)     machine=amdx86-64 ;;
627       powerpcle* )      machine=powerpcle ;;
628       powerpc* | rs6000* )  machine=ibmrs6000 ;;
629       sparc* )          machine=sparc ;;
630       * )               unported=yes ;;
631     esac
632     case "${canonical}" in
633       *-sunos5.3* | *-solaris2.3* )
634                 opsys=sol2-3
635                 NON_GNU_CPP=/usr/ccs/lib/cpp
636                 ;;
637       *-sunos5.4* | *-solaris2.4* )
638                 opsys=sol2-4
639                 NON_GNU_CPP=/usr/ccs/lib/cpp
640                 RANLIB="ar -ts"
641                 ;;
642       *-sunos5.5* | *-solaris2.5* )
643                 opsys=sol2-5
644                 NON_GNU_CPP=/usr/ccs/lib/cpp
645                 RANLIB="ar -ts"
646                 ;;
647       *-sunos5.6* | *-solaris2.6* )
648                 opsys=sol2-6
649                 NON_GNU_CPP=/usr/ccs/lib/cpp
650                 RANLIB="ar -ts"
651                 ;;
652       *-sunos5* | *-solaris* )
653                 opsys=sol2-6
654                 emacs_check_sunpro_c=yes
655                 NON_GNU_CPP=/usr/ccs/lib/cpp
656                 ;;
657       *                   ) opsys=bsd4-2   ;;
658     esac
659     ## Watch out for a compiler that we know will not work.
660     case "${canonical}" in
661      *-solaris* | *-sunos5* )
662                 if [ "x$CC" = x/usr/ucb/cc ]; then
663                   ## /usr/ucb/cc doesn't work;
664                   ## we should find some other compiler that does work.
665                   unset CC
666                 fi
667                 ;;
668       *) ;;
669     esac
670   ;;
671   sparc-*-nextstep* )
672     machine=sparc opsys=nextstep
673   ;;
675   ## Tandem Integrity S2
676   mips-tandem-sysv* )
677     machine=tandem-s2 opsys=usg5-3
678   ;;
680   ## Vaxen.
681   vax-dec-* )
682     machine=vax
683     case "${canonical}" in
684       *-bsd4.1* )                                       opsys=bsd4-1 ;;
685       *-bsd4.2* | *-ultrix[0-3].* | *-ultrix4.0* )      opsys=bsd4-2 ;;
686       *-bsd4.3* | *-ultrix* )                           opsys=bsd4-3 ;;
687       *-sysv[01]* | *-sysvr[01]* )                      opsys=usg5-0 ;;
688       *-sysv2* | *-sysvr2* )                            opsys=usg5-2 ;;
689       *-vms* )                                          opsys=vms ;;
690       * )                                               unported=yes
691     esac
692   ;;
694   ## IA-64
695   ia64*-*-linux* )
696     machine=ia64 opsys=gnu-linux
697   ;;
699   ## Intel 386 machines where we don't care about the manufacturer
700   i[3456]86-*-* )
701     machine=intel386
702     case "${canonical}" in
703       *-cygwin )                opsys=cygwin ;;
704       *-darwin* )               opsys=darwin
705                                 CPP="${CC-cc} -E -no-cpp-precomp"
706                                 ;;
707       *-xenix* )                opsys=xenix ;;
708       *-linux-gnu* )            opsys=gnu-linux ;;
709                                 ;;
710       *-sysv4.2uw* )            opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
711       *-sysv5uw* )              opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
712       *-sysv5OpenUNIX* )        opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
713       *-386bsd* )               opsys=386bsd ;;
714       *-nextstep* )             opsys=nextstep ;;
715       ## Otherwise, we'll fall through to the generic opsys code at the bottom.
716     esac
717   ;;
719   ## m68k Linux-based GNU system
720   m68k-*-linux-gnu* )
721     machine=m68k opsys=gnu-linux
722   ;;
724   ## Mips Linux-based GNU system
725   mips-*-linux-gnu* | mipsel-*-linux-gnu* )
726     machine=mips opsys=gnu-linux
727   ;;
729   ## UXP/DS
730   sparc-fujitsu-sysv4* )
731     machine=sparc opsys=uxpds
732     NON_GNU_CPP=/usr/ccs/lib/cpp
733     RANLIB="ar -ts"
734   ;;
736   ## AMD x86-64 Linux-based GNU system
737   x86_64-*-linux-gnu* )
738     machine=amdx86-64 opsys=gnu-linux
739   ;;
741   ## Tensilica Xtensa Linux-based GNU system
742   xtensa-*-linux-gnu* )
743     machine=xtensa opsys=gnu-linux
744     ;;
746   * )
747     unported=yes
748   ;;
749 esac
751 ### If the code above didn't choose an operating system, just choose
752 ### an operating system based on the configuration name.  You really
753 ### only want to use this when you have no idea what the right
754 ### operating system is; if you know what operating systems a machine
755 ### runs, it's cleaner to make it explicit in the case statement
756 ### above.
757 if test x"${opsys}" = x; then
758   case "${canonical}" in
759     *-gnu* )                            opsys=gnu ;;
760     *-bsd4.[01] )                       opsys=bsd4-1 ;;
761     *-bsd4.2 )                          opsys=bsd4-2 ;;
762     *-bsd4.3 )                          opsys=bsd4-3 ;;
763     *-sysv0 | *-sysvr0 )                opsys=usg5-0 ;;
764     *-sysv2 | *-sysvr2 )                opsys=usg5-2 ;;
765     *-sysv2.2 | *-sysvr2.2 )            opsys=usg5-2-2 ;;
766     *-sysv3* | *-sysvr3* )              opsys=usg5-3 ;;
767     *-sysv4.2uw* )                      opsys=unixware ;;
768     *-sysv5uw* )                        opsys=unixware ;;
769     *-sysv5OpenUNIX* )                  opsys=unixware ;;
770     *-sysv4.1* | *-sysvr4.1* )
771         NON_GNU_CPP=/usr/lib/cpp
772         opsys=usg5-4 ;;
773     *-sysv4.[2-9]* | *-sysvr4.[2-9]* )
774         if [ x$NON_GNU_CPP = x ]; then
775           if [ -f /usr/ccs/lib/cpp ]; then
776             NON_GNU_CPP=/usr/ccs/lib/cpp
777           else
778             NON_GNU_CPP=/lib/cpp
779           fi
780         fi
781         opsys=usg5-4-2 ;;
782     *-sysv4* | *-sysvr4* )              opsys=usg5-4 ;;
783     * )
784       unported=yes
785     ;;
786   esac
790 dnl quotation ends
792 if test $unported = yes; then
793   AC_MSG_ERROR([Emacs hasn't been ported to `${canonical}' systems.
794 Check `etc/MACHINES' for recognized configuration names.])
797 machfile="m/${machine}.h"
798 opsysfile="s/${opsys}.h"
801 #### Choose a compiler.
802 test -n "$CC" && cc_specified=yes
804 # Save the value of CFLAGS that the user specified.
805 SPECIFIED_CFLAGS="$CFLAGS"
807 case ${with_gcc} in
808   "yes" ) CC="gcc" GCC=yes ;;
809   "no"  ) : ${CC=cc} ;;
810   * )
811 esac
812 AC_PROG_CC
814 # On Suns, sometimes $CPP names a directory.
815 if test -n "$CPP" && test -d "$CPP"; then
816   CPP=
819 ## If not using gcc, and on Solaris, and no CPP specified, see if
820 ## using a Sun compiler, which needs -Xs to prevent whitespace.
821 if test x"$GCC" != xyes && test x"$emacs_check_sunpro_c" = xyes && \
822  test x"$CPP" = x; then
823   AC_MSG_CHECKING([whether we are using a Sun C compiler])
824   AC_CACHE_VAL(emacs_cv_sunpro_c,
825   [AC_TRY_LINK([],
826 [#ifndef __SUNPRO_C
827 fail;
828 #endif
829 ], emacs_cv_sunpro_c=yes, emacs_cv_sunpro_c=no)])
830   AC_MSG_RESULT($emacs_cv_sunpro_c)
832   if test x"$emacs_cv_sunpro_c" = xyes; then
833     NON_GNU_CPP="$CC -E -Xs"
834   fi
837 #### Some systems specify a CPP to use unless we are using GCC.
838 #### Now that we know whether we are using GCC, we can decide whether
839 #### to use that one.
840 if test "x$NON_GNU_CPP" != x && test x$GCC != xyes && test "x$CPP" = x
841 then
842   CPP="$NON_GNU_CPP"
845 #### Some systems specify a CC to use unless we are using GCC.
846 #### Now that we know whether we are using GCC, we can decide whether
847 #### to use that one.
848 if test "x$NON_GNU_CC" != x && test x$GCC != xyes &&
849   test x$cc_specified != xyes
850 then
851   CC="$NON_GNU_CC"
854 if test x$GCC = xyes && test "x$GCC_TEST_OPTIONS" != x
855 then
856   CC="$CC $GCC_TEST_OPTIONS"
859 if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x
860 then
861   CC="$CC $NON_GCC_TEST_OPTIONS"
864 dnl checks for Unix variants
865 AC_AIX
866 AC_GNU_SOURCE
868 ### Use -Wno-pointer-sign if the compiler supports it
869 AC_MSG_CHECKING([whether gcc understands -Wno-pointer-sign])
870 SAVE_CFLAGS="$CFLAGS"
871 CFLAGS="$CFLAGS -Wno-pointer-sign"
872 AC_TRY_COMPILE([], [], has_option=yes, has_option=no,)
873 if test $has_option = yes; then
874    C_WARNINGS_SWITCH="-Wno-pointer-sign $C_WARNINGS_SWITCH"
876 AC_MSG_RESULT($has_option)
877 CFLAGS="$SAVE_CFLAGS"
878 unset has_option
879 unset SAVE_CFLAGS
881 #### Some other nice autoconf tests.
883 dnl checks for programs
884 AC_PROG_LN_S
885 AC_PROG_CPP
886 AC_PROG_INSTALL
887 if test "x$RANLIB" = x; then
888   AC_PROG_RANLIB
890 AC_PATH_PROG(INSTALL_INFO, install-info)
891 AC_PATH_PROG(INSTALL_INFO, install-info,, /usr/sbin)
892 AC_PATH_PROG(INSTALL_INFO, install-info,:, /sbin)
893 dnl Don't use GZIP, which is used by gzip for additional parameters.
894 AC_PATH_PROG(GZIP_PROG, gzip)
897 ## Need makeinfo >= 4.6 (?) to build the manuals.
898 AC_PATH_PROG(MAKEINFO, makeinfo, no)
899 dnl By this stage, configure has already checked for egrep and set EGREP,
900 dnl or exited with an error if no egrep was found.
901 if test "$MAKEINFO" != "no" && \
902   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
903    MAKEINFO=no
906 if test "$MAKEINFO" = "no"; then
907   AC_MSG_ERROR( [makeinfo >= 4.6 is required] )
911 dnl Add our options to ac_link now, after it is set up.
913 if test x$GCC = xyes && test "x$GCC_LINK_TEST_OPTIONS" != x
914 then
915   ac_link="$ac_link $GCC_LINK_TEST_OPTIONS"
918 if test x$GCC = x && test "x$NON_GCC_LINK_TEST_OPTIONS" != x
919 then
920   ac_link="$ac_link $NON_GCC_LINK_TEST_OPTIONS"
923 dnl We need -znocombreloc if we're using a relatively recent GNU ld.
924 dnl If we can link with the flag, it shouldn't do any harm anyhow.
925 dnl (Don't use `-z nocombreloc' as -z takes no arg on Irix.)
926 dnl Treat GCC specially since it just gives a non-fatal `unrecognized option'
927 dnl if not built to support GNU ld.
929 late_LDFLAGS=$LDFLAGS
930 if test "$GCC" = yes; then
931   LDFLAGS="$LDFLAGS -Wl,-znocombreloc"
932 else
933   LDFLAGS="$LDFLAGS -znocombreloc"
936 AC_MSG_CHECKING([for -znocombreloc])
937 AC_LINK_IFELSE([main(){return 0;}],
938   [AC_MSG_RESULT(yes)],
939   LDFLAGS=$late_LDFLAGS
940   [AC_MSG_RESULT(no)])
942 #### Extract some information from the operating system and machine files.
944 AC_CHECKING([the machine- and system-dependent files to find out
945  - which libraries the lib-src programs will want, and
946  - whether the GNU malloc routines are usable])
948 ### First figure out CFLAGS (which we use for running the compiler here)
949 ### and REAL_CFLAGS (which we use for real compilation).
950 ### The two are the same except on a few systems, where they are made
951 ### different to work around various lossages.  For example,
952 ### GCC 2.5 on GNU/Linux needs them to be different because it treats -g
953 ### as implying static linking.
955 ### If the CFLAGS env var is specified, we use that value
956 ### instead of the default.
958 ### It's not important that this name contain the PID; you can't run
959 ### two configures in the same directory and have anything work
960 ### anyway.
961 tempcname="conftest.c"
963 echo '
964 #include "'${srcdir}'/src/'${opsysfile}'"
965 #include "'${srcdir}'/src/'${machfile}'"
966 #ifndef LIBS_MACHINE
967 #define LIBS_MACHINE
968 #endif
969 #ifndef LIBS_SYSTEM
970 #define LIBS_SYSTEM
971 #endif
972 #ifndef C_SWITCH_SYSTEM
973 #define C_SWITCH_SYSTEM
974 #endif
975 #ifndef C_SWITCH_MACHINE
976 #define C_SWITCH_MACHINE
977 #endif
978 configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
979 configure___ c_switch_system=C_SWITCH_SYSTEM
980 configure___ c_switch_machine=C_SWITCH_MACHINE
982 #ifndef LIB_X11_LIB
983 #define LIB_X11_LIB -lX11
984 #endif
986 #ifndef LIBX11_MACHINE
987 #define LIBX11_MACHINE
988 #endif
990 #ifndef LIBX11_SYSTEM
991 #define LIBX11_SYSTEM
992 #endif
993 configure___ LIBX=LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM
995 #ifdef UNEXEC
996 configure___ unexec=UNEXEC
997 #else
998 configure___ unexec=unexec.o
999 #endif
1001 #ifdef SYSTEM_MALLOC
1002 configure___ system_malloc=yes
1003 #else
1004 configure___ system_malloc=no
1005 #endif
1007 #ifdef USE_MMAP_FOR_BUFFERS
1008 configure___ use_mmap_for_buffers=yes
1009 #else
1010 configure___ use_mmap_for_buffers=no
1011 #endif
1013 #ifndef C_DEBUG_SWITCH
1014 #define C_DEBUG_SWITCH -g
1015 #endif
1017 #ifndef C_OPTIMIZE_SWITCH
1018 #ifdef __GNUC__
1019 #define C_OPTIMIZE_SWITCH -O2
1020 #else
1021 #define C_OPTIMIZE_SWITCH -O
1022 #endif
1023 #endif
1025 #ifndef C_WARNINGS_SWITCH
1026 #define C_WARNINGS_SWITCH ${C_WARNINGS_SWITCH}
1027 #endif
1029 #ifndef LD_SWITCH_MACHINE
1030 #define LD_SWITCH_MACHINE
1031 #endif
1033 #ifndef LD_SWITCH_SYSTEM
1034 #define LD_SWITCH_SYSTEM
1035 #endif
1037 #ifndef LD_SWITCH_X_SITE_AUX
1038 #define LD_SWITCH_X_SITE_AUX
1039 #endif
1041 configure___ ld_switch_system=LD_SWITCH_SYSTEM
1042 configure___ ld_switch_machine=LD_SWITCH_MACHINE
1044 #ifdef THIS_IS_CONFIGURE
1046 /* Get the CFLAGS for tests in configure.  */
1047 #ifdef __GNUC__
1048 configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}'
1049 #else
1050 configure___ CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
1051 #endif
1053 #else /* not THIS_IS_CONFIGURE */
1055 /* Get the CFLAGS for real compilation.  */
1056 #ifdef __GNUC__
1057 configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH C_WARNINGS_SWITCH '${SPECIFIED_CFLAGS}'
1058 #else
1059 configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
1060 #endif
1062 #endif /* not THIS_IS_CONFIGURE */
1063 ' > ${tempcname}
1065 # The value of CPP is a quoted variable reference, so we need to do this
1066 # to get its actual value...
1067 CPP=`eval "echo $CPP"`
1068 [eval `${CPP} -Isrc ${tempcname} \
1069        | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
1070 if test "x$SPECIFIED_CFLAGS" = x; then
1071   eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \
1072          | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
1073 else
1074   REAL_CFLAGS="$CFLAGS"
1076 rm ${tempcname}
1078 ac_link="$ac_link $ld_switch_machine $ld_switch_system"
1080 ### Make sure subsequent tests use flags consistent with the build flags.
1082 if test x"${OVERRIDE_CPPFLAGS}" != x; then
1083   CPPFLAGS="${OVERRIDE_CPPFLAGS}"
1084 else
1085   CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
1088 dnl For AC_FUNC_GETLOADAVG, at least:
1089 AC_CONFIG_LIBOBJ_DIR(src)
1091 dnl Do this early because it can frob feature test macros for Unix-98 &c.
1092 AC_SYS_LARGEFILE
1095 ### The standard library on x86-64 GNU/Linux distributions can
1096 ### be located in either /usr/lib64 or /usr/lib.
1097 case "${canonical}" in
1098   x86_64-*-linux-gnu* )
1099     if test -d /usr/lib64; then
1100       AC_DEFINE(HAVE_X86_64_LIB64_DIR, 1,
1101         [Define to 1 if the file /usr/lib64 exists.])
1103 esac
1105 dnl This function defintion taken from Gnome 2.0
1106 dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
1107 dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
1108 dnl also defines GSTUFF_PKG_ERRORS on error
1109 AC_DEFUN([PKG_CHECK_MODULES], [
1110   succeeded=no
1112   if test -z "$PKG_CONFIG"; then
1113     AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1114   fi
1116   if test "$PKG_CONFIG" = "no" ; then
1117      ifelse([$4], , [AC_MSG_ERROR([
1118       *** 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])
1119   else
1120      PKG_CONFIG_MIN_VERSION=0.9.0
1121      if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
1122         AC_MSG_CHECKING(for $2)
1124         if $PKG_CONFIG --exists "$2" 2>&AS_MESSAGE_LOG_FD; then
1125             AC_MSG_RESULT(yes)
1126             succeeded=yes
1128             AC_MSG_CHECKING($1_CFLAGS)
1129             $1_CFLAGS=`$PKG_CONFIG --cflags "$2"|sed -e 's,///*,/,g'`
1130             AC_MSG_RESULT($$1_CFLAGS)
1132             AC_MSG_CHECKING($1_LIBS)
1133             $1_LIBS=`$PKG_CONFIG --libs "$2"|sed -e 's,///*,/,g'`
1134             AC_MSG_RESULT($$1_LIBS)
1135         else
1136             AC_MSG_RESULT(no)
1137             $1_CFLAGS=""
1138             $1_LIBS=""
1139             ## If we have a custom action on failure, don't print errors, but
1140             ## do set a variable so people can do so.
1141             $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
1142             ifelse([$4], ,echo $$1_PKG_ERRORS,)
1143         fi
1145         AC_SUBST($1_CFLAGS)
1146         AC_SUBST($1_LIBS)
1147      else
1148         echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
1149         echo "*** See http://www.freedesktop.org/software/pkgconfig"
1150      fi
1151   fi
1153   if test $succeeded = yes; then
1154      ifelse([$3], , :, [$3])
1155   else
1156      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])
1157   fi
1161 if test "${with_sound}" != "no"; then
1162   # Sound support for GNU/Linux and the free BSDs.
1163   AC_CHECK_HEADERS(machine/soundcard.h sys/soundcard.h soundcard.h)
1164   # Emulation library used on NetBSD.
1165   AC_CHECK_LIB(ossaudio, _oss_ioctl, LIBSOUND=-lossaudio, LIBSOUND=)
1166   AC_SUBST(LIBSOUND)
1168   ALSA_REQUIRED=1.0.0
1169   ALSA_MODULES="alsa >= $ALSA_REQUIRED"
1170   dnl Check if --with-pkg-config-prog has been given.
1171   if test "X${with_pkg_config_prog}" != X; then
1172     PKG_CONFIG="${with_pkg_config_prog}"
1173   fi
1174   PKG_CHECK_MODULES(ALSA, $ALSA_MODULES, HAVE_ALSA=yes, HAVE_ALSA=no)
1175   if test $HAVE_ALSA = yes; then
1176     SAVE_CFLAGS="$CFLAGS"
1177     SAVE_LDFLAGS="$LDFLAGS"
1178     CFLAGS="$ALSA_CFLAGS $CFLAGS"
1179     LDFLAGS="$ALSA_LIBS $LDFLAGS"
1180     AC_TRY_COMPILE([#include <asoundlib.h>], [snd_lib_error_set_handler (0);],
1181                     emacs_alsa_normal=yes,
1182                     emacs_alsa_normal=no)
1183     if test "$emacs_alsa_normal" != yes; then
1184       AC_TRY_COMPILE([#include <alsa/asoundlib.h>],
1185                      [snd_lib_error_set_handler (0);],
1186                      emacs_alsa_subdir=yes,
1187                      emacs_alsa_subdir=no)
1188       if test "$emacs_alsa_subdir" != yes; then
1189         AC_MSG_ERROR([pkg-config found alsa, but it does not compile.  See config.log for error messages.])
1190       fi
1191       ALSA_CFLAGS="$ALSA_CFLAGS -DALSA_SUBDIR_INCLUDE"
1192     fi
1194     CFLAGS="$SAVE_CFLAGS"
1195     LDFLAGS="$SAVE_LDFLAGS"
1196     LIBSOUND="$LIBSOUND $ALSA_LIBS"
1197     CFLAGS_SOUND="$CFLAGS_SOUND $ALSA_CFLAGS"
1198     AC_DEFINE(HAVE_ALSA, 1, [Define to 1 if ALSA is available.])
1199   fi
1200   AC_SUBST(CFLAGS_SOUND)
1203 dnl checks for header files
1204 AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \
1205   linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \
1206   termcap.h stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \
1207   sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \
1208   sys/utsname.h pwd.h)
1210 AC_MSG_CHECKING(if personality LINUX32 can be set)
1211 AC_TRY_COMPILE([#include <sys/personality.h>], [personality (PER_LINUX32)],
1212                emacs_cv_personality_linux32=yes,
1213                emacs_cv_personality_linux32=no)
1214 AC_MSG_RESULT($emacs_cv_personality_linux32)
1216 if test $emacs_cv_personality_linux32 = yes; then
1217   AC_DEFINE(HAVE_PERSONALITY_LINUX32, 1,
1218             [Define to 1 if personality LINUX32 can be set.])
1221 dnl On Solaris 8 there's a compilation warning for term.h because
1222 dnl it doesn't define `bool'.
1223 AC_CHECK_HEADERS(term.h, , , -)
1224 AC_HEADER_STDC
1225 AC_HEADER_TIME
1226 AC_CHECK_DECLS([sys_siglist])
1227 if test $ac_cv_have_decl_sys_siglist != yes; then
1228   # For Tru64, at least:
1229   AC_CHECK_DECLS([__sys_siglist])
1230   if test $ac_cv_have_decl___sys_siglist = yes; then
1231     AC_DEFINE(sys_siglist, __sys_siglist,
1232               [Define to any substitute for sys_siglist.])
1233   fi
1235 AC_HEADER_SYS_WAIT
1237 dnl Some systems have utime.h but don't declare the struct anyplace.
1238 AC_CACHE_CHECK(for struct utimbuf, emacs_cv_struct_utimbuf,
1239 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
1240 #include <sys/time.h>
1241 #include <time.h>
1242 #else
1243 #ifdef HAVE_SYS_TIME_H
1244 #include <sys/time.h>
1245 #else
1246 #include <time.h>
1247 #endif
1248 #endif
1249 #ifdef HAVE_UTIME_H
1250 #include <utime.h>
1251 #endif], [static struct utimbuf x; x.actime = x.modtime;],
1252   emacs_cv_struct_utimbuf=yes, emacs_cv_struct_utimbuf=no))
1253 if test $emacs_cv_struct_utimbuf = yes; then
1254   AC_DEFINE(HAVE_STRUCT_UTIMBUF, 1, [Define to 1 if `struct utimbuf' is declared by <utime.h>.])
1257 dnl checks for typedefs
1258 AC_TYPE_SIGNAL
1260 dnl Check for speed_t typedef.
1261 AC_CACHE_CHECK(for speed_t, emacs_cv_speed_t,
1262   [AC_TRY_COMPILE([#include <termios.h>], [speed_t x = 1;],
1263     emacs_cv_speed_t=yes, emacs_cv_speed_t=no)])
1264 if test $emacs_cv_speed_t = yes; then
1265   AC_DEFINE(HAVE_SPEED_T, 1,
1266            [Define to 1 if `speed_t' is declared by <termios.h>.])
1269 AC_CACHE_CHECK(for struct timeval, emacs_cv_struct_timeval,
1270 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
1271 #include <sys/time.h>
1272 #include <time.h>
1273 #else
1274 #ifdef HAVE_SYS_TIME_H
1275 #include <sys/time.h>
1276 #else
1277 #include <time.h>
1278 #endif
1279 #endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
1280   emacs_cv_struct_timeval=yes, emacs_cv_struct_timeval=no))
1281 HAVE_TIMEVAL=$emacs_cv_struct_timeval
1282 if test $emacs_cv_struct_timeval = yes; then
1283   AC_DEFINE(HAVE_TIMEVAL, 1, [Define to 1 if `struct timeval' is declared by <sys/time.h>.])
1286 AC_CACHE_CHECK(for struct exception, emacs_cv_struct_exception,
1287 AC_TRY_COMPILE([#include <math.h>],
1288 [static struct exception x; x.arg1 = x.arg2 = x.retval; x.name = ""; x.type = 1;],
1289   emacs_cv_struct_exception=yes, emacs_cv_struct_exception=no))
1290 HAVE_EXCEPTION=$emacs_cv_struct_exception
1291 if test $emacs_cv_struct_exception != yes; then
1292   AC_DEFINE(NO_MATHERR, 1, [Define to 1 if you don't have struct exception in math.h.])
1295 AC_CHECK_HEADERS(sys/socket.h)
1296 AC_CHECK_HEADERS(net/if.h, , , [AC_INCLUDES_DEFAULT
1297 #if HAVE_SYS_SOCKET_H
1298 #include <sys/socket.h>
1299 #endif])
1301 dnl checks for structure members
1302 AC_STRUCT_TM
1303 AC_STRUCT_TIMEZONE
1304 AC_CHECK_MEMBER(struct tm.tm_gmtoff,
1305                 [AC_DEFINE(HAVE_TM_GMTOFF, 1,
1306                            [Define to 1 if `tm_gmtoff' is member of `struct tm'.])],,
1307                 [#include <time.h>])
1308 AC_CHECK_MEMBERS([struct ifreq.ifr_flags, struct ifreq.ifr_hwaddr,
1309                   struct ifreq.ifr_netmask, struct ifreq.ifr_broadaddr,
1310                   struct ifreq.ifr_addr], , ,
1311                  [AC_INCLUDES_DEFAULT
1312 #if HAVE_SYS_SOCKET_H
1313 #include <sys/socket.h>
1314 #endif
1315 #if HAVE_NET_IF_H
1316 #include <net/if.h>
1317 #endif])
1319 dnl checks for compiler characteristics
1321 dnl Testing __STDC__ to determine prototype support isn't good enough.
1322 dnl DEC C, for instance, doesn't define it with default options, and
1323 dnl is used on 64-bit systems (OSF Alphas).  Similarly for volatile
1324 dnl and void *.
1325 AC_C_PROTOTYPES
1326 AC_C_VOLATILE
1327 AC_C_CONST
1328 dnl This isn't useful because we can't turn on use of `inline' unless
1329 dnl the compiler groks `extern inline'.
1330 dnl AC_C_INLINE
1331 AC_CACHE_CHECK([for void * support], emacs_cv_void_star,
1332   [AC_TRY_COMPILE(, [void * foo;],
1333                    emacs_cv_void_star=yes, emacs_cv_void_star=no)])
1334 if test $emacs_cv_void_star = yes; then
1335   AC_DEFINE(POINTER_TYPE, void)
1336 else
1337   AC_DEFINE(POINTER_TYPE, char)
1339 AH_TEMPLATE(POINTER_TYPE,
1340             [Define as `void' if your compiler accepts `void *'; otherwise
1341              define as `char'.])dnl
1345 dnl This could be used for targets which can have both byte sexes.
1346 dnl We could presumably replace the hardwired WORDS_BIG_ENDIAN generally.
1347 dnl AC_C_BIGENDIAN
1349 dnl check for Make feature
1350 AC_PROG_MAKE_SET
1352 dnl checks for operating system services
1353 AC_SYS_LONG_FILE_NAMES
1355 #### Choose a window system.
1357 AC_PATH_X
1358 if test "$no_x" = yes; then
1359   window_system=none
1360 else
1361   window_system=x11
1364 if test "${x_libraries}" != NONE; then
1365   if test -n "${x_libraries}"; then
1366     LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
1367     LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
1368   fi
1369   x_default_search_path=""
1370   x_search_path=${x_libraries}
1371   if test -z "${x_search_path}"; then
1372     x_search_path=/usr/lib
1373   fi
1374   for x_library in `echo ${x_search_path}: | \
1375                     sed -e "s/:/ /g" -e p -e "s:/lib[[^ /]]* :/share :g"`; do
1376     x_search_path="\
1377 ${x_library}/X11/%L/%T/%N%C%S:\
1378 ${x_library}/X11/%l/%T/%N%C%S:\
1379 ${x_library}/X11/%T/%N%C%S:\
1380 ${x_library}/X11/%L/%T/%N%S:\
1381 ${x_library}/X11/%l/%T/%N%S:\
1382 ${x_library}/X11/%T/%N%S"
1383     if test x"${x_default_search_path}" = x; then
1384       x_default_search_path=${x_search_path}
1385     else
1386       x_default_search_path="${x_search_path}:${x_default_search_path}"
1387     fi
1388   done
1390 if test "${x_includes}" != NONE && test -n "${x_includes}"; then
1391   C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"`
1394 if test x"${x_includes}" = x; then
1395   bitmapdir=/usr/include/X11/bitmaps
1396 else
1397   # accumulate include directories that have X11 bitmap subdirectories
1398   bmd_acc="dummyval"
1399   for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do
1400     if test -d "${bmd}/X11/bitmaps"; then
1401       bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps"
1402     fi
1403     if test -d "${bmd}/bitmaps"; then
1404       bmd_acc="${bmd_acc}:${bmd}/bitmaps"
1405     fi
1406   done
1407   if test ${bmd_acc} != "dummyval"; then
1408     bitmapdir=`echo ${bmd_acc} | sed -e "s/^dummyval://"`
1409   fi
1412 HAVE_CARBON=no
1413 if test "${with_carbon}" != no; then
1414   AC_CHECK_HEADER(Carbon/Carbon.h, HAVE_CARBON=yes)
1416 if test "${window_system}" = x11 && test "${HAVE_CARBON}" = yes; then
1417   if test "${with_carbon+set}" != set \
1418      && test "${carbon_appdir_x+set}" != set; then
1419     for var in with_x with_x_toolkit with_gtk with_xim \
1420                with_xpm with_jpeg with_tiff with_gif with_png; do
1421       if eval test \"\${$var+set}\" = set; then
1422         HAVE_CARBON=no
1423         break
1424       fi
1425     done
1426   fi
1428 if test "${HAVE_CARBON}" = yes; then
1429   window_system=mac
1432 case "${window_system}" in
1433   x11 )
1434     HAVE_X_WINDOWS=yes
1435     HAVE_X11=yes
1436     case "${with_x_toolkit}" in
1437       athena | lucid ) USE_X_TOOLKIT=LUCID ;;
1438       motif ) USE_X_TOOLKIT=MOTIF ;;
1439       gtk ) with_gtk=yes
1440 dnl Dont set this for GTK.  A lot of tests below assumes Xt when
1441 dnl USE_X_TOOLKIT is set.
1442             USE_X_TOOLKIT=none ;;
1443       no ) USE_X_TOOLKIT=none ;;
1444 dnl If user did not say whether to use a toolkit, make this decision later:
1445 dnl use the toolkit if we have gtk, or X11R5 or newer.
1446       * )
1447           if test x"$with_gtk" = xyes; then
1448              USE_X_TOOLKIT=none
1449           else
1450              USE_X_TOOLKIT=maybe
1451           fi
1452           ;;
1453     esac
1454   ;;
1455   mac | none )
1456     HAVE_X_WINDOWS=no
1457     HAVE_X11=no
1458     USE_X_TOOLKIT=none
1459   ;;
1460 esac
1462 if test "$window_system" = none && test "X$with_x" != "Xno"; then
1463    AC_CHECK_PROG(HAVE_XSERVER, X, true, false)
1464    if test "$HAVE_XSERVER" = true ||
1465       test -n "$DISPLAY" ||
1466       test "`echo /usr/lib/libX11.*`" != "/usr/lib/libX11.*"; then
1467         AC_MSG_ERROR([You seem to be running X, but no X development libraries
1468 were found.  You should install the relevant development files for X
1469 and for the toolkit you want, such as Gtk+, Lesstif or Motif.  Also make
1470 sure you have development files for image handling, i.e.
1471 tiff, gif, jpeg, png and xpm.
1472 If you are sure you want Emacs compiled without X window support, pass
1473   --without-x
1474 to configure.])
1475    fi
1478 ### If we're using X11, we should use the X menu package.
1479 HAVE_MENUS=no
1480 case ${HAVE_X11} in
1481   yes ) HAVE_MENUS=yes ;;
1482 esac
1484 if test "${opsys}" = "hpux9"; then
1485   case "${x_libraries}" in
1486     *X11R4* )
1487       opsysfile="s/hpux9-x11r4.h"
1488       ;;
1489   esac
1492 if test "${opsys}" = "hpux9shr"; then
1493   case "${x_libraries}" in
1494     *X11R4* )
1495       opsysfile="s/hpux9shxr4.h"
1496       ;;
1497   esac
1500 ### Compute the unexec source name from the object name.
1501 UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`"
1503 # Do the opsystem or machine files prohibit the use of the GNU malloc?
1504 # Assume not, until told otherwise.
1505 GNU_MALLOC=yes
1506 doug_lea_malloc=yes
1507 AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no)
1508 AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
1509 AC_CACHE_CHECK(whether __after_morecore_hook exists,
1510                emacs_cv_var___after_morecore_hook,
1511 [AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
1512   emacs_cv_var___after_morecore_hook=yes,
1513   emacs_cv_var___after_morecore_hook=no)])
1514 if test $emacs_cv_var___after_morecore_hook = no; then
1515   doug_lea_malloc=no
1517 if test "${system_malloc}" = "yes"; then
1518   GNU_MALLOC=no
1519   GNU_MALLOC_reason="
1520     (The GNU allocators don't work with this system configuration.)"
1522 if test "$doug_lea_malloc" = "yes" ; then
1523   if test "$GNU_MALLOC" = yes ; then
1524     GNU_MALLOC_reason="
1525       (Using Doug Lea's new malloc from the GNU C Library.)"
1526   fi
1527   AC_DEFINE(DOUG_LEA_MALLOC, 1,
1528             [Define to 1 if you are using the GNU C Library.])
1531 if test x"${REL_ALLOC}" = x; then
1532   REL_ALLOC=${GNU_MALLOC}
1535 dnl For now, need to use an explicit `#define USE_MMAP_FOR_BUFFERS 1'
1536 dnl the system configuration file (s/*.h) to turn the use of mmap
1537 dnl in the relocating allocator on.
1539 AC_FUNC_MMAP
1540 if test $use_mmap_for_buffers = yes; then
1541   REL_ALLOC=no
1544 LIBS="$libsrc_libs $LIBS"
1546 dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
1547 dnl and also adds -ldnet to LIBS, which Autoconf uses for checks.
1548 AC_CHECK_LIB(dnet, dnet_ntoa)
1549 dnl This causes -lresolv to get used in subsequent tests,
1550 dnl which causes failures on some systems such as HPUX 9.
1551 dnl AC_CHECK_LIB(resolv, gethostbyname)
1553 dnl FIXME replace main with a function we actually want from this library.
1554 AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
1556 AC_CHECK_LIB(pthreads, cma_open)
1558 AC_MSG_CHECKING(for XFree86 in /usr/X386)
1559 if test -d /usr/X386/include; then
1560   HAVE_XFREE386=yes
1561   : ${C_SWITCH_X_SITE="-I/usr/X386/include"}
1562 else
1563   HAVE_XFREE386=no
1565 AC_MSG_RESULT($HAVE_XFREE386)
1567 dnl Check for need for bigtoc support on IBM AIX
1569 case ${host_os} in
1570 aix*)
1571   AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
1572     case $GCC in
1573     yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
1574     *) gdb_cv_bigtoc=-bbigtoc ;;
1575     esac
1577     LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
1578     AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
1579   ])
1580   ;;
1581 esac
1583 # Change CFLAGS and CPPFLAGS temporarily so that C_SWITCH_X_SITE gets
1584 # used for the tests that follow.  We set them back to REAL_CFLAGS and
1585 # REAL_CPPFLAGS later on.
1587 REAL_CPPFLAGS="$CPPFLAGS"
1589 if test "${HAVE_X11}" = "yes"; then
1590   DEFS="$C_SWITCH_X_SITE $DEFS"
1591   LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE"
1592   LIBS="$LIBX $LIBS"
1593   CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
1594   CPPFLAGS="$C_SWITCH_X_SITE $CPPFLAGS"
1596   # On Solaris, arrange for LD_RUN_PATH to point to the X libraries for tests.
1597   # This is handled by LD_SWITCH_X_SITE_AUX during the real build,
1598   # but it's more convenient here to set LD_RUN_PATH
1599   # since this also works on hosts that don't understand LD_SWITCH_X_SITE_AUX.
1600   if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
1601     LD_RUN_PATH=$x_libraries${LD_RUN_PATH+:}$LD_RUN_PATH
1602     export LD_RUN_PATH
1603   fi
1605   if test "${opsys}" = "gnu-linux"; then
1606     AC_MSG_CHECKING(whether X on GNU/Linux needs -b to link)
1607     AC_TRY_LINK([],
1608      [XOpenDisplay ("foo");],
1609      [xlinux_first_failure=no],
1610      [xlinux_first_failure=yes])
1611     if test "${xlinux_first_failure}" = "yes"; then
1612       OLD_LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE"
1613       OLD_C_SWITCH_X_SITE="$C_SWITCH_X_SITE"
1614       OLD_CPPFLAGS="$CPPFLAGS"
1615       OLD_LIBS="$LIBS"
1616       LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout"
1617       C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout"
1618       CPPFLAGS="$CPPFLAGS -b i486-linuxaout"
1619       LIBS="$LIBS -b i486-linuxaout"
1620       AC_TRY_LINK([],
1621        [XOpenDisplay ("foo");],
1622        [xlinux_second_failure=no],
1623        [xlinux_second_failure=yes])
1624       if test "${xlinux_second_failure}" = "yes"; then
1625         # If we get the same failure with -b, there is no use adding -b.
1626         # So take it out.  This plays safe.
1627         LD_SWITCH_X_SITE="$OLD_LD_SWITCH_X_SITE"
1628         C_SWITCH_X_SITE="$OLD_C_SWITCH_X_SITE"
1629         CPPFLAGS="$OLD_CPPFLAGS"
1630         LIBS="$OLD_LIBS"
1631         AC_MSG_RESULT(no)
1632       else
1633         AC_MSG_RESULT(yes)
1634       fi
1635     else
1636       AC_MSG_RESULT(no)
1637     fi
1638   fi
1640   # Reportedly, some broken Solaris systems have XKBlib.h but are missing
1641   # header files included from there.
1642   AC_MSG_CHECKING(for Xkb)
1643   AC_TRY_LINK([#include <X11/Xlib.h>
1644 #include <X11/XKBlib.h>],
1645         [XkbDescPtr kb = XkbGetKeyboard (0, XkbAllComponentsMask, XkbUseCoreKbd);],
1646         emacs_xkb=yes, emacs_xkb=no)
1647   AC_MSG_RESULT($emacs_xkb)
1648   if test $emacs_xkb = yes; then
1649     AC_DEFINE(HAVE_XKBGETKEYBOARD, 1, [Define to 1 if you have the XkbGetKeyboard function.])
1650   fi
1652   AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
1653 XScreenNumberOfScreen XSetWMProtocols)
1656 if test "${window_system}" = "x11"; then
1657   AC_MSG_CHECKING(X11 version 6)
1658   AC_CACHE_VAL(emacs_cv_x11_version_6,
1659   [AC_TRY_LINK([#include <X11/Xlib.h>],
1660 [#if XlibSpecificationRelease < 6
1661 fail;
1662 #endif
1663 ], emacs_cv_x11_version_6=yes, emacs_cv_x11_version_6=no)])
1664   if test $emacs_cv_x11_version_6 = yes; then
1665     AC_MSG_RESULT(6 or newer)
1666     AC_DEFINE(HAVE_X11R6, 1,
1667               [Define to 1 if you have the X11R6 or newer version of Xlib.])
1668   else
1669     AC_MSG_RESULT(before 6)
1670   fi
1674 ### Use -lrsvg-2 if available, unless `--with-rsvg=no' is specified.
1675 HAVE_RSVG=no
1676 if test "${HAVE_X11}" = "yes" || test "${HAVE_CARBON}" = "yes"; then
1677   if test "${with_rsvg}" != "no"; then
1678     dnl Check if `--with-pkg-config-prog' has been given.
1679     if test "X${with_pkg_config_prog}" != X; then
1680       PKG_CONFIG="${with_pkg_config_prog}"
1681     fi
1683     RSVG_REQUIRED=2.0.0
1684     RSVG_MODULE="librsvg-2.0 >= $RSVG_REQUIRED"
1686     PKG_CHECK_MODULES(RSVG, $RSVG_MODULE, :, :)
1687     AC_SUBST(RSVG_CFLAGS)
1688     AC_SUBST(RSVG_LIBS)
1690     if test ".${RSVG_CFLAGS}" != "."; then
1691       HAVE_RSVG=yes
1692       AC_DEFINE(HAVE_RSVG, 1, [Define to 1 if using librsvg.])
1693       CFLAGS="$CFLAGS $RSVG_CFLAGS"
1694       LIBS="$RSVG_LIBS $LIBS"
1695     fi
1696   fi
1700 HAVE_GTK=no
1701 if test "${with_gtk}" = "yes" && test "$USE_X_TOOLKIT" = "gtk"; then
1702   USE_X_TOOLKIT=none
1704 if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk" || \
1705  test "$USE_X_TOOLKIT" = "maybe"; then
1706   if test "$USE_X_TOOLKIT" != "none" && test "$USE_X_TOOLKIT" != "maybe"; then
1707     AC_MSG_ERROR([Conflicting options, --with-gtk is incompatible with --with-x-toolkit=${with_x_toolkit}]);
1708   fi
1709   GLIB_REQUIRED=2.6
1710   GTK_REQUIRED=2.6
1711   GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
1713   dnl Check if --with-pkg-config-prog has been given.
1714   if test "X${with_pkg_config_prog}" != X; then
1715     PKG_CONFIG="${with_pkg_config_prog}"
1716   fi
1717   dnl Checks for libraries.
1718   PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
1719   if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
1720      AC_MSG_ERROR($GTK_PKG_ERRORS)
1721   fi
1725 if test x"$pkg_check_gtk" = xyes; then
1727   AC_SUBST(GTK_CFLAGS)
1728   AC_SUBST(GTK_LIBS)
1729   C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS"
1730   CFLAGS="$CFLAGS $GTK_CFLAGS"
1731   LIBS="$GTK_LIBS $LIBS"
1732   dnl Try to compile a simple GTK program.
1733   GTK_COMPILES=no
1734   AC_CHECK_FUNCS(gtk_main, GTK_COMPILES=yes)
1735   if test "${GTK_COMPILES}" != "yes"; then
1736     if test "$USE_X_TOOLKIT" != "maybe"; then
1737       AC_MSG_ERROR([Gtk+ wanted, but it does not compile, see config.log.  Maybe some x11-devel files missing?]);
1738     fi
1739   else
1740     HAVE_GTK=yes
1741     AC_DEFINE(HAVE_GTK, 1, [Define to 1 if using GTK.])
1742     USE_X_TOOLKIT=none
1743   fi
1748 if test "${HAVE_GTK}" = "yes"; then
1750   dnl  GTK scrollbars resemble toolkit scrollbars a lot, so to avoid
1751   dnl  a lot if #ifdef:s, say we have toolkit scrollbars.
1752   if test "$with_toolkit_scroll_bars" != no; then
1753     with_toolkit_scroll_bars=yes
1754   fi
1756   dnl  Check if we can use multiple displays with this GTK version.
1757   dnl  If gdk_display_open exists, assume all others are there also.
1758   HAVE_GTK_MULTIDISPLAY=no
1759   AC_CHECK_FUNCS(gdk_display_open, HAVE_GTK_MULTIDISPLAY=yes)
1760   if test "${HAVE_GTK_MULTIDISPLAY}" = "yes"; then
1761     AC_DEFINE(HAVE_GTK_MULTIDISPLAY, 1,
1762               [Define to 1 if GTK can handle more than one display.])
1763   fi
1765   dnl  Check if we have the old file selection dialog.
1766   dnl  If gdk_display_open exists, assume all others are there also.
1767   HAVE_GTK_FILE_SELECTION=no
1768   AC_CHECK_FUNCS(gtk_file_selection_new, HAVE_GTK_FILE_SELECTION=yes)
1770   dnl  Check if we have the new file chooser dialog
1771   dnl  If gdk_display_open exists, assume all others are there also.
1772   HAVE_GTK_FILE_CHOOSER=no
1773   AC_CHECK_FUNCS(gtk_file_chooser_dialog_new, HAVE_GTK_FILE_CHOOSER=yes)
1775   if test "$HAVE_GTK_FILE_SELECTION" = yes \
1776      && test "$HAVE_GTK_FILE_CHOOSER" = yes;  then
1777     AC_DEFINE(HAVE_GTK_FILE_BOTH, 1,
1778               [Define to 1 if GTK has both file selection and chooser dialog.])
1779   fi
1781   dnl Check if pthreads are available.  Emacs only needs this when using
1782   dnl gtk_file_chooser under Gnome.
1783   if test "$HAVE_GTK_FILE_CHOOSER" = yes; then
1784     HAVE_GTK_AND_PTHREAD=no
1785     AC_CHECK_HEADERS(pthread.h)
1786     if test "$ac_cv_header_pthread_h"; then
1787       AC_CHECK_LIB(pthread, pthread_self, HAVE_GTK_AND_PTHREAD=yes)
1788     fi
1789     if test "$HAVE_GTK_AND_PTHREAD" = yes; then
1790       case "${canonical}" in
1791         *-hpux*) ;;
1792         *) GTK_LIBS="$GTK_LIBS -lpthread" ;;
1793       esac
1794       AC_DEFINE(HAVE_GTK_AND_PTHREAD, 1,
1795                [Define to 1 if you have GTK and pthread (-lpthread).])
1796     fi
1797   fi
1800 dnl D-Bus has been tested under GNU/Linux only.  Must be adapted for
1801 dnl other platforms.  Support for higher D-Bus versions but 1.0 is
1802 dnl also not configured.
1803 HAVE_DBUS=no
1804 if test "${with_dbus}" = "yes"; then
1805    PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0, HAVE_DBUS=yes, HAVE_DBUS=no)
1806    if test "$HAVE_DBUS" = yes; then
1807       AC_DEFINE(HAVE_DBUS, 1, [Define to 1 if using D-Bus.])
1808    fi
1811 ### Link with -lXft if available to work around a bug.
1812 HAVE_XFT=maybe
1813 if test "${HAVE_GTK}" = "yes"; then
1814   dnl Check if --with-pkg-config-prog has been given.
1815   if test "X${with_pkg_config_prog}" != X; then
1816     PKG_CONFIG="${with_pkg_config_prog}"
1817   fi
1819   PKG_CHECK_MODULES(XFT, xft >= 0.13.0, , HAVE_XFT=no)
1820   if test "$HAVE_XFT" != no; then
1821     OLD_CFLAGS="$CPPFLAGS"
1822     OLD_CPPFLAGS="$CFLAGS"
1823     OLD_LIBS="$LIBS"
1824     CPPFLAGS="$CPPFLAGS $XFT_CFLAGS"
1825     CFLAGS="$CFLAGS $XFT_CFLAGS"
1826     LIBS="$XFT_LIBS $LIBS"
1827     AC_CHECK_HEADER(X11/Xft/Xft.h,
1828       [AC_CHECK_LIB(Xft, XftFontOpen, HAVE_XFT=yes, , $XFT_LIBS)])
1830     if test "${HAVE_XFT}" = "yes"; then
1831       AC_DEFINE(HAVE_XFT, 1, [Define to 1 if you have the Xft library.])
1832       AC_SUBST(XFT_LIBS)
1833       C_SWITCH_X_SITE="$C_SWITCH_X_SITE $XFT_CFLAGS"
1834     else
1835       CFLAGS="$OLD_CPPFLAGS"
1836       CFLAGS="$OLD_CFLAGS"
1837       LIBS="$OLD_LIBS"
1838     fi
1839   fi
1842 dnl Do not put whitespace before the #include statements below.
1843 dnl Older compilers (eg sunos4 cc) choke on it.
1844 HAVE_XAW3D=no
1845 if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then
1846   if test "$with_xaw3d" != no; then
1847     AC_MSG_CHECKING(for xaw3d)
1848     AC_CACHE_VAL(emacs_cv_xaw3d,
1849     [AC_TRY_LINK([
1850 #include <X11/Intrinsic.h>
1851 #include <X11/Xaw3d/Simple.h>],
1852       [],
1853       emacs_cv_xaw3d=yes,
1854       emacs_cv_xaw3d=no)])
1855   else
1856     emacs_cv_xaw3d=no
1857   fi
1858   if test $emacs_cv_xaw3d = yes; then
1859     AC_MSG_RESULT([yes; using Lucid toolkit])
1860     USE_X_TOOLKIT=LUCID
1861     HAVE_XAW3D=yes
1862     AC_DEFINE(HAVE_XAW3D, 1,
1863               [Define to 1 if you have the Xaw3d library (-lXaw3d).])
1864   else
1865     AC_MSG_RESULT(no)
1866     AC_MSG_CHECKING(for libXaw)
1867     AC_CACHE_VAL(emacs_cv_xaw,
1868     [AC_TRY_LINK([
1869 #include <X11/Intrinsic.h>
1870 #include <X11/Xaw/Simple.h>],
1871       [],
1872       emacs_cv_xaw=yes,
1873       emacs_cv_xaw=no)])
1874     if test $emacs_cv_xaw = yes; then
1875       AC_MSG_RESULT([yes; using Lucid toolkit])
1876       USE_X_TOOLKIT=LUCID
1877     elif test x"${USE_X_TOOLKIT}" = xLUCID; then
1878       AC_MSG_ERROR([Lucid toolkit requires X11/Xaw include files])
1879     else
1880       AC_MSG_RESULT([no; do not use toolkit by default])
1881       USE_X_TOOLKIT=none
1882     fi
1883   fi
1886 X_TOOLKIT_TYPE=$USE_X_TOOLKIT
1888 if test "${USE_X_TOOLKIT}" != "none"; then
1889   AC_MSG_CHECKING(X11 toolkit version)
1890   AC_CACHE_VAL(emacs_cv_x11_toolkit_version_6,
1891   [AC_TRY_LINK([#include <X11/Intrinsic.h>],
1892 [#if XtSpecificationRelease < 6
1893 fail;
1894 #endif
1895 ], emacs_cv_x11_toolkit_version_6=yes, emacs_cv_x11_toolkit_version_6=no)])
1896   HAVE_X11XTR6=$emacs_cv_x11_toolkit_version_6
1897   if test $emacs_cv_x11_toolkit_version_6 = yes; then
1898     AC_MSG_RESULT(6 or newer)
1899     AC_DEFINE(HAVE_X11XTR6, 1,
1900               [Define to 1 if you have the X11R6 or newer version of Xt.])
1901   else
1902     AC_MSG_RESULT(before 6)
1903   fi
1905 dnl If using toolkit, check whether libXmu.a exists.
1906 dnl tranle@intellicorp.com says libXmu.a can need XtMalloc in libXt.a to link.
1907   OLDLIBS="$LIBS"
1908   if test x$HAVE_X11XTR6 = xyes; then
1909     LIBS="-lXt -lSM -lICE $LIBS"
1910   else
1911     LIBS="-lXt $LIBS"
1912   fi
1913   AC_CHECK_LIB(Xmu, XmuConvertStandardSelection)
1914   test $ac_cv_lib_Xmu_XmuConvertStandardSelection = no && LIBS="$OLDLIBS"
1917 # On Irix 6.5, at least, we need XShapeQueryExtension from -lXext for Xaw3D.
1918 if test "${HAVE_X11}" = "yes"; then
1919   if test "${USE_X_TOOLKIT}" != "none"; then
1920     AC_CHECK_LIB(Xext, XShapeQueryExtension)
1921   fi
1924 if test "${USE_X_TOOLKIT}" = "MOTIF"; then
1925   AC_CACHE_CHECK(for Motif version 2.1, emacs_cv_motif_version_2_1,
1926   [AC_TRY_COMPILE([#include <Xm/Xm.h>],
1927     [#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1)
1928 int x = 5;
1929 #else
1930 Motif version prior to 2.1.
1931 #endif],
1932     emacs_cv_motif_version_2_1=yes, emacs_cv_motif_version_2_1=no)])
1933   HAVE_MOTIF_2_1=$emacs_cv_motif_version_2_1
1934   if test $emacs_cv_motif_version_2_1 = yes; then
1935     HAVE_LIBXP=no
1936     AC_DEFINE(HAVE_MOTIF_2_1, 1,
1937               [Define to 1 if you have Motif 2.1 or newer.])
1938     AC_CHECK_LIB(Xp, XpCreateContext, HAVE_LIBXP=yes)
1939     if test ${HAVE_LIBXP} = yes; then
1940       AC_DEFINE(HAVE_LIBXP, 1,
1941                 [Define to 1 if you have the Xp library (-lXp).])
1942     fi
1943   else
1944     AC_CACHE_CHECK(for LessTif where some systems put it, emacs_cv_lesstif,
1945     # We put this in CFLAGS temporarily to precede other -I options
1946     # that might be in CFLAGS temporarily.
1947     # We put this in CPPFLAGS where it precedes the other -I options.
1948     OLD_CPPFLAGS=$CPPFLAGS
1949     OLD_CFLAGS=$CFLAGS
1950     CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS"
1951     CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS"
1952     [AC_TRY_COMPILE([#include </usr/X11R6/LessTif/Motif1.2/include/Xm/Xm.h>],
1953       [int x = 5;],
1954       emacs_cv_lesstif=yes, emacs_cv_lesstif=no)])
1955     if test $emacs_cv_lesstif = yes; then
1956       # Make sure this -I option remains in CPPFLAGS after it is set
1957       # back to REAL_CPPFLAGS.
1958       # There is no need to change REAL_CFLAGS, because REAL_CFLAGS does not
1959       # have those other -I options anyway.  Ultimately, having this
1960       # directory ultimately in CPPFLAGS will be enough.
1961       REAL_CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $REAL_CPPFLAGS"
1962       LDFLAGS="-L/usr/X11R6/LessTif/Motif1.2/lib $LDFLAGS"
1963     else
1964       CFLAGS=$OLD_CFLAGS
1965       CPPFLAGS=$OLD_CPPFLAGS
1966     fi
1967   fi
1970 dnl Use toolkit scroll bars if configured for GTK or X toolkit and either
1971 dnl using Motif or Xaw3d is available, and unless
1972 dnl --with-toolkit-scroll-bars=no was specified.
1974 AH_TEMPLATE(USE_TOOLKIT_SCROLL_BARS,
1975             [Define to 1 if we should use toolkit scroll bars.])dnl
1976 USE_TOOLKIT_SCROLL_BARS=no
1977 if test "${with_toolkit_scroll_bars}" != "no"; then
1978   if test "${USE_X_TOOLKIT}" != "none"; then
1979     if test "${USE_X_TOOLKIT}" = "MOTIF"; then
1980       AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
1981       HAVE_XAW3D=no
1982       USE_TOOLKIT_SCROLL_BARS=yes
1983     elif test "${HAVE_XAW3D}" = "yes"; then
1984       AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
1985       USE_TOOLKIT_SCROLL_BARS=yes
1986     fi
1987   elif test "${HAVE_GTK}" = "yes"; then
1988     AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
1989     USE_TOOLKIT_SCROLL_BARS=yes
1990   elif test "${HAVE_CARBON}" = "yes"; then
1991     AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
1992     USE_TOOLKIT_SCROLL_BARS=yes
1993   fi
1996 dnl See if XIM is available.
1997 AC_TRY_COMPILE([
1998           #include <X11/Xlib.h>
1999           #include <X11/Xresource.h>],
2000          [XIMProc  callback;],
2001          [HAVE_XIM=yes
2002          AC_DEFINE(HAVE_XIM, 1, [Define to 1 if XIM is available])],
2003          HAVE_XIM=no)
2005 dnl `--with-xim' now controls only the initial value of use_xim at run time.
2007 if test "${with_xim}" != "no"; then
2008   AC_DEFINE(USE_XIM, 1,
2009             [Define to 1 if we should use XIM, if it is available.])
2013 if test "${HAVE_XIM}" != "no"; then
2014   late_CFLAGS=$CFLAGS
2015   if test "$GCC" = yes; then
2016     CFLAGS="$CFLAGS --pedantic-errors"
2017   fi
2018   AC_TRY_COMPILE([
2019 #include <X11/Xlib.h>
2020 #include <X11/Xresource.h>],
2021 [Display *display;
2022 XrmDatabase db;
2023 char *res_name;
2024 char *res_class;
2025 XIMProc  callback;
2026 XPointer *client_data;
2027 #ifndef __GNUC__
2028 /* If we're not using GCC, it's probably not XFree86, and this is
2029    probably right, but we can't use something like --pedantic-errors.  */
2030 extern Bool XRegisterIMInstantiateCallback(Display*, XrmDatabase, char*,
2031                                            char*, XIMProc, XPointer*);
2032 #endif
2033 (void)XRegisterIMInstantiateCallback(display, db, res_name, res_class, callback,
2034    client_data);],
2035     [emacs_cv_arg6_star=yes])
2036   AH_TEMPLATE(XRegisterIMInstantiateCallback_arg6,
2037          [Define to the type of the 6th arg of XRegisterIMInstantiateCallback,
2038 either XPointer or XPointer*.])dnl
2039   if test "$emacs_cv_arg6_star" = yes; then
2040     AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer*])
2041   else
2042     AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer])
2043   fi
2044   CFLAGS=$late_CFLAGS
2047 ### Use -lXpm if available, unless `--with-xpm=no'.
2048 HAVE_XPM=no
2049 if test "${HAVE_X11}" = "yes"; then
2050   if test "${with_xpm}" != "no"; then
2051     AC_CHECK_HEADER(X11/xpm.h,
2052       [AC_CHECK_LIB(Xpm, XpmReadFileToPixmap, HAVE_XPM=yes, , -lX11)])
2053     if test "${HAVE_XPM}" = "yes"; then
2054       AC_MSG_CHECKING(for XpmReturnAllocPixels preprocessor define)
2055       AC_EGREP_CPP(no_return_alloc_pixels,
2056       [#include "X11/xpm.h"
2057 #ifndef XpmReturnAllocPixels
2058 no_return_alloc_pixels
2059 #endif
2060       ], HAVE_XPM=no, HAVE_XPM=yes)
2062       if test "${HAVE_XPM}" = "yes"; then
2063         AC_MSG_RESULT(yes)
2064       else
2065         AC_MSG_RESULT(no)
2066       fi
2067     fi
2068   fi
2070   if test "${HAVE_XPM}" = "yes"; then
2071     AC_DEFINE(HAVE_XPM, 1, [Define to 1 if you have the Xpm libary (-lXpm).])
2072   fi
2075 ### Use -ljpeg if available, unless `--with-jpeg=no'.
2076 HAVE_JPEG=no
2077 if test "${HAVE_X11}" = "yes"; then
2078   if test "${with_jpeg}" != "no"; then
2079     dnl Checking for jpeglib.h can lose because of a redefinition of
2080     dnl  HAVE_STDLIB_H.
2081     AC_CHECK_HEADER(jerror.h,
2082       [AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes)])
2083   fi
2085   AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl
2086   if test "${HAVE_JPEG}" = "yes"; then
2087     AC_DEFINE(HAVE_JPEG)
2088     AC_EGREP_CPP([version= *(6[2-9]|[7-9][0-9])],
2089         [#include <jpeglib.h>
2090          version=JPEG_LIB_VERSION
2092         [AC_DEFINE(HAVE_JPEG)],
2093         [AC_MSG_WARN([libjpeg found, but not version 6b or later])
2094         HAVE_JPEG=no])
2095   fi
2098 ### Use -lpng if available, unless `--with-png=no'.
2099 HAVE_PNG=no
2100 if test "${HAVE_X11}" = "yes"; then
2101   if test "${with_png}" != "no"; then
2102     # Debian unstable as of July 2003 has multiple libpngs, and puts png.h
2103     # in /usr/include/libpng.
2104     AC_CHECK_HEADERS(png.h libpng/png.h)
2105     if test "$ac_cv_header_png_h" = yes || test "$ac_cv_header_libpng_png_h" = yes ; then
2106       AC_CHECK_LIB(png, png_get_channels, HAVE_PNG=yes, , -lz -lm)
2107     fi
2108   fi
2110   if test "${HAVE_PNG}" = "yes"; then
2111     AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library (-lpng).])
2112   fi
2115 ### Use -ltiff if available, unless `--with-tiff=no'.
2116 HAVE_TIFF=no
2117 if test "${HAVE_X11}" = "yes"; then
2118   if test "${with_tiff}" != "no"; then
2119     AC_CHECK_HEADER(tiffio.h,
2120       [tifflibs="-lz -lm"
2121       # At least one tiff package requires the jpeg library.
2122       if test "${HAVE_JPEG}" = yes; then tifflibs="-ljpeg $tifflibs"; fi
2123       AC_CHECK_LIB(tiff, TIFFGetVersion, HAVE_TIFF=yes, , $tifflibs)])
2124   fi
2126   if test "${HAVE_TIFF}" = "yes"; then
2127     AC_DEFINE(HAVE_TIFF, 1, [Define to 1 if you have the tiff library (-ltiff).])
2128   fi
2131 ### Use -lgif or -lungif if available, unless `--with-gif=no'.
2132 HAVE_GIF=no
2133 if test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no"; then
2134   AC_CHECK_HEADER(gif_lib.h,
2135 # EGifPutExtensionLast only exists from version libungif-4.1.0b1.
2136 # Earlier versions can crash Emacs.
2137     [AC_CHECK_LIB(gif, EGifPutExtensionLast, HAVE_GIF=yes, try_libungif=yes)])
2139   if test "$HAVE_GIF" = yes; then
2140       ac_gif_lib_name="-lgif"
2141   fi
2143 # If gif_lib.h but no libgif, try libungif.
2144   if test x"$try_libungif" = xyes; then
2145     AC_CHECK_LIB(ungif, EGifPutExtensionLast, HAVE_GIF=yes)
2147     if test "$HAVE_GIF" = yes; then
2148       AC_DEFINE(LIBGIF, -lungif, [Compiler option to link with the gif library (if not -lgif).])
2149       ac_gif_lib_name="-lungif"
2150     fi
2151   fi
2153   if test "${HAVE_GIF}" = "yes"; then
2154     AC_DEFINE(HAVE_GIF, 1, [Define to 1 if you have a gif library (default -lgif; otherwise specify with LIBGIF).])
2155   fi
2158 dnl Check for required libraries.
2159 if test "${HAVE_X11}" = "yes"; then
2160   MISSING=""
2161   WITH_NO=""
2162   test "${with_xpm}" != "no" && test "${HAVE_XPM}" != "yes" &&
2163     MISSING="libXpm" && WITH_NO="--with-xpm=no"
2164   test "${with_jpeg}" != "no" && test "${HAVE_JPEG}" != "yes" &&
2165     MISSING="$MISSING libjpeg" && WITH_NO="$WITH_NO --with-jpeg=no"
2166   test "${with_png}" != "no" && test "${HAVE_PNG}" != "yes" &&
2167     MISSING="$MISSING libpng" && WITH_NO="$WITH_NO --with-png=no"
2168   test "${with_gif}" != "no" && test "${HAVE_GIF}" != "yes" &&
2169     MISSING="$MISSING libgif/libungif" && WITH_NO="$WITH_NO --with-gif=no"
2170   test "${with_tiff}" != "no" && test "${HAVE_TIFF}" != "yes" &&
2171     MISSING="$MISSING libtiff" && WITH_NO="$WITH_NO --with-tiff=no"
2173   if test "X${MISSING}" != X; then
2174     AC_MSG_ERROR([The following required libraries were not found:
2175     $MISSING
2176 Maybe some development libraries/packages are missing?
2177 If you don't want to link with them give
2178     $WITH_NO
2179 as options to configure])
2180   fi
2183 ### Use -lgpm if available, unless `--with-gpm=no'.
2184 HAVE_GPM=no
2185 if test "${with_gpm}" != "no"; then
2186   AC_CHECK_HEADER(gpm.h,
2187     [AC_CHECK_LIB(gpm, Gpm_Open, HAVE_GPM=yes)])
2190 if test "${HAVE_GPM}" = "yes"; then
2191   AC_DEFINE(HAVE_GPM, 1, [Define to 1 if you have the gpm library (-lgpm).])
2194 dnl Check for malloc/malloc.h on darwin
2195 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.])])
2197 ### Use Mac OS X Carbon API to implement GUI.
2198 if test "${HAVE_CARBON}" = "yes"; then
2199   AC_DEFINE(HAVE_CARBON, 1, [Define to 1 if you are using the Carbon API on Mac OS X.])
2200   ## Specify the install directory
2201   carbon_appdir=
2202   if test "${carbon_appdir_x}" != ""; then
2203     case ${carbon_appdir_x} in
2204       y | ye | yes)  carbon_appdir=/Applications ;;
2205       * ) carbon_appdir=${carbon_appdir_x} ;;
2206     esac
2207   fi
2208   # We also have mouse menus.
2209   HAVE_MENUS=yes
2212 ### Use session management (-lSM -lICE) if available
2213 HAVE_X_SM=no
2214 if test "${HAVE_X11}" = "yes"; then
2215   AC_CHECK_HEADER(X11/SM/SMlib.h,
2216     [AC_CHECK_LIB(SM, SmcOpenConnection, HAVE_X_SM=yes, , -lICE)])
2218   if test "${HAVE_X_SM}" = "yes"; then
2219     AC_DEFINE(HAVE_X_SM, 1, [Define to 1 if you have the SM library (-lSM).])
2220     case "$LIBS" in
2221       *-lSM*) ;;
2222       *)      LIBS="-lSM -lICE $LIBS" ;;
2223     esac
2224   fi
2227 # If netdb.h doesn't declare h_errno, we must declare it by hand.
2228 AC_CACHE_CHECK(whether netdb declares h_errno,
2229                emacs_cv_netdb_declares_h_errno,
2230 [AC_TRY_LINK([#include <netdb.h>],
2231   [return h_errno;],
2232   emacs_cv_netdb_declares_h_errno=yes, emacs_cv_netdb_declares_h_errno=no)])
2233 if test $emacs_cv_netdb_declares_h_errno = yes; then
2234   AC_DEFINE(HAVE_H_ERRNO, 1, [Define to 1 if netdb.h declares h_errno.])
2237 AC_FUNC_ALLOCA
2239 dnl src/alloca.c has been removed.  Could also check if $ALLOCA is set?
2240 dnl FIXME is there an autoconf test that does the right thing, without
2241 dnl needing to call A_M_E afterwards?
2242 if test x"$ac_cv_func_alloca_works" != xyes; then
2243    AC_MSG_ERROR( [a system implementation of alloca is required] )
2246 # fmod, logb, and frexp are found in -lm on most systems.
2247 # On HPUX 9.01, -lm does not contain logb, so check for sqrt.
2248 AC_CHECK_LIB(m, sqrt)
2250 # Check for mail-locking functions in a "mail" library.  Probably this should
2251 # have the same check as for liblockfile below.
2252 AC_CHECK_LIB(mail, maillock)
2253 dnl Debian, at least:
2254 AC_CHECK_LIB(lockfile, maillock)
2255 # If we have the shared liblockfile, assume we must use it for mail
2256 # locking (e.g. Debian).  If we couldn't link against liblockfile
2257 # (no liblockfile.a installed), ensure that we don't need to.
2258 if test "$ac_cv_lib_lockfile_maillock" = no; then
2259   dnl This works for files generally, not just executables.
2260   dnl Should we look elsewhere for it?  Maybe examine /etc/ld.so.conf?
2261   AC_CHECK_PROG(liblockfile, liblockfile.so, yes, no,
2262                 /usr/lib:/lib:/usr/local/lib:$LD_LIBRARY_PATH)
2263   if test $ac_cv_prog_liblockfile = yes; then
2264     AC_MSG_ERROR([Shared liblockfile found but can't link against it.
2265 This probably means that movemail could lose mail.
2266 There may be a `development' package to install containing liblockfile.])
2267   else :
2268   fi
2270 AC_CHECK_FUNCS(touchlock)
2271 AC_CHECK_HEADERS(maillock.h)
2273 AC_CHECK_FUNCS(gethostname getdomainname dup2 \
2274 rename closedir mkdir rmdir sysinfo getrusage get_current_dir_name \
2275 random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime setsid \
2276 strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \
2277 utimes setrlimit setpgid getcwd getwd shutdown getaddrinfo \
2278 __fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \
2279 sendto recvfrom getsockopt setsockopt getsockname getpeername \
2280 gai_strerror mkstemp getline getdelim mremap memmove fsync sync bzero \
2281 memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign)
2283 AC_CHECK_HEADERS(sys/un.h)
2285 AC_FUNC_MKTIME
2286 if test "$ac_cv_func_working_mktime" = no; then
2287   AC_DEFINE(BROKEN_MKTIME, 1, [Define to 1 if the mktime function is broken.])
2290 AC_FUNC_GETLOADAVG
2292 AC_FUNC_FSEEKO
2294 # Configure getopt.
2295 m4_include([m4/getopt.m4])
2296 gl_GETOPT_IFELSE([
2297   gl_GETOPT_SUBSTITUTE_HEADER
2298   gl_PREREQ_GETOPT
2299   GETOPTOBJS='getopt.o getopt1.o'
2301 AC_SUBST(GETOPTOBJS)
2303 AC_FUNC_GETPGRP
2305 AC_FUNC_STRFTIME
2307 # UNIX98 PTYs.
2308 AC_CHECK_FUNCS(grantpt)
2310 # PTY-related GNU extensions.
2311 AC_CHECK_FUNCS(getpt)
2313 # Check this now, so that we will NOT find the above functions in ncurses.
2314 # That is because we have not set up to link ncurses in lib-src.
2315 # It's better to believe a function is not available
2316 # than to expect to find it in ncurses.
2317 AC_CHECK_LIB(ncurses, tparm)
2319 # Do we have res_init, for detecting changes in /etc/resolv.conf?
2321 resolv=no
2322 AC_TRY_LINK([#include <netinet/in.h>
2323 #include <arpa/nameser.h>
2324 #include <resolv.h>],
2325     [return res_init();],
2326     have_res_init=yes, have_res_init=no)
2327 if test "$have_res_init" = no; then
2328   OLIBS="$LIBS"
2329   LIBS="$LIBS -lresolv"
2330   AC_MSG_CHECKING(for res_init with -lresolv)
2331   AC_TRY_LINK([#include <netinet/in.h>
2332 #include <arpa/nameser.h>
2333 #include <resolv.h>],
2334     [return res_init();],
2335     have_res_init=yes, have_res_init=no)
2336   AC_MSG_RESULT($have_res_init)
2337   if test "$have_res_init" = yes ; then
2338     resolv=yes
2339   fi
2340   LIBS="$OLIBS"
2343 if test "$have_res_init" = yes; then
2344   AC_DEFINE(HAVE_RES_INIT, 1, [Define to 1 if res_init is available.])
2347 # Do we need the Hesiod library to provide the support routines?
2348 if test "$with_hesiod" = yes ; then
2349   # Don't set $LIBS here -- see comments above.
2350   AC_CHECK_FUNC(res_send, , [AC_CHECK_FUNC(__res_send, ,
2351      [AC_CHECK_LIB(resolv, res_send, resolv=yes,
2352                   [AC_CHECK_LIB(resolv, __res_send, resolv=yes)])])])
2353   if test "$resolv" = yes ; then
2354     RESOLVLIB=-lresolv
2355   else
2356     RESOLVLIB=
2357   fi
2358   AC_CHECK_FUNC(hes_getmailhost, , [AC_CHECK_LIB(hesiod, hes_getmailhost,
2359         [AC_DEFINE(HAVE_LIBHESIOD, 1,
2360                   [Define to 1 if you have the hesiod library (-lhesiod).])],
2361         :, $RESOLVLIB)])
2364 # Do we need libresolv (due to res_init or Hesiod)?
2365 if test "$resolv" = yes ; then
2366   AC_DEFINE(HAVE_LIBRESOLV, 1,
2367             [Define to 1 if you have the resolv library (-lresolv).])
2370 # These tell us which Kerberos-related libraries to use.
2371 if test "${with_kerberos+set}" = set; then
2372   AC_CHECK_LIB(com_err, com_err)
2373   AC_CHECK_LIB(k5crypto, mit_des_cbc_encrypt)
2374   AC_CHECK_LIB(crypto, mit_des_cbc_encrypt)
2375   AC_CHECK_LIB(krb5, krb5_init_context)
2376   if test "${with_kerberos5+set}" != set; then
2377     AC_CHECK_LIB(des425, des_cbc_encrypt,,
2378                  [AC_CHECK_LIB(des, des_cbc_encrypt)])
2379     AC_CHECK_LIB(krb4, krb_get_cred,,
2380                  [AC_CHECK_LIB(krb, krb_get_cred)])
2381   fi
2383   if test "${with_kerberos5+set}" = set; then
2384     AC_CHECK_HEADERS(krb5.h)
2385   else
2386     AC_CHECK_HEADERS(des.h,,
2387                      [AC_CHECK_HEADERS(kerberosIV/des.h,,
2388                                        [AC_CHECK_HEADERS(kerberos/des.h)])])
2389     AC_CHECK_HEADERS(krb.h,,
2390                      [AC_CHECK_HEADERS(kerberosIV/krb.h,,
2391                                        [AC_CHECK_HEADERS(kerberos/krb.h)])])
2392   fi
2393   AC_CHECK_HEADERS(com_err.h)
2396 # Solaris requires -lintl if you want strerror (which calls dgettext)
2397 # to return localized messages.
2398 AC_CHECK_LIB(intl, dgettext)
2400 AC_MSG_CHECKING(whether localtime caches TZ)
2401 AC_CACHE_VAL(emacs_cv_localtime_cache,
2402 [if test x$ac_cv_func_tzset = xyes; then
2403 AC_TRY_RUN([#include <time.h>
2404 extern char **environ;
2405 unset_TZ ()
2407   char **from, **to;
2408   for (to = from = environ; (*to = *from); from++)
2409     if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
2410       to++;
2412 char TZ_GMT0[] = "TZ=GMT0";
2413 char TZ_PST8[] = "TZ=PST8";
2414 main()
2416   time_t now = time ((time_t *) 0);
2417   int hour_GMT0, hour_unset;
2418   if (putenv (TZ_GMT0) != 0)
2419     exit (1);
2420   hour_GMT0 = localtime (&now)->tm_hour;
2421   unset_TZ ();
2422   hour_unset = localtime (&now)->tm_hour;
2423   if (putenv (TZ_PST8) != 0)
2424     exit (1);
2425   if (localtime (&now)->tm_hour == hour_GMT0)
2426     exit (1);
2427   unset_TZ ();
2428   if (localtime (&now)->tm_hour != hour_unset)
2429     exit (1);
2430   exit (0);
2431 }], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
2432 [# If we have tzset, assume the worst when cross-compiling.
2433 emacs_cv_localtime_cache=yes])
2434 else
2435         # If we lack tzset, report that localtime does not cache TZ,
2436         # since we can't invalidate the cache if we don't have tzset.
2437         emacs_cv_localtime_cache=no
2438 fi])dnl
2439 AC_MSG_RESULT($emacs_cv_localtime_cache)
2440 if test $emacs_cv_localtime_cache = yes; then
2441   AC_DEFINE(LOCALTIME_CACHE, 1,
2442             [Define to 1 if localtime caches TZ.])
2445 if test "x$HAVE_TIMEVAL" = xyes; then
2446   AC_CHECK_FUNCS(gettimeofday)
2447   if test $ac_cv_func_gettimeofday = yes; then
2448     AC_CACHE_CHECK(whether gettimeofday can accept two arguments,
2449                    emacs_cv_gettimeofday_two_arguments,
2450     [AC_TRY_COMPILE([
2451 #ifdef TIME_WITH_SYS_TIME
2452 #include <sys/time.h>
2453 #include <time.h>
2454 #else
2455 #ifdef HAVE_SYS_TIME_H
2456 #include <sys/time.h>
2457 #else
2458 #include <time.h>
2459 #endif
2460 #endif],
2461       [struct timeval time;
2462        gettimeofday (&time, 0);],
2463       emacs_cv_gettimeofday_two_arguments=yes,
2464       emacs_cv_gettimeofday_two_arguments=no)])
2465     if test $emacs_cv_gettimeofday_two_arguments = no; then
2466       AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT, 1,
2467                 [Define to 1 if gettimeofday accepts only one argument.])
2468     fi
2469   fi
2472 ok_so_far=yes
2473 AC_CHECK_FUNC(socket, , ok_so_far=no)
2474 if test $ok_so_far = yes; then
2475   AC_CHECK_HEADER(netinet/in.h, , ok_so_far=no)
2477 if test $ok_so_far = yes; then
2478   AC_CHECK_HEADER(arpa/inet.h, , ok_so_far=no)
2480 if test $ok_so_far = yes; then
2481 dnl Fixme: Not used.  Should this be HAVE_SOCKETS?
2482   AC_DEFINE(HAVE_INET_SOCKETS, 1,
2483             [Define to 1 if you have inet sockets.])
2486 AC_CHECK_HEADERS(sys/ioctl.h)
2488 if test -f /usr/lpp/X11/bin/smt.exp; then
2489   AC_DEFINE(HAVE_AIX_SMT_EXP, 1,
2490             [Define to 1 if the file /usr/lpp/X11/bin/smt.exp exists.])
2493 AC_MSG_CHECKING(whether system supports dynamic ptys)
2494 if test -d /dev/pts && ls -d /dev/ptmx > /dev/null 2>&1 ; then
2495   AC_MSG_RESULT(yes)
2496   AC_DEFINE(HAVE_DEV_PTMX, 1, [Define to 1 if dynamic ptys are supported.])
2497 else
2498   AC_MSG_RESULT(no)
2501 AC_FUNC_FORK
2503 dnl Adapted from Haible's version.
2504 AC_CACHE_CHECK([for nl_langinfo and CODESET], emacs_cv_langinfo_codeset,
2505   [AC_TRY_LINK([#include <langinfo.h>],
2506     [char* cs = nl_langinfo(CODESET);],
2507     emacs_cv_langinfo_codeset=yes,
2508     emacs_cv_langinfo_codeset=no)
2509   ])
2510 if test $emacs_cv_langinfo_codeset = yes; then
2511   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
2512     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
2515 AC_CHECK_TYPES(size_t)
2517 AC_TYPE_MBSTATE_T
2519 dnl Restrict could probably be used effectively other than in regex.c.
2520 AC_CACHE_CHECK([for C restrict keyword], emacs_cv_c_restrict,
2521   [AC_TRY_COMPILE([void fred (int *restrict x);], [],
2522                   emacs_cv_c_restrict=yes,
2523                   [AC_TRY_COMPILE([void fred (int *__restrict x);], [],
2524                                   emacs_cv_c_restrict=__restrict,
2525                                   emacs_cv_c_restrict=no)])])
2526 case "$emacs_cv_c_restrict" in
2527   yes) emacs_restrict=restrict;;
2528   no) emacs_restrict="";;
2529   *) emacs_restrict="$emacs_cv_c_restrict";;
2530 esac
2531 if test "$emacs_restrict" != __restrict; then
2532   AC_DEFINE_UNQUOTED(__restrict, $emacs_restrict,
2533     [Define to compiler's equivalent of C99 restrict keyword.
2534      Don't define if equivalent is `__restrict'.])
2537 AC_CACHE_CHECK([for C restricted array declarations], emacs_cv_c_restrict_arr,
2538   [AC_TRY_COMPILE([void fred (int x[__restrict]);], [],
2539                   emacs_cv_c_restrict_arr=yes, emacs_cv_c_restrict_arr=no)])
2540 if test "$emacs_cv_c_restrict_arr" = yes; then
2541   AC_DEFINE(__restrict_arr, __restrict,
2542     [Define to compiler's equivalent of C99 restrict keyword in array
2543      declarations.  Define as empty for no equivalent.])
2546 dnl Fixme: AC_SYS_POSIX_TERMIOS should probably be used, but it's not clear
2547 dnl how the tty code is related to POSIX and/or other versions of termios.
2548 dnl The following looks like a useful start.
2550 dnl AC_SYS_POSIX_TERMIOS
2551 dnl if test $ac_cv_sys_posix_termios = yes; then
2552 dnl    AC_DEFINE(HAVE_TERMIOS, 1, [Define to 1 if you have POSIX-style functions
2553 dnl                                and macros for terminal control.])
2554 dnl    AC_DEFINE(HAVE_TCATTR, 1, [Define to 1 if you have tcgetattr and tcsetattr.])
2555 dnl fi
2557 dnl Fixme: Use AC_FUNC_MEMCMP since memcmp is used.  (Needs libobj replacement.)
2559 # Set up the CFLAGS for real compilation, so we can substitute it.
2560 CFLAGS="$REAL_CFLAGS"
2561 CPPFLAGS="$REAL_CPPFLAGS"
2563 #### Find out which version of Emacs this is.
2564 [version=`grep 'defconst[        ]*emacs-version' ${srcdir}/lisp/version.el \
2565          | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`]
2566 if test x"${version}" = x; then
2567   AC_MSG_ERROR([can't find current emacs version in `${srcdir}/lisp/version.el'.])
2570 ### Specify what sort of things we'll be editing into Makefile and config.h.
2571 ### Use configuration here uncanonicalized to avoid exceeding size limits.
2572 AC_SUBST(version)
2573 AC_SUBST(configuration)
2574 AC_SUBST(canonical)
2575 AC_SUBST(srcdir)
2576 AC_SUBST(prefix)
2577 AC_SUBST(exec_prefix)
2578 AC_SUBST(bindir)
2579 AC_SUBST(datadir)
2580 AC_SUBST(sharedstatedir)
2581 AC_SUBST(libexecdir)
2582 AC_SUBST(mandir)
2583 AC_SUBST(infodir)
2584 AC_SUBST(lispdir)
2585 AC_SUBST(locallisppath)
2586 AC_SUBST(lisppath)
2587 AC_SUBST(x_default_search_path)
2588 AC_SUBST(etcdir)
2589 AC_SUBST(archlibdir)
2590 AC_SUBST(docdir)
2591 AC_SUBST(bitmapdir)
2592 AC_SUBST(gamedir)
2593 AC_SUBST(gameuser)
2594 AC_SUBST(c_switch_system)
2595 AC_SUBST(c_switch_machine)
2596 AC_SUBST(LD_SWITCH_X_SITE)
2597 AC_SUBST(LD_SWITCH_X_SITE_AUX)
2598 AC_SUBST(C_SWITCH_X_SITE)
2599 AC_SUBST(CFLAGS)
2600 AC_SUBST(X_TOOLKIT_TYPE)
2601 AC_SUBST(machfile)
2602 AC_SUBST(opsysfile)
2603 AC_SUBST(GETLOADAVG_LIBS)
2604 AC_SUBST(carbon_appdir)
2606 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION,  "${canonical}",
2607                    [Define to the canonical Emacs configuration name.])
2608 AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}",
2609                    [Define to the options passed to configure.])
2610 AC_DEFINE_UNQUOTED(config_machfile,  "${machfile}",
2611                    [Define to the used machine dependent file.])
2612 AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}",
2613                    [Define to the used os dependent file.])
2614 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE},
2615 [Define LD_SWITCH_X_SITE to contain any special flags your loader
2616  may need to deal with X Windows.  For instance, if you've defined
2617  HAVE_X_WINDOWS above and your X libraries aren't in a place that
2618  your loader can find on its own, you might want to add "-L/..." or
2619  something similar.])
2620 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX},
2621                    [Define LD_SWITCH_X_SITE_AUX with an -R option
2622                     in case it's needed (for Solaris, for example).])
2623 AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE,  ${C_SWITCH_X_SITE},
2624 [Define C_SWITCH_X_SITE to contain any special flags your compiler
2625  may need to deal with X Windows.  For instance, if you've defined
2626  HAVE_X_WINDOWS above and your X include files aren't in a place
2627  that your compiler can find on its own, you might want to add
2628  "-I/..." or something similar.])
2629 AC_DEFINE_UNQUOTED(UNEXEC_SRC,       ${UNEXEC_SRC},
2630                    [Define to the unexec source file name.])
2632 if test "${HAVE_X_WINDOWS}" = "yes" ; then
2633   AC_DEFINE(HAVE_X_WINDOWS, 1,
2634             [Define to 1 if you want to use the X window system.])
2636 if test "${USE_X_TOOLKIT}" != "none" ; then
2637   AC_DEFINE(USE_X_TOOLKIT, 1, [Define to 1 if using an X toolkit.])
2639 if test "${HAVE_X11}" = "yes" ; then
2640   AC_DEFINE(HAVE_X11, 1,
2641             [Define to 1 if you want to use version 11 of X windows.
2642              Otherwise, Emacs expects to use version 10.])
2644 if test "${HAVE_XFREE386}" = "yes" ; then
2645   AC_DEFINE(HAVE_XFREE386, 1, [Define to 1 if you're using XFree386.])
2647 if test "${HAVE_MENUS}" = "yes" ; then
2648   AC_DEFINE(HAVE_MENUS, 1,
2649             [Define to 1 if you have mouse menus.
2650              (This is automatic if you use X, but the option to specify it remains.)
2651              It is also defined with other window systems that support xmenu.c.])
2653 if test "${GNU_MALLOC}" = "yes" ; then
2654   AC_DEFINE(GNU_MALLOC, 1,
2655             [Define to 1 if you want to use the GNU memory allocator.])
2657 if test "${REL_ALLOC}" = "yes" ; then
2658   AC_DEFINE(REL_ALLOC, 1,
2659             [Define REL_ALLOC if you want to use the relocating allocator for
2660              buffer space.])
2664 AH_TOP([/* GNU Emacs site configuration template file.
2665    Copyright (C) 1988, 1993, 1994, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007
2666              Free Software Foundation, Inc.
2668 This file is part of GNU Emacs.
2670 GNU Emacs is free software; you can redistribute it and/or modify
2671 it under the terms of the GNU General Public License as published by
2672 the Free Software Foundation; either version 3, or (at your option)
2673 any later version.
2675 GNU Emacs is distributed in the hope that it will be useful,
2676 but WITHOUT ANY WARRANTY; without even the implied warranty of
2677 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2678 GNU General Public License for more details.
2680 You should have received a copy of the GNU General Public License
2681 along with GNU Emacs; see the file COPYING.  If not, write to the
2682 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
2683 Boston, MA 02110-1301, USA.  */
2686 /* No code in Emacs #includes config.h twice, but some bits of code
2687    intended to work with other packages as well (like gmalloc.c)
2688    think they can include it as many times as they like.  */
2689 #ifndef EMACS_CONFIG_H
2690 #define EMACS_CONFIG_H
2691 ])dnl
2693 AH_BOTTOM([
2694 /* If we're using any sort of window system, define some consequences.  */
2695 #ifdef HAVE_X_WINDOWS
2696 #define HAVE_WINDOW_SYSTEM
2697 #define MULTI_KBOARD
2698 #define HAVE_MOUSE
2699 #endif
2701 /* Multi-tty support relies on MULTI_KBOARD.  It seems safe to turn it
2702    on unconditionally.  Note that src/s/darwin.h disables this at
2703    present.  */
2704 #ifndef MULTI_KBOARD
2705 #define MULTI_KBOARD
2706 #endif
2708 /* If we're using the Carbon API on Mac OS X, define a few more
2709    variables as well.  */
2710 #ifdef HAVE_CARBON
2711 #define HAVE_WINDOW_SYSTEM
2712 #define HAVE_MOUSE
2713 #endif
2715 /* Define USER_FULL_NAME to return a string
2716    that is the user's full name.
2717    It can assume that the variable `pw'
2718    points to the password file entry for this user.
2720    At some sites, the pw_gecos field contains
2721    the user's full name.  If neither this nor any other
2722    field contains the right thing, use pw_name,
2723    giving the user's login name, since that is better than nothing.  */
2724 #define USER_FULL_NAME pw->pw_gecos
2726 /* Define AMPERSAND_FULL_NAME if you use the convention
2727    that & in the full name stands for the login id.  */
2728 /* Turned on June 1996 supposing nobody will mind it.  */
2729 #define AMPERSAND_FULL_NAME
2731 /* We have blockinput.h.  */
2732 #define DO_BLOCK_INPUT
2734 /* Define HAVE_SOUND if we have sound support.  We know it works
2735    and compiles only on the specified platforms.   For others,
2736    it probably doesn't make sense to try.  */
2738 #if defined __FreeBSD__ || defined __NetBSD__ || defined __linux__
2739 #ifdef HAVE_MACHINE_SOUNDCARD_H
2740 #define HAVE_SOUND 1
2741 #endif
2742 #ifdef HAVE_SYS_SOUNDCARD_H
2743 #define HAVE_SOUND 1
2744 #endif
2745 #ifdef HAVE_SOUNDCARD_H
2746 #define HAVE_SOUND 1
2747 #endif
2748 #ifdef HAVE_ALSA
2749 #define HAVE_SOUND 1
2750 #endif
2751 #endif /* __FreeBSD__ || __NetBSD__ || __linux__  */
2753 /* If using GNU, then support inline function declarations. */
2754 /* Don't try to switch on inline handling as detected by AC_C_INLINE
2755    generally, because even if non-gcc compilers accept `inline', they
2756    may reject `extern inline'.  */
2757 #if defined (__GNUC__) && defined (OPTIMIZE)
2758 #define INLINE __inline__
2759 #else
2760 #define INLINE
2761 #endif
2763 /* Include the os and machine dependent files.  */
2764 #include config_opsysfile
2765 #include config_machfile
2767 /* Load in the conversion definitions if this system
2768    needs them and the source file being compiled has not
2769    said to inhibit this.  There should be no need for you
2770    to alter these lines.  */
2772 #ifdef SHORTNAMES
2773 #ifndef NO_SHORTNAMES
2774 #include "../shortnames/remap.h"
2775 #endif /* not NO_SHORTNAMES */
2776 #endif /* SHORTNAMES */
2778 /* If no remapping takes place, static variables cannot be dumped as
2779    pure, so don't worry about the `static' keyword. */
2780 #ifdef NO_REMAP
2781 #undef static
2782 #endif
2784 /* Define `subprocesses' should be defined if you want to
2785    have code for asynchronous subprocesses
2786    (as used in M-x compile and M-x shell).
2787    These do not work for some USG systems yet;
2788    for the ones where they work, the s/SYSTEM.h file defines this flag.  */
2790 #ifndef VMS
2791 #ifndef USG
2792 /* #define subprocesses */
2793 #endif
2794 #endif
2796 /* SIGTYPE is the macro we actually use.  */
2797 #ifndef SIGTYPE
2798 #define SIGTYPE RETSIGTYPE
2799 #endif
2801 #ifdef emacs /* Don't do this for lib-src.  */
2802 /* Tell regex.c to use a type compatible with Emacs.  */
2803 #define RE_TRANSLATE_TYPE Lisp_Object
2804 #define RE_TRANSLATE(TBL, C) CHAR_TABLE_TRANSLATE (TBL, C)
2805 #ifdef make_number
2806 /* If make_number is a macro, use it.  */
2807 #define RE_TRANSLATE_P(TBL) (!EQ (TBL, make_number (0)))
2808 #else
2809 /* If make_number is a function, avoid it.  */
2810 #define RE_TRANSLATE_P(TBL) (!(INTEGERP (TBL) && XINT (TBL) == 0))
2811 #endif
2812 #endif
2814 /* Avoid link-time collision with system mktime if we will use our own.  */
2815 #if ! HAVE_MKTIME || BROKEN_MKTIME
2816 #define mktime emacs_mktime
2817 #endif
2819 #define my_strftime nstrftime   /* for strftime.c */
2821 /* The rest of the code currently tests the CPP symbol BSTRING.
2822    Override any claims made by the system-description files.
2823    Note that on some SCO version it is possible to have bcopy and not bcmp.  */
2824 #undef BSTRING
2825 #if defined (HAVE_BCOPY) && defined (HAVE_BCMP)
2826 #define BSTRING
2827 #endif
2829 /* Some of the files of Emacs which are intended for use with other
2830    programs assume that if you have a config.h file, you must declare
2831    the type of getenv.
2833    This declaration shouldn't appear when alloca.s or Makefile.in
2834    includes config.h.  */
2835 #ifndef NOT_C_CODE
2836 extern char *getenv ();
2837 #endif
2839 /* These default definitions are good for almost all machines.
2840    The exceptions override them in m/MACHINE.h.  */
2842 #ifndef BITS_PER_CHAR
2843 #define BITS_PER_CHAR 8
2844 #endif
2846 #ifndef BITS_PER_SHORT
2847 #define BITS_PER_SHORT 16
2848 #endif
2850 /* Note that lisp.h uses this in a preprocessor conditional, so it
2851    would not work to use sizeof.  That being so, we do all of them
2852    without sizeof, for uniformity's sake.  */
2853 #ifndef BITS_PER_INT
2854 #define BITS_PER_INT 32
2855 #endif
2857 #ifndef BITS_PER_LONG
2858 #ifdef _LP64
2859 #define BITS_PER_LONG 64
2860 #else
2861 #define BITS_PER_LONG 32
2862 #endif
2863 #endif
2865 /* Define if the compiler supports function prototypes.  It may do so
2866    but not define __STDC__ (e.g. DEC C by default) or may define it as
2867    zero.  */
2868 #undef PROTOTYPES
2869 /* For mktime.c:  */
2870 #ifndef __P
2871 # if defined PROTOTYPES
2872 #  define __P(args) args
2873 # else
2874 #  define __P(args) ()
2875 # endif  /* GCC.  */
2876 #endif /* __P */
2878 /* Don't include "string.h" or <stdlib.h> in non-C code.  */
2879 #ifndef NOT_C_CODE
2880 #ifdef HAVE_STRING_H
2881 #include "string.h"
2882 #endif
2883 #ifdef HAVE_STRINGS_H
2884 #include "strings.h"  /* May be needed for bcopy & al. */
2885 #endif
2886 #ifdef HAVE_STDLIB_H
2887 #include <stdlib.h>
2888 #endif
2889 #ifndef __GNUC__
2890 # ifdef HAVE_ALLOCA_H
2891 #  include <alloca.h>
2892 # else /* AIX files deal with #pragma.  */
2893 #  ifndef alloca /* predefined by HP cc +Olibcalls */
2894 char *alloca ();
2895 #  endif
2896 # endif /* HAVE_ALLOCA_H */
2897 #endif /* __GNUC__ */
2898 #ifndef HAVE_SIZE_T
2899 typedef unsigned size_t;
2900 #endif
2901 #endif /* NOT_C_CODE */
2903 /* Define HAVE_X_I18N if we have usable i18n support.  */
2905 #ifdef HAVE_X11R6
2906 #define HAVE_X_I18N
2907 #elif !defined X11R5_INHIBIT_I18N
2908 #define HAVE_X_I18N
2909 #endif
2911 /* Define HAVE_X11R6_XIM if we have usable X11R6-style XIM support.  */
2913 #if defined HAVE_X11R6 && !defined INHIBIT_X11R6_XIM
2914 #define HAVE_X11R6_XIM
2915 #endif
2917 /* Should we enable expensive run-time checking of data types?  */
2918 #undef ENABLE_CHECKING
2920 #if defined __GNUC__ && (__GNUC__ > 2 \
2921                          || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5))
2922 #define NO_RETURN       __attribute__ ((__noreturn__))
2923 #else
2924 #define NO_RETURN       /* nothing */
2925 #endif
2927 /* These won't be used automatically yet.  We also need to know, at least,
2928    that the stack is continuous.  */
2929 #ifdef __GNUC__
2930 #  ifndef GC_SETJMP_WORKS
2931   /* GC_SETJMP_WORKS is nearly always appropriate for GCC --
2932      see NON_SAVING_SETJMP in the target descriptions.  */
2933   /* Exceptions (see NON_SAVING_SETJMP in target description) are
2934      SCO5 non-ELF (but Emacs specifies ELF) and SVR3 on x86.
2935      Fixme: Deal with SVR3.  */
2936 #    define GC_SETJMP_WORKS 1
2937 #  endif
2938 #  ifndef GC_LISP_OBJECT_ALIGNMENT
2939 #    define GC_LISP_OBJECT_ALIGNMENT (__alignof__ (Lisp_Object))
2940 #  endif
2941 #endif
2943 #ifndef HAVE_BCOPY
2944 #define bcopy(a,b,s) memcpy (b,a,s)
2945 #endif
2946 #ifndef HAVE_BZERO
2947 #define bzero(a,s) memset (a,0,s)
2948 #endif
2949 #ifndef HAVE_BCMP
2950 #define BCMP memcmp
2951 #endif
2953 #endif /* EMACS_CONFIG_H */
2956 Local Variables:
2957 mode: c
2958 End:
2960 ])dnl
2962 #### Report on what we decided to do.
2963 #### Report GTK as a toolkit, even if it doesn't use Xt.
2964 #### It makes printing result more understandable as using GTK sets
2965 #### toolkit_scroll_bars to yes by default.
2966 if test "${HAVE_GTK}" = "yes"; then
2967   USE_X_TOOLKIT=GTK
2970 echo "
2971 Configured for \`${canonical}'.
2973   Where should the build process find the source code?    ${srcdir}
2974   What operating system and machine description files should Emacs use?
2975         \`${opsysfile}' and \`${machfile}'
2976   What compiler should emacs be built with?               ${CC} ${CFLAGS}
2977   Should Emacs use the GNU version of malloc?             ${GNU_MALLOC}${GNU_MALLOC_reason}
2978   Should Emacs use a relocating allocator for buffers?    ${REL_ALLOC}
2979   Should Emacs use mmap(2) for buffer allocation?         $use_mmap_for_buffers
2980   What window system should Emacs use?                    ${window_system}
2981   What toolkit should Emacs use?                          ${USE_X_TOOLKIT}"
2983 if test -n "${x_includes}"; then
2984 echo "  Where do we find X Windows header files?                ${x_includes}"
2985 else
2986 echo "  Where do we find X Windows header files?                Standard dirs"
2988 if test -n "${x_libraries}"; then
2989 echo "  Where do we find X Windows libraries?                   ${x_libraries}"
2990 else
2991 echo "  Where do we find X Windows libraries?                   Standard dirs"
2994 echo "  Does Emacs use -lXaw3d?                                 ${HAVE_XAW3D}"
2995 echo "  Does Emacs use -lXpm?                                   ${HAVE_XPM}"
2996 echo "  Does Emacs use -ljpeg?                                  ${HAVE_JPEG}"
2997 echo "  Does Emacs use -ltiff?                                  ${HAVE_TIFF}"
2998 echo "  Does Emacs use a gif library?                           ${HAVE_GIF} $ac_gif_lib_name"
2999 echo "  Does Emacs use -lpng?                                   ${HAVE_PNG}"
3000 echo "  Does Emacs use -lrsvg-2?                                ${HAVE_RSVG}"
3001 echo "  Does Emacs use -lgpm?                                   ${HAVE_GPM}"
3002 echo "  Does Emacs use X toolkit scroll bars?                   ${USE_TOOLKIT_SCROLL_BARS}"
3003 echo
3005 if test $USE_XASSERTS = yes; then
3006    echo "  Compiling with asserts turned on."
3007    CPPFLAGS="$CPPFLAGS -DXASSERTS=1"
3008    echo
3011 if test "$USE_X_TOOLKIT" = GTK; then
3012   case "$canonical" in
3013   *cygwin*)
3014     echo "There are known problems with Emacs and Gtk+ on cygwin, so you
3015   will probably get a crash on startup.  If this happens, please use another
3016   toolkit for Emacs.  See etc/PROBLEMS for more information."
3017   ;;
3018   esac
3022 if test "$HAVE_CARBON" = "yes"; then
3023    echo
3024    echo "Warning: The Mac Carbon port is currently unsupported and has
3025 known problems.  It is not recommended for use by non-developers.
3026 Read the emacs-devel archives for more information."
3027    echo
3030 if test "$HAVE_DBUS" = yes && test "${opsys}" != "gnu-linux"; then
3031   echo "D-Bus integration has been tested for GNU/Linux only."
3032   echo
3036 # Remove any trailing slashes in these variables.
3037 [test "${prefix}" != NONE &&
3038   prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
3039 test "${exec_prefix}" != NONE &&
3040   exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`]
3042 ## Check if the C preprocessor will convert `..' to `. .'.  If so, set
3043 ## CPP_NEED_TRADITIONAL to `yes' so that the code to generate Makefile
3044 ## from Makefile.c can correctly provide the arg `-traditional' to the
3045 ## C preprocessor.
3047 AC_EGREP_CPP(yes..yes,
3048         [yes..yes],
3049         CPP_NEED_TRADITIONAL=no,
3050         CPP_NEED_TRADITIONAL=yes)
3052 AC_OUTPUT(Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile \
3053         doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \
3054         doc/lispref/Makefile src/Makefile.c:src/Makefile.in \
3055         lwlib/Makefile lisp/Makefile leim/Makefile, [
3057 ### Make the necessary directories, if they don't exist.
3058 for dir in etc lisp ; do
3059   test -d ${dir} || mkdir ${dir}
3060 done
3062 # Build src/Makefile from ${srcdir}/src/Makefile.c
3063 # and lib-src/Makefile from ${srcdir}/lib-src/Makefile.c
3064 # This must be done after src/config.h is built, since we rely on that file.
3066 # Now get this: Some word that is part of the ${srcdir} directory name
3067 # or the ${configuration} value might, just might, happen to be an
3068 # identifier like `sun4' or `i386' or something, and be predefined by
3069 # the C preprocessor to some helpful value like 1, or maybe the empty
3070 # string.  Needless to say consequent macro substitutions are less
3071 # than conducive to the makefile finding the correct directory.
3072 [undefs="`echo $top_srcdir $configuration $canonical |
3073 sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/  *$//' \
3074     -e 's/  */ -U/g' -e 's/-U[0-9][^ ]*//g' \
3077 echo creating src/epaths.h
3078 ${MAKE-make} epaths-force
3080 # As of 2000-11-19, newest development versions of GNU cpp preprocess
3081 # `..' to `. .'  unless invoked with -traditional
3083 if test "x$GCC" = xyes && test "x$CPP_NEED_TRADITIONAL" = xyes; then
3084   CPPFLAGS="$CPPFLAGS -traditional"
3087 echo creating lib-src/Makefile
3088 ( cd lib-src
3089   rm -f junk.c junk1.c junk2.c
3090   sed -e '/start of cpp stuff/q' \
3091       < Makefile.c > junk1.c
3092   sed -e '1,/start of cpp stuff/d'\
3093       -e 's,/\*\*/#\(.*\)$,/* \1 */,' \
3094       < Makefile.c > junk.c
3095   $CPP $undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
3096       sed -e 's/^ /     /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
3097   cat junk1.c junk2.c > Makefile.new
3098   rm -f junk.c junk1.c junk2.c
3099   chmod 444 Makefile.new
3100   mv -f Makefile.new Makefile
3103 echo creating src/Makefile
3104 ( cd src
3105   rm -f junk.c junk1.c junk2.c
3106   sed -e '/start of cpp stuff/q' \
3107       < Makefile.c > junk1.c
3108   sed -e '1,/start of cpp stuff/d'\
3109       -e 's,/\*\*/#\(.*\)$,/* \1 */,' \
3110       < Makefile.c > junk.c
3111   $CPP $undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
3112       sed -e 's/^ /     /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
3113   cat junk1.c junk2.c > Makefile.new
3114   rm -f junk.c junk1.c junk2.c
3115   chmod 444 Makefile.new
3116   mv -f Makefile.new Makefile
3119 if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then
3120   echo creating src/.gdbinit
3121   echo source $srcdir/src/.gdbinit > src/.gdbinit
3124 # This is how we know whether to re-run configure in certain cases.
3125 touch src/config.stamp
3127 ], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPP_NEED_TRADITIONAL="$CPP_NEED_TRADITIONAL" CPPFLAGS="$CPPFLAGS"])
3129 m4_if(dnl       Do not change this comment
3130    arch-tag: 156a4dd5-bddc-4d18-96ac-f37742cf6a5e
3131 )dnl