Convert ChangeLog text to in-file comment
[emacs.git] / configure.ac
blob9fcf30ccab355d8b8a08655ec9669dbae0da2b87
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 If you changed any AC_DEFINES, also run autoheader.
6 dnl
7 dnl Copyright (C) 1994-1996, 1999-2013 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.65)
25 AC_INIT(emacs, 24.3.50)
27 dnl Set emacs_config_options to the options of 'configure', quoted for the shell,
28 dnl and then quoted again for a C string.  Separate options with spaces.
29 dnl Add some environment variables, if they were passed via the environment
30 dnl rather than on the command-line.
31 emacs_config_options=
32 optsep=
33 dnl This is the documented way to record the args passed to configure,
34 dnl rather than $ac_configure_args.
35 for opt in ${1+"$@"} CFLAGS CPPFLAGS LDFLAGS; do
36   case $opt in
37     -n | --no-create | --no-recursion)
38       continue ;;
39     CFLAGS | CPPFLAGS | LDFLAGS)
40       eval 'test "${'$opt'+set}" = set' || continue
41       case " $*" in
42         *" $opt="*) continue ;;
43       esac
44       eval opt=$opt=\$$opt ;;
45   esac
47   emacs_shell_specials=$IFS\''"#$&()*;<>?@<:@\\`{|~'
48   case $opt in
49     *[["$emacs_shell_specials"]]*)
50       case $opt in
51         *\'*)
52           emacs_quote_apostrophes="s/'/'\\\\''/g"
53           opt=`AS_ECHO(["$opt"]) | sed "$emacs_quote_apostrophes"` ;;
54       esac
55       opt="'$opt'"
56       case $opt in
57         *[['"\\']]*)
58           emacs_quote_for_c='s/[["\\]]/\\&/g; $!s/$/\\n\\/'
59           opt=`AS_ECHO(["$opt"]) | sed "$emacs_quote_for_c"` ;;
60       esac ;;
61   esac
62   AS_VAR_APPEND([emacs_config_options], ["$optsep$opt"])
63   optsep=' '
64 done
66 AC_CONFIG_HEADER(src/config.h:src/config.in)
67 AC_CONFIG_SRCDIR(src/lisp.h)
68 AC_CONFIG_AUX_DIR(build-aux)
69 dnl Fairly arbitrary, older versions might work too.
70 AM_INIT_AUTOMAKE(1.11)
72 dnl Support for --program-prefix, --program-suffix and
73 dnl --program-transform-name options
74 AC_ARG_PROGRAM
76 dnl It is important that variables on the RHS not be expanded here,
77 dnl hence the single quotes.  This is per the GNU coding standards, see
78 dnl (autoconf) Installation Directory Variables
79 dnl See also epaths.h below.
80 lispdir='${datadir}/emacs/${version}/lisp'
81 leimdir='${datadir}/emacs/${version}/leim'
82 standardlisppath='${lispdir}:${leimdir}'
83 locallisppath='${datadir}/emacs/${version}/site-lisp:'\
84 '${datadir}/emacs/site-lisp'
85 lisppath='${locallisppath}:${standardlisppath}'
86 etcdir='${datadir}/emacs/${version}/etc'
87 archlibdir='${libexecdir}/emacs/${version}/${configuration}'
88 etcdocdir='${datadir}/emacs/${version}/etc'
89 gamedir='${localstatedir}/games/emacs'
91 dnl Special option to disable the most of other options.
92 AC_ARG_WITH(all,
93 [AS_HELP_STRING([--without-all],
94                 [omit almost all features and build
95                 small executable with minimal dependencies])],
96   with_features=$withval,
97   with_features=yes)
99 dnl OPTION_DEFAULT_OFF(NAME, HELP-STRING)
100 dnl Create a new --with option that defaults to being disabled.
101 dnl NAME is the base name of the option.  The shell variable with_NAME
102 dnl   will be set to either the user's value (if the option is
103 dnl   specified; 'yes' for a plain --with-NAME) or to 'no' (if the
104 dnl   option is not specified).  Note that the shell variable name is
105 dnl   constructed as autoconf does, by replacing non-alphanumeric
106 dnl   characters with "_".
107 dnl HELP-STRING is the help text for the option.
108 AC_DEFUN([OPTION_DEFAULT_OFF], [dnl
109   AC_ARG_WITH([$1],[AS_HELP_STRING([--with-$1],[$2])],[],[dnl
110     m4_bpatsubst([with_$1], [[^0-9a-z]], [_])=no])dnl
111 ])dnl
113 dnl OPTION_DEFAULT_ON(NAME, HELP-STRING)
114 dnl Create a new --with option that defaults to $with_features.
115 dnl NAME is the base name of the option.  The shell variable with_NAME
116 dnl   will be set either to 'no' (for a plain --without-NAME) or to
117 dnl   'yes' (if the option is not specified).  Note that the shell
118 dnl   variable name is constructed as autoconf does, by replacing
119 dnl   non-alphanumeric characters with "_".
120 dnl HELP-STRING is the help text for the option.
121 AC_DEFUN([OPTION_DEFAULT_ON], [dnl
122   AC_ARG_WITH([$1],[AS_HELP_STRING([--without-$1],[$2])],[],[dnl
123    m4_bpatsubst([with_$1], [[^0-9a-z]], [_])=$with_features])dnl
124 ])dnl
126 OPTION_DEFAULT_ON([pop],[don't support POP mail retrieval with movemail])
127 if test "$with_pop" = yes; then
128    AC_DEFINE(MAIL_USE_POP)
130 AH_TEMPLATE(MAIL_USE_POP, [Define to support POP mail retrieval.])dnl
132 OPTION_DEFAULT_OFF([kerberos],[support Kerberos-authenticated POP])
133 if test "$with_kerberos" != no; then
134    AC_DEFINE(KERBEROS)
136 AH_TEMPLATE(KERBEROS,
137             [Define to support Kerberos-authenticated POP mail retrieval.])dnl
139 OPTION_DEFAULT_OFF([kerberos5],[support Kerberos version 5 authenticated POP])
140 if test "${with_kerberos5}" != no; then
141   if test "${with_kerberos}" = no; then
142     with_kerberos=yes
143     AC_DEFINE(KERBEROS)
144   fi
145   AC_DEFINE(KERBEROS5, 1, [Define to use Kerberos 5 instead of Kerberos 4.])
148 OPTION_DEFAULT_OFF([hesiod],[support Hesiod to get the POP server host])
149 dnl FIXME hesiod support may not be present, so it seems like an error
150 dnl to define, or at least use, this unconditionally.
151 if test "$with_hesiod" != no; then
152   AC_DEFINE(HESIOD, 1, [Define to support using a Hesiod database to find the POP server.])
155 OPTION_DEFAULT_OFF([mmdf],[support MMDF mailboxes])
156 if test "$with_mmdf" != no; then
157    AC_DEFINE(MAIL_USE_MMDF, 1, [Define to support MMDF mailboxes in movemail.])
160 OPTION_DEFAULT_OFF([mail-unlink],[unlink, rather than empty, mail spool after reading])
161 if test "$with_mail_unlink" != no; then
162    AC_DEFINE(MAIL_UNLINK_SPOOL, 1, [Define to unlink, rather than empty, mail spool after reading.])
165 AC_ARG_WITH([mailhost],[AS_HELP_STRING([--with-mailhost=HOSTNAME],
166     [string giving default POP mail host])],
167     AC_DEFINE_UNQUOTED(MAILHOST, ["$withval"], [String giving fallback POP mail host.]))
169 AC_ARG_WITH([sound],[AS_HELP_STRING([--with-sound=VALUE],
170   [compile with sound support (VALUE one of: yes, alsa, oss, bsd-ossaudio, no;
171 default yes).  Only for GNU/Linux, FreeBSD, NetBSD, MinGW.])],
172   [ case "${withval}" in
173       yes|no|alsa|oss|bsd-ossaudio) val=$withval ;;
174       *) AC_MSG_ERROR([`--with-sound=$withval' is invalid;
175 this option's value should be `yes', `no', `alsa', `oss', or `bsd-ossaudio'.])
176       ;;
177     esac
178     with_sound=$val
179   ],
180   [with_sound=$with_features])
182 dnl FIXME currently it is not the last.
183 dnl This should be the last --with option, because --with-x is
184 dnl added later on when we find the file name of X, and it's best to
185 dnl keep them together visually.
186 AC_ARG_WITH([x-toolkit],[AS_HELP_STRING([--with-x-toolkit=KIT],
187  [use an X toolkit (KIT one of: yes or gtk, gtk2, gtk3, lucid or athena, motif, no)])],
188 [         case "${withval}" in
189             y | ye | yes )      val=gtk ;;
190             n | no )            val=no  ;;
191             l | lu | luc | luci | lucid )       val=lucid ;;
192             a | at | ath | athe | athen | athena )      val=athena ;;
193             m | mo | mot | moti | motif )       val=motif ;;
194             g | gt | gtk  )     val=gtk ;;
195             gtk2  )     val=gtk2 ;;
196             gtk3  )     val=gtk3 ;;
197             * )
198 AC_MSG_ERROR([`--with-x-toolkit=$withval' is invalid;
199 this option's value should be `yes', `no', `lucid', `athena', `motif', `gtk',
200 `gtk2' or `gtk3'.  `yes' and `gtk' are synonyms.
201 `athena' and `lucid' are synonyms.])
202             ;;
203           esac
204           with_x_toolkit=$val
207 OPTION_DEFAULT_OFF([wide-int], [prefer wide Emacs integers (typically 62-bit)])
208 if test "$with_wide_int" = yes; then
209   AC_DEFINE([WIDE_EMACS_INT], 1, [Use long long for EMACS_INT if available.])
212 dnl _ON results in a '--without' option in the --help output, so
213 dnl the help text should refer to "don't compile", etc.
214 OPTION_DEFAULT_ON([xpm],[don't compile with XPM image support])
215 OPTION_DEFAULT_ON([jpeg],[don't compile with JPEG image support])
216 OPTION_DEFAULT_ON([tiff],[don't compile with TIFF image support])
217 OPTION_DEFAULT_ON([gif],[don't compile with GIF image support])
218 OPTION_DEFAULT_ON([png],[don't compile with PNG image support])
219 OPTION_DEFAULT_ON([rsvg],[don't compile with SVG image support])
220 OPTION_DEFAULT_ON([xml2],[don't compile with XML parsing support])
221 OPTION_DEFAULT_ON([imagemagick],[don't compile with ImageMagick image support])
223 OPTION_DEFAULT_ON([xft],[don't use XFT for anti aliased fonts])
224 OPTION_DEFAULT_ON([libotf],[don't use libotf for OpenType font support])
225 OPTION_DEFAULT_ON([m17n-flt],[don't use m17n-flt for text shaping])
227 OPTION_DEFAULT_ON([toolkit-scroll-bars],[don't use Motif or Xaw3d scroll bars])
228 OPTION_DEFAULT_ON([xaw3d],[don't use Xaw3d])
229 OPTION_DEFAULT_ON([xim],[don't use X11 XIM])
230 OPTION_DEFAULT_OFF([ns],[use NeXTstep (Cocoa or GNUstep) windowing system])
231 OPTION_DEFAULT_OFF([w32], [use native MS Windows GUI in a Cygwin build])
233 OPTION_DEFAULT_ON([gpm],[don't use -lgpm for mouse support on a GNU/Linux console])
234 OPTION_DEFAULT_ON([dbus],[don't compile with D-Bus support])
235 OPTION_DEFAULT_ON([gconf],[don't compile with GConf support])
236 OPTION_DEFAULT_ON([gsettings],[don't compile with GSettings support])
237 OPTION_DEFAULT_ON([selinux],[don't compile with SELinux support])
238 OPTION_DEFAULT_ON([gnutls],[don't use -lgnutls for SSL/TLS support])
239 OPTION_DEFAULT_ON([zlib],[don't compile with zlib decompression support])
241 AC_ARG_WITH([file-notification],[AS_HELP_STRING([--with-file-notification=LIB],
242  [use a file notification library (LIB one of: yes, gfile, inotify, w32, no)])],
243  [ case "${withval}" in
244     y | ye | yes )      val=yes ;;
245     n | no )            val=no  ;;
246     g | gf | gfi | gfil | gfile )       val=gfile ;;
247     i | in | ino | inot | inoti | inotif | inotify )    val=inotify ;;
248     w | w3 | w32 )      val=w32 ;;
249     * ) AC_MSG_ERROR([`--with-file-notification=$withval' is invalid;
250 this option's value should be `yes', `no', `gfile', `inotify' or `w32'.
251 `yes' is a synonym for `w32' on MS-Windows, for `no' on Nextstep,
252 otherwise for the first of `gfile' or `inotify' that is usable.])
253     ;;
254    esac
255    with_file_notification=$val
256  ],
257  [with_file_notification=$with_features])
259 ## For the times when you want to build Emacs but don't have
260 ## a suitable makeinfo, and can live without the manuals.
261 dnl http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01844.html
262 OPTION_DEFAULT_ON([makeinfo],[don't require makeinfo for building manuals])
264 ## Makefile.in needs the cache file name.
265 AC_SUBST(cache_file)
267 ## This is an option because I do not know if all info/man support
268 ## compressed files, nor how to test if they do so.
269 OPTION_DEFAULT_ON([compress-install],
270   [don't compress some files (.el, .info, etc.) when installing.  Equivalent to:
271 make GZIP_PROG= install])
273 AC_ARG_WITH([pkg-config-prog],dnl
274 [AS_HELP_STRING([--with-pkg-config-prog=FILENAME],
275                   [file name of pkg-config for finding GTK and librsvg])])
276 if test "X${with_pkg_config_prog}" != X; then
277    if test "${with_pkg_config_prog}" != yes; then
278       PKG_CONFIG="${with_pkg_config_prog}"
279    fi
282 AC_ARG_WITH(gameuser,dnl
283 [AS_HELP_STRING([--with-gameuser=USER],[user for shared game score files])])
284 test "X${with_gameuser}" != X && test "${with_gameuser}" != yes \
285   && gameuser="${with_gameuser}"
286 test "X$gameuser" = X && gameuser=games
288 AC_ARG_WITH([gnustep-conf],dnl
289 [AS_HELP_STRING([--with-gnustep-conf=FILENAME],
290    [name of GNUstep.conf; default $GNUSTEP_CONFIG_FILE, or /etc/GNUstep/GNUstep.conf])])
291 test "X${with_gnustep_conf}" != X && test "${with_gnustep_conf}" != yes && \
292   GNUSTEP_CONFIG_FILE="${with_gnustep_conf}"
293 test "X$GNUSTEP_CONFIG_FILE" = "X" && \
294      GNUSTEP_CONFIG_FILE=/etc/GNUstep/GNUstep.conf
296 AC_ARG_ENABLE(ns-self-contained,
297 [AS_HELP_STRING([--disable-ns-self-contained],
298                 [disable self contained build under NeXTstep])],
299    EN_NS_SELF_CONTAINED=$enableval,
300    EN_NS_SELF_CONTAINED=yes)
302 AC_ARG_ENABLE(locallisppath,
303 [AS_HELP_STRING([--enable-locallisppath=PATH],
304                 [directories Emacs should search for lisp files specific
305                  to this site])],
306 if test "${enableval}" = "no"; then
307   locallisppath=
308 elif test "${enableval}" != "yes"; then
309   locallisppath=${enableval}
312 AC_ARG_ENABLE(checking,
313 [AS_HELP_STRING([--enable-checking@<:@=LIST@:>@],
314                 [enable expensive run-time checks.  With LIST,
315                  enable only specific categories of checks.
316                  Categories are: all,yes,no.
317                  Flags are: stringbytes, stringoverrun, stringfreelist,
318                  xmallocoverrun, conslist, glyphs])],
319 [ac_checking_flags="${enableval}"],[])
320 IFS="${IFS=     }"; ac_save_IFS="$IFS"; IFS="$IFS,"
321 for check in $ac_checking_flags
323         case $check in
324         # these set all the flags to specific states
325         yes)            ac_enable_checking=1 ;;
326         no)             ac_enable_checking= ;
327                         ac_gc_check_stringbytes= ;
328                         ac_gc_check_string_overrun= ;
329                         ac_gc_check_string_free_list= ;
330                         ac_xmalloc_overrun= ;
331                         ac_gc_check_cons_list= ;
332                         ac_glyphs_debug= ;;
333         all)            ac_enable_checking=1 ;
334                         ac_gc_check_stringbytes=1 ;
335                         ac_gc_check_string_overrun=1 ;
336                         ac_gc_check_string_free_list=1 ;
337                         ac_xmalloc_overrun=1 ;
338                         ac_gc_check_cons_list=1 ;
339                         ac_glyphs_debug=1 ;;
340         # these enable particular checks
341         stringbytes)    ac_gc_check_stringbytes=1 ;;
342         stringoverrun)  ac_gc_check_string_overrun=1 ;;
343         stringfreelist) ac_gc_check_string_free_list=1 ;;
344         xmallocoverrun) ac_xmalloc_overrun=1 ;;
345         conslist)       ac_gc_check_cons_list=1 ;;
346         glyphs)         ac_glyphs_debug=1 ;;
347         *)      AC_MSG_ERROR(unknown check category $check) ;;
348         esac
349 done
350 IFS="$ac_save_IFS"
352 if test x$ac_enable_checking != x ; then
353   AC_DEFINE(ENABLE_CHECKING, 1,
354 [Define to 1 if expensive run-time data type and consistency checks are enabled.])
356 if test x$ac_gc_check_stringbytes != x ; then
357   AC_DEFINE(GC_CHECK_STRING_BYTES, 1,
358 [Define this temporarily to hunt a bug.  If defined, the size of
359    strings is redundantly recorded in sdata structures so that it can
360    be compared to the sizes recorded in Lisp strings.])
362 if test x$ac_gc_check_string_overrun != x ; then
363   AC_DEFINE(GC_CHECK_STRING_OVERRUN, 1,
364 [Define this to check for short string overrun.])
366 if test x$ac_gc_check_string_free_list != x ; then
367   AC_DEFINE(GC_CHECK_STRING_FREE_LIST, 1,
368 [Define this to check the string free list.])
370 if test x$ac_xmalloc_overrun != x ; then
371   AC_DEFINE(XMALLOC_OVERRUN_CHECK, 1,
372 [Define this to check for malloc buffer overrun.])
374 if test x$ac_gc_check_cons_list != x ; then
375   AC_DEFINE(GC_CHECK_CONS_LIST, 1,
376 [Define this to check for errors in cons list.])
378 if test x$ac_glyphs_debug != x ; then
379   AC_DEFINE(GLYPH_DEBUG, 1,
380 [Define this to enable glyphs debugging code.])
383 AC_ARG_ENABLE(check-lisp-object-type,
384 [AS_HELP_STRING([--enable-check-lisp-object-type],
385                 [enable compile time checks for the Lisp_Object data type.
386                 This is useful for development for catching certain types of bugs.])],
387 if test "${enableval}" != "no"; then
388    AC_DEFINE(CHECK_LISP_OBJECT_TYPE, 1,
389    [Define this to enable compile time checks for the Lisp_Object data type.])
393 dnl The name of this option is unfortunate.  It predates, and has no
394 dnl relation to, the "sampling-based elisp profiler" added in 24.3.
395 dnl Actually, it stops it working.
396 dnl http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00393.html
397 AC_ARG_ENABLE(profiling,
398 [AS_HELP_STRING([--enable-profiling],
399                 [build emacs with low-level, gprof profiling support.
400                 Mainly useful for debugging Emacs itself.  May not work on
401                 all platforms.  Stops profiler.el working.])],
402 [ac_enable_profiling="${enableval}"],[])
403 if test x$ac_enable_profiling != x ; then
404    PROFILING_CFLAGS="-DPROFILING=1 -pg"
405 else
406    PROFILING_CFLAGS=
408 AC_SUBST(PROFILING_CFLAGS)
410 AC_ARG_ENABLE(autodepend,
411 [AS_HELP_STRING([--enable-autodepend],
412                 [automatically generate dependencies to .h-files.
413                  Requires GNU Make and Gcc. Enabled if GNU Make and Gcc is
414                  found])],
415 [ac_enable_autodepend="${enableval}"],[ac_enable_autodepend=yes])
417 AC_ARG_ENABLE(gtk-deprecation-warnings,
418 [AS_HELP_STRING([--enable-gtk-deprecation-warnings],
419                 [Show Gtk+/Gdk deprecation warnings for Gtk+ >= 3.0])],
420 [ac_enable_gtk_deprecation_warnings="${enableval}"],[])
422 #### Make srcdir absolute, if it isn't already.  It's important to
423 #### avoid running the file name through pwd unnecessarily, since pwd can
424 #### give you automounter prefixes, which can go away.  We do all this
425 #### so Emacs can find its files when run uninstalled.
426 ## Make sure CDPATH doesn't affect cd (in case PWD is relative).
427 unset CDPATH
428 case "${srcdir}" in
429   [[\\/]]* | ?:[[\\/]]*) ;;
430   . )
431     ## We may be able to use the $PWD environment variable to make this
432     ## absolute.  But sometimes PWD is inaccurate.
433     ## Note: we used to use $PWD at the end instead of `pwd`,
434     ## but that tested only for a well-formed and valid PWD,
435     ## it did not object when PWD was well-formed and valid but just wrong.
436     if test ".$PWD" != "." && test ".`(cd "$PWD" ; sh -c pwd)`" = ".`pwd`"  ;
437     then
438       srcdir="$PWD"
439     else
440       srcdir=`(cd "$srcdir"; pwd)`
441     fi
442   ;;
443   *  ) srcdir=`(cd "$srcdir"; pwd)` ;;
444 esac
446 ### Canonicalize the configuration name.
448 AC_CANONICAL_HOST
449 canonical=$host
450 configuration=${host_alias-${build_alias-$host}}
452 dnl This used to use changequote, but, apart from `changequote is evil'
453 dnl per the autoconf manual, we can speed up autoconf somewhat by quoting
454 dnl the great gob of text.  Thus it's not processed for possible expansion.
455 dnl Just make sure the brackets remain balanced.
457 dnl Since Emacs can't find matching pairs of quotes, boundaries are
458 dnl indicated by comments.
459 dnl quotation begins
462 ### If you add support for a new configuration, add code to this
463 ### switch statement to recognize your configuration name and select
464 ### the appropriate operating system file.
466 ### You would hope that you could choose an s/*.h
467 ### file based on the operating system portion.  However, it turns out
468 ### that each s/*.h file is pretty manufacturer-specific.
469 ### So we basically have to have a special case for each
470 ### configuration name.
472 ### As far as handling version numbers on operating systems is
473 ### concerned, make sure things will fail in a fixable way.  If
474 ### /etc/MACHINES doesn't say anything about version numbers, be
475 ### prepared to handle anything reasonably.  If version numbers
476 ### matter, be sure /etc/MACHINES says something about it.
478 opsys='' unported=no
479 case "${canonical}" in
481   ## GNU/Linux and similar ports
482   *-*-linux* )
483     opsys=gnu-linux
484   ;;
486   ## FreeBSD ports
487   *-*-freebsd* )
488     opsys=freebsd
489   ;;
491   ## DragonFly ports
492   *-*-dragonfly* )
493     opsys=dragonfly
494   ;;
496   ## FreeBSD kernel + glibc based userland
497   *-*-kfreebsd*gnu* )
498     opsys=gnu-kfreebsd
499   ;;
501   ## NetBSD ports
502   *-*-netbsd* )
503     opsys=netbsd
504   ;;
506   ## OpenBSD ports
507   *-*-openbsd* )
508     opsys=openbsd
509   ;;
511   ## Apple Darwin / Mac OS X
512   *-apple-darwin* )
513     case "${canonical}" in
514       i[3456]86-* )  ;;
515       powerpc-* )    ;;
516       x86_64-* )     ;;
517       * )            unported=yes ;;
518     esac
519     opsys=darwin
520     ## Use fink packages if available.
521     ## FIXME find a better way to do this: http://debbugs.gnu.org/11507
522 ##    if test -d /sw/include && test -d /sw/lib; then
523 ##      GCC_TEST_OPTIONS="-I/sw/include -L/sw/lib"
524 ##      NON_GCC_TEST_OPTIONS=${GCC_TEST_OPTIONS}
525 ##    fi
526   ;;
528   ## Cygwin ports
529   *-*-cygwin )
530     opsys=cygwin
531   ;;
533   ## HP 9000 series 700 and 800, running HP/UX
534   hppa*-hp-hpux10.2* )
535     opsys=hpux10-20
536   ;;
537   hppa*-hp-hpux1[1-9]* )
538     opsys=hpux11
539     CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS"
540   ;;
542   ## IBM machines
543   rs6000-ibm-aix4.[23]* )
544     opsys=aix4-2
545   ;;
546   powerpc-ibm-aix4.[23]*  )
547     opsys=aix4-2
548   ;;
549   rs6000-ibm-aix[56]* )
550     opsys=aix4-2
551   ;;
552   powerpc-ibm-aix[56]*  )
553     opsys=aix4-2
554   ;;
556   ## Silicon Graphics machines
557   ## Iris 4D
558   mips-sgi-irix6.5 )
559     opsys=irix6-5
560     # Without defining _LANGUAGE_C, things get masked out in the headers
561     # so that, for instance, grepping for `free' in stdlib.h fails and
562     # AC_HEADER_STD_C fails.   (MIPSPro 7.2.1.2m compilers, Irix 6.5.3m).
563     NON_GCC_TEST_OPTIONS="-D_LANGUAGE_C"
564   ;;
566   ## Suns
567   *-sun-solaris* \
568     | i[3456]86-*-solaris2* | i[3456]86-*-sunos5* \
569     | x86_64-*-solaris2*    | x86_64-*-sunos5*)
570     case "${canonical}" in
571       i[3456]86-*-* )   ;;
572       amd64-*-*|x86_64-*-*) ;;
573       sparc* )          ;;
574       * )               unported=yes ;;
575     esac
576     case "${canonical}" in
577       *-sunos5.6* | *-solaris2.6* )
578                 opsys=sol2-6
579                 RANLIB="ar -ts"
580                 ;;
581       *-sunos5.[7-9]* | *-solaris2.[7-9]* )
582                 opsys=sol2-6
583                 emacs_check_sunpro_c=yes
584                 ;;
585       *-sunos5* | *-solaris* )
586                 opsys=sol2-10
587                 emacs_check_sunpro_c=yes
588                 ;;
589     esac
590     ## Watch out for a compiler that we know will not work.
591     case "${canonical}" in
592      *-solaris* | *-sunos5* )
593                 if [ "x$CC" = x/usr/ucb/cc ]; then
594                   ## /usr/ucb/cc doesn't work;
595                   ## we should find some other compiler that does work.
596                   unset CC
597                 fi
598                 ;;
599       *) ;;
600     esac
601   ;;
603   ## Intel 386 machines where we don't care about the manufacturer.
604   i[3456]86-*-* )
605     case "${canonical}" in
606       *-darwin* )               opsys=darwin ;;
607       *-mingw32 )
608                 opsys=mingw32
609                 # MinGW overrides and adds some system headers in nt/inc.
610                 GCC_TEST_OPTIONS="-I $srcdir/nt/inc"
611                 ;;
612       *-sysv4.2uw* )            opsys=unixware ;;
613       *-sysv5uw* )              opsys=unixware ;;
614       *-sysv5OpenUNIX* )        opsys=unixware ;;
615       ## Otherwise, we'll fall through to the generic opsys code at the bottom.
616     esac
617   ;;
619   * )
620     unported=yes
621   ;;
622 esac
624 ### If the code above didn't choose an operating system, just choose
625 ### an operating system based on the configuration name.  You really
626 ### only want to use this when you have no idea what the right
627 ### operating system is; if you know what operating systems a machine
628 ### runs, it's cleaner to make it explicit in the case statement
629 ### above.
630 if test x"${opsys}" = x; then
631   case "${canonical}" in
632     *-gnu* )                            opsys=gnu ;;
633     * )
634       unported=yes
635     ;;
636   esac
640 dnl quotation ends
642 if test $unported = yes; then
643   AC_MSG_ERROR([Emacs hasn't been ported to `${canonical}' systems.
644 Check `etc/MACHINES' for recognized configuration names.])
648 #### Choose a compiler.
650 dnl Sets GCC=yes if using gcc.
651 AC_PROG_CC
652 AM_PROG_CC_C_O
654 if test x$GCC = xyes; then
655   test "x$GCC_TEST_OPTIONS" != x && CC="$CC $GCC_TEST_OPTIONS"
656 else
657   test "x$NON_GCC_TEST_OPTIONS" != x && CC="$CC $NON_GCC_TEST_OPTIONS"
660 dnl This is used in lib/Makefile.am to use nt/gnulib.mk, the
661 dnl alternative to lib/gnulib.mk, so as to avoid generating header files
662 dnl that clash with MinGW.
663 AM_CONDITIONAL([BUILDING_FOR_WINDOWSNT], [test "x$opsys" = "xmingw32"])
665 # Avoid gnulib's tests for HAVE_WORKING_O_NOATIME and HAVE_WORKING_O_NOFOLLOW,
666 # as we don't use them.
667 AC_DEFUN([gl_FCNTL_O_FLAGS])
668 # Avoid gnulib's threadlib module, as we do threads our own way.
669 AC_DEFUN([gl_THREADLIB])
671 # Initialize gnulib right after choosing the compiler.
672 dnl Amongst other things, this sets AR and ARFLAGS.
673 gl_EARLY
675 if test "$ac_test_CFLAGS" != set; then
676   # It's helpful to have C macros available to GDB, so prefer -g3 to -g
677   # if -g3 works and the user does not specify CFLAGS.
678   # This test must follow gl_EARLY; otherwise AC_LINK_IFELSE complains.
679   case $CFLAGS in
680     '-g')
681       emacs_g3_CFLAGS='-g3';;
682     '-g -O2')
683       emacs_g3_CFLAGS='-g3 -O2';;
684     *)
685       emacs_g3_CFLAGS='';;
686   esac
687   if test -n "$emacs_g3_CFLAGS"; then
688     emacs_save_CFLAGS=$CFLAGS
689     CFLAGS=$emacs_g3_CFLAGS
690     AC_CACHE_CHECK([whether $CC accepts $emacs_g3_CFLAGS],
691       [emacs_cv_prog_cc_g3],
692       [AC_LINK_IFELSE([AC_LANG_PROGRAM()],
693          [emacs_cv_prog_cc_g3=yes],
694          [emacs_cv_prog_cc_g3=no])])
695     if test $emacs_cv_prog_cc_g3 != yes; then
696       CFLAGS=$emacs_save_CFLAGS
697     fi
698     if test $opsys = mingw32; then
699       CFLAGS="$CFLAGS -gdwarf-2"
700     fi
701   fi
703   case $CFLAGS in
704     *-O*) ;;
705     *)
706       # No optimization flag was inferred for this non-GCC compiler.
707       # Try -O.  This is needed for xlc on AIX; see Bug#14258.
708       emacs_save_CFLAGS=$CFLAGS
709       test -z "$CFLAGS" || CFLAGS="$CFLAGS "
710       CFLAGS=${CFLAGS}-O
711       AC_CACHE_CHECK([whether $CC accepts -O],
712         [emacs_cv_prog_cc_o],
713         [AC_LINK_IFELSE([AC_LANG_PROGRAM()],
714            [emacs_cv_prog_cc_o=yes],
715            [emacs_cv_prog_cc_o=no])])
716       if test $emacs_cv_prog_cc_o != yes; then
717         CFLAGS=$emacs_save_CFLAGS
718       fi ;;
719   esac
722 AC_ARG_ENABLE([gcc-warnings],
723   [AS_HELP_STRING([--enable-gcc-warnings],
724                   [turn on lots of GCC warnings/errors. This is intended for
725                    developers, and may generate false alarms when used
726                    with older or non-GNU development tools.])],
727   [case $enableval in
728      yes|no) ;;
729      *)      AC_MSG_ERROR([bad value $enableval for gcc-warnings option]) ;;
730    esac
731    gl_gcc_warnings=$enableval],
732   [gl_gcc_warnings=no]
735 AC_ARG_ENABLE(link-time-optimization,
736 [AS_HELP_STRING([--enable-link-time-optimization],
737                 [build emacs with link-time optimization.
738                  This is supported only for GCC since 4.5.0.])],
739 if test "${enableval}" != "no"; then
740    AC_MSG_CHECKING([whether link-time optimization is supported])
741    ac_lto_supported=no
742    if test x$GCC = xyes; then
743       CPUS=`getconf _NPROCESSORS_ONLN 2>/dev/null`
744       if test x$CPUS != x; then
745          LTO="-flto=$CPUS"
746       else
747          LTO="-flto"
748       fi
749       old_CFLAGS=$CFLAGS
750       CFLAGS="$CFLAGS $LTO"
751       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
752         [ac_lto_supported=yes], [ac_lto_supported=no])
753       CFLAGS="$old_CFLAGS"
754    fi
755    AC_MSG_RESULT([$ac_lto_supported])
756    if test "$ac_lto_supported" = "yes"; then
757       CFLAGS="$CFLAGS $LTO"
758    fi
761 # gl_GCC_VERSION_IFELSE([major], [minor], [run-if-found], [run-if-not-found])
762 # ------------------------------------------------
763 # If $CPP is gcc-MAJOR.MINOR or newer, then run RUN-IF-FOUND.
764 # Otherwise, run RUN-IF-NOT-FOUND.
765 AC_DEFUN([gl_GCC_VERSION_IFELSE],
766   [AC_PREPROC_IFELSE(
767     [AC_LANG_PROGRAM(
768       [[
769 #if ($1) < __GNUC__ || (($1) == __GNUC__ && ($2) <= __GNUC_MINOR__)
770 /* ok */
771 #else
772 # error "your version of gcc is older than $1.$2"
773 #endif
774       ]]),
775     ], [$3], [$4])
776   ]
779 # When compiling with GCC, prefer -isystem to -I when including system
780 # include files, to avoid generating useless diagnostics for the files.
781 if test "$gl_gcc_warnings" != yes; then
782   isystem='-I'
783 else
784   isystem='-isystem '
786   # This, $nw, is the list of warnings we disable.
787   nw=
789   case $with_x_toolkit in
790     lucid | athena | motif)
791        # Old toolkits mishandle 'const'.
792        nw="$nw -Wwrite-strings"
793        ;;
794     *)
795        gl_WARN_ADD([-Werror], [WERROR_CFLAGS])
796        ;;
797   esac
798   AC_SUBST([WERROR_CFLAGS])
800   nw="$nw -Wsystem-headers"         # Don't let system headers trigger warnings
801   nw="$nw -Woverlength-strings"     # Not a problem these days
802   nw="$nw -Wlogical-op"             # any use of fwrite provokes this
803   nw="$nw -Wformat-nonliteral"      # we do this a lot
804   nw="$nw -Wvla"                    # warnings in gettext.h
805   nw="$nw -Wnested-externs"         # use of XARGMATCH/verify_function__
806   nw="$nw -Wswitch-default"         # Too many warnings for now
807   nw="$nw -Winline"                 # OK to ignore 'inline'
808   nw="$nw -Wjump-misses-init"       # We sometimes safely jump over init.
809   nw="$nw -Wstrict-overflow"        # OK to optimize assuming that
810                                     # signed overflow has undefined behavior
811   nw="$nw -Wsync-nand"              # irrelevant here, and provokes ObjC warning
812   nw="$nw -Wunsafe-loop-optimizations" # OK to suppress unsafe optimizations
813   nw="$nw -Wbad-function-cast"      # These casts are no worse than others.
815   # Emacs doesn't care about shadowing; see
816   # <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
817   nw="$nw -Wshadow"
819   # Emacs's use of alloca inhibits protecting the stack.
820   nw="$nw -Wstack-protector"
822   # The following line should be removable at some point.
823   nw="$nw -Wsuggest-attribute=pure"
825   # This part is merely for shortening the command line,
826   # since -Wno-FOO needs to be added below regardless.
827   nw="$nw -Wmissing-field-initializers"
828   nw="$nw -Wswitch"
829   nw="$nw -Wtype-limits"
830   nw="$nw -Wunused-parameter"
832   # clang is unduly picky about some things.
833   AC_CACHE_CHECK([whether the compiler is clang], [emacs_cv_clang],
834     [AC_COMPILE_IFELSE(
835        [AC_LANG_PROGRAM([[
836             #ifndef __clang__
837               #error "not clang"
838             #endif
839           ]])],
840        [emacs_cv_clang=yes],
841        [emacs_cv_clang=no])])
842   if test $emacs_cv_clang = yes; then
843     nw="$nw -Wcast-align"
844   fi
846   gl_MANYWARN_ALL_GCC([ws])
847   gl_MANYWARN_COMPLEMENT([ws], [$ws], [$nw])
848   for w in $ws; do
849     gl_WARN_ADD([$w])
850   done
851   gl_WARN_ADD([-Wno-missing-field-initializers]) # We need this one
852   gl_WARN_ADD([-Wno-sign-compare])     # Too many warnings for now
853   gl_WARN_ADD([-Wno-type-limits])      # Too many warnings for now
854   gl_WARN_ADD([-Wno-switch])           # Too many warnings for now
855   gl_WARN_ADD([-Wno-unused-parameter]) # Too many warnings for now
856   gl_WARN_ADD([-Wno-format-nonliteral])
858   # In spite of excluding -Wlogical-op above, it is enabled, as of
859   # gcc 4.5.0 20090517.
860   gl_WARN_ADD([-Wno-logical-op])
862   # More things that clang is unduly picky about.
863   if test $emacs_cv_clang = yes; then
864     gl_WARN_ADD([-Wno-format-extra-args])
865     gl_WARN_ADD([-Wno-tautological-constant-out-of-range-compare])
866     gl_WARN_ADD([-Wno-unused-command-line-argument])
867     gl_WARN_ADD([-Wno-unused-value])
868   fi
870   gl_WARN_ADD([-fdiagnostics-show-option])
871   gl_WARN_ADD([-funit-at-a-time])
873   AC_DEFINE([lint], [1], [Define to 1 if the compiler is checking for lint.])
874   AH_VERBATIM([FORTIFY_SOURCE],
875   [/* Enable compile-time and run-time bounds-checking, and some warnings,
876       without upsetting glibc 2.15+. */
877    #if !defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__
878    # define _FORTIFY_SOURCE 2
879    #endif
880   ])
881   AC_DEFINE([GNULIB_PORTCHECK], [1], [enable some gnulib portability checks])
883   # We use a slightly smaller set of warning options for lib/.
884   # Remove the following and save the result in GNULIB_WARN_CFLAGS.
885   nw=
886   nw="$nw -Wunused-macros"
888   gl_MANYWARN_COMPLEMENT([GNULIB_WARN_CFLAGS], [$WARN_CFLAGS], [$nw])
889   AC_SUBST([GNULIB_WARN_CFLAGS])
894 dnl Some other nice autoconf tests.
895 dnl These are commented out, since gl_EARLY and/or Autoconf already does them.
896 dnl AC_PROG_INSTALL
897 dnl AC_PROG_MKDIR_P
898 dnl if test "x$RANLIB" = x; then
899 dnl   AC_PROG_RANLIB
900 dnl fi
903 dnl Sadly, AC_PROG_LN_S is too restrictive.  It also tests whether links
904 dnl can be made to directories.  This is not relevant for our usage, and
905 dnl excludes some cases that work fine for us.  Eg MS Windows or files
906 dnl hosted on AFS, both examples where simple links work, but links to
907 dnl directories fail.  We use a cut-down version instead.
908 dnl AC_PROG_LN_S
910 AC_MSG_CHECKING([whether ln -s works for files in the same directory])
911 rm -f conf$$ conf$$.file
913 LN_S_FILEONLY='cp -p'
915 if (echo >conf$$.file) 2>/dev/null; then
916   if ln -s conf$$.file conf$$ 2>/dev/null; then
917     LN_S_FILEONLY='ln -s'
918   elif ln conf$$.file conf$$ 2>/dev/null; then
919     LN_S_FILEONLY=ln
920   fi
923 rm -f conf$$ conf$$.file
925 if test "$LN_S_FILEONLY" = "ln -s"; then
926    AC_MSG_RESULT([yes])
927 else
928    AC_MSG_RESULT([no, using $LN_S_FILEONLY])
931 AC_SUBST(LN_S_FILEONLY)
934 dnl AC_PROG_LN_S sets LN_S to 'cp -pR' for MinGW, on the premise that 'ln'
935 dnl doesn't support links to directories, as in "ln file dir".  But that
936 dnl use is non-portable, and OTOH MinGW wants to use hard links for Emacs
937 dnl executables at "make install" time.
938 dnl See http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00475.html
939 dnl for more details.
940 if test "$opsys" = "mingw32"; then
941   LN_S="ln"
944 AC_PATH_PROG(INSTALL_INFO, install-info, :,
945   $PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin)
946 dnl Don't use GZIP, which is used by gzip for additional parameters.
947 AC_PATH_PROG(GZIP_PROG, gzip)
949 test $with_compress_install != yes && test -n "$GZIP_PROG" && \
950    GZIP_PROG=" # $GZIP_PROG # (disabled by configure --without-compress-install)"
952 if test $opsys = gnu-linux; then
953   AC_PATH_PROG(PAXCTL, paxctl,,
954     [$PATH$PATH_SEPARATOR/sbin$PATH_SEPARATOR/usr/sbin])
955   if test "X$PAXCTL" != X; then
956     AC_MSG_CHECKING([whether binaries have a PT_PAX_FLAGS header])
957     AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
958       [if $PAXCTL -v conftest$EXEEXT >/dev/null 2>&1; then AC_MSG_RESULT(yes)
959       else AC_MSG_RESULT(no); PAXCTL=""; fi])
960   fi
963 ## Need makeinfo >= 4.7 (?) to build the manuals.
964 AC_PATH_PROG(MAKEINFO, makeinfo, no)
965 dnl By this stage, configure has already checked for egrep and set EGREP,
966 dnl or exited with an error if no egrep was found.
967 if test "$MAKEINFO" != "no"; then
968   case `
969     $MAKEINFO --version 2> /dev/null |
970     $EGREP 'texinfo[[^0-9]]*([[1-4]][[0-9]]+|[[5-9]]|4\.[[7-9]]|4\.[[1-6]][[0-9]]+)'
971   ` in
972     '') MAKEINFO=no;;
973   esac
976 ## Makeinfo is unusual.  For a released Emacs, the manuals are
977 ## pre-built, and not deleted by the normal clean rules.  makeinfo is
978 ## therefore in the category of "special tools" not normally required, which
979 ## configure does not have to check for (eg autoconf itself).
980 ## In a Bazaar checkout on the other hand, the manuals are not included.
981 ## So makeinfo is a requirement to build from Bazaar, and configure
982 ## should test for it as it does for any other build requirement.
983 ## We use the presence of $srcdir/info/emacs to distinguish a release,
984 ## with pre-built manuals, from a Bazaar checkout.
985 HAVE_MAKEINFO=yes
987 if test "$MAKEINFO" = "no"; then
988   MAKEINFO=makeinfo
989   if test "x${with_makeinfo}" = "xno"; then
990     HAVE_MAKEINFO=no
991   elif test ! -e "$srcdir/info/emacs" && test ! -e "$srcdir/info/emacs.info"; then
992     AC_MSG_ERROR( [You do not seem to have makeinfo >= 4.7, and your
993 source tree does not seem to have pre-built manuals in the `info' directory.
994 Either install a suitable version of makeinfo, or re-run configure
995 with the `--without-makeinfo' option to build without the manuals.] )
996   fi
998 AC_SUBST(HAVE_MAKEINFO)
1000 dnl Just so that there is only a single place we need to edit.
1001 INFO_EXT=.info
1002 INFO_OPTS=--no-split
1003 AC_SUBST(INFO_EXT)
1004 AC_SUBST(INFO_OPTS)
1006 if test $opsys = mingw32; then
1007    DOCMISC_W32=efaq-w32
1008 else
1009    DOCMISC_W32=
1011 AC_SUBST(DOCMISC_W32)
1013 dnl Add our options to ac_link now, after it is set up.
1015 if test x$GCC = xyes; then
1016   test "x$GCC_LINK_TEST_OPTIONS" != x && \
1017     ac_link="$ac_link $GCC_LINK_TEST_OPTIONS"
1018 else
1019   test "x$NON_GCC_LINK_TEST_OPTIONS" != x && \
1020     ac_link="$ac_link $NON_GCC_LINK_TEST_OPTIONS"
1023 dnl We need -znocombreloc if we're using a relatively recent GNU ld.
1024 dnl If we can link with the flag, it shouldn't do any harm anyhow.
1025 dnl (Don't use `-z nocombreloc' as -z takes no arg on Irix.)
1026 dnl Treat GCC specially since it just gives a non-fatal `unrecognized option'
1027 dnl if not built to support GNU ld.
1029 dnl For a long time, this was added to LDFLAGS rather than
1030 dnl LD_SWITCH_SYSTEM_TEMACS.  That is: i) inappropriate, since
1031 dnl LDFLAGS is supposed to be a user option, and this flag is
1032 dnl essential.  It can leads to problems if the user overrides
1033 dnl LDFLAGS at _build_ time (make LDFLAGS=... all), eg
1034 dnl http://bugs.debian.org/684788.
1035 dnl ii) unnecessary, since temacs is the only thing
1036 dnl that actually needs this option - this is where it was orginally:
1037 dnl http://lists.gnu.org/archive/html/emacs-pretest-bug/2004-03/msg00170.html
1038 late_LDFLAGS="$LDFLAGS"
1039 if test x$GCC = xyes; then
1040   LDFLAGS_NOCOMBRELOC="-Wl,-znocombreloc"
1041 else
1042   LDFLAGS_NOCOMBRELOC="-znocombreloc"
1045 LDFLAGS="$LDFLAGS $LDFLAGS_NOCOMBRELOC"
1047 AC_MSG_CHECKING([for -znocombreloc])
1048 AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
1049   [AC_MSG_RESULT(yes)],
1050   LDFLAGS_NOCOMBRELOC=
1051   [AC_MSG_RESULT(no)])
1053 LDFLAGS="$late_LDFLAGS"
1055 dnl The function dump-emacs will not be defined and temacs will do
1056 dnl (load "loadup") automatically unless told otherwise.
1057 test "x$CANNOT_DUMP" = "x" && CANNOT_DUMP=no
1058 case "$opsys" in
1059   your-opsys-here) CANNOT_DUMP=yes ;;
1060 esac
1062 test "$CANNOT_DUMP" = "yes" && \
1063   AC_DEFINE(CANNOT_DUMP, 1, [Define if Emacs cannot be dumped on your system.])
1065 AC_SUBST(CANNOT_DUMP)
1068 UNEXEC_OBJ=unexelf.o
1069 case "$opsys" in
1070   # MSDOS uses unexcoff.o
1071   aix4-2)
1072    UNEXEC_OBJ=unexaix.o
1073    ;;
1074   cygwin)
1075    UNEXEC_OBJ=unexcw.o
1076    ;;
1077   darwin)
1078    UNEXEC_OBJ=unexmacosx.o
1079    ;;
1080   hpux10-20 | hpux11)
1081    UNEXEC_OBJ=unexhp9k800.o
1082    ;;
1083   mingw32)
1084    UNEXEC_OBJ=unexw32.o
1085    ;;
1086   sol2-10)
1087    # Use the Solaris dldump() function, called from unexsol.c, to dump
1088    # emacs, instead of the generic ELF dump code found in unexelf.c.
1089    # The resulting binary has a complete symbol table, and is better
1090    # for debugging and other observability tools (debuggers, pstack, etc).
1091    #
1092    # If you encounter a problem using dldump(), please consider sending
1093    # a message to the OpenSolaris tools-linking mailing list:
1094    #      http://mail.opensolaris.org/mailman/listinfo/tools-linking
1095    #
1096    # It is likely that dldump() works with older Solaris too, but this has
1097    # not been tested, so for now this change is for Solaris 10 or newer.
1098    UNEXEC_OBJ=unexsol.o
1099    ;;
1100 esac
1102 LD_SWITCH_SYSTEM=
1103 case "$opsys" in
1104   freebsd|dragonfly)
1105    ## Let `ld' find image libs and similar things in /usr/local/lib.
1106    ## The system compiler, GCC, has apparently been modified to not
1107    ## look there, contrary to what a stock GCC would do.
1108 ### It's not our place to do this.  See bug#10313#17.
1109 ###   LD_SWITCH_SYSTEM=-L/usr/local/lib
1110       :
1111    ;;
1113   gnu-linux)
1114    ## cpp test was "ifdef __mips__", but presumably this is equivalent...
1115    case $host_cpu in mips*) LD_SWITCH_SYSTEM="-G 0";; esac
1116    ;;
1118   netbsd)
1119 ### It's not our place to do this.  See bug#10313#17.
1120 ###   LD_SWITCH_SYSTEM="-Wl,-rpath,/usr/pkg/lib -L/usr/pkg/lib -Wl,-rpath,/usr/local/lib -L/usr/local/lib"
1121       :
1122    ;;
1124   openbsd)
1125    ## Han Boetes <han@boetes.org> says this is necessary,
1126    ## otherwise Emacs dumps core on elf systems.
1127    LD_SWITCH_SYSTEM="-Z"
1128    ;;
1129 esac
1130 AC_SUBST(LD_SWITCH_SYSTEM)
1132 ac_link="$ac_link $LD_SWITCH_SYSTEM"
1134 ## This setting of LD_SWITCH_SYSTEM references LD_SWITCH_X_SITE_RPATH,
1135 ## which has not been defined yet.  When this was handled with cpp,
1136 ## it was expanded to null when configure sourced the s/*.h file.
1137 ## Thus LD_SWITCH_SYSTEM had different values in configure and the Makefiles.
1138 ## FIXME it would be cleaner to put this in LD_SWITCH_SYSTEM_TEMACS
1139 ## (or somesuch), but because it is supposed to go at the _front_
1140 ## of LD_SWITCH_SYSTEM, we cannot do that in exactly the same way.
1141 ## Compare with the gnu-linux case below, which added to the end
1142 ## of LD_SWITCH_SYSTEM, and so can instead go at the front of
1143 ## LD_SWITCH_SYSTEM_TEMACS.
1144 case "$opsys" in
1145   netbsd|openbsd)
1146    LD_SWITCH_SYSTEM="\$(LD_SWITCH_X_SITE_RPATH) $LD_SWITCH_SYSTEM" ;;
1147 esac
1150 C_SWITCH_MACHINE=
1151 case $canonical in
1152  alpha*)
1153   AC_CHECK_DECL([__ELF__])
1154   if test "$ac_cv_have_decl___ELF__" = "yes"; then
1155     ## With ELF, make sure that all common symbols get allocated to in the
1156     ## data section.  Otherwise, the dump of temacs may miss variables in
1157     ## the shared library that have been initialized.  For example, with
1158     ## GNU libc, __malloc_initialized would normally be resolved to the
1159     ## shared library's .bss section, which is fatal.
1160     if test "x$GCC" = "xyes"; then
1161       C_SWITCH_MACHINE="-fno-common"
1162     else
1163       AC_MSG_ERROR([What gives?  Fix me if DEC Unix supports ELF now.])
1164     fi
1165   else
1166     UNEXEC_OBJ=unexalpha.o
1167   fi
1168   ;;
1169 esac
1170 AC_SUBST(C_SWITCH_MACHINE)
1172 AC_SUBST(UNEXEC_OBJ)
1174 C_SWITCH_SYSTEM=
1175 ## Some programs in src produce warnings saying certain subprograms
1176 ## are too complex and need a MAXMEM value greater than 2000 for
1177 ## additional optimization.  --nils@exp-math.uni-essen.de
1178 test "$opsys" = "aix4.2" && test "x$GCC" != "xyes" && \
1179   C_SWITCH_SYSTEM="-ma -qmaxmem=4000"
1180 test "$opsys" = "mingw32" && C_SWITCH_SYSTEM="-mtune=pentium4"
1181 ## gnu-linux might need -D_BSD_SOURCE on old libc5 systems.
1182 ## It is redundant in glibc2, since we define _GNU_SOURCE.
1183 AC_SUBST(C_SWITCH_SYSTEM)
1186 LIBS_SYSTEM=
1187 case "$opsys" in
1188   ## IBM's X11R5 uses -lIM and -liconv in AIX 3.2.2.
1189   aix4-2) LIBS_SYSTEM="-lrts -lIM -liconv" ;;
1191   freebsd|dragonfly) LIBS_SYSTEM="-lutil" ;;
1193   hpux*) LIBS_SYSTEM="-l:libdld.sl" ;;
1195   sol2*) LIBS_SYSTEM="-lsocket -lnsl" ;;
1197   ## Motif needs -lgen.
1198   unixware) LIBS_SYSTEM="-lsocket -lnsl -lelf -lgen" ;;
1199 esac
1201 AC_SUBST(LIBS_SYSTEM)
1203 ### Make sure subsequent tests use flags consistent with the build flags.
1205 if test x"${OVERRIDE_CPPFLAGS}" != x; then
1206   CPPFLAGS="${OVERRIDE_CPPFLAGS}"
1207 else
1208   CPPFLAGS="$C_SWITCH_SYSTEM $C_SWITCH_MACHINE $CPPFLAGS"
1211 # Suppress obsolescent Autoconf test for size_t; Emacs assumes C89 or better.
1212 AC_DEFUN([AC_TYPE_SIZE_T])
1213 # Likewise for obsolescent test for uid_t, gid_t; Emacs assumes them.
1214 AC_DEFUN([AC_TYPE_UID_T])
1217 LIB_MATH=-lm
1218 dnl Current possibilities handled by sed (aix4-2 -> aix,
1219 dnl gnu-linux -> gnu/linux, etc.):
1220 dnl gnu, gnu/linux, gnu/kfreebsd, aix, cygwin, darwin, hpux, irix.
1221 dnl And special cases: berkeley-unix, usg-unix-v, ms-dos, windows-nt.
1222 SYSTEM_TYPE=`echo $opsys | sed -e 's/[[0-9]].*//' -e 's|-|/|'`
1224 case $opsys in
1225   cygwin )
1226     LIB_MATH=
1227     ;;
1228   darwin )
1229     ## Adding -lm confuses the dynamic linker, so omit it.
1230     LIB_MATH=
1231     ;;
1232   freebsd | dragonfly )
1233     SYSTEM_TYPE=berkeley-unix
1234     ;;
1235   gnu-linux | gnu-kfreebsd )
1236     ;;
1237   hpux10-20 | hpux11 )
1238     ;;
1239   mingw32 )
1240     LIB_MATH=
1241     SYSTEM_TYPE=windows-nt
1242     ;;
1243   dnl NB this may be adjusted below.
1244   netbsd | openbsd )
1245     SYSTEM_TYPE=berkeley-unix
1246     ;;
1248   sol2* | unixware )
1249     SYSTEM_TYPE=usg-unix-v
1250     ;;
1252 esac
1254 AC_SUBST(LIB_MATH)
1255 AC_DEFINE_UNQUOTED(SYSTEM_TYPE, "$SYSTEM_TYPE",
1256   [The type of system you are compiling for; sets `system-type'.])
1259 pre_PKG_CONFIG_CFLAGS=$CFLAGS
1260 pre_PKG_CONFIG_LIBS=$LIBS
1262 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1264 dnl This function definition taken from Gnome 2.0
1265 dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
1266 dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
1267 dnl also defines GSTUFF_PKG_ERRORS on error
1268 AC_DEFUN([PKG_CHECK_MODULES], [
1269   succeeded=no
1271   if test "$PKG_CONFIG" = "no" ; then
1272      ifelse([$4], , [AC_MSG_ERROR([
1273       *** The pkg-config script could not be found. Make sure it is in your path, or give the full name of 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])
1274   else
1275      PKG_CONFIG_MIN_VERSION=0.9.0
1276      if "$PKG_CONFIG" --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
1277         AC_MSG_CHECKING(for $2)
1279         if "$PKG_CONFIG" --exists "$2" 2>&AS_MESSAGE_LOG_FD &&
1280            $1_CFLAGS=`"$PKG_CONFIG" --cflags "$2" 2>&AS_MESSAGE_LOG_FD` &&
1281            $1_LIBS=`"$PKG_CONFIG" --libs "$2" 2>&AS_MESSAGE_LOG_FD`; then
1282             edit_cflags="
1283               s,///*,/,g
1284               s/^/ /
1285               s/ -I/ $isystem/g
1286               s/^ //
1287             "
1288             $1_CFLAGS=`AS_ECHO(["$$1_CFLAGS"]) | sed -e "$edit_cflags"`
1289             $1_LIBS=`AS_ECHO(["$$1_LIBS"]) | sed -e 's,///*,/,g'`
1290             AC_MSG_RESULT([yes CFLAGS='$$1_CFLAGS' LIBS='$$1_LIBS'])
1291             succeeded=yes
1292         else
1293             AC_MSG_RESULT(no)
1294             $1_CFLAGS=""
1295             $1_LIBS=""
1296             ## If we have a custom action on failure, don't print errors, but
1297             ## do set a variable so people can do so.  Do it in a subshell
1298             ## to capture any diagnostics in invoking pkg-config.
1299             $1_PKG_ERRORS=`("$PKG_CONFIG" --print-errors "$2") 2>&1`
1300             ifelse([$4], ,echo "$$1_PKG_ERRORS",)
1301         fi
1303         AC_SUBST($1_CFLAGS)
1304         AC_SUBST($1_LIBS)
1305      else
1306         echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
1307         echo "*** See http://www.freedesktop.org/software/pkgconfig"
1308      fi
1309   fi
1311   if test $succeeded = yes; then
1312      ifelse([$3], , :, [$3])
1313   else
1314      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])
1315   fi
1318 HAVE_SOUND=no
1319 if test "${with_sound}" != "no"; then
1320   # Sound support for GNU/Linux, the free BSDs, and MinGW.
1321   AC_CHECK_HEADERS([machine/soundcard.h sys/soundcard.h soundcard.h],
1322     have_sound_header=yes, [], [
1323     #ifdef __MINGW32__
1324     #define WIN32_LEAN_AND_MEAN
1325     #include <windows.h>
1326     #endif
1327     ])
1328   test "${with_sound}" = "oss" && test "${have_sound_header}" != "yes" && \
1329     AC_MSG_ERROR([OSS sound support requested but not found.])
1331   if test "${with_sound}" = "bsd-ossaudio" || test "${with_sound}" = "yes"; then
1332     # Emulation library used on NetBSD.
1333     AC_CHECK_LIB(ossaudio, _oss_ioctl, LIBSOUND=-lossaudio, LIBSOUND=)
1334     test "${with_sound}" = "bsd-ossaudio" && test -z "$LIBSOUND" && \
1335       AC_MSG_ERROR([bsd-ossaudio sound support requested but not found.])
1336     dnl FIXME?  If we did find ossaudio, should we set with_sound=bsd-ossaudio?
1337     dnl Traditionally, we go on to check for alsa too.  Does that make sense?
1338   fi
1339   AC_SUBST(LIBSOUND)
1341   if test "${with_sound}" = "alsa" || test "${with_sound}" = "yes"; then
1342     ALSA_REQUIRED=1.0.0
1343     ALSA_MODULES="alsa >= $ALSA_REQUIRED"
1344     PKG_CHECK_MODULES(ALSA, $ALSA_MODULES, HAVE_ALSA=yes, HAVE_ALSA=no)
1345     if test $HAVE_ALSA = yes; then
1346       SAVE_CFLAGS="$CFLAGS"
1347       SAVE_LIBS="$LIBS"
1348       CFLAGS="$ALSA_CFLAGS $CFLAGS"
1349       LIBS="$ALSA_LIBS $LIBS"
1350       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <asoundlib.h>]], [[snd_lib_error_set_handler (0);]])],
1351                       emacs_alsa_normal=yes,
1352                     emacs_alsa_normal=no)
1353       if test "$emacs_alsa_normal" != yes; then
1354         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <alsa/asoundlib.h>]],
1355                        [[snd_lib_error_set_handler (0);]])],
1356                        emacs_alsa_subdir=yes,
1357                      emacs_alsa_subdir=no)
1358         if test "$emacs_alsa_subdir" != yes; then
1359           AC_MSG_ERROR([pkg-config found alsa, but it does not compile.  See config.log for error messages.])
1360         fi
1361         ALSA_CFLAGS="$ALSA_CFLAGS -DALSA_SUBDIR_INCLUDE"
1362       fi
1364       CFLAGS="$SAVE_CFLAGS"
1365       LIBS="$SAVE_LIBS"
1366       LIBSOUND="$LIBSOUND $ALSA_LIBS"
1367       CFLAGS_SOUND="$CFLAGS_SOUND $ALSA_CFLAGS"
1368       AC_DEFINE(HAVE_ALSA, 1, [Define to 1 if ALSA is available.])
1369     elif test "${with_sound}" = "alsa"; then
1370       AC_MSG_ERROR([ALSA sound support requested but not found.])
1371     fi
1372   fi                            dnl with_sound = alsa|yes
1374   dnl Define HAVE_SOUND if we have sound support.  We know it works and
1375   dnl compiles only on the specified platforms.  For others, it
1376   dnl probably doesn't make sense to try.
1377   dnl FIXME So surely we should bypass this whole section if not using
1378   dnl one of these platforms?
1379   if test x$have_sound_header = xyes || test $HAVE_ALSA = yes; then
1380      case "$opsys" in
1381        dnl defined __FreeBSD__ || defined __NetBSD__ || defined __linux__
1382        dnl Adjust the --with-sound help text if you change this.
1383        gnu-linux|freebsd|netbsd|mingw32)
1384          AC_DEFINE(HAVE_SOUND, 1, [Define to 1 if you have sound support.])
1385          HAVE_SOUND=yes
1386          ;;
1387      esac
1388   fi
1390   AC_SUBST(CFLAGS_SOUND)
1393 dnl checks for header files
1394 AC_CHECK_HEADERS_ONCE(
1395   sys/systeminfo.h
1396   coff.h pty.h
1397   sys/resource.h
1398   sys/utsname.h pwd.h utmp.h util.h)
1400 AC_MSG_CHECKING(if personality LINUX32 can be set)
1401 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/personality.h>]], [[personality (PER_LINUX32)]])],
1402                emacs_cv_personality_linux32=yes,
1403                emacs_cv_personality_linux32=no)
1404 AC_MSG_RESULT($emacs_cv_personality_linux32)
1406 if test $emacs_cv_personality_linux32 = yes; then
1407   AC_DEFINE(HAVE_PERSONALITY_LINUX32, 1,
1408             [Define to 1 if personality LINUX32 can be set.])
1411 dnl On Solaris 8 there's a compilation warning for term.h because
1412 dnl it doesn't define `bool'.
1413 AC_CHECK_HEADERS(term.h, , , -)
1414 AC_HEADER_TIME
1415 AC_CHECK_DECLS([sys_siglist], [], [], [[#include <signal.h>
1416                                       ]])
1417 if test $ac_cv_have_decl_sys_siglist != yes; then
1418   # For Tru64, at least:
1419   AC_CHECK_DECLS([__sys_siglist], [], [], [[#include <signal.h>
1420                                           ]])
1422 AC_HEADER_SYS_WAIT
1424 AC_CHECK_HEADERS_ONCE(sys/socket.h)
1425 AC_CHECK_HEADERS(net/if.h, , , [AC_INCLUDES_DEFAULT
1426 #if HAVE_SYS_SOCKET_H
1427 #include <sys/socket.h>
1428 #endif])
1429 AC_CHECK_HEADERS(ifaddrs.h, , , [AC_INCLUDES_DEFAULT
1430 #if HAVE_SYS_SOCKET_H
1431 #include <sys/socket.h>
1432 #endif])
1433 AC_CHECK_HEADERS(net/if_dl.h, , , [AC_INCLUDES_DEFAULT
1434 #if HAVE_SYS_SOCKET_H
1435 #include <sys/socket.h>
1436 #endif])
1438 dnl checks for structure members
1439 AC_CHECK_MEMBERS([struct ifreq.ifr_flags, struct ifreq.ifr_hwaddr,
1440                   struct ifreq.ifr_netmask, struct ifreq.ifr_broadaddr,
1441                   struct ifreq.ifr_addr,
1442                   struct ifreq.ifr_addr.sa_len], , ,
1443                  [AC_INCLUDES_DEFAULT
1444 #if HAVE_SYS_SOCKET_H
1445 #include <sys/socket.h>
1446 #endif
1447 #if HAVE_NET_IF_H
1448 #include <net/if.h>
1449 #endif])
1451 dnl Check for endianness.
1452 dnl AC_C_BIGENDIAN is done by gnulib.
1454 dnl check for Make feature
1455 dnl AC_PROG_MAKE_SET is done by Automake.
1457 DEPFLAGS=
1458 MKDEPDIR=":"
1459 deps_frag=deps.mk
1460 dnl check for GNU Make if we have GCC and autodepend is on.
1461 if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then
1462    AC_MSG_CHECKING([whether we are using GNU Make])
1463    HAVE_GNU_MAKE=no
1464    testval=`${MAKE-make} --version 2>/dev/null | grep 'GNU Make'`
1465    if test "x$testval" != x; then
1466       HAVE_GNU_MAKE=yes
1467    else
1468       ac_enable_autodepend=no
1469    fi
1470    AC_MSG_RESULT([$HAVE_GNU_MAKE])
1471    if test $HAVE_GNU_MAKE = yes; then
1472       AC_MSG_CHECKING([whether gcc understands -MMD -MF])
1473       SAVE_CFLAGS="$CFLAGS"
1474       CFLAGS="$CFLAGS -MMD -MF deps.d -MP"
1475       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], , ac_enable_autodepend=no)
1476       CFLAGS="$SAVE_CFLAGS"
1477       test -f deps.d || ac_enable_autodepend=no
1478       rm -rf deps.d
1479       AC_MSG_RESULT([$ac_enable_autodepend])
1480    fi
1481    if test $ac_enable_autodepend = yes; then
1482       DEPFLAGS='-MMD -MF ${DEPDIR}/$*.d -MP'
1483       ## MKDIR_P is documented (see AC_PROG_MKDIR_P) to be parallel-safe.
1484       MKDEPDIR='${MKDIR_P} ${DEPDIR}'
1485       deps_frag=autodeps.mk
1486    fi
1488 deps_frag=$srcdir/src/$deps_frag
1489 AC_SUBST(MKDEPDIR)
1490 AC_SUBST(DEPFLAGS)
1491 AC_SUBST_FILE(deps_frag)
1494 lisp_frag=$srcdir/src/lisp.mk
1495 AC_SUBST_FILE(lisp_frag)
1498 dnl checks for operating system services
1499 AC_SYS_LONG_FILE_NAMES
1501 #### Choose a window system.
1503 ## We leave window_system equal to none if
1504 ## we end up building without one.  Any new window system should
1505 ## set window_system to an appropriate value and add objects to
1506 ## window-system-specific substs.
1508 window_system=none
1509 AC_PATH_X
1510 if test "$no_x" != yes; then
1511   window_system=x11
1514 LD_SWITCH_X_SITE_RPATH=
1515 if test "${x_libraries}" != NONE; then
1516   if test -n "${x_libraries}"; then
1517     LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
1518     LD_SWITCH_X_SITE_RPATH=-Wl,-rpath,`echo ${x_libraries} | sed -e "s/:/ -Wl,-rpath,/g"`
1519   fi
1520   x_default_search_path=""
1521   x_search_path=${x_libraries}
1522   if test -z "${x_search_path}"; then
1523     x_search_path=/usr/lib
1524   fi
1525   for x_library in `echo ${x_search_path}: | \
1526                     sed -e "s/:/ /g" -e p -e "s:/lib[[^ /]]* :/share :g"`; do
1527     x_search_path="\
1528 ${x_library}/X11/%L/%T/%N%C%S:\
1529 ${x_library}/X11/%l/%T/%N%C%S:\
1530 ${x_library}/X11/%T/%N%C%S:\
1531 ${x_library}/X11/%L/%T/%N%S:\
1532 ${x_library}/X11/%l/%T/%N%S:\
1533 ${x_library}/X11/%T/%N%S"
1534     if test x"${x_default_search_path}" = x; then
1535       x_default_search_path=${x_search_path}
1536     else
1537       x_default_search_path="${x_search_path}:${x_default_search_path}"
1538     fi
1539   done
1541 AC_SUBST(LD_SWITCH_X_SITE_RPATH)
1543 if test "${x_includes}" != NONE && test -n "${x_includes}"; then
1544   C_SWITCH_X_SITE="$isystem"`echo ${x_includes} | sed -e "s/:/ $isystem/g"`
1547 if test x"${x_includes}" = x; then
1548   bitmapdir=/usr/include/X11/bitmaps
1549 else
1550   # accumulate include directories that have X11 bitmap subdirectories
1551   bmd_acc="dummyval"
1552   for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do
1553     if test -d "${bmd}/X11/bitmaps"; then
1554       bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps"
1555     fi
1556     if test -d "${bmd}/bitmaps"; then
1557       bmd_acc="${bmd_acc}:${bmd}/bitmaps"
1558     fi
1559   done
1560   if test ${bmd_acc} != "dummyval"; then
1561     bitmapdir=`echo ${bmd_acc} | sed -e "s/^dummyval://"`
1562   fi
1565 HAVE_NS=no
1566 NS_IMPL_COCOA=no
1567 NS_IMPL_GNUSTEP=no
1568 tmp_CPPFLAGS="$CPPFLAGS"
1569 tmp_CFLAGS="$CFLAGS"
1570 CPPFLAGS="$CPPFLAGS -x objective-c"
1571 CFLAGS="$CFLAGS -x objective-c"
1572 GNU_OBJC_CFLAGS=
1573 LIBS_GNUSTEP=
1574 if test "${with_ns}" != no; then
1575   if test "${opsys}" = darwin; then
1576      NS_IMPL_COCOA=yes
1577      ns_appdir=`pwd`/nextstep/Emacs.app
1578      ns_appbindir=${ns_appdir}/Contents/MacOS
1579      ns_appresdir=${ns_appdir}/Contents/Resources
1580      ns_appsrc=Cocoa/Emacs.base
1581   elif test -f $GNUSTEP_CONFIG_FILE; then
1582      NS_IMPL_GNUSTEP=yes
1583      ns_appdir=`pwd`/nextstep/Emacs.app
1584      ns_appbindir=${ns_appdir}
1585      ns_appresdir=${ns_appdir}/Resources
1586      ns_appsrc=GNUstep/Emacs.base
1587      dnl FIXME sourcing this several times in subshells seems inefficient.
1588      GNUSTEP_SYSTEM_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_HEADERS)"
1589      GNUSTEP_SYSTEM_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_LIBRARIES)"
1590      dnl I seemed to need these as well with GNUstep-startup 0.25.
1591      GNUSTEP_LOCAL_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_LOCAL_HEADERS)"
1592      GNUSTEP_LOCAL_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_LOCAL_LIBRARIES)"
1593      test "x${GNUSTEP_LOCAL_HEADERS}" != "x" && \
1594        GNUSTEP_LOCAL_HEADERS="-I${GNUSTEP_LOCAL_HEADERS}"
1595      test "x${GNUSTEP_LOCAL_LIBRARIES}" != "x" && \
1596        GNUSTEP_LOCAL_LIBRARIES="-L${GNUSTEP_LOCAL_LIBRARIES}"
1597      CPPFLAGS="$CPPFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
1598      CFLAGS="$CFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
1599      LDFLAGS="$LDFLAGS -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES}"
1600      LIBS_GNUSTEP="-lgnustep-gui -lgnustep-base -lobjc -lpthread"
1601      dnl GNUstep defines BASE_NATIVE_OBJC_EXCEPTIONS to 0 or 1.
1602      dnl If they had chosen to either define it or not, we could have
1603      dnl just used AC_CHECK_DECL here.
1604      AC_CACHE_CHECK(if GNUstep defines BASE_NATIVE_OBJC_EXCEPTIONS,
1605        emacs_cv_objc_exceptions,
1606 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <GNUstepBase/GSConfig.h>]],
1607 [[#if defined BASE_NATIVE_OBJC_EXCEPTIONS && BASE_NATIVE_OBJC_EXCEPTIONS > 0
1609 #else
1610 fail;
1611 #endif]])], emacs_cv_objc_exceptions=yes, emacs_cv_objc_exceptions=no ) )
1612      if test $emacs_cv_objc_exceptions = yes; then
1613        dnl _NATIVE_OBJC_EXCEPTIONS is used by the GNUstep headers.
1614        AC_DEFINE(_NATIVE_OBJC_EXCEPTIONS, 1,
1615          [Define if GNUstep uses ObjC exceptions.])
1616        GNU_OBJC_CFLAGS="-fobjc-exceptions"
1617      fi
1618   fi
1620   dnl This is only used while we test the NS headers, it gets reset below.
1621   CFLAGS="$CFLAGS $GNU_OBJC_CFLAGS"
1623   AC_CHECK_HEADER([AppKit/AppKit.h], [HAVE_NS=yes],
1624                   [AC_MSG_ERROR([`--with-ns' was specified, but the include
1625   files are missing or cannot be compiled.])])
1627   AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AppKit/AppKit.h>],
1628                                      [
1629 #ifdef MAC_OS_X_VERSION_MAX_ALLOWED
1630 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1040
1631  ; /* OK */
1632 #else
1633 #error "OSX 10.4 or newer required"
1634 #endif
1635 #endif
1636                     ])],
1637                     ns_osx_have_104=yes,
1638                     ns_osx_have_104=no)
1639   AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <Foundation/NSObjCRuntime.h>],
1640                                      [NSInteger i;])],
1641                     ns_have_nsinteger=yes,
1642                     ns_have_nsinteger=no)
1643   if test $ns_osx_have_104 = no; then
1644      AC_MSG_ERROR([`OSX 10.4 or newer is required']);
1645   fi
1646   if test $ns_have_nsinteger = yes; then
1647     AC_DEFINE(NS_HAVE_NSINTEGER, 1, [Define to 1 if `NSInteger' is defined.])
1648   fi
1651 AC_SUBST(LIBS_GNUSTEP)
1653 INSTALL_ARCH_INDEP_EXTRA=install-etc
1654 ns_self_contained=no
1655 NS_OBJ=
1656 NS_OBJC_OBJ=
1657 if test "${HAVE_NS}" = yes; then
1658   if test "$with_toolkit_scroll_bars" = "no"; then
1659     AC_MSG_ERROR([Non-toolkit scroll bars are not implemented for Nextstep.])
1660   fi
1662   window_system=nextstep
1663   # set up packaging dirs
1664   if test "${EN_NS_SELF_CONTAINED}" = yes; then
1665      ns_self_contained=yes
1666      prefix=${ns_appresdir}
1667      exec_prefix=${ns_appbindir}
1668      dnl This one isn't really used, only archlibdir is.
1669      libexecdir="\${ns_appbindir}/libexec"
1670      archlibdir="\${ns_appbindir}/libexec"
1671      etcdocdir="\${ns_appresdir}/etc"
1672      etcdir="\${ns_appresdir}/etc"
1673      dnl FIXME maybe set datarootdir instead.
1674      dnl That would also get applications, icons, man.
1675      infodir="\${ns_appresdir}/info"
1676      mandir="\${ns_appresdir}/man"
1677      lispdir="\${ns_appresdir}/lisp"
1678      leimdir="\${ns_appresdir}/leim"
1679      INSTALL_ARCH_INDEP_EXTRA=
1680   fi
1681   NS_OBJC_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o"
1683 CFLAGS="$tmp_CFLAGS"
1684 CPPFLAGS="$tmp_CPPFLAGS"
1685 AC_SUBST(INSTALL_ARCH_INDEP_EXTRA)
1686 AC_SUBST(ns_self_contained)
1687 AC_SUBST(NS_OBJ)
1688 AC_SUBST(NS_OBJC_OBJ)
1690 HAVE_W32=no
1691 W32_OBJ=
1692 W32_LIBS=
1693 EMACSRES=
1694 CLIENTRES=
1695 CLIENTW=
1696 W32_RES_LINK=
1697 EMACS_MANIFEST=
1698 UPDATE_MANIFEST=
1699 if test "${with_w32}" != no; then
1700   case "${opsys}" in
1701     cygwin)
1702       AC_CHECK_HEADER([windows.h], [HAVE_W32=yes],
1703              [AC_MSG_ERROR([`--with-w32' was specified, but windows.h
1704                    cannot be found.])])
1705     ;;
1706     mingw32)
1707     ## Using --with-w32 with MinGW is a no-op, but we allow it.
1708     ;;
1709     *)
1710       AC_MSG_ERROR([Using w32 with an autotools build is only supported for Cygwin and MinGW32.])
1711     ;;
1712   esac
1715 if test "${opsys}" = "mingw32"; then
1716   AC_MSG_CHECKING([whether Windows API headers are recent enough])
1717   AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1718      #include <windows.h>
1719      #include <usp10.h>]],
1720    [[PIMAGE_NT_HEADERS pHeader;
1721      PIMAGE_SECTION_HEADER pSection = IMAGE_FIRST_SECTION(pHeader)]])],
1722    [emacs_cv_w32api=yes
1723     HAVE_W32=yes],
1724    emacs_cv_w32api=no)
1725   AC_MSG_RESULT($emacs_cv_w32api)
1726   if test "${emacs_cv_w32api}" = "no"; then
1727     AC_MSG_ERROR([the Windows API headers are too old to support this build.])
1728   fi
1731 FIRSTFILE_OBJ=
1732 NTDIR=
1733 LIBS_ECLIENT=
1734 LIB_WSOCK32=
1735 NTLIB=
1736 CM_OBJ="cm.o"
1737 XARGS_LIMIT=
1738 if test "${HAVE_W32}" = "yes"; then
1739   AC_DEFINE(HAVE_NTGUI, 1, [Define to use native MS Windows GUI.])
1740   AC_CHECK_TOOL(WINDRES, [windres],
1741                 [AC_MSG_ERROR([No resource compiler found.])])
1742   W32_OBJ="w32fns.o w32menu.o w32reg.o w32font.o w32term.o"
1743   W32_OBJ="$W32_OBJ w32xfns.o w32select.o w32uniscribe.o"
1744   EMACSRES="emacs.res"
1745   case "$canonical" in
1746     x86_64-*-*) EMACS_MANIFEST="emacs-x64.manifest" ;;
1747     *) EMACS_MANIFEST="emacs-x86.manifest" ;;
1748   esac
1749   UPDATE_MANIFEST=update-game-score.exe.manifest
1750   if test "${opsys}" = "cygwin"; then
1751     W32_LIBS="$W32_LIBS -lkernel32 -luser32 -lgdi32 -lole32 -lcomdlg32"
1752     W32_LIBS="$W32_LIBS -lusp10 -lcomctl32 -lwinspool"
1753     # Tell the linker that emacs.res is an object (which we compile from
1754     # the rc file), not a linker script.
1755     W32_RES_LINK="-Wl,emacs.res"
1756   else
1757     W32_OBJ="$W32_OBJ w32.o w32console.o w32heap.o w32inevt.o w32proc.o"
1758     W32_LIBS="$W32_LIBS -lwinmm -lgdi32 -lcomdlg32"
1759     W32_LIBS="$W32_LIBS -lmpr -lwinspool -lole32 -lcomctl32 -lusp10"
1760     W32_RES_LINK="\$(EMACSRES)"
1761     CLIENTRES="emacsclient.res"
1762     CLIENTW="emacsclientw\$(EXEEXT)"
1763     FIRSTFILE_OBJ=firstfile.o
1764     NTDIR=nt
1765     CM_OBJ=
1766     LIBS_ECLIENT="-lcomctl32"
1767     LIB_WSOCK32="-lwsock32"
1768     NTLIB="ntlib.$ac_objext"
1769     XARGS_LIMIT="-s 10000"
1770   fi
1772 AC_SUBST(W32_OBJ)
1773 AC_SUBST(W32_LIBS)
1774 AC_SUBST(EMACSRES)
1775 AC_SUBST(EMACS_MANIFEST)
1776 AC_SUBST(UPDATE_MANIFEST)
1777 AC_SUBST(CLIENTRES)
1778 AC_SUBST(CLIENTW)
1779 AC_SUBST(W32_RES_LINK)
1780 AC_SUBST(FIRSTFILE_OBJ)
1781 AC_SUBST(NTDIR)
1782 AC_SUBST(CM_OBJ)
1783 AC_SUBST(LIBS_ECLIENT)
1784 AC_SUBST(LIB_WSOCK32)
1785 AC_SUBST(NTLIB)
1786 AC_SUBST(XARGS_LIMIT)
1788 if test "${HAVE_W32}" = "yes"; then
1789   window_system=w32
1790   with_xft=no
1793 ## $window_system is now set to the window system we will
1794 ## ultimately use.
1796 if test "$window_system" = none && test "$gl_gcc_warnings" = yes; then
1797    # Too many warnings for now.
1798    nw=
1799    nw="$nw -Wsuggest-attribute=const"
1800    nw="$nw -Wsuggest-attribute=noreturn"
1801    gl_MANYWARN_COMPLEMENT([WARN_CFLAGS], [$WARN_CFLAGS], [$nw])
1803    gl_WARN_ADD([-Wno-unused-variable])
1804    gl_WARN_ADD([-Wno-unused-but-set-variable])
1805    gl_WARN_ADD([-Wno-unused-but-set-parameter])
1808 term_header=
1809 HAVE_X_WINDOWS=no
1810 HAVE_X11=no
1811 USE_X_TOOLKIT=none
1813 case "${window_system}" in
1814   x11 )
1815     HAVE_X_WINDOWS=yes
1816     HAVE_X11=yes
1817     term_header=xterm.h
1818     case "${with_x_toolkit}" in
1819       athena | lucid ) USE_X_TOOLKIT=LUCID ;;
1820       motif ) USE_X_TOOLKIT=MOTIF ;;
1821       gtk ) with_gtk=yes
1822             term_header=gtkutil.h
1823 dnl Don't set this for GTK.  A lot of tests below assumes Xt when
1824 dnl USE_X_TOOLKIT is set.
1825             USE_X_TOOLKIT=none ;;
1826       gtk2 ) with_gtk2=yes
1827              term_header=gtkutil.h
1828              USE_X_TOOLKIT=none ;;
1829       gtk3 ) with_gtk3=yes
1830              term_header=gtkutil.h
1831              USE_X_TOOLKIT=none ;;
1832       no ) USE_X_TOOLKIT=none ;;
1833 dnl If user did not say whether to use a toolkit, make this decision later:
1834 dnl use the toolkit if we have gtk, or X11R5 or newer.
1835       * ) USE_X_TOOLKIT=maybe ;;
1836     esac
1837   ;;
1838   nextstep )
1839     term_header=nsterm.h
1840   ;;
1841   w32 )
1842     term_header=w32term.h
1843   ;;
1844 esac
1846 if test "$window_system" = none && test "X$with_x" != "Xno"; then
1847    AC_CHECK_PROG(HAVE_XSERVER, X, true, false)
1848    if test "$HAVE_XSERVER" = true ||
1849       test -n "$DISPLAY" ||
1850       test "`echo /usr/lib/libX11.*`" != "/usr/lib/libX11.*"; then
1851         AC_MSG_ERROR([You seem to be running X, but no X development libraries
1852 were found.  You should install the relevant development files for X
1853 and for the toolkit you want, such as Gtk+, Lesstif or Motif.  Also make
1854 sure you have development files for image handling, i.e.
1855 tiff, gif, jpeg, png and xpm.
1856 If you are sure you want Emacs compiled without X window support, pass
1857   --without-x
1858 to configure.])
1859    fi
1862 ### If we're using X11, we should use the X menu package.
1863 HAVE_MENUS=no
1864 case ${HAVE_X11} in
1865   yes ) HAVE_MENUS=yes ;;
1866 esac
1868 # Does the opsystem file prohibit the use of the GNU malloc?
1869 # Assume not, until told otherwise.
1870 GNU_MALLOC=yes
1872 AC_CACHE_CHECK(
1873   [whether malloc is Doug Lea style],
1874   [emacs_cv_var_doug_lea_malloc],
1875   [AC_LINK_IFELSE(
1876      [AC_LANG_PROGRAM(
1877         [[#include <malloc.h>
1878           static void hook (void) {}]],
1879         [[malloc_set_state (malloc_get_state ());
1880           __after_morecore_hook = hook;
1881           __malloc_initialize_hook = hook;]])],
1882      [emacs_cv_var_doug_lea_malloc=yes],
1883      [emacs_cv_var_doug_lea_malloc=no])])
1884 doug_lea_malloc=$emacs_cv_var_doug_lea_malloc
1887 dnl See comments in aix4-2.h about maybe using system malloc there.
1888 system_malloc=no
1889 case "$opsys" in
1890   ## darwin ld insists on the use of malloc routines in the System framework.
1891   darwin|sol2-10) system_malloc=yes ;;
1892 esac
1894 if test "${system_malloc}" = "yes"; then
1895   AC_DEFINE(SYSTEM_MALLOC, 1, [Define to use system malloc.])
1896   GNU_MALLOC=no
1897   GNU_MALLOC_reason="
1898     (The GNU allocators don't work with this system configuration.)"
1899   GMALLOC_OBJ=
1900   VMLIMIT_OBJ=
1901 else
1902   test "$doug_lea_malloc" != "yes" && GMALLOC_OBJ=gmalloc.o
1903   VMLIMIT_OBJ=vm-limit.o
1905   AC_CHECK_HEADERS([sys/vlimit.h])
1906   AC_CACHE_CHECK([for data_start], [emacs_cv_data_start],
1907     [AC_LINK_IFELSE(
1908        [AC_LANG_PROGRAM(
1909          [[extern char data_start[]; char ch;]],
1910          [[return data_start < &ch;]])],
1911        [emacs_cv_data_start=yes],
1912        [emacs_cv_data_start=no])])
1913   if test $emacs_cv_data_start = yes; then
1914     AC_DEFINE([HAVE_DATA_START], 1,
1915       [Define to 1 if data_start is the address of the start
1916        of the main data segment.])
1917   fi
1919 AC_SUBST(GMALLOC_OBJ)
1920 AC_SUBST(VMLIMIT_OBJ)
1922 if test "$doug_lea_malloc" = "yes" ; then
1923   if test "$GNU_MALLOC" = yes ; then
1924     GNU_MALLOC_reason="
1925       (Using Doug Lea's new malloc from the GNU C Library.)"
1926   fi
1927   AC_DEFINE(DOUG_LEA_MALLOC, 1,
1928             [Define to 1 if you are using the GNU C Library.])
1930   ## Use mmap directly for allocating larger buffers.
1931   ## FIXME this comes from src/s/{gnu,gnu-linux}.h:
1932   ## #ifdef DOUG_LEA_MALLOC; #undef REL_ALLOC; #endif
1933   ## Does the AC_FUNC_MMAP test below make this check unnecessary?
1934   case "$opsys" in
1935     gnu*) REL_ALLOC=no ;;
1936   esac
1939 if test x"${REL_ALLOC}" = x; then
1940   REL_ALLOC=${GNU_MALLOC}
1943 use_mmap_for_buffers=no
1944 case "$opsys" in
1945   cygwin|freebsd|irix6-5) use_mmap_for_buffers=yes ;;
1946 esac
1948 AC_FUNC_MMAP
1949 if test $use_mmap_for_buffers = yes; then
1950   AC_DEFINE(USE_MMAP_FOR_BUFFERS, 1, [Define to use mmap to allocate buffer text.])
1951   REL_ALLOC=no
1954 LIBS="$LIBS_SYSTEM $LIBS"
1956 dnl If found, this adds -ldnet to LIBS, which Autoconf uses for checks.
1957 AC_CHECK_LIB(dnet, dnet_ntoa)
1958 dnl This causes -lresolv to get used in subsequent tests,
1959 dnl which causes failures on some systems such as HPUX 9.
1960 dnl AC_CHECK_LIB(resolv, gethostbyname)
1962 dnl FIXME replace main with a function we actually want from this library.
1963 AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
1965 dnl Check if pthreads is available.
1966 LIB_PTHREAD=
1967 AC_CHECK_HEADERS_ONCE(pthread.h)
1968 if test "$ac_cv_header_pthread_h"; then
1969   dnl gmalloc.c uses pthread_atfork, which is not available on older-style
1970   dnl hosts such as MirBSD 10, so test for pthread_atfork instead of merely
1971   dnl testing for pthread_self if Emacs uses gmalloc.c.
1972   if test "$GMALLOC_OBJ" = gmalloc.o; then
1973     emacs_pthread_function=pthread_atfork
1974   else
1975     emacs_pthread_function=pthread_self
1976   fi
1977   AC_CHECK_LIB(pthread, $emacs_pthread_function, HAVE_PTHREAD=yes)
1979 if test "$HAVE_PTHREAD" = yes; then
1980   case "${canonical}" in
1981     *-hpux*) ;;
1982     *) LIB_PTHREAD="-lpthread"
1983        LIBS="$LIB_PTHREAD $LIBS" ;;
1984   esac
1985   AC_DEFINE(HAVE_PTHREAD, 1, [Define to 1 if you have pthread (-lpthread).])
1987 AC_SUBST([LIB_PTHREAD])
1989 AC_CHECK_LIB(pthreads, cma_open)
1991 ## Note: when using cpp in s/aix4.2.h, this definition depended on
1992 ## HAVE_LIBPTHREADS.  That was not defined earlier in configure when
1993 ## the system file was sourced.  Hence the value of LIBS_SYSTEM
1994 ## added to LIBS in configure would never contain the pthreads part,
1995 ## but the value used in Makefiles might.  FIXME?
1997 ## -lpthreads seems to be necessary for Xlib in X11R6, and should
1998 ## be harmless on older versions of X where it happens to exist.
1999 test "$opsys" = "aix4-2" && \
2000   test $ac_cv_lib_pthreads_cma_open = yes && \
2001   LIBS_SYSTEM="$LIBS_SYSTEM -lpthreads"
2003 dnl Check for need for bigtoc support on IBM AIX
2005 case ${host_os} in
2006 aix*)
2007   AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
2008     case $GCC in
2009     yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
2010     *) gdb_cv_bigtoc=-bbigtoc ;;
2011     esac
2013     LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
2014     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[int i;]])], [], [gdb_cv_bigtoc=])
2015   ])
2016   ;;
2017 esac
2019 # Change CFLAGS and CPPFLAGS temporarily so that C_SWITCH_X_SITE gets
2020 # used for the tests that follow.  We set them back to REAL_CFLAGS and
2021 # REAL_CPPFLAGS later on.
2023 REAL_CFLAGS="$CFLAGS"
2024 REAL_CPPFLAGS="$CPPFLAGS"
2026 if test "${HAVE_X11}" = "yes"; then
2027   DEFS="$C_SWITCH_X_SITE $DEFS"
2028   LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE"
2029   LIBS="-lX11 $LIBS"
2030   CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
2031   CPPFLAGS="$C_SWITCH_X_SITE $CPPFLAGS"
2033   # On Solaris, arrange for LD_RUN_PATH to point to the X libraries for tests.
2034   # This is handled by LD_SWITCH_X_SITE_RPATH during the real build,
2035   # but it's more convenient here to set LD_RUN_PATH since this
2036   # also works on hosts that don't understand LD_SWITCH_X_SITE_RPATH.
2037   if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
2038     LD_RUN_PATH=$x_libraries${LD_RUN_PATH+:}$LD_RUN_PATH
2039     export LD_RUN_PATH
2040   fi
2042   if test "${opsys}" = "gnu-linux"; then
2043     AC_MSG_CHECKING(whether X on GNU/Linux needs -b to link)
2044     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],
2045      [[XOpenDisplay ("foo");]])],
2046      [xgnu_linux_first_failure=no],
2047      [xgnu_linux_first_failure=yes])
2048     if test "${xgnu_linux_first_failure}" = "yes"; then
2049       OLD_LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE"
2050       OLD_C_SWITCH_X_SITE="$C_SWITCH_X_SITE"
2051       OLD_CPPFLAGS="$CPPFLAGS"
2052       OLD_LIBS="$LIBS"
2053       LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout"
2054       C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout"
2055       CPPFLAGS="$CPPFLAGS -b i486-linuxaout"
2056       LIBS="$LIBS -b i486-linuxaout"
2057       AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],
2058        [[XOpenDisplay ("foo");]])],
2059        [xgnu_linux_second_failure=no],
2060        [xgnu_linux_second_failure=yes])
2061       if test "${xgnu_linux_second_failure}" = "yes"; then
2062         # If we get the same failure with -b, there is no use adding -b.
2063         # So take it out.  This plays safe.
2064         LD_SWITCH_X_SITE="$OLD_LD_SWITCH_X_SITE"
2065         C_SWITCH_X_SITE="$OLD_C_SWITCH_X_SITE"
2066         CPPFLAGS="$OLD_CPPFLAGS"
2067         LIBS="$OLD_LIBS"
2068         AC_MSG_RESULT(no)
2069       else
2070         AC_MSG_RESULT(yes)
2071       fi
2072     else
2073       AC_MSG_RESULT(no)
2074     fi
2075   fi
2077   # Reportedly, some broken Solaris systems have XKBlib.h but are missing
2078   # header files included from there.
2079   AC_MSG_CHECKING(for Xkb)
2080   AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <X11/Xlib.h>
2081 #include <X11/XKBlib.h>]],
2082         [[XkbDescPtr kb = XkbGetKeyboard (0, XkbAllComponentsMask, XkbUseCoreKbd);]])],
2083         emacs_xkb=yes, emacs_xkb=no)
2084   AC_MSG_RESULT($emacs_xkb)
2085   if test $emacs_xkb = yes; then
2086     AC_DEFINE(HAVE_XKB, 1, [Define to 1 if you have the Xkb extension.])
2087   fi
2089   AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
2090 XScreenNumberOfScreen)
2093 if test "${window_system}" = "x11"; then
2094   AC_MSG_CHECKING(X11 version 6)
2095   AC_CACHE_VAL(emacs_cv_x11_version_6,
2096   [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <X11/Xlib.h>]],
2097 [[#if XlibSpecificationRelease < 6
2098 fail;
2099 #endif
2100 ]])], emacs_cv_x11_version_6=yes, emacs_cv_x11_version_6=no)])
2101   if test $emacs_cv_x11_version_6 = yes; then
2102     AC_MSG_RESULT(6 or newer)
2103     AC_DEFINE(HAVE_X11R6, 1,
2104               [Define to 1 if you have the X11R6 or newer version of Xlib.])
2105     AC_DEFINE(HAVE_X_I18N, 1, [Define if you have usable i18n support.])
2106     ## inoue@ainet.or.jp says Solaris has a bug related to X11R6-style
2107     ## XIM support.
2108     case "$opsys" in
2109       sol2-*) : ;;
2110       *) AC_DEFINE(HAVE_X11R6_XIM, 1,
2111            [Define if you have usable X11R6-style XIM support.])
2112          ;;
2113     esac
2114   else
2115     AC_MSG_RESULT(before 6)
2116   fi
2120 ### Use -lrsvg-2 if available, unless `--with-rsvg=no' is specified.
2121 HAVE_RSVG=no
2122 if test "${HAVE_X11}" = "yes" || test "${HAVE_NS}" = "yes" || test "${opsys}" = "mingw32"; then
2123   if test "${with_rsvg}" != "no"; then
2124     RSVG_REQUIRED=2.11.0
2125     RSVG_MODULE="librsvg-2.0 >= $RSVG_REQUIRED"
2127     PKG_CHECK_MODULES(RSVG, $RSVG_MODULE, HAVE_RSVG=yes, :)
2128     AC_SUBST(RSVG_CFLAGS)
2129     AC_SUBST(RSVG_LIBS)
2131     if test $HAVE_RSVG = yes; then
2132       AC_DEFINE(HAVE_RSVG, 1, [Define to 1 if using librsvg.])
2133       CFLAGS="$CFLAGS $RSVG_CFLAGS"
2134       LIBS="$RSVG_LIBS $LIBS"
2135     fi
2136   fi
2139 HAVE_IMAGEMAGICK=no
2140 if test "${HAVE_X11}" = "yes" || test "${HAVE_NS}" = "yes"; then
2141   if test "${with_imagemagick}" != "no"; then
2142     ## 6.2.8 is the earliest version known to work, but earlier versions
2143     ## might work - let us know if you find one.
2144     ## 6.0.7 does not work.  See bug#7955.
2145     ## 6.8.2 makes Emacs crash; see Bug#13867.
2146     IMAGEMAGICK_MODULE="Wand >= 6.2.8 Wand != 6.8.2"
2147     PKG_CHECK_MODULES(IMAGEMAGICK, $IMAGEMAGICK_MODULE, HAVE_IMAGEMAGICK=yes, :)
2148     AC_SUBST(IMAGEMAGICK_CFLAGS)
2149     AC_SUBST(IMAGEMAGICK_LIBS)
2151     if test $HAVE_IMAGEMAGICK = yes; then
2152       AC_DEFINE(HAVE_IMAGEMAGICK, 1, [Define to 1 if using imagemagick.])
2153       CFLAGS="$CFLAGS $IMAGEMAGICK_CFLAGS"
2154       LIBS="$IMAGEMAGICK_LIBS $LIBS"
2155       AC_CHECK_FUNCS(MagickExportImagePixels MagickMergeImageLayers)
2156     fi
2157   fi
2161 HAVE_GTK=no
2162 GTK_OBJ=
2163 gtk_term_header=$term_header
2164 check_gtk2=no
2165 gtk3_pkg_errors=
2166 if test "${opsys}" != "mingw32"; then
2167   if test "${with_gtk3}" = "yes" || test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "maybe"; then
2168     GLIB_REQUIRED=2.28
2169     GTK_REQUIRED=3.0
2170     GTK_MODULES="gtk+-3.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
2172     dnl Checks for libraries.
2173     PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
2174     if test "$pkg_check_gtk" = "no" && test "$with_gtk3" = "yes"; then
2175        AC_MSG_ERROR($GTK_PKG_ERRORS)
2176     fi
2177     if test "$pkg_check_gtk" = "yes"; then
2178        AC_DEFINE(HAVE_GTK3, 1, [Define to 1 if using GTK 3 or later.])
2179        GTK_OBJ=emacsgtkfixed.o
2180        gtk_term_header=gtkutil.h
2181        USE_GTK_TOOLKIT="GTK3"
2182        if test "x$ac_enable_gtk_deprecation_warnings" = x; then
2183           GTK_CFLAGS="$GTK_CFLAGS -DGDK_DISABLE_DEPRECATION_WARNINGS"
2184           GTK_CFLAGS="$GTK_CFLAGS -DGLIB_DISABLE_DEPRECATION_WARNINGS"
2185        fi
2186     else
2187        check_gtk2=yes
2188        gtk3_pkg_errors="$GTK_PKG_ERRORS "
2189     fi
2190   fi
2192   if test "${with_gtk2}" = "yes" || test "$check_gtk2" = "yes"; then
2193     GLIB_REQUIRED=2.10
2194     GTK_REQUIRED=2.10
2195     GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
2197     dnl Checks for libraries.
2198     PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
2199     if test "$pkg_check_gtk" = "no" &&
2200        { test "$with_gtk" = yes || test "$with_gtk2" = "yes"; }
2201     then
2202       AC_MSG_ERROR($gtk3_pkg_errors$GTK_PKG_ERRORS)
2203     fi
2204     test "$pkg_check_gtk" = "yes" && USE_GTK_TOOLKIT="GTK2"
2205   fi
2208 if test x"$pkg_check_gtk" = xyes; then
2210   AC_SUBST(GTK_CFLAGS)
2211   AC_SUBST(GTK_LIBS)
2212   C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS"
2213   CFLAGS="$CFLAGS $GTK_CFLAGS"
2214   LIBS="$GTK_LIBS $LIBS"
2215   dnl Try to compile a simple GTK program.
2216   AC_MSG_CHECKING([whether GTK compiles])
2217   GTK_COMPILES=no
2218   AC_LINK_IFELSE(
2219     [AC_LANG_PROGRAM(
2220        [[/* Check the Gtk and Glib APIs.  */
2221          #include <gtk/gtk.h>
2222          #include <glib-object.h>
2223          static void
2224          callback (GObject *go, GParamSpec *spec, gpointer user_data)
2225          {}
2226        ]],
2227        [[
2228          GtkSettings *gs = 0;
2229          /* Use G_CALLBACK to make sure function pointers can be cast to void *;
2230             strict C prohibits this.  Use gtk_main_iteration to test that the
2231             libraries are there.  */
2232          if (g_signal_handler_find (G_OBJECT (gs), G_SIGNAL_MATCH_FUNC,
2233                                     0, 0, 0, G_CALLBACK (callback), 0))
2234            gtk_main_iteration ();
2235        ]])],
2236     [GTK_COMPILES=yes])
2237   AC_MSG_RESULT([$GTK_COMPILES])
2238   if test "${GTK_COMPILES}" != "yes"; then
2239     GTK_OBJ=
2240     if test "$USE_X_TOOLKIT" != "maybe"; then
2241       AC_MSG_ERROR([Gtk+ wanted, but it does not compile, see config.log.  Maybe some x11-devel files missing?]);
2242     fi
2243   else
2244     HAVE_GTK=yes
2245     AC_DEFINE(USE_GTK, 1, [Define to 1 if using GTK.])
2246     GTK_OBJ="gtkutil.o $GTK_OBJ"
2247     term_header=$gtk_term_header
2248     USE_X_TOOLKIT=none
2249     if "$PKG_CONFIG" --atleast-version=2.10 gtk+-2.0; then
2250       :
2251     else
2252       AC_MSG_WARN([[Your version of Gtk+ will have problems with
2253        closing open displays.  This is no problem if you just use
2254        one display, but if you use more than one and close one of them
2255        Emacs may crash.]])
2256       sleep 3
2257     fi
2258   fi
2261 AC_SUBST(GTK_OBJ)
2264 if test "${HAVE_GTK}" = "yes"; then
2266   dnl  GTK scrollbars resemble toolkit scrollbars a lot, so to avoid
2267   dnl  a lot if #ifdef:s, say we have toolkit scrollbars.
2268   if test "$with_toolkit_scroll_bars" != no; then
2269     with_toolkit_scroll_bars=yes
2270   fi
2272   dnl  Check if we have the old file selection dialog declared and
2273   dnl  in the link library.  In 2.x it may be in the library,
2274   dnl  but not declared if deprecated featured has been selected out.
2275   dnl  AC_CHECK_DECL checks for a macro, so check for GTK_TYPE_FILE_SELECTION.
2276   HAVE_GTK_FILE_SELECTION=no
2277   AC_CHECK_DECL(GTK_TYPE_FILE_SELECTION, HAVE_GTK_FILE_SELECTION=yes,
2278                    HAVE_GTK_FILE_SELECTION=no, [AC_INCLUDES_DEFAULT
2279 #include <gtk/gtk.h>])
2280   if test "$HAVE_GTK_FILE_SELECTION" = yes; then
2281     AC_CHECK_FUNCS(gtk_file_selection_new)
2282   fi
2284   dnl Same as above for gtk_handle_box.
2285   HAVE_GTK_HANDLE_BOX=no
2286   AC_CHECK_DECL(GTK_TYPE_HANDLE_BOX, HAVE_GTK_HANDLE_BOX=yes,
2287                    HAVE_GTK_HANDLE_BOX=no, [AC_INCLUDES_DEFAULT
2288 #include <gtk/gtk.h>])
2289   if test "$HAVE_GTK_HANDLE_BOX" = yes; then
2290     AC_CHECK_FUNCS(gtk_handle_box_new)
2291   fi
2293   dnl Same as above for gtk_tearoff_menu_item.
2294   HAVE_GTK_TEAROFF_MENU_ITEM=no
2295   AC_CHECK_DECL(GTK_TYPE_TEAROFF_MENU_ITEM, HAVE_GTK_TEAROFF_MENU_ITEM=yes,
2296                    HAVE_GTK_TEAROFF_MENU_ITEM=no, [AC_INCLUDES_DEFAULT
2297 #include <gtk/gtk.h>])
2298   if test "$HAVE_GTK_TEAROFF_MENU_ITEM" = yes; then
2299     AC_CHECK_FUNCS(gtk_tearoff_menu_item_new)
2300   fi
2302   dnl Check for functions introduced in 2.14 and later.
2303   AC_CHECK_FUNCS(gtk_widget_get_window gtk_widget_set_has_window \
2304                  gtk_dialog_get_action_area gtk_widget_get_sensitive \
2305                  gtk_widget_get_mapped gtk_adjustment_get_page_size \
2306                  gtk_orientable_set_orientation \
2307                  gtk_window_set_has_resize_grip)
2309  term_header=gtkutil.h
2312 dnl D-Bus has been tested under GNU/Linux only.  Must be adapted for
2313 dnl other platforms.
2314 HAVE_DBUS=no
2315 DBUS_OBJ=
2316 if test "${with_dbus}" = "yes"; then
2317    PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0, HAVE_DBUS=yes, HAVE_DBUS=no)
2318    if test "$HAVE_DBUS" = yes; then
2319      LIBS="$LIBS $DBUS_LIBS"
2320      AC_DEFINE(HAVE_DBUS, 1, [Define to 1 if using D-Bus.])
2321      dnl dbus_watch_get_unix_fd has been introduced in D-Bus 1.1.1.
2322      dnl dbus_type_is_valid and dbus_validate_* have been introduced in
2323      dnl D-Bus 1.5.12.
2324      AC_CHECK_FUNCS(dbus_watch_get_unix_fd \
2325                     dbus_type_is_valid \
2326                     dbus_validate_bus_name \
2327                     dbus_validate_path \
2328                     dbus_validate_interface \
2329                     dbus_validate_member)
2330      DBUS_OBJ=dbusbind.o
2331    fi
2333 AC_SUBST(DBUS_OBJ)
2335 dnl GSettings has been tested under GNU/Linux only.
2336 HAVE_GSETTINGS=no
2337 if test "${HAVE_X11}" = "yes" && test "${with_gsettings}" = "yes"; then
2338    PKG_CHECK_MODULES(GSETTINGS, gio-2.0 >= 2.26, HAVE_GSETTINGS=yes, HAVE_GSETTINGS=no)
2339    if test "$HAVE_GSETTINGS" = "yes"; then
2340       AC_DEFINE(HAVE_GSETTINGS, 1, [Define to 1 if using GSettings.])
2341       SETTINGS_CFLAGS="$GSETTINGS_CFLAGS"
2342       SETTINGS_LIBS="$GSETTINGS_LIBS"
2343    fi
2346 dnl GConf has been tested under GNU/Linux only.
2347 dnl The version is really arbitrary, it is about the same age as Gtk+ 2.6.
2348 HAVE_GCONF=no
2349 if test "${HAVE_X11}" = "yes" && test "${with_gconf}" = "yes"; then
2350    PKG_CHECK_MODULES(GCONF, gconf-2.0 >= 2.13, HAVE_GCONF=yes, HAVE_GCONF=no)
2351    if test "$HAVE_GCONF" = yes; then
2352       AC_DEFINE(HAVE_GCONF, 1, [Define to 1 if using GConf.])
2353       dnl Newer GConf doesn't link with g_objects, so this is not defined.
2354       SETTINGS_CFLAGS="$SETTINGS_CFLAGS $GCONF_CFLAGS"
2355       SETTINGS_LIBS="$SETTINGS_LIBS $GCONF_LIBS"
2356    fi
2359 if test "$HAVE_GSETTINGS" = "yes" || test "$HAVE_GCONF" = "yes"; then
2360     PKG_CHECK_MODULES(GOBJECT, gobject-2.0 >= 2.0, HAVE_GOBJECT=yes, HAVE_GOBJECT=no)
2361     if test "$HAVE_GOBJECT" = "yes"; then
2362        SETTINGS_CFLAGS="$SETTINGS_CFLAGS $GOBJECT_CFLAGS"
2363        SETTINGS_LIBS="$SETTINGS_LIBS $GOBJECT_LIBS"
2364     fi
2365     SAVE_CFLAGS="$CFLAGS"
2366     SAVE_LIBS="$LIBS"
2367     CFLAGS="$SETTINGS_CFLAGS $CFLAGS"
2368     LIBS="$SETTINGS_LIBS $LIBS"
2369     AC_CHECK_FUNCS([g_type_init])
2370     CFLAGS="$SAVE_CFLAGS"
2371     LIBS="$SAVE_LIBS"
2373 AC_SUBST(SETTINGS_CFLAGS)
2374 AC_SUBST(SETTINGS_LIBS)
2377 dnl SELinux is available for GNU/Linux only.
2378 HAVE_LIBSELINUX=no
2379 LIBSELINUX_LIBS=
2380 if test "${with_selinux}" = "yes"; then
2381    AC_CHECK_LIB([selinux], [lgetfilecon], HAVE_LIBSELINUX=yes, HAVE_LIBSELINUX=no)
2382    if test "$HAVE_LIBSELINUX" = yes; then
2383       AC_DEFINE(HAVE_LIBSELINUX, 1, [Define to 1 if using SELinux.])
2384       LIBSELINUX_LIBS=-lselinux
2385    fi
2387 AC_SUBST(LIBSELINUX_LIBS)
2389 HAVE_GNUTLS=no
2390 if test "${with_gnutls}" = "yes" ; then
2391   PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.6.6], HAVE_GNUTLS=yes, HAVE_GNUTLS=no)
2392   if test "${HAVE_GNUTLS}" = "yes"; then
2393     AC_DEFINE(HAVE_GNUTLS, 1, [Define if using GnuTLS.])
2394   fi
2396   # Windows loads GnuTLS dynamically
2397   if test "${opsys}" = "mingw32"; then
2398     LIBGNUTLS_LIBS=
2399   else
2400     CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS"
2401     LIBS="$LIBGNUTLS_LIBS $LIBS"
2402   fi
2405 AC_SUBST(LIBGNUTLS_LIBS)
2406 AC_SUBST(LIBGNUTLS_CFLAGS)
2408 NOTIFY_OBJ=
2409 NOTIFY_SUMMARY=no
2411 dnl FIXME?  Don't auto-detect on NS, but do allow someone to specify
2412 dnl a particular library.  This doesn't make much sense?
2413 if test "${with_ns}" = yes && test ${with_file_notification} = yes; then
2414   with_file_notification=no
2417 dnl MS Windows native file monitor is available for mingw32 only.
2418 case $with_file_notification,$opsys in
2419   w32,* | yes,mingw32)
2420     AC_CHECK_HEADER(windows.h)
2421     if test "$ac_cv_header_windows_h" = yes ; then
2422        AC_DEFINE(HAVE_W32NOTIFY, 1, [Define to 1 to use w32notify.])
2423        NOTIFY_OBJ=w32notify.o
2424        NOTIFY_SUMMARY="yes (w32)"
2425     fi ;;
2426 esac
2428 dnl g_file_monitor exists since glib 2.18.  G_FILE_MONITOR_EVENT_MOVED
2429 dnl has been added in glib 2.24.  It has been tested under
2430 dnl GNU/Linux only.  We take precedence over inotify, but this makes
2431 dnl only sense when glib has been compiled with inotify support.  How
2432 dnl to check?
2433 case $with_file_notification,$NOTIFY_OBJ in
2434   gfile, | yes,)
2435     PKG_CHECK_MODULES(GFILENOTIFY, gio-2.0 >= 2.24, HAVE_GFILENOTIFY=yes, HAVE_GFILENOTIFY=no)
2436     if test "$HAVE_GFILENOTIFY" = "yes"; then
2437        AC_DEFINE(HAVE_GFILENOTIFY, 1, [Define to 1 if using GFile.])
2438        NOTIFY_OBJ=gfilenotify.o
2439        NOTIFY_SUMMARY="yes -lgio (gfile)"
2440     fi ;;
2441 esac
2443 dnl inotify is only available on GNU/Linux.
2444 case $with_file_notification,$NOTIFY_OBJ in
2445   inotify, | yes,)
2446     AC_CHECK_HEADER(sys/inotify.h)
2447     if test "$ac_cv_header_sys_inotify_h" = yes ; then
2448         AC_CHECK_FUNC(inotify_init1)
2449         if test "$ac_cv_func_inotify_init1" = yes; then
2450           AC_DEFINE(HAVE_INOTIFY, 1, [Define to 1 to use inotify.])
2451           NOTIFY_OBJ=inotify.o
2452           NOTIFY_SUMMARY="yes -lglibc (inotify)"
2453        fi
2454     fi ;;
2455 esac
2457 case $with_file_notification,$NOTIFY_OBJ in
2458   yes,* | no,* | *,?*) ;;
2459   *) AC_MSG_ERROR([File notification `$with_file_notification' requested but requirements not found.]) ;;
2460 esac
2462 if test -n "$NOTIFY_OBJ"; then
2463    AC_DEFINE(USE_FILE_NOTIFY, 1, [Define to 1 if using file notifications.])
2465 AC_SUBST(NOTIFY_OBJ)
2466 AC_SUBST(GFILENOTIFY_CFLAGS)
2467 AC_SUBST(GFILENOTIFY_LIBS)
2469 dnl Do not put whitespace before the #include statements below.
2470 dnl Older compilers (eg sunos4 cc) choke on it.
2471 HAVE_XAW3D=no
2472 LUCID_LIBW=
2473 if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then
2474   if test "$with_xaw3d" != no; then
2475     AC_CACHE_VAL(emacs_cv_xaw3d,
2476     [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
2477 #include <X11/Intrinsic.h>
2478 #include <X11/Xaw3d/Simple.h>]],
2479       [[]])],
2480       [AC_CHECK_LIB(Xaw3d, XawScrollbarSetThumb,
2481                     emacs_cv_xaw3d=yes, emacs_cv_xaw3d=no)],
2482       emacs_cv_xaw3d=no)])
2483   else
2484     emacs_cv_xaw3d=no
2485   fi
2486   if test $emacs_cv_xaw3d = yes; then
2487     AC_MSG_CHECKING(for xaw3d)
2488     AC_MSG_RESULT([yes; using Lucid toolkit])
2489     USE_X_TOOLKIT=LUCID
2490     HAVE_XAW3D=yes
2491     LUCID_LIBW=-lXaw3d
2492     AC_DEFINE(HAVE_XAW3D, 1,
2493               [Define to 1 if you have the Xaw3d library (-lXaw3d).])
2494   else
2495     AC_MSG_CHECKING(for xaw3d)
2496     AC_MSG_RESULT(no)
2497     AC_MSG_CHECKING(for libXaw)
2498     AC_CACHE_VAL(emacs_cv_xaw,
2499     [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
2500 #include <X11/Intrinsic.h>
2501 #include <X11/Xaw/Simple.h>]],
2502       [[]])],
2503       emacs_cv_xaw=yes,
2504       emacs_cv_xaw=no)])
2505     if test $emacs_cv_xaw = yes; then
2506       AC_MSG_RESULT([yes; using Lucid toolkit])
2507       USE_X_TOOLKIT=LUCID
2508       LUCID_LIBW=-lXaw
2509     elif test x"${USE_X_TOOLKIT}" = xLUCID; then
2510       AC_MSG_ERROR([Lucid toolkit requires X11/Xaw include files])
2511     else
2512       AC_MSG_ERROR([No X toolkit could be found.
2513 If you are sure you want Emacs compiled without an X toolkit, pass
2514   --with-x-toolkit=no
2515 to configure.  Otherwise, install the development libraries for the toolkit
2516 that you want to use (e.g. Gtk+) and re-run configure.])
2517     fi
2518   fi
2521 X_TOOLKIT_TYPE=$USE_X_TOOLKIT
2523 LIBXTR6=
2524 if test "${USE_X_TOOLKIT}" != "none"; then
2525   AC_MSG_CHECKING(X11 toolkit version)
2526   AC_CACHE_VAL(emacs_cv_x11_toolkit_version_6,
2527   [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <X11/Intrinsic.h>]],
2528 [[#if XtSpecificationRelease < 6
2529 fail;
2530 #endif
2531 ]])], emacs_cv_x11_toolkit_version_6=yes, emacs_cv_x11_toolkit_version_6=no)])
2532   HAVE_X11XTR6=$emacs_cv_x11_toolkit_version_6
2533   if test $emacs_cv_x11_toolkit_version_6 = yes; then
2534     AC_MSG_RESULT(6 or newer)
2535     AC_DEFINE(HAVE_X11XTR6, 1,
2536               [Define to 1 if you have the X11R6 or newer version of Xt.])
2537     LIBXTR6="-lSM -lICE"
2538     case "$opsys" in
2539       ## Use libw.a along with X11R6 Xt.
2540       unixware) LIBXTR6="$LIBXTR6 -lw" ;;
2541     esac
2542   else
2543     AC_MSG_RESULT(before 6)
2544   fi
2546 dnl If using toolkit, check whether libXmu.a exists.
2547 dnl tranle@intellicorp.com says libXmu.a can need XtMalloc in libXt.a to link.
2548   OLDLIBS="$LIBS"
2549   if test x$HAVE_X11XTR6 = xyes; then
2550     LIBS="-lXt -lSM -lICE $LIBS"
2551   else
2552     LIBS="-lXt $LIBS"
2553   fi
2554   AC_CHECK_LIB(Xmu, XmuConvertStandardSelection)
2555   test $ac_cv_lib_Xmu_XmuConvertStandardSelection = no && LIBS="$OLDLIBS"
2556   dnl ac_cv_lib_Xmu_XmuConvertStandardSelection is also referenced below.
2558 AC_SUBST(LIBXTR6)
2560 dnl FIXME the logic here seems weird, but this is what cpp was doing.
2561 dnl Why not just test for libxmu in the normal way?
2562 LIBXMU=-lXmu
2563 case $opsys in
2564   ## These systems don't supply Xmu.
2565   hpux* | aix4-2 )
2566     test "X$ac_cv_lib_Xmu_XmuConvertStandardSelection" != "Xyes" && LIBXMU=
2567     ;;
2568   mingw32 )
2569     LIBXMU=
2570     ;;
2571 esac
2572 AC_SUBST(LIBXMU)
2574 # On Irix 6.5, at least, we need XShapeQueryExtension from -lXext for Xaw3D.
2575 if test "${HAVE_X11}" = "yes"; then
2576   if test "${USE_X_TOOLKIT}" != "none"; then
2577     AC_CHECK_LIB(Xext, XShapeQueryExtension)
2578   fi
2581 LIBXP=
2582 if test "${USE_X_TOOLKIT}" = "MOTIF"; then
2583   # OpenMotif may be installed in such a way on some GNU/Linux systems.
2584   if test -d /usr/include/openmotif; then
2585     CPPFLAGS="-I/usr/include/openmotif $CPPFLAGS"
2586     emacs_cv_openmotif=yes
2587     case "$canonical" in
2588       x86_64-*-linux-gnu* | powerpc64-*-linux-gnu* | sparc64-*-linux-gnu*)
2589       test -d /usr/lib64/openmotif && LDFLAGS="-L/usr/lib64/openmotif $LDFLAGS"
2590       ;;
2591       *)
2592       test -d /usr/lib/openmotif && LDFLAGS="-L/usr/lib/openmotif $LDFLAGS"
2593     esac
2594   else
2595     emacs_cv_openmotif=no
2596   fi
2597   AC_CACHE_CHECK(for (Open)Motif version 2.1, emacs_cv_motif_version_2_1,
2598   [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <Xm/Xm.h>]],
2599     [[#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1)
2600 int x = 5;
2601 #else
2602 Motif version prior to 2.1.
2603 #endif]])],
2604     emacs_cv_motif_version_2_1=yes, emacs_cv_motif_version_2_1=no)])
2605   if test $emacs_cv_motif_version_2_1 = yes; then
2606     AC_CHECK_LIB(Xp, XpCreateContext, LIBXP=-lXp)
2607     if test x$emacs_cv_openmotif = xyes; then
2608       REAL_CPPFLAGS="-I/usr/include/openmotif $REAL_CPPFLAGS"
2609     fi
2610   else
2611     AC_CACHE_CHECK(for LessTif where some systems put it, emacs_cv_lesstif,
2612     # We put this in CFLAGS temporarily to precede other -I options
2613     # that might be in CFLAGS temporarily.
2614     # We put this in CPPFLAGS where it precedes the other -I options.
2615     OLD_CPPFLAGS=$CPPFLAGS
2616     OLD_CFLAGS=$CFLAGS
2617     CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS"
2618     CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS"
2619     [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include </usr/X11R6/LessTif/Motif1.2/include/Xm/Xm.h>]],
2620       [[int x = 5;]])],
2621       emacs_cv_lesstif=yes, emacs_cv_lesstif=no)])
2622     if test $emacs_cv_lesstif = yes; then
2623       # Make sure this -I option remains in CPPFLAGS after it is set
2624       # back to REAL_CPPFLAGS.
2625       # There is no need to change REAL_CFLAGS, because REAL_CFLAGS does not
2626       # have those other -I options anyway.  Ultimately, having this
2627       # directory ultimately in CPPFLAGS will be enough.
2628       REAL_CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $REAL_CPPFLAGS"
2629       LDFLAGS="-L/usr/X11R6/LessTif/Motif1.2/lib $LDFLAGS"
2630     else
2631       CFLAGS=$OLD_CFLAGS
2632       CPPFLAGS=$OLD_CPPFLAGS
2633     fi
2634   fi
2635   AC_CHECK_HEADER([Xm/BulletinB.h], [],
2636     [AC_MSG_ERROR([Motif toolkit requested but requirements not found.])])
2639 dnl Use toolkit scroll bars if configured for GTK or X toolkit and either
2640 dnl using Motif or Xaw3d is available, and unless
2641 dnl --with-toolkit-scroll-bars=no was specified.
2643 AH_TEMPLATE(USE_TOOLKIT_SCROLL_BARS,
2644             [Define to 1 if we should use toolkit scroll bars.])dnl
2645 USE_TOOLKIT_SCROLL_BARS=no
2646 if test "${with_toolkit_scroll_bars}" != "no"; then
2647   if test "${USE_X_TOOLKIT}" != "none"; then
2648     if test "${USE_X_TOOLKIT}" = "MOTIF"; then
2649       AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
2650       HAVE_XAW3D=no
2651       USE_TOOLKIT_SCROLL_BARS=yes
2652     elif test "${HAVE_XAW3D}" = "yes" || test "${USE_X_TOOLKIT}" = "LUCID"; then
2653       AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
2654       USE_TOOLKIT_SCROLL_BARS=yes
2655     fi
2656   elif test "${HAVE_GTK}" = "yes"; then
2657     AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
2658     USE_TOOLKIT_SCROLL_BARS=yes
2659   elif test "${HAVE_NS}" = "yes"; then
2660     AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
2661     USE_TOOLKIT_SCROLL_BARS=yes
2662   elif test "${HAVE_W32}" = "yes"; then
2663     AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
2664     USE_TOOLKIT_SCROLL_BARS=yes
2665   fi
2668 dnl See if XIM is available.
2669 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
2670           #include <X11/Xlib.h>
2671           #include <X11/Xresource.h>]],
2672          [[XIMProc  callback;]])],
2673          [HAVE_XIM=yes
2674          AC_DEFINE(HAVE_XIM, 1, [Define to 1 if XIM is available])],
2675          HAVE_XIM=no)
2677 dnl `--with-xim' now controls only the initial value of use_xim at run time.
2679 if test "${with_xim}" != "no"; then
2680   AC_DEFINE(USE_XIM, 1,
2681             [Define to 1 if we should use XIM, if it is available.])
2685 if test "${HAVE_XIM}" != "no"; then
2686   late_CFLAGS=$CFLAGS
2687   if test "$GCC" = yes; then
2688     CFLAGS="$CFLAGS --pedantic-errors"
2689   fi
2690   AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
2691 #include <X11/Xlib.h>
2692 #include <X11/Xresource.h>]],
2693 [[Display *display;
2694 XrmDatabase db;
2695 char *res_name;
2696 char *res_class;
2697 XIMProc  callback;
2698 XPointer *client_data;
2699 #ifndef __GNUC__
2700 /* If we're not using GCC, it's probably not XFree86, and this is
2701    probably right, but we can't use something like --pedantic-errors.  */
2702 extern Bool XRegisterIMInstantiateCallback(Display*, XrmDatabase, char*,
2703                                            char*, XIMProc, XPointer*);
2704 #endif
2705 (void)XRegisterIMInstantiateCallback(display, db, res_name, res_class, callback,
2706    client_data);]])],
2707     [emacs_cv_arg6_star=yes])
2708   AH_TEMPLATE(XRegisterIMInstantiateCallback_arg6,
2709          [Define to the type of the 6th arg of XRegisterIMInstantiateCallback,
2710 either XPointer or XPointer*.])dnl
2711   if test "$emacs_cv_arg6_star" = yes; then
2712     AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer*])
2713   else
2714     AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer])
2715   fi
2716   CFLAGS=$late_CFLAGS
2719 ### Start of font-backend (under any platform) section.
2720 # (nothing here yet -- this is a placeholder)
2721 ### End of font-backend (under any platform) section.
2723 ### Start of font-backend (under X11) section.
2724 if test "${HAVE_X11}" = "yes"; then
2725    PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= 2.2.0, HAVE_FC=yes, HAVE_FC=no)
2727    ## Use -lXft if available, unless `--with-xft=no'.
2728    HAVE_XFT=maybe
2729     if test "${HAVE_FC}" = "no" || test "x${with_x}" = "xno"; then
2730       with_xft="no";
2731     fi
2732     if test "x${with_xft}" != "xno"; then
2734       PKG_CHECK_MODULES(XFT, xft >= 0.13.0, , HAVE_XFT=no)
2735       ## Because xftfont.c uses XRenderQueryExtension, we also
2736       ## need to link to -lXrender.
2737       HAVE_XRENDER=no
2738       AC_CHECK_LIB(Xrender, XRenderQueryExtension, HAVE_XRENDER=yes)
2739       if test "$HAVE_XFT" != no && test "$HAVE_XRENDER" != no; then
2740         OLD_CPPFLAGS="$CPPFLAGS"
2741         OLD_CFLAGS="$CFLAGS"
2742         OLD_LIBS="$LIBS"
2743         CPPFLAGS="$CPPFLAGS $XFT_CFLAGS"
2744         CFLAGS="$CFLAGS $XFT_CFLAGS"
2745         XFT_LIBS="-lXrender $XFT_LIBS"
2746         LIBS="$XFT_LIBS $LIBS"
2747         AC_CHECK_HEADER(X11/Xft/Xft.h,
2748           AC_CHECK_LIB(Xft, XftFontOpen, HAVE_XFT=yes, , $XFT_LIBS) , ,
2749           [[#include <X11/X.h>]])
2751         if test "${HAVE_XFT}" = "yes"; then
2752           AC_DEFINE(HAVE_XFT, 1, [Define to 1 if you have the Xft library.])
2753             AC_SUBST(XFT_LIBS)
2754           C_SWITCH_X_SITE="$C_SWITCH_X_SITE $XFT_CFLAGS"
2755         else
2756           CPPFLAGS="$OLD_CPPFLAGS"
2757           CFLAGS="$OLD_CFLAGS"
2758           LIBS="$OLD_LIBS"
2759         fi                        # "${HAVE_XFT}" = "yes"
2760       fi                          # "$HAVE_XFT" != no
2761     fi                            # "x${with_xft}" != "xno"
2763     ## We used to allow building with FreeType and without Xft.
2764     ## However, the ftx font backend driver is not in good shape.
2765     if test "$HAVE_XFT" != "yes"; then
2766        dnl For the "Does Emacs use" message at the end.
2767        HAVE_XFT=no
2768        HAVE_FREETYPE=no
2769     else
2770        dnl Strict linkers fail with
2771        dnl ftfont.o: undefined reference to symbol 'FT_New_Face'
2772        dnl if -lfreetype is not specified.
2773        dnl The following is needed to set FREETYPE_LIBS.
2774        PKG_CHECK_MODULES(FREETYPE, freetype2, HAVE_FREETYPE=yes,
2775                          HAVE_FREETYPE=no)
2777        test "$HAVE_FREETYPE" = "no" && AC_MSG_ERROR(libxft requires libfreetype)
2778     fi
2780     HAVE_LIBOTF=no
2781     if test "${HAVE_FREETYPE}" = "yes"; then
2782       AC_DEFINE(HAVE_FREETYPE, 1,
2783                 [Define to 1 if using the freetype and fontconfig libraries.])
2784       if test "${with_libotf}" != "no"; then
2785         PKG_CHECK_MODULES(LIBOTF, libotf, HAVE_LIBOTF=yes,
2786                           HAVE_LIBOTF=no)
2787         if test "$HAVE_LIBOTF" = "yes"; then
2788           AC_DEFINE(HAVE_LIBOTF, 1, [Define to 1 if using libotf.])
2789           AC_CHECK_LIB(otf, OTF_get_variation_glyphs,
2790                        HAVE_OTF_GET_VARIATION_GLYPHS=yes,
2791                        HAVE_OTF_GET_VARIATION_GLYPHS=no)
2792           if test "${HAVE_OTF_GET_VARIATION_GLYPHS}" = "yes"; then
2793             AC_DEFINE(HAVE_OTF_GET_VARIATION_GLYPHS, 1,
2794                       [Define to 1 if libotf has OTF_get_variation_glyphs.])
2795           fi
2796         fi
2797       fi
2798     dnl FIXME should there be an error if HAVE_FREETYPE != yes?
2799     dnl Does the new font backend require it, or can it work without it?
2800     fi
2802     HAVE_M17N_FLT=no
2803     if test "${HAVE_LIBOTF}" = yes; then
2804       if test "${with_m17n_flt}" != "no"; then
2805         PKG_CHECK_MODULES(M17N_FLT, m17n-flt, HAVE_M17N_FLT=yes, HAVE_M17N_FLT=no)
2806         if test "$HAVE_M17N_FLT" = "yes"; then
2807           AC_DEFINE(HAVE_M17N_FLT, 1, [Define to 1 if using libm17n-flt.])
2808         fi
2809       fi
2810     fi
2811 else
2812     HAVE_XFT=no
2813     HAVE_FREETYPE=no
2814     HAVE_LIBOTF=no
2815     HAVE_M17N_FLT=no
2818 ### End of font-backend (under X11) section.
2820 AC_SUBST(FREETYPE_CFLAGS)
2821 AC_SUBST(FREETYPE_LIBS)
2822 AC_SUBST(FONTCONFIG_CFLAGS)
2823 AC_SUBST(FONTCONFIG_LIBS)
2824 AC_SUBST(LIBOTF_CFLAGS)
2825 AC_SUBST(LIBOTF_LIBS)
2826 AC_SUBST(M17N_FLT_CFLAGS)
2827 AC_SUBST(M17N_FLT_LIBS)
2829 ### Use -lXpm if available, unless `--with-xpm=no'.
2830 ### mingw32 doesn't use -lXpm, since it loads the library dynamically.
2831 HAVE_XPM=no
2832 LIBXPM=
2833 if test "${HAVE_W32}" = "yes" && test "${opsys}" = "cygwin"; then
2834   if test "${with_xpm}" != "no"; then
2835     SAVE_CPPFLAGS="$CPPFLAGS"
2836     SAVE_LDFLAGS="$LDFLAGS"
2837     CPPFLAGS="$CPPFLAGS -I/usr/include/noX"
2838     LDFLAGS="$LDFLAGS -L/usr/lib/noX"
2839     AC_CHECK_HEADER(X11/xpm.h,
2840       [AC_CHECK_LIB(Xpm, XpmReadFileToImage, HAVE_XPM=yes)])
2841     if test "${HAVE_XPM}" = "yes"; then
2842       AC_MSG_CHECKING(for XpmReturnAllocPixels preprocessor define)
2843       AC_EGREP_CPP(no_return_alloc_pixels,
2844       [#include "X11/xpm.h"
2845 #ifndef XpmReturnAllocPixels
2846 no_return_alloc_pixels
2847 #endif
2848       ], HAVE_XPM=no, HAVE_XPM=yes)
2850       if test "${HAVE_XPM}" = "yes"; then
2851         REAL_CPPFLAGS="$REAL_CPPFLAGS -I/usr/include/noX"
2852         AC_MSG_RESULT(yes)
2853       else
2854         AC_MSG_RESULT(no)
2855         CPPFLAGS="$SAVE_CPPFLAGS"
2856         LDFLAGS="$SAVE_LDFLAGS"
2857       fi
2858     fi
2859   fi
2861   if test "${HAVE_XPM}" = "yes"; then
2862     AC_DEFINE(HAVE_XPM, 1, [Define to 1 if you have the Xpm library (-lXpm).])
2863     LIBXPM=-lXpm
2864   fi
2867 if test "${HAVE_X11}" = "yes"; then
2868   if test "${with_xpm}" != "no"; then
2869     AC_CHECK_HEADER(X11/xpm.h,
2870       [AC_CHECK_LIB(Xpm, XpmReadFileToPixmap, HAVE_XPM=yes, , -lX11)])
2871     if test "${HAVE_XPM}" = "yes"; then
2872       AC_MSG_CHECKING(for XpmReturnAllocPixels preprocessor define)
2873       AC_EGREP_CPP(no_return_alloc_pixels,
2874       [#include "X11/xpm.h"
2875 #ifndef XpmReturnAllocPixels
2876 no_return_alloc_pixels
2877 #endif
2878       ], HAVE_XPM=no, HAVE_XPM=yes)
2880       if test "${HAVE_XPM}" = "yes"; then
2881         AC_MSG_RESULT(yes)
2882       else
2883         AC_MSG_RESULT(no)
2884       fi
2885     fi
2886   fi
2888   if test "${HAVE_XPM}" = "yes"; then
2889     AC_DEFINE(HAVE_XPM, 1, [Define to 1 if you have the Xpm library (-lXpm).])
2890     LIBXPM=-lXpm
2891   fi
2894 ### FIXME: Perhaps regroup to minimize code duplication due to MinGW's
2895 ### slightly different requirements wrt image libraries (it doesn't
2896 ### use -lXpm because it loads the xpm shared library dynamically at
2897 ### run time).
2898 if test "${opsys}" = "mingw32"; then
2899   if test "${with_xpm}" != "no"; then
2900     AC_CHECK_HEADER(X11/xpm.h, HAVE_XPM=yes, HAVE_XPM=no, [
2901 #define FOR_MSW 1])
2902   fi
2904   if test "${HAVE_XPM}" = "yes"; then
2905     AC_DEFINE(HAVE_XPM, 1, [Define to 1 if you have the Xpm library (-lXpm).])
2906   fi
2909 AC_SUBST(LIBXPM)
2911 ### Use -ljpeg if available, unless `--with-jpeg=no'.
2912 ### mingw32 doesn't use -ljpeg, since it loads the library dynamically.
2913 HAVE_JPEG=no
2914 LIBJPEG=
2915 if test "${opsys}" = "mingw32"; then
2916   if test "${with_jpeg}" != "no"; then
2917     dnl Checking for jpeglib.h can lose because of a redefinition of
2918     dnl HAVE_STDLIB_H.
2919     AC_CHECK_HEADER(jerror.h, HAVE_JPEG=yes, HAVE_JPEG=no)
2920   fi
2921   AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl
2922   if test "${HAVE_JPEG}" = "yes"; then
2923     AC_DEFINE(HAVE_JPEG)
2924     AC_EGREP_CPP([version= *(6[2-9]|[7-9][0-9])],
2925         [#include <jpeglib.h>
2926          version=JPEG_LIB_VERSION
2928         [AC_DEFINE(HAVE_JPEG)],
2929         [AC_MSG_WARN([libjpeg found, but not version 6b or later])
2930         HAVE_JPEG=no])
2931   fi
2932 elif test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
2933   if test "${with_jpeg}" != "no"; then
2934     dnl Checking for jpeglib.h can lose because of a redefinition of
2935     dnl  HAVE_STDLIB_H.
2936     AC_CHECK_HEADER(jerror.h,
2937       [AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes)])
2938   fi
2940   AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl
2941   if test "${HAVE_JPEG}" = "yes"; then
2942     AC_DEFINE(HAVE_JPEG)
2943     AC_EGREP_CPP([version= *(6[2-9]|[7-9][0-9])],
2944         [#include <jpeglib.h>
2945          version=JPEG_LIB_VERSION
2947         [AC_DEFINE(HAVE_JPEG)],
2948         [AC_MSG_WARN([libjpeg found, but not version 6b or later])
2949         HAVE_JPEG=no])
2950   fi
2951   if test "${HAVE_JPEG}" = "yes"; then
2952     LIBJPEG=-ljpeg
2953   fi
2955 AC_SUBST(LIBJPEG)
2957 ### Use -lpng if available, unless `--with-png=no'.
2958 ### mingw32 doesn't use -lpng, since it loads the library dynamically.
2959 HAVE_PNG=no
2960 LIBPNG=
2961 if test "${opsys}" = "mingw32"; then
2962   if test "${with_png}" != "no"; then
2963     AC_CHECK_HEADER(png.h, HAVE_PNG=yes, HAVE_PNG=no)
2964   fi
2965   if test "${HAVE_PNG}" = "yes"; then
2966     AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library (-lpng).])
2968     AC_CHECK_DECL(png_longjmp,
2969       [],
2970       [AC_DEFINE(PNG_DEPSTRUCT, [],
2971          [Define to empty to suppress deprecation warnings when building
2972           with --enable-gcc-warnings and with libpng versions before 1.5,
2973           which lack png_longjmp.])],
2974       [[#ifdef HAVE_LIBPNG_PNG_H
2975         # include <libpng/png.h>
2976         #else
2977         # include <png.h>
2978         #endif
2979       ]])
2980   fi
2981 elif test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
2982   if test "${with_png}" != "no"; then
2983     # Debian unstable as of July 2003 has multiple libpngs, and puts png.h
2984     # in /usr/include/libpng.
2985     AC_CHECK_HEADERS(png.h libpng/png.h, break)
2986     if test "$ac_cv_header_png_h" = yes || test "$ac_cv_header_libpng_png_h" = yes ; then
2987       AC_CHECK_LIB(png, png_get_channels, HAVE_PNG=yes, , -lz -lm)
2988     fi
2989   fi
2991   if test "${HAVE_PNG}" = "yes"; then
2992     AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library (-lpng).])
2993     LIBPNG="-lpng -lz -lm"
2995     AC_CHECK_DECL(png_longjmp,
2996       [],
2997       [AC_DEFINE(PNG_DEPSTRUCT, [],
2998          [Define to empty to suppress deprecation warnings when building
2999           with --enable-gcc-warnings and with libpng versions before 1.5,
3000           which lack png_longjmp.])],
3001       [[#ifdef HAVE_LIBPNG_PNG_H
3002         # include <libpng/png.h>
3003         #else
3004         # include <png.h>
3005         #endif
3006       ]])
3007   fi
3009 AC_SUBST(LIBPNG)
3011 HAVE_ZLIB=no
3012 LIBZ=
3013 if test "${with_zlib}" != "no"; then
3014   OLIBS=$LIBS
3015   AC_SEARCH_LIBS([inflateEnd], [z], [HAVE_ZLIB=yes])
3016   LIBS=$OLIBS
3017   case $ac_cv_search_inflateEnd in
3018     -*) LIBZ=$ac_cv_search_inflateEnd ;;
3019   esac
3021 if test "${HAVE_ZLIB}" = "yes"; then
3022   AC_DEFINE([HAVE_ZLIB], 1, [Define to 1 if you have the zlib library (-lz).])
3023   ### mingw32 doesn't use -lz, since it loads the library dynamically.
3024   if test "${opsys}" = "mingw32"; then
3025      LIBZ=
3026   fi
3028 AC_SUBST(LIBZ)
3031 ### Use -ltiff if available, unless `--with-tiff=no'.
3032 ### mingw32 doesn't use -ltiff, since it loads the library dynamically.
3033 HAVE_TIFF=no
3034 LIBTIFF=
3035 if test "${opsys}" = "mingw32"; then
3036   if test "${with_tiff}" != "no"; then
3037     AC_CHECK_HEADER(tiffio.h, HAVE_TIFF=yes, HAVE_TIFF=no)
3038   fi
3039   if test "${HAVE_TIFF}" = "yes"; then
3040     AC_DEFINE(HAVE_TIFF, 1, [Define to 1 if you have the tiff library (-ltiff).])
3041   fi
3042 elif test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
3043   if test "${with_tiff}" != "no"; then
3044     AC_CHECK_HEADER(tiffio.h,
3045       [tifflibs="-lz -lm"
3046       # At least one tiff package requires the jpeg library.
3047       if test "${HAVE_JPEG}" = yes; then tifflibs="-ljpeg $tifflibs"; fi
3048       AC_CHECK_LIB(tiff, TIFFGetVersion, HAVE_TIFF=yes, , $tifflibs)])
3049   fi
3051   if test "${HAVE_TIFF}" = "yes"; then
3052     AC_DEFINE(HAVE_TIFF, 1, [Define to 1 if you have the tiff library (-ltiff).])
3053     dnl FIXME -lz -lm, as per libpng?
3054     LIBTIFF=-ltiff
3055   fi
3057 AC_SUBST(LIBTIFF)
3059 ### Use -lgif or -lungif if available, unless `--with-gif=no'.
3060 ### mingw32 doesn't use -lgif/-lungif, since it loads the library dynamically.
3061 HAVE_GIF=no
3062 LIBGIF=
3063 if test "${opsys}" = "mingw32"; then
3064   if test "${with_gif}" != "no"; then
3065     AC_CHECK_HEADER(gif_lib.h, HAVE_GIF=yes, HAVE_GIF=no)
3066   fi
3067   if test "${HAVE_GIF}" = "yes"; then
3068     AC_DEFINE(HAVE_GIF, 1, [Define to 1 if you have a gif (or ungif) library.])
3069   fi
3070 elif test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no" \
3071         || test "${HAVE_W32}" = "yes"; then
3072   AC_CHECK_HEADER(gif_lib.h,
3073 # EGifPutExtensionLast only exists from version libungif-4.1.0b1.
3074 # Earlier versions can crash Emacs.
3075     [AC_CHECK_LIB(gif, EGifPutExtensionLast, HAVE_GIF=yes, HAVE_GIF=maybe)])
3077   if test "$HAVE_GIF" = yes; then
3078     LIBGIF=-lgif
3079   elif test "$HAVE_GIF" = maybe; then
3080 # If gif_lib.h but no libgif, try libungif.
3081     AC_CHECK_LIB(ungif, EGifPutExtensionLast, HAVE_GIF=yes, HAVE_GIF=no)
3082     test "$HAVE_GIF" = yes && LIBGIF=-lungif
3083   fi
3085   if test "${HAVE_GIF}" = "yes"; then
3086     AC_DEFINE(HAVE_GIF, 1, [Define to 1 if you have a gif (or ungif) library.])
3087   fi
3089 AC_SUBST(LIBGIF)
3091 dnl Check for required libraries.
3092 if test "${HAVE_X11}" = "yes"; then
3093   MISSING=""
3094   WITH_NO=""
3095   test "${with_xpm}" != "no" && test "${HAVE_XPM}" != "yes" &&
3096     MISSING="libXpm" && WITH_NO="--with-xpm=no"
3097   test "${with_jpeg}" != "no" && test "${HAVE_JPEG}" != "yes" &&
3098     MISSING="$MISSING libjpeg" && WITH_NO="$WITH_NO --with-jpeg=no"
3099   test "${with_png}" != "no" && test "${HAVE_PNG}" != "yes" &&
3100     MISSING="$MISSING libpng" && WITH_NO="$WITH_NO --with-png=no"
3101   test "${with_gif}" != "no" && test "${HAVE_GIF}" != "yes" &&
3102     MISSING="$MISSING libgif/libungif" && WITH_NO="$WITH_NO --with-gif=no"
3103   test "${with_tiff}" != "no" && test "${HAVE_TIFF}" != "yes" &&
3104     MISSING="$MISSING libtiff" && WITH_NO="$WITH_NO --with-tiff=no"
3106   if test "X${MISSING}" != X; then
3107     AC_MSG_ERROR([The following required libraries were not found:
3108     $MISSING
3109 Maybe some development libraries/packages are missing?
3110 If you don't want to link with them give
3111     $WITH_NO
3112 as options to configure])
3113   fi
3116 ### Use -lgpm if available, unless `--with-gpm=no'.
3117 HAVE_GPM=no
3118 LIBGPM=
3119 if test "${with_gpm}" != "no"; then
3120   AC_CHECK_HEADER(gpm.h,
3121     [AC_CHECK_LIB(gpm, Gpm_Open, HAVE_GPM=yes)])
3123   if test "${HAVE_GPM}" = "yes"; then
3124     AC_DEFINE(HAVE_GPM, 1, [Define to 1 if you have the gpm library (-lgpm).])
3125     LIBGPM=-lgpm
3126   fi
3128 AC_SUBST(LIBGPM)
3130 dnl Check for malloc/malloc.h on darwin
3131 AC_CHECK_HEADERS_ONCE(malloc/malloc.h)
3133 GNUSTEP_CFLAGS=
3134 ### Use NeXTstep API to implement GUI.
3135 if test "${HAVE_NS}" = "yes"; then
3136   AC_DEFINE(HAVE_NS, 1, [Define to 1 if you are using the NeXTstep API, either GNUstep or Cocoa on Mac OS X.])
3137   if test "${NS_IMPL_COCOA}" = "yes"; then
3138     AC_DEFINE(NS_IMPL_COCOA, 1, [Define to 1 if you are using NS windowing under MacOS X.])
3139   fi
3140   if test "${NS_IMPL_GNUSTEP}" = "yes"; then
3141     AC_DEFINE(NS_IMPL_GNUSTEP, 1, [Define to 1 if you are using NS windowing under GNUstep.])
3142     # See also .m.o rule in Makefile.in */
3143     # FIXME: are all these flags really needed?  Document here why.  */
3144     GNUSTEP_CFLAGS="-D_REENTRANT -fPIC -fno-strict-aliasing -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
3145     ## Extra CFLAGS applied to src/*.m files.
3146     GNU_OBJC_CFLAGS="$GNU_OBJC_CFLAGS -fgnu-runtime -Wno-import -fconstant-string-class=NSConstantString -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN -DGSDIAGNOSE"
3147   fi
3148   # We also have mouse menus.
3149   HAVE_MENUS=yes
3150   OTHER_FILES=ns-app
3153 if test "${HAVE_W32}" = "yes"; then
3154   HAVE_MENUS=yes
3157 ### Use session management (-lSM -lICE) if available
3158 HAVE_X_SM=no
3159 LIBXSM=
3160 if test "${HAVE_X11}" = "yes"; then
3161   AC_CHECK_HEADER(X11/SM/SMlib.h,
3162     [AC_CHECK_LIB(SM, SmcOpenConnection, HAVE_X_SM=yes, , -lICE)])
3164   if test "${HAVE_X_SM}" = "yes"; then
3165     AC_DEFINE(HAVE_X_SM, 1, [Define to 1 if you have the SM library (-lSM).])
3166     LIBXSM="-lSM -lICE"
3167     case "$LIBS" in
3168       *-lSM*) ;;
3169       *)      LIBS="$LIBXSM $LIBS" ;;
3170     esac
3171   fi
3173 AC_SUBST(LIBXSM)
3175 ### Use XRandr (-lXrandr) if available
3176 HAVE_XRANDR=no
3177 if test "${HAVE_X11}" = "yes"; then
3178   XRANDR_REQUIRED=1.2.2
3179   XRANDR_MODULES="xrandr >= $XRANDR_REQUIRED"
3180   PKG_CHECK_MODULES(XRANDR, $XRANDR_MODULES, HAVE_XRANDR=yes, HAVE_XRANDR=no)
3181   if test $HAVE_XRANDR = no; then
3182     # Test old way in case pkg-config doesn't have it (older machines).
3183     AC_CHECK_HEADER(X11/extensions/Xrandr.h,
3184       [AC_CHECK_LIB(Xrandr, XRRGetScreenResources, HAVE_XRANDR=yes)])
3185     if test $HAVE_XRANDR = yes; then
3186       XRANDR_LIBS=-lXrandr
3187       AC_SUBST(XRANDR_LIBS)
3188     fi
3189   fi
3190   if test $HAVE_XRANDR = yes; then
3191     SAVE_CFLAGS="$CFLAGS"
3192     SAVE_LIBS="$LIBS"
3193     CFLAGS="$XRANDR_CFLAGS $CFLAGS"
3194     LIBS="$XRANDR_LIBS $LIBS"
3195     AC_CHECK_FUNCS(XRRGetOutputPrimary XRRGetScreenResourcesCurrent)
3196     CFLAGS="$SAVE_CFLAGS"
3197     LIBS="$SAVE_LIBS"
3199     AC_DEFINE(HAVE_XRANDR, 1, [Define to 1 if you have the XRandr extension.])
3200   fi
3203 ### Use Xinerama (-lXinerama) if available
3204 HAVE_XINERAMA=no
3205 if test "${HAVE_X11}" = "yes"; then
3206   XINERAMA_REQUIRED=1.0.2
3207   XINERAMA_MODULES="xinerama >= $XINERAMA_REQUIRED"
3208   PKG_CHECK_MODULES(XINERAMA, $XINERAMA_MODULES, HAVE_XINERAMA=yes,
3209                     HAVE_XINERAMA=no)
3210   if test $HAVE_XINERAMA = no; then
3211     # Test old way in case pkg-config doesn't have it (older machines).
3212     AC_CHECK_HEADER(X11/extensions/Xinerama.h,
3213       [AC_CHECK_LIB(Xinerama, XineramaQueryExtension, HAVE_XINERAMA=yes)])
3214     if test $HAVE_XINERAMA = yes; then
3215       XINERAMA_LIBS=-lXinerama
3216       AC_SUBST(XINERAMA_LIBS)
3217     fi
3218   fi
3219   if test $HAVE_XINERAMA = yes; then
3220     AC_DEFINE(HAVE_XINERAMA, 1, [Define to 1 if you have the Xinerama extension.])
3221   fi
3225 ### Use libxml (-lxml2) if available
3226 ### mingw32 doesn't use -lxml2, since it loads the library dynamically.
3227 HAVE_LIBXML2=no
3228 if test "${with_xml2}" != "no"; then
3229   ### I'm not sure what the version number should be, so I just guessed.
3230   PKG_CHECK_MODULES(LIBXML2, libxml-2.0 > 2.6.17, HAVE_LIBXML2=yes, HAVE_LIBXML2=no)
3231   # Built-in libxml2 on OS X 10.8 lacks libxml-2.0.pc.
3232   if test "${HAVE_LIBXML2}" != "yes" -a "$opsys" = "darwin"; then
3233     SAVE_CPPFLAGS="$CPPFLAGS"
3234     CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
3235     AC_CHECK_HEADER(libxml/HTMLparser.h,
3236       [AC_CHECK_DECL(HTML_PARSE_RECOVER, HAVE_LIBXML2=yes, ,
3237                      [#include <libxml/HTMLparser.h>])])
3238     CPPFLAGS="$SAVE_CPPFLAGS"
3239     if test "${HAVE_LIBXML2}" = "yes"; then
3240       LIBXML2_LIBS="-lxml2"
3241       LIBXML2_CFLAGS="-I/usr/include/libxml2"
3242     fi
3243   fi
3244   if test "${HAVE_LIBXML2}" = "yes"; then
3245     if test "${opsys}" != "mingw32"; then
3246       LIBS="$LIBXML2_LIBS $LIBS"
3247       AC_CHECK_LIB(xml2, htmlReadMemory, HAVE_LIBXML2=yes, HAVE_LIBXML2=no)
3248     else
3249       LIBXML2_LIBS=""
3250     fi
3251     if test "${HAVE_LIBXML2}" = "yes"; then
3252       AC_DEFINE(HAVE_LIBXML2, 1, [Define to 1 if you have the libxml library (-lxml2).])
3253     else
3254       LIBXML2_LIBS=""
3255       LIBXML2_CFLAGS=""
3256     fi
3257   fi
3259 AC_SUBST(LIBXML2_LIBS)
3260 AC_SUBST(LIBXML2_CFLAGS)
3262 # If netdb.h doesn't declare h_errno, we must declare it by hand.
3263 # On MinGW, that is provided by nt/inc/sys/socket.h and w32.c.
3264 if test "${opsys}" = "mingw32"; then
3265   emacs_cv_netdb_declares_h_errno=yes
3267 AC_CACHE_CHECK(whether netdb declares h_errno,
3268                emacs_cv_netdb_declares_h_errno,
3269 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netdb.h>]],
3270   [[return h_errno;]])],
3271   emacs_cv_netdb_declares_h_errno=yes, emacs_cv_netdb_declares_h_errno=no)])
3272 if test $emacs_cv_netdb_declares_h_errno = yes; then
3273   AC_DEFINE(HAVE_H_ERRNO, 1, [Define to 1 if netdb.h declares h_errno.])
3276 # sqrt and other floating-point functions such as fmod and frexp
3277 # are found in -lm on most systems, but mingw32 doesn't use -lm.
3278 if test "${opsys}" != "mingw32"; then
3279   AC_CHECK_LIB(m, sqrt)
3282 # Check for mail-locking functions in a "mail" library.  Probably this should
3283 # have the same check as for liblockfile below.
3284 AC_CHECK_LIB(mail, maillock, have_mail=yes, have_mail=no)
3285 if test $have_mail = yes; then
3286   LIBS_MAIL=-lmail
3287   LIBS="$LIBS_MAIL $LIBS"
3288   AC_DEFINE(HAVE_LIBMAIL, 1, [Define to 1 if you have the `mail' library (-lmail).])
3289 else
3290   LIBS_MAIL=
3292 dnl Debian, at least:
3293 AC_CHECK_LIB(lockfile, maillock, have_lockfile=yes, have_lockfile=no)
3294 if test $have_lockfile = yes; then
3295    LIBS_MAIL=-llockfile
3296    LIBS="$LIBS_MAIL $LIBS"
3297    AC_DEFINE(HAVE_LIBLOCKFILE, 1, [Define to 1 if you have the `lockfile' library (-llockfile).])
3298 else
3299 # If we have the shared liblockfile, assume we must use it for mail
3300 # locking (e.g. Debian).  If we couldn't link against liblockfile
3301 # (no liblockfile.a installed), ensure that we don't need to.
3302   dnl This works for files generally, not just executables.
3303   dnl Should we look elsewhere for it?  Maybe examine /etc/ld.so.conf?
3304   AC_CHECK_PROG(liblockfile, liblockfile.so, yes, no,
3305                 /usr/lib:/lib:/usr/local/lib:$LD_LIBRARY_PATH)
3306   if test $ac_cv_prog_liblockfile = yes; then
3307     AC_MSG_ERROR([Shared liblockfile found but can't link against it.
3308 This probably means that movemail could lose mail.
3309 There may be a `development' package to install containing liblockfile.])
3310   fi
3312 AC_CHECK_HEADERS_ONCE(maillock.h)
3313 AC_SUBST(LIBS_MAIL)
3315 ## Define MAIL_USE_FLOCK (or LOCKF) if the mailer uses flock (or lockf) to
3316 ## interlock access to the mail spool.  The alternative is a lock file named
3317 ## /usr/spool/mail/$USER.lock.
3318 mail_lock=no
3319 case "$opsys" in
3320   aix4-2) mail_lock="lockf" ;;
3322   gnu|freebsd|dragonfly|netbsd|openbsd|darwin|irix6-5) mail_lock="flock" ;;
3324   ## On GNU/Linux systems, both methods are used by various mail programs.
3325   ## I assume most people are using newer mailers that have heard of flock.
3326   ## Change this if you need to.
3327   ## Debian contains a patch which says: ``On Debian/GNU/Linux systems,
3328   ## configure gets the right answers, and that means *NOT* using flock.
3329   ## Using flock is guaranteed to be the wrong thing. See Debian Policy
3330   ## for details.'' and then uses `#ifdef DEBIAN'.  Unfortunately the
3331   ## Debian maintainer hasn't provided a clean fix for Emacs.
3332   ## movemail.c will use `maillock' when MAILDIR, HAVE_LIBMAIL and
3333   ## HAVE_MAILLOCK_H are defined, so the following appears to be the
3334   ## correct logic.  -- fx
3335   ## We must check for HAVE_LIBLOCKFILE too, as movemail does.
3336   ## liblockfile is a Free Software replacement for libmail, used on
3337   ## Debian systems and elsewhere. -rfr.
3338   gnu-*)
3339     mail_lock="flock"
3340     if test $have_mail = yes || test $have_lockfile = yes; then
3341       test $ac_cv_header_maillock_h = yes && mail_lock=no
3342     fi
3343     ;;
3345   mingw32)
3346     mail_lock="none-needed" ;;
3347 esac
3349 BLESSMAIL_TARGET=
3350 case "$mail_lock" in
3351   flock) AC_DEFINE(MAIL_USE_FLOCK, 1, [Define if the mailer uses flock to interlock the mail spool.]) ;;
3353   lockf) AC_DEFINE(MAIL_USE_LOCKF, 1, [Define if the mailer uses lockf to interlock the mail spool.]) ;;
3355   none-needed) ;;
3357   *) BLESSMAIL_TARGET="need-blessmail" ;;
3358 esac
3359 AC_SUBST(BLESSMAIL_TARGET)
3362 AC_CHECK_FUNCS(accept4 gethostname \
3363 getrusage get_current_dir_name \
3364 lrand48 \
3365 select getpagesize setlocale \
3366 getrlimit setrlimit shutdown getaddrinfo \
3367 strsignal setitimer \
3368 sendto recvfrom getsockname getpeername getifaddrs freeifaddrs \
3369 gai_strerror getline getdelim sync \
3370 difftime posix_memalign \
3371 getpwent endpwent getgrent endgrent \
3372 touchlock \
3373 cfmakeraw cfsetspeed copysign __executable_start log2)
3375 ## Eric Backus <ericb@lsid.hp.com> says, HP-UX 9.x on HP 700 machines
3376 ## has a broken `rint' in some library versions including math library
3377 ## version number A.09.05.
3378 ## You can fix the math library by installing patch number PHSS_4630.
3379 ## But we can fix it more reliably for Emacs by just not using rint.
3380 ## We also skip HAVE_RANDOM - see comments in src/conf_post.h.
3381 case $opsys in
3382    hpux*) : ;;
3383    *) AC_CHECK_FUNCS(random rint) ;;
3384 esac
3386 dnl Cannot use AC_CHECK_FUNCS
3387 AC_CACHE_CHECK([for __builtin_unwind_init],
3388                emacs_cv_func___builtin_unwind_init,
3389 [AC_LINK_IFELSE([AC_LANG_PROGRAM([], [__builtin_unwind_init ();])],
3390                 emacs_cv_func___builtin_unwind_init=yes,
3391                 emacs_cv_func___builtin_unwind_init=no)])
3392 if test $emacs_cv_func___builtin_unwind_init = yes; then
3393   AC_DEFINE(HAVE___BUILTIN_UNWIND_INIT, 1,
3394             [Define to 1 if you have the `__builtin_unwind_init' function.])
3397 AC_CHECK_HEADERS_ONCE(sys/un.h)
3399 AC_FUNC_FSEEKO
3401 # UNIX98 PTYs.
3402 AC_CHECK_FUNCS(grantpt)
3404 # PTY-related GNU extensions.
3405 AC_CHECK_FUNCS(getpt posix_openpt)
3407 # Check this now, so that we will NOT find the above functions in ncurses.
3408 # That is because we have not set up to link ncurses in lib-src.
3409 # It's better to believe a function is not available
3410 # than to expect to find it in ncurses.
3411 # Also we need tputs and friends to be able to build at all.
3412 AC_MSG_CHECKING([for library containing tputs])
3413 # Run a test program that contains a call to tputs, a call that is
3414 # never executed.  This tests whether a pre-'main' dynamic linker
3415 # works with the library.  It's too much trouble to actually call
3416 # tputs in the test program, due to portability hassles.  When
3417 # cross-compiling, assume the test program will run if it links.
3418 AC_DEFUN([tputs_link_source], [
3419   AC_LANG_SOURCE(
3420      [[extern void tputs (const char *, int, int (*)(int));
3421        int main (int argc, char **argv)
3422        {
3423           if (argc == 10000)
3424             tputs (argv[0], 0, 0);
3425           return 0;
3426        }]])
3428 if test "${opsys}" = "mingw32"; then
3429   msg='none required'
3430 else
3431   # Maybe curses should be tried earlier?
3432   # See http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9736#35
3433   for tputs_library in '' tinfo ncurses terminfo termcap curses; do
3434     OLIBS=$LIBS
3435     if test -z "$tputs_library"; then
3436       LIBS_TERMCAP=
3437       msg='none required'
3438     else
3439       LIBS_TERMCAP=-l$tputs_library
3440       msg=$LIBS_TERMCAP
3441       LIBS="$LIBS_TERMCAP $LIBS"
3442     fi
3443     AC_RUN_IFELSE([tputs_link_source], [], [msg=no],
3444       [AC_LINK_IFELSE([tputs_link_source], [], [msg=no])])
3445     LIBS=$OLIBS
3446     if test "X$msg" != Xno; then
3447       break
3448     fi
3449   done
3451 AC_MSG_RESULT([$msg])
3452 if test "X$msg" = Xno; then
3453   AC_MSG_ERROR([The required function `tputs' was not found in any library.
3454 The following libraries were tried (in order):
3455   libtinfo, libncurses, libterminfo, libtermcap, libcurses
3456 Please try installing whichever of these libraries is most appropriate
3457 for your system, together with its header files.
3458 For example, a libncurses-dev(el) or similar package.])
3461 ## Use termcap instead of terminfo?
3462 ## Only true for: freebsd < 40000, ms-w32, msdos, netbsd < 599002500.
3463 TERMINFO=yes
3464 ## FIXME?  In the cases below where we unconditionally set
3465 ## LIBS_TERMCAP="-lncurses", this overrides LIBS_TERMCAP = -ltinfo,
3466 ## if that was found above to have tputs.
3467 ## Should we use the gnu* logic everywhere?
3468 case "$opsys" in
3469   ## darwin: Prevents crashes when running Emacs in Terminal.app under 10.2.
3470   ##  The ncurses library has been moved out of the System framework in
3471   ##  Mac OS X 10.2.  So if configure detects it, set the command-line
3472   ##  option to use it.
3473   darwin) LIBS_TERMCAP="-lncurses" ;;
3475   gnu*) test -z "$LIBS_TERMCAP" && LIBS_TERMCAP="-lncurses" ;;
3477   freebsd)
3478     AC_MSG_CHECKING([whether FreeBSD is new enough to use terminfo])
3479     AC_CACHE_VAL(emacs_cv_freebsd_terminfo,
3480     [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <osreldate.h>]],
3481 [[#if __FreeBSD_version < 400000
3482 fail;
3483 #endif
3484 ]])], emacs_cv_freebsd_terminfo=yes, emacs_cv_freebsd_terminfo=no)])
3486     AC_MSG_RESULT($emacs_cv_freebsd_terminfo)
3488     if test $emacs_cv_freebsd_terminfo = yes; then
3489       LIBS_TERMCAP="-lncurses"
3490     else
3491       TERMINFO=no
3492       LIBS_TERMCAP="-ltermcap"
3493     fi
3494     ;;
3496   mingw32)
3497     TERMINFO=no
3498     LIBS_TERMCAP=
3499     ;;
3501   netbsd)
3502     if test "x$LIBS_TERMCAP" != "x-lterminfo"; then
3503       TERMINFO=no
3504       LIBS_TERMCAP="-ltermcap"
3505     fi
3506     ;;
3508   openbsd | dragonfly) LIBS_TERMCAP="-lncurses" ;;
3510   ## hpux: Make sure we get select from libc rather than from libcurses
3511   ##  because libcurses on HPUX 10.10 has a broken version of select.
3512   ##  We used to use -lc -lcurses, but this may be cleaner.
3513   ## FIXME?  But TERMINFO = yes on hpux (it used to be explicitly
3514   # set that way, now it uses the default).  Isn't this a contradiction?
3515   hpux*) LIBS_TERMCAP="-ltermcap" ;;
3517 esac
3519 TERMCAP_OBJ=tparam.o
3520 if test $TERMINFO = yes; then
3521   AC_DEFINE(TERMINFO, 1, [Define to 1 if you use terminfo instead of termcap.])
3522   TERMCAP_OBJ=terminfo.o
3524 if test "X$LIBS_TERMCAP" = "X-lncurses"; then
3525   AC_DEFINE(USE_NCURSES, 1, [Define to 1 if you use ncurses.])
3527 AC_SUBST(LIBS_TERMCAP)
3528 AC_SUBST(TERMCAP_OBJ)
3531 # Do we have res_init, for detecting changes in /etc/resolv.conf?
3532 # On Darwin, res_init appears not to be useful: see bug#562 and
3533 # http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg01467.html
3534 resolv=no
3536 if test $opsys != darwin; then
3538   AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netinet/in.h>
3539 #include <arpa/nameser.h>
3540 #include <resolv.h>]],
3541     [[return res_init();]])],
3542     have_res_init=yes, have_res_init=no)
3543   if test "$have_res_init" = no; then
3544     OLIBS="$LIBS"
3545     LIBS="$LIBS -lresolv"
3546     AC_MSG_CHECKING(for res_init with -lresolv)
3547     AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netinet/in.h>
3548 #include <arpa/nameser.h>
3549 #include <resolv.h>]],
3550       [[return res_init();]])],
3551       have_res_init=yes, have_res_init=no)
3552     AC_MSG_RESULT($have_res_init)
3553     if test "$have_res_init" = yes ; then
3554       resolv=yes
3555     fi
3556     LIBS="$OLIBS"
3557   fi
3559   if test "$have_res_init" = yes; then
3560     AC_DEFINE(HAVE_RES_INIT, 1, [Define to 1 if res_init is available.])
3561   fi
3562 fi                              dnl !darwin
3564 # Do we need the Hesiod library to provide the support routines?
3565 dnl FIXME?  Should we be skipping this on Darwin too?
3566 LIBHESIOD=
3567 if test "$with_hesiod" != no ; then
3568   # Don't set $LIBS here -- see comments above.  FIXME which comments?
3569   AC_CHECK_FUNC(res_send, , [AC_CHECK_FUNC(__res_send, ,
3570      [AC_CHECK_LIB(resolv, res_send, resolv=yes,
3571                   [AC_CHECK_LIB(resolv, __res_send, resolv=yes)])])])
3572   if test "$resolv" = yes ; then
3573     RESOLVLIB=-lresolv
3574   else
3575     RESOLVLIB=
3576   fi
3577   AC_CHECK_FUNC(hes_getmailhost, , [AC_CHECK_LIB(hesiod, hes_getmailhost,
3578         hesiod=yes, :, $RESOLVLIB)])
3580   if test x"$hesiod" = xyes; then
3581     LIBHESIOD=-lhesiod
3582   fi
3584 AC_SUBST(LIBHESIOD)
3586 # Do we need libresolv (due to res_init or Hesiod)?
3587 if test "$resolv" = yes && test $opsys != darwin; then
3588   LIBRESOLV=-lresolv
3589 else
3590   LIBRESOLV=
3592 AC_SUBST(LIBRESOLV)
3594 # These tell us which Kerberos-related libraries to use.
3595 COM_ERRLIB=
3596 CRYPTOLIB=
3597 KRB5LIB=
3598 DESLIB=
3599 KRB4LIB=
3601 if test "${with_kerberos}" != no; then
3602   AC_CHECK_LIB(com_err, com_err, have_com_err=yes, have_com_err=no)
3603   if test $have_com_err = yes; then
3604     COM_ERRLIB=-lcom_err
3605     LIBS="$COM_ERRLIB $LIBS"
3606   fi
3607   AC_CHECK_LIB(crypto, mit_des_cbc_encrypt, have_crypto=yes, have_crypto=no)
3608   if test $have_crypto = yes; then
3609     CRYPTOLIB=-lcrypto
3610     LIBS="$CRYPTOLIB $LIBS"
3611   fi
3612   AC_CHECK_LIB(k5crypto, mit_des_cbc_encrypt, have_k5crypto=yes, have_k5crypto=no)
3613   if test $have_k5crypto = yes; then
3614     CRYPTOLIB=-lk5crypto
3615     LIBS="$CRYPTOLIB $LIBS"
3616   fi
3617   AC_CHECK_LIB(krb5, krb5_init_context, have_krb5=yes, have_krb5=no)
3618   if test $have_krb5=yes; then
3619     KRB5LIB=-lkrb5
3620     LIBS="$KRB5LIB $LIBS"
3621   fi
3622   dnl FIXME Simplify.  Does not match 22 logic, thanks to default_off?
3623   if test "${with_kerberos5}" = no; then
3624     AC_CHECK_LIB(des425, des_cbc_encrypt, have_des425=yes, have_des425=no )
3625     if test $have_des425 = yes; then
3626       DESLIB=-ldes425
3627       LIBS="$DESLIB $LIBS"
3628     else
3629       AC_CHECK_LIB(des, des_cbc_encrypt, have_des=yes, have_des=no)
3630       if test $have_des = yes; then
3631         DESLIB=-ldes
3632         LIBS="$DESLIB $LIBS"
3633       fi
3634     fi
3635     AC_CHECK_LIB(krb4, krb_get_cred, have_krb4=yes, have_krb4=no)
3636     if test $have_krb4 = yes; then
3637       KRB4LIB=-lkrb4
3638       LIBS="$KRB4LIB $LIBS"
3639     else
3640       AC_CHECK_LIB(krb, krb_get_cred, have_krb=yes, have_krb=no)
3641       if test $have_krb = yes; then
3642         KRB4LIB=-lkrb
3643         LIBS="$KRB4LIB $LIBS"
3644       fi
3645     fi
3646   fi
3648   if test "${with_kerberos5}" != no; then
3649     AC_CHECK_HEADERS(krb5.h,
3650       [AC_CHECK_MEMBERS([krb5_error.text, krb5_error.e_text],,,
3651                         [#include <krb5.h>])])
3652   else
3653     AC_CHECK_HEADERS(krb.h,,
3654                      [AC_CHECK_HEADERS(kerberosIV/krb.h,,
3655                                        [AC_CHECK_HEADERS(kerberos/krb.h)])])
3656   fi
3657   AC_CHECK_HEADERS(com_err.h)
3660 AC_SUBST(COM_ERRLIB)
3661 AC_SUBST(CRYPTOLIB)
3662 AC_SUBST(KRB5LIB)
3663 AC_SUBST(DESLIB)
3664 AC_SUBST(KRB4LIB)
3666 AC_CHECK_FUNCS_ONCE(tzset)
3667 AC_MSG_CHECKING(whether localtime caches TZ)
3668 AC_CACHE_VAL(emacs_cv_localtime_cache,
3669 [if test x$ac_cv_func_tzset = xyes; then
3670 AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <time.h>
3671 char TZ_GMT0[] = "TZ=GMT0";
3672 char TZ_PST8[] = "TZ=PST8";
3673 main()
3675   time_t now = time ((time_t *) 0);
3676   int hour_GMT0, hour_unset;
3677   if (putenv (TZ_GMT0) != 0)
3678     exit (1);
3679   hour_GMT0 = localtime (&now)->tm_hour;
3680   unsetenv("TZ");
3681   hour_unset = localtime (&now)->tm_hour;
3682   if (putenv (TZ_PST8) != 0)
3683     exit (1);
3684   if (localtime (&now)->tm_hour == hour_GMT0)
3685     exit (1);
3686   unsetenv("TZ");
3687   if (localtime (&now)->tm_hour != hour_unset)
3688     exit (1);
3689   exit (0);
3690 }]])], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
3691 [# If we have tzset, assume the worst when cross-compiling.
3692 emacs_cv_localtime_cache=yes])
3693 else
3694         # If we lack tzset, report that localtime does not cache TZ,
3695         # since we can't invalidate the cache if we don't have tzset.
3696         emacs_cv_localtime_cache=no
3697 fi])dnl
3698 AC_MSG_RESULT($emacs_cv_localtime_cache)
3699 if test $emacs_cv_localtime_cache = yes; then
3700   AC_DEFINE(LOCALTIME_CACHE, 1,
3701             [Define to 1 if localtime caches TZ.])
3704 ok_so_far=yes
3705 AC_CHECK_FUNC(socket, , ok_so_far=no)
3706 if test $ok_so_far = yes; then
3707   AC_CHECK_HEADER(netinet/in.h, , ok_so_far=no)
3709 if test $ok_so_far = yes; then
3710   AC_CHECK_HEADER(arpa/inet.h, , ok_so_far=no)
3712 if test $ok_so_far = yes; then
3713 dnl Fixme: Not used.  Should this be HAVE_SOCKETS?
3714   AC_DEFINE(HAVE_INET_SOCKETS, 1,
3715             [Define to 1 if you have inet sockets.])
3718 dnl Check for a Solaris 2.4 vfork bug that Autoconf misses (through 2.69).
3719 dnl This can be removed once we assume Autoconf 2.70.
3720 case $canonical in
3721   *-solaris2.4 | *-solaris2.4.*)
3722     dnl Disable the Autoconf-generated vfork test.
3723     : ${ac_cv_func_vfork_works=no};;
3724 esac
3726 AC_FUNC_FORK
3728 AC_CHECK_FUNCS(snprintf)
3730 dnl Check this late.  It depends on what other libraries (lrsvg, Gtk+ etc)
3731 dnl Emacs uses.
3732 XGSELOBJ=
3733 AC_MSG_CHECKING([whether GLib is linked in])
3734 AC_LINK_IFELSE([AC_LANG_PROGRAM(
3735         [[#include <glib.h>
3736         ]],
3737         [[g_print ("Hello world");]])],
3738      [links_glib=yes],
3739      [links_glib=no])
3740 AC_MSG_RESULT([$links_glib])
3741 if test "${links_glib}" = "yes"; then
3742   AC_DEFINE(HAVE_GLIB, 1, [Define to 1 if GLib is linked in.])
3743   if test "$HAVE_NS" = no;then
3744     XGSELOBJ=xgselect.o
3745   fi
3747 AC_SUBST(XGSELOBJ)
3749 dnl Adapted from Haible's version.
3750 AC_CACHE_CHECK([for nl_langinfo and CODESET], emacs_cv_langinfo_codeset,
3751   [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]],
3752     [[char* cs = nl_langinfo(CODESET);]])],
3753     emacs_cv_langinfo_codeset=yes,
3754     emacs_cv_langinfo_codeset=no)
3755   ])
3756 if test $emacs_cv_langinfo_codeset = yes; then
3757   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
3758     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
3761 AC_TYPE_MBSTATE_T
3763 AC_CACHE_CHECK([for C restricted array declarations], emacs_cv_c_restrict_arr,
3764   [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[void fred (int x[__restrict]);]], [[]])],
3765                   emacs_cv_c_restrict_arr=yes, emacs_cv_c_restrict_arr=no)])
3766 if test "$emacs_cv_c_restrict_arr" = yes; then
3767   AC_DEFINE(__restrict_arr, __restrict,
3768     [Define to compiler's equivalent of C99 restrict keyword in array
3769      declarations.  Define as empty for no equivalent.])
3772 dnl Fixme: AC_SYS_POSIX_TERMIOS should probably be used, but it's not clear
3773 dnl how the tty code is related to POSIX and/or other versions of termios.
3774 dnl The following looks like a useful start.
3776 dnl AC_SYS_POSIX_TERMIOS
3777 dnl if test $ac_cv_sys_posix_termios = yes; then
3778 dnl    AC_DEFINE(HAVE_TERMIOS, 1, [Define to 1 if you have POSIX-style functions
3779 dnl                                and macros for terminal control.])
3780 dnl    AC_DEFINE(HAVE_TCATTR, 1, [Define to 1 if you have tcgetattr and tcsetattr.])
3781 dnl fi
3783 dnl Turned on June 1996 supposing nobody will mind it.
3784 dnl MinGW emulates passwd database, so this feature doesn't make sense there.
3785 if test "${opsys}" != "mingw32"; then
3786    AC_DEFINE(AMPERSAND_FULL_NAME, 1, [Define to use the convention that &
3787      in the full name stands for the login id.])
3790 dnl Every platform that uses configure supports this.
3791 dnl There is a create-lockfiles option you can
3792 dnl customize if you do not want the lock files to be written.
3793 dnl So it is not clear that this #define still needs to exist.
3794 AC_DEFINE(CLASH_DETECTION, 1, [Define if you want lock files to be written,
3795   so that Emacs can tell instantly when you try to modify a file that
3796   someone else has modified in his/her Emacs.])
3798 dnl Everybody supports this, except MS.
3799 dnl Seems like the kind of thing we should be testing for, though.
3800 ## Note: PTYs are broken on darwin <6.  Use at your own risk.
3801 if test "${opsys}" != "mingw32"; then
3802   AC_DEFINE(HAVE_PTYS, 1, [Define if the system supports pty devices.])
3805 dnl Everybody supports this, except MS-DOS.
3806 dnl Seems like the kind of thing we should be testing for, though.
3807 dnl Compare with HAVE_INET_SOCKETS (which is unused...) above.
3808 AC_DEFINE(HAVE_SOCKETS, 1, [Define if the system supports
3809   4.2-compatible sockets.])
3811 AH_TEMPLATE(INTERNAL_TERMINAL, [This is substituted when $TERM is "internal".])
3813 AH_TEMPLATE(NULL_DEVICE, [Name of the file to open to get
3814   a null file, or a data sink.])
3815 if test "${opsys}" = "mingw32"; then
3816   AC_DEFINE(NULL_DEVICE, ["NUL:"])
3817 else
3818   AC_DEFINE(NULL_DEVICE, ["/dev/null"])
3821 AH_TEMPLATE(SEPCHAR, [Character that separates PATH elements.])
3822 if test "${opsys}" = "mingw32"; then
3823   AC_DEFINE(SEPCHAR, [';'])
3824 else
3825   AC_DEFINE(SEPCHAR, [':'])
3828 dnl Everybody supports this, except MS-DOS.
3829 AC_DEFINE(subprocesses, 1, [Define to enable asynchronous subprocesses.])
3831 AC_DEFINE(USER_FULL_NAME, [pw->pw_gecos], [How to get a user's full name.])
3834 AC_DEFINE(DIRECTORY_SEP, ['/'],
3835   [Character that separates directories in a file name.])
3837 if test "${opsys}" = "mingw32"; then
3838   AC_DEFINE(IS_DEVICE_SEP(_c_), [((_c_) == ':')],
3839     [Returns true if character is a device separator.])
3841   AC_DEFINE(IS_DIRECTORY_SEP(_c_), [((_c_) == '/' || (_c_) == '\\')],
3842     [Returns true if character is a directory separator.])
3844   AC_DEFINE(IS_ANY_SEP(_c_), [(IS_DIRECTORY_SEP (_c_) || IS_DEVICE_SEP(_c_))],
3845     [Returns true if character is any form of separator.])
3846 else
3847   AC_DEFINE(IS_DEVICE_SEP(_c_), 0,
3848     [Returns true if character is a device separator.])
3850   AC_DEFINE(IS_DIRECTORY_SEP(_c_), [((_c_) == DIRECTORY_SEP)],
3851     [Returns true if character is a directory separator.])
3853   AC_DEFINE(IS_ANY_SEP(_c_), [(IS_DIRECTORY_SEP (_c_))],
3854     [Returns true if character is any form of separator.])
3857 AH_TEMPLATE(NO_EDITRES, [Define if XEditRes should not be used.])
3859 case $opsys in
3860   aix4-2)
3861     dnl Unfortunately without libXmu we cannot support EditRes.
3862     if test x$ac_cv_lib_Xmu_XmuConvertStandardSelection != xyes; then
3863       AC_DEFINE(NO_EDITRES, 1)
3864     fi
3865     ;;
3867   hpux*)
3868     dnl Assar Westerlund <assar@sics.se> says this is necessary for
3869     dnl HP-UX 10.20, and that it works for HP-UX 0 as well.
3870     AC_DEFINE(NO_EDITRES, 1)
3871     ;;
3872 esac
3875 case $opsys in
3876   irix6-5 | sol2* | unixware )
3877     dnl Some SVr4s don't define NSIG in sys/signal.h for ANSI environments;
3878     dnl instead, there's a system variable _sys_nsig.  Unfortunately, we
3879     dnl need the constant to dimension an array.  So wire in the appropriate
3880     dnl value here.
3881     AC_DEFINE(NSIG_MINIMUM, 32, [Minimum value of NSIG.])
3882     ;;
3883 esac
3885 emacs_broken_SIGIO=no
3887 case $opsys in
3888   dnl SIGIO exists, but the feature doesn't work in the way Emacs needs.
3889   dnl See eg <http://article.gmane.org/gmane.os.openbsd.ports/46831>.
3890   hpux* | irix6-5 | openbsd | sol2* | unixware )
3891     emacs_broken_SIGIO=yes
3892     ;;
3894   aix4-2)
3895     dnl On AIX Emacs uses the gmalloc.c malloc implementation.  But given
3896     dnl the way this system works, libc functions that return malloced
3897     dnl memory use the libc malloc implementation. Calling xfree or
3898     dnl xrealloc on the results of such functions results in a crash.
3899     dnl
3900     dnl One solution for this could be to define SYSTEM_MALLOC in configure,
3901     dnl but that does not currently work on this system.
3902     dnl
3903     dnl It is possible to completely override the malloc implementation on
3904     dnl AIX, but that involves putting the malloc functions in a shared
3905     dnl library and setting the MALLOCTYPE environment variable to point to
3906     dnl that shared library.
3907     dnl
3908     dnl Emacs currently calls xrealloc on the results of get_current_dir name,
3909     dnl to avoid a crash just use the Emacs implementation for that function.
3910     dnl
3911     dnl FIXME We could change the AC_CHECK_FUNCS call near the start
3912     dnl of this file, so that we do not check for get_current_dir_name
3913     dnl on AIX.  But that might be fragile if something else ends
3914     dnl up testing for get_current_dir_name as a dependency.
3915     AC_DEFINE(BROKEN_GET_CURRENT_DIR_NAME, 1, [Define if
3916       get_current_dir_name should not be used.])
3917     ;;
3919   freebsd)
3920     dnl Circumvent a bug in FreeBSD.  In the following sequence of
3921     dnl writes/reads on a PTY, read(2) returns bogus data:
3922     dnl
3923     dnl write(2)  1022 bytes
3924     dnl write(2)   954 bytes, get EAGAIN
3925     dnl read(2)   1024 bytes in process_read_output
3926     dnl read(2)     11 bytes in process_read_output
3927     dnl
3928     dnl That is, read(2) returns more bytes than have ever been written
3929     dnl successfully.  The 1033 bytes read are the 1022 bytes written
3930     dnl successfully after processing (for example with CRs added if the
3931     dnl terminal is set up that way which it is here).  The same bytes will
3932     dnl be seen again in a later read(2), without the CRs.
3933     AC_DEFINE(BROKEN_PTY_READ_AFTER_EAGAIN, 1, [Define on FreeBSD to
3934       work around an issue when reading from a PTY.])
3935     ;;
3936 esac
3938 case $opsys in
3939   gnu-* | sol2-10 )
3940     dnl FIXME Can't we test if this exists (eg /proc/$$)?
3941     AC_DEFINE(HAVE_PROCFS, 1, [Define if you have the /proc filesystem.])
3942   ;;
3943 esac
3945 case $opsys in
3946   darwin | dragonfly | freebsd | netbsd | openbsd )
3947     AC_DEFINE(DONT_REOPEN_PTY, 1, [Define if process.c does not need to
3948       close a pty to make it a controlling terminal (it is already a
3949       controlling terminal of the subprocess, because we did ioctl TIOCSCTTY).])
3950   ;;
3951 esac
3953 dnl FIXME Surely we can test for this rather than hard-code it.
3954 case $opsys in
3955   netbsd | openbsd) sound_device="/dev/audio" ;;
3956   *) sound_device="/dev/dsp" ;;
3957 esac
3959 dnl Used in sound.c
3960 AC_DEFINE_UNQUOTED(DEFAULT_SOUND_DEVICE, "$sound_device",
3961   [Name of the default sound device.])
3964 dnl Emacs can read input using SIGIO and buffering characters itself,
3965 dnl or using CBREAK mode and making C-g cause SIGINT.
3966 dnl The choice is controlled by the variable interrupt_input.
3968 dnl Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO)
3970 dnl Emacs uses the presence of the USABLE_SIGIO macro
3971 dnl to indicate whether or not signal-driven I/O is possible.  It uses
3972 dnl INTERRUPT_INPUT to decide whether to use it by default.
3974 dnl SIGIO can be used only on systems that implement it (4.2 and 4.3).
3975 dnl CBREAK mode has two disadvantages
3976 dnl 1) At least in 4.2, it is impossible to handle the Meta key properly.
3977 dnl I hear that in system V this problem does not exist.
3978 dnl 2) Control-G causes output to be discarded.
3979 dnl I do not know whether this can be fixed in system V.
3981 dnl Another method of doing input is planned but not implemented.
3982 dnl It would have Emacs fork off a separate process
3983 dnl to read the input and send it to the true Emacs process
3984 dnl through a pipe.
3985 case $opsys in
3986   darwin | gnu-linux | gnu-kfreebsd )
3987     AC_DEFINE(INTERRUPT_INPUT, 1, [Define to read input using SIGIO.])
3988   ;;
3989 esac
3992 dnl If the system's imake configuration file defines `NeedWidePrototypes'
3993 dnl as `NO', we must define NARROWPROTO manually.  Such a define is
3994 dnl generated in the Makefile generated by `xmkmf'.  If we don't define
3995 dnl NARROWPROTO, we will see the wrong function prototypes for X functions
3996 dnl taking float or double parameters.
3997 case $opsys in
3998   cygwin|gnu|gnu-linux|gnu-kfreebsd|irix6-5|freebsd|netbsd|openbsd)
3999     AC_DEFINE(NARROWPROTO, 1, [Define if system's imake configuration
4000       file defines `NeedWidePrototypes' as `NO'.])
4001   ;;
4002 esac
4005 dnl Used in process.c, this must be a loop, even if it only runs once.
4006 dnl (Except on SGI; see below.  Take that, clarity and consistency!)
4007 AH_TEMPLATE(PTY_ITERATION, [How to iterate over PTYs.])
4008 dnl Only used if !PTY_ITERATION.  Iterate from FIRST_PTY_LETTER to z,
4009 dnl trying suffixes 0-16.
4010 AH_TEMPLATE(FIRST_PTY_LETTER, [Letter to use in finding device name of
4011   first PTY, if PTYs are supported.])
4012 AH_TEMPLATE(PTY_OPEN, [How to open a PTY, if non-standard.])
4013 AH_TEMPLATE(PTY_NAME_SPRINTF, [How to get the device name of the control
4014   end of a PTY, if non-standard.])
4015 AH_TEMPLATE(PTY_TTY_NAME_SPRINTF, [How to get device name of the tty
4016   end of a PTY, if non-standard.])
4018 case $opsys in
4019   aix4-2 )
4020     AC_DEFINE(PTY_ITERATION, [int c; for (c = 0; !c ; c++)])
4021     dnl You allocate a pty by opening /dev/ptc to get the master side.
4022     dnl To get the name of the slave side, you just ttyname() the master side.
4023     AC_DEFINE(PTY_NAME_SPRINTF, [strcpy (pty_name, "/dev/ptc");])
4024     AC_DEFINE(PTY_TTY_NAME_SPRINTF, [strcpy (pty_name, ttyname (fd));])
4025     ;;
4027   cygwin )
4028     AC_DEFINE(PTY_ITERATION, [int i; for (i = 0; i < 1; i++)])
4029     dnl multi-line AC_DEFINEs are hard. :(
4030     AC_DEFINE(PTY_OPEN, [ do { int dummy; sigset_t blocked, procmask; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, &procmask); if (-1 == openpty (&fd, &dummy, pty_name, 0, 0)) fd = -1; pthread_sigmask (SIG_SETMASK, &procmask, 0); if (fd >= 0) emacs_close (dummy); } while (0)])
4031     AC_DEFINE(PTY_NAME_SPRINTF, [])
4032     AC_DEFINE(PTY_TTY_NAME_SPRINTF, [])
4033     ;;
4035   dnl FIXME?  Maybe use same as freebsd - see bug#12040.
4036   darwin )
4037     AC_DEFINE(PTY_ITERATION, [int i; for (i = 0; i < 1; i++)])
4038     dnl Not used, because PTY_ITERATION is defined.
4039     AC_DEFINE(FIRST_PTY_LETTER, ['p'])
4040     dnl Note that openpty may fork via grantpt on Mac OS X 10.4/Darwin 8.
4041     dnl But we don't have to block SIGCHLD because it is blocked in the
4042     dnl implementation of grantpt.
4043     AC_DEFINE(PTY_OPEN, [ do { int slave; if (openpty (&fd, &slave, pty_name, NULL, NULL) == -1) fd = -1; else emacs_close (slave); } while (0)])
4044     AC_DEFINE(PTY_NAME_SPRINTF, [])
4045     AC_DEFINE(PTY_TTY_NAME_SPRINTF, [])
4046     ;;
4048   gnu | openbsd )
4049     AC_DEFINE(FIRST_PTY_LETTER, ['p'])
4050     ;;
4052   gnu-linux | gnu-kfreebsd | dragonfly | freebsd | netbsd )
4053     dnl if HAVE_GRANTPT
4054     if test "x$ac_cv_func_grantpt" = xyes; then
4055       AC_DEFINE(UNIX98_PTYS, 1, [Define if the system has Unix98 PTYs.])
4056       AC_DEFINE(PTY_ITERATION, [int i; for (i = 0; i < 1; i++)])
4057       dnl Note that grantpt and unlockpt may fork.  We must block SIGCHLD
4058       dnl to prevent sigchld_handler from intercepting the child's death.
4059       AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptyname = 0; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); if (grantpt (fd) != -1 && unlockpt (fd) != -1) ptyname = ptsname(fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (!ptyname) { emacs_close (fd); return -1; } snprintf (pty_name, PTY_NAME_SIZE, "%s", ptyname); }])
4060       dnl if HAVE_POSIX_OPENPT
4061       if test "x$ac_cv_func_posix_openpt" = xyes; then
4062         AC_DEFINE(PTY_OPEN, [do { fd = posix_openpt (O_RDWR | O_CLOEXEC | O_NOCTTY); if (fd < 0 && errno == EINVAL) fd = posix_openpt (O_RDWR | O_NOCTTY); } while (0)])
4063         AC_DEFINE(PTY_NAME_SPRINTF, [])
4064       dnl if HAVE_GETPT
4065       elif test "x$ac_cv_func_getpt" = xyes; then
4066         AC_DEFINE(PTY_OPEN, [fd = getpt ()])
4067         AC_DEFINE(PTY_NAME_SPRINTF, [])
4068       else
4069         AC_DEFINE(PTY_NAME_SPRINTF, [strcpy (pty_name, "/dev/ptmx");])
4070       fi
4071     else
4072       AC_DEFINE(FIRST_PTY_LETTER, ['p'])
4073     fi
4074     ;;
4076   hpux*)
4077     AC_DEFINE(FIRST_PTY_LETTER, ['p'])
4078     AC_DEFINE(PTY_NAME_SPRINTF, [sprintf (pty_name, "/dev/ptym/pty%c%x", c, i);])
4079     AC_DEFINE(PTY_TTY_NAME_SPRINTF, [sprintf (pty_name, "/dev/pty/tty%c%x", c, i);])
4080     ;;
4082   irix6-5 )
4083     dnl It looks like this cannot be right, because it is not a loop.
4084     dnl However, process.c actually does this:
4085     dnl # ifndef __sgi
4086     dnl   continue;
4087     dnl # else
4088     dnl   return -1;
4089     dnl # endif
4090     dnl which presumably makes it OK, since irix == sgi (?).
4091     dnl FIXME it seems like this special treatment is unnecessary?
4092     dnl Why can't irix use a single-trip loop like eg cygwin?
4093     AC_DEFINE(PTY_ITERATION, [])
4094     dnl Not used, because PTY_ITERATION is defined.
4095     AC_DEFINE(FIRST_PTY_LETTER, ['q'])
4096     AC_DEFINE(PTY_OPEN, [ { struct sigaction ocstat, cstat; struct stat stb; char * name; sigemptyset(&cstat.sa_mask); cstat.sa_handler = SIG_DFL; cstat.sa_flags = 0; sigaction(SIGCHLD, &cstat, &ocstat); name = _getpty (&fd, O_RDWR | O_NDELAY, 0600, 0); sigaction(SIGCHLD, &ocstat, (struct sigaction *)0); if (name == 0) return -1; if (fd < 0) return -1; if (fstat (fd, &stb) < 0) return -1; strcpy (pty_name, name); }])
4097     dnl No need to get the pty name at all.
4098     AC_DEFINE(PTY_NAME_SPRINTF, [])
4099     dnl No need to use sprintf to get the tty name--we get that from _getpty.
4100     AC_DEFINE(PTY_TTY_NAME_SPRINTF, [])
4101     ;;
4103   sol2* )
4104     dnl On SysVr4, grantpt(3) forks a subprocess, so keep sigchld_handler()
4105     dnl from intercepting that death.  If any child but grantpt's should die
4106     dnl within, it should be caught after sigrelse(2).
4107     AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1 || unlockpt (fd) == -1 || !(ptyname = ptsname (fd))) { emacs_close (fd); return -1; } snprintf (pty_name, PTY_NAME_SIZE, "%s", ptyname); }])
4108     ;;
4110   unixware )
4111     dnl Comments are as per sol2*.
4112     AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1) fatal("could not grant slave pty"); if (unlockpt(fd) == -1) fatal("could not unlock slave pty"); if (!(ptyname = ptsname(fd))) fatal ("could not enable slave pty"); snprintf (pty_name, PTY_NAME_SIZE, "%s", ptyname); }])
4113     ;;
4114 esac
4117 case $opsys in
4118   sol2* | unixware )
4119     dnl This change means that we don't loop through allocate_pty too
4120     dnl many times in the (rare) event of a failure.
4121     AC_DEFINE(FIRST_PTY_LETTER, ['z'])
4122     AC_DEFINE(PTY_NAME_SPRINTF, [strcpy (pty_name, "/dev/ptmx");])
4123     dnl Push various streams modules onto a PTY channel.  Used in process.c.
4124     AC_DEFINE(SETUP_SLAVE_PTY, [if (ioctl (xforkin, I_PUSH, "ptem") == -1) fatal ("ioctl I_PUSH ptem"); if (ioctl (xforkin, I_PUSH, "ldterm") == -1) fatal ("ioctl I_PUSH ldterm"); if (ioctl (xforkin, I_PUSH, "ttcompat") == -1) fatal ("ioctl I_PUSH ttcompat");], [How to set up a slave PTY, if needed.])
4125     ;;
4126 esac
4129 AH_TEMPLATE(SIGNALS_VIA_CHARACTERS, [Make process_send_signal work by
4130 "typing" a signal character on the pty.])
4132 case $opsys in
4133   dnl Perry Smith <pedz@ddivt1.austin.ibm.com> says this is correct for AIX.
4134   dnl thomas@mathematik.uni-bremen.de says this is needed for IRIX.
4135   aix4-2 | cygwin | gnu | irix6-5 | dragonfly | freebsd | netbsd | openbsd | darwin )
4136     AC_DEFINE(SIGNALS_VIA_CHARACTERS, 1)
4137     ;;
4139   dnl 21 Jun 06: Eric Hanchrow <offby1@blarg.net> says this works.
4140   dnl FIXME Does gnu-kfreebsd have linux/version.h?  It seems unlikely...
4141   gnu-linux | gnu-kfreebsd )
4143     AC_MSG_CHECKING([for signals via characters])
4144     AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
4145 #include <linux/version.h>
4146 #if LINUX_VERSION_CODE < 0x20400
4147 # error "Linux version too old"
4148 #endif
4149       ]], [[]])], emacs_signals_via_chars=yes, emacs_signals_via_chars=no)
4151     AC_MSG_RESULT([$emacs_signals_via_chars])
4152     test $emacs_signals_via_chars = yes && AC_DEFINE(SIGNALS_VIA_CHARACTERS, 1)
4153     ;;
4154 esac
4157 dnl Used in lisp.h, emacs.c, vm-limit.c
4158 dnl NEWS.18 describes this as "a number which contains
4159 dnl the high bits to be inclusive or'ed with pointers that are unpacked."
4160 AH_TEMPLATE(DATA_SEG_BITS, [Extra bits to be or'd in with any pointers
4161 stored in a Lisp_Object.])
4162 dnl if Emacs uses fewer than 32 bits for the value field of a LISP_OBJECT.
4164 case $opsys in
4165   aix*)
4166     dnl This works with 32-bit executables; Emacs doesn't support 64-bit.
4167     AC_DEFINE(DATA_SEG_BITS, [0x20000000])
4168     ;;
4169   hpux*)
4170     dnl The data segment on this machine always starts at address 0x40000000.
4171     AC_DEFINE(DATA_SEG_BITS, [0x40000000])
4172     ;;
4173   irix6-5)
4174     AC_DEFINE(DATA_SEG_BITS, [0x10000000])
4175     ;;
4176 esac
4179 AH_TEMPLATE(TAB3, [Undocumented.])
4181 case $opsys in
4182   darwin) AC_DEFINE(TAB3, OXTABS) ;;
4184   gnu | dragonfly | freebsd | netbsd | openbsd )
4185     AC_DEFINE(TABDLY, OXTABS, [Undocumented.])
4186     AC_DEFINE(TAB3, OXTABS)
4187     ;;
4189   gnu-linux | gnu-kfreebsd )
4190     AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
4191 #ifndef __ia64__
4192 # error "not ia64"
4193 #endif
4194       ]], [[]])], AC_DEFINE(GC_MARK_SECONDARY_STACK(),
4195         [do { extern void *__libc_ia64_register_backing_store_base; __builtin_ia64_flushrs (); mark_memory (__libc_ia64_register_backing_store_base, __builtin_ia64_bsp ());} while (0)],
4196         [Mark a secondary stack, like the register stack on the ia64.]), [])
4197     ;;
4199   hpux*)
4200     AC_DEFINE(RUN_TIME_REMAP, 1, [Define if emacs.c needs to call
4201       run_time_remap; for HPUX.])
4202     ;;
4203 esac
4206 dnl This won't be used automatically yet.  We also need to know, at least,
4207 dnl that the stack is continuous.
4208 AH_TEMPLATE(GC_SETJMP_WORKS, [Define if setjmp is known to save all
4209   registers relevant for conservative garbage collection in the jmp_buf.])
4212 case $opsys in
4213   dnl Not all the architectures are tested, but there are Debian packages
4214   dnl for SCM and/or Guile on them, so the technique must work.  See also
4215   dnl comments in alloc.c concerning setjmp and gcc.
4216   dnl Fixme: it's probably safe to just use the GCC conditional below.
4217   gnu-linux | gnu-kfreebsd )
4218     AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
4219 #if defined __i386__ || defined __sparc__ || defined __mc68000__ \
4220   || defined __alpha__ || defined __mips__ || defined __s390__ \
4221   || defined __arm__ || defined __powerpc__ || defined __amd64__ \
4222   || defined __ia64__ || defined __sh__
4223 /* ok */
4224 #else
4225 # error "setjmp not known to work on this arch"
4226 #endif
4227     ]], [[]])], AC_DEFINE(GC_SETJMP_WORKS, 1))
4228     ;;
4229 esac
4232 if test x$GCC = xyes; then
4233    dnl GC_SETJMP_WORKS is nearly always appropriate for GCC.
4234    AC_DEFINE(GC_SETJMP_WORKS, 1)
4235 else
4236   case $opsys in
4237     dnl irix: Tested on Irix 6.5.  SCM worked on earlier versions.
4238     dragonfly | freebsd | netbsd | openbsd | irix6-5 | sol2* )
4239       AC_DEFINE(GC_SETJMP_WORKS, 1)
4240       ;;
4241   esac
4242 fi                              dnl GCC?
4244 dnl In a weird quirk, MS runtime uses _setjmp and longjmp.
4245 AC_CACHE_CHECK([for _setjmp], [emacs_cv_func__setjmp],
4246   [AC_LINK_IFELSE(
4247      [AC_LANG_PROGRAM(
4248        [[#include <setjmp.h>
4249          #ifdef __MINGW32__
4250          # define _longjmp longjmp
4251          #endif
4252        ]],
4253        [[jmp_buf j;
4254          if (! _setjmp (j))
4255            _longjmp (j, 1);]])],
4256      [emacs_cv_func__setjmp=yes],
4257      [emacs_cv_func__setjmp=no])])
4258 if test $emacs_cv_func__setjmp = yes; then
4259   AC_DEFINE([HAVE__SETJMP], 1, [Define to 1 if _setjmp and _longjmp work.])
4260 else
4261   AC_CACHE_CHECK([for sigsetjmp], [emacs_cv_func_sigsetjmp],
4262     [AC_LINK_IFELSE(
4263        [AC_LANG_PROGRAM(
4264          [[#include <setjmp.h>
4265          ]],
4266          [[sigjmp_buf j;
4267            if (! sigsetjmp (j, 1))
4268              siglongjmp (j, 1);]])],
4269        [emacs_cv_func_sigsetjmp=yes],
4270        [emacs_cv_func_sigsetjmp=no])])
4271   if test $emacs_cv_func_sigsetjmp = yes; then
4272     AC_DEFINE([HAVE_SIGSETJMP], 1,
4273       [Define to 1 if sigsetjmp and siglongjmp work.
4274        The value of this symbol is irrelevant if HAVE__SETJMP is defined.])
4275   fi
4278 case $opsys in
4279   sol2* | unixware )
4280     dnl TIOCGPGRP is broken in SysVr4, so we can't send signals to PTY
4281     dnl subprocesses the usual way.  But TIOCSIGNAL does work for PTYs,
4282     dnl and this is all we need.
4283     AC_DEFINE(TIOCSIGSEND, TIOCSIGNAL, [Some platforms redefine this.])
4284     ;;
4285 esac
4288 case $opsys in
4289   hpux* | sol2* )
4290     dnl Used in xfaces.c.
4291     AC_DEFINE(XOS_NEEDS_TIME_H, 1, [Compensate for a bug in Xos.h on
4292       some systems, where it requires time.h.])
4293     ;;
4294 esac
4297 dnl Define symbols to identify the version of Unix this is.
4298 dnl Define all the symbols that apply correctly.
4299 AH_TEMPLATE(DOS_NT, [Define if the system is MS DOS or MS Windows.])
4300 AH_TEMPLATE(MSDOS, [Define if the system is MS DOS.])
4301 AH_TEMPLATE(USG, [Define if the system is compatible with System III.])
4302 AH_TEMPLATE(USG5_4, [Define if the system is compatible with System V Release 4.])
4304 case $opsys in
4305   aix4-2)
4306     AC_DEFINE(USG, [])
4307     dnl This symbol should be defined on AIX Version 3  ???????
4308     AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
4309 #ifndef _AIX
4310 # error "_AIX not defined"
4311 #endif
4312     ]], [[]])], [], AC_DEFINE(_AIX, [], [Define if the system is AIX.]))
4313     ;;
4315   cygwin)
4316     AC_DEFINE(CYGWIN, 1, [Define if the system is Cygwin.])
4317     ;;
4319   darwin)
4320     dnl Not __APPLE__, as this may not be defined on non-OSX Darwin.
4321     dnl Not DARWIN, because Panther and lower CoreFoundation.h use DARWIN to
4322     dnl distinguish OS X from pure Darwin.
4323     AC_DEFINE(DARWIN_OS, [], [Define if the system is Darwin.])
4324     ;;
4326   gnu-linux | gnu-kfreebsd )
4327     AC_DEFINE(USG, [])
4328     AC_DEFINE(GNU_LINUX, [], [Define if ths system is compatible with GNU/Linux.])
4329     ;;
4331   hpux*)
4332     AC_DEFINE(USG, [])
4333     AC_DEFINE(HPUX, [], [Define if the system is HPUX.])
4334     ;;
4336   irix6-5)
4337     AC_DEFINE(USG, [])
4338     AC_DEFINE(USG5_4, [])
4339     AC_DEFINE(IRIX6_5, [], [Define if the system is IRIX.])
4340     ;;
4342   mingw32)
4343     AC_DEFINE(DOS_NT, [])
4344     AC_DEFINE(WINDOWSNT, 1, [Define if compiling for native MS Windows.])
4345     if test "x$ac_enable_checking" != "x" ; then
4346       AC_DEFINE(EMACSDEBUG, 1, [Define to 1 to enable w32 debug facilities.])
4347     fi
4348     ;;
4350   sol2*)
4351     AC_DEFINE(USG, [])
4352     AC_DEFINE(USG5_4, [])
4353     AC_DEFINE(SOLARIS2, [], [Define if the system is Solaris.])
4354     ;;
4356   unixware)
4357     AC_DEFINE(USG, [])
4358     AC_DEFINE(USG5_4, [])
4359     ;;
4360 esac
4362 AC_CACHE_CHECK([for usable FIONREAD], [emacs_cv_usable_FIONREAD],
4363   [case $opsys in
4364      aix4-2)
4365        dnl BUILD 9008 - FIONREAD problem still exists in X-Windows.
4366        emacs_cv_usable_FIONREAD=no
4367        ;;
4369      mingw32)
4370        emacs_cv_usable_FIONREAD=yes
4371        ;;
4373      *)
4374        AC_COMPILE_IFELSE(
4375          [AC_LANG_PROGRAM([[#include <sys/types.h>
4376                             #include <sys/ioctl.h>
4377                             #ifdef USG5_4
4378                             # include <sys/filio.h>
4379                             #endif
4380                           ]],
4381                           [[int foo = ioctl (0, FIONREAD, &foo);]])],
4382          [emacs_cv_usable_FIONREAD=yes],
4383          [emacs_cv_usable_FIONREAD=no])
4384        ;;
4385    esac])
4386 if test $emacs_cv_usable_FIONREAD = yes; then
4387   AC_DEFINE([USABLE_FIONREAD], [1], [Define to 1 if FIONREAD is usable.])
4389   if test $emacs_broken_SIGIO = no; then
4390     AC_CACHE_CHECK([for usable SIGIO], [emacs_cv_usable_SIGIO],
4391       [AC_COMPILE_IFELSE(
4392          [AC_LANG_PROGRAM([[#include <fcntl.h>
4393                             #include <signal.h>
4394                           ]],
4395                           [[int foo = SIGIO | F_SETFL | FASYNC;]])],
4396          [emacs_cv_usable_SIGIO=yes],
4397          [emacs_cv_usable_SIGIO=no])],
4398       [emacs_cv_usable_SIGIO=yes],
4399       [emacs_cv_usable_SIGIO=no])
4400     if test $emacs_cv_usable_SIGIO = yes; then
4401       AC_DEFINE([USABLE_SIGIO], [1], [Define to 1 if SIGIO is usable.])
4402     fi
4403   fi
4407 case $opsys in
4408   dnl Emacs supplies its own malloc, but glib calls posix_memalign,
4409   dnl and on Cygwin prior to version 1.7.24 that becomes the
4410   dnl Cygwin-supplied posix_memalign.  As malloc is not the Cygwin
4411   dnl malloc, the Cygwin posix_memalign always returns ENOSYS.  A
4412   dnl workaround is to set G_SLICE=always-malloc.  This is no longer
4413   dnl needed starting with cygwin-1.7.24, and it is no longer
4414   dnl effective starting with glib-2.36. */
4415   cygwin)
4416     AC_DEFINE(G_SLICE_ALWAYS_MALLOC, 1, [Define to set the
4417       G_SLICE environment variable to "always-malloc" at startup.])
4418     ;;
4420   hpux11)
4421     dnl It works to open the pty's tty in the parent (Emacs), then
4422     dnl close and reopen it in the child.
4423     AC_DEFINE(USG_SUBTTY_WORKS, 1, [Define for USG systems where it
4424       works to open a pty's tty in the parent process, then close and
4425       reopen it in the child.])
4426     ;;
4428   irix6-5)
4429     AC_DEFINE(PREFER_VSUSP, 1, [Define if process_send_signal should
4430       use VSUSP instead of VSWTCH.])
4431     ;;
4433   sol2-10)
4434     AC_DEFINE(_STRUCTURED_PROC, 1, [Needed for system_process_attributes
4435       on Solaris.])
4436     ;;
4437 esac
4439 # Set up the CFLAGS for real compilation, so we can substitute it.
4440 CFLAGS="$REAL_CFLAGS"
4441 CPPFLAGS="$REAL_CPPFLAGS"
4443 ## Hack to detect a buggy GCC version.
4444 if test "x$GCC" = xyes \
4445    && test x"`$CC --version 2> /dev/null | grep 'gcc.* 4.5.0'`" != x \
4446    && test x"`echo $CFLAGS | grep '\-O@<:@23@:>@'`" != x \
4447    && test x"`echo $CFLAGS | grep '\-fno-optimize-sibling-calls'`" = x; then
4448    AC_MSG_ERROR([GCC 4.5.0 has problems compiling Emacs; see etc/PROBLEMS'.])
4451 version=$PACKAGE_VERSION
4453 copyright="Copyright (C) 2013 Free Software Foundation, Inc."
4454 AC_DEFINE_UNQUOTED(COPYRIGHT, ["$copyright"],
4455   [Short copyright string for this version of Emacs.])
4456 AC_SUBST(copyright)
4458 ### Specify what sort of things we'll be editing into Makefile and config.h.
4459 ### Use configuration here uncanonicalized to avoid exceeding size limits.
4460 AC_SUBST(version)
4461 AC_SUBST(configuration)
4462 ## Unused?
4463 AC_SUBST(canonical)
4464 AC_SUBST(srcdir)
4465 AC_SUBST(prefix)
4466 AC_SUBST(exec_prefix)
4467 AC_SUBST(bindir)
4468 AC_SUBST(datadir)
4469 AC_SUBST(sharedstatedir)
4470 AC_SUBST(libexecdir)
4471 AC_SUBST(mandir)
4472 AC_SUBST(infodir)
4473 AC_SUBST(lispdir)
4474 AC_SUBST(leimdir)
4475 AC_SUBST(standardlisppath)
4476 AC_SUBST(locallisppath)
4477 AC_SUBST(lisppath)
4478 AC_SUBST(x_default_search_path)
4479 AC_SUBST(etcdir)
4480 AC_SUBST(archlibdir)
4481 AC_SUBST(etcdocdir)
4482 AC_SUBST(bitmapdir)
4483 AC_SUBST(gamedir)
4484 AC_SUBST(gameuser)
4485 ## FIXME? Nothing uses @LD_SWITCH_X_SITE@.
4486 ## src/Makefile.in did add LD_SWITCH_X_SITE (as a cpp define) to the
4487 ## end of LIBX_BASE, but nothing ever set it.
4488 AC_SUBST(LD_SWITCH_X_SITE)
4489 AC_SUBST(C_SWITCH_X_SITE)
4490 AC_SUBST(GNUSTEP_CFLAGS)
4491 AC_SUBST(CFLAGS)
4492 ## Used in lwlib/Makefile.in.
4493 AC_SUBST(X_TOOLKIT_TYPE)
4494 AC_SUBST(ns_appdir)
4495 AC_SUBST(ns_appbindir)
4496 AC_SUBST(ns_appresdir)
4497 AC_SUBST(ns_appsrc)
4498 AC_SUBST(GNU_OBJC_CFLAGS)
4499 AC_SUBST(OTHER_FILES)
4501 if test -n "${term_header}"; then
4502     AC_DEFINE_UNQUOTED(TERM_HEADER, "${term_header}",
4503         [Define to the header for the built-in window system.])
4506 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION,  "${canonical}",
4507                    [Define to the canonical Emacs configuration name.])
4508 AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${emacs_config_options}",
4509                    [Define to the options passed to configure.])
4510 AH_TEMPLATE(config_opsysfile, [Some platforms that do not use configure
4511   define this to include extra configuration information.])
4513 case $opsys in
4514   mingw32)
4515     AC_DEFINE(config_opsysfile, <ms-w32.h>, [])
4516     ;;
4517 esac
4519 XMENU_OBJ=
4520 XOBJ=
4521 FONT_OBJ=
4522 if test "${HAVE_X_WINDOWS}" = "yes" ; then
4523   AC_DEFINE(HAVE_X_WINDOWS, 1,
4524             [Define to 1 if you want to use the X window system.])
4525   XMENU_OBJ=xmenu.o
4526   XOBJ="xterm.o xfns.o xselect.o xrdb.o xsmfns.o xsettings.o"
4527   FONT_OBJ=xfont.o
4528   if test "$HAVE_XFT" = "yes"; then
4529     FONT_OBJ="$FONT_OBJ ftfont.o xftfont.o ftxfont.o"
4530   elif test "$HAVE_FREETYPE" = "yes"; then
4531     FONT_OBJ="$FONT_OBJ ftfont.o ftxfont.o"
4532   fi
4533   AC_SUBST(FONT_OBJ)
4535 AC_SUBST(XMENU_OBJ)
4536 AC_SUBST(XOBJ)
4537 AC_SUBST(FONT_OBJ)
4539 WIDGET_OBJ=
4540 MOTIF_LIBW=
4541 if test "${USE_X_TOOLKIT}" != "none" ; then
4542   WIDGET_OBJ=widget.o
4543   AC_DEFINE(USE_X_TOOLKIT, 1, [Define to 1 if using an X toolkit.])
4544   if test "${USE_X_TOOLKIT}" = "LUCID"; then
4545     AC_DEFINE(USE_LUCID, 1, [Define to 1 if using the Lucid X toolkit.])
4546   elif test "${USE_X_TOOLKIT}" = "MOTIF"; then
4547     AC_DEFINE(USE_MOTIF, 1, [Define to 1 if using the Motif X toolkit.])
4548     MOTIF_LIBW=-lXm
4549     case "$opsys" in
4550       gnu-linux)
4551         ## Paul Abrahams <abrahams at equinox.shaysnet.com> says this is needed.
4552         MOTIF_LIBW="$MOTIF_LIBW -lXpm"
4553         ;;
4555       unixware)
4556         ## Richard Anthony Ryan <ryanr at ellingtn.ftc.nrcs.usda.gov>
4557         ## says -lXimp is needed in UNIX_SV ... 4.2 1.1.2.
4558         MOTIF_LIBW="MOTIF_LIBW -lXimp"
4559         ;;
4561       aix4-2)
4562         ## olson@mcs.anl.gov says -li18n is needed by -lXm.
4563         MOTIF_LIBW="$MOTIF_LIBW -li18n"
4564         ;;
4565     esac
4566     MOTIF_LIBW="$MOTIF_LIBW $LIBXP"
4567   fi
4569 AC_SUBST(WIDGET_OBJ)
4571 TOOLKIT_LIBW=
4572 case "$USE_X_TOOLKIT" in
4573   MOTIF) TOOLKIT_LIBW="$MOTIF_LIBW" ;;
4574   LUCID) TOOLKIT_LIBW="$LUCID_LIBW" ;;
4575   none) test "x$HAVE_GTK" = "xyes" && TOOLKIT_LIBW="$GTK_LIBS" ;;
4576 esac
4577 AC_SUBST(TOOLKIT_LIBW)
4579 if test "${opsys}" != "mingw32"; then
4580   if test "$USE_X_TOOLKIT" = "none"; then
4581     LIBXT_OTHER="\$(LIBXSM)"
4582     OLDXMENU_TARGET="really-oldXMenu"
4583   else
4584     LIBXT_OTHER="\$(LIBXMU) -lXt \$(LIBXTR6) -lXext"
4585     OLDXMENU_TARGET="really-lwlib"
4586   fi
4588 AC_SUBST(LIBXT_OTHER)
4590 ## The X Menu stuff is present in the X10 distribution, but missing
4591 ## from X11.  If we have X10, just use the installed library;
4592 ## otherwise, use our own copy.
4593 if test "${HAVE_X11}" = "yes" ; then
4594   AC_DEFINE(HAVE_X11, 1,
4595             [Define to 1 if you want to use version 11 of X windows.
4596              Otherwise, Emacs expects to use version 10.])
4598   if test "$USE_X_TOOLKIT" = "none"; then
4599     OLDXMENU="\${oldXMenudir}/libXMenu11.a"
4600   else
4601     OLDXMENU="\${lwlibdir}/liblw.a"
4602   fi
4603   LIBXMENU="\$(OLDXMENU)"
4604   LIBX_OTHER="\$(LIBXT) \$(LIBX_EXTRA)"
4605   OLDXMENU_DEPS="\${OLDXMENU} ../src/\${OLDXMENU}"
4606 else
4607   ## For a syntactically valid Makefile; not actually used for anything.
4608   ## See comments in src/Makefile.in.
4609   OLDXMENU=nothing
4610   ## FIXME This case (!HAVE_X11 && HAVE_X_WINDOWS) is no longer possible(?).
4611   if test "${HAVE_X_WINDOWS}" = "yes"; then
4612     LIBXMENU="-lXMenu"
4613   else
4614     LIBXMENU=
4615   fi
4616   LIBX_OTHER=
4617   OLDXMENU_DEPS=
4620 if test "$HAVE_GTK" = "yes" || test "$HAVE_MENUS" != "yes"; then
4621   OLDXMENU_TARGET=
4622   OLDXMENU=nothing
4623   LIBXMENU=
4624   OLDXMENU_DEPS=
4627 AC_SUBST(OLDXMENU_TARGET)
4628 AC_SUBST(OLDXMENU)
4629 AC_SUBST(LIBXMENU)
4630 AC_SUBST(LIBX_OTHER)
4631 AC_SUBST(OLDXMENU_DEPS)
4633 if test "${HAVE_MENUS}" = "yes" ; then
4634   AC_DEFINE(HAVE_MENUS, 1,
4635             [Define to 1 if you have mouse menus.
4636              (This is automatic if you use X, but the option to specify it remains.)
4637              It is also defined with other window systems that support xmenu.c.])
4640 if test "${GNU_MALLOC}" = "yes" ; then
4641   AC_DEFINE(GNU_MALLOC, 1,
4642             [Define to 1 if you want to use the GNU memory allocator.])
4645 RALLOC_OBJ=
4646 if test "${REL_ALLOC}" = "yes" ; then
4647   AC_DEFINE(REL_ALLOC, 1,
4648             [Define REL_ALLOC if you want to use the relocating allocator for
4649              buffer space.])
4651   test "$system_malloc" != "yes" && RALLOC_OBJ=ralloc.o
4653 AC_SUBST(RALLOC_OBJ)
4655 if test "$opsys" = "cygwin"; then
4656   CYGWIN_OBJ="sheap.o cygw32.o"
4657   ## Cygwin differs because of its unexec().
4658   PRE_ALLOC_OBJ=
4659   POST_ALLOC_OBJ=lastfile.o
4660 elif test "$opsys" = "mingw32"; then
4661   CYGWIN_OBJ=
4662   PRE_ALLOC_OBJ=
4663   POST_ALLOC_OBJ=lastfile.o
4664 else
4665   CYGWIN_OBJ=
4666   PRE_ALLOC_OBJ=lastfile.o
4667   POST_ALLOC_OBJ=
4669 AC_SUBST(CYGWIN_OBJ)
4670 AC_SUBST(PRE_ALLOC_OBJ)
4671 AC_SUBST(POST_ALLOC_OBJ)
4673 # Configure gnulib.  Although this does not affect CFLAGS or LIBS permanently.
4674 # it temporarily reverts them to their pre-pkg-config values,
4675 # because gnulib needs to work with both src (which uses the
4676 # pkg-config stuff) and lib-src (which does not).  For example, gnulib
4677 # may need to determine whether LIB_CLOCK_GETTIME should contain -lrt,
4678 # and it therefore needs to run in an environment where LIBS does not
4679 # already contain -lrt merely because 'pkg-config --libs' printed '-lrt'
4680 # for some package unrelated to lib-src.
4681 SAVE_CFLAGS=$CFLAGS
4682 SAVE_LIBS=$LIBS
4683 CFLAGS=$pre_PKG_CONFIG_CFLAGS
4684 LIBS="$LIB_PTHREAD $pre_PKG_CONFIG_LIBS"
4685 gl_ASSERT_NO_GNULIB_POSIXCHECK
4686 gl_ASSERT_NO_GNULIB_TESTS
4687 gl_INIT
4688 CFLAGS=$SAVE_CFLAGS
4689 LIBS=$SAVE_LIBS
4691 if test "${opsys}" = "mingw32"; then
4692   CPPFLAGS="$CPPFLAGS -DUSE_CRT_DLL=1 -I $srcdir/nt/inc"
4693   # Remove unneeded switches from the value of CC that goes to Makefiles
4694   CC=`echo $CC | sed -e "s,$GCC_TEST_OPTIONS,,"`
4697 case "$opsys" in
4698   aix4-2) LD_SWITCH_SYSTEM_TEMACS="-Wl,-bnodelcsect" ;;
4700   darwin)
4701    ## The -headerpad option tells ld (see man page) to leave room at the
4702    ## end of the header for adding load commands.  Needed for dumping.
4703    ## 0x690 is the total size of 30 segment load commands (at 56
4704    ## each); under Cocoa 31 commands are required.
4705    if test "$HAVE_NS" = "yes"; then
4706      libs_nsgui="-framework AppKit"
4707      if test "$NS_IMPL_COCOA" = "yes"; then
4708         libs_nsgui="$libs_nsgui -framework IOKit"
4709      fi
4710      headerpad_extra=6C8
4711    else
4712      libs_nsgui=
4713      headerpad_extra=690
4714    fi
4715    LD_SWITCH_SYSTEM_TEMACS="-fno-pie -prebind $libs_nsgui -Xlinker -headerpad -Xlinker $headerpad_extra"
4717    ## This is here because src/Makefile.in did some extra fiddling around
4718    ## with LD_SWITCH_SYSTEM.  It seems cleaner to put this in
4719    ## LD_SWITCH_SYSTEM_TEMACS instead,
4720    test "x$LD_SWITCH_SYSTEM" = "x" && test "x$GCC" != "xyes" && \
4721      LD_SWITCH_SYSTEM_TEMACS="-X $LD_SWITCH_SYSTEM_TEMACS"
4722    ;;
4724   ## LD_SWITCH_X_SITE_RPATH is a -rpath option saying where to
4725   ## find X at run-time.
4726   ## When handled by cpp, this was in LD_SWITCH_SYSTEM.  However, at the
4727   ## point where configure sourced the s/*.h file, LD_SWITCH_X_SITE_RPATH
4728   ## had not yet been defined and was expanded to null.  Hence LD_SWITCH_SYSTEM
4729   ## had different values in configure (in ac_link) and src/Makefile.in.
4730   ## It seems clearer therefore to put this piece in LD_SWITCH_SYSTEM_TEMACS.
4731   gnu*) LD_SWITCH_SYSTEM_TEMACS="\$(LD_SWITCH_X_SITE_RPATH)" ;;
4733   mingw32)
4734    ## MinGW64 does not prepend an underscore to symbols, so we must
4735    ## pass a different -entry switch to linker.  FIXME: It is better
4736    ## to make the entry points the same by changing unexw32.c.
4737    case "$canonical" in
4738      x86_64-*-*) LD_SWITCH_SYSTEM_TEMACS="-Wl,-stack,0x00800000 -Wl,-heap,0x00100000 -Wl,-image-base,0x01000000 -Wl,-entry,_start -Wl,-Map,./temacs.map" ;;
4739      *) LD_SWITCH_SYSTEM_TEMACS="-Wl,-stack,0x00800000 -Wl,-heap,0x00100000 -Wl,-image-base,0x01000000 -Wl,-entry,__start -Wl,-Map,./temacs.map" ;;
4740    esac
4741    ;;
4743   openbsd) LD_SWITCH_SYSTEM_TEMACS='-nopie' ;;
4745   *) LD_SWITCH_SYSTEM_TEMACS= ;;
4746 esac
4748 if test x$ac_enable_profiling != x ; then
4749   case $opsys in
4750     *freebsd | gnu-linux) ;;
4751     *) LD_SWITCH_SYSTEM_TEMACS="$LD_SWITCH_SYSTEM_TEMACS -pg" ;;
4752   esac
4755 LD_SWITCH_SYSTEM_TEMACS="$LDFLAGS_NOCOMBRELOC $LD_SWITCH_SYSTEM_TEMACS"
4757 AC_SUBST(LD_SWITCH_SYSTEM_TEMACS)
4759 ## MinGW-specific post-link processing of temacs.
4760 TEMACS_POST_LINK=":"
4761 ADDSECTION=
4762 EMACS_HEAPSIZE=
4763 if test "${opsys}" = "mingw32"; then
4764   TEMACS_POST_LINK="\$(MINGW_TEMACS_POST_LINK)"
4765   ADDSECTION="../nt/addsection\$(EXEEXT)"
4766   ## Preload heap size of temacs.exe in MB.
4767   case "$canonical" in
4768     x86_64-*-*) EMACS_HEAPSIZE=42 ;;
4769     *) EMACS_HEAPSIZE=27 ;;
4770   esac
4773 AC_SUBST(ADDSECTION)
4774 AC_SUBST(TEMACS_POST_LINK)
4775 AC_SUBST(EMACS_HEAPSIZE)
4777 ## Common for all window systems
4778 if test "$window_system" != "none"; then
4779   AC_DEFINE(HAVE_WINDOW_SYSTEM, 1, [Define if you have a window system.])
4780   WINDOW_SYSTEM_OBJ="fontset.o fringe.o image.o"
4783 AC_SUBST(WINDOW_SYSTEM_OBJ)
4785 AH_TOP([/* GNU Emacs site configuration template file.
4787 Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2013
4788   Free Software Foundation, Inc.
4790 This file is part of GNU Emacs.
4792 GNU Emacs is free software: you can redistribute it and/or modify
4793 it under the terms of the GNU General Public License as published by
4794 the Free Software Foundation, either version 3 of the License, or
4795 (at your option) any later version.
4797 GNU Emacs is distributed in the hope that it will be useful,
4798 but WITHOUT ANY WARRANTY; without even the implied warranty of
4799 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
4800 GNU General Public License for more details.
4802 You should have received a copy of the GNU General Public License
4803 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
4806 /* No code in Emacs #includes config.h twice, but some bits of code
4807    intended to work with other packages as well (like gmalloc.c)
4808    think they can include it as many times as they like.  */
4809 #ifndef EMACS_CONFIG_H
4810 #define EMACS_CONFIG_H
4811 ])dnl
4813 AH_BOTTOM([#include <conf_post.h>
4815 #endif /* EMACS_CONFIG_H */
4818 Local Variables:
4819 mode: c
4820 End:
4822 ])dnl
4824 #### Report on what we decided to do.
4825 #### Report GTK as a toolkit, even if it doesn't use Xt.
4826 #### It makes printing result more understandable as using GTK sets
4827 #### toolkit_scroll_bars to yes by default.
4828 if test "${HAVE_GTK}" = "yes"; then
4829   USE_X_TOOLKIT="$USE_GTK_TOOLKIT"
4832 if test $USE_ACL -ne 0; then
4833   acl_summary="yes $LIB_ACL"
4834 else
4835   acl_summary=no
4838 echo "
4839 Configured for \`${canonical}'.
4841   Where should the build process find the source code?    ${srcdir}
4842   What compiler should emacs be built with?               ${CC} ${CFLAGS}
4843   Should Emacs use the GNU version of malloc?             ${GNU_MALLOC}${GNU_MALLOC_reason}
4844   Should Emacs use a relocating allocator for buffers?    ${REL_ALLOC}
4845   Should Emacs use mmap(2) for buffer allocation?         $use_mmap_for_buffers
4846   What window system should Emacs use?                    ${window_system}
4847   What toolkit should Emacs use?                          ${USE_X_TOOLKIT}"
4849 if test -n "${x_includes}"; then
4850 echo "  Where do we find X Windows header files?                ${x_includes}"
4851 else
4852 echo "  Where do we find X Windows header files?                Standard dirs"
4854 if test -n "${x_libraries}"; then
4855 echo "  Where do we find X Windows libraries?                   ${x_libraries}"
4856 else
4857 echo "  Where do we find X Windows libraries?                   Standard dirs"
4860 echo "  Does Emacs use -lXaw3d?                                 ${HAVE_XAW3D}"
4861 echo "  Does Emacs use -lXpm?                                   ${HAVE_XPM}"
4862 echo "  Does Emacs use -ljpeg?                                  ${HAVE_JPEG}"
4863 echo "  Does Emacs use -ltiff?                                  ${HAVE_TIFF}"
4864 echo "  Does Emacs use a gif library?                           ${HAVE_GIF} $LIBGIF"
4865 echo "  Does Emacs use -lpng?                                   ${HAVE_PNG}"
4866 echo "  Does Emacs use -lrsvg-2?                                ${HAVE_RSVG}"
4867 echo "  Does Emacs use imagemagick?                             ${HAVE_IMAGEMAGICK}"
4869 echo "  Does Emacs support sound?                               ${HAVE_SOUND}"
4871 echo "  Does Emacs use -lgpm?                                   ${HAVE_GPM}"
4872 echo "  Does Emacs use -ldbus?                                  ${HAVE_DBUS}"
4873 echo "  Does Emacs use -lgconf?                                 ${HAVE_GCONF}"
4874 echo "  Does Emacs use GSettings?                               ${HAVE_GSETTINGS}"
4875 echo "  Does Emacs use a file notification library?             ${NOTIFY_SUMMARY}"
4876 echo "  Does Emacs use access control lists?                    ${acl_summary}"
4877 echo "  Does Emacs use -lselinux?                               ${HAVE_LIBSELINUX}"
4878 echo "  Does Emacs use -lgnutls?                                ${HAVE_GNUTLS}"
4879 echo "  Does Emacs use -lxml2?                                  ${HAVE_LIBXML2}"
4881 echo "  Does Emacs use -lfreetype?                              ${HAVE_FREETYPE}"
4882 echo "  Does Emacs use -lm17n-flt?                              ${HAVE_M17N_FLT}"
4883 echo "  Does Emacs use -lotf?                                   ${HAVE_LIBOTF}"
4884 echo "  Does Emacs use -lxft?                                   ${HAVE_XFT}"
4885 echo "  Does Emacs directly use zlib?                           ${HAVE_ZLIB}"
4887 echo "  Does Emacs use toolkit scroll bars?                     ${USE_TOOLKIT_SCROLL_BARS}"
4888 echo
4890 if test -n "${EMACSDATA}"; then
4891    echo "  Environment variable EMACSDATA set to:                  $EMACSDATA"
4893 if test -n "${EMACSDOC}"; then
4894    echo "  Environment variable EMACSDOC set to:                   $EMACSDOC"
4897 echo
4899 if test "$HAVE_NS" = "yes"; then
4900    echo
4901    echo "You must run \"${MAKE-make} install\" in order to test the built application.
4902 The installed application will go to nextstep/Emacs.app and can be
4903 run or moved from there."
4904    if test "$EN_NS_SELF_CONTAINED" = "yes"; then
4905       echo "The application will be fully self-contained."
4906     else
4907       echo "The lisp resources for the application will be installed under ${prefix}.
4908 You may need to run \"${MAKE-make} install\" with sudo.  The application will fail
4909 to run if these resources are not installed."
4910    fi
4911    echo
4914 if test "${opsys}" = "cygwin"; then
4915   case `uname -r` in
4916     1.5.*) AC_MSG_WARN([[building Emacs on Cygwin 1.5 is not supported.]])
4917            echo
4918            ;;
4919   esac
4922 # Remove any trailing slashes in these variables.
4923 [test "${prefix}" != NONE &&
4924   prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
4925 test "${exec_prefix}" != NONE &&
4926   exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`]
4928 if test "$HAVE_NS" = "yes"; then
4929   if test "$NS_IMPL_GNUSTEP" = yes; then
4930     AC_CONFIG_FILES([nextstep/GNUstep/Emacs.base/Resources/Info-gnustep.plist:nextstep/templates/Info-gnustep.plist.in \
4931       nextstep/GNUstep/Emacs.base/Resources/Emacs.desktop:nextstep/templates/Emacs.desktop.in])
4932     ns_check_file=Resources/Info-gnustep.plist
4933   else
4934     AC_CONFIG_FILES([nextstep/Cocoa/Emacs.base/Contents/Info.plist:nextstep/templates/Info.plist.in \
4935       nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj/InfoPlist.strings:nextstep/templates/InfoPlist.strings.in])
4936     ns_check_file=Contents/Info.plist
4937   fi
4938   AC_SUBST(ns_check_file)
4941 dnl Obviously there is duplication here wrt $SUBDIR_MAKEFILES.
4942 dnl You _can_ use that variable in AC_CONFIG_FILES, so long as any directory
4943 dnl using automake (ie lib/) is explicitly listed and not "hidden" in a variable
4944 dnl (else you get "no `Makefile.am' found for any configure output").
4945 dnl This will work, but you get a config.status that is not quite right
4946 dnl (see http://lists.gnu.org/archive/html/bug-autoconf/2008-08/msg00028.html).
4947 dnl That doesn't have any obvious consequences for Emacs, but on the whole
4948 dnl it seems better to just live with the duplication.
4949 SUBDIR_MAKEFILES="lib/Makefile lib-src/Makefile oldXMenu/Makefile doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile doc/lispref/Makefile src/Makefile lwlib/Makefile lisp/Makefile leim/Makefile nextstep/Makefile nt/Makefile"
4951 AC_CONFIG_FILES([Makefile lib/Makefile lib-src/Makefile oldXMenu/Makefile \
4952        doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \
4953        doc/lispref/Makefile src/Makefile lwlib/Makefile lisp/Makefile \
4954        leim/Makefile nextstep/Makefile nt/Makefile])
4956 dnl test/ is not present in release tarfiles.
4957 opt_makefile=test/automated/Makefile
4959 if test -f "$srcdir/$opt_makefile.in"; then
4960   SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES $opt_makefile"
4961   dnl Again, it's best not to use a variable.  Though you can add
4962   dnl ", [], [opt_makefile='$opt_makefile']" and it should work.
4963   AC_CONFIG_FILES([test/automated/Makefile])
4967 dnl admin/ may or may not be present.
4968 opt_makefile=admin/unidata/Makefile
4970 if test -f "$srcdir/$opt_makefile.in"; then
4971   SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES $opt_makefile"
4972   AC_CONFIG_FILES([admin/unidata/Makefile])
4976 SUBDIR_MAKEFILES_IN=`echo " ${SUBDIR_MAKEFILES}" | sed -e 's| | $(srcdir)/|g' -e 's|Makefile|Makefile.in|g'`
4978 AC_SUBST(SUBDIR_MAKEFILES_IN)
4980 dnl You might wonder (I did) why epaths.h is generated by running make,
4981 dnl rather than just letting configure generate it from epaths.in.
4982 dnl One reason is that the various paths are not fully expanded (see above);
4983 dnl eg gamedir=${prefix}/var/games/emacs.
4984 dnl Secondly, the GNU Coding standards require that one should be able
4985 dnl to run `make prefix=/some/where/else' and override the values set
4986 dnl by configure.  This also explains the `move-if-change' test and
4987 dnl the use of force in the `epaths-force' rule in Makefile.in.
4988 AC_CONFIG_COMMANDS([src/epaths.h], [
4989 if test "${opsys}" = "mingw32"; then
4990   ${MAKE-make} MAKEFILE_NAME=do-not-make-Makefile epaths-force-w32
4991 else
4992   ${MAKE-make} MAKEFILE_NAME=do-not-make-Makefile epaths-force
4994 ], [GCC="$GCC" CPPFLAGS="$CPPFLAGS" opsys="$opsys"])
4996 AC_CONFIG_COMMANDS([src/.gdbinit], [
4997 if test ! -f src/.gdbinit && test -f "$srcdir/src/.gdbinit"; then
4998   echo "source $srcdir/src/.gdbinit" > src/.gdbinit
5002 AC_OUTPUT