Define and use SET_PER_BUFFER_VALUE_RAW
[emacs.git] / configure.in
blob2a3ac32fd851c4b029a66ce65ce7c4dc46b9cc3d
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, 2008, 2009, 2010  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 of the License, or
14 dnl  (at your option) 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.  If not, see <http://www.gnu.org/licenses/>.
24 AC_PREREQ(2.62)
25 AC_INIT(emacs, 24.0.50)
26 AC_CONFIG_HEADER(src/config.h:src/config.in)
27 AC_CONFIG_SRCDIR(src/lisp.h)
29 dnl Support for --program-prefix, --program-suffix and
30 dnl --program-transform-name options
31 AC_ARG_PROGRAM
33 lispdir='${datadir}/emacs/${version}/lisp'
34 locallisppath='${datadir}/emacs/${version}/site-lisp:'\
35 '${datadir}/emacs/site-lisp'
36 lisppath='${locallisppath}:${lispdir}:${datadir}/emacs/${version}/leim'
37 etcdir='${datadir}/emacs/${version}/etc'
38 archlibdir='${libexecdir}/emacs/${version}/${configuration}'
39 docdir='${datadir}/emacs/${version}/etc'
40 gamedir='${localstatedir}/games/emacs'
42 gameuser=games
44 dnl OPTION_DEFAULT_OFF(NAME, HELP-STRING)
45 dnl Create a new --with option that defaults to being disabled.
46 dnl NAME is the base name of the option.  The shell variable with_NAME
47 dnl   will be set to either the user's value (if the option is
48 dnl   specified; 'yes' for a plain --with-NAME) or to 'no' (if the
49 dnl   option is not specified).  Note that the shell variable name is
50 dnl   constructed as autoconf does, by replacing non-alphanumeric
51 dnl   characters with "_".
52 dnl HELP-STRING is the help text for the option.
53 AC_DEFUN([OPTION_DEFAULT_OFF], [dnl
54   AC_ARG_WITH([$1],[AS_HELP_STRING([--with-$1],[$2])],[],[dnl
55     m4_bpatsubst([with_$1], [[^0-9a-z]], [_])=no])dnl
56 ])dnl
58 dnl OPTION_DEFAULT_ON(NAME, HELP-STRING)
59 dnl Create a new --with option that defaults to being enabled.  NAME
60 dnl   is the base name of the option.  The shell variable with_NAME
61 dnl   will be set either to 'no' (for a plain --without-NAME) or to
62 dnl   'yes' (if the option is not specified).  Note that the shell
63 dnl   variable name is constructed as autoconf does, by replacing
64 dnl   non-alphanumeric characters with "_".
65 dnl HELP-STRING is the help text for the option.
66 AC_DEFUN([OPTION_DEFAULT_ON], [dnl
67   AC_ARG_WITH([$1],[AS_HELP_STRING([--without-$1],[$2])],[],[dnl
68    m4_bpatsubst([with_$1], [[^0-9a-z]], [_])=yes])dnl
69 ])dnl
71 OPTION_DEFAULT_ON([pop],[don't support POP mail retrieval with movemail])
72 if test "$with_pop" = yes; then
73    AC_DEFINE(MAIL_USE_POP)
75 AH_TEMPLATE(MAIL_USE_POP, [Define to support POP mail retrieval.])dnl
77 OPTION_DEFAULT_OFF([kerberos],[support Kerberos-authenticated POP])
78 if test "$with_kerberos" != no; then
79    AC_DEFINE(KERBEROS)
81 AH_TEMPLATE(KERBEROS,
82             [Define to support Kerberos-authenticated POP mail retrieval.])dnl
84 OPTION_DEFAULT_OFF([kerberos5],[support Kerberos version 5 authenticated POP])
85 if test "${with_kerberos5}" != no; then
86   if test "${with_kerberos}" = no; then
87     with_kerberos=yes
88     AC_DEFINE(KERBEROS)
89   fi
90   AC_DEFINE(KERBEROS5, 1, [Define to use Kerberos 5 instead of Kerberos 4.])
93 OPTION_DEFAULT_OFF([hesiod],[support Hesiod to get the POP server host])
94 dnl FIXME hesiod support may not be present, so it seems like an error
95 dnl to define, or at least use, this unconditionally.
96 if test "$with_hesiod" != no; then
97   AC_DEFINE(HESIOD, 1, [Define to support using a Hesiod database to find the POP server.])
100 OPTION_DEFAULT_OFF([mmdf],[support MMDF mailboxes])
101 if test "$with_mmdf" != no; then
102    AC_DEFINE(MAIL_USE_MMDF, 1, [Define to support MMDF mailboxes in movemail.])
105 OPTION_DEFAULT_OFF([mail-unlink],[unlink, rather than empty, mail spool after reading])
106 if test "$with_mail_unlink" != no; then
107    AC_DEFINE(MAIL_UNLINK_SPOOL, 1, [Define to unlink, rather than empty, mail spool after reading.])
110 AC_ARG_WITH([mailhost],[AS_HELP_STRING([--with-mailhost=HOSTNAME],
111     [string giving default POP mail host])],
112     AC_DEFINE_UNQUOTED(MAILHOST, ["$withval"], [String giving fallback POP mail host.]))
114 OPTION_DEFAULT_ON([sound],[don't compile with sound support])
116 OPTION_DEFAULT_ON([sync-input],[process async input synchronously])
117 if test "$with_sync_input" = yes; then
118    AC_DEFINE(SYNC_INPUT, 1, [Process async input synchronously.])
121 dnl FIXME currently it is not the last.
122 dnl This should be the last --with option, because --with-x is
123 dnl added later on when we find the path of X, and it's best to
124 dnl keep them together visually.
125 AC_ARG_WITH([x-toolkit],[AS_HELP_STRING([--with-x-toolkit=KIT],
126  [use an X toolkit (KIT one of: yes or gtk, lucid or athena, motif, no)])],
127 [         case "${withval}" in
128             y | ye | yes )      val=gtk ;;
129             n | no )            val=no  ;;
130             l | lu | luc | luci | lucid )       val=lucid ;;
131             a | at | ath | athe | athen | athena )      val=athena ;;
132             m | mo | mot | moti | motif )       val=motif ;;
133             g | gt | gtk  )     val=gtk ;;
134             * )
135 AC_MSG_ERROR([`--with-x-toolkit=$withval' is invalid;
136 this option's value should be `yes', `no', `lucid', `athena', `motif' or `gtk'.
137 `yes' and `gtk' are synonyms. `athena' and `lucid' are synonyms.])
138             ;;
139           esac
140           with_x_toolkit=$val
143 dnl _ON results in a '--without' option in the --help output, so
144 dnl the help text should refer to "don't compile", etc.
145 OPTION_DEFAULT_ON([xpm],[don't compile with XPM image support])
146 OPTION_DEFAULT_ON([jpeg],[don't compile with JPEG image support])
147 OPTION_DEFAULT_ON([tiff],[don't compile with TIFF image support])
148 OPTION_DEFAULT_ON([gif],[don't compile with GIF image support])
149 OPTION_DEFAULT_ON([png],[don't compile with PNG image support])
150 OPTION_DEFAULT_ON([rsvg],[don't compile with SVG image support])
152 OPTION_DEFAULT_ON([xft],[don't use XFT for anti aliased fonts])
153 OPTION_DEFAULT_ON([libotf],[don't use libotf for OpenType font support])
154 OPTION_DEFAULT_ON([m17n-flt],[don't use m17n-flt for text shaping])
156 OPTION_DEFAULT_ON([toolkit-scroll-bars],[don't use Motif or Xaw3d scroll bars])
157 OPTION_DEFAULT_ON([xaw3d],[don't use Xaw3d])
158 OPTION_DEFAULT_ON([xim],[don't use X11 XIM])
159 OPTION_DEFAULT_OFF([ns],[use nextstep (Cocoa or GNUstep) windowing system])
161 OPTION_DEFAULT_ON([gpm],[don't use -lgpm for mouse support on a GNU/Linux console])
162 OPTION_DEFAULT_ON([dbus],[don't compile with D-Bus support])
163 OPTION_DEFAULT_ON([gconf],[don't compile with GConf support])
165 ## For the times when you want to build Emacs but don't have
166 ## a suitable makeinfo, and can live without the manuals.
167 dnl http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01844.html
168 OPTION_DEFAULT_ON([makeinfo],[don't require makeinfo for building manuals])
170 dnl Can remove these in Emacs 24.
171 AC_ARG_WITH([gtk],,
172   [AC_MSG_ERROR([--with-gtk has been removed.  Use --with-x-toolkit to
173 specify a toolkit.])],,)
175 AC_ARG_WITH([gcc],,
176   [AC_MSG_ERROR([--with-gcc has been removed.  Set the `CC' environment
177 variable to specify a compiler.])],,)
179 AC_ARG_WITH([pkg-config-prog],dnl
180 [AS_HELP_STRING([--with-pkg-config-prog=PATH],
181                   [path to pkg-config for finding GTK and librsvg])])
182 if test "X${with_pkg_config_prog}" != X; then
183    if test "${with_pkg_config_prog}" != yes; then
184       PKG_CONFIG="${with_pkg_config_prog}"
185    fi
188 AC_ARG_WITH([gnustep-conf],dnl
189 [AS_HELP_STRING([--with-gnustep-conf=PATH],[path to GNUstep.conf; default $GNUSTEP_CONFIG_FILE, or /etc/GNUstep/GNUstep.conf])])
190 test "X${with_gnustep_conf}" != X && test "${with_gnustep_conf}" != yes && \
191   GNUSTEP_CONFIG_FILE="${with_gnustep_conf}"
192 test "X$GNUSTEP_CONFIG_FILE" = "X" && \
193      GNUSTEP_CONFIG_FILE=/etc/GNUstep/GNUstep.conf
195 AC_ARG_ENABLE(ns-self-contained,
196 [AS_HELP_STRING([--disable-ns-self-contained],
197                 [disable self contained build under NeXTstep])],
198    EN_NS_SELF_CONTAINED=$enableval,
199    EN_NS_SELF_CONTAINED=yes)
201 AC_ARG_ENABLE(asserts,
202 [AS_HELP_STRING([--enable-asserts], [compile code with asserts enabled])],
203       USE_XASSERTS=$enableval,
204       USE_XASSERTS=no)
206 AC_ARG_ENABLE(maintainer-mode,
207 [AS_HELP_STRING([--enable-maintainer-mode],
208                 [enable make rules and dependencies not useful (and sometimes
209                  confusing) to the casual installer])],
210       USE_MAINTAINER_MODE=$enableval,
211       USE_MAINTAINER_MODE=no)
212 if test $USE_MAINTAINER_MODE = yes; then
213   MAINT=
214 else
215   MAINT=#
217 AC_SUBST(MAINT)
219 AC_ARG_ENABLE(locallisppath,
220 [AS_HELP_STRING([--enable-locallisppath=PATH],
221                 [directories Emacs should search for lisp files specific
222                  to this site])],
223 if test "${enableval}" = "no"; then
224   locallisppath=
225 elif test "${enableval}" != "yes"; then
226   locallisppath=${enableval}
229 AC_ARG_ENABLE(checking,
230 [AS_HELP_STRING([--enable-checking@<:@=LIST@:>@],
231                 [enable expensive run-time checks.  With LIST,
232                  enable only specific categories of checks.
233                  Categories are: all,yes,no.
234                  Flags are: stringbytes, stringoverrun, stringfreelist,
235                  xmallocoverrun, conslist])],
236 [ac_checking_flags="${enableval}"],[])
237 IFS="${IFS=     }"; ac_save_IFS="$IFS"; IFS="$IFS,"
238 for check in $ac_checking_flags
240         case $check in
241         # these set all the flags to specific states
242         yes)            ac_enable_checking=1 ;;
243         no)             ac_enable_checking= ;
244                         ac_gc_check_stringbytes= ;
245                         ac_gc_check_string_overrun= ;
246                         ac_gc_check_string_free_list= ;
247                         ac_xmalloc_overrun= ;
248                         ac_gc_check_cons_list= ;;
249         all)            ac_enable_checking=1 ;
250                         ac_gc_check_stringbytes=1 ;
251                         ac_gc_check_string_overrun=1 ;
252                         ac_gc_check_string_free_list=1 ;
253                         ac_xmalloc_overrun=1 ;
254                         ac_gc_check_cons_list=1 ;;
255         # these enable particular checks
256         stringbytes)    ac_gc_check_stringbytes=1 ;;
257         stringoverrun)  ac_gc_check_string_overrun=1 ;;
258         stringfreelist) ac_gc_check_string_free_list=1 ;;
259         xmallocoverrun) ac_xmalloc_overrun=1 ;;
260         conslist)       ac_gc_check_cons_list=1 ;;
261         *)      AC_MSG_ERROR(unknown check category $check) ;;
262         esac
263 done
264 IFS="$ac_save_IFS"
266 if test x$ac_enable_checking != x ; then
267   AC_DEFINE(ENABLE_CHECKING, 1,
268 [Enable expensive run-time checking of data types?])
270 if test x$ac_gc_check_stringbytes != x ; then
271   AC_DEFINE(GC_CHECK_STRING_BYTES, 1,
272 [Define this temporarily to hunt a bug.  If defined, the size of
273    strings is redundantly recorded in sdata structures so that it can
274    be compared to the sizes recorded in Lisp strings.])
276 if test x$ac_gc_check_stringoverrun != x ; then
277   AC_DEFINE(GC_CHECK_STRING_OVERRUN, 1,
278 [Define this to check for short string overrun.])
280 if test x$ac_gc_check_string_free_list != x ; then
281   AC_DEFINE(GC_CHECK_STRING_FREE_LIST, 1,
282 [Define this to check the string free list.])
284 if test x$ac_xmalloc_overrun != x ; then
285   AC_DEFINE(XMALLOC_OVERRUN_CHECK, 1,
286 [Define this to check for malloc buffer overrun.])
288 if test x$ac_gc_check_cons_list != x ; then
289   AC_DEFINE(GC_CHECK_CONS_LIST, 1,
290 [Define this to check for errors in cons list.])
293 AC_ARG_ENABLE(profiling,
294 [AS_HELP_STRING([--enable-profiling],
295                 [build emacs with profiling support.
296                  This might not work on all platforms])],
297 [ac_enable_profiling="${enableval}"],[])
298 if test x$ac_enable_profiling != x ; then
299    PROFILING_CFLAGS="-DPROFILING=1 -pg"
300    PROFILING_LDFLAGS="-pg"
301 else
302    PROFILING_CFLAGS=
303    PROFILING_LDFLAGS=
306 AC_ARG_ENABLE(autodepend,
307 [AS_HELP_STRING([--enable-autodepend],
308                 [automatically generate dependencies to .h-files.
309                  Requires GNU Make and Gcc. Enabled if GNU Make and Gcc is
310                  found])],
311 [ac_enable_autodepend="${enableval}"],[ac_enable_autodepend=yes])
313 #### Make srcdir absolute, if it isn't already.  It's important to
314 #### avoid running the path through pwd unnecessarily, since pwd can
315 #### give you automounter prefixes, which can go away.  We do all this
316 #### so Emacs can find its files when run uninstalled.
317 ## Make sure CDPATH doesn't affect cd (in case PWD is relative).
318 unset CDPATH
319 case "${srcdir}" in
320   /* ) ;;
321   . )
322     ## We may be able to use the $PWD environment variable to make this
323     ## absolute.  But sometimes PWD is inaccurate.
324     ## Note: we used to use ${PWD} at the end instead of `pwd`,
325     ## but that tested only for a well-formed and valid PWD,
326     ## it did not object when PWD was well-formed and valid but just wrong.
327     if test ".${PWD}" != "." && test ".`(cd ${PWD} ; sh -c pwd)`" = ".`pwd`"  ;
328     then
329       srcdir="$PWD"
330     else
331       srcdir="`(cd ${srcdir}; pwd)`"
332     fi
333   ;;
334   *  ) srcdir="`(cd ${srcdir}; pwd)`" ;;
335 esac
337 #### Check if the source directory already has a configured system in it.
338 if test `pwd` != `(cd ${srcdir} && pwd)` \
339    && test -f "${srcdir}/src/config.h" ; then
340   AC_MSG_WARN([[The directory tree `${srcdir}' is being used
341    as a build directory right now; it has been configured in its own
342    right.  To configure in another directory as well, you MUST
343    use GNU make.  If you do not have GNU make, then you must
344    now do `make distclean' in ${srcdir},
345    and then run $0 again.]])
348 #### Given the configuration name, set machfile and opsysfile to the
349 #### names of the m/*.h and s/*.h files we should use.
351 ### Canonicalize the configuration name.
353 AC_CANONICAL_HOST
354 canonical=$host
355 configuration=${host_alias-${build_alias-$host}}
357 dnl This used to use changequote, but, apart from `changequote is evil'
358 dnl per the autoconf manual, we can speed up autoconf somewhat by quoting
359 dnl the great gob of text.  Thus it's not processed for possible expansion.
360 dnl Just make sure the brackets remain balanced.
362 dnl Since Emacs can't find matching pairs of quotes, boundaries are
363 dnl indicated by comments.
364 dnl quotation begins
367 ### If you add support for a new configuration, add code to this
368 ### switch statement to recognize your configuration name and select
369 ### the appropriate operating system and machine description files.
371 ### You would hope that you could choose an m/*.h file pretty much
372 ### based on the machine portion of the configuration name, and an s-
373 ### file based on the operating system portion.  However, it turns out
374 ### that each m/*.h file is pretty manufacturer-specific - for
375 ### example mips.h is MIPS
376 ### So we basically have to have a special case for each
377 ### configuration name.
379 ### As far as handling version numbers on operating systems is
380 ### concerned, make sure things will fail in a fixable way.  If
381 ### /etc/MACHINES doesn't say anything about version numbers, be
382 ### prepared to handle anything reasonably.  If version numbers
383 ### matter, be sure /etc/MACHINES says something about it.
385 ### Eric Raymond says we should accept strings like "sysvr4" to mean
386 ### "System V Release 4"; he writes, "The old convention encouraged
387 ### confusion between `system' and `release' levels'."
389 machine='' opsys='' unported=no
390 case "${canonical}" in
392   ## FreeBSD ports
393   *-*-freebsd* )
394     opsys=freebsd
395     case "${canonical}" in
396       alpha*-*-freebsd*)        machine=alpha ;;
397       arm*-*-freebsd*)          machine=arm ;;
398       ia64-*-freebsd*)          machine=ia64 ;;
399       sparc-*-freebsd*)         machine=sparc ;;
400       sparc64-*-freebsd*)       machine=sparc ;;
401       powerpc-*-freebsd*)       machine=macppc ;;
402       i[3456]86-*-freebsd*)     machine=intel386 ;;
403       amd64-*-freebsd*|x86_64-*-freebsd*) machine=amdx86-64 ;;
404     esac
405   ;;
407   ## FreeBSD kernel + glibc based userland
408   *-*-kfreebsd*gnu* )
409     opsys=gnu-kfreebsd
410     case "${canonical}" in
411       alpha*-*-kfreebsd*)       machine=alpha ;;
412       ia64-*-kfreebsd*)         machine=ia64 ;;
413       sparc-*-kfreebsd*)        machine=sparc ;;
414       sparc64-*-kfreebsd*)      machine=sparc ;;
415       powerpc-*-kfreebsd*)      machine=macppc ;;
416       i[3456]86-*-kfreebsd*)    machine=intel386 ;;
417       amd64-*-kfreebsd*|x86_64-*-kfreebsd*) machine=amdx86-64 ;;
418     esac
419   ;;
421   ## NetBSD ports
422   *-*-netbsd* )
423     opsys=netbsd
424     if test -f /usr/lib/crti.o; then]
425 dnl The close and open brackets here are because this section is quoted --
426 dnl see the `changequote' comment above.
427       AC_DEFINE(HAVE_CRTIN, [], [Define to 1 if you have /usr/lib/crti.o.])
428 [   fi
430     case "${canonical}" in
431       alpha*-*-netbsd*) machine=alpha ;;
432       i[3456]86-*-netbsd*) machine=intel386 ;;
433       mips-*-netbsd*)   machine=mips ;;
434       mipsel-*-netbsd*) machine=mips ;;
435       mipseb-*-netbsd*) machine=mips ;;
436       powerpc-*-netbsd*) machine=macppc ;;
437       sparc*-*-netbsd*) machine=sparc ;;
438       vax-*-netbsd*)    machine=vax ;;
439       arm-*-netbsd*)    machine=arm ;;
440       x86_64-*-netbsd*) machine=amdx86-64 ;;
441       hppa-*-netbsd*)   machine=hp800 ;;
442       m68k-*-netbsd*)   machine=m68k ;;
443     esac
444   ;;
446   ## OpenBSD ports
447   *-*-openbsd* )
448     opsys=openbsd
449     case "${canonical}" in
450       alpha*-*-openbsd*)        machine=alpha ;;
451       arm-*-openbsd*)          machine=arm ;;
452       i386-*-openbsd*)         machine=intel386 ;;
453       powerpc-*-openbsd*)      machine=macppc ;;
454       sparc*-*-openbsd*)       machine=sparc ;;
455       vax-*-openbsd*)          machine=vax ;;
456       x86_64-*-openbsd*)       machine=amdx86-64 ;;
457       hppa-*-openbsd*)         machine=hp800 ;;
458     esac
459   ;;
461   alpha*-*-linux-gnu* )
462     machine=alpha opsys=gnu-linux
463   ;;
465   arm*-*-linux-gnu* )
466     machine=arm opsys=gnu-linux
467   ;;
469   ## Apple Darwin / Mac OS X
470   *-apple-darwin* )
471     case "${canonical}" in
472       i[3456]86-* )  machine=intel386 ;;
473       powerpc-* )    machine=macppc ;;
474       x86_64-* )     machine=amdx86-64 ;;
475       * )            unported=yes ;;
476     esac
477     opsys=darwin
478     # Define CPP as follows to make autoconf work correctly.
479     CPP="${CC-cc} -E -no-cpp-precomp"
480     # Use fink packages if available.
481     if test -d /sw/include && test -d /sw/lib; then
482       GCC_TEST_OPTIONS="-I/sw/include -L/sw/lib"
483       CPP="${CPP} ${GCC_TEST_OPTIONS}"
484       NON_GCC_TEST_OPTIONS=${GCC_TEST_OPTIONS}
485     fi
486   ;;
488   ## HP 9000 series 700 and 800, running HP/UX
489   hppa*-hp-hpux10.2* )
490     machine=hp800 opsys=hpux10-20
491   ;;
492   hppa*-hp-hpux1[1-9]* )
493     machine=hp800 opsys=hpux11
494     CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS"
495   ;;
497   hppa*-*-linux-gnu* )
498     machine=hp800 opsys=gnu-linux
499   ;;
501   ## IBM machines
502   s390-*-linux-gnu* )
503     machine=ibms390 opsys=gnu-linux
504   ;;
505   s390x-*-linux-gnu* )
506     machine=ibms390x opsys=gnu-linux
507   ;;
508   rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2*  )
509     machine=ibmrs6000 opsys=aix4-2
510   ;;
511   rs6000-ibm-aix4.3* | powerpc-ibm-aix4.3*  )
512     machine=ibmrs6000 opsys=aix4-2
513   ;;
514   rs6000-ibm-aix5* | powerpc-ibm-aix5*  )
515     machine=ibmrs6000 opsys=aix4-2
516   ;;
517   rs6000-ibm-aix6* | powerpc-ibm-aix6*  )
518     machine=ibmrs6000 opsys=aix4-2
519   ;;
521   ## Macintosh PowerPC
522   powerpc*-*-linux-gnu* )
523     machine=macppc opsys=gnu-linux
524   ;;
526   ## Silicon Graphics machines
527   ## Iris 4D
528   mips-sgi-irix6.5 )
529     machine=iris4d opsys=irix6-5
530     # Without defining _LANGUAGE_C, things get masked out in the headers
531     # so that, for instance, grepping for `free' in stdlib.h fails and
532     # AC_HEADER_STD_C fails.   (MIPSPro 7.2.1.2m compilers, Irix 6.5.3m).
533     NON_GNU_CPP="/lib/cpp -D_LANGUAGE_C"
534     NON_GCC_TEST_OPTIONS="-D_LANGUAGE_C"
535   ;;
537   ## Suns
538   sparc-*-linux-gnu* | sparc64-*-linux-gnu* )
539     machine=sparc opsys=gnu-linux
540   ;;
542   *-sun-solaris* \
543     | i[3456]86-*-solaris2* | i[3456]86-*-sunos5* \
544     | x86_64-*-solaris2*    | x86_64-*-sunos5*)
545     case "${canonical}" in
546       i[3456]86-*-* )     machine=intel386 ;;
547       amd64-*-*|x86_64-*-*)     machine=amdx86-64 ;;
548       sparc* )          machine=sparc ;;
549       * )               unported=yes ;;
550     esac
551     case "${canonical}" in
552       *-sunos5.6* | *-solaris2.6* )
553                 opsys=sol2-6
554                 NON_GNU_CPP=/usr/ccs/lib/cpp
555                 RANLIB="ar -ts"
556                 ;;
557       *-sunos5.[7-9]* | *-solaris2.[7-9]* )
558                 opsys=sol2-6
559                 emacs_check_sunpro_c=yes
560                 NON_GNU_CPP=/usr/ccs/lib/cpp
561                 ;;
562       *-sunos5* | *-solaris* )
563                 opsys=sol2-10
564                 emacs_check_sunpro_c=yes
565                 NON_GNU_CPP=/usr/ccs/lib/cpp
566                 ;;
567     esac
568     ## Watch out for a compiler that we know will not work.
569     case "${canonical}" in
570      *-solaris* | *-sunos5* )
571                 if [ "x$CC" = x/usr/ucb/cc ]; then
572                   ## /usr/ucb/cc doesn't work;
573                   ## we should find some other compiler that does work.
574                   unset CC
575                 fi
576                 ;;
577       *) ;;
578     esac
579   ;;
581   ## IA-64
582   ia64*-*-linux* )
583     machine=ia64 opsys=gnu-linux
584   ;;
586   ## Intel 386 machines where we don't care about the manufacturer
587   i[3456]86-*-* )
588     machine=intel386
589     case "${canonical}" in
590       *-cygwin )                opsys=cygwin ;;
591       *-darwin* )               opsys=darwin
592                                 CPP="${CC-cc} -E -no-cpp-precomp"
593                                 ;;
594       *-linux-gnu* )            opsys=gnu-linux ;;
595       *-sysv4.2uw* )            opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
596       *-sysv5uw* )              opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
597       *-sysv5OpenUNIX* )        opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
598       ## Otherwise, we'll fall through to the generic opsys code at the bottom.
599     esac
600   ;;
602   ## m68k Linux-based GNU system
603   m68k-*-linux-gnu* )
604     machine=m68k opsys=gnu-linux
605   ;;
607   ## Mips Linux-based GNU system
608   mips-*-linux-gnu* | mipsel-*-linux-gnu* \
609     | mips64-*-linux-gnu* | mips64el-*-linux-gnu* )
610     machine=mips opsys=gnu-linux
611   ;;
613   ## AMD x86-64 Linux-based GNU system
614   x86_64-*-linux-gnu* )
615     machine=amdx86-64 opsys=gnu-linux
616   ;;
618   ## Tensilica Xtensa Linux-based GNU system
619   xtensa*-*-linux-gnu* )
620     machine=xtensa opsys=gnu-linux
621     ;;
623   ## SuperH Linux-based GNU system
624   sh[34]*-*-linux-gnu* )
625     machine=sh3 opsys=gnu-linux
626   ;;
628   * )
629     unported=yes
630   ;;
631 esac
633 ### If the code above didn't choose an operating system, just choose
634 ### an operating system based on the configuration name.  You really
635 ### only want to use this when you have no idea what the right
636 ### operating system is; if you know what operating systems a machine
637 ### runs, it's cleaner to make it explicit in the case statement
638 ### above.
639 if test x"${opsys}" = x; then
640   case "${canonical}" in
641     *-gnu* )                            opsys=gnu ;;
642     * )
643       unported=yes
644     ;;
645   esac
649 dnl quotation ends
651 if test $unported = yes; then
652   AC_MSG_ERROR([Emacs hasn't been ported to `${canonical}' systems.
653 Check `etc/MACHINES' for recognized configuration names.])
656 machfile="m/${machine}.h"
657 opsysfile="s/${opsys}.h"
660 #### Choose a compiler.
661 test -n "$CC" && cc_specified=yes
663 # Save the value of CFLAGS that the user specified.
664 SPECIFIED_CFLAGS="$CFLAGS"
666 dnl Sets GCC=yes if using gcc.
667 AC_PROG_CC
669 # On Suns, sometimes $CPP names a directory.
670 if test -n "$CPP" && test -d "$CPP"; then
671   CPP=
674 ## If not using gcc, and on Solaris, and no CPP specified, see if
675 ## using a Sun compiler, which needs -Xs to prevent whitespace.
676 if test x"$GCC" != xyes && test x"$emacs_check_sunpro_c" = xyes && \
677  test x"$CPP" = x; then
678   AC_MSG_CHECKING([whether we are using a Sun C compiler])
679   AC_CACHE_VAL(emacs_cv_sunpro_c,
680   [AC_TRY_LINK([],
681 [#ifndef __SUNPRO_C
682 fail;
683 #endif
684 ], emacs_cv_sunpro_c=yes, emacs_cv_sunpro_c=no)])
685   AC_MSG_RESULT($emacs_cv_sunpro_c)
687   if test x"$emacs_cv_sunpro_c" = xyes; then
688     NON_GNU_CPP="$CC -E -Xs"
689   fi
692 #### Some systems specify a CPP to use unless we are using GCC.
693 #### Now that we know whether we are using GCC, we can decide whether
694 #### to use that one.
695 if test "x$NON_GNU_CPP" != x && test x$GCC != xyes && test "x$CPP" = x
696 then
697   CPP="$NON_GNU_CPP"
700 #### Some systems specify a CC to use unless we are using GCC.
701 #### Now that we know whether we are using GCC, we can decide whether
702 #### to use that one.
703 if test "x$NON_GNU_CC" != x && test x$GCC != xyes &&
704   test x$cc_specified != xyes
705 then
706   CC="$NON_GNU_CC"
709 if test x$GCC = xyes && test "x$GCC_TEST_OPTIONS" != x
710 then
711   CC="$CC $GCC_TEST_OPTIONS"
714 if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x
715 then
716   CC="$CC $NON_GCC_TEST_OPTIONS"
719 dnl checks for Unix variants
720 AC_USE_SYSTEM_EXTENSIONS
722 ### Use -Wno-pointer-sign if the compiler supports it
723 AC_MSG_CHECKING([whether gcc understands -Wno-pointer-sign])
724 SAVE_CFLAGS="$CFLAGS"
725 CFLAGS="$CFLAGS -Wno-pointer-sign"
726 AC_TRY_COMPILE([], [], has_option=yes, has_option=no,)
727 if test $has_option = yes; then
728    C_WARNINGS_SWITCH="-Wno-pointer-sign $C_WARNINGS_SWITCH"
730 AC_MSG_RESULT($has_option)
731 CFLAGS="$SAVE_CFLAGS"
732 unset has_option
733 unset SAVE_CFLAGS
735 ### Use -Wdeclaration-after-statement if the compiler supports it
736 AC_MSG_CHECKING([whether gcc understands -Wdeclaration-after-statement])
737 SAVE_CFLAGS="$CFLAGS"
738 CFLAGS="$CFLAGS -Wdeclaration-after-statement"
739 AC_TRY_COMPILE([], [], has_option=yes, has_option=no,)
740 if test $has_option = yes; then
741    C_WARNINGS_SWITCH="-Wdeclaration-after-statement $C_WARNINGS_SWITCH"
743 AC_MSG_RESULT($has_option)
744 CFLAGS="$SAVE_CFLAGS"
745 unset has_option
746 unset SAVE_CFLAGS
748 #### Some other nice autoconf tests.
750 dnl checks for programs
751 AC_PROG_LN_S
752 AC_PROG_CPP
753 AC_PROG_INSTALL
754 if test "x$RANLIB" = x; then
755   AC_PROG_RANLIB
757 AC_PATH_PROG(INSTALL_INFO, install-info)
758 AC_PATH_PROG(INSTALL_INFO, install-info,, /usr/sbin)
759 AC_PATH_PROG(INSTALL_INFO, install-info,:, /sbin)
760 dnl Don't use GZIP, which is used by gzip for additional parameters.
761 AC_PATH_PROG(GZIP_PROG, gzip)
764 ## Need makeinfo >= 4.6 (?) to build the manuals.
765 AC_PATH_PROG(MAKEINFO, makeinfo, no)
766 dnl By this stage, configure has already checked for egrep and set EGREP,
767 dnl or exited with an error if no egrep was found.
768 if test "$MAKEINFO" != "no" && \
769   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
770    MAKEINFO=no
773 ## Makeinfo is unusual.  For a released Emacs, the manuals are
774 ## pre-built, and not deleted by the normal clean rules.  makeinfo is
775 ## therefore in the category of "special tools" not normally required, which
776 ## configure does not have to check for (eg autoconf itself).
777 ## In a Bazaar checkout on the other hand, the manuals are not included.
778 ## So makeinfo is a requirement to build from Bazaar, and configure
779 ## should test for it as it does for any other build requirement.
780 ## We use the presence of $srcdir/info/emacs to distinguish a release,
781 ## with pre-built manuals, from a Bazaar checkout.
782 if test "$MAKEINFO" = "no"; then
783   if test "x${with_makeinfo}" = "xno"; then
784     MAKEINFO=off
785   elif ! test -e $srcdir/info/emacs; then
786     AC_MSG_ERROR( [You do not seem to have makeinfo >= 4.6, and your
787 source tree does not seem to have pre-built manuals in the `info' directory.
788 Either install a suitable version of makeinfo, or re-run configure
789 with the `--without-makeinfo' option to build without the manuals.] )
790   fi
793 dnl Add our options to ac_link now, after it is set up.
795 if test x$GCC = xyes && test "x$GCC_LINK_TEST_OPTIONS" != x
796 then
797   ac_link="$ac_link $GCC_LINK_TEST_OPTIONS"
800 if test x$GCC = x && test "x$NON_GCC_LINK_TEST_OPTIONS" != x
801 then
802   ac_link="$ac_link $NON_GCC_LINK_TEST_OPTIONS"
805 dnl We need -znocombreloc if we're using a relatively recent GNU ld.
806 dnl If we can link with the flag, it shouldn't do any harm anyhow.
807 dnl (Don't use `-z nocombreloc' as -z takes no arg on Irix.)
808 dnl Treat GCC specially since it just gives a non-fatal `unrecognized option'
809 dnl if not built to support GNU ld.
811 late_LDFLAGS=$LDFLAGS
812 if test "$GCC" = yes; then
813   LDFLAGS="$LDFLAGS -Wl,-znocombreloc"
814 else
815   LDFLAGS="$LDFLAGS -znocombreloc"
818 AC_MSG_CHECKING([for -znocombreloc])
819 AC_LINK_IFELSE([main(){return 0;}],
820   [AC_MSG_RESULT(yes)],
821   LDFLAGS=$late_LDFLAGS
822   [AC_MSG_RESULT(no)])
824 #### Extract some information from the operating system and machine files.
826 AC_CHECKING([the machine- and system-dependent files to find out
827  - which libraries the lib-src programs will want, and
828  - whether the GNU malloc routines are usable])
830 ### First figure out CFLAGS (which we use for running the compiler here)
831 ### and REAL_CFLAGS (which we use for real compilation).
832 ### The two are the same except on a few systems, where they are made
833 ### different to work around various lossages.  For example,
834 ### GCC 2.5 on GNU/Linux needs them to be different because it treats -g
835 ### as implying static linking.
837 ### If the CFLAGS env var is specified, we use that value
838 ### instead of the default.
840 ### It's not important that this name contain the PID; you can't run
841 ### two configures in the same directory and have anything work
842 ### anyway.
843 tempcname="conftest.c"
845 echo '
846 #include "'${srcdir}'/src/'${opsysfile}'"
847 #include "'${srcdir}'/src/'${machfile}'"
848 #ifndef LIBS_MACHINE
849 #define LIBS_MACHINE
850 #endif
851 #ifndef LIBS_SYSTEM
852 #define LIBS_SYSTEM
853 #endif
854 #ifndef C_SWITCH_SYSTEM
855 #define C_SWITCH_SYSTEM
856 #endif
857 #ifndef C_SWITCH_MACHINE
858 #define C_SWITCH_MACHINE
859 #endif
860 configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
861 configure___ c_switch_system=C_SWITCH_SYSTEM
862 configure___ c_switch_machine=C_SWITCH_MACHINE
864 #ifndef LIB_X11_LIB
865 #define LIB_X11_LIB -lX11
866 #endif
868 #ifndef LIBX11_SYSTEM
869 #define LIBX11_SYSTEM
870 #endif
871 configure___ LIBX=LIB_X11_LIB LIBX11_SYSTEM
873 #ifdef UNEXEC
874 configure___ unexec=UNEXEC
875 #else
876 configure___ unexec=unexec.o
877 #endif
879 #ifdef SYSTEM_MALLOC
880 configure___ system_malloc=yes
881 #else
882 configure___ system_malloc=no
883 #endif
885 #ifdef USE_MMAP_FOR_BUFFERS
886 configure___ use_mmap_for_buffers=yes
887 #else
888 configure___ use_mmap_for_buffers=no
889 #endif
891 #ifndef C_DEBUG_SWITCH
892 #define C_DEBUG_SWITCH -g
893 #endif
895 #ifndef C_OPTIMIZE_SWITCH
896 #ifdef __GNUC__
897 #define C_OPTIMIZE_SWITCH -O2
898 #else
899 #define C_OPTIMIZE_SWITCH -O
900 #endif
901 #endif
903 #ifndef C_WARNINGS_SWITCH
904 #define C_WARNINGS_SWITCH ${C_WARNINGS_SWITCH}
905 #endif
907 #ifndef LD_SWITCH_MACHINE
908 #define LD_SWITCH_MACHINE
909 #endif
911 #ifndef LD_SWITCH_SYSTEM
912 #define LD_SWITCH_SYSTEM
913 #endif
915 #ifndef LD_SWITCH_X_SITE_AUX
916 #define LD_SWITCH_X_SITE_AUX
917 #endif
919 configure___ ld_switch_system=LD_SWITCH_SYSTEM
920 configure___ ld_switch_machine=LD_SWITCH_MACHINE
922 #ifdef THIS_IS_CONFIGURE
924 /* Get the CFLAGS for tests in configure.  */
925 #ifdef __GNUC__
926 configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}'
927 #else
928 configure___ CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
929 #endif
931 #else /* not THIS_IS_CONFIGURE */
933 /* Get the CFLAGS for real compilation.  */
934 #ifdef __GNUC__
935 configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH C_WARNINGS_SWITCH ${PROFILING_CFLAGS} '${SPECIFIED_CFLAGS}'
936 #else
937 configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
938 #endif
940 #endif /* not THIS_IS_CONFIGURE */
941 ' > ${tempcname}
943 LDFLAGS="${LDFLAGS} ${PROFILING_LDFLAGS}"
945 # The value of CPP is a quoted variable reference, so we need to do this
946 # to get its actual value...
947 CPP=`eval "echo $CPP"`
948 [eval `${CPP} -Isrc ${tempcname} \
949        | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
950 if test "x$SPECIFIED_CFLAGS" = x; then
951   eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \
952          | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
953 else
954   REAL_CFLAGS="$CFLAGS"
956 rm ${tempcname}
958 ac_link="$ac_link $ld_switch_machine $ld_switch_system"
960 ### Make sure subsequent tests use flags consistent with the build flags.
962 if test x"${OVERRIDE_CPPFLAGS}" != x; then
963   CPPFLAGS="${OVERRIDE_CPPFLAGS}"
964 else
965   CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
968 dnl For AC_FUNC_GETLOADAVG, at least:
969 AC_CONFIG_LIBOBJ_DIR(src)
971 dnl Do this early because it can frob feature test macros for Unix-98 &c.
972 AC_SYS_LARGEFILE
975 ### The standard library on x86-64 and s390x GNU/Linux distributions can
976 ### be located in either /usr/lib64 or /usr/lib.
977 ### In some rare cases, /usr/lib64 exists but does not contain the
978 ### relevant files (bug#1287).  Hence test for crtn.o.
979 case "${canonical}" in
980   x86_64-*-linux-gnu* | s390x-*-linux-gnu* )
981     if test -e /usr/lib64/crtn.o; then
982       AC_DEFINE(HAVE_LIB64_DIR, 1,
983         [Define to 1 if the directory /usr/lib64 exists.])
985 esac
987 dnl This function defintion taken from Gnome 2.0
988 dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
989 dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
990 dnl also defines GSTUFF_PKG_ERRORS on error
991 AC_DEFUN([PKG_CHECK_MODULES], [
992   succeeded=no
994   AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
996   if test "$PKG_CONFIG" = "no" ; then
997      ifelse([$4], , [AC_MSG_ERROR([
998       *** 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])
999   else
1000      PKG_CONFIG_MIN_VERSION=0.9.0
1001      if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
1002         AC_MSG_CHECKING(for $2)
1004         if $PKG_CONFIG --exists "$2" 2>&AS_MESSAGE_LOG_FD; then
1005             AC_MSG_RESULT(yes)
1006             succeeded=yes
1008             AC_MSG_CHECKING($1_CFLAGS)
1009             $1_CFLAGS=`$PKG_CONFIG --cflags "$2"|sed -e 's,///*,/,g'`
1010             AC_MSG_RESULT($$1_CFLAGS)
1012             AC_MSG_CHECKING($1_LIBS)
1013             $1_LIBS=`$PKG_CONFIG --libs "$2"|sed -e 's,///*,/,g'`
1014             AC_MSG_RESULT($$1_LIBS)
1015         else
1016             AC_MSG_RESULT(no)
1017             $1_CFLAGS=""
1018             $1_LIBS=""
1019             ## If we have a custom action on failure, don't print errors, but
1020             ## do set a variable so people can do so.
1021             $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
1022             ifelse([$4], ,echo $$1_PKG_ERRORS,)
1023         fi
1025         AC_SUBST($1_CFLAGS)
1026         AC_SUBST($1_LIBS)
1027      else
1028         echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
1029         echo "*** See http://www.freedesktop.org/software/pkgconfig"
1030      fi
1031   fi
1033   if test $succeeded = yes; then
1034      ifelse([$3], , :, [$3])
1035   else
1036      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])
1037   fi
1041 if test "${with_sound}" != "no"; then
1042   # Sound support for GNU/Linux and the free BSDs.
1043   AC_CHECK_HEADERS(machine/soundcard.h sys/soundcard.h soundcard.h)
1044   # Emulation library used on NetBSD.
1045   AC_CHECK_LIB(ossaudio, _oss_ioctl, LIBSOUND=-lossaudio, LIBSOUND=)
1046   AC_SUBST(LIBSOUND)
1048   ALSA_REQUIRED=1.0.0
1049   ALSA_MODULES="alsa >= $ALSA_REQUIRED"
1050   PKG_CHECK_MODULES(ALSA, $ALSA_MODULES, HAVE_ALSA=yes, HAVE_ALSA=no)
1051   if test $HAVE_ALSA = yes; then
1052     SAVE_CFLAGS="$CFLAGS"
1053     SAVE_LDFLAGS="$LDFLAGS"
1054     CFLAGS="$ALSA_CFLAGS $CFLAGS"
1055     LDFLAGS="$ALSA_LIBS $LDFLAGS"
1056     AC_TRY_COMPILE([#include <asoundlib.h>], [snd_lib_error_set_handler (0);],
1057                     emacs_alsa_normal=yes,
1058                     emacs_alsa_normal=no)
1059     if test "$emacs_alsa_normal" != yes; then
1060       AC_TRY_COMPILE([#include <alsa/asoundlib.h>],
1061                      [snd_lib_error_set_handler (0);],
1062                      emacs_alsa_subdir=yes,
1063                      emacs_alsa_subdir=no)
1064       if test "$emacs_alsa_subdir" != yes; then
1065         AC_MSG_ERROR([pkg-config found alsa, but it does not compile.  See config.log for error messages.])
1066       fi
1067       ALSA_CFLAGS="$ALSA_CFLAGS -DALSA_SUBDIR_INCLUDE"
1068     fi
1070     CFLAGS="$SAVE_CFLAGS"
1071     LDFLAGS="$SAVE_LDFLAGS"
1072     LIBSOUND="$LIBSOUND $ALSA_LIBS"
1073     CFLAGS_SOUND="$CFLAGS_SOUND $ALSA_CFLAGS"
1074     AC_DEFINE(HAVE_ALSA, 1, [Define to 1 if ALSA is available.])
1075   fi
1076   AC_SUBST(CFLAGS_SOUND)
1079 dnl checks for header files
1080 AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \
1081   linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \
1082   stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \
1083   sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \
1084   sys/utsname.h pwd.h utmp.h)
1086 AC_MSG_CHECKING(if personality LINUX32 can be set)
1087 AC_TRY_COMPILE([#include <sys/personality.h>], [personality (PER_LINUX32)],
1088                emacs_cv_personality_linux32=yes,
1089                emacs_cv_personality_linux32=no)
1090 AC_MSG_RESULT($emacs_cv_personality_linux32)
1092 if test $emacs_cv_personality_linux32 = yes; then
1093   AC_DEFINE(HAVE_PERSONALITY_LINUX32, 1,
1094             [Define to 1 if personality LINUX32 can be set.])
1097 dnl On Solaris 8 there's a compilation warning for term.h because
1098 dnl it doesn't define `bool'.
1099 AC_CHECK_HEADERS(term.h, , , -)
1100 AC_HEADER_STDC
1101 AC_HEADER_TIME
1102 AC_CHECK_DECLS([sys_siglist])
1103 if test $ac_cv_have_decl_sys_siglist != yes; then
1104   # For Tru64, at least:
1105   AC_CHECK_DECLS([__sys_siglist])
1106   if test $ac_cv_have_decl___sys_siglist = yes; then
1107     AC_DEFINE(sys_siglist, __sys_siglist,
1108               [Define to any substitute for sys_siglist.])
1109   fi
1111 AC_HEADER_SYS_WAIT
1113 dnl Some systems have utime.h but don't declare the struct anyplace.
1114 AC_CACHE_CHECK(for struct utimbuf, emacs_cv_struct_utimbuf,
1115 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
1116 #include <sys/time.h>
1117 #include <time.h>
1118 #else
1119 #ifdef HAVE_SYS_TIME_H
1120 #include <sys/time.h>
1121 #else
1122 #include <time.h>
1123 #endif
1124 #endif
1125 #ifdef HAVE_UTIME_H
1126 #include <utime.h>
1127 #endif], [static struct utimbuf x; x.actime = x.modtime;],
1128   emacs_cv_struct_utimbuf=yes, emacs_cv_struct_utimbuf=no))
1129 if test $emacs_cv_struct_utimbuf = yes; then
1130   AC_DEFINE(HAVE_STRUCT_UTIMBUF, 1, [Define to 1 if `struct utimbuf' is declared by <utime.h>.])
1133 dnl checks for typedefs
1134 AC_TYPE_SIGNAL
1136 dnl Check for speed_t typedef.
1137 AC_CACHE_CHECK(for speed_t, emacs_cv_speed_t,
1138   [AC_TRY_COMPILE([#include <termios.h>], [speed_t x = 1;],
1139     emacs_cv_speed_t=yes, emacs_cv_speed_t=no)])
1140 if test $emacs_cv_speed_t = yes; then
1141   AC_DEFINE(HAVE_SPEED_T, 1,
1142            [Define to 1 if `speed_t' is declared by <termios.h>.])
1145 AC_CACHE_CHECK(for struct timeval, emacs_cv_struct_timeval,
1146 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
1147 #include <sys/time.h>
1148 #include <time.h>
1149 #else
1150 #ifdef HAVE_SYS_TIME_H
1151 #include <sys/time.h>
1152 #else
1153 #include <time.h>
1154 #endif
1155 #endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
1156   emacs_cv_struct_timeval=yes, emacs_cv_struct_timeval=no))
1157 HAVE_TIMEVAL=$emacs_cv_struct_timeval
1158 if test $emacs_cv_struct_timeval = yes; then
1159   AC_DEFINE(HAVE_TIMEVAL, 1, [Define to 1 if `struct timeval' is declared by <sys/time.h>.])
1162 AC_CACHE_CHECK(for struct exception, emacs_cv_struct_exception,
1163 AC_TRY_COMPILE([#include <math.h>],
1164 [static struct exception x; x.arg1 = x.arg2 = x.retval; x.name = ""; x.type = 1;],
1165   emacs_cv_struct_exception=yes, emacs_cv_struct_exception=no))
1166 HAVE_EXCEPTION=$emacs_cv_struct_exception
1167 if test $emacs_cv_struct_exception != yes; then
1168   AC_DEFINE(NO_MATHERR, 1, [Define to 1 if you don't have struct exception in math.h.])
1171 AC_CHECK_HEADERS(sys/socket.h)
1172 AC_CHECK_HEADERS(net/if.h, , , [AC_INCLUDES_DEFAULT
1173 #if HAVE_SYS_SOCKET_H
1174 #include <sys/socket.h>
1175 #endif])
1177 dnl checks for structure members
1178 AC_STRUCT_TM
1179 AC_STRUCT_TIMEZONE
1180 AC_CHECK_MEMBER(struct tm.tm_gmtoff,
1181                 [AC_DEFINE(HAVE_TM_GMTOFF, 1,
1182                            [Define to 1 if `tm_gmtoff' is member of `struct tm'.])],,
1183                 [#include <time.h>])
1184 AC_CHECK_MEMBERS([struct ifreq.ifr_flags, struct ifreq.ifr_hwaddr,
1185                   struct ifreq.ifr_netmask, struct ifreq.ifr_broadaddr,
1186                   struct ifreq.ifr_addr], , ,
1187                  [AC_INCLUDES_DEFAULT
1188 #if HAVE_SYS_SOCKET_H
1189 #include <sys/socket.h>
1190 #endif
1191 #if HAVE_NET_IF_H
1192 #include <net/if.h>
1193 #endif])
1195 dnl checks for compiler characteristics
1197 dnl Testing __STDC__ to determine prototype support isn't good enough.
1198 dnl DEC C, for instance, doesn't define it with default options, and
1199 dnl is used on 64-bit systems (OSF Alphas).  Similarly for volatile
1200 dnl and void *.
1201 AC_C_PROTOTYPES
1202 AC_C_VOLATILE
1203 AC_C_CONST
1204 dnl This isn't useful because we can't turn on use of `inline' unless
1205 dnl the compiler groks `extern inline'.
1206 dnl AC_C_INLINE
1207 AC_CACHE_CHECK([for void * support], emacs_cv_void_star,
1208   [AC_TRY_COMPILE(, [void * foo;],
1209                    emacs_cv_void_star=yes, emacs_cv_void_star=no)])
1210 if test $emacs_cv_void_star = yes; then
1211   AC_DEFINE(POINTER_TYPE, void)
1212 else
1213   AC_DEFINE(POINTER_TYPE, char)
1215 AH_TEMPLATE(POINTER_TYPE,
1216             [Define as `void' if your compiler accepts `void *'; otherwise
1217              define as `char'.])dnl
1221 dnl This could be used for targets which can have both byte sexes.
1222 dnl We could presumably replace the hardwired WORDS_BIG_ENDIAN generally.
1223 dnl AC_C_BIGENDIAN
1225 dnl check for Make feature
1226 AC_PROG_MAKE_SET
1228 dnl check for GNU Make if we have GCC and autodepend is on.
1229 if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then
1230    AC_MSG_CHECKING([whether we are using GNU Make])
1231    HAVE_GNU_MAKE=no
1232    testval=`make --version 2>/dev/null | grep 'GNU Make'`
1233    if test "x$testval" != x; then
1234       HAVE_GNU_MAKE=yes
1235    else
1236       ac_enable_autodepend=no
1237    fi
1238    AC_MSG_RESULT([$HAVE_GNU_MAKE])
1239    if test $HAVE_GNU_MAKE = yes; then
1240       AC_MSG_CHECKING([whether gcc understands -MMD -MF])
1241       SAVE_CFLAGS="$CFLAGS"
1242       CFLAGS="$CFLAGS -MMD -MF deps.d"
1243       AC_TRY_COMPILE([], [], , ac_enable_autodepend=no)
1244       CFLAGS="$SAVE_CFLAGS"
1245       test -f deps.d || ac_enable_autodepend=no
1246       rm -rf deps.d
1247       AC_MSG_RESULT([$ac_enable_autodepend])
1248    fi
1249    if test $ac_enable_autodepend = yes; then
1250       AC_DEFINE(AUTO_DEPEND, 1, [Generate dependencies with gcc.])
1251    fi
1254 dnl checks for operating system services
1255 AC_SYS_LONG_FILE_NAMES
1257 #### Choose a window system.
1259 AC_PATH_X
1260 if test "$no_x" = yes; then
1261   window_system=none
1262 else
1263   window_system=x11
1266 ## Workaround for bug in autoconf <= 2.62.
1267 ## http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01551.html
1268 ## No need to do anything special for these standard directories.
1269 ## This is an experiment, take it out if it causes problems.
1270 if test -n "${x_libraries}" && test x"${x_libraries}" != xNONE; then
1272    x_libraries=`echo :${x_libraries}: | sed -e 's|:/usr/lib64:|:|g' -e 's|:/lib64:|:|g' -e 's|^:||' -e 's|:$||'`
1276 if test "${x_libraries}" != NONE; then
1277   if test -n "${x_libraries}"; then
1278     LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
1279     LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
1280   fi
1281   x_default_search_path=""
1282   x_search_path=${x_libraries}
1283   if test -z "${x_search_path}"; then
1284     x_search_path=/usr/lib
1285   fi
1286   for x_library in `echo ${x_search_path}: | \
1287                     sed -e "s/:/ /g" -e p -e "s:/lib[[^ /]]* :/share :g"`; do
1288     x_search_path="\
1289 ${x_library}/X11/%L/%T/%N%C%S:\
1290 ${x_library}/X11/%l/%T/%N%C%S:\
1291 ${x_library}/X11/%T/%N%C%S:\
1292 ${x_library}/X11/%L/%T/%N%S:\
1293 ${x_library}/X11/%l/%T/%N%S:\
1294 ${x_library}/X11/%T/%N%S"
1295     if test x"${x_default_search_path}" = x; then
1296       x_default_search_path=${x_search_path}
1297     else
1298       x_default_search_path="${x_search_path}:${x_default_search_path}"
1299     fi
1300   done
1302 if test "${x_includes}" != NONE && test -n "${x_includes}"; then
1303   C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"`
1306 if test x"${x_includes}" = x; then
1307   bitmapdir=/usr/include/X11/bitmaps
1308 else
1309   # accumulate include directories that have X11 bitmap subdirectories
1310   bmd_acc="dummyval"
1311   for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do
1312     if test -d "${bmd}/X11/bitmaps"; then
1313       bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps"
1314     fi
1315     if test -d "${bmd}/bitmaps"; then
1316       bmd_acc="${bmd_acc}:${bmd}/bitmaps"
1317     fi
1318   done
1319   if test ${bmd_acc} != "dummyval"; then
1320     bitmapdir=`echo ${bmd_acc} | sed -e "s/^dummyval://"`
1321   fi
1324 HAVE_NS=no
1325 NS_IMPL_COCOA=no
1326 NS_IMPL_GNUSTEP=no
1327 tmp_CPPFLAGS="$CPPFLAGS"
1328 tmp_CFLAGS="$CFLAGS"
1329 CPPFLAGS="$CPPFLAGS -x objective-c"
1330 CFLAGS="$CFLAGS -x objective-c"
1331 if test "${with_ns}" != no; then
1332   if test "${opsys}" = darwin; then
1333      NS_IMPL_COCOA=yes
1334      ns_appdir=`pwd`/nextstep/Emacs.app
1335      ns_appbindir=`pwd`/nextstep/Emacs.app/Contents/MacOS
1336      ns_appresdir=`pwd`/nextstep/Emacs.app/Contents/Resources
1337      ns_appsrc=${srcdir}/nextstep/Cocoa/Emacs.base
1338   elif test -f $GNUSTEP_CONFIG_FILE; then
1339      NS_IMPL_GNUSTEP=yes
1340      ns_appdir=`pwd`/nextstep/Emacs.app
1341      ns_appbindir=`pwd`/nextstep/Emacs.app
1342      ns_appresdir=`pwd`/nextstep/Emacs.app/Resources
1343      ns_appsrc=${srcdir}/nextstep/GNUstep/Emacs.base
1344      dnl FIXME sourcing this 3 times in subshells seems inefficient.
1345      GNUSTEP_MAKEFILES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_MAKEFILES)"
1346      GNUSTEP_SYSTEM_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_HEADERS)"
1347      GNUSTEP_SYSTEM_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_LIBRARIES)"
1348      CPPFLAGS="$CPPFLAGS -I${GNUSTEP_SYSTEM_HEADERS}"
1349      CFLAGS="$CFLAGS -I${GNUSTEP_SYSTEM_HEADERS}"
1350      REAL_CFLAGS="$REAL_CFLAGS -I${GNUSTEP_SYSTEM_HEADERS}"
1351      LDFLAGS="$LDFLAGS -L${GNUSTEP_SYSTEM_LIBRARIES}"
1352   fi
1353   AC_CHECK_HEADER([AppKit/AppKit.h], [HAVE_NS=yes],
1354                   [AC_MSG_ERROR([`--with-ns' was specified, but the include
1355   files are missing or cannot be compiled.])])
1356   NS_HAVE_NSINTEGER=yes
1357   AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <Foundation/NSObjCRuntime.h>],
1358                                      [NSInteger i;])],
1359                     ns_have_nsinteger=yes,
1360                     ns_have_nsinteger=no)
1361   if test $ns_have_nsinteger = no; then
1362     NS_HAVE_NSINTEGER=no
1363   fi
1365 if test "${HAVE_NS}" = yes; then
1366   window_system=nextstep
1367   with_xft=no
1368   # set up packaging dirs
1369   exec_prefix=${ns_appbindir}
1370   libexecdir=${ns_appbindir}/libexec
1371   if test "${EN_NS_SELF_CONTAINED}" = yes; then
1372      prefix=${ns_appresdir}
1373   fi
1375 CFLAGS="$tmp_CFLAGS"
1376 CPPFLAGS="$tmp_CPPFLAGS"
1378 case "${window_system}" in
1379   x11 )
1380     HAVE_X_WINDOWS=yes
1381     HAVE_X11=yes
1382     case "${with_x_toolkit}" in
1383       athena | lucid ) USE_X_TOOLKIT=LUCID ;;
1384       motif ) USE_X_TOOLKIT=MOTIF ;;
1385       gtk ) with_gtk=yes
1386 dnl Dont set this for GTK.  A lot of tests below assumes Xt when
1387 dnl USE_X_TOOLKIT is set.
1388             USE_X_TOOLKIT=none ;;
1389       no ) USE_X_TOOLKIT=none ;;
1390 dnl If user did not say whether to use a toolkit, make this decision later:
1391 dnl use the toolkit if we have gtk, or X11R5 or newer.
1392       * ) USE_X_TOOLKIT=maybe ;;
1393     esac
1394   ;;
1395   nextstep | none )
1396     HAVE_X_WINDOWS=no
1397     HAVE_X11=no
1398     USE_X_TOOLKIT=none
1399   ;;
1400 esac
1402 if test "$window_system" = none && test "X$with_x" != "Xno"; then
1403    AC_CHECK_PROG(HAVE_XSERVER, X, true, false)
1404    if test "$HAVE_XSERVER" = true ||
1405       test -n "$DISPLAY" ||
1406       test "`echo /usr/lib/libX11.*`" != "/usr/lib/libX11.*"; then
1407         AC_MSG_ERROR([You seem to be running X, but no X development libraries
1408 were found.  You should install the relevant development files for X
1409 and for the toolkit you want, such as Gtk+, Lesstif or Motif.  Also make
1410 sure you have development files for image handling, i.e.
1411 tiff, gif, jpeg, png and xpm.
1412 If you are sure you want Emacs compiled without X window support, pass
1413   --without-x
1414 to configure.])
1415    fi
1418 ### If we're using X11, we should use the X menu package.
1419 HAVE_MENUS=no
1420 case ${HAVE_X11} in
1421   yes ) HAVE_MENUS=yes ;;
1422 esac
1424 # Do the opsystem or machine files prohibit the use of the GNU malloc?
1425 # Assume not, until told otherwise.
1426 GNU_MALLOC=yes
1427 doug_lea_malloc=yes
1428 AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no)
1429 AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
1430 AC_CACHE_CHECK(whether __after_morecore_hook exists,
1431                emacs_cv_var___after_morecore_hook,
1432 [AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
1433   emacs_cv_var___after_morecore_hook=yes,
1434   emacs_cv_var___after_morecore_hook=no)])
1435 if test $emacs_cv_var___after_morecore_hook = no; then
1436   doug_lea_malloc=no
1438 if test "${system_malloc}" = "yes"; then
1439   GNU_MALLOC=no
1440   GNU_MALLOC_reason="
1441     (The GNU allocators don't work with this system configuration.)"
1443 if test "$doug_lea_malloc" = "yes" ; then
1444   if test "$GNU_MALLOC" = yes ; then
1445     GNU_MALLOC_reason="
1446       (Using Doug Lea's new malloc from the GNU C Library.)"
1447   fi
1448   AC_DEFINE(DOUG_LEA_MALLOC, 1,
1449             [Define to 1 if you are using the GNU C Library.])
1452 if test x"${REL_ALLOC}" = x; then
1453   REL_ALLOC=${GNU_MALLOC}
1456 dnl For now, need to use an explicit `#define USE_MMAP_FOR_BUFFERS 1'
1457 dnl the system configuration file (s/*.h) to turn the use of mmap
1458 dnl in the relocating allocator on.
1460 AC_FUNC_MMAP
1461 if test $use_mmap_for_buffers = yes; then
1462   REL_ALLOC=no
1465 LIBS="$libsrc_libs $LIBS"
1467 dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
1468 dnl and also adds -ldnet to LIBS, which Autoconf uses for checks.
1469 AC_CHECK_LIB(dnet, dnet_ntoa)
1470 dnl This causes -lresolv to get used in subsequent tests,
1471 dnl which causes failures on some systems such as HPUX 9.
1472 dnl AC_CHECK_LIB(resolv, gethostbyname)
1474 dnl FIXME replace main with a function we actually want from this library.
1475 AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
1477 AC_CHECK_LIB(pthreads, cma_open)
1479 dnl Check for need for bigtoc support on IBM AIX
1481 case ${host_os} in
1482 aix*)
1483   AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
1484     case $GCC in
1485     yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
1486     *) gdb_cv_bigtoc=-bbigtoc ;;
1487     esac
1489     LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
1490     AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
1491   ])
1492   ;;
1493 esac
1495 # Change CFLAGS and CPPFLAGS temporarily so that C_SWITCH_X_SITE gets
1496 # used for the tests that follow.  We set them back to REAL_CFLAGS and
1497 # REAL_CPPFLAGS later on.
1499 REAL_CPPFLAGS="$CPPFLAGS"
1501 if test "${HAVE_X11}" = "yes"; then
1502   DEFS="$C_SWITCH_X_SITE $DEFS"
1503   LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE"
1504   LIBS="$LIBX $LIBS"
1505   CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
1506   CPPFLAGS="$C_SWITCH_X_SITE $CPPFLAGS"
1508   # On Solaris, arrange for LD_RUN_PATH to point to the X libraries for tests.
1509   # This is handled by LD_SWITCH_X_SITE_AUX during the real build,
1510   # but it's more convenient here to set LD_RUN_PATH
1511   # since this also works on hosts that don't understand LD_SWITCH_X_SITE_AUX.
1512   if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
1513     LD_RUN_PATH=$x_libraries${LD_RUN_PATH+:}$LD_RUN_PATH
1514     export LD_RUN_PATH
1515   fi
1517   if test "${opsys}" = "gnu-linux"; then
1518     AC_MSG_CHECKING(whether X on GNU/Linux needs -b to link)
1519     AC_TRY_LINK([],
1520      [XOpenDisplay ("foo");],
1521      [xlinux_first_failure=no],
1522      [xlinux_first_failure=yes])
1523     if test "${xlinux_first_failure}" = "yes"; then
1524       OLD_LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE"
1525       OLD_C_SWITCH_X_SITE="$C_SWITCH_X_SITE"
1526       OLD_CPPFLAGS="$CPPFLAGS"
1527       OLD_LIBS="$LIBS"
1528       LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout"
1529       C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout"
1530       CPPFLAGS="$CPPFLAGS -b i486-linuxaout"
1531       LIBS="$LIBS -b i486-linuxaout"
1532       AC_TRY_LINK([],
1533        [XOpenDisplay ("foo");],
1534        [xlinux_second_failure=no],
1535        [xlinux_second_failure=yes])
1536       if test "${xlinux_second_failure}" = "yes"; then
1537         # If we get the same failure with -b, there is no use adding -b.
1538         # So take it out.  This plays safe.
1539         LD_SWITCH_X_SITE="$OLD_LD_SWITCH_X_SITE"
1540         C_SWITCH_X_SITE="$OLD_C_SWITCH_X_SITE"
1541         CPPFLAGS="$OLD_CPPFLAGS"
1542         LIBS="$OLD_LIBS"
1543         AC_MSG_RESULT(no)
1544       else
1545         AC_MSG_RESULT(yes)
1546       fi
1547     else
1548       AC_MSG_RESULT(no)
1549     fi
1550   fi
1552   # Reportedly, some broken Solaris systems have XKBlib.h but are missing
1553   # header files included from there.
1554   AC_MSG_CHECKING(for Xkb)
1555   AC_TRY_LINK([#include <X11/Xlib.h>
1556 #include <X11/XKBlib.h>],
1557         [XkbDescPtr kb = XkbGetKeyboard (0, XkbAllComponentsMask, XkbUseCoreKbd);],
1558         emacs_xkb=yes, emacs_xkb=no)
1559   AC_MSG_RESULT($emacs_xkb)
1560   if test $emacs_xkb = yes; then
1561     AC_DEFINE(HAVE_XKBGETKEYBOARD, 1, [Define to 1 if you have the XkbGetKeyboard function.])
1562   fi
1564   AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
1565 XScreenNumberOfScreen XSetWMProtocols)
1568 if test "${window_system}" = "x11"; then
1569   AC_MSG_CHECKING(X11 version 6)
1570   AC_CACHE_VAL(emacs_cv_x11_version_6,
1571   [AC_TRY_LINK([#include <X11/Xlib.h>],
1572 [#if XlibSpecificationRelease < 6
1573 fail;
1574 #endif
1575 ], emacs_cv_x11_version_6=yes, emacs_cv_x11_version_6=no)])
1576   if test $emacs_cv_x11_version_6 = yes; then
1577     AC_MSG_RESULT(6 or newer)
1578     AC_DEFINE(HAVE_X11R6, 1,
1579               [Define to 1 if you have the X11R6 or newer version of Xlib.])
1580   else
1581     AC_MSG_RESULT(before 6)
1582   fi
1586 ### Use -lrsvg-2 if available, unless `--with-rsvg=no' is specified.
1587 HAVE_RSVG=no
1588 if test "${HAVE_X11}" = "yes" || test "${NS_IMPL_GNUSTEP}" = "yes"; then
1589   if test "${with_rsvg}" != "no"; then
1590     RSVG_REQUIRED=2.11.0
1591     RSVG_MODULE="librsvg-2.0 >= $RSVG_REQUIRED"
1593     PKG_CHECK_MODULES(RSVG, $RSVG_MODULE, :, :)
1594     AC_SUBST(RSVG_CFLAGS)
1595     AC_SUBST(RSVG_LIBS)
1597     if test ".${RSVG_CFLAGS}" != "."; then
1598       HAVE_RSVG=yes
1599       AC_DEFINE(HAVE_RSVG, 1, [Define to 1 if using librsvg.])
1600       CFLAGS="$CFLAGS $RSVG_CFLAGS"
1601       LIBS="$RSVG_LIBS $LIBS"
1602     fi
1603   fi
1607 HAVE_GTK=no
1608 if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "maybe"; then
1609   GLIB_REQUIRED=2.6
1610   GTK_REQUIRED=2.6
1611   GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
1613   dnl Checks for libraries.
1614   PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
1615   if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
1616      AC_MSG_ERROR($GTK_PKG_ERRORS)
1617   fi
1621 if test x"$pkg_check_gtk" = xyes; then
1623   AC_SUBST(GTK_CFLAGS)
1624   AC_SUBST(GTK_LIBS)
1625   C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS"
1626   CFLAGS="$CFLAGS $GTK_CFLAGS"
1627   LIBS="$GTK_LIBS $LIBS"
1628   dnl Try to compile a simple GTK program.
1629   GTK_COMPILES=no
1630   AC_CHECK_FUNCS(gtk_main, GTK_COMPILES=yes)
1631   if test "${GTK_COMPILES}" != "yes"; then
1632     if test "$USE_X_TOOLKIT" != "maybe"; then
1633       AC_MSG_ERROR([Gtk+ wanted, but it does not compile, see config.log.  Maybe some x11-devel files missing?]);
1634     fi
1635   else
1636     HAVE_GTK=yes
1637     AC_DEFINE(USE_GTK, 1, [Define to 1 if using GTK.])
1638     USE_X_TOOLKIT=none
1639     if $PKG_CONFIG --atleast-version=2.10 gtk+-2.0; then
1640       :
1641     else
1642       AC_MSG_WARN([[Your version of Gtk+ will have problems with
1643        closing open displays.  This is no problem if you just use
1644        one display, but if you use more than one and close one of them
1645        Emacs may crash.]])
1646       sleep 3
1647     fi
1648   fi
1653 if test "${HAVE_GTK}" = "yes"; then
1655   dnl  GTK scrollbars resemble toolkit scrollbars a lot, so to avoid
1656   dnl  a lot if #ifdef:s, say we have toolkit scrollbars.
1657   if test "$with_toolkit_scroll_bars" != no; then
1658     with_toolkit_scroll_bars=yes
1659   fi
1661   dnl  Check if we can use multiple displays with this GTK version.
1662   dnl  If gdk_display_open exists, assume all others are there also.
1663   HAVE_GTK_MULTIDISPLAY=no
1664   AC_CHECK_FUNCS(gdk_display_open, HAVE_GTK_MULTIDISPLAY=yes)
1665   if test "${HAVE_GTK_MULTIDISPLAY}" = "yes"; then
1666     AC_DEFINE(HAVE_GTK_MULTIDISPLAY, 1,
1667               [Define to 1 if GTK can handle more than one display.])
1668   fi
1670   dnl  Check if we have the old file selection dialog declared and
1671   dnl  in the link library.  In 2.x it may be in the library,
1672   dnl  but not declared if deprecated featured has been selected out.
1673   dnl  AC_CHECK_DECL checks for a macro, so check for GTK_TYPE_FILE_SELECTION.
1674   HAVE_GTK_FILE_SELECTION=no
1675   AC_CHECK_DECL(GTK_TYPE_FILE_SELECTION, HAVE_GTK_FILE_SELECTION=yes,
1676                    HAVE_GTK_FILE_SELECTION=no, [AC_INCLUDES_DEFAULT
1677 #include <gtk/gtk.h>])
1678   if test "$HAVE_GTK_FILE_SELECTION" = yes; then
1679     AC_CHECK_FUNCS(gtk_file_selection_new, HAVE_GTK_FILE_SELECTION=yes,
1680                    HAVE_GTK_FILE_SELECTION=no)
1681   fi
1683   dnl  Check if we have the new file chooser dialog
1684   HAVE_GTK_FILE_CHOOSER=no
1685   AC_CHECK_DECL(GTK_TYPE_FILE_CHOOSER, HAVE_GTK_FILE_CHOOSER=yes,
1686                 HAVE_GTK_FILE_CHOOSER=no, [AC_INCLUDES_DEFAULT
1687 #include <gtk/gtk.h>])
1688   if test "$HAVE_GTK_FILE_CHOOSER" = yes; then
1689     AC_CHECK_FUNCS(gtk_file_chooser_dialog_new, HAVE_GTK_FILE_CHOOSER=yes,
1690                    HAVE_GTK_FILE_CHOOSER=no)
1691   fi
1693   if test "$HAVE_GTK_FILE_SELECTION" = yes \
1694      && test "$HAVE_GTK_FILE_CHOOSER" = yes;  then
1695     AC_DEFINE(HAVE_GTK_FILE_BOTH, 1,
1696               [Define to 1 if GTK has both file selection and chooser dialog.])
1697   fi
1699   dnl Check if pthreads are available.  Emacs only needs this when using
1700   dnl gtk_file_chooser under Gnome.
1701   if test "$HAVE_GTK_FILE_CHOOSER" = yes; then
1702     HAVE_GTK_AND_PTHREAD=no
1703     AC_CHECK_HEADERS(pthread.h)
1704     if test "$ac_cv_header_pthread_h"; then
1705       AC_CHECK_LIB(pthread, pthread_self, HAVE_GTK_AND_PTHREAD=yes)
1706     fi
1707     if test "$HAVE_GTK_AND_PTHREAD" = yes; then
1708       case "${canonical}" in
1709         *-hpux*) ;;
1710         *) GTK_LIBS="$GTK_LIBS -lpthread" ;;
1711       esac
1712       AC_DEFINE(HAVE_GTK_AND_PTHREAD, 1,
1713                [Define to 1 if you have GTK and pthread (-lpthread).])
1714     fi
1715   fi
1718 dnl D-Bus has been tested under GNU/Linux only.  Must be adapted for
1719 dnl other platforms.  Support for higher D-Bus versions than 1.0 is
1720 dnl also not configured.
1721 HAVE_DBUS=no
1722 if test "${with_dbus}" = "yes"; then
1723    PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0, HAVE_DBUS=yes, HAVE_DBUS=no)
1724    if test "$HAVE_DBUS" = yes; then
1725      LIBS="$LIBS $DBUS_LIBS"
1726      AC_DEFINE(HAVE_DBUS, 1, [Define to 1 if using D-Bus.])
1727      AC_CHECK_FUNCS([dbus_watch_get_unix_fd])
1728    fi
1731 dnl GConf has been tested under GNU/Linux only.
1732 dnl The version is really arbitrary, it is about the same age as Gtk+ 2.6.
1733 HAVE_GCONF=no
1734 if test "${HAVE_X11}" = "yes" && test "${with_gconf}" = "yes"; then
1735    PKG_CHECK_MODULES(GCONF, gconf-2.0 >= 2.13, HAVE_GCONF=yes, HAVE_GCONF=no)
1736    if test "$HAVE_GCONF" = yes; then
1737       AC_DEFINE(HAVE_GCONF, 1, [Define to 1 if using GConf.])
1738    fi
1741 dnl Do not put whitespace before the #include statements below.
1742 dnl Older compilers (eg sunos4 cc) choke on it.
1743 HAVE_XAW3D=no
1744 if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then
1745   if test "$with_xaw3d" != no; then
1746     AC_MSG_CHECKING(for xaw3d)
1747     AC_CACHE_VAL(emacs_cv_xaw3d,
1748     [AC_TRY_LINK([
1749 #include <X11/Intrinsic.h>
1750 #include <X11/Xaw3d/Simple.h>],
1751       [],
1752       emacs_cv_xaw3d=yes,
1753       emacs_cv_xaw3d=no)])
1754   else
1755     emacs_cv_xaw3d=no
1756   fi
1757   if test $emacs_cv_xaw3d = yes; then
1758     AC_MSG_RESULT([yes; using Lucid toolkit])
1759     USE_X_TOOLKIT=LUCID
1760     HAVE_XAW3D=yes
1761     AC_DEFINE(HAVE_XAW3D, 1,
1762               [Define to 1 if you have the Xaw3d library (-lXaw3d).])
1763   else
1764     AC_MSG_RESULT(no)
1765     AC_MSG_CHECKING(for libXaw)
1766     AC_CACHE_VAL(emacs_cv_xaw,
1767     [AC_TRY_LINK([
1768 #include <X11/Intrinsic.h>
1769 #include <X11/Xaw/Simple.h>],
1770       [],
1771       emacs_cv_xaw=yes,
1772       emacs_cv_xaw=no)])
1773     if test $emacs_cv_xaw = yes; then
1774       AC_MSG_RESULT([yes; using Lucid toolkit])
1775       USE_X_TOOLKIT=LUCID
1776     elif test x"${USE_X_TOOLKIT}" = xLUCID; then
1777       AC_MSG_ERROR([Lucid toolkit requires X11/Xaw include files])
1778     else
1779       AC_MSG_RESULT([no; do not use toolkit by default])
1780       USE_X_TOOLKIT=none
1781     fi
1782   fi
1785 X_TOOLKIT_TYPE=$USE_X_TOOLKIT
1787 if test "${USE_X_TOOLKIT}" != "none"; then
1788   AC_MSG_CHECKING(X11 toolkit version)
1789   AC_CACHE_VAL(emacs_cv_x11_toolkit_version_6,
1790   [AC_TRY_LINK([#include <X11/Intrinsic.h>],
1791 [#if XtSpecificationRelease < 6
1792 fail;
1793 #endif
1794 ], emacs_cv_x11_toolkit_version_6=yes, emacs_cv_x11_toolkit_version_6=no)])
1795   HAVE_X11XTR6=$emacs_cv_x11_toolkit_version_6
1796   if test $emacs_cv_x11_toolkit_version_6 = yes; then
1797     AC_MSG_RESULT(6 or newer)
1798     AC_DEFINE(HAVE_X11XTR6, 1,
1799               [Define to 1 if you have the X11R6 or newer version of Xt.])
1800   else
1801     AC_MSG_RESULT(before 6)
1802   fi
1804 dnl If using toolkit, check whether libXmu.a exists.
1805 dnl tranle@intellicorp.com says libXmu.a can need XtMalloc in libXt.a to link.
1806   OLDLIBS="$LIBS"
1807   if test x$HAVE_X11XTR6 = xyes; then
1808     LIBS="-lXt -lSM -lICE $LIBS"
1809   else
1810     LIBS="-lXt $LIBS"
1811   fi
1812   AC_CHECK_LIB(Xmu, XmuConvertStandardSelection)
1813   test $ac_cv_lib_Xmu_XmuConvertStandardSelection = no && LIBS="$OLDLIBS"
1816 # On Irix 6.5, at least, we need XShapeQueryExtension from -lXext for Xaw3D.
1817 if test "${HAVE_X11}" = "yes"; then
1818   if test "${USE_X_TOOLKIT}" != "none"; then
1819     AC_CHECK_LIB(Xext, XShapeQueryExtension)
1820   fi
1823 if test "${USE_X_TOOLKIT}" = "MOTIF"; then
1824   AC_CACHE_CHECK(for Motif version 2.1, emacs_cv_motif_version_2_1,
1825   [AC_TRY_COMPILE([#include <Xm/Xm.h>],
1826     [#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1)
1827 int x = 5;
1828 #else
1829 Motif version prior to 2.1.
1830 #endif],
1831     emacs_cv_motif_version_2_1=yes, emacs_cv_motif_version_2_1=no)])
1832   HAVE_MOTIF_2_1=$emacs_cv_motif_version_2_1
1833   if test $emacs_cv_motif_version_2_1 = yes; then
1834     HAVE_LIBXP=no
1835     AC_DEFINE(HAVE_MOTIF_2_1, 1,
1836               [Define to 1 if you have Motif 2.1 or newer.])
1837     AC_CHECK_LIB(Xp, XpCreateContext, HAVE_LIBXP=yes)
1838     if test ${HAVE_LIBXP} = yes; then
1839       AC_DEFINE(HAVE_LIBXP, 1,
1840                 [Define to 1 if you have the Xp library (-lXp).])
1841     fi
1842   else
1843     AC_CACHE_CHECK(for LessTif where some systems put it, emacs_cv_lesstif,
1844     # We put this in CFLAGS temporarily to precede other -I options
1845     # that might be in CFLAGS temporarily.
1846     # We put this in CPPFLAGS where it precedes the other -I options.
1847     OLD_CPPFLAGS=$CPPFLAGS
1848     OLD_CFLAGS=$CFLAGS
1849     CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS"
1850     CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS"
1851     [AC_TRY_COMPILE([#include </usr/X11R6/LessTif/Motif1.2/include/Xm/Xm.h>],
1852       [int x = 5;],
1853       emacs_cv_lesstif=yes, emacs_cv_lesstif=no)])
1854     if test $emacs_cv_lesstif = yes; then
1855       # Make sure this -I option remains in CPPFLAGS after it is set
1856       # back to REAL_CPPFLAGS.
1857       # There is no need to change REAL_CFLAGS, because REAL_CFLAGS does not
1858       # have those other -I options anyway.  Ultimately, having this
1859       # directory ultimately in CPPFLAGS will be enough.
1860       REAL_CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $REAL_CPPFLAGS"
1861       LDFLAGS="-L/usr/X11R6/LessTif/Motif1.2/lib $LDFLAGS"
1862     else
1863       CFLAGS=$OLD_CFLAGS
1864       CPPFLAGS=$OLD_CPPFLAGS
1865     fi
1866   fi
1869 dnl Use toolkit scroll bars if configured for GTK or X toolkit and either
1870 dnl using Motif or Xaw3d is available, and unless
1871 dnl --with-toolkit-scroll-bars=no was specified.
1873 AH_TEMPLATE(USE_TOOLKIT_SCROLL_BARS,
1874             [Define to 1 if we should use toolkit scroll bars.])dnl
1875 USE_TOOLKIT_SCROLL_BARS=no
1876 if test "${with_toolkit_scroll_bars}" != "no"; then
1877   if test "${USE_X_TOOLKIT}" != "none"; then
1878     if test "${USE_X_TOOLKIT}" = "MOTIF"; then
1879       AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
1880       HAVE_XAW3D=no
1881       USE_TOOLKIT_SCROLL_BARS=yes
1882     elif test "${HAVE_XAW3D}" = "yes"; then
1883       AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
1884       USE_TOOLKIT_SCROLL_BARS=yes
1885     fi
1886   elif test "${HAVE_GTK}" = "yes"; then
1887     AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
1888     USE_TOOLKIT_SCROLL_BARS=yes
1889   elif test "${HAVE_NS}" = "yes"; then
1890     AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
1891     USE_TOOLKIT_SCROLL_BARS=yes
1892   fi
1895 dnl See if XIM is available.
1896 AC_TRY_COMPILE([
1897           #include <X11/Xlib.h>
1898           #include <X11/Xresource.h>],
1899          [XIMProc  callback;],
1900          [HAVE_XIM=yes
1901          AC_DEFINE(HAVE_XIM, 1, [Define to 1 if XIM is available])],
1902          HAVE_XIM=no)
1904 dnl `--with-xim' now controls only the initial value of use_xim at run time.
1906 if test "${with_xim}" != "no"; then
1907   AC_DEFINE(USE_XIM, 1,
1908             [Define to 1 if we should use XIM, if it is available.])
1912 if test "${HAVE_XIM}" != "no"; then
1913   late_CFLAGS=$CFLAGS
1914   if test "$GCC" = yes; then
1915     CFLAGS="$CFLAGS --pedantic-errors"
1916   fi
1917   AC_TRY_COMPILE([
1918 #include <X11/Xlib.h>
1919 #include <X11/Xresource.h>],
1920 [Display *display;
1921 XrmDatabase db;
1922 char *res_name;
1923 char *res_class;
1924 XIMProc  callback;
1925 XPointer *client_data;
1926 #ifndef __GNUC__
1927 /* If we're not using GCC, it's probably not XFree86, and this is
1928    probably right, but we can't use something like --pedantic-errors.  */
1929 extern Bool XRegisterIMInstantiateCallback(Display*, XrmDatabase, char*,
1930                                            char*, XIMProc, XPointer*);
1931 #endif
1932 (void)XRegisterIMInstantiateCallback(display, db, res_name, res_class, callback,
1933    client_data);],
1934     [emacs_cv_arg6_star=yes])
1935   AH_TEMPLATE(XRegisterIMInstantiateCallback_arg6,
1936          [Define to the type of the 6th arg of XRegisterIMInstantiateCallback,
1937 either XPointer or XPointer*.])dnl
1938   if test "$emacs_cv_arg6_star" = yes; then
1939     AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer*])
1940   else
1941     AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer])
1942   fi
1943   CFLAGS=$late_CFLAGS
1946 ### Start of font-backend (under any platform) section.
1947 # (nothing here yet -- this is a placeholder)
1948 ### End of font-backend (under any platform) section.
1950 ### Start of font-backend (under X11) section.
1951 if test "${HAVE_X11}" = "yes"; then
1952    PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= 2.2.0, HAVE_FC=yes, HAVE_FC=no)
1954    ## Use -lXft if available, unless `--with-xft=no'.
1955    HAVE_XFT=maybe
1956     if test "${HAVE_FC}" = "no" || test "x${with_x}" = "xno"; then
1957       with_xft="no";
1958     fi
1959     if test "x${with_xft}" != "xno"; then
1961       PKG_CHECK_MODULES(XFT, xft >= 0.13.0, , HAVE_XFT=no)
1962       ## Because xftfont.c uses XRenderQueryExtension, we also
1963       ## need to link to -lXrender.
1964       HAVE_XRENDER=no
1965       AC_CHECK_LIB(Xrender, XRenderQueryExtension, HAVE_XRENDER=yes)
1966       if test "$HAVE_XFT" != no && test "$HAVE_XRENDER" != no; then
1967         OLD_CPPFLAGS="$CPPFLAGS"
1968         OLD_CFLAGS="$CFLAGS"
1969         OLD_LIBS="$LIBS"
1970         CPPFLAGS="$CPPFLAGS $XFT_CFLAGS"
1971         CFLAGS="$CFLAGS $XFT_CFLAGS"
1972         XFT_LIBS="-lXrender $XFT_LIBS"
1973         LIBS="$XFT_LIBS $LIBS"
1974         AC_CHECK_HEADER(X11/Xft/Xft.h,
1975           AC_CHECK_LIB(Xft, XftFontOpen, HAVE_XFT=yes, , $XFT_LIBS))
1977         if test "${HAVE_XFT}" = "yes"; then
1978           AC_DEFINE(HAVE_XFT, 1, [Define to 1 if you have the Xft library.])
1979             AC_SUBST(XFT_LIBS)
1980           C_SWITCH_X_SITE="$C_SWITCH_X_SITE $XFT_CFLAGS"
1981         else
1982           CPPFLAGS="$OLD_CPPFLAGS"
1983           CFLAGS="$OLD_CFLAGS"
1984           LIBS="$OLD_LIBS"
1985         fi                        # "${HAVE_XFT}" = "yes"
1986       fi                          # "$HAVE_XFT" != no
1987     fi                            # "x${with_xft}" != "xno"
1989     dnl For the "Does Emacs use" message at the end.
1990     if test "$HAVE_XFT" != "yes"; then
1991        HAVE_XFT=no
1992     fi
1995     HAVE_FREETYPE=no
1996     ## We used to allow building with FreeType and without Xft.
1997     ## However, the ftx font backend driver is not in good shape.
1998     if test "${HAVE_XFT}" = "yes"; then
1999       dnl As we use Xft, we anyway use freetype.
2000       dnl There's no need for additional CFLAGS and LIBS.
2001       HAVE_FREETYPE=yes
2002       FONTCONFIG_CFLAGS=
2003       FONTCONFIG_LIBS=
2004     fi
2006     HAVE_LIBOTF=no
2007     if test "${HAVE_FREETYPE}" = "yes"; then
2008       AC_DEFINE(HAVE_FREETYPE, 1,
2009                 [Define to 1 if using the freetype and fontconfig libraries.])
2010       if test "${with_libotf}" != "no"; then
2011         PKG_CHECK_MODULES(LIBOTF, libotf, HAVE_LIBOTF=yes,
2012                           HAVE_LIBOTF=no)
2013         if test "$HAVE_LIBOTF" = "yes"; then
2014           AC_DEFINE(HAVE_LIBOTF, 1, [Define to 1 if using libotf.])
2015           AC_CHECK_LIB(otf, OTF_get_variation_glyphs,
2016                        HAVE_OTF_GET_VARIATION_GLYPHS=yes,
2017                        HAVE_OTF_GET_VARIATION_GLYPHS=no)
2018           if test "${HAVE_OTF_GET_VARIATION_GLYPHS}" = "yes"; then
2019             AC_DEFINE(HAVE_OTF_GET_VARIATION_GLYPHS, 1,
2020                       [Define to 1 if libotf has OTF_get_variation_glyphs.])
2021           fi
2022         fi
2023       fi
2024     dnl FIXME should there be an error if HAVE_FREETYPE != yes?
2025     dnl Does the new font backend require it, or can it work without it?
2026     fi
2028     HAVE_M17N_FLT=no
2029     if test "${HAVE_LIBOTF}" = yes; then
2030       if test "${with_m17n_flt}" != "no"; then
2031         PKG_CHECK_MODULES(M17N_FLT, m17n-flt, HAVE_M17N_FLT=yes, HAVE_M17N_FLT=no)
2032         if test "$HAVE_M17N_FLT" = "yes"; then
2033           AC_DEFINE(HAVE_M17N_FLT, 1, [Define to 1 if using libm17n-flt.])
2034         fi
2035       fi
2036     fi
2037 else
2038     HAVE_XFT=no
2039     HAVE_FREETYPE=no
2040     HAVE_LIBOTF=no
2041     HAVE_M17N_FLT=no
2043 ### End of font-backend (under X11) section.
2045 AC_SUBST(FREETYPE_CFLAGS)
2046 AC_SUBST(FREETYPE_LIBS)
2047 AC_SUBST(FONTCONFIG_CFLAGS)
2048 AC_SUBST(FONTCONFIG_LIBS)
2049 AC_SUBST(LIBOTF_CFLAGS)
2050 AC_SUBST(LIBOTF_LIBS)
2051 AC_SUBST(M17N_FLT_CFLAGS)
2052 AC_SUBST(M17N_FLT_LIBS)
2054 ### Use -lXpm if available, unless `--with-xpm=no'.
2055 HAVE_XPM=no
2056 LIBXPM=
2057 if test "${HAVE_X11}" = "yes"; then
2058   if test "${with_xpm}" != "no"; then
2059     AC_CHECK_HEADER(X11/xpm.h,
2060       [AC_CHECK_LIB(Xpm, XpmReadFileToPixmap, HAVE_XPM=yes, , -lX11)])
2061     if test "${HAVE_XPM}" = "yes"; then
2062       AC_MSG_CHECKING(for XpmReturnAllocPixels preprocessor define)
2063       AC_EGREP_CPP(no_return_alloc_pixels,
2064       [#include "X11/xpm.h"
2065 #ifndef XpmReturnAllocPixels
2066 no_return_alloc_pixels
2067 #endif
2068       ], HAVE_XPM=no, HAVE_XPM=yes)
2070       if test "${HAVE_XPM}" = "yes"; then
2071         AC_MSG_RESULT(yes)
2072       else
2073         AC_MSG_RESULT(no)
2074       fi
2075     fi
2076   fi
2078   if test "${HAVE_XPM}" = "yes"; then
2079     AC_DEFINE(HAVE_XPM, 1, [Define to 1 if you have the Xpm libary (-lXpm).])
2080     LIBXPM=-lXpm
2081   fi
2083 AC_SUBST(LIBXPM)
2085 ### Use -ljpeg if available, unless `--with-jpeg=no'.
2086 HAVE_JPEG=no
2087 LIBJPEG=
2088 if test "${HAVE_X11}" = "yes"; then
2089   if test "${with_jpeg}" != "no"; then
2090     dnl Checking for jpeglib.h can lose because of a redefinition of
2091     dnl  HAVE_STDLIB_H.
2092     AC_CHECK_HEADER(jerror.h,
2093       [AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes)])
2094   fi
2096   AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl
2097   if test "${HAVE_JPEG}" = "yes"; then
2098     AC_DEFINE(HAVE_JPEG)
2099     AC_EGREP_CPP([version= *(6[2-9]|[7-9][0-9])],
2100         [#include <jpeglib.h>
2101          version=JPEG_LIB_VERSION
2103         [AC_DEFINE(HAVE_JPEG)],
2104         [AC_MSG_WARN([libjpeg found, but not version 6b or later])
2105         HAVE_JPEG=no])
2106   fi
2107   if test "${HAVE_JPEG}" = "yes"; then
2108     LIBJPEG=-ljpeg
2109   fi
2111 AC_SUBST(LIBJPEG)
2113 ### Use -lpng if available, unless `--with-png=no'.
2114 HAVE_PNG=no
2115 LIBPNG=
2116 if test "${HAVE_X11}" = "yes"; then
2117   if test "${with_png}" != "no"; then
2118     # Debian unstable as of July 2003 has multiple libpngs, and puts png.h
2119     # in /usr/include/libpng.
2120     AC_CHECK_HEADERS(png.h libpng/png.h)
2121     if test "$ac_cv_header_png_h" = yes || test "$ac_cv_header_libpng_png_h" = yes ; then
2122       AC_CHECK_LIB(png, png_get_channels, HAVE_PNG=yes, , -lz -lm)
2123     fi
2124   fi
2126   if test "${HAVE_PNG}" = "yes"; then
2127     AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library (-lpng).])
2128     LIBPNG="-lpng -lz -lm"
2129   fi
2131 AC_SUBST(LIBPNG)
2133 ### Use -ltiff if available, unless `--with-tiff=no'.
2134 HAVE_TIFF=no
2135 LIBTIFF=
2136 if test "${HAVE_X11}" = "yes"; then
2137   if test "${with_tiff}" != "no"; then
2138     AC_CHECK_HEADER(tiffio.h,
2139       [tifflibs="-lz -lm"
2140       # At least one tiff package requires the jpeg library.
2141       if test "${HAVE_JPEG}" = yes; then tifflibs="-ljpeg $tifflibs"; fi
2142       AC_CHECK_LIB(tiff, TIFFGetVersion, HAVE_TIFF=yes, , $tifflibs)])
2143   fi
2145   if test "${HAVE_TIFF}" = "yes"; then
2146     AC_DEFINE(HAVE_TIFF, 1, [Define to 1 if you have the tiff library (-ltiff).])
2147     dnl FIXME -lz -lm, as per libpng?
2148     LIBTIFF=-ltiff
2149   fi
2151 AC_SUBST(LIBTIFF)
2153 ### Use -lgif or -lungif if available, unless `--with-gif=no'.
2154 HAVE_GIF=no
2155 LIBGIF=
2156 if test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no"; then
2157   AC_CHECK_HEADER(gif_lib.h,
2158 # EGifPutExtensionLast only exists from version libungif-4.1.0b1.
2159 # Earlier versions can crash Emacs.
2160     [AC_CHECK_LIB(gif, EGifPutExtensionLast, HAVE_GIF=yes, HAVE_GIF=maybe)])
2162   if test "$HAVE_GIF" = yes; then
2163     LIBGIF=-lgif
2164   elif test "$HAVE_GIF" = maybe; then
2165 # If gif_lib.h but no libgif, try libungif.
2166     AC_CHECK_LIB(ungif, EGifPutExtensionLast, HAVE_GIF=yes, HAVE_GIF=no)
2167     test "$HAVE_GIF" = yes && LIBGIF=-lungif
2168   fi
2170   if test "${HAVE_GIF}" = "yes"; then
2171     AC_DEFINE(HAVE_GIF, 1, [Define to 1 if you have a gif (or ungif) library.])
2172   fi
2174 AC_SUBST(LIBGIF)
2176 dnl Check for required libraries.
2177 if test "${HAVE_X11}" = "yes"; then
2178   MISSING=""
2179   WITH_NO=""
2180   test "${with_xpm}" != "no" && test "${HAVE_XPM}" != "yes" &&
2181     MISSING="libXpm" && WITH_NO="--with-xpm=no"
2182   test "${with_jpeg}" != "no" && test "${HAVE_JPEG}" != "yes" &&
2183     MISSING="$MISSING libjpeg" && WITH_NO="$WITH_NO --with-jpeg=no"
2184   test "${with_png}" != "no" && test "${HAVE_PNG}" != "yes" &&
2185     MISSING="$MISSING libpng" && WITH_NO="$WITH_NO --with-png=no"
2186   test "${with_gif}" != "no" && test "${HAVE_GIF}" != "yes" &&
2187     MISSING="$MISSING libgif/libungif" && WITH_NO="$WITH_NO --with-gif=no"
2188   test "${with_tiff}" != "no" && test "${HAVE_TIFF}" != "yes" &&
2189     MISSING="$MISSING libtiff" && WITH_NO="$WITH_NO --with-tiff=no"
2191   if test "X${MISSING}" != X; then
2192     AC_MSG_ERROR([The following required libraries were not found:
2193     $MISSING
2194 Maybe some development libraries/packages are missing?
2195 If you don't want to link with them give
2196     $WITH_NO
2197 as options to configure])
2198   fi
2201 ### Use -lgpm if available, unless `--with-gpm=no'.
2202 HAVE_GPM=no
2203 LIBGPM=
2204 if test "${with_gpm}" != "no"; then
2205   AC_CHECK_HEADER(gpm.h,
2206     [AC_CHECK_LIB(gpm, Gpm_Open, HAVE_GPM=yes)])
2208   if test "${HAVE_GPM}" = "yes"; then
2209     AC_DEFINE(HAVE_GPM, 1, [Define to 1 if you have the gpm library (-lgpm).])
2210     LIBGPM=-lgpm
2211   fi
2213 AC_SUBST(LIBGPM)
2215 dnl Check for malloc/malloc.h on darwin
2216 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.])])
2218 ### Use NeXTstep API to implement GUI.
2219 if test "${HAVE_NS}" = "yes"; then
2220   AC_DEFINE(HAVE_NS, 1, [Define to 1 if you are using the NeXTstep API, either GNUstep or Cocoa on Mac OS X.])
2221   if test "${NS_IMPL_COCOA}" = "yes"; then
2222     AC_DEFINE(NS_IMPL_COCOA, 1, [Define to 1 if you are using NS windowing under MacOS X.])
2223     GNU_OBJC_CFLAGS=
2224   fi
2225   if test "${NS_IMPL_GNUSTEP}" = "yes"; then
2226     AC_DEFINE(NS_IMPL_GNUSTEP, 1, [Define to 1 if you are using NS windowing under GNUstep.])
2227     GNU_OBJC_CFLAGS="-fgnu-runtime -Wno-import -fconstant-string-class=NSConstantString -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN -DGSDIAGNOSE"
2228   fi
2229   if test "${NS_HAVE_NSINTEGER}" = "yes"; then
2230     AC_DEFINE(NS_HAVE_NSINTEGER, 1, [Define to 1 if `NSInteger' is defined.])
2231   fi
2232   # We also have mouse menus.
2233   HAVE_MENUS=yes
2234   OTHER_FILES=ns-app
2238 ### Use session management (-lSM -lICE) if available
2239 HAVE_X_SM=no
2240 if test "${HAVE_X11}" = "yes"; then
2241   AC_CHECK_HEADER(X11/SM/SMlib.h,
2242     [AC_CHECK_LIB(SM, SmcOpenConnection, HAVE_X_SM=yes, , -lICE)])
2244   if test "${HAVE_X_SM}" = "yes"; then
2245     AC_DEFINE(HAVE_X_SM, 1, [Define to 1 if you have the SM library (-lSM).])
2246     case "$LIBS" in
2247       *-lSM*) ;;
2248       *)      LIBS="-lSM -lICE $LIBS" ;;
2249     esac
2250   fi
2253 # If netdb.h doesn't declare h_errno, we must declare it by hand.
2254 AC_CACHE_CHECK(whether netdb declares h_errno,
2255                emacs_cv_netdb_declares_h_errno,
2256 [AC_TRY_LINK([#include <netdb.h>],
2257   [return h_errno;],
2258   emacs_cv_netdb_declares_h_errno=yes, emacs_cv_netdb_declares_h_errno=no)])
2259 if test $emacs_cv_netdb_declares_h_errno = yes; then
2260   AC_DEFINE(HAVE_H_ERRNO, 1, [Define to 1 if netdb.h declares h_errno.])
2263 AC_FUNC_ALLOCA
2265 dnl src/alloca.c has been removed.  Could also check if $ALLOCA is set?
2266 dnl FIXME is there an autoconf test that does the right thing, without
2267 dnl needing to call A_M_E afterwards?
2268 if test x"$ac_cv_func_alloca_works" != xyes; then
2269    AC_MSG_ERROR( [a system implementation of alloca is required] )
2272 # fmod, logb, and frexp are found in -lm on most systems.
2273 # On HPUX 9.01, -lm does not contain logb, so check for sqrt.
2274 AC_CHECK_LIB(m, sqrt)
2276 # Check for mail-locking functions in a "mail" library.  Probably this should
2277 # have the same check as for liblockfile below.
2278 AC_CHECK_LIB(mail, maillock, have_mail=yes, have_mail=no)
2279 if test $have_mail = yes; then
2280   LIBS_MAIL=-lmail
2281   LIBS="$LIBS_MAIL $LIBS"
2282   AC_DEFINE(HAVE_LIBMAIL, 1, [Define to 1 if you have the `mail' library (-lmail).])
2283 else
2284   LIBS_MAIL=
2286 dnl Debian, at least:
2287 AC_CHECK_LIB(lockfile, maillock, have_lockfile=yes, have_lockfile=no)
2288 if test $have_lockfile = yes; then
2289    LIBS_MAIL=-llockfile
2290    LIBS="$LIBS_MAIL $LIBS"
2291    AC_DEFINE(HAVE_LIBLOCKFILE, 1, [Define to 1 if you have the `lockfile' library (-llockfile).])
2292 else
2293 # If we have the shared liblockfile, assume we must use it for mail
2294 # locking (e.g. Debian).  If we couldn't link against liblockfile
2295 # (no liblockfile.a installed), ensure that we don't need to.
2296   dnl This works for files generally, not just executables.
2297   dnl Should we look elsewhere for it?  Maybe examine /etc/ld.so.conf?
2298   AC_CHECK_PROG(liblockfile, liblockfile.so, yes, no,
2299                 /usr/lib:/lib:/usr/local/lib:$LD_LIBRARY_PATH)
2300   if test $ac_cv_prog_liblockfile = yes; then
2301     AC_MSG_ERROR([Shared liblockfile found but can't link against it.
2302 This probably means that movemail could lose mail.
2303 There may be a `development' package to install containing liblockfile.])
2304   fi
2306 AC_CHECK_FUNCS(touchlock)
2307 AC_CHECK_HEADERS(maillock.h)
2308 AC_SUBST(LIBS_MAIL)
2310 AC_CHECK_FUNCS(gethostname getdomainname dup2 \
2311 rename closedir mkdir rmdir sysinfo getrusage get_current_dir_name \
2312 random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime setsid \
2313 strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \
2314 utimes getrlimit setrlimit setpgid getcwd getwd shutdown getaddrinfo \
2315 __fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \
2316 sendto recvfrom getsockopt setsockopt getsockname getpeername \
2317 gai_strerror mkstemp getline getdelim mremap memmove fsync sync bzero \
2318 memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign \
2319 cfmakeraw cfsetspeed)
2321 AC_CHECK_HEADERS(sys/un.h)
2323 AC_FUNC_MKTIME
2324 if test "$ac_cv_func_working_mktime" = no; then
2325   AC_DEFINE(BROKEN_MKTIME, 1, [Define to 1 if the mktime function is broken.])
2328 AC_FUNC_GETLOADAVG
2330 AC_FUNC_FSEEKO
2332 # Configure getopt.
2333 m4_include([m4/getopt.m4])
2334 gl_GETOPT_IFELSE([
2335   gl_GETOPT_SUBSTITUTE_HEADER
2336   gl_PREREQ_GETOPT
2337   GETOPTOBJS='getopt.o getopt1.o'
2339 AC_SUBST(GETOPTOBJS)
2341 AC_FUNC_GETPGRP
2343 AC_FUNC_STRFTIME
2345 # UNIX98 PTYs.
2346 AC_CHECK_FUNCS(grantpt)
2348 # PTY-related GNU extensions.
2349 AC_CHECK_FUNCS(getpt)
2351 # Check this now, so that we will NOT find the above functions in ncurses.
2352 # That is because we have not set up to link ncurses in lib-src.
2353 # It's better to believe a function is not available
2354 # than to expect to find it in ncurses.
2355 # Also we need tputs and frieds to be able to build at all.
2356 have_tputs_et_al=true
2357 AC_SEARCH_LIBS(tputs, [ncurses terminfo termcap], , have_tputs_et_al=false)
2358 if test "$have_tputs_et_al" != true; then
2359   AC_MSG_ERROR([I couldn't find termcap functions (tputs and friends).
2360 Maybe some development libraries/packages are missing?  Try installing
2361 libncurses-dev(el), libterminfo-dev(el) or similar.])
2363 # Must define this when any termcap library is found.
2364 AC_DEFINE(HAVE_LIBNCURSES, 1,
2365           [Define to 1 if you have the `ncurses' library (-lncurses).])
2367 # Do we have res_init, for detecting changes in /etc/resolv.conf?
2369 resolv=no
2370 AC_TRY_LINK([#include <netinet/in.h>
2371 #include <arpa/nameser.h>
2372 #include <resolv.h>],
2373     [return res_init();],
2374     have_res_init=yes, have_res_init=no)
2375 if test "$have_res_init" = no; then
2376   OLIBS="$LIBS"
2377   LIBS="$LIBS -lresolv"
2378   AC_MSG_CHECKING(for res_init with -lresolv)
2379   AC_TRY_LINK([#include <netinet/in.h>
2380 #include <arpa/nameser.h>
2381 #include <resolv.h>],
2382     [return res_init();],
2383     have_res_init=yes, have_res_init=no)
2384   AC_MSG_RESULT($have_res_init)
2385   if test "$have_res_init" = yes ; then
2386     resolv=yes
2387   fi
2388   LIBS="$OLIBS"
2391 if test "$have_res_init" = yes; then
2392   AC_DEFINE(HAVE_RES_INIT, 1, [Define to 1 if res_init is available.])
2395 # Do we need the Hesiod library to provide the support routines?
2396 LIBHESIOD=
2397 if test "$with_hesiod" != no ; then
2398   # Don't set $LIBS here -- see comments above.  FIXME which comments?
2399   AC_CHECK_FUNC(res_send, , [AC_CHECK_FUNC(__res_send, ,
2400      [AC_CHECK_LIB(resolv, res_send, resolv=yes,
2401                   [AC_CHECK_LIB(resolv, __res_send, resolv=yes)])])])
2402   if test "$resolv" = yes ; then
2403     RESOLVLIB=-lresolv
2404   else
2405     RESOLVLIB=
2406   fi
2407   AC_CHECK_FUNC(hes_getmailhost, , [AC_CHECK_LIB(hesiod, hes_getmailhost,
2408         hesiod=yes, :, $RESOLVLIB)])
2410   if test x"$hesiod" = xyes; then
2411     AC_DEFINE(HAVE_LIBHESIOD, 1,
2412               [Define to 1 if you have the hesiod library (-lhesiod).])
2413     LIBHESIOD=-lhesiod
2414   fi
2416 AC_SUBST(LIBHESIOD)
2418 # Do we need libresolv (due to res_init or Hesiod)?
2419 if test "$resolv" = yes ; then
2420   AC_DEFINE(HAVE_LIBRESOLV, 1,
2421             [Define to 1 if you have the resolv library (-lresolv).])
2422   LIBRESOLV=-lresolv
2423 else
2424   LIBRESOLV=
2426 AC_SUBST(LIBRESOLV)
2428 # These tell us which Kerberos-related libraries to use.
2429 COM_ERRLIB=
2430 CRYPTOLIB=
2431 KRB5LIB=
2432 DESLIB=
2433 KRB4LIB=
2435 if test "${with_kerberos}" != no; then
2436   AC_CHECK_LIB(com_err, com_err, have_com_err=yes, have_com_err=no)
2437   if test $have_com_err = yes; then
2438     COM_ERRLIB=-lcom_err
2439     LIBS="$COM_ERRLIB $LIBS"
2440     AC_DEFINE(HAVE_LIBCOM_ERR, 1, [Define to 1 if you have the `com_err' library (-lcom_err).])
2441   fi
2442   AC_CHECK_LIB(crypto, mit_des_cbc_encrypt, have_crypto=yes, have_crypto=no)
2443   if test $have_crypto = yes; then
2444     CRYPTOLIB=-lcrypto
2445     LIBS="$CRYPTOLIB $LIBS"
2446     AC_DEFINE(HAVE_LIBCRYPTO, 1, [Define to 1 if you have the `crypto' library (-lcrypto).])
2447   fi
2448   AC_CHECK_LIB(k5crypto, mit_des_cbc_encrypt, have_k5crypto=yes, have_k5crypto=no)
2449   if test $have_k5crypto = yes; then
2450     CRYPTOLIB=-lk5crypto
2451     LIBS="$CRYPTOLIB $LIBS"
2452     AC_DEFINE(HAVE_LIBK5CRYPTO, 1, [Define to 1 if you have the `k5crypto' library (-lk5crypto).])
2453   fi
2454   AC_CHECK_LIB(krb5, krb5_init_context, have_krb5=yes, have_krb5=no)
2455   if test $have_krb5=yes; then
2456     KRB5LIB=-lkrb5
2457     LIBS="$KRB5LIB $LIBS"
2458     AC_DEFINE(HAVE_LIBKRB5, 1, [Define to 1 if you have the `krb5' library (-lkrb5).])
2459   fi
2460   dnl FIXME Simplify.  Does not match 22 logic, thanks to default_off?
2461   if test "${with_kerberos5}" = no; then
2462     AC_CHECK_LIB(des425, des_cbc_encrypt, have_des425=yes, have_des425=no )
2463     if test $have_des425 = yes; then
2464       DESLIB=-ldes425
2465       LIBS="$DESLIB $LIBS"
2466       AC_DEFINE(HAVE_LIBDES425, 1, [Define to 1 if you have the `des425' library (-ldes425).])
2467     else
2468       AC_CHECK_LIB(des, des_cbc_encrypt, have_des=yes, have_des=no)
2469       if test $have_des = yes; then
2470         DESLIB=-ldes
2471         LIBS="$DESLIB $LIBS"
2472         AC_DEFINE(HAVE_LIBDES, 1, [Define to 1 if you have the `des' library (-ldes).])
2473       fi
2474     fi
2475     AC_CHECK_LIB(krb4, krb_get_cred, have_krb4=yes, have_krb4=no)
2476     if test $have_krb4 = yes; then
2477       KRB4LIB=-lkrb4
2478       LIBS="$KRB4LIB $LIBS"
2479       AC_DEFINE(HAVE_LIBKRB4, 1, [Define to 1 if you have the `krb4' library (-lkrb4).])
2480     else
2481       AC_CHECK_LIB(krb, krb_get_cred, have_krb=yes, have_krb=no)
2482       if test $have_krb = yes; then
2483         KRB4LIB=-lkrb
2484         LIBS="$KRB4LIB $LIBS"
2485         AC_DEFINE(HAVE_LIBKRB, 1, [Define to 1 if you have the `krb' library (-lkrb).])
2486       fi
2487     fi
2488   fi
2490   if test "${with_kerberos5}" != no; then
2491     AC_CHECK_HEADERS(krb5.h,
2492       [AC_CHECK_MEMBERS([krb5_error.text, krb5_error.e_text],,,
2493                         [#include <krb5.h>])])
2494   else
2495     AC_CHECK_HEADERS(des.h,,
2496                      [AC_CHECK_HEADERS(kerberosIV/des.h,,
2497                                        [AC_CHECK_HEADERS(kerberos/des.h)])])
2498     AC_CHECK_HEADERS(krb.h,,
2499                      [AC_CHECK_HEADERS(kerberosIV/krb.h,,
2500                                        [AC_CHECK_HEADERS(kerberos/krb.h)])])
2501   fi
2502   AC_CHECK_HEADERS(com_err.h)
2505 AC_SUBST(COM_ERRLIB)
2506 AC_SUBST(CRYPTOLIB)
2507 AC_SUBST(KRB5LIB)
2508 AC_SUBST(DESLIB)
2509 AC_SUBST(KRB4LIB)
2511 # Solaris requires -lintl if you want strerror (which calls dgettext)
2512 # to return localized messages.
2513 AC_CHECK_LIB(intl, dgettext)
2515 AC_MSG_CHECKING(whether localtime caches TZ)
2516 AC_CACHE_VAL(emacs_cv_localtime_cache,
2517 [if test x$ac_cv_func_tzset = xyes; then
2518 AC_TRY_RUN([#include <time.h>
2519 extern char **environ;
2520 unset_TZ ()
2522   char **from, **to;
2523   for (to = from = environ; (*to = *from); from++)
2524     if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
2525       to++;
2527 char TZ_GMT0[] = "TZ=GMT0";
2528 char TZ_PST8[] = "TZ=PST8";
2529 main()
2531   time_t now = time ((time_t *) 0);
2532   int hour_GMT0, hour_unset;
2533   if (putenv (TZ_GMT0) != 0)
2534     exit (1);
2535   hour_GMT0 = localtime (&now)->tm_hour;
2536   unset_TZ ();
2537   hour_unset = localtime (&now)->tm_hour;
2538   if (putenv (TZ_PST8) != 0)
2539     exit (1);
2540   if (localtime (&now)->tm_hour == hour_GMT0)
2541     exit (1);
2542   unset_TZ ();
2543   if (localtime (&now)->tm_hour != hour_unset)
2544     exit (1);
2545   exit (0);
2546 }], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
2547 [# If we have tzset, assume the worst when cross-compiling.
2548 emacs_cv_localtime_cache=yes])
2549 else
2550         # If we lack tzset, report that localtime does not cache TZ,
2551         # since we can't invalidate the cache if we don't have tzset.
2552         emacs_cv_localtime_cache=no
2553 fi])dnl
2554 AC_MSG_RESULT($emacs_cv_localtime_cache)
2555 if test $emacs_cv_localtime_cache = yes; then
2556   AC_DEFINE(LOCALTIME_CACHE, 1,
2557             [Define to 1 if localtime caches TZ.])
2560 if test "x$HAVE_TIMEVAL" = xyes; then
2561   AC_CHECK_FUNCS(gettimeofday)
2562   if test $ac_cv_func_gettimeofday = yes; then
2563     AC_CACHE_CHECK(whether gettimeofday can accept two arguments,
2564                    emacs_cv_gettimeofday_two_arguments,
2565     [AC_TRY_COMPILE([
2566 #ifdef TIME_WITH_SYS_TIME
2567 #include <sys/time.h>
2568 #include <time.h>
2569 #else
2570 #ifdef HAVE_SYS_TIME_H
2571 #include <sys/time.h>
2572 #else
2573 #include <time.h>
2574 #endif
2575 #endif],
2576       [struct timeval time;
2577        gettimeofday (&time, 0);],
2578       emacs_cv_gettimeofday_two_arguments=yes,
2579       emacs_cv_gettimeofday_two_arguments=no)])
2580     if test $emacs_cv_gettimeofday_two_arguments = no; then
2581       AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT, 1,
2582                 [Define to 1 if gettimeofday accepts only one argument.])
2583     fi
2584   fi
2587 ok_so_far=yes
2588 AC_CHECK_FUNC(socket, , ok_so_far=no)
2589 if test $ok_so_far = yes; then
2590   AC_CHECK_HEADER(netinet/in.h, , ok_so_far=no)
2592 if test $ok_so_far = yes; then
2593   AC_CHECK_HEADER(arpa/inet.h, , ok_so_far=no)
2595 if test $ok_so_far = yes; then
2596 dnl Fixme: Not used.  Should this be HAVE_SOCKETS?
2597   AC_DEFINE(HAVE_INET_SOCKETS, 1,
2598             [Define to 1 if you have inet sockets.])
2601 AC_CHECK_HEADERS(sys/ioctl.h)
2603 if test -f /usr/lpp/X11/bin/smt.exp; then
2604   AC_DEFINE(HAVE_AIX_SMT_EXP, 1,
2605             [Define to 1 if the file /usr/lpp/X11/bin/smt.exp exists.])
2608 AC_MSG_CHECKING(whether system supports dynamic ptys)
2609 if test -d /dev/pts && ls -d /dev/ptmx > /dev/null 2>&1 ; then
2610   AC_MSG_RESULT(yes)
2611   AC_DEFINE(HAVE_DEV_PTMX, 1, [Define to 1 if dynamic ptys are supported.])
2612 else
2613   AC_MSG_RESULT(no)
2616 AC_FUNC_FORK
2618 dnl Adapted from Haible's version.
2619 AC_CACHE_CHECK([for nl_langinfo and CODESET], emacs_cv_langinfo_codeset,
2620   [AC_TRY_LINK([#include <langinfo.h>],
2621     [char* cs = nl_langinfo(CODESET);],
2622     emacs_cv_langinfo_codeset=yes,
2623     emacs_cv_langinfo_codeset=no)
2624   ])
2625 if test $emacs_cv_langinfo_codeset = yes; then
2626   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
2627     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
2630 AC_CHECK_TYPES(size_t)
2632 AC_TYPE_MBSTATE_T
2634 dnl Restrict could probably be used effectively other than in regex.c.
2635 AC_CACHE_CHECK([for C restrict keyword], emacs_cv_c_restrict,
2636   [AC_TRY_COMPILE([void fred (int *restrict x);], [],
2637                   emacs_cv_c_restrict=yes,
2638                   [AC_TRY_COMPILE([void fred (int *__restrict x);], [],
2639                                   emacs_cv_c_restrict=__restrict,
2640                                   emacs_cv_c_restrict=no)])])
2641 case "$emacs_cv_c_restrict" in
2642   yes) emacs_restrict=restrict;;
2643   no) emacs_restrict="";;
2644   *) emacs_restrict="$emacs_cv_c_restrict";;
2645 esac
2646 if test "$emacs_restrict" != __restrict; then
2647   AC_DEFINE_UNQUOTED(__restrict, $emacs_restrict,
2648     [Define to compiler's equivalent of C99 restrict keyword.
2649      Don't define if equivalent is `__restrict'.])
2652 AC_CACHE_CHECK([for C restricted array declarations], emacs_cv_c_restrict_arr,
2653   [AC_TRY_COMPILE([void fred (int x[__restrict]);], [],
2654                   emacs_cv_c_restrict_arr=yes, emacs_cv_c_restrict_arr=no)])
2655 if test "$emacs_cv_c_restrict_arr" = yes; then
2656   AC_DEFINE(__restrict_arr, __restrict,
2657     [Define to compiler's equivalent of C99 restrict keyword in array
2658      declarations.  Define as empty for no equivalent.])
2661 dnl Fixme: AC_SYS_POSIX_TERMIOS should probably be used, but it's not clear
2662 dnl how the tty code is related to POSIX and/or other versions of termios.
2663 dnl The following looks like a useful start.
2665 dnl AC_SYS_POSIX_TERMIOS
2666 dnl if test $ac_cv_sys_posix_termios = yes; then
2667 dnl    AC_DEFINE(HAVE_TERMIOS, 1, [Define to 1 if you have POSIX-style functions
2668 dnl                                and macros for terminal control.])
2669 dnl    AC_DEFINE(HAVE_TCATTR, 1, [Define to 1 if you have tcgetattr and tcsetattr.])
2670 dnl fi
2672 dnl Fixme: Use AC_FUNC_MEMCMP since memcmp is used.  (Needs libobj replacement.)
2674 # Set up the CFLAGS for real compilation, so we can substitute it.
2675 CFLAGS="$REAL_CFLAGS"
2676 CPPFLAGS="$REAL_CPPFLAGS"
2678 #### Find out which version of Emacs this is.
2679 [version=`grep 'defconst[        ]*emacs-version' ${srcdir}/lisp/version.el \
2680          | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`]
2681 if test x"${version}" = x; then
2682   AC_MSG_ERROR([can't find current emacs version in `${srcdir}/lisp/version.el'.])
2684 if test x"${version}" != x"$PACKAGE_VERSION"; then
2685   AC_MSG_WARN([version mismatch between `${srcdir}/configure.in' and `${srcdir}/lisp/version.el'.])
2688 ### Specify what sort of things we'll be editing into Makefile and config.h.
2689 ### Use configuration here uncanonicalized to avoid exceeding size limits.
2690 AC_SUBST(version)
2691 AC_SUBST(configuration)
2692 AC_SUBST(canonical)
2693 AC_SUBST(srcdir)
2694 AC_SUBST(prefix)
2695 AC_SUBST(exec_prefix)
2696 AC_SUBST(bindir)
2697 AC_SUBST(datadir)
2698 AC_SUBST(sharedstatedir)
2699 AC_SUBST(libexecdir)
2700 AC_SUBST(mandir)
2701 AC_SUBST(infodir)
2702 AC_SUBST(lispdir)
2703 AC_SUBST(locallisppath)
2704 AC_SUBST(lisppath)
2705 AC_SUBST(x_default_search_path)
2706 AC_SUBST(etcdir)
2707 AC_SUBST(archlibdir)
2708 AC_SUBST(docdir)
2709 AC_SUBST(bitmapdir)
2710 AC_SUBST(gamedir)
2711 AC_SUBST(gameuser)
2712 AC_SUBST(c_switch_system)
2713 AC_SUBST(c_switch_machine)
2714 AC_SUBST(LD_SWITCH_X_SITE)
2715 AC_SUBST(LD_SWITCH_X_SITE_AUX)
2716 AC_SUBST(C_SWITCH_X_SITE)
2717 AC_SUBST(CFLAGS)
2718 AC_SUBST(X_TOOLKIT_TYPE)
2719 AC_SUBST(machfile)
2720 AC_SUBST(opsysfile)
2721 AC_SUBST(GETLOADAVG_LIBS)
2722 AC_SUBST(ns_appdir)
2723 AC_SUBST(ns_appbindir)
2724 AC_SUBST(ns_appresdir)
2725 AC_SUBST(ns_appsrc)
2726 AC_SUBST(GNUSTEP_MAKEFILES)
2727 AC_SUBST(GNUSTEP_SYSTEM_HEADERS)
2728 AC_SUBST(GNUSTEP_SYSTEM_LIBRARIES)
2729 AC_SUBST(GNU_OBJC_CFLAGS)
2730 AC_SUBST(LIB_SRC_EXTRA_INSTALLABLES)
2731 AC_SUBST(OTHER_FILES)
2733 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION,  "${canonical}",
2734                    [Define to the canonical Emacs configuration name.])
2735 AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}",
2736                    [Define to the options passed to configure.])
2737 AC_DEFINE_UNQUOTED(config_machfile,  "${machfile}",
2738                    [Define to the used machine dependent file.])
2739 AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}",
2740                    [Define to the used os dependent file.])
2741 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE},
2742 [Define LD_SWITCH_X_SITE to contain any special flags your loader
2743  may need to deal with X Windows.  For instance, if you've defined
2744  HAVE_X_WINDOWS above and your X libraries aren't in a place that
2745  your loader can find on its own, you might want to add "-L/..." or
2746  something similar.])
2747 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX},
2748                    [Define LD_SWITCH_X_SITE_AUX with an -R option
2749                     in case it's needed (for Solaris, for example).])
2750 AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE,  ${C_SWITCH_X_SITE},
2751 [Define C_SWITCH_X_SITE to contain any special flags your compiler
2752  may need to deal with X Windows.  For instance, if you've defined
2753  HAVE_X_WINDOWS above and your X include files aren't in a place
2754  that your compiler can find on its own, you might want to add
2755  "-I/..." or something similar.])
2756 AC_DEFINE_UNQUOTED(UNEXEC_SRC,       ${UNEXEC_SRC},
2757                    [Define to the unexec source file name.])
2759 if test "${HAVE_X_WINDOWS}" = "yes" ; then
2760   AC_DEFINE(HAVE_X_WINDOWS, 1,
2761             [Define to 1 if you want to use the X window system.])
2763 if test "${USE_X_TOOLKIT}" != "none" ; then
2764   AC_DEFINE(USE_X_TOOLKIT, 1, [Define to 1 if using an X toolkit.])
2765   if test "${USE_X_TOOLKIT}" = "LUCID"; then
2766     AC_DEFINE(USE_LUCID, 1, [Define to 1 if using the Lucid X toolkit.])
2767   elif test "${USE_X_TOOLKIT}" = "MOTIF"; then
2768     AC_DEFINE(USE_MOTIF, 1, [Define to 1 if using the Motif X toolkit.])
2769   fi
2771 if test "${HAVE_X11}" = "yes" ; then
2772   AC_DEFINE(HAVE_X11, 1,
2773             [Define to 1 if you want to use version 11 of X windows.
2774              Otherwise, Emacs expects to use version 10.])
2776 if test "${HAVE_MENUS}" = "yes" ; then
2777   AC_DEFINE(HAVE_MENUS, 1,
2778             [Define to 1 if you have mouse menus.
2779              (This is automatic if you use X, but the option to specify it remains.)
2780              It is also defined with other window systems that support xmenu.c.])
2782 if test "${GNU_MALLOC}" = "yes" ; then
2783   AC_DEFINE(GNU_MALLOC, 1,
2784             [Define to 1 if you want to use the GNU memory allocator.])
2786 if test "${REL_ALLOC}" = "yes" ; then
2787   AC_DEFINE(REL_ALLOC, 1,
2788             [Define REL_ALLOC if you want to use the relocating allocator for
2789              buffer space.])
2793 AH_TOP([/* GNU Emacs site configuration template file.
2794    Copyright (C) 1988, 1993, 1994, 1999, 2000, 2001, 2002, 2004, 2005,
2795      2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc.
2797 This file is part of GNU Emacs.
2799 GNU Emacs is free software: you can redistribute it and/or modify
2800 it under the terms of the GNU General Public License as published by
2801 the Free Software Foundation, either version 3 of the License, or
2802 (at your option) any later version.
2804 GNU Emacs is distributed in the hope that it will be useful,
2805 but WITHOUT ANY WARRANTY; without even the implied warranty of
2806 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2807 GNU General Public License for more details.
2809 You should have received a copy of the GNU General Public License
2810 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
2813 /* No code in Emacs #includes config.h twice, but some bits of code
2814    intended to work with other packages as well (like gmalloc.c)
2815    think they can include it as many times as they like.  */
2816 #ifndef EMACS_CONFIG_H
2817 #define EMACS_CONFIG_H
2818 ])dnl
2820 AH_BOTTOM([
2821 /* If we're using X11/Carbon/GNUstep, define some consequences.  */
2822 #if defined(HAVE_X_WINDOWS) || defined(HAVE_NS)
2823 #define HAVE_WINDOW_SYSTEM
2824 #define HAVE_MOUSE
2825 #endif
2827 /* Define AMPERSAND_FULL_NAME if you use the convention
2828    that & in the full name stands for the login id.  */
2829 /* Turned on June 1996 supposing nobody will mind it.  */
2830 #define AMPERSAND_FULL_NAME
2832 /* Define HAVE_SOUND if we have sound support.  We know it works
2833    and compiles only on the specified platforms.   For others,
2834    it probably doesn't make sense to try.  */
2836 #if defined __FreeBSD__ || defined __NetBSD__ || defined __linux__
2837 #ifdef HAVE_MACHINE_SOUNDCARD_H
2838 #define HAVE_SOUND 1
2839 #endif
2840 #ifdef HAVE_SYS_SOUNDCARD_H
2841 #define HAVE_SOUND 1
2842 #endif
2843 #ifdef HAVE_SOUNDCARD_H
2844 #define HAVE_SOUND 1
2845 #endif
2846 #ifdef HAVE_ALSA
2847 #define HAVE_SOUND 1
2848 #endif
2849 #endif /* __FreeBSD__ || __NetBSD__ || __linux__  */
2851 /* If using GNU, then support inline function declarations. */
2852 /* Don't try to switch on inline handling as detected by AC_C_INLINE
2853    generally, because even if non-gcc compilers accept `inline', they
2854    may reject `extern inline'.  */
2855 #if defined (__GNUC__) && defined (OPTIMIZE)
2856 #define INLINE __inline__
2857 #else
2858 #define INLINE
2859 #endif
2861 /* `subprocesses' should be defined if you want to
2862    have code for asynchronous subprocesses
2863    (as used in M-x compile and M-x shell).
2864    Only MSDOS does not support this (it overrides
2865    this in its config_opsysfile below).  */
2867 #define subprocesses
2869 /* Include the os and machine dependent files.  */
2870 #include config_opsysfile
2871 #include config_machfile
2873 /* Set up some defines, C and LD flags for NeXTstep interface on GNUstep.
2874   (There is probably a better place to do this, but right now the Cocoa
2875    side does this in s/darwin.h and we cannot
2876    parallel this exactly since GNUstep is multi-OS. */
2877 #ifdef HAVE_NS
2878 # ifdef NS_IMPL_GNUSTEP
2879 /* See also .m.o rule in Makefile.in */
2880 /* FIXME: are all these flags really needed?  Document here why.  */
2881 #  define C_SWITCH_X_SYSTEM -D_REENTRANT -fPIC -fno-strict-aliasing
2882 /* GNUstep needs a bit more pure memory.  Of the existing knobs,
2883 SYSTEM_PURESIZE_EXTRA seems like the least likely to cause problems.  */
2884 #  define SYSTEM_PURESIZE_EXTRA 30000
2885 # endif /* NS_IMPL_GNUSTEP */
2886 #endif /* HAVE_NS */
2888 /* SIGTYPE is the macro we actually use.  */
2889 #ifndef SIGTYPE
2890 #define SIGTYPE RETSIGTYPE
2891 #endif
2893 #ifdef emacs /* Don't do this for lib-src.  */
2894 /* Tell regex.c to use a type compatible with Emacs.  */
2895 #define RE_TRANSLATE_TYPE Lisp_Object
2896 #define RE_TRANSLATE(TBL, C) CHAR_TABLE_TRANSLATE (TBL, C)
2897 #ifdef make_number
2898 /* If make_number is a macro, use it.  */
2899 #define RE_TRANSLATE_P(TBL) (!EQ (TBL, make_number (0)))
2900 #else
2901 /* If make_number is a function, avoid it.  */
2902 #define RE_TRANSLATE_P(TBL) (!(INTEGERP (TBL) && XINT (TBL) == 0))
2903 #endif
2904 #endif
2906 /* Avoid link-time collision with system mktime if we will use our own.  */
2907 #if ! HAVE_MKTIME || BROKEN_MKTIME
2908 #define mktime emacs_mktime
2909 #endif
2911 #define my_strftime nstrftime   /* for strftime.c */
2913 /* The rest of the code currently tests the CPP symbol BSTRING.
2914    Override any claims made by the system-description files.
2915    Note that on some SCO version it is possible to have bcopy and not bcmp.  */
2916 #undef BSTRING
2917 #if defined (HAVE_BCOPY) && defined (HAVE_BCMP)
2918 #define BSTRING
2919 #endif
2921 /* Some of the files of Emacs which are intended for use with other
2922    programs assume that if you have a config.h file, you must declare
2923    the type of getenv.
2925    This declaration shouldn't appear when alloca.s or Makefile.in
2926    includes config.h.  */
2927 #ifndef NOT_C_CODE
2928 extern char *getenv ();
2929 #endif
2931 /* These default definitions are good for almost all machines.
2932    The exceptions override them in m/MACHINE.h.  */
2934 #ifndef BITS_PER_CHAR
2935 #define BITS_PER_CHAR 8
2936 #endif
2938 #ifndef BITS_PER_SHORT
2939 #define BITS_PER_SHORT 16
2940 #endif
2942 /* Note that lisp.h uses this in a preprocessor conditional, so it
2943    would not work to use sizeof.  That being so, we do all of them
2944    without sizeof, for uniformity's sake.  */
2945 #ifndef BITS_PER_INT
2946 #define BITS_PER_INT 32
2947 #endif
2949 #ifndef BITS_PER_LONG
2950 #ifdef _LP64
2951 #define BITS_PER_LONG 64
2952 #else
2953 #define BITS_PER_LONG 32
2954 #endif
2955 #endif
2957 /* Define if the compiler supports function prototypes.  It may do so
2958    but not define __STDC__ (e.g. DEC C by default) or may define it as
2959    zero.  */
2960 #undef PROTOTYPES
2961 /* For mktime.c:  */
2962 #ifndef __P
2963 # if defined PROTOTYPES
2964 #  define __P(args) args
2965 # else
2966 #  define __P(args) ()
2967 # endif  /* GCC.  */
2968 #endif /* __P */
2970 /* Don't include "string.h" or <stdlib.h> in non-C code.  */
2971 #ifndef NOT_C_CODE
2972 #ifdef HAVE_STRING_H
2973 #include "string.h"
2974 #endif
2975 #ifdef HAVE_STRINGS_H
2976 #include "strings.h"  /* May be needed for bcopy & al. */
2977 #endif
2978 #ifdef HAVE_STDLIB_H
2979 #include <stdlib.h>
2980 #endif
2981 #ifndef __GNUC__
2982 # ifdef HAVE_ALLOCA_H
2983 #  include <alloca.h>
2984 # else /* AIX files deal with #pragma.  */
2985 #  ifndef alloca /* predefined by HP cc +Olibcalls */
2986 char *alloca ();
2987 #  endif
2988 # endif /* HAVE_ALLOCA_H */
2989 #endif /* __GNUC__ */
2990 #ifndef HAVE_SIZE_T
2991 typedef unsigned size_t;
2992 #endif
2993 #endif /* NOT_C_CODE */
2995 /* Define HAVE_X_I18N if we have usable i18n support.  */
2997 #ifdef HAVE_X11R6
2998 #define HAVE_X_I18N
2999 #elif !defined X11R5_INHIBIT_I18N
3000 #define HAVE_X_I18N
3001 #endif
3003 /* Define HAVE_X11R6_XIM if we have usable X11R6-style XIM support.  */
3005 #if defined HAVE_X11R6 && !defined INHIBIT_X11R6_XIM
3006 #define HAVE_X11R6_XIM
3007 #endif
3009 #if defined __GNUC__ && (__GNUC__ > 2 \
3010                          || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5))
3011 #define NO_RETURN       __attribute__ ((__noreturn__))
3012 #else
3013 #define NO_RETURN       /* nothing */
3014 #endif
3016 /* These won't be used automatically yet.  We also need to know, at least,
3017    that the stack is continuous.  */
3018 #ifdef __GNUC__
3019 #  ifndef GC_SETJMP_WORKS
3020   /* GC_SETJMP_WORKS is nearly always appropriate for GCC --
3021      see NON_SAVING_SETJMP in the target descriptions.  */
3022   /* Exceptions (see NON_SAVING_SETJMP in target description) are
3023      SCO5 non-ELF (but Emacs specifies ELF) and SVR3 on x86.
3024      Fixme: Deal with SVR3.  */
3025 #    define GC_SETJMP_WORKS 1
3026 #  endif
3027 #  ifndef GC_LISP_OBJECT_ALIGNMENT
3028 #    define GC_LISP_OBJECT_ALIGNMENT (__alignof__ (Lisp_Object))
3029 #  endif
3030 #endif
3032 #ifndef HAVE_BCOPY
3033 #define bcopy(a,b,s) memcpy (b,a,s)
3034 #endif
3035 #ifndef HAVE_BZERO
3036 #define bzero(a,s) memset (a,0,s)
3037 #endif
3038 #ifndef HAVE_BCMP
3039 #define BCMP memcmp
3040 #endif
3042 #endif /* EMACS_CONFIG_H */
3045 Local Variables:
3046 mode: c
3047 End:
3049 ])dnl
3051 #### Report on what we decided to do.
3052 #### Report GTK as a toolkit, even if it doesn't use Xt.
3053 #### It makes printing result more understandable as using GTK sets
3054 #### toolkit_scroll_bars to yes by default.
3055 if test "${HAVE_GTK}" = "yes"; then
3056   USE_X_TOOLKIT=GTK
3059 echo "
3060 Configured for \`${canonical}'.
3062   Where should the build process find the source code?    ${srcdir}
3063   What operating system and machine description files should Emacs use?
3064         \`${opsysfile}' and \`${machfile}'
3065   What compiler should emacs be built with?               ${CC} ${CFLAGS}
3066   Should Emacs use the GNU version of malloc?             ${GNU_MALLOC}${GNU_MALLOC_reason}
3067   Should Emacs use a relocating allocator for buffers?    ${REL_ALLOC}
3068   Should Emacs use mmap(2) for buffer allocation?         $use_mmap_for_buffers
3069   What window system should Emacs use?                    ${window_system}
3070   What toolkit should Emacs use?                          ${USE_X_TOOLKIT}"
3072 if test -n "${x_includes}"; then
3073 echo "  Where do we find X Windows header files?                ${x_includes}"
3074 else
3075 echo "  Where do we find X Windows header files?                Standard dirs"
3077 if test -n "${x_libraries}"; then
3078 echo "  Where do we find X Windows libraries?                   ${x_libraries}"
3079 else
3080 echo "  Where do we find X Windows libraries?                   Standard dirs"
3083 echo "  Does Emacs use -lXaw3d?                                 ${HAVE_XAW3D}"
3084 echo "  Does Emacs use -lXpm?                                   ${HAVE_XPM}"
3085 echo "  Does Emacs use -ljpeg?                                  ${HAVE_JPEG}"
3086 echo "  Does Emacs use -ltiff?                                  ${HAVE_TIFF}"
3087 echo "  Does Emacs use a gif library?                           ${HAVE_GIF} $LIBGIF"
3088 echo "  Does Emacs use -lpng?                                   ${HAVE_PNG}"
3089 echo "  Does Emacs use -lrsvg-2?                                ${HAVE_RSVG}"
3090 echo "  Does Emacs use -lgpm?                                   ${HAVE_GPM}"
3091 echo "  Does Emacs use -ldbus?                                  ${HAVE_DBUS}"
3092 echo "  Does Emacs use -lgconf?                                 ${HAVE_GCONF}"
3094 echo "  Does Emacs use -lfreetype?                              ${HAVE_FREETYPE}"
3095 echo "  Does Emacs use -lm17n-flt?                              ${HAVE_M17N_FLT}"
3096 echo "  Does Emacs use -lotf?                                   ${HAVE_LIBOTF}"
3097 echo "  Does Emacs use -lxft?                                   ${HAVE_XFT}"
3099 echo "  Does Emacs use toolkit scroll bars?                     ${USE_TOOLKIT_SCROLL_BARS}"
3100 echo
3102 if test $USE_XASSERTS = yes; then
3103    echo "  Compiling with asserts turned on."
3104    CPPFLAGS="$CPPFLAGS -DXASSERTS=1"
3107 echo
3109 if test "$HAVE_NS" = "yes"; then
3110    echo
3111    echo "You must run \"make install\" in order to test the built application.
3112 The installed application will go to nextstep/Emacs.app and can be
3113 run or moved from there."
3114    if test "$EN_NS_SELF_CONTAINED" = "yes"; then
3115       echo "The application will be fully self-contained."
3116     else
3117       echo "The lisp resources for the application will be installed under ${prefix}.
3118 You may need to run \"make install\" with sudo.  The application will fail
3119 to run if these resources are not installed."
3120    fi
3121    echo
3124 if test "$HAVE_DBUS" = yes && test "${opsys}" != "gnu-linux"; then
3125   echo "D-Bus integration has been tested for GNU/Linux only."
3126   echo
3130 # Remove any trailing slashes in these variables.
3131 [test "${prefix}" != NONE &&
3132   prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
3133 test "${exec_prefix}" != NONE &&
3134   exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`]
3136 # Now get this: Some word that is part of the ${srcdir} directory name
3137 # or the ${configuration} value might, just might, happen to be an
3138 # identifier like `sun4' or `i386' or something, and be predefined by
3139 # the C preprocessor to some helpful value like 1, or maybe the empty
3140 # string.  Needless to say consequent macro substitutions are less
3141 # than conducive to the makefile finding the correct directory.
3142 [cpp_undefs="`echo $srcdir $configuration $canonical |
3143   sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/  *$//' \
3144   -e 's/  */ -U/g' -e 's/-U[0-9][^ ]*//g'`"]
3146 ## Check if the C preprocessor will convert `..' to `. .'.  If so, set
3147 ## CPP_NEED_TRADITIONAL to `yes' so that the code to generate Makefile
3148 ## from Makefile.c can correctly provide the arg `-traditional' to the
3149 ## C preprocessor.
3151 AC_EGREP_CPP(yes..yes,
3152         [yes..yes],
3153         CPP_NEED_TRADITIONAL=no,
3154         CPP_NEED_TRADITIONAL=yes)
3156 AC_OUTPUT(Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile \
3157         doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \
3158         doc/lispref/Makefile src/Makefile.c:src/Makefile.in \
3159         lwlib/Makefile lisp/Makefile leim/Makefile, [
3161 ### Make the necessary directories, if they don't exist.
3162 for dir in etc lisp ; do
3163   test -d ${dir} || mkdir ${dir}
3164 done
3166 # Build src/Makefile from ${srcdir}/src/Makefile.c
3167 # and lib-src/Makefile from ${srcdir}/lib-src/Makefile.c
3168 # This must be done after src/config.h is built, since we rely on that file.
3170 echo creating src/epaths.h
3171 ${MAKE-make} epaths-force
3173 # As of 2000-11-19, newest development versions of GNU cpp preprocess
3174 # `..' to `. .'  unless invoked with -traditional
3176 if test "x$GCC" = xyes && test "x$CPP_NEED_TRADITIONAL" = xyes; then
3177   CPPFLAGS="$CPPFLAGS -traditional"
3180 echo creating lib-src/Makefile
3181 ( cd lib-src
3182   rm -f junk.c junk1.c junk2.c
3183   sed -e '/start of cpp stuff/q' \
3184       < Makefile.c > junk1.c
3185   sed -e '1,/start of cpp stuff/d'\
3186       -e 's,/\*\*/#\(.*\)$,/* \1 */,' \
3187       < Makefile.c > junk.c
3188   $CPP -P $cpp_undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
3189       sed -e 's/^ /     /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
3190   cat junk1.c junk2.c > Makefile.new
3191   rm -f junk.c junk1.c junk2.c
3192   chmod 444 Makefile.new
3193   mv -f Makefile.new Makefile
3196 echo creating src/Makefile
3197 ( cd src
3198   rm -f junk.c junk1.c junk2.c
3199   sed -e '/start of cpp stuff/q' \
3200       < Makefile.c > junk1.c
3201   sed -e '1,/start of cpp stuff/d'\
3202       -e 's,/\*\*/#\(.*\)$,/* \1 */,' \
3203       < Makefile.c > junk.c
3204   $CPP -P $cpp_undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
3205       sed -e 's/^ /     /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
3206   cat junk1.c junk2.c > Makefile.new
3207   rm -f junk.c junk1.c junk2.c
3208   chmod 444 Makefile.new
3209   mv -f Makefile.new Makefile
3212 if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then
3213   echo creating src/.gdbinit
3214   echo source $srcdir/src/.gdbinit > src/.gdbinit
3217 ], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPP_NEED_TRADITIONAL="$CPP_NEED_TRADITIONAL" CPPFLAGS="$CPPFLAGS" cpp_undefs="$cpp_undefs"])
3219 m4_if(dnl       Do not change this comment
3220    arch-tag: 156a4dd5-bddc-4d18-96ac-f37742cf6a5e
3221 )dnl