Implement bidi-sensitive word movement with arrow keys.
[emacs.git] / configure.in
blob5ceb2c3bd488b01ecbffaf5f1d0212fb0fee6d03
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, 1995, 1996, 1999, 2000, 2001, 2002, 2003, 2004,
8 dnl    2005, 2006, 2007, 2008, 2009, 2010
9 dnl    Free Software Foundation, Inc.
10 dnl
11 dnl  This file is part of GNU Emacs.
12 dnl
13 dnl  GNU Emacs is free software: you can redistribute it and/or modify
14 dnl  it under the terms of the GNU General Public License as published by
15 dnl  the Free Software Foundation, either version 3 of the License, or
16 dnl  (at your option) any later version.
17 dnl
18 dnl  GNU Emacs is distributed in the hope that it will be useful,
19 dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
20 dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21 dnl  GNU General Public License for more details.
22 dnl
23 dnl  You should have received a copy of the GNU General Public License
24 dnl  along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
26 AC_PREREQ(2.62)
27 AC_INIT(emacs, 24.0.50)
28 AC_CONFIG_HEADER(src/config.h:src/config.in)
29 AC_CONFIG_SRCDIR(src/lisp.h)
31 dnl Support for --program-prefix, --program-suffix and
32 dnl --program-transform-name options
33 AC_ARG_PROGRAM
35 lispdir='${datadir}/emacs/${version}/lisp'
36 locallisppath='${datadir}/emacs/${version}/site-lisp:'\
37 '${datadir}/emacs/site-lisp'
38 lisppath='${locallisppath}:${lispdir}:${datadir}/emacs/${version}/leim'
39 etcdir='${datadir}/emacs/${version}/etc'
40 archlibdir='${libexecdir}/emacs/${version}/${configuration}'
41 docdir='${datadir}/emacs/${version}/etc'
42 gamedir='${localstatedir}/games/emacs'
44 gameuser=games
46 dnl OPTION_DEFAULT_OFF(NAME, HELP-STRING)
47 dnl Create a new --with option that defaults to being disabled.
48 dnl NAME is the base name of the option.  The shell variable with_NAME
49 dnl   will be set to either the user's value (if the option is
50 dnl   specified; 'yes' for a plain --with-NAME) or to 'no' (if the
51 dnl   option is not specified).  Note that the shell variable name is
52 dnl   constructed as autoconf does, by replacing non-alphanumeric
53 dnl   characters with "_".
54 dnl HELP-STRING is the help text for the option.
55 AC_DEFUN([OPTION_DEFAULT_OFF], [dnl
56   AC_ARG_WITH([$1],[AS_HELP_STRING([--with-$1],[$2])],[],[dnl
57     m4_bpatsubst([with_$1], [[^0-9a-z]], [_])=no])dnl
58 ])dnl
60 dnl OPTION_DEFAULT_ON(NAME, HELP-STRING)
61 dnl Create a new --with option that defaults to being enabled.  NAME
62 dnl   is the base name of the option.  The shell variable with_NAME
63 dnl   will be set either to 'no' (for a plain --without-NAME) or to
64 dnl   'yes' (if the option is not specified).  Note that the shell
65 dnl   variable name is constructed as autoconf does, by replacing
66 dnl   non-alphanumeric characters with "_".
67 dnl HELP-STRING is the help text for the option.
68 AC_DEFUN([OPTION_DEFAULT_ON], [dnl
69   AC_ARG_WITH([$1],[AS_HELP_STRING([--without-$1],[$2])],[],[dnl
70    m4_bpatsubst([with_$1], [[^0-9a-z]], [_])=yes])dnl
71 ])dnl
73 OPTION_DEFAULT_ON([pop],[don't support POP mail retrieval with movemail])
74 if test "$with_pop" = yes; then
75    AC_DEFINE(MAIL_USE_POP)
77 AH_TEMPLATE(MAIL_USE_POP, [Define to support POP mail retrieval.])dnl
79 OPTION_DEFAULT_OFF([kerberos],[support Kerberos-authenticated POP])
80 if test "$with_kerberos" != no; then
81    AC_DEFINE(KERBEROS)
83 AH_TEMPLATE(KERBEROS,
84             [Define to support Kerberos-authenticated POP mail retrieval.])dnl
86 OPTION_DEFAULT_OFF([kerberos5],[support Kerberos version 5 authenticated POP])
87 if test "${with_kerberos5}" != no; then
88   if test "${with_kerberos}" = no; then
89     with_kerberos=yes
90     AC_DEFINE(KERBEROS)
91   fi
92   AC_DEFINE(KERBEROS5, 1, [Define to use Kerberos 5 instead of Kerberos 4.])
95 OPTION_DEFAULT_OFF([hesiod],[support Hesiod to get the POP server host])
96 dnl FIXME hesiod support may not be present, so it seems like an error
97 dnl to define, or at least use, this unconditionally.
98 if test "$with_hesiod" != no; then
99   AC_DEFINE(HESIOD, 1, [Define to support using a Hesiod database to find the POP server.])
102 OPTION_DEFAULT_OFF([mmdf],[support MMDF mailboxes])
103 if test "$with_mmdf" != no; then
104    AC_DEFINE(MAIL_USE_MMDF, 1, [Define to support MMDF mailboxes in movemail.])
107 OPTION_DEFAULT_OFF([mail-unlink],[unlink, rather than empty, mail spool after reading])
108 if test "$with_mail_unlink" != no; then
109    AC_DEFINE(MAIL_UNLINK_SPOOL, 1, [Define to unlink, rather than empty, mail spool after reading.])
112 AC_ARG_WITH([mailhost],[AS_HELP_STRING([--with-mailhost=HOSTNAME],
113     [string giving default POP mail host])],
114     AC_DEFINE_UNQUOTED(MAILHOST, ["$withval"], [String giving fallback POP mail host.]))
116 OPTION_DEFAULT_ON([sound],[don't compile with sound support])
118 OPTION_DEFAULT_ON([sync-input],[process async input synchronously])
119 if test "$with_sync_input" = yes; then
120    AC_DEFINE(SYNC_INPUT, 1, [Process async input synchronously.])
123 dnl FIXME currently it is not the last.
124 dnl This should be the last --with option, because --with-x is
125 dnl added later on when we find the path of X, and it's best to
126 dnl keep them together visually.
127 AC_ARG_WITH([x-toolkit],[AS_HELP_STRING([--with-x-toolkit=KIT],
128  [use an X toolkit (KIT one of: yes or gtk, lucid or athena, motif, no)])],
129 [         case "${withval}" in
130             y | ye | yes )      val=gtk ;;
131             n | no )            val=no  ;;
132             l | lu | luc | luci | lucid )       val=lucid ;;
133             a | at | ath | athe | athen | athena )      val=athena ;;
134             m | mo | mot | moti | motif )       val=motif ;;
135             g | gt | gtk  )     val=gtk ;;
136             * )
137 AC_MSG_ERROR([`--with-x-toolkit=$withval' is invalid;
138 this option's value should be `yes', `no', `lucid', `athena', `motif' or `gtk'.
139 `yes' and `gtk' are synonyms. `athena' and `lucid' are synonyms.])
140             ;;
141           esac
142           with_x_toolkit=$val
145 dnl _ON results in a '--without' option in the --help output, so
146 dnl the help text should refer to "don't compile", etc.
147 OPTION_DEFAULT_ON([xpm],[don't compile with XPM image support])
148 OPTION_DEFAULT_ON([jpeg],[don't compile with JPEG image support])
149 OPTION_DEFAULT_ON([tiff],[don't compile with TIFF image support])
150 OPTION_DEFAULT_ON([gif],[don't compile with GIF image support])
151 OPTION_DEFAULT_ON([png],[don't compile with PNG image support])
152 OPTION_DEFAULT_ON([rsvg],[don't compile with SVG image support])
154 OPTION_DEFAULT_ON([xft],[don't use XFT for anti aliased fonts])
155 OPTION_DEFAULT_ON([libotf],[don't use libotf for OpenType font support])
156 OPTION_DEFAULT_ON([m17n-flt],[don't use m17n-flt for text shaping])
158 OPTION_DEFAULT_ON([toolkit-scroll-bars],[don't use Motif or Xaw3d scroll bars])
159 OPTION_DEFAULT_ON([xaw3d],[don't use Xaw3d])
160 OPTION_DEFAULT_ON([xim],[don't use X11 XIM])
161 OPTION_DEFAULT_OFF([ns],[use nextstep (Cocoa or GNUstep) windowing system])
163 OPTION_DEFAULT_ON([gpm],[don't use -lgpm for mouse support on a GNU/Linux console])
164 OPTION_DEFAULT_ON([dbus],[don't compile with D-Bus support])
165 OPTION_DEFAULT_ON([gconf],[don't compile with GConf support])
166 OPTION_DEFAULT_ON([selinux],[don't compile with SELinux support])
168 ## For the times when you want to build Emacs but don't have
169 ## a suitable makeinfo, and can live without the manuals.
170 dnl http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01844.html
171 OPTION_DEFAULT_ON([makeinfo],[don't require makeinfo for building manuals])
173 AC_ARG_WITH([pkg-config-prog],dnl
174 [AS_HELP_STRING([--with-pkg-config-prog=PATH],
175                   [path to pkg-config for finding GTK and librsvg])])
176 if test "X${with_pkg_config_prog}" != X; then
177    if test "${with_pkg_config_prog}" != yes; then
178       PKG_CONFIG="${with_pkg_config_prog}"
179    fi
182 CRT_DIR=
183 AC_ARG_WITH([crt-dir],dnl
184 [AS_HELP_STRING([--with-crt-dir=DIR],[directory containing crtn.o etc.
185 The default is /usr/lib, or /usr/lib64 on some platforms.])])
186 CRT_DIR="${with_crt_dir}"
188 AC_ARG_WITH([gnustep-conf],dnl
189 [AS_HELP_STRING([--with-gnustep-conf=PATH],[path to GNUstep.conf; default $GNUSTEP_CONFIG_FILE, or /etc/GNUstep/GNUstep.conf])])
190 test "X${with_gnustep_conf}" != X && test "${with_gnustep_conf}" != yes && \
191   GNUSTEP_CONFIG_FILE="${with_gnustep_conf}"
192 test "X$GNUSTEP_CONFIG_FILE" = "X" && \
193      GNUSTEP_CONFIG_FILE=/etc/GNUstep/GNUstep.conf
195 AC_ARG_ENABLE(ns-self-contained,
196 [AS_HELP_STRING([--disable-ns-self-contained],
197                 [disable self contained build under NeXTstep])],
198    EN_NS_SELF_CONTAINED=$enableval,
199    EN_NS_SELF_CONTAINED=yes)
201 AC_ARG_ENABLE(asserts,
202 [AS_HELP_STRING([--enable-asserts], [compile code with asserts enabled])],
203       USE_XASSERTS=$enableval,
204       USE_XASSERTS=no)
206 AC_ARG_ENABLE(maintainer-mode,
207 [AS_HELP_STRING([--enable-maintainer-mode],
208                 [enable make rules and dependencies not useful (and sometimes
209                  confusing) to the casual installer])],
210       USE_MAINTAINER_MODE=$enableval,
211       USE_MAINTAINER_MODE=no)
212 if test $USE_MAINTAINER_MODE = yes; then
213   MAINT=
214 else
215   MAINT=#
217 AC_SUBST(MAINT)
219 AC_ARG_ENABLE(locallisppath,
220 [AS_HELP_STRING([--enable-locallisppath=PATH],
221                 [directories Emacs should search for lisp files specific
222                  to this site])],
223 if test "${enableval}" = "no"; then
224   locallisppath=
225 elif test "${enableval}" != "yes"; then
226   locallisppath=${enableval}
229 AC_ARG_ENABLE(checking,
230 [AS_HELP_STRING([--enable-checking@<:@=LIST@:>@],
231                 [enable expensive run-time checks.  With LIST,
232                  enable only specific categories of checks.
233                  Categories are: all,yes,no.
234                  Flags are: stringbytes, stringoverrun, stringfreelist,
235                  xmallocoverrun, conslist])],
236 [ac_checking_flags="${enableval}"],[])
237 IFS="${IFS=     }"; ac_save_IFS="$IFS"; IFS="$IFS,"
238 for check in $ac_checking_flags
240         case $check in
241         # these set all the flags to specific states
242         yes)            ac_enable_checking=1 ;;
243         no)             ac_enable_checking= ;
244                         ac_gc_check_stringbytes= ;
245                         ac_gc_check_string_overrun= ;
246                         ac_gc_check_string_free_list= ;
247                         ac_xmalloc_overrun= ;
248                         ac_gc_check_cons_list= ;;
249         all)            ac_enable_checking=1 ;
250                         ac_gc_check_stringbytes=1 ;
251                         ac_gc_check_string_overrun=1 ;
252                         ac_gc_check_string_free_list=1 ;
253                         ac_xmalloc_overrun=1 ;
254                         ac_gc_check_cons_list=1 ;;
255         # these enable particular checks
256         stringbytes)    ac_gc_check_stringbytes=1 ;;
257         stringoverrun)  ac_gc_check_string_overrun=1 ;;
258         stringfreelist) ac_gc_check_string_free_list=1 ;;
259         xmallocoverrun) ac_xmalloc_overrun=1 ;;
260         conslist)       ac_gc_check_cons_list=1 ;;
261         *)      AC_MSG_ERROR(unknown check category $check) ;;
262         esac
263 done
264 IFS="$ac_save_IFS"
266 if test x$ac_enable_checking != x ; then
267   AC_DEFINE(ENABLE_CHECKING, 1,
268 [Enable expensive run-time checking of data types?])
270 if test x$ac_gc_check_stringbytes != x ; then
271   AC_DEFINE(GC_CHECK_STRING_BYTES, 1,
272 [Define this temporarily to hunt a bug.  If defined, the size of
273    strings is redundantly recorded in sdata structures so that it can
274    be compared to the sizes recorded in Lisp strings.])
276 if test x$ac_gc_check_stringoverrun != x ; then
277   AC_DEFINE(GC_CHECK_STRING_OVERRUN, 1,
278 [Define this to check for short string overrun.])
280 if test x$ac_gc_check_string_free_list != x ; then
281   AC_DEFINE(GC_CHECK_STRING_FREE_LIST, 1,
282 [Define this to check the string free list.])
284 if test x$ac_xmalloc_overrun != x ; then
285   AC_DEFINE(XMALLOC_OVERRUN_CHECK, 1,
286 [Define this to check for malloc buffer overrun.])
288 if test x$ac_gc_check_cons_list != x ; then
289   AC_DEFINE(GC_CHECK_CONS_LIST, 1,
290 [Define this to check for errors in cons list.])
293 AC_ARG_ENABLE(profiling,
294 [AS_HELP_STRING([--enable-profiling],
295                 [build emacs with profiling support.
296                  This might not work on all platforms])],
297 [ac_enable_profiling="${enableval}"],[])
298 if test x$ac_enable_profiling != x ; then
299    PROFILING_CFLAGS="-DPROFILING=1 -pg"
300    PROFILING_LDFLAGS="-pg"
301 else
302    PROFILING_CFLAGS=
303    PROFILING_LDFLAGS=
306 AC_ARG_ENABLE(autodepend,
307 [AS_HELP_STRING([--enable-autodepend],
308                 [automatically generate dependencies to .h-files.
309                  Requires GNU Make and Gcc. Enabled if GNU Make and Gcc is
310                  found])],
311 [ac_enable_autodepend="${enableval}"],[ac_enable_autodepend=yes])
313 #### Make srcdir absolute, if it isn't already.  It's important to
314 #### avoid running the path through pwd unnecessarily, since pwd can
315 #### give you automounter prefixes, which can go away.  We do all this
316 #### so Emacs can find its files when run uninstalled.
317 ## Make sure CDPATH doesn't affect cd (in case PWD is relative).
318 unset CDPATH
319 case "${srcdir}" in
320   /* ) ;;
321   . )
322     ## We may be able to use the $PWD environment variable to make this
323     ## absolute.  But sometimes PWD is inaccurate.
324     ## Note: we used to use ${PWD} at the end instead of `pwd`,
325     ## but that tested only for a well-formed and valid PWD,
326     ## it did not object when PWD was well-formed and valid but just wrong.
327     if test ".${PWD}" != "." && test ".`(cd ${PWD} ; sh -c pwd)`" = ".`pwd`"  ;
328     then
329       srcdir="$PWD"
330     else
331       srcdir="`(cd ${srcdir}; pwd)`"
332     fi
333   ;;
334   *  ) srcdir="`(cd ${srcdir}; pwd)`" ;;
335 esac
337 #### Check if the source directory already has a configured system in it.
338 if test `pwd` != `(cd ${srcdir} && pwd)` \
339    && test -f "${srcdir}/src/config.h" ; then
340   AC_MSG_WARN([[The directory tree `${srcdir}' is being used
341    as a build directory right now; it has been configured in its own
342    right.  To configure in another directory as well, you MUST
343    use GNU make.  If you do not have GNU make, then you must
344    now do `make distclean' in ${srcdir},
345    and then run $0 again.]])
348 #### Given the configuration name, set machfile and opsysfile to the
349 #### names of the m/*.h and s/*.h files we should use.
351 ### Canonicalize the configuration name.
353 AC_CANONICAL_HOST
354 canonical=$host
355 configuration=${host_alias-${build_alias-$host}}
357 dnl This used to use changequote, but, apart from `changequote is evil'
358 dnl per the autoconf manual, we can speed up autoconf somewhat by quoting
359 dnl the great gob of text.  Thus it's not processed for possible expansion.
360 dnl Just make sure the brackets remain balanced.
362 dnl Since Emacs can't find matching pairs of quotes, boundaries are
363 dnl indicated by comments.
364 dnl quotation begins
367 ### If you add support for a new configuration, add code to this
368 ### switch statement to recognize your configuration name and select
369 ### the appropriate operating system and machine description files.
371 ### You would hope that you could choose an m/*.h file pretty much
372 ### based on the machine portion of the configuration name, and an s/*.h
373 ### file based on the operating system portion.  However, it turns out
374 ### that each m/*.h file is pretty manufacturer-specific - for
375 ### example mips.h is MIPS
376 ### So we basically have to have a special case for each
377 ### configuration name.
379 ### As far as handling version numbers on operating systems is
380 ### concerned, make sure things will fail in a fixable way.  If
381 ### /etc/MACHINES doesn't say anything about version numbers, be
382 ### prepared to handle anything reasonably.  If version numbers
383 ### matter, be sure /etc/MACHINES says something about it.
385 machine='' opsys='' unported=no
386 case "${canonical}" in
388   ## FreeBSD ports
389   *-*-freebsd* )
390     opsys=freebsd
391     case "${canonical}" in
392       alpha*)           machine=alpha ;;
393       amd64-*|x86_64-*) machine=amdx86-64 ;;
394       arm*)             machine=arm ;;
395       ia64-*)           machine=ia64 ;;
396       i[3456]86-*)      machine=intel386 ;;
397       powerpc-*)        machine=macppc ;;
398       sparc-*)          machine=sparc ;;
399       sparc64-*)        machine=sparc ;;
400     esac
401   ;;
403   ## FreeBSD kernel + glibc based userland
404   *-*-kfreebsd*gnu* )
405     opsys=gnu-kfreebsd
406     case "${canonical}" in
407       alpha*)           machine=alpha ;;
408       amd64-*|x86_64-*) machine=amdx86-64 ;;
409       ia64-*)           machine=ia64 ;;
410       i[3456]86-*)      machine=intel386 ;;
411       powerpc-*)        machine=macppc ;;
412       sparc-*)          machine=sparc ;;
413       sparc64-*)        machine=sparc ;;
414     esac
415   ;;
417   ## NetBSD ports
418   *-*-netbsd* )
419     opsys=netbsd
420     case "${canonical}" in
421       alpha*)      machine=alpha ;;
422       x86_64-*)    machine=amdx86-64 ;;
423       arm-*)       machine=arm ;;
424       hppa-*)      machine=hp800 ;;
425       i[3456]86-*) machine=intel386 ;;
426       m68k-*)      machine=m68k ;;
427       powerpc-*)   machine=macppc ;;
428       mips-*)      machine=mips ;;
429       mipse[bl]-*) machine=mips ;;
430       sparc*-)     machine=sparc ;;
431       vax-*)       machine=vax ;;
432     esac
433   ;;
435   ## OpenBSD ports
436   *-*-openbsd* )
437     opsys=openbsd
438     case "${canonical}" in
439       alpha*)    machine=alpha ;;
440       x86_64-*)  machine=amdx86-64 ;;
441       arm-*)     machine=arm ;;
442       hppa-*)    machine=hp800 ;;
443       i386-*)    machine=intel386 ;;
444       powerpc-*) machine=macppc ;;
445       sparc*)    machine=sparc ;;
446       vax-*)     machine=vax ;;
447     esac
448   ;;
450   alpha*-*-linux-gnu* )
451     machine=alpha opsys=gnu-linux
452   ;;
454   arm*-*-linux-gnu* )
455     machine=arm opsys=gnu-linux
456   ;;
458   ## Apple Darwin / Mac OS X
459   *-apple-darwin* )
460     case "${canonical}" in
461       i[3456]86-* )  machine=intel386 ;;
462       powerpc-* )    machine=macppc ;;
463       x86_64-* )     machine=amdx86-64 ;;
464       * )            unported=yes ;;
465     esac
466     opsys=darwin
467     # Define CPP as follows to make autoconf work correctly.
468     CPP="${CC-cc} -E -no-cpp-precomp"
469     # Use fink packages if available.
470     if test -d /sw/include && test -d /sw/lib; then
471       GCC_TEST_OPTIONS="-I/sw/include -L/sw/lib"
472       CPP="${CPP} ${GCC_TEST_OPTIONS}"
473       NON_GCC_TEST_OPTIONS=${GCC_TEST_OPTIONS}
474     fi
475   ;;
477   ## HP 9000 series 700 and 800, running HP/UX
478   hppa*-hp-hpux10.2* )
479     machine=hp800 opsys=hpux10-20
480   ;;
481   hppa*-hp-hpux1[1-9]* )
482     machine=hp800 opsys=hpux11
483     CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS"
484   ;;
486   hppa*-*-linux-gnu* )
487     machine=hp800 opsys=gnu-linux
488   ;;
490   ## IBM machines
491   s390-*-linux-gnu* )
492     machine=ibms390 opsys=gnu-linux
493   ;;
494   s390x-*-linux-gnu* )
495     machine=ibms390x opsys=gnu-linux
496   ;;
497   rs6000-ibm-aix4.[23]* )
498     machine=ibmrs6000 opsys=aix4-2
499   ;;
500   powerpc-ibm-aix4.[23]*  )
501     machine=ibmrs6000 opsys=aix4-2
502   ;;
503   rs6000-ibm-aix[56]* )
504     machine=ibmrs6000 opsys=aix4-2
505   ;;
506   powerpc-ibm-aix[56]*  )
507     machine=ibmrs6000 opsys=aix4-2
508   ;;
510   ## Macintosh PowerPC
511   powerpc*-*-linux-gnu* )
512     machine=macppc opsys=gnu-linux
513   ;;
515   ## Silicon Graphics machines
516   ## Iris 4D
517   mips-sgi-irix6.5 )
518     machine=iris4d opsys=irix6-5
519     # Without defining _LANGUAGE_C, things get masked out in the headers
520     # so that, for instance, grepping for `free' in stdlib.h fails and
521     # AC_HEADER_STD_C fails.   (MIPSPro 7.2.1.2m compilers, Irix 6.5.3m).
522     NON_GNU_CPP="/lib/cpp -D_LANGUAGE_C"
523     NON_GCC_TEST_OPTIONS="-D_LANGUAGE_C"
524   ;;
526   ## Suns
527   sparc-*-linux-gnu* | sparc64-*-linux-gnu* )
528     machine=sparc opsys=gnu-linux
529   ;;
531   *-sun-solaris* \
532     | i[3456]86-*-solaris2* | i[3456]86-*-sunos5* \
533     | x86_64-*-solaris2*    | x86_64-*-sunos5*)
534     case "${canonical}" in
535       i[3456]86-*-* )     machine=intel386 ;;
536       amd64-*-*|x86_64-*-*)     machine=amdx86-64 ;;
537       sparc* )          machine=sparc ;;
538       * )               unported=yes ;;
539     esac
540     case "${canonical}" in
541       *-sunos5.6* | *-solaris2.6* )
542                 opsys=sol2-6
543                 NON_GNU_CPP=/usr/ccs/lib/cpp
544                 RANLIB="ar -ts"
545                 ;;
546       *-sunos5.[7-9]* | *-solaris2.[7-9]* )
547                 opsys=sol2-6
548                 emacs_check_sunpro_c=yes
549                 NON_GNU_CPP=/usr/ccs/lib/cpp
550                 ;;
551       *-sunos5* | *-solaris* )
552                 opsys=sol2-10
553                 emacs_check_sunpro_c=yes
554                 NON_GNU_CPP=/usr/ccs/lib/cpp
555                 ;;
556     esac
557     ## Watch out for a compiler that we know will not work.
558     case "${canonical}" in
559      *-solaris* | *-sunos5* )
560                 if [ "x$CC" = x/usr/ucb/cc ]; then
561                   ## /usr/ucb/cc doesn't work;
562                   ## we should find some other compiler that does work.
563                   unset CC
564                 fi
565                 ;;
566       *) ;;
567     esac
568   ;;
570   ## IA-64
571   ia64*-*-linux* )
572     machine=ia64 opsys=gnu-linux
573   ;;
575   ## Intel 386 machines where we don't care about the manufacturer.
576   i[3456]86-*-* )
577     machine=intel386
578     case "${canonical}" in
579       *-cygwin )                opsys=cygwin ;;
580       *-darwin* )               opsys=darwin
581                                 CPP="${CC-cc} -E -no-cpp-precomp"
582                                 ;;
583       *-linux-gnu* )            opsys=gnu-linux ;;
584       *-sysv4.2uw* )            opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
585       *-sysv5uw* )              opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
586       *-sysv5OpenUNIX* )        opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
587       ## Otherwise, we'll fall through to the generic opsys code at the bottom.
588     esac
589   ;;
591   ## m68k Linux-based GNU system
592   m68k-*-linux-gnu* )
593     machine=m68k opsys=gnu-linux
594   ;;
596   ## Mips Linux-based GNU system
597   mips-*-linux-gnu* | mipsel-*-linux-gnu* \
598     | mips64-*-linux-gnu* | mips64el-*-linux-gnu* )
599     machine=mips opsys=gnu-linux
600   ;;
602   ## AMD x86-64 Linux-based GNU system
603   x86_64-*-linux-gnu* )
604     machine=amdx86-64 opsys=gnu-linux
605   ;;
607   ## Tensilica Xtensa Linux-based GNU system
608   xtensa*-*-linux-gnu* )
609     machine=xtensa opsys=gnu-linux
610     ;;
612   ## SuperH Linux-based GNU system
613   sh[34]*-*-linux-gnu* )
614     machine=sh3 opsys=gnu-linux
615   ;;
617   * )
618     unported=yes
619   ;;
620 esac
622 ### If the code above didn't choose an operating system, just choose
623 ### an operating system based on the configuration name.  You really
624 ### only want to use this when you have no idea what the right
625 ### operating system is; if you know what operating systems a machine
626 ### runs, it's cleaner to make it explicit in the case statement
627 ### above.
628 if test x"${opsys}" = x; then
629   case "${canonical}" in
630     *-gnu* )                            opsys=gnu ;;
631     * )
632       unported=yes
633     ;;
634   esac
638 dnl quotation ends
640 if test $unported = yes; then
641   AC_MSG_ERROR([Emacs hasn't been ported to `${canonical}' systems.
642 Check `etc/MACHINES' for recognized configuration names.])
645 machfile="m/${machine}.h"
646 opsysfile="s/${opsys}.h"
649 #### Choose a compiler.
650 test -n "$CC" && cc_specified=yes
652 # Save the value of CFLAGS that the user specified.
653 SPECIFIED_CFLAGS="$CFLAGS"
655 dnl Sets GCC=yes if using gcc.
656 AC_PROG_CC
658 # On Suns, sometimes $CPP names a directory.
659 if test -n "$CPP" && test -d "$CPP"; then
660   CPP=
663 ## If not using gcc, and on Solaris, and no CPP specified, see if
664 ## using a Sun compiler, which needs -Xs to prevent whitespace.
665 if test x"$GCC" != xyes && test x"$emacs_check_sunpro_c" = xyes && \
666  test x"$CPP" = x; then
667   AC_MSG_CHECKING([whether we are using a Sun C compiler])
668   AC_CACHE_VAL(emacs_cv_sunpro_c,
669   [AC_TRY_LINK([],
670 [#ifndef __SUNPRO_C
671 fail;
672 #endif
673 ], emacs_cv_sunpro_c=yes, emacs_cv_sunpro_c=no)])
674   AC_MSG_RESULT($emacs_cv_sunpro_c)
676   if test x"$emacs_cv_sunpro_c" = xyes; then
677     NON_GNU_CPP="$CC -E -Xs"
678   fi
681 #### Some systems specify a CPP to use unless we are using GCC.
682 #### Now that we know whether we are using GCC, we can decide whether
683 #### to use that one.
684 if test "x$NON_GNU_CPP" != x && test x$GCC != xyes && test "x$CPP" = x
685 then
686   CPP="$NON_GNU_CPP"
689 #### Some systems specify a CC to use unless we are using GCC.
690 #### Now that we know whether we are using GCC, we can decide whether
691 #### to use that one.
692 if test "x$NON_GNU_CC" != x && test x$GCC != xyes &&
693   test x$cc_specified != xyes
694 then
695   CC="$NON_GNU_CC"
698 if test x$GCC = xyes && test "x$GCC_TEST_OPTIONS" != x
699 then
700   CC="$CC $GCC_TEST_OPTIONS"
703 if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x
704 then
705   CC="$CC $NON_GCC_TEST_OPTIONS"
708 dnl checks for Unix variants
709 AC_USE_SYSTEM_EXTENSIONS
711 ### Use -Wno-pointer-sign if the compiler supports it
712 AC_MSG_CHECKING([whether gcc understands -Wno-pointer-sign])
713 SAVE_CFLAGS="$CFLAGS"
714 CFLAGS="$CFLAGS -Wno-pointer-sign"
715 AC_TRY_COMPILE([], [], has_option=yes, has_option=no,)
716 if test $has_option = yes; then
717    C_WARNINGS_SWITCH="-Wno-pointer-sign $C_WARNINGS_SWITCH"
719 AC_MSG_RESULT($has_option)
720 CFLAGS="$SAVE_CFLAGS"
721 unset has_option
722 unset SAVE_CFLAGS
724 ### Use -Wdeclaration-after-statement if the compiler supports it
725 AC_MSG_CHECKING([whether gcc understands -Wdeclaration-after-statement])
726 SAVE_CFLAGS="$CFLAGS"
727 CFLAGS="$CFLAGS -Wdeclaration-after-statement"
728 AC_TRY_COMPILE([], [], has_option=yes, has_option=no,)
729 if test $has_option = yes; then
730    C_WARNINGS_SWITCH="-Wdeclaration-after-statement $C_WARNINGS_SWITCH"
732 AC_MSG_RESULT($has_option)
733 CFLAGS="$SAVE_CFLAGS"
734 unset has_option
735 unset SAVE_CFLAGS
737 #### Some other nice autoconf tests.
739 dnl checks for programs
740 AC_PROG_CPP
741 AC_PROG_INSTALL
742 if test "x$RANLIB" = x; then
743   AC_PROG_RANLIB
746 ## Although we're running on an amd64 kernel, we're actually compiling for
747 ## the x86 architecture.  The user should probably have provided an
748 ## explicit --build to `configure', but if everything else than the kernel
749 ## is running in i386 mode, we can help them out.
750 if test "$machine" = "amdx86-64"; then
751   AC_CHECK_DECL([i386])
752   if test "$ac_cv_have_decl_i386" = "yes"; then
753     canonical=`echo "$canonical" | sed -e 's/^amd64/i386/' -e 's/^x86_64/i386/'`
754     machine=intel386
755     machfile="m/${machine}.h"
756   fi
759 AC_PATH_PROG(INSTALL_INFO, install-info)
760 AC_PATH_PROG(INSTALL_INFO, install-info,, /usr/sbin)
761 AC_PATH_PROG(INSTALL_INFO, install-info,:, /sbin)
762 dnl Don't use GZIP, which is used by gzip for additional parameters.
763 AC_PATH_PROG(GZIP_PROG, gzip)
766 ## Need makeinfo >= 4.6 (?) to build the manuals.
767 AC_PATH_PROG(MAKEINFO, makeinfo, no)
768 dnl By this stage, configure has already checked for egrep and set EGREP,
769 dnl or exited with an error if no egrep was found.
770 if test "$MAKEINFO" != "no" && \
771   test x"`$MAKEINFO --version 2> /dev/null | $EGREP 'texinfo[[^0-9]]*([[1-4]][[0-9]]+|[[5-9]]|4\.[[6-9]]|4\.[[1-5]][[0-9]]+)'`" = x; then
772    MAKEINFO=no
775 ## Makeinfo is unusual.  For a released Emacs, the manuals are
776 ## pre-built, and not deleted by the normal clean rules.  makeinfo is
777 ## therefore in the category of "special tools" not normally required, which
778 ## configure does not have to check for (eg autoconf itself).
779 ## In a Bazaar checkout on the other hand, the manuals are not included.
780 ## So makeinfo is a requirement to build from Bazaar, and configure
781 ## should test for it as it does for any other build requirement.
782 ## We use the presence of $srcdir/info/emacs to distinguish a release,
783 ## with pre-built manuals, from a Bazaar checkout.
784 if test "$MAKEINFO" = "no"; then
785   if test "x${with_makeinfo}" = "xno"; then
786     MAKEINFO=off
787   elif test ! -e $srcdir/info/emacs; then
788     AC_MSG_ERROR( [You do not seem to have makeinfo >= 4.6, and your
789 source tree does not seem to have pre-built manuals in the `info' directory.
790 Either install a suitable version of makeinfo, or re-run configure
791 with the `--without-makeinfo' option to build without the manuals.] )
792   fi
795 dnl Add our options to ac_link now, after it is set up.
797 if test x$GCC = xyes && test "x$GCC_LINK_TEST_OPTIONS" != x
798 then
799   ac_link="$ac_link $GCC_LINK_TEST_OPTIONS"
802 if test x$GCC = x && test "x$NON_GCC_LINK_TEST_OPTIONS" != x
803 then
804   ac_link="$ac_link $NON_GCC_LINK_TEST_OPTIONS"
807 dnl We need -znocombreloc if we're using a relatively recent GNU ld.
808 dnl If we can link with the flag, it shouldn't do any harm anyhow.
809 dnl (Don't use `-z nocombreloc' as -z takes no arg on Irix.)
810 dnl Treat GCC specially since it just gives a non-fatal `unrecognized option'
811 dnl if not built to support GNU ld.
813 late_LDFLAGS=$LDFLAGS
814 if test "$GCC" = yes; then
815   LDFLAGS="$LDFLAGS -Wl,-znocombreloc"
816 else
817   LDFLAGS="$LDFLAGS -znocombreloc"
820 AC_MSG_CHECKING([for -znocombreloc])
821 AC_LINK_IFELSE([main(){return 0;}],
822   [AC_MSG_RESULT(yes)],
823   LDFLAGS=$late_LDFLAGS
824   [AC_MSG_RESULT(no)])
826 #### Extract some information from the operating system and machine files.
828 AC_CHECKING([the machine- and system-dependent files to find out
829  - which libraries the lib-src programs will want, and
830  - whether the GNU malloc routines are usable])
832 ### First figure out CFLAGS (which we use for running the compiler here)
833 ### and REAL_CFLAGS (which we use for real compilation).
834 ### The two are the same except on a few systems, where they are made
835 ### different to work around various lossages.  For example,
836 ### GCC 2.5 on GNU/Linux needs them to be different because it treats -g
837 ### as implying static linking.
839 ### If the CFLAGS env var is specified, we use that value
840 ### instead of the default.
842 ### It's not important that this name contain the PID; you can't run
843 ### two configures in the same directory and have anything work
844 ### anyway.
845 tempcname="conftest.c"
847 echo '
848 #include "'${srcdir}'/src/'${opsysfile}'"
849 #include "'${srcdir}'/src/'${machfile}'"
851 configure___ LIBX=-lX11
853 configure___ unexec=UNEXEC
855 #ifdef CANNOT_DUMP
856 configure___ cannot_dump=yes
857 #else
858 configure___ cannot_dump=no
859 #endif
861 #ifdef SYSTEM_MALLOC
862 configure___ system_malloc=yes
863 #else
864 configure___ system_malloc=no
865 #endif
867 #ifdef USE_MMAP_FOR_BUFFERS
868 configure___ use_mmap_for_buffers=yes
869 #else
870 configure___ use_mmap_for_buffers=no
871 #endif
873 #ifndef C_OPTIMIZE_SWITCH
874 #ifdef __GNUC__
875 #define C_OPTIMIZE_SWITCH -O2
876 #else
877 #define C_OPTIMIZE_SWITCH -O
878 #endif
879 #endif
881 #ifndef C_WARNINGS_SWITCH
882 #define C_WARNINGS_SWITCH ${C_WARNINGS_SWITCH}
883 #endif
885 #ifdef THIS_IS_CONFIGURE
887 /* Get the CFLAGS for tests in configure.  */
888 #ifdef __GNUC__
889 configure___ CFLAGS=-g C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}'
890 #else
891 configure___ CFLAGS='${SPECIFIED_CFLAGS}'
892 #endif
894 #else /* not THIS_IS_CONFIGURE */
896 /* Get the CFLAGS for real compilation.  */
897 #ifdef __GNUC__
898 configure___ REAL_CFLAGS=-g C_OPTIMIZE_SWITCH C_WARNINGS_SWITCH ${PROFILING_CFLAGS} '${SPECIFIED_CFLAGS}'
899 #else
900 configure___ REAL_CFLAGS='${SPECIFIED_CFLAGS}'
901 #endif
903 #endif /* not THIS_IS_CONFIGURE */
904 ' > ${tempcname}
906 LDFLAGS="${LDFLAGS} ${PROFILING_LDFLAGS}"
908 # The value of CPP is a quoted variable reference, so we need to do this
909 # to get its actual value...
910 CPP=`eval "echo $CPP"`
911 [eval `${CPP} -Isrc ${tempcname} \
912        | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
913 if test "x$SPECIFIED_CFLAGS" = x; then
914   eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \
915          | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
916 else
917   REAL_CFLAGS="$CFLAGS"
919 rm ${tempcname}
922 AC_SUBST(cannot_dump)
925 LD_SWITCH_SYSTEM=
926 case "$opsys" in
927   freebsd)
928    ## Let `ld' find image libs and similar things in /usr/local/lib.
929    ## The system compiler, GCC, has apparently been modified to not
930    ## look there, contrary to what a stock GCC would do.
931    LD_SWITCH_SYSTEM=-L/usr/local/lib
932    ;;
934   gnu-linux)
935    ## cpp test was "ifdef __mips__", but presumably this is equivalent...
936    test "$machine" = "mips" && LD_SWITCH_SYSTEM="-G 0"
937    ;;
939   netbsd)
940    LD_SWITCH_SYSTEM="-Wl,-rpath,/usr/pkg/lib -L/usr/pkg/lib -Wl,-rpath,/usr/local/lib -L/usr/local/lib"
941    ;;
943   openbsd)
944    ## Han Boetes <han@mijncomputer.nl> says this is necessary,
945    ## otherwise Emacs dumps core on elf systems.
946    LD_SWITCH_SYSTEM="-Z"
947    ;;
948 esac
949 AC_SUBST(LD_SWITCH_SYSTEM)
951 ac_link="$ac_link $LD_SWITCH_SYSTEM"
953 ## This setting of LD_SWITCH_SYSTEM references LD_SWITCH_X_SITE_AUX,
954 ## which has not been defined yet.  When this was handled with cpp,
955 ## it was expanded to null when configure sourced the s/*.h file.
956 ## Thus LD_SWITCH_SYSTEM had different values in configure and the Makefiles.
957 ## FIXME it would be cleaner to put this in LD_SWITCH_SYSTEM_TEMACS
958 ## (or somesuch), but because it is supposed to go at the _front_
959 ## of LD_SWITCH_SYSTEM, we cannot do that in exactly the same way.
960 ## Compare with the gnu-linux case below, which added to the end
961 ## of LD_SWITCH_SYSTEM, and so can instead go at the front of
962 ## LD_SWITCH_SYSTEM_TEMACS.
963 case "$opsys" in
964   netbsd|openbsd)
965    ## _AUX_RPATH is like _AUX, but uses -rpath instead of -R.
966    LD_SWITCH_SYSTEM="\$(LD_SWITCH_X_SITE_AUX_RPATH) $LD_SWITCH_SYSTEM" ;;
967 esac
970 C_SWITCH_MACHINE=
971 if test "$machine" = "alpha"; then
972   AC_CHECK_DECL([__ELF__])
973   if test "$ac_cv_have_decl___ELF__" = "yes"; then
974     ## With ELF, make sure that all common symbols get allocated to in the
975     ## data section.  Otherwise, the dump of temacs may miss variables in
976     ## the shared library that have been initialized.  For example, with
977     ## GNU libc, __malloc_initialized would normally be resolved to the
978     ## shared library's .bss section, which is fatal.
979     if test "x$GCC" = "xyes"; then
980       C_SWITCH_MACHINE="-fno-common"
981     else
982       AC_MSG_ERROR([What gives?  Fix me if DEC Unix supports ELF now.])
983     fi
984   fi
986 AC_SUBST(C_SWITCH_MACHINE)
989 C_SWITCH_SYSTEM=
990 ## Some programs in src produce warnings saying certain subprograms
991 ## are too complex and need a MAXMEM value greater than 2000 for
992 ## additional optimization.  --nils@exp-math.uni-essen.de
993 test "$opsys" = "aix4.2" && test "x$GCC" != "xyes" && \
994   C_SWITCH_SYSTEM="-ma -qmaxmem=4000"
995 ## gnu-linux might need -D_BSD_SOURCE on old libc5 systems.
996 ## It is redundant in glibc2, since we define _GNU_SOURCE.
997 AC_SUBST(C_SWITCH_SYSTEM)
1000 LIBS_SYSTEM=
1001 case "$opsys" in
1002   ## IBM's X11R5 uses -lIM and -liconv in AIX 3.2.2.
1003   aix4-2) LIBS_SYSTEM="-lrts -lIM -liconv" ;;
1005   freebsd) LIBS_SYSTEM="-lutil" ;;
1007   hpux*) LIBS_SYSTEM="-l:libdld.sl" ;;
1009   sol2*) LIBS_SYSTEM="-lsocket -lnsl -lkstat" ;;
1011   ## Motif needs -lgen.
1012   unixware) LIBS_SYSTEM="-lsocket -lnsl -lelf -lgen" ;;
1013 esac
1014 AC_SUBST(LIBS_SYSTEM)
1017 ### Make sure subsequent tests use flags consistent with the build flags.
1019 if test x"${OVERRIDE_CPPFLAGS}" != x; then
1020   CPPFLAGS="${OVERRIDE_CPPFLAGS}"
1021 else
1022   CPPFLAGS="$C_SWITCH_SYSTEM $C_SWITCH_MACHINE $CPPFLAGS"
1025 dnl For AC_FUNC_GETLOADAVG, at least:
1026 AC_CONFIG_LIBOBJ_DIR(src)
1028 dnl Do this early because it can frob feature test macros for Unix-98 &c.
1029 AC_SYS_LARGEFILE
1032 ## If user specified a crt-dir, use that unconditionally.
1033 if test "X$CRT_DIR" = "X"; then
1035   case "$canonical" in
1036     x86_64-*-linux-gnu* | s390x-*-linux-gnu*)
1037     ## On x86-64 and s390x GNU/Linux distributions, the standard library
1038     ## can be in a variety of places.  We only try /usr/lib64 and /usr/lib.
1039     ## For anything else (eg /usr/lib32), it is up the user to specify
1040     ## the location (bug#5655).
1041     ## Test for crtn.o, not just the directory, because sometimes the
1042     ## directory exists but does not have the relevant files (bug#1287).
1043     ## FIXME better to test for binary compatibility somehow.
1044     test -e /usr/lib64/crtn.o && CRT_DIR=/usr/lib64
1045     ;;
1047     powerpc64-*-linux-gnu* | sparc64-*-linux-gnu*) CRT_DIR=/usr/lib64 ;;
1048   esac
1050   case "$opsys" in
1051     hpux10-20) CRT_DIR=/lib ;;
1052   esac
1054   ## Default is /usr/lib.
1055   test "X$CRT_DIR" = "X" && CRT_DIR=/usr/lib
1057 else
1059   ## Some platforms don't use any of these files, so it is not
1060   ## appropriate to put this test outside the if block.
1061   test -e $CRT_DIR/crtn.o || test -e $CRT_DIR/crt0.o || \
1062     AC_MSG_ERROR([crt*.o not found in specified location.])
1066 AC_SUBST(CRT_DIR)
1068 LIB_MATH=-lm
1069 LIB_STANDARD=
1070 START_FILES=
1072 case $opsys in
1073   cygwin )
1074     LIB_MATH=
1075     START_FILES='ecrt0.o'
1076     ;;
1077   darwin )
1078     ## Adding -lm confuses the dynamic linker, so omit it.
1079     LIB_MATH=
1080     START_FILES='pre-crt0.o'
1081     ;;
1082   freebsd )
1083     LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o $(CRT_DIR)/crtn.o'
1084     START_FILES='pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o $(CRT_DIR)/crtbegin.o'
1085     ;;
1086   gnu-linux | gnu-kfreebsd )
1087     LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtn.o'
1088     START_FILES='pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o'
1089     ;;
1090   hpux10-20 | hpux11 )
1091     LIB_STANDARD=-lc
1092     START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o'
1093     ;;
1094   netbsd | openbsd )
1095     if test -f $CRT_DIR/crti.o; then
1096         LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o $(CRT_DIR)/crtn.o'
1097         START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o $(CRT_DIR)/crti.o $(CRT_DIR)/crtbegin.o'
1098     else
1099         LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o'
1100         START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o $(CRT_DIR)/crtbegin.o'
1101     fi
1102     ;;
1103 esac
1105 AC_SUBST(LIB_MATH)
1106 AC_SUBST(START_FILES)
1108 dnl This function definition taken from Gnome 2.0
1109 dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
1110 dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
1111 dnl also defines GSTUFF_PKG_ERRORS on error
1112 AC_DEFUN([PKG_CHECK_MODULES], [
1113   succeeded=no
1115   AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1117   if test "$PKG_CONFIG" = "no" ; then
1118      ifelse([$4], , [AC_MSG_ERROR([
1119       *** The pkg-config script could not be found. Make sure it is in your path, or give the full path to pkg-config with the PKG_CONFIG environment variable or --with-pkg-config-prog.  Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config.])], [$4])
1120   else
1121      PKG_CONFIG_MIN_VERSION=0.9.0
1122      if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
1123         AC_MSG_CHECKING(for $2)
1125         if $PKG_CONFIG --exists "$2" 2>&AS_MESSAGE_LOG_FD; then
1126             AC_MSG_RESULT(yes)
1127             succeeded=yes
1129             AC_MSG_CHECKING($1_CFLAGS)
1130             $1_CFLAGS=`$PKG_CONFIG --cflags "$2"|sed -e 's,///*,/,g'`
1131             AC_MSG_RESULT($$1_CFLAGS)
1133             AC_MSG_CHECKING($1_LIBS)
1134             $1_LIBS=`$PKG_CONFIG --libs "$2"|sed -e 's,///*,/,g'`
1135             AC_MSG_RESULT($$1_LIBS)
1136         else
1137             AC_MSG_RESULT(no)
1138             $1_CFLAGS=""
1139             $1_LIBS=""
1140             ## If we have a custom action on failure, don't print errors, but
1141             ## do set a variable so people can do so.
1142             $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
1143             ifelse([$4], ,echo $$1_PKG_ERRORS,)
1144         fi
1146         AC_SUBST($1_CFLAGS)
1147         AC_SUBST($1_LIBS)
1148      else
1149         echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
1150         echo "*** See http://www.freedesktop.org/software/pkgconfig"
1151      fi
1152   fi
1154   if test $succeeded = yes; then
1155      ifelse([$3], , :, [$3])
1156   else
1157      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])
1158   fi
1162 if test "${with_sound}" != "no"; then
1163   # Sound support for GNU/Linux and the free BSDs.
1164   AC_CHECK_HEADERS(machine/soundcard.h sys/soundcard.h soundcard.h)
1165   # Emulation library used on NetBSD.
1166   AC_CHECK_LIB(ossaudio, _oss_ioctl, LIBSOUND=-lossaudio, LIBSOUND=)
1167   AC_SUBST(LIBSOUND)
1169   ALSA_REQUIRED=1.0.0
1170   ALSA_MODULES="alsa >= $ALSA_REQUIRED"
1171   PKG_CHECK_MODULES(ALSA, $ALSA_MODULES, HAVE_ALSA=yes, HAVE_ALSA=no)
1172   if test $HAVE_ALSA = yes; then
1173     SAVE_CFLAGS="$CFLAGS"
1174     SAVE_LDFLAGS="$LDFLAGS"
1175     CFLAGS="$ALSA_CFLAGS $CFLAGS"
1176     LDFLAGS="$ALSA_LIBS $LDFLAGS"
1177     AC_TRY_COMPILE([#include <asoundlib.h>], [snd_lib_error_set_handler (0);],
1178                     emacs_alsa_normal=yes,
1179                     emacs_alsa_normal=no)
1180     if test "$emacs_alsa_normal" != yes; then
1181       AC_TRY_COMPILE([#include <alsa/asoundlib.h>],
1182                      [snd_lib_error_set_handler (0);],
1183                      emacs_alsa_subdir=yes,
1184                      emacs_alsa_subdir=no)
1185       if test "$emacs_alsa_subdir" != yes; then
1186         AC_MSG_ERROR([pkg-config found alsa, but it does not compile.  See config.log for error messages.])
1187       fi
1188       ALSA_CFLAGS="$ALSA_CFLAGS -DALSA_SUBDIR_INCLUDE"
1189     fi
1191     CFLAGS="$SAVE_CFLAGS"
1192     LDFLAGS="$SAVE_LDFLAGS"
1193     LIBSOUND="$LIBSOUND $ALSA_LIBS"
1194     CFLAGS_SOUND="$CFLAGS_SOUND $ALSA_CFLAGS"
1195     AC_DEFINE(HAVE_ALSA, 1, [Define to 1 if ALSA is available.])
1196   fi
1197   AC_SUBST(CFLAGS_SOUND)
1200 dnl checks for header files
1201 AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \
1202   linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \
1203   stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \
1204   sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \
1205   sys/utsname.h pwd.h utmp.h)
1207 AC_MSG_CHECKING(if personality LINUX32 can be set)
1208 AC_TRY_COMPILE([#include <sys/personality.h>], [personality (PER_LINUX32)],
1209                emacs_cv_personality_linux32=yes,
1210                emacs_cv_personality_linux32=no)
1211 AC_MSG_RESULT($emacs_cv_personality_linux32)
1213 if test $emacs_cv_personality_linux32 = yes; then
1214   AC_DEFINE(HAVE_PERSONALITY_LINUX32, 1,
1215             [Define to 1 if personality LINUX32 can be set.])
1218 dnl On Solaris 8 there's a compilation warning for term.h because
1219 dnl it doesn't define `bool'.
1220 AC_CHECK_HEADERS(term.h, , , -)
1221 AC_HEADER_STDC
1222 AC_HEADER_TIME
1223 AC_CHECK_DECLS([sys_siglist])
1224 if test $ac_cv_have_decl_sys_siglist != yes; then
1225   # For Tru64, at least:
1226   AC_CHECK_DECLS([__sys_siglist])
1227   if test $ac_cv_have_decl___sys_siglist = yes; then
1228     AC_DEFINE(sys_siglist, __sys_siglist,
1229               [Define to any substitute for sys_siglist.])
1230   fi
1232 AC_HEADER_SYS_WAIT
1234 dnl Some systems have utime.h but don't declare the struct anyplace.
1235 AC_CACHE_CHECK(for struct utimbuf, emacs_cv_struct_utimbuf,
1236 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
1237 #include <sys/time.h>
1238 #include <time.h>
1239 #else
1240 #ifdef HAVE_SYS_TIME_H
1241 #include <sys/time.h>
1242 #else
1243 #include <time.h>
1244 #endif
1245 #endif
1246 #ifdef HAVE_UTIME_H
1247 #include <utime.h>
1248 #endif], [static struct utimbuf x; x.actime = x.modtime;],
1249   emacs_cv_struct_utimbuf=yes, emacs_cv_struct_utimbuf=no))
1250 if test $emacs_cv_struct_utimbuf = yes; then
1251   AC_DEFINE(HAVE_STRUCT_UTIMBUF, 1, [Define to 1 if `struct utimbuf' is declared by <utime.h>.])
1254 dnl checks for typedefs
1255 AC_TYPE_SIGNAL
1257 dnl Check for speed_t typedef.
1258 AC_CACHE_CHECK(for speed_t, emacs_cv_speed_t,
1259   [AC_TRY_COMPILE([#include <termios.h>], [speed_t x = 1;],
1260     emacs_cv_speed_t=yes, emacs_cv_speed_t=no)])
1261 if test $emacs_cv_speed_t = yes; then
1262   AC_DEFINE(HAVE_SPEED_T, 1,
1263            [Define to 1 if `speed_t' is declared by <termios.h>.])
1266 AC_CACHE_CHECK(for struct timeval, emacs_cv_struct_timeval,
1267 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
1268 #include <sys/time.h>
1269 #include <time.h>
1270 #else
1271 #ifdef HAVE_SYS_TIME_H
1272 #include <sys/time.h>
1273 #else
1274 #include <time.h>
1275 #endif
1276 #endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
1277   emacs_cv_struct_timeval=yes, emacs_cv_struct_timeval=no))
1278 HAVE_TIMEVAL=$emacs_cv_struct_timeval
1279 if test $emacs_cv_struct_timeval = yes; then
1280   AC_DEFINE(HAVE_TIMEVAL, 1, [Define to 1 if `struct timeval' is declared by <sys/time.h>.])
1283 AC_CACHE_CHECK(for struct exception, emacs_cv_struct_exception,
1284 AC_TRY_COMPILE([#include <math.h>],
1285 [static struct exception x; x.arg1 = x.arg2 = x.retval; x.name = ""; x.type = 1;],
1286   emacs_cv_struct_exception=yes, emacs_cv_struct_exception=no))
1287 HAVE_EXCEPTION=$emacs_cv_struct_exception
1288 if test $emacs_cv_struct_exception != yes; then
1289   AC_DEFINE(NO_MATHERR, 1, [Define to 1 if you don't have struct exception in math.h.])
1292 AC_CHECK_HEADERS(sys/socket.h)
1293 AC_CHECK_HEADERS(net/if.h, , , [AC_INCLUDES_DEFAULT
1294 #if HAVE_SYS_SOCKET_H
1295 #include <sys/socket.h>
1296 #endif])
1298 dnl checks for structure members
1299 AC_STRUCT_TM
1300 AC_STRUCT_TIMEZONE
1301 AC_CHECK_MEMBER(struct tm.tm_gmtoff,
1302                 [AC_DEFINE(HAVE_TM_GMTOFF, 1,
1303                            [Define to 1 if `tm_gmtoff' is member of `struct tm'.])],,
1304                 [#include <time.h>])
1305 AC_CHECK_MEMBERS([struct ifreq.ifr_flags, struct ifreq.ifr_hwaddr,
1306                   struct ifreq.ifr_netmask, struct ifreq.ifr_broadaddr,
1307                   struct ifreq.ifr_addr], , ,
1308                  [AC_INCLUDES_DEFAULT
1309 #if HAVE_SYS_SOCKET_H
1310 #include <sys/socket.h>
1311 #endif
1312 #if HAVE_NET_IF_H
1313 #include <net/if.h>
1314 #endif])
1316 dnl checks for compiler characteristics
1318 dnl Testing __STDC__ to determine prototype support isn't good enough.
1319 dnl DEC C, for instance, doesn't define it with default options, and
1320 dnl is used on 64-bit systems (OSF Alphas).  Similarly for volatile
1321 dnl and void *.
1322 AC_C_PROTOTYPES
1323 AC_C_VOLATILE
1324 AC_C_CONST
1325 dnl This isn't useful because we can't turn on use of `inline' unless
1326 dnl the compiler groks `extern inline'.
1327 dnl AC_C_INLINE
1328 AC_CACHE_CHECK([for void * support], emacs_cv_void_star,
1329   [AC_TRY_COMPILE(, [void * foo;],
1330                    emacs_cv_void_star=yes, emacs_cv_void_star=no)])
1331 if test $emacs_cv_void_star = yes; then
1332   AC_DEFINE(POINTER_TYPE, void)
1333 else
1334   AC_DEFINE(POINTER_TYPE, char)
1336 AH_TEMPLATE(POINTER_TYPE,
1337             [Define as `void' if your compiler accepts `void *'; otherwise
1338              define as `char'.])dnl
1342 dnl This could be used for targets which can have both byte sexes.
1343 dnl We could presumably replace the hardwired WORDS_BIG_ENDIAN generally.
1344 dnl AC_C_BIGENDIAN
1346 dnl check for Make feature
1347 AC_PROG_MAKE_SET
1349 DEPFLAGS=
1350 MKDEPDIR=":"
1351 deps_frag=deps.mk
1352 dnl check for GNU Make if we have GCC and autodepend is on.
1353 if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then
1354    AC_MSG_CHECKING([whether we are using GNU Make])
1355    HAVE_GNU_MAKE=no
1356    testval=`make --version 2>/dev/null | grep 'GNU Make'`
1357    if test "x$testval" != x; then
1358       HAVE_GNU_MAKE=yes
1359    else
1360       ac_enable_autodepend=no
1361    fi
1362    AC_MSG_RESULT([$HAVE_GNU_MAKE])
1363    if test $HAVE_GNU_MAKE = yes; then
1364       AC_MSG_CHECKING([whether gcc understands -MMD -MF])
1365       SAVE_CFLAGS="$CFLAGS"
1366       CFLAGS="$CFLAGS -MMD -MF deps.d"
1367       AC_TRY_COMPILE([], [], , ac_enable_autodepend=no)
1368       CFLAGS="$SAVE_CFLAGS"
1369       test -f deps.d || ac_enable_autodepend=no
1370       rm -rf deps.d
1371       AC_MSG_RESULT([$ac_enable_autodepend])
1372    fi
1373    if test $ac_enable_autodepend = yes; then
1374       DEPFLAGS='-MMD -MF ${DEPDIR}/$*.d'
1375       ## In parallel builds, another make might create depdir between
1376       ## the first test and mkdir, so stick another test on the end.
1377       ## Or use mkinstalldirs?  mkdir -p is not portable.
1378       MKDEPDIR='test -d ${DEPDIR} || mkdir ${DEPDIR} || test -d ${DEPDIR}'
1379       deps_frag=autodeps.mk
1380    fi
1382 deps_frag=$srcdir/src/$deps_frag
1383 AC_SUBST(MKDEPDIR)
1384 AC_SUBST(DEPFLAGS)
1385 AC_SUBST_FILE(deps_frag)
1388 dnl checks for operating system services
1389 AC_SYS_LONG_FILE_NAMES
1391 #### Choose a window system.
1393 AC_PATH_X
1394 if test "$no_x" = yes; then
1395   window_system=none
1396 else
1397   window_system=x11
1400 ## Workaround for bug in autoconf <= 2.62.
1401 ## http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01551.html
1402 ## No need to do anything special for these standard directories.
1403 if test -n "${x_libraries}" && test x"${x_libraries}" != xNONE; then
1405    x_libraries=`echo :${x_libraries}: | sed -e 's|:/usr/lib64:|:|g' -e 's|:/lib64:|:|g' -e 's|^:||' -e 's|:$||'`
1409 LD_SWITCH_X_SITE_AUX=
1410 LD_SWITCH_X_SITE_AUX_RPATH=
1411 if test "${x_libraries}" != NONE; then
1412   if test -n "${x_libraries}"; then
1413     LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
1414     LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
1415     LD_SWITCH_X_SITE_AUX_RPATH=`echo ${LD_SWITCH_X_SITE_AUX} | sed -e 's/-R/-Wl,-rpath,/'`
1416   fi
1417   x_default_search_path=""
1418   x_search_path=${x_libraries}
1419   if test -z "${x_search_path}"; then
1420     x_search_path=/usr/lib
1421   fi
1422   for x_library in `echo ${x_search_path}: | \
1423                     sed -e "s/:/ /g" -e p -e "s:/lib[[^ /]]* :/share :g"`; do
1424     x_search_path="\
1425 ${x_library}/X11/%L/%T/%N%C%S:\
1426 ${x_library}/X11/%l/%T/%N%C%S:\
1427 ${x_library}/X11/%T/%N%C%S:\
1428 ${x_library}/X11/%L/%T/%N%S:\
1429 ${x_library}/X11/%l/%T/%N%S:\
1430 ${x_library}/X11/%T/%N%S"
1431     if test x"${x_default_search_path}" = x; then
1432       x_default_search_path=${x_search_path}
1433     else
1434       x_default_search_path="${x_search_path}:${x_default_search_path}"
1435     fi
1436   done
1438 AC_SUBST(LD_SWITCH_X_SITE_AUX)
1439 AC_SUBST(LD_SWITCH_X_SITE_AUX_RPATH)
1441 if test "${x_includes}" != NONE && test -n "${x_includes}"; then
1442   C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"`
1445 if test x"${x_includes}" = x; then
1446   bitmapdir=/usr/include/X11/bitmaps
1447 else
1448   # accumulate include directories that have X11 bitmap subdirectories
1449   bmd_acc="dummyval"
1450   for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do
1451     if test -d "${bmd}/X11/bitmaps"; then
1452       bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps"
1453     fi
1454     if test -d "${bmd}/bitmaps"; then
1455       bmd_acc="${bmd_acc}:${bmd}/bitmaps"
1456     fi
1457   done
1458   if test ${bmd_acc} != "dummyval"; then
1459     bitmapdir=`echo ${bmd_acc} | sed -e "s/^dummyval://"`
1460   fi
1463 HAVE_NS=no
1464 NS_IMPL_COCOA=no
1465 NS_IMPL_GNUSTEP=no
1466 tmp_CPPFLAGS="$CPPFLAGS"
1467 tmp_CFLAGS="$CFLAGS"
1468 CPPFLAGS="$CPPFLAGS -x objective-c"
1469 CFLAGS="$CFLAGS -x objective-c"
1470 TEMACS_LDFLAGS2="\${LDFLAGS}"
1471 dnl I don't think it's especially important, but src/Makefile.in
1472 dnl (now the only user of ns_appdir) used to go to the trouble of adding a
1473 dnl trailing "/" to it, so now we do it here.
1474 if test "${with_ns}" != no; then
1475   if test "${opsys}" = darwin; then
1476      NS_IMPL_COCOA=yes
1477      ns_appdir=`pwd`/nextstep/Emacs.app/
1478      ns_appbindir=${ns_appdir}Contents/MacOS/
1479      ns_appresdir=${ns_appdir}Contents/Resources
1480      ns_appsrc=${srcdir}/nextstep/Cocoa/Emacs.base
1481   elif test -f $GNUSTEP_CONFIG_FILE; then
1482      NS_IMPL_GNUSTEP=yes
1483      ns_appdir=`pwd`/nextstep/Emacs.app/
1484      ns_appbindir=${ns_appdir}
1485      ns_appresdir=${ns_appdir}Resources
1486      ns_appsrc=${srcdir}/nextstep/GNUstep/Emacs.base
1487      dnl FIXME sourcing this several times in subshells seems inefficient.
1488      GNUSTEP_SYSTEM_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_HEADERS)"
1489      GNUSTEP_SYSTEM_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_LIBRARIES)"
1490      dnl I seemed to need these as well with GNUstep-startup 0.25.
1491      GNUSTEP_LOCAL_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_LOCAL_HEADERS)"
1492      GNUSTEP_LOCAL_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_LOCAL_LIBRARIES)"
1493      test "x${GNUSTEP_LOCAL_HEADERS}" != "x" && \
1494        GNUSTEP_LOCAL_HEADERS="-I${GNUSTEP_LOCAL_HEADERS}"
1495      test "x${GNUSTEP_LOCAL_LIBRARIES}" != "x" && \
1496        GNUSTEP_LOCAL_LIBRARIES="-L${GNUSTEP_LOCAL_LIBRARIES}"
1497      CPPFLAGS="$CPPFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
1498      CFLAGS="$CFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
1499      REAL_CFLAGS="$REAL_CFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
1500      LDFLAGS="$LDFLAGS -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES}"
1501      LIB_STANDARD=
1502      START_FILES=
1503      TEMACS_LDFLAGS2=
1504   fi
1505   AC_CHECK_HEADER([AppKit/AppKit.h], [HAVE_NS=yes],
1506                   [AC_MSG_ERROR([`--with-ns' was specified, but the include
1507   files are missing or cannot be compiled.])])
1508   NS_HAVE_NSINTEGER=yes
1509   AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <Foundation/NSObjCRuntime.h>],
1510                                      [NSInteger i;])],
1511                     ns_have_nsinteger=yes,
1512                     ns_have_nsinteger=no)
1513   if test $ns_have_nsinteger = no; then
1514     NS_HAVE_NSINTEGER=no
1515   fi
1517 AC_SUBST(TEMACS_LDFLAGS2)
1519 ns_frag=/dev/null
1520 NS_OBJ=
1521 NS_SUPPORT=
1522 if test "${HAVE_NS}" = yes; then
1523   window_system=nextstep
1524   with_xft=no
1525   # set up packaging dirs
1526   exec_prefix=${ns_appbindir}
1527   libexecdir=${ns_appbindir}/libexec
1528   if test "${EN_NS_SELF_CONTAINED}" = yes; then
1529      prefix=${ns_appresdir}
1530   fi
1531   ns_frag=$srcdir/src/ns.mk
1532   NS_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o fontset.o fringe.o image.o"
1533   NS_SUPPORT="\${lispsource}emacs-lisp/easymenu.elc \${lispsource}term/ns-win.elc"
1535 CFLAGS="$tmp_CFLAGS"
1536 CPPFLAGS="$tmp_CPPFLAGS"
1537 AC_SUBST(NS_OBJ)
1538 AC_SUBST(NS_SUPPORT)
1539 AC_SUBST(LIB_STANDARD)
1540 AC_SUBST_FILE(ns_frag)
1542 case "${window_system}" in
1543   x11 )
1544     HAVE_X_WINDOWS=yes
1545     HAVE_X11=yes
1546     case "${with_x_toolkit}" in
1547       athena | lucid ) USE_X_TOOLKIT=LUCID ;;
1548       motif ) USE_X_TOOLKIT=MOTIF ;;
1549       gtk ) with_gtk=yes
1550 dnl Dont set this for GTK.  A lot of tests below assumes Xt when
1551 dnl USE_X_TOOLKIT is set.
1552             USE_X_TOOLKIT=none ;;
1553       no ) USE_X_TOOLKIT=none ;;
1554 dnl If user did not say whether to use a toolkit, make this decision later:
1555 dnl use the toolkit if we have gtk, or X11R5 or newer.
1556       * ) USE_X_TOOLKIT=maybe ;;
1557     esac
1558   ;;
1559   nextstep | none )
1560     HAVE_X_WINDOWS=no
1561     HAVE_X11=no
1562     USE_X_TOOLKIT=none
1563   ;;
1564 esac
1566 if test "$window_system" = none && test "X$with_x" != "Xno"; then
1567    AC_CHECK_PROG(HAVE_XSERVER, X, true, false)
1568    if test "$HAVE_XSERVER" = true ||
1569       test -n "$DISPLAY" ||
1570       test "`echo /usr/lib/libX11.*`" != "/usr/lib/libX11.*"; then
1571         AC_MSG_ERROR([You seem to be running X, but no X development libraries
1572 were found.  You should install the relevant development files for X
1573 and for the toolkit you want, such as Gtk+, Lesstif or Motif.  Also make
1574 sure you have development files for image handling, i.e.
1575 tiff, gif, jpeg, png and xpm.
1576 If you are sure you want Emacs compiled without X window support, pass
1577   --without-x
1578 to configure.])
1579    fi
1582 ### If we're using X11, we should use the X menu package.
1583 HAVE_MENUS=no
1584 case ${HAVE_X11} in
1585   yes ) HAVE_MENUS=yes ;;
1586 esac
1588 # Do the opsystem or machine files prohibit the use of the GNU malloc?
1589 # Assume not, until told otherwise.
1590 GNU_MALLOC=yes
1591 doug_lea_malloc=yes
1592 AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no)
1593 AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
1594 AC_CACHE_CHECK(whether __after_morecore_hook exists,
1595                emacs_cv_var___after_morecore_hook,
1596 [AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
1597   emacs_cv_var___after_morecore_hook=yes,
1598   emacs_cv_var___after_morecore_hook=no)])
1599 if test $emacs_cv_var___after_morecore_hook = no; then
1600   doug_lea_malloc=no
1603 if test "${system_malloc}" = "yes"; then
1604   GNU_MALLOC=no
1605   GNU_MALLOC_reason="
1606     (The GNU allocators don't work with this system configuration.)"
1607   GMALLOC_OBJ=
1608   VMLIMIT_OBJ=
1609 else
1610   test "$doug_lea_malloc" != "yes" && GMALLOC_OBJ=gmalloc.o
1611   VMLIMIT_OBJ=vm-limit.o
1613 AC_SUBST(GMALLOC_OBJ)
1614 AC_SUBST(VMLIMIT_OBJ)
1616 if test "$doug_lea_malloc" = "yes" ; then
1617   if test "$GNU_MALLOC" = yes ; then
1618     GNU_MALLOC_reason="
1619       (Using Doug Lea's new malloc from the GNU C Library.)"
1620   fi
1621   AC_DEFINE(DOUG_LEA_MALLOC, 1,
1622             [Define to 1 if you are using the GNU C Library.])
1624   ## Use mmap directly for allocating larger buffers.
1625   ## FIXME this comes from src/s/{gnu,gnu-linux}.h:
1626   ## #ifdef DOUG_LEA_MALLOC; #undef REL_ALLOC; #endif
1627   ## Does the AC_FUNC_MMAP test below make this check unecessary?
1628   case "$opsys" in
1629     gnu*) REL_ALLOC=no ;;
1630   esac
1633 if test x"${REL_ALLOC}" = x; then
1634   REL_ALLOC=${GNU_MALLOC}
1637 dnl For now, need to use an explicit `#define USE_MMAP_FOR_BUFFERS 1'
1638 dnl the system configuration file (s/*.h) to turn the use of mmap
1639 dnl in the relocating allocator on.
1641 AC_FUNC_MMAP
1642 if test $use_mmap_for_buffers = yes; then
1643   REL_ALLOC=no
1646 LIBS="$LIBS_SYSTEM $LIBS"
1648 dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
1649 dnl and also adds -ldnet to LIBS, which Autoconf uses for checks.
1650 AC_CHECK_LIB(dnet, dnet_ntoa)
1651 dnl This causes -lresolv to get used in subsequent tests,
1652 dnl which causes failures on some systems such as HPUX 9.
1653 dnl AC_CHECK_LIB(resolv, gethostbyname)
1655 dnl FIXME replace main with a function we actually want from this library.
1656 AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
1658 AC_CHECK_LIB(pthreads, cma_open)
1660 ## Note: when using cpp in s/aix4.2.h, this definition depended on
1661 ## HAVE_LIBPTHREADS.  That was not defined earlier in configure when
1662 ## the system file was sourced.  Hence the value of LIBS_SYSTEM
1663 ## added to LIBS in configure would never contain the pthreads part,
1664 ## but the value used in Makefiles might.  FIXME?
1666 ## -lpthreads seems to be necessary for Xlib in X11R6, and should
1667 ## be harmless on older versions of X where it happens to exist.
1668 test "$opsys" = "aix4-2" && \
1669   test $ac_cv_lib_pthreads_cma_open = yes && \
1670   LIBS_SYSTEM="$LIBS_SYSTEM -lpthreads"
1672 dnl Check for need for bigtoc support on IBM AIX
1674 case ${host_os} in
1675 aix*)
1676   AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
1677     case $GCC in
1678     yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
1679     *) gdb_cv_bigtoc=-bbigtoc ;;
1680     esac
1682     LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
1683     AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
1684   ])
1685   ;;
1686 esac
1688 # Change CFLAGS and CPPFLAGS temporarily so that C_SWITCH_X_SITE gets
1689 # used for the tests that follow.  We set them back to REAL_CFLAGS and
1690 # REAL_CPPFLAGS later on.
1692 REAL_CPPFLAGS="$CPPFLAGS"
1694 if test "${HAVE_X11}" = "yes"; then
1695   DEFS="$C_SWITCH_X_SITE $DEFS"
1696   LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE"
1697   LIBS="$LIBX $LIBS"
1698   CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
1699   CPPFLAGS="$C_SWITCH_X_SITE $CPPFLAGS"
1701   # On Solaris, arrange for LD_RUN_PATH to point to the X libraries for tests.
1702   # This is handled by LD_SWITCH_X_SITE_AUX during the real build,
1703   # but it's more convenient here to set LD_RUN_PATH
1704   # since this also works on hosts that don't understand LD_SWITCH_X_SITE_AUX.
1705   if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
1706     LD_RUN_PATH=$x_libraries${LD_RUN_PATH+:}$LD_RUN_PATH
1707     export LD_RUN_PATH
1708   fi
1710   if test "${opsys}" = "gnu-linux"; then
1711     AC_MSG_CHECKING(whether X on GNU/Linux needs -b to link)
1712     AC_TRY_LINK([],
1713      [XOpenDisplay ("foo");],
1714      [xlinux_first_failure=no],
1715      [xlinux_first_failure=yes])
1716     if test "${xlinux_first_failure}" = "yes"; then
1717       OLD_LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE"
1718       OLD_C_SWITCH_X_SITE="$C_SWITCH_X_SITE"
1719       OLD_CPPFLAGS="$CPPFLAGS"
1720       OLD_LIBS="$LIBS"
1721       LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout"
1722       C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout"
1723       CPPFLAGS="$CPPFLAGS -b i486-linuxaout"
1724       LIBS="$LIBS -b i486-linuxaout"
1725       AC_TRY_LINK([],
1726        [XOpenDisplay ("foo");],
1727        [xlinux_second_failure=no],
1728        [xlinux_second_failure=yes])
1729       if test "${xlinux_second_failure}" = "yes"; then
1730         # If we get the same failure with -b, there is no use adding -b.
1731         # So take it out.  This plays safe.
1732         LD_SWITCH_X_SITE="$OLD_LD_SWITCH_X_SITE"
1733         C_SWITCH_X_SITE="$OLD_C_SWITCH_X_SITE"
1734         CPPFLAGS="$OLD_CPPFLAGS"
1735         LIBS="$OLD_LIBS"
1736         AC_MSG_RESULT(no)
1737       else
1738         AC_MSG_RESULT(yes)
1739       fi
1740     else
1741       AC_MSG_RESULT(no)
1742     fi
1743   fi
1745   # Reportedly, some broken Solaris systems have XKBlib.h but are missing
1746   # header files included from there.
1747   AC_MSG_CHECKING(for Xkb)
1748   AC_TRY_LINK([#include <X11/Xlib.h>
1749 #include <X11/XKBlib.h>],
1750         [XkbDescPtr kb = XkbGetKeyboard (0, XkbAllComponentsMask, XkbUseCoreKbd);],
1751         emacs_xkb=yes, emacs_xkb=no)
1752   AC_MSG_RESULT($emacs_xkb)
1753   if test $emacs_xkb = yes; then
1754     AC_DEFINE(HAVE_XKBGETKEYBOARD, 1, [Define to 1 if you have the XkbGetKeyboard function.])
1755   fi
1757   AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
1758 XScreenNumberOfScreen XSetWMProtocols)
1761 if test "${window_system}" = "x11"; then
1762   AC_MSG_CHECKING(X11 version 6)
1763   AC_CACHE_VAL(emacs_cv_x11_version_6,
1764   [AC_TRY_LINK([#include <X11/Xlib.h>],
1765 [#if XlibSpecificationRelease < 6
1766 fail;
1767 #endif
1768 ], emacs_cv_x11_version_6=yes, emacs_cv_x11_version_6=no)])
1769   if test $emacs_cv_x11_version_6 = yes; then
1770     AC_MSG_RESULT(6 or newer)
1771     AC_DEFINE(HAVE_X11R6, 1,
1772               [Define to 1 if you have the X11R6 or newer version of Xlib.])
1773   else
1774     AC_MSG_RESULT(before 6)
1775   fi
1779 ### Use -lrsvg-2 if available, unless `--with-rsvg=no' is specified.
1780 HAVE_RSVG=no
1781 if test "${HAVE_X11}" = "yes" || test "${NS_IMPL_GNUSTEP}" = "yes"; then
1782   if test "${with_rsvg}" != "no"; then
1783     RSVG_REQUIRED=2.11.0
1784     RSVG_MODULE="librsvg-2.0 >= $RSVG_REQUIRED"
1786     PKG_CHECK_MODULES(RSVG, $RSVG_MODULE, :, :)
1787     AC_SUBST(RSVG_CFLAGS)
1788     AC_SUBST(RSVG_LIBS)
1790     if test ".${RSVG_CFLAGS}" != "."; then
1791       HAVE_RSVG=yes
1792       AC_DEFINE(HAVE_RSVG, 1, [Define to 1 if using librsvg.])
1793       CFLAGS="$CFLAGS $RSVG_CFLAGS"
1794       LIBS="$RSVG_LIBS $LIBS"
1795     fi
1796   fi
1800 HAVE_GTK=no
1801 if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "maybe"; then
1802   GLIB_REQUIRED=2.6
1803   GTK_REQUIRED=2.6
1804   GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
1806   dnl Checks for libraries.
1807   PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
1808   if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
1809      AC_MSG_ERROR($GTK_PKG_ERRORS)
1810   fi
1814 GTK_OBJ=
1815 if test x"$pkg_check_gtk" = xyes; then
1817   AC_SUBST(GTK_CFLAGS)
1818   AC_SUBST(GTK_LIBS)
1819   C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS"
1820   CFLAGS="$CFLAGS $GTK_CFLAGS"
1821   LIBS="$GTK_LIBS $LIBS"
1822   dnl Try to compile a simple GTK program.
1823   GTK_COMPILES=no
1824   AC_CHECK_FUNCS(gtk_main, GTK_COMPILES=yes)
1825   if test "${GTK_COMPILES}" != "yes"; then
1826     if test "$USE_X_TOOLKIT" != "maybe"; then
1827       AC_MSG_ERROR([Gtk+ wanted, but it does not compile, see config.log.  Maybe some x11-devel files missing?]);
1828     fi
1829   else
1830     HAVE_GTK=yes
1831     AC_DEFINE(USE_GTK, 1, [Define to 1 if using GTK.])
1832     GTK_OBJ=gtkutil.o
1833     USE_X_TOOLKIT=none
1834     if $PKG_CONFIG --atleast-version=2.10 gtk+-2.0; then
1835       :
1836     else
1837       AC_MSG_WARN([[Your version of Gtk+ will have problems with
1838        closing open displays.  This is no problem if you just use
1839        one display, but if you use more than one and close one of them
1840        Emacs may crash.]])
1841       sleep 3
1842     fi
1843   fi
1846 AC_SUBST(GTK_OBJ)
1849 if test "${HAVE_GTK}" = "yes"; then
1851   dnl  GTK scrollbars resemble toolkit scrollbars a lot, so to avoid
1852   dnl  a lot if #ifdef:s, say we have toolkit scrollbars.
1853   if test "$with_toolkit_scroll_bars" != no; then
1854     with_toolkit_scroll_bars=yes
1855   fi
1857   dnl  Check if we can use multiple displays with this GTK version.
1858   dnl  If gdk_display_open exists, assume all others are there also.
1859   HAVE_GTK_MULTIDISPLAY=no
1860   AC_CHECK_FUNCS(gdk_display_open, HAVE_GTK_MULTIDISPLAY=yes)
1861   if test "${HAVE_GTK_MULTIDISPLAY}" = "yes"; then
1862     AC_DEFINE(HAVE_GTK_MULTIDISPLAY, 1,
1863               [Define to 1 if GTK can handle more than one display.])
1864   fi
1866   dnl  Check if we have the old file selection dialog declared and
1867   dnl  in the link library.  In 2.x it may be in the library,
1868   dnl  but not declared if deprecated featured has been selected out.
1869   dnl  AC_CHECK_DECL checks for a macro, so check for GTK_TYPE_FILE_SELECTION.
1870   HAVE_GTK_FILE_SELECTION=no
1871   AC_CHECK_DECL(GTK_TYPE_FILE_SELECTION, HAVE_GTK_FILE_SELECTION=yes,
1872                    HAVE_GTK_FILE_SELECTION=no, [AC_INCLUDES_DEFAULT
1873 #include <gtk/gtk.h>])
1874   if test "$HAVE_GTK_FILE_SELECTION" = yes; then
1875     AC_CHECK_FUNCS(gtk_file_selection_new, HAVE_GTK_FILE_SELECTION=yes,
1876                    HAVE_GTK_FILE_SELECTION=no)
1877   fi
1879   dnl  Check if we have the new file chooser dialog
1880   HAVE_GTK_FILE_CHOOSER=no
1881   AC_CHECK_DECL(GTK_TYPE_FILE_CHOOSER, HAVE_GTK_FILE_CHOOSER=yes,
1882                 HAVE_GTK_FILE_CHOOSER=no, [AC_INCLUDES_DEFAULT
1883 #include <gtk/gtk.h>])
1884   if test "$HAVE_GTK_FILE_CHOOSER" = yes; then
1885     AC_CHECK_FUNCS(gtk_file_chooser_dialog_new, HAVE_GTK_FILE_CHOOSER=yes,
1886                    HAVE_GTK_FILE_CHOOSER=no)
1887   fi
1889   if test "$HAVE_GTK_FILE_SELECTION" = yes \
1890      && test "$HAVE_GTK_FILE_CHOOSER" = yes;  then
1891     AC_DEFINE(HAVE_GTK_FILE_BOTH, 1,
1892               [Define to 1 if GTK has both file selection and chooser dialog.])
1893   fi
1895   dnl Check if pthreads are available.  Emacs only needs this when using
1896   dnl gtk_file_chooser under Gnome.
1897   if test "$HAVE_GTK_FILE_CHOOSER" = yes; then
1898     HAVE_GTK_AND_PTHREAD=no
1899     AC_CHECK_HEADERS(pthread.h)
1900     if test "$ac_cv_header_pthread_h"; then
1901       AC_CHECK_LIB(pthread, pthread_self, HAVE_GTK_AND_PTHREAD=yes)
1902     fi
1903     if test "$HAVE_GTK_AND_PTHREAD" = yes; then
1904       case "${canonical}" in
1905         *-hpux*) ;;
1906         *) GTK_LIBS="$GTK_LIBS -lpthread" ;;
1907       esac
1908       AC_DEFINE(HAVE_GTK_AND_PTHREAD, 1,
1909                [Define to 1 if you have GTK and pthread (-lpthread).])
1910     fi
1911   fi
1914 dnl D-Bus has been tested under GNU/Linux only.  Must be adapted for
1915 dnl other platforms.  Support for higher D-Bus versions than 1.0 is
1916 dnl also not configured.
1917 HAVE_DBUS=no
1918 DBUS_OBJ=
1919 if test "${with_dbus}" = "yes"; then
1920    PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0, HAVE_DBUS=yes, HAVE_DBUS=no)
1921    if test "$HAVE_DBUS" = yes; then
1922      LIBS="$LIBS $DBUS_LIBS"
1923      AC_DEFINE(HAVE_DBUS, 1, [Define to 1 if using D-Bus.])
1924      AC_CHECK_FUNCS([dbus_watch_get_unix_fd])
1925      DBUS_OBJ=dbusbind.o
1926    fi
1928 AC_SUBST(DBUS_OBJ)
1930 dnl GConf has been tested under GNU/Linux only.
1931 dnl The version is really arbitrary, it is about the same age as Gtk+ 2.6.
1932 HAVE_GCONF=no
1933 if test "${HAVE_X11}" = "yes" && test "${with_gconf}" = "yes"; then
1934    PKG_CHECK_MODULES(GCONF, gconf-2.0 >= 2.13, HAVE_GCONF=yes, HAVE_GCONF=no)
1935    if test "$HAVE_GCONF" = yes; then
1936       AC_DEFINE(HAVE_GCONF, 1, [Define to 1 if using GConf.])
1937    fi
1940 dnl SELinux is available for GNU/Linux only.
1941 HAVE_LIBSELINUX=no
1942 LIBSELINUX_LIBS=
1943 if test "${with_selinux}" = "yes"; then
1944    AC_CHECK_LIB([selinux], [lgetfilecon], HAVE_LIBSELINUX=yes, HAVE_LIBSELINUX=no)
1945    if test "$HAVE_LIBSELINUX" = yes; then
1946       AC_DEFINE(HAVE_LIBSELINUX, 1, [Define to 1 if using SELinux.])
1947       LIBSELINUX_LIBS=-lselinux
1948    fi
1950 AC_SUBST(LIBSELINUX_LIBS)
1952 dnl Do not put whitespace before the #include statements below.
1953 dnl Older compilers (eg sunos4 cc) choke on it.
1954 HAVE_XAW3D=no
1955 LUCID_LIBW=
1956 if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then
1957   if test "$with_xaw3d" != no; then
1958     AC_MSG_CHECKING(for xaw3d)
1959     AC_CACHE_VAL(emacs_cv_xaw3d,
1960     [AC_TRY_LINK([
1961 #include <X11/Intrinsic.h>
1962 #include <X11/Xaw3d/Simple.h>],
1963       [],
1964       emacs_cv_xaw3d=yes,
1965       emacs_cv_xaw3d=no)])
1966   else
1967     emacs_cv_xaw3d=no
1968   fi
1969   if test $emacs_cv_xaw3d = yes; then
1970     AC_MSG_RESULT([yes; using Lucid toolkit])
1971     USE_X_TOOLKIT=LUCID
1972     HAVE_XAW3D=yes
1973     LUCID_LIBW=-lXaw3d
1974     AC_DEFINE(HAVE_XAW3D, 1,
1975               [Define to 1 if you have the Xaw3d library (-lXaw3d).])
1976   else
1977     AC_MSG_RESULT(no)
1978     AC_MSG_CHECKING(for libXaw)
1979     AC_CACHE_VAL(emacs_cv_xaw,
1980     [AC_TRY_LINK([
1981 #include <X11/Intrinsic.h>
1982 #include <X11/Xaw/Simple.h>],
1983       [],
1984       emacs_cv_xaw=yes,
1985       emacs_cv_xaw=no)])
1986     if test $emacs_cv_xaw = yes; then
1987       AC_MSG_RESULT([yes; using Lucid toolkit])
1988       USE_X_TOOLKIT=LUCID
1989       LUCID_LIBW=-lXaw
1990     elif test x"${USE_X_TOOLKIT}" = xLUCID; then
1991       AC_MSG_ERROR([Lucid toolkit requires X11/Xaw include files])
1992     else
1993       AC_MSG_RESULT([no; do not use toolkit by default])
1994       USE_X_TOOLKIT=none
1995     fi
1996   fi
1999 X_TOOLKIT_TYPE=$USE_X_TOOLKIT
2001 LIBXTR6=
2002 if test "${USE_X_TOOLKIT}" != "none"; then
2003   AC_MSG_CHECKING(X11 toolkit version)
2004   AC_CACHE_VAL(emacs_cv_x11_toolkit_version_6,
2005   [AC_TRY_LINK([#include <X11/Intrinsic.h>],
2006 [#if XtSpecificationRelease < 6
2007 fail;
2008 #endif
2009 ], emacs_cv_x11_toolkit_version_6=yes, emacs_cv_x11_toolkit_version_6=no)])
2010   HAVE_X11XTR6=$emacs_cv_x11_toolkit_version_6
2011   if test $emacs_cv_x11_toolkit_version_6 = yes; then
2012     AC_MSG_RESULT(6 or newer)
2013     AC_DEFINE(HAVE_X11XTR6, 1,
2014               [Define to 1 if you have the X11R6 or newer version of Xt.])
2015     LIBXTR6="-lSM -lICE"
2016     case "$opsys" in
2017       ## Use libw.a along with X11R6 Xt.
2018       unixware) LIBXTR6="$LIBXTR6 -lw" ;;
2019     esac
2020   else
2021     AC_MSG_RESULT(before 6)
2022   fi
2024 dnl If using toolkit, check whether libXmu.a exists.
2025 dnl tranle@intellicorp.com says libXmu.a can need XtMalloc in libXt.a to link.
2026   OLDLIBS="$LIBS"
2027   if test x$HAVE_X11XTR6 = xyes; then
2028     LIBS="-lXt -lSM -lICE $LIBS"
2029   else
2030     LIBS="-lXt $LIBS"
2031   fi
2032   AC_CHECK_LIB(Xmu, XmuConvertStandardSelection)
2033   test $ac_cv_lib_Xmu_XmuConvertStandardSelection = no && LIBS="$OLDLIBS"
2035 AC_SUBST(LIBXTR6)
2037 dnl FIXME the logic here seems weird, but this is what cpp was doing.
2038 dnl Why not just test for libxmu in the normal way?
2039 LIBXMU=-lXmu
2040 case "$machine" in
2041   ## These machines don't supply Xmu.
2042   hpux* | aix4-2 )
2043     test "X$ac_cv_lib_Xmu_XmuConvertStandardSelection" != "Xyes" && LIBXMU=
2044     ;;
2045 esac
2046 AC_SUBST(LIBXMU)
2048 # On Irix 6.5, at least, we need XShapeQueryExtension from -lXext for Xaw3D.
2049 if test "${HAVE_X11}" = "yes"; then
2050   if test "${USE_X_TOOLKIT}" != "none"; then
2051     AC_CHECK_LIB(Xext, XShapeQueryExtension)
2052   fi
2055 LIBXP=
2056 if test "${USE_X_TOOLKIT}" = "MOTIF"; then
2057   AC_CACHE_CHECK(for Motif version 2.1, emacs_cv_motif_version_2_1,
2058   [AC_TRY_COMPILE([#include <Xm/Xm.h>],
2059     [#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1)
2060 int x = 5;
2061 #else
2062 Motif version prior to 2.1.
2063 #endif],
2064     emacs_cv_motif_version_2_1=yes, emacs_cv_motif_version_2_1=no)])
2065   if test $emacs_cv_motif_version_2_1 = yes; then
2066     AC_CHECK_LIB(Xp, XpCreateContext, LIBXP=-lXp)
2067   else
2068     AC_CACHE_CHECK(for LessTif where some systems put it, emacs_cv_lesstif,
2069     # We put this in CFLAGS temporarily to precede other -I options
2070     # that might be in CFLAGS temporarily.
2071     # We put this in CPPFLAGS where it precedes the other -I options.
2072     OLD_CPPFLAGS=$CPPFLAGS
2073     OLD_CFLAGS=$CFLAGS
2074     CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS"
2075     CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS"
2076     [AC_TRY_COMPILE([#include </usr/X11R6/LessTif/Motif1.2/include/Xm/Xm.h>],
2077       [int x = 5;],
2078       emacs_cv_lesstif=yes, emacs_cv_lesstif=no)])
2079     if test $emacs_cv_lesstif = yes; then
2080       # Make sure this -I option remains in CPPFLAGS after it is set
2081       # back to REAL_CPPFLAGS.
2082       # There is no need to change REAL_CFLAGS, because REAL_CFLAGS does not
2083       # have those other -I options anyway.  Ultimately, having this
2084       # directory ultimately in CPPFLAGS will be enough.
2085       REAL_CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $REAL_CPPFLAGS"
2086       LDFLAGS="-L/usr/X11R6/LessTif/Motif1.2/lib $LDFLAGS"
2087     else
2088       CFLAGS=$OLD_CFLAGS
2089       CPPFLAGS=$OLD_CPPFLAGS
2090     fi
2091   fi
2094 dnl Use toolkit scroll bars if configured for GTK or X toolkit and either
2095 dnl using Motif or Xaw3d is available, and unless
2096 dnl --with-toolkit-scroll-bars=no was specified.
2098 AH_TEMPLATE(USE_TOOLKIT_SCROLL_BARS,
2099             [Define to 1 if we should use toolkit scroll bars.])dnl
2100 USE_TOOLKIT_SCROLL_BARS=no
2101 if test "${with_toolkit_scroll_bars}" != "no"; then
2102   if test "${USE_X_TOOLKIT}" != "none"; then
2103     if test "${USE_X_TOOLKIT}" = "MOTIF"; then
2104       AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
2105       HAVE_XAW3D=no
2106       USE_TOOLKIT_SCROLL_BARS=yes
2107     elif test "${HAVE_XAW3D}" = "yes"; then
2108       AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
2109       USE_TOOLKIT_SCROLL_BARS=yes
2110     fi
2111   elif test "${HAVE_GTK}" = "yes"; then
2112     AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
2113     USE_TOOLKIT_SCROLL_BARS=yes
2114   elif test "${HAVE_NS}" = "yes"; then
2115     AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
2116     USE_TOOLKIT_SCROLL_BARS=yes
2117   fi
2120 dnl See if XIM is available.
2121 AC_TRY_COMPILE([
2122           #include <X11/Xlib.h>
2123           #include <X11/Xresource.h>],
2124          [XIMProc  callback;],
2125          [HAVE_XIM=yes
2126          AC_DEFINE(HAVE_XIM, 1, [Define to 1 if XIM is available])],
2127          HAVE_XIM=no)
2129 dnl `--with-xim' now controls only the initial value of use_xim at run time.
2131 if test "${with_xim}" != "no"; then
2132   AC_DEFINE(USE_XIM, 1,
2133             [Define to 1 if we should use XIM, if it is available.])
2137 if test "${HAVE_XIM}" != "no"; then
2138   late_CFLAGS=$CFLAGS
2139   if test "$GCC" = yes; then
2140     CFLAGS="$CFLAGS --pedantic-errors"
2141   fi
2142   AC_TRY_COMPILE([
2143 #include <X11/Xlib.h>
2144 #include <X11/Xresource.h>],
2145 [Display *display;
2146 XrmDatabase db;
2147 char *res_name;
2148 char *res_class;
2149 XIMProc  callback;
2150 XPointer *client_data;
2151 #ifndef __GNUC__
2152 /* If we're not using GCC, it's probably not XFree86, and this is
2153    probably right, but we can't use something like --pedantic-errors.  */
2154 extern Bool XRegisterIMInstantiateCallback(Display*, XrmDatabase, char*,
2155                                            char*, XIMProc, XPointer*);
2156 #endif
2157 (void)XRegisterIMInstantiateCallback(display, db, res_name, res_class, callback,
2158    client_data);],
2159     [emacs_cv_arg6_star=yes])
2160   AH_TEMPLATE(XRegisterIMInstantiateCallback_arg6,
2161          [Define to the type of the 6th arg of XRegisterIMInstantiateCallback,
2162 either XPointer or XPointer*.])dnl
2163   if test "$emacs_cv_arg6_star" = yes; then
2164     AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer*])
2165   else
2166     AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer])
2167   fi
2168   CFLAGS=$late_CFLAGS
2171 ### Start of font-backend (under any platform) section.
2172 # (nothing here yet -- this is a placeholder)
2173 ### End of font-backend (under any platform) section.
2175 ### Start of font-backend (under X11) section.
2176 if test "${HAVE_X11}" = "yes"; then
2177    PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= 2.2.0, HAVE_FC=yes, HAVE_FC=no)
2179    ## Use -lXft if available, unless `--with-xft=no'.
2180    HAVE_XFT=maybe
2181     if test "${HAVE_FC}" = "no" || test "x${with_x}" = "xno"; then
2182       with_xft="no";
2183     fi
2184     if test "x${with_xft}" != "xno"; then
2186       PKG_CHECK_MODULES(XFT, xft >= 0.13.0, , HAVE_XFT=no)
2187       ## Because xftfont.c uses XRenderQueryExtension, we also
2188       ## need to link to -lXrender.
2189       HAVE_XRENDER=no
2190       AC_CHECK_LIB(Xrender, XRenderQueryExtension, HAVE_XRENDER=yes)
2191       if test "$HAVE_XFT" != no && test "$HAVE_XRENDER" != no; then
2192         OLD_CPPFLAGS="$CPPFLAGS"
2193         OLD_CFLAGS="$CFLAGS"
2194         OLD_LIBS="$LIBS"
2195         CPPFLAGS="$CPPFLAGS $XFT_CFLAGS"
2196         CFLAGS="$CFLAGS $XFT_CFLAGS"
2197         XFT_LIBS="-lXrender $XFT_LIBS"
2198         LIBS="$XFT_LIBS $LIBS"
2199         AC_CHECK_HEADER(X11/Xft/Xft.h,
2200           AC_CHECK_LIB(Xft, XftFontOpen, HAVE_XFT=yes, , $XFT_LIBS))
2202         if test "${HAVE_XFT}" = "yes"; then
2203           AC_DEFINE(HAVE_XFT, 1, [Define to 1 if you have the Xft library.])
2204             AC_SUBST(XFT_LIBS)
2205           C_SWITCH_X_SITE="$C_SWITCH_X_SITE $XFT_CFLAGS"
2206         else
2207           CPPFLAGS="$OLD_CPPFLAGS"
2208           CFLAGS="$OLD_CFLAGS"
2209           LIBS="$OLD_LIBS"
2210         fi                        # "${HAVE_XFT}" = "yes"
2211       fi                          # "$HAVE_XFT" != no
2212     fi                            # "x${with_xft}" != "xno"
2214     dnl For the "Does Emacs use" message at the end.
2215     if test "$HAVE_XFT" != "yes"; then
2216        HAVE_XFT=no
2217     fi
2220     HAVE_FREETYPE=no
2221     ## We used to allow building with FreeType and without Xft.
2222     ## However, the ftx font backend driver is not in good shape.
2223     if test "${HAVE_XFT}" = "yes"; then
2224       dnl As we use Xft, we anyway use freetype.
2225       dnl There's no need for additional CFLAGS and LIBS.
2226       HAVE_FREETYPE=yes
2227       FONTCONFIG_CFLAGS=
2228       FONTCONFIG_LIBS=
2229     fi
2231     HAVE_LIBOTF=no
2232     if test "${HAVE_FREETYPE}" = "yes"; then
2233       AC_DEFINE(HAVE_FREETYPE, 1,
2234                 [Define to 1 if using the freetype and fontconfig libraries.])
2235       if test "${with_libotf}" != "no"; then
2236         PKG_CHECK_MODULES(LIBOTF, libotf, HAVE_LIBOTF=yes,
2237                           HAVE_LIBOTF=no)
2238         if test "$HAVE_LIBOTF" = "yes"; then
2239           AC_DEFINE(HAVE_LIBOTF, 1, [Define to 1 if using libotf.])
2240           AC_CHECK_LIB(otf, OTF_get_variation_glyphs,
2241                        HAVE_OTF_GET_VARIATION_GLYPHS=yes,
2242                        HAVE_OTF_GET_VARIATION_GLYPHS=no)
2243           if test "${HAVE_OTF_GET_VARIATION_GLYPHS}" = "yes"; then
2244             AC_DEFINE(HAVE_OTF_GET_VARIATION_GLYPHS, 1,
2245                       [Define to 1 if libotf has OTF_get_variation_glyphs.])
2246           fi
2247         fi
2248       fi
2249     dnl FIXME should there be an error if HAVE_FREETYPE != yes?
2250     dnl Does the new font backend require it, or can it work without it?
2251     fi
2253     HAVE_M17N_FLT=no
2254     if test "${HAVE_LIBOTF}" = yes; then
2255       if test "${with_m17n_flt}" != "no"; then
2256         PKG_CHECK_MODULES(M17N_FLT, m17n-flt, HAVE_M17N_FLT=yes, HAVE_M17N_FLT=no)
2257         if test "$HAVE_M17N_FLT" = "yes"; then
2258           AC_DEFINE(HAVE_M17N_FLT, 1, [Define to 1 if using libm17n-flt.])
2259         fi
2260       fi
2261     fi
2262 else
2263     HAVE_XFT=no
2264     HAVE_FREETYPE=no
2265     HAVE_LIBOTF=no
2266     HAVE_M17N_FLT=no
2269 ### End of font-backend (under X11) section.
2271 AC_SUBST(FREETYPE_CFLAGS)
2272 AC_SUBST(FREETYPE_LIBS)
2273 AC_SUBST(FONTCONFIG_CFLAGS)
2274 AC_SUBST(FONTCONFIG_LIBS)
2275 AC_SUBST(LIBOTF_CFLAGS)
2276 AC_SUBST(LIBOTF_LIBS)
2277 AC_SUBST(M17N_FLT_CFLAGS)
2278 AC_SUBST(M17N_FLT_LIBS)
2280 ### Use -lXpm if available, unless `--with-xpm=no'.
2281 HAVE_XPM=no
2282 LIBXPM=
2283 if test "${HAVE_X11}" = "yes"; then
2284   if test "${with_xpm}" != "no"; then
2285     AC_CHECK_HEADER(X11/xpm.h,
2286       [AC_CHECK_LIB(Xpm, XpmReadFileToPixmap, HAVE_XPM=yes, , -lX11)])
2287     if test "${HAVE_XPM}" = "yes"; then
2288       AC_MSG_CHECKING(for XpmReturnAllocPixels preprocessor define)
2289       AC_EGREP_CPP(no_return_alloc_pixels,
2290       [#include "X11/xpm.h"
2291 #ifndef XpmReturnAllocPixels
2292 no_return_alloc_pixels
2293 #endif
2294       ], HAVE_XPM=no, HAVE_XPM=yes)
2296       if test "${HAVE_XPM}" = "yes"; then
2297         AC_MSG_RESULT(yes)
2298       else
2299         AC_MSG_RESULT(no)
2300       fi
2301     fi
2302   fi
2304   if test "${HAVE_XPM}" = "yes"; then
2305     AC_DEFINE(HAVE_XPM, 1, [Define to 1 if you have the Xpm libary (-lXpm).])
2306     LIBXPM=-lXpm
2307   fi
2309 AC_SUBST(LIBXPM)
2311 ### Use -ljpeg if available, unless `--with-jpeg=no'.
2312 HAVE_JPEG=no
2313 LIBJPEG=
2314 if test "${HAVE_X11}" = "yes"; then
2315   if test "${with_jpeg}" != "no"; then
2316     dnl Checking for jpeglib.h can lose because of a redefinition of
2317     dnl  HAVE_STDLIB_H.
2318     AC_CHECK_HEADER(jerror.h,
2319       [AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes)])
2320   fi
2322   AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl
2323   if test "${HAVE_JPEG}" = "yes"; then
2324     AC_DEFINE(HAVE_JPEG)
2325     AC_EGREP_CPP([version= *(6[2-9]|[7-9][0-9])],
2326         [#include <jpeglib.h>
2327          version=JPEG_LIB_VERSION
2329         [AC_DEFINE(HAVE_JPEG)],
2330         [AC_MSG_WARN([libjpeg found, but not version 6b or later])
2331         HAVE_JPEG=no])
2332   fi
2333   if test "${HAVE_JPEG}" = "yes"; then
2334     LIBJPEG=-ljpeg
2335   fi
2337 AC_SUBST(LIBJPEG)
2339 ### Use -lpng if available, unless `--with-png=no'.
2340 HAVE_PNG=no
2341 LIBPNG=
2342 if test "${HAVE_X11}" = "yes"; then
2343   if test "${with_png}" != "no"; then
2344     # Debian unstable as of July 2003 has multiple libpngs, and puts png.h
2345     # in /usr/include/libpng.
2346     AC_CHECK_HEADERS(png.h libpng/png.h)
2347     if test "$ac_cv_header_png_h" = yes || test "$ac_cv_header_libpng_png_h" = yes ; then
2348       AC_CHECK_LIB(png, png_get_channels, HAVE_PNG=yes, , -lz -lm)
2349     fi
2350   fi
2352   if test "${HAVE_PNG}" = "yes"; then
2353     AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library (-lpng).])
2354     LIBPNG="-lpng -lz -lm"
2355   fi
2357 AC_SUBST(LIBPNG)
2359 ### Use -ltiff if available, unless `--with-tiff=no'.
2360 HAVE_TIFF=no
2361 LIBTIFF=
2362 if test "${HAVE_X11}" = "yes"; then
2363   if test "${with_tiff}" != "no"; then
2364     AC_CHECK_HEADER(tiffio.h,
2365       [tifflibs="-lz -lm"
2366       # At least one tiff package requires the jpeg library.
2367       if test "${HAVE_JPEG}" = yes; then tifflibs="-ljpeg $tifflibs"; fi
2368       AC_CHECK_LIB(tiff, TIFFGetVersion, HAVE_TIFF=yes, , $tifflibs)])
2369   fi
2371   if test "${HAVE_TIFF}" = "yes"; then
2372     AC_DEFINE(HAVE_TIFF, 1, [Define to 1 if you have the tiff library (-ltiff).])
2373     dnl FIXME -lz -lm, as per libpng?
2374     LIBTIFF=-ltiff
2375   fi
2377 AC_SUBST(LIBTIFF)
2379 ### Use -lgif or -lungif if available, unless `--with-gif=no'.
2380 HAVE_GIF=no
2381 LIBGIF=
2382 if test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no"; then
2383   AC_CHECK_HEADER(gif_lib.h,
2384 # EGifPutExtensionLast only exists from version libungif-4.1.0b1.
2385 # Earlier versions can crash Emacs.
2386     [AC_CHECK_LIB(gif, EGifPutExtensionLast, HAVE_GIF=yes, HAVE_GIF=maybe)])
2388   if test "$HAVE_GIF" = yes; then
2389     LIBGIF=-lgif
2390   elif test "$HAVE_GIF" = maybe; then
2391 # If gif_lib.h but no libgif, try libungif.
2392     AC_CHECK_LIB(ungif, EGifPutExtensionLast, HAVE_GIF=yes, HAVE_GIF=no)
2393     test "$HAVE_GIF" = yes && LIBGIF=-lungif
2394   fi
2396   if test "${HAVE_GIF}" = "yes"; then
2397     AC_DEFINE(HAVE_GIF, 1, [Define to 1 if you have a gif (or ungif) library.])
2398   fi
2400 AC_SUBST(LIBGIF)
2402 dnl Check for required libraries.
2403 if test "${HAVE_X11}" = "yes"; then
2404   MISSING=""
2405   WITH_NO=""
2406   test "${with_xpm}" != "no" && test "${HAVE_XPM}" != "yes" &&
2407     MISSING="libXpm" && WITH_NO="--with-xpm=no"
2408   test "${with_jpeg}" != "no" && test "${HAVE_JPEG}" != "yes" &&
2409     MISSING="$MISSING libjpeg" && WITH_NO="$WITH_NO --with-jpeg=no"
2410   test "${with_png}" != "no" && test "${HAVE_PNG}" != "yes" &&
2411     MISSING="$MISSING libpng" && WITH_NO="$WITH_NO --with-png=no"
2412   test "${with_gif}" != "no" && test "${HAVE_GIF}" != "yes" &&
2413     MISSING="$MISSING libgif/libungif" && WITH_NO="$WITH_NO --with-gif=no"
2414   test "${with_tiff}" != "no" && test "${HAVE_TIFF}" != "yes" &&
2415     MISSING="$MISSING libtiff" && WITH_NO="$WITH_NO --with-tiff=no"
2417   if test "X${MISSING}" != X; then
2418     AC_MSG_ERROR([The following required libraries were not found:
2419     $MISSING
2420 Maybe some development libraries/packages are missing?
2421 If you don't want to link with them give
2422     $WITH_NO
2423 as options to configure])
2424   fi
2427 ### Use -lgpm if available, unless `--with-gpm=no'.
2428 HAVE_GPM=no
2429 LIBGPM=
2430 MOUSE_SUPPORT=
2431 if test "${with_gpm}" != "no"; then
2432   AC_CHECK_HEADER(gpm.h,
2433     [AC_CHECK_LIB(gpm, Gpm_Open, HAVE_GPM=yes)])
2435   if test "${HAVE_GPM}" = "yes"; then
2436     AC_DEFINE(HAVE_GPM, 1, [Define to 1 if you have the gpm library (-lgpm).])
2437     LIBGPM=-lgpm
2438     ## May be reset below.
2439     MOUSE_SUPPORT="\$(GPM_MOUSE_SUPPORT)"
2440   fi
2442 AC_SUBST(LIBGPM)
2444 dnl Check for malloc/malloc.h on darwin
2445 AC_CHECK_HEADER(malloc/malloc.h, [AC_DEFINE(HAVE_MALLOC_MALLOC_H, 1, [Define to 1 if you have the <malloc/malloc.h> header file.])])
2447 C_SWITCH_X_SYSTEM=
2448 ### Use NeXTstep API to implement GUI.
2449 if test "${HAVE_NS}" = "yes"; then
2450   AC_DEFINE(HAVE_NS, 1, [Define to 1 if you are using the NeXTstep API, either GNUstep or Cocoa on Mac OS X.])
2451   if test "${NS_IMPL_COCOA}" = "yes"; then
2452     AC_DEFINE(NS_IMPL_COCOA, 1, [Define to 1 if you are using NS windowing under MacOS X.])
2453     GNU_OBJC_CFLAGS=
2454   fi
2455   if test "${NS_IMPL_GNUSTEP}" = "yes"; then
2456     AC_DEFINE(NS_IMPL_GNUSTEP, 1, [Define to 1 if you are using NS windowing under GNUstep.])
2457     # See also .m.o rule in Makefile.in */
2458     # FIXME: are all these flags really needed?  Document here why.  */
2459     C_SWITCH_X_SYSTEM="-D_REENTRANT -fPIC -fno-strict-aliasing"
2460     GNU_OBJC_CFLAGS="-fgnu-runtime -Wno-import -fconstant-string-class=NSConstantString -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN -DGSDIAGNOSE"
2461   fi
2462   if test "${NS_HAVE_NSINTEGER}" = "yes"; then
2463     AC_DEFINE(NS_HAVE_NSINTEGER, 1, [Define to 1 if `NSInteger' is defined.])
2464   fi
2465   # We also have mouse menus.
2466   HAVE_MENUS=yes
2467   OTHER_FILES=ns-app
2471 ### Use session management (-lSM -lICE) if available
2472 HAVE_X_SM=no
2473 LIBXSM=
2474 if test "${HAVE_X11}" = "yes"; then
2475   AC_CHECK_HEADER(X11/SM/SMlib.h,
2476     [AC_CHECK_LIB(SM, SmcOpenConnection, HAVE_X_SM=yes, , -lICE)])
2478   if test "${HAVE_X_SM}" = "yes"; then
2479     AC_DEFINE(HAVE_X_SM, 1, [Define to 1 if you have the SM library (-lSM).])
2480     LIBXSM="-lSM -lICE"
2481     case "$LIBS" in
2482       *-lSM*) ;;
2483       *)      LIBS="$LIBXSM $LIBS" ;;
2484     esac
2485   fi
2487 AC_SUBST(LIBXSM)
2489 # If netdb.h doesn't declare h_errno, we must declare it by hand.
2490 AC_CACHE_CHECK(whether netdb declares h_errno,
2491                emacs_cv_netdb_declares_h_errno,
2492 [AC_TRY_LINK([#include <netdb.h>],
2493   [return h_errno;],
2494   emacs_cv_netdb_declares_h_errno=yes, emacs_cv_netdb_declares_h_errno=no)])
2495 if test $emacs_cv_netdb_declares_h_errno = yes; then
2496   AC_DEFINE(HAVE_H_ERRNO, 1, [Define to 1 if netdb.h declares h_errno.])
2499 AC_FUNC_ALLOCA
2501 dnl src/alloca.c has been removed.  Could also check if $ALLOCA is set?
2502 dnl FIXME is there an autoconf test that does the right thing, without
2503 dnl needing to call A_M_E afterwards?
2504 if test x"$ac_cv_func_alloca_works" != xyes; then
2505    AC_MSG_ERROR( [a system implementation of alloca is required] )
2508 # fmod, logb, and frexp are found in -lm on most systems.
2509 # On HPUX 9.01, -lm does not contain logb, so check for sqrt.
2510 AC_CHECK_LIB(m, sqrt)
2512 # Check for mail-locking functions in a "mail" library.  Probably this should
2513 # have the same check as for liblockfile below.
2514 AC_CHECK_LIB(mail, maillock, have_mail=yes, have_mail=no)
2515 if test $have_mail = yes; then
2516   LIBS_MAIL=-lmail
2517   LIBS="$LIBS_MAIL $LIBS"
2518   AC_DEFINE(HAVE_LIBMAIL, 1, [Define to 1 if you have the `mail' library (-lmail).])
2519 else
2520   LIBS_MAIL=
2522 dnl Debian, at least:
2523 AC_CHECK_LIB(lockfile, maillock, have_lockfile=yes, have_lockfile=no)
2524 if test $have_lockfile = yes; then
2525    LIBS_MAIL=-llockfile
2526    LIBS="$LIBS_MAIL $LIBS"
2527    AC_DEFINE(HAVE_LIBLOCKFILE, 1, [Define to 1 if you have the `lockfile' library (-llockfile).])
2528 else
2529 # If we have the shared liblockfile, assume we must use it for mail
2530 # locking (e.g. Debian).  If we couldn't link against liblockfile
2531 # (no liblockfile.a installed), ensure that we don't need to.
2532   dnl This works for files generally, not just executables.
2533   dnl Should we look elsewhere for it?  Maybe examine /etc/ld.so.conf?
2534   AC_CHECK_PROG(liblockfile, liblockfile.so, yes, no,
2535                 /usr/lib:/lib:/usr/local/lib:$LD_LIBRARY_PATH)
2536   if test $ac_cv_prog_liblockfile = yes; then
2537     AC_MSG_ERROR([Shared liblockfile found but can't link against it.
2538 This probably means that movemail could lose mail.
2539 There may be a `development' package to install containing liblockfile.])
2540   fi
2542 AC_CHECK_FUNCS(touchlock)
2543 AC_CHECK_HEADERS(maillock.h)
2544 AC_SUBST(LIBS_MAIL)
2546 ## Define MAIL_USE_FLOCK (or LOCKF) if the mailer uses flock (or lockf) to
2547 ## interlock access to the mail spool.  The alternative is a lock file named
2548 ## /usr/spool/mail/$USER.lock.
2549 mail_lock=no
2550 case "$opsys" in
2551   aix4-2) mail_lock="lockf" ;;
2553   gnu|freebsd|netbsd|openbsd|darwin|irix6-5) mail_lock="flock" ;;
2555   ## On GNU/Linux systems, both methods are used by various mail programs.
2556   ## I assume most people are using newer mailers that have heard of flock.
2557   ## Change this if you need to.
2558   ## Debian contains a patch which says: ``On Debian/GNU/Linux systems,
2559   ## configure gets the right answers, and that means *NOT* using flock.
2560   ## Using flock is guaranteed to be the wrong thing. See Debian Policy
2561   ## for details.'' and then uses `#ifdef DEBIAN'.  Unfortunately the
2562   ## Debian maintainer hasn't provided a clean fix for Emacs.
2563   ## movemail.c will use `maillock' when MAILDIR, HAVE_LIBMAIL and
2564   ## HAVE_MAILLOCK_H are defined, so the following appears to be the
2565   ## correct logic.  -- fx
2566   ## We must check for HAVE_LIBLOCKFILE too, as movemail does.
2567   ## liblockfile is a Free Software replacement for libmail, used on
2568   ## Debian systems and elsewhere. -rfr.
2569   gnu-*)
2570     mail_lock="flock"
2571     if test $have_mail = yes || test $have_lockfile = yes; then
2572       test $ac_cv_header_maillock_h = yes && mail_lock=no
2573     fi
2574     ;;
2575 esac
2577 BLESSMAIL_TARGET=
2578 case "$mail_lock" in
2579   flock) AC_DEFINE(MAIL_USE_FLOCK, 1, [Define if the mailer uses flock to interlock the mail spool.]) ;;
2581   lockf) AC_DEFINE(MAIL_USE_LOCKF, 1, [Define if the mailer uses lockf to interlock the mail spool.]) ;;
2583   *) BLESSMAIL_TARGET="need-blessmail" ;;
2584 esac
2585 AC_SUBST(BLESSMAIL_TARGET)
2588 AC_CHECK_FUNCS(gethostname getdomainname dup2 \
2589 rename closedir mkdir rmdir sysinfo getrusage get_current_dir_name \
2590 random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime setsid \
2591 strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \
2592 utimes getrlimit setrlimit setpgid getcwd getwd shutdown getaddrinfo \
2593 __fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \
2594 sendto recvfrom getsockopt setsockopt getsockname getpeername \
2595 gai_strerror mkstemp getline getdelim mremap memmove fsync sync bzero \
2596 memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign \
2597 cfmakeraw cfsetspeed isnan copysign)
2599 AC_CHECK_HEADERS(sys/un.h)
2601 AC_FUNC_MKTIME
2602 if test "$ac_cv_func_working_mktime" = no; then
2603   AC_DEFINE(BROKEN_MKTIME, 1, [Define to 1 if the mktime function is broken.])
2606 AC_FUNC_GETLOADAVG
2608 AC_FUNC_FSEEKO
2610 # Configure getopt.
2611 m4_include([m4/getopt.m4])
2612 gl_GETOPT_IFELSE([
2613   gl_GETOPT_SUBSTITUTE_HEADER
2614   gl_PREREQ_GETOPT
2615   GETOPTOBJS='getopt.o getopt1.o'
2617 AC_SUBST(GETOPTOBJS)
2619 AC_FUNC_GETPGRP
2621 AC_FUNC_STRFTIME
2623 # UNIX98 PTYs.
2624 AC_CHECK_FUNCS(grantpt)
2626 # PTY-related GNU extensions.
2627 AC_CHECK_FUNCS(getpt)
2629 # Check this now, so that we will NOT find the above functions in ncurses.
2630 # That is because we have not set up to link ncurses in lib-src.
2631 # It's better to believe a function is not available
2632 # than to expect to find it in ncurses.
2633 # Also we need tputs and friends to be able to build at all.
2634 have_tputs_et_al=true
2635 AC_SEARCH_LIBS(tputs, [ncurses terminfo termcap], , have_tputs_et_al=false)
2636 if test "$have_tputs_et_al" != true; then
2637   AC_MSG_ERROR([I couldn't find termcap functions (tputs and friends).
2638 Maybe some development libraries/packages are missing?  Try installing
2639 libncurses-dev(el), libterminfo-dev(el) or similar.])
2641 # Must define this when any termcap library is found.
2642 AC_DEFINE(HAVE_LIBNCURSES, 1,
2643           [Define to 1 if you have the `ncurses' library (-lncurses).])
2644 ## FIXME This was the cpp logic, but I am not sure it is right.
2645 ## The above test has not necessarily found libncurses.
2646 HAVE_LIBNCURSES=yes
2648 ## Use terminfo instead of termcap?
2649 ## Note only system files NOT using terminfo are:
2650 ## freebsd < 40000, ms-w32, msdos, netbsd < 599002500, and
2651 ## darwin|gnu without ncurses.
2652 TERMINFO=no
2653 LIBS_TERMCAP=
2654 case "$opsys" in
2655   ## cygwin: Fewer environment variables to go wrong, more terminal types.
2656   ## hpux10-20: Use the system provided termcap(3) library.
2657   ## openbsd: David Mazieres <dm@reeducation-labor.lcs.mit.edu> says this
2658   ##  is necessary.  Otherwise Emacs dumps core when run -nw.
2659   aix4-2|cygwin|hpux*|irix6-5|openbsd|sol2*|unixware) TERMINFO=yes ;;
2661   ## darwin: Prevents crashes when running Emacs in Terminal.app under 10.2.
2662   ##  The ncurses library has been moved out of the System framework in
2663   ##  Mac OS X 10.2.  So if configure detects it, set the command-line
2664   ##  option to use it.
2665   darwin|gnu*)
2666     ## (HAVE_LIBNCURSES was not always true, but is since 2010-03-18.)
2667     if test "x$HAVE_LIBNCURSES" = "xyes"; then
2668       TERMINFO=yes
2669       LIBS_TERMCAP="-lncurses"
2670     fi
2671     ;;
2673   freebsd)
2674     AC_MSG_CHECKING([whether FreeBSD is new enough to use terminfo])
2675     AC_CACHE_VAL(emacs_cv_freebsd_terminfo,
2676     [AC_TRY_LINK([#include <osreldate.h>],
2677 [#if __FreeBSD_version < 400000
2678 fail;
2679 #endif
2680 ], emacs_cv_freebsd_terminfo=yes, emacs_cv_freebsd_terminfo=no)])
2682     AC_MSG_RESULT($emacs_cv_freebsd_terminfo)
2684     if test $emacs_cv_freebsd_terminfo = yes; then
2685       TERMINFO=yes
2686       LIBS_TERMCAP="-lncurses"
2687     else
2688       LIBS_TERMCAP="-ltermcap"
2689     fi
2690     ;;
2692   netbsd)
2693     if test $ac_cv_search_tputs = -lterminfo; then
2694       TERMINFO=yes
2695       LIBS_TERMCAP="-lterminfo"
2696     else
2697       LIBS_TERMCAP="-ltermcap"
2698     fi
2699     ;;
2701 esac
2703 case "$opsys" in
2704   ## hpux: Make sure we get select from libc rather than from libcurses
2705   ##  because libcurses on HPUX 10.10 has a broken version of select.
2706   ##  We used to use -lc -lcurses, but this may be cleaner.
2707   hpux*) LIBS_TERMCAP="-ltermcap" ;;
2709   openbsd) LIBS_TERMCAP="-lncurses" ;;
2711   ## Must use system termcap, if we use any termcap.  It does special things.
2712   sol2*) test "$TERMINFO" != yes && LIBS_TERMCAP="-ltermcap" ;;
2713 esac
2715 TERMCAP_OBJ=tparam.o
2716 if test $TERMINFO = yes; then
2717   AC_DEFINE(TERMINFO, 1, [Define to 1 if you use terminfo instead of termcap.])
2719   ## Default used to be -ltermcap.  Add a case above if need something else.
2720   test "x$LIBS_TERMCAP" = "x" && LIBS_TERMCAP="-lcurses"
2722   TERMCAP_OBJ=terminfo.o
2724 AC_SUBST(LIBS_TERMCAP)
2725 AC_SUBST(TERMCAP_OBJ)
2728 # Do we have res_init, for detecting changes in /etc/resolv.conf?
2729 resolv=no
2730 AC_TRY_LINK([#include <netinet/in.h>
2731 #include <arpa/nameser.h>
2732 #include <resolv.h>],
2733     [return res_init();],
2734     have_res_init=yes, have_res_init=no)
2735 if test "$have_res_init" = no; then
2736   OLIBS="$LIBS"
2737   LIBS="$LIBS -lresolv"
2738   AC_MSG_CHECKING(for res_init with -lresolv)
2739   AC_TRY_LINK([#include <netinet/in.h>
2740 #include <arpa/nameser.h>
2741 #include <resolv.h>],
2742     [return res_init();],
2743     have_res_init=yes, have_res_init=no)
2744   AC_MSG_RESULT($have_res_init)
2745   if test "$have_res_init" = yes ; then
2746     resolv=yes
2747   fi
2748   LIBS="$OLIBS"
2751 if test "$have_res_init" = yes; then
2752   AC_DEFINE(HAVE_RES_INIT, 1, [Define to 1 if res_init is available.])
2755 # Do we need the Hesiod library to provide the support routines?
2756 LIBHESIOD=
2757 if test "$with_hesiod" != no ; then
2758   # Don't set $LIBS here -- see comments above.  FIXME which comments?
2759   AC_CHECK_FUNC(res_send, , [AC_CHECK_FUNC(__res_send, ,
2760      [AC_CHECK_LIB(resolv, res_send, resolv=yes,
2761                   [AC_CHECK_LIB(resolv, __res_send, resolv=yes)])])])
2762   if test "$resolv" = yes ; then
2763     RESOLVLIB=-lresolv
2764   else
2765     RESOLVLIB=
2766   fi
2767   AC_CHECK_FUNC(hes_getmailhost, , [AC_CHECK_LIB(hesiod, hes_getmailhost,
2768         hesiod=yes, :, $RESOLVLIB)])
2770   if test x"$hesiod" = xyes; then
2771     AC_DEFINE(HAVE_LIBHESIOD, 1,
2772               [Define to 1 if you have the hesiod library (-lhesiod).])
2773     LIBHESIOD=-lhesiod
2774   fi
2776 AC_SUBST(LIBHESIOD)
2778 # Do we need libresolv (due to res_init or Hesiod)?
2779 if test "$resolv" = yes ; then
2780   AC_DEFINE(HAVE_LIBRESOLV, 1,
2781             [Define to 1 if you have the resolv library (-lresolv).])
2782   LIBRESOLV=-lresolv
2783 else
2784   LIBRESOLV=
2786 AC_SUBST(LIBRESOLV)
2788 # These tell us which Kerberos-related libraries to use.
2789 COM_ERRLIB=
2790 CRYPTOLIB=
2791 KRB5LIB=
2792 DESLIB=
2793 KRB4LIB=
2795 if test "${with_kerberos}" != no; then
2796   AC_CHECK_LIB(com_err, com_err, have_com_err=yes, have_com_err=no)
2797   if test $have_com_err = yes; then
2798     COM_ERRLIB=-lcom_err
2799     LIBS="$COM_ERRLIB $LIBS"
2800     AC_DEFINE(HAVE_LIBCOM_ERR, 1, [Define to 1 if you have the `com_err' library (-lcom_err).])
2801   fi
2802   AC_CHECK_LIB(crypto, mit_des_cbc_encrypt, have_crypto=yes, have_crypto=no)
2803   if test $have_crypto = yes; then
2804     CRYPTOLIB=-lcrypto
2805     LIBS="$CRYPTOLIB $LIBS"
2806     AC_DEFINE(HAVE_LIBCRYPTO, 1, [Define to 1 if you have the `crypto' library (-lcrypto).])
2807   fi
2808   AC_CHECK_LIB(k5crypto, mit_des_cbc_encrypt, have_k5crypto=yes, have_k5crypto=no)
2809   if test $have_k5crypto = yes; then
2810     CRYPTOLIB=-lk5crypto
2811     LIBS="$CRYPTOLIB $LIBS"
2812     AC_DEFINE(HAVE_LIBK5CRYPTO, 1, [Define to 1 if you have the `k5crypto' library (-lk5crypto).])
2813   fi
2814   AC_CHECK_LIB(krb5, krb5_init_context, have_krb5=yes, have_krb5=no)
2815   if test $have_krb5=yes; then
2816     KRB5LIB=-lkrb5
2817     LIBS="$KRB5LIB $LIBS"
2818     AC_DEFINE(HAVE_LIBKRB5, 1, [Define to 1 if you have the `krb5' library (-lkrb5).])
2819   fi
2820   dnl FIXME Simplify.  Does not match 22 logic, thanks to default_off?
2821   if test "${with_kerberos5}" = no; then
2822     AC_CHECK_LIB(des425, des_cbc_encrypt, have_des425=yes, have_des425=no )
2823     if test $have_des425 = yes; then
2824       DESLIB=-ldes425
2825       LIBS="$DESLIB $LIBS"
2826       AC_DEFINE(HAVE_LIBDES425, 1, [Define to 1 if you have the `des425' library (-ldes425).])
2827     else
2828       AC_CHECK_LIB(des, des_cbc_encrypt, have_des=yes, have_des=no)
2829       if test $have_des = yes; then
2830         DESLIB=-ldes
2831         LIBS="$DESLIB $LIBS"
2832         AC_DEFINE(HAVE_LIBDES, 1, [Define to 1 if you have the `des' library (-ldes).])
2833       fi
2834     fi
2835     AC_CHECK_LIB(krb4, krb_get_cred, have_krb4=yes, have_krb4=no)
2836     if test $have_krb4 = yes; then
2837       KRB4LIB=-lkrb4
2838       LIBS="$KRB4LIB $LIBS"
2839       AC_DEFINE(HAVE_LIBKRB4, 1, [Define to 1 if you have the `krb4' library (-lkrb4).])
2840     else
2841       AC_CHECK_LIB(krb, krb_get_cred, have_krb=yes, have_krb=no)
2842       if test $have_krb = yes; then
2843         KRB4LIB=-lkrb
2844         LIBS="$KRB4LIB $LIBS"
2845         AC_DEFINE(HAVE_LIBKRB, 1, [Define to 1 if you have the `krb' library (-lkrb).])
2846       fi
2847     fi
2848   fi
2850   if test "${with_kerberos5}" != no; then
2851     AC_CHECK_HEADERS(krb5.h,
2852       [AC_CHECK_MEMBERS([krb5_error.text, krb5_error.e_text],,,
2853                         [#include <krb5.h>])])
2854   else
2855     AC_CHECK_HEADERS(des.h,,
2856                      [AC_CHECK_HEADERS(kerberosIV/des.h,,
2857                                        [AC_CHECK_HEADERS(kerberos/des.h)])])
2858     AC_CHECK_HEADERS(krb.h,,
2859                      [AC_CHECK_HEADERS(kerberosIV/krb.h,,
2860                                        [AC_CHECK_HEADERS(kerberos/krb.h)])])
2861   fi
2862   AC_CHECK_HEADERS(com_err.h)
2865 AC_SUBST(COM_ERRLIB)
2866 AC_SUBST(CRYPTOLIB)
2867 AC_SUBST(KRB5LIB)
2868 AC_SUBST(DESLIB)
2869 AC_SUBST(KRB4LIB)
2871 # Solaris requires -lintl if you want strerror (which calls dgettext)
2872 # to return localized messages.
2873 AC_CHECK_LIB(intl, dgettext)
2875 AC_MSG_CHECKING(whether localtime caches TZ)
2876 AC_CACHE_VAL(emacs_cv_localtime_cache,
2877 [if test x$ac_cv_func_tzset = xyes; then
2878 AC_TRY_RUN([#include <time.h>
2879 extern char **environ;
2880 unset_TZ ()
2882   char **from, **to;
2883   for (to = from = environ; (*to = *from); from++)
2884     if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
2885       to++;
2887 char TZ_GMT0[] = "TZ=GMT0";
2888 char TZ_PST8[] = "TZ=PST8";
2889 main()
2891   time_t now = time ((time_t *) 0);
2892   int hour_GMT0, hour_unset;
2893   if (putenv (TZ_GMT0) != 0)
2894     exit (1);
2895   hour_GMT0 = localtime (&now)->tm_hour;
2896   unset_TZ ();
2897   hour_unset = localtime (&now)->tm_hour;
2898   if (putenv (TZ_PST8) != 0)
2899     exit (1);
2900   if (localtime (&now)->tm_hour == hour_GMT0)
2901     exit (1);
2902   unset_TZ ();
2903   if (localtime (&now)->tm_hour != hour_unset)
2904     exit (1);
2905   exit (0);
2906 }], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
2907 [# If we have tzset, assume the worst when cross-compiling.
2908 emacs_cv_localtime_cache=yes])
2909 else
2910         # If we lack tzset, report that localtime does not cache TZ,
2911         # since we can't invalidate the cache if we don't have tzset.
2912         emacs_cv_localtime_cache=no
2913 fi])dnl
2914 AC_MSG_RESULT($emacs_cv_localtime_cache)
2915 if test $emacs_cv_localtime_cache = yes; then
2916   AC_DEFINE(LOCALTIME_CACHE, 1,
2917             [Define to 1 if localtime caches TZ.])
2920 if test "x$HAVE_TIMEVAL" = xyes; then
2921   AC_CHECK_FUNCS(gettimeofday)
2922   if test $ac_cv_func_gettimeofday = yes; then
2923     AC_CACHE_CHECK(whether gettimeofday can accept two arguments,
2924                    emacs_cv_gettimeofday_two_arguments,
2925     [AC_TRY_COMPILE([
2926 #ifdef TIME_WITH_SYS_TIME
2927 #include <sys/time.h>
2928 #include <time.h>
2929 #else
2930 #ifdef HAVE_SYS_TIME_H
2931 #include <sys/time.h>
2932 #else
2933 #include <time.h>
2934 #endif
2935 #endif],
2936       [struct timeval time;
2937        gettimeofday (&time, 0);],
2938       emacs_cv_gettimeofday_two_arguments=yes,
2939       emacs_cv_gettimeofday_two_arguments=no)])
2940     if test $emacs_cv_gettimeofday_two_arguments = no; then
2941       AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT, 1,
2942                 [Define to 1 if gettimeofday accepts only one argument.])
2943     fi
2944   fi
2947 ok_so_far=yes
2948 AC_CHECK_FUNC(socket, , ok_so_far=no)
2949 if test $ok_so_far = yes; then
2950   AC_CHECK_HEADER(netinet/in.h, , ok_so_far=no)
2952 if test $ok_so_far = yes; then
2953   AC_CHECK_HEADER(arpa/inet.h, , ok_so_far=no)
2955 if test $ok_so_far = yes; then
2956 dnl Fixme: Not used.  Should this be HAVE_SOCKETS?
2957   AC_DEFINE(HAVE_INET_SOCKETS, 1,
2958             [Define to 1 if you have inet sockets.])
2961 AC_CHECK_HEADERS(sys/ioctl.h)
2963 if test -f /usr/lpp/X11/bin/smt.exp; then
2964   AC_DEFINE(HAVE_AIX_SMT_EXP, 1,
2965             [Define to 1 if the file /usr/lpp/X11/bin/smt.exp exists.])
2968 AC_MSG_CHECKING(whether system supports dynamic ptys)
2969 if test -d /dev/pts && ls -d /dev/ptmx > /dev/null 2>&1 ; then
2970   AC_MSG_RESULT(yes)
2971   AC_DEFINE(HAVE_DEV_PTMX, 1, [Define to 1 if dynamic ptys are supported.])
2972 else
2973   AC_MSG_RESULT(no)
2976 AC_FUNC_FORK
2978 dnl Adapted from Haible's version.
2979 AC_CACHE_CHECK([for nl_langinfo and CODESET], emacs_cv_langinfo_codeset,
2980   [AC_TRY_LINK([#include <langinfo.h>],
2981     [char* cs = nl_langinfo(CODESET);],
2982     emacs_cv_langinfo_codeset=yes,
2983     emacs_cv_langinfo_codeset=no)
2984   ])
2985 if test $emacs_cv_langinfo_codeset = yes; then
2986   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
2987     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
2990 AC_CHECK_TYPES(size_t)
2992 AC_TYPE_MBSTATE_T
2994 dnl Restrict could probably be used effectively other than in regex.c.
2995 AC_CACHE_CHECK([for C restrict keyword], emacs_cv_c_restrict,
2996   [AC_TRY_COMPILE([void fred (int *restrict x);], [],
2997                   emacs_cv_c_restrict=yes,
2998                   [AC_TRY_COMPILE([void fred (int *__restrict x);], [],
2999                                   emacs_cv_c_restrict=__restrict,
3000                                   emacs_cv_c_restrict=no)])])
3001 case "$emacs_cv_c_restrict" in
3002   yes) emacs_restrict=restrict;;
3003   no) emacs_restrict="";;
3004   *) emacs_restrict="$emacs_cv_c_restrict";;
3005 esac
3006 if test "$emacs_restrict" != __restrict; then
3007   AC_DEFINE_UNQUOTED(__restrict, $emacs_restrict,
3008     [Define to compiler's equivalent of C99 restrict keyword.
3009      Don't define if equivalent is `__restrict'.])
3012 AC_CACHE_CHECK([for C restricted array declarations], emacs_cv_c_restrict_arr,
3013   [AC_TRY_COMPILE([void fred (int x[__restrict]);], [],
3014                   emacs_cv_c_restrict_arr=yes, emacs_cv_c_restrict_arr=no)])
3015 if test "$emacs_cv_c_restrict_arr" = yes; then
3016   AC_DEFINE(__restrict_arr, __restrict,
3017     [Define to compiler's equivalent of C99 restrict keyword in array
3018      declarations.  Define as empty for no equivalent.])
3021 dnl Fixme: AC_SYS_POSIX_TERMIOS should probably be used, but it's not clear
3022 dnl how the tty code is related to POSIX and/or other versions of termios.
3023 dnl The following looks like a useful start.
3025 dnl AC_SYS_POSIX_TERMIOS
3026 dnl if test $ac_cv_sys_posix_termios = yes; then
3027 dnl    AC_DEFINE(HAVE_TERMIOS, 1, [Define to 1 if you have POSIX-style functions
3028 dnl                                and macros for terminal control.])
3029 dnl    AC_DEFINE(HAVE_TCATTR, 1, [Define to 1 if you have tcgetattr and tcsetattr.])
3030 dnl fi
3032 dnl Fixme: Use AC_FUNC_MEMCMP since memcmp is used.  (Needs libobj replacement.)
3034 # Set up the CFLAGS for real compilation, so we can substitute it.
3035 CFLAGS="$REAL_CFLAGS"
3036 CPPFLAGS="$REAL_CPPFLAGS"
3038 ## Hack to detect a buggy GCC version.
3039 if test "x$GCC" = xyes \
3040    && test x"`$CC --version 2> /dev/null | grep 'gcc.* 4.5.0'`" != x \
3041    && test x"`echo $CFLAGS | grep '\-O@<:@23@:>@'`" != x \
3042    && test x"`echo $CFLAGS | grep '\-fno-optimize-sibling-calls'`" = x; then
3043    AC_MSG_ERROR([GCC 4.5.0 has problems compiling Emacs; see etc/PROBLEMS'.])
3046 #### Find out which version of Emacs this is.
3047 [version=`grep 'const char emacs_version' ${srcdir}/src/emacs.c \
3048          | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`]
3049 if test x"${version}" = x; then
3050   AC_MSG_ERROR([can't find current emacs version in `${srcdir}/src/emacs.c'.])
3052 if test x"${version}" != x"$PACKAGE_VERSION"; then
3053   AC_MSG_WARN([version mismatch between `${srcdir}/configure.in' and `${srcdir}/src/emacs.c'.])
3056 ### Specify what sort of things we'll be editing into Makefile and config.h.
3057 ### Use configuration here uncanonicalized to avoid exceeding size limits.
3058 AC_SUBST(version)
3059 AC_SUBST(configuration)
3060 ## Unused?
3061 AC_SUBST(canonical)
3062 AC_SUBST(srcdir)
3063 AC_SUBST(prefix)
3064 AC_SUBST(exec_prefix)
3065 AC_SUBST(bindir)
3066 AC_SUBST(datadir)
3067 AC_SUBST(sharedstatedir)
3068 AC_SUBST(libexecdir)
3069 AC_SUBST(mandir)
3070 AC_SUBST(infodir)
3071 AC_SUBST(lispdir)
3072 AC_SUBST(locallisppath)
3073 AC_SUBST(lisppath)
3074 AC_SUBST(x_default_search_path)
3075 AC_SUBST(etcdir)
3076 AC_SUBST(archlibdir)
3077 AC_SUBST(docdir)
3078 AC_SUBST(bitmapdir)
3079 AC_SUBST(gamedir)
3080 AC_SUBST(gameuser)
3081 AC_SUBST(unexec)
3082 ## FIXME? Nothing uses @LD_SWITCH_X_SITE@.
3083 ## src/Makefile.in did add LD_SWITCH_X_SITE (as a cpp define) to the
3084 ## end of LIBX_BASE, but nothing ever set it.
3085 AC_SUBST(LD_SWITCH_X_SITE)
3086 AC_SUBST(C_SWITCH_X_SITE)
3087 AC_SUBST(C_SWITCH_X_SYSTEM)
3088 AC_SUBST(CFLAGS)
3089 ## Used in lwlib/Makefile.in.
3090 AC_SUBST(X_TOOLKIT_TYPE)
3091 AC_SUBST(machfile)
3092 AC_SUBST(opsysfile)
3093 AC_SUBST(GETLOADAVG_LIBS)
3094 AC_SUBST(ns_appdir)
3095 AC_SUBST(ns_appbindir)
3096 AC_SUBST(ns_appresdir)
3097 AC_SUBST(ns_appsrc)
3098 AC_SUBST(GNU_OBJC_CFLAGS)
3099 AC_SUBST(OTHER_FILES)
3101 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION,  "${canonical}",
3102                    [Define to the canonical Emacs configuration name.])
3103 AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}",
3104                    [Define to the options passed to configure.])
3105 AC_DEFINE_UNQUOTED(config_machfile,  "${machfile}",
3106                    [Define to the used machine dependent file.])
3107 AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}",
3108                    [Define to the used os dependent file.])
3110 XMENU_OBJ=
3111 XOBJ=
3112 FONT_OBJ=
3113 if test "${HAVE_X_WINDOWS}" = "yes" ; then
3114   AC_DEFINE(HAVE_X_WINDOWS, 1,
3115             [Define to 1 if you want to use the X window system.])
3116   XMENU_OBJ=xmenu.o
3117   XOBJ="xterm.o xfns.o xselect.o xrdb.o fontset.o xsmfns.o fringe.o image.o xsettings.o xgselect.o"
3118   FONT_OBJ=xfont.o
3119   if test "$HAVE_XFT" = "yes"; then
3120     FONT_OBJ="$FONT_OBJ ftfont.o xftfont.o ftxfont.o"
3121   elif test "$HAVE_FREETYPE" = "yes"; then
3122     FONT_OBJ="$FONT_OBJ ftfont.o ftxfont.o"
3123   fi
3124   AC_SUBST(FONT_OBJ)
3126 AC_SUBST(XMENU_OBJ)
3127 AC_SUBST(XOBJ)
3128 AC_SUBST(FONT_OBJ)
3130 WIDGET_OBJ=
3131 MOTIF_LIBW=
3132 if test "${USE_X_TOOLKIT}" != "none" ; then
3133   WIDGET_OBJ=widget.o
3134   AC_DEFINE(USE_X_TOOLKIT, 1, [Define to 1 if using an X toolkit.])
3135   if test "${USE_X_TOOLKIT}" = "LUCID"; then
3136     AC_DEFINE(USE_LUCID, 1, [Define to 1 if using the Lucid X toolkit.])
3137   elif test "${USE_X_TOOLKIT}" = "MOTIF"; then
3138     AC_DEFINE(USE_MOTIF, 1, [Define to 1 if using the Motif X toolkit.])
3139     MOTIF_LIBW=-lXm
3140     case "$opsys" in
3141       gnu-linux)
3142         ## Paul Abrahams <abrahams at equinox.shaysnet.com> says this is needed.
3143         MOTIF_LIBW="$MOTIF_LIBW -lXpm"
3144         ;;
3146       unixware)
3147         ## Richard Anthony Ryan <ryanr at ellingtn.ftc.nrcs.usda.gov>
3148         ## says -lXimp is needed in UNIX_SV ... 4.2 1.1.2.
3149         MOTIF_LIBW="MOTIF_LIBW -lXimp"
3150         ;;
3152       aix4-2)
3153         ## olson@mcs.anl.gov says -li18n is needed by -lXm.
3154         MOTIF_LIBW="$MOTIF_LIBW -li18n"
3155         ;;
3156     esac
3157     MOTIF_LIBW="$MOTIF_LIBW $LIBXP"
3158   fi
3160 AC_SUBST(WIDGET_OBJ)
3162 TOOLKIT_LIBW=
3163 case "$USE_X_TOOLKIT" in
3164   MOTIF) TOOLKIT_LIBW="$MOTIF_LIBW" ;;
3165   LUCID) TOOLKIT_LIBW="$LUCID_LIBW" ;;
3166   none) test "x$HAVE_GTK" = "xyes" && TOOLKIT_LIBW="$GTK_LIBS" ;;
3167 esac
3168 AC_SUBST(TOOLKIT_LIBW)
3170 if test "$USE_X_TOOLKIT" = "none"; then
3171   LIBXT_OTHER="\$(LIBXSM)"
3172   OLDXMENU_TARGET="really-oldXMenu"
3173 else
3174   LIBXT_OTHER="\$(LIBXMU) -lXt \$(LIBXTR6) -lXext"
3175   OLDXMENU_TARGET="really-lwlib"
3177 AC_SUBST(LIBXT_OTHER)
3179 ## The X Menu stuff is present in the X10 distribution, but missing
3180 ## from X11.  If we have X10, just use the installed library;
3181 ## otherwise, use our own copy.
3182 if test "${HAVE_X11}" = "yes" ; then
3183   AC_DEFINE(HAVE_X11, 1,
3184             [Define to 1 if you want to use version 11 of X windows.
3185              Otherwise, Emacs expects to use version 10.])
3187   if test "$USE_X_TOOLKIT" = "none"; then
3188     OLDXMENU="\${oldXMenudir}libXMenu11.a"
3189   else
3190     OLDXMENU="\${lwlibdir}liblw.a"
3191   fi
3192   LIBXMENU="\$(OLDXMENU)"
3193   LIBX_OTHER="\$(LIBXT) \$(LIBX_EXTRA)"
3194   OLDXMENU_DEPS="\${OLDXMENU} ../src/\${OLDXMENU}"
3195 else
3196   ## For a syntactically valid Makefile; not actually used for anything.
3197   ## See comments in src/Makefile.in.
3198   OLDXMENU=nothing
3199   ## FIXME This case (!HAVE_X11 && HAVE_X_WINDOWS) is no longer possible(?).
3200   if test "${HAVE_X_WINDOWS}" = "yes"; then
3201     LIBXMENU="-lXMenu"
3202   else
3203     LIBXMENU=
3204   fi
3205   LIBX_OTHER=
3206   OLDXMENU_DEPS=
3209 if test "$HAVE_GTK" = "yes" || test "$HAVE_MENUS" != "yes"; then
3210   OLDXMENU_TARGET=
3211   OLDXMENU=nothing  
3212   LIBXMENU=
3213   OLDXMENU_DEPS=
3216 AC_SUBST(OLDXMENU_TARGET)
3217 AC_SUBST(OLDXMENU)
3218 AC_SUBST(LIBXMENU)
3219 AC_SUBST(LIBX_OTHER)
3220 AC_SUBST(OLDXMENU_DEPS)
3222 if test "${HAVE_MENUS}" = "yes" ; then
3223   AC_DEFINE(HAVE_MENUS, 1,
3224             [Define to 1 if you have mouse menus.
3225              (This is automatic if you use X, but the option to specify it remains.)
3226              It is also defined with other window systems that support xmenu.c.])
3229 if test "${GNU_MALLOC}" = "yes" ; then
3230   AC_DEFINE(GNU_MALLOC, 1,
3231             [Define to 1 if you want to use the GNU memory allocator.])
3234 RALLOC_OBJ=
3235 if test "${REL_ALLOC}" = "yes" ; then
3236   AC_DEFINE(REL_ALLOC, 1,
3237             [Define REL_ALLOC if you want to use the relocating allocator for
3238              buffer space.])
3240   test "$system_malloc" != "yes" && RALLOC_OBJ=ralloc.o
3242 AC_SUBST(RALLOC_OBJ)
3244 if test "$opsys" = "cygwin"; then
3245   CYGWIN_OBJ="sheap.o"
3246   ## Cygwin differs because of its unexec().
3247   PRE_ALLOC_OBJ=
3248   POST_ALLOC_OBJ=lastfile.o
3249 else
3250   CYGWIN_OBJ=
3251   PRE_ALLOC_OBJ=lastfile.o
3252   POST_ALLOC_OBJ=
3254 AC_SUBST(CYGWIN_OBJ)
3255 AC_SUBST(PRE_ALLOC_OBJ)
3256 AC_SUBST(POST_ALLOC_OBJ)
3259 case "$opsys" in
3260   aix4-2) LD_SWITCH_SYSTEM_TEMACS="-Wl,-bnodelcsect" ;;
3262   darwin)
3263    ## The -headerpad option tells ld (see man page) to leave room at the
3264    ## end of the header for adding load commands.  Needed for dumping.
3265    ## 0x690 is the total size of 30 segment load commands (at 56
3266    ## each); under Cocoa 31 commands are required.
3267    if test "$HAVE_NS" = "yes"; then
3268      libs_nsgui="-framework AppKit"
3269      headerpad_extra=6C8
3270    else
3271      libs_nsgui=
3272      headerpad_extra=690
3273    fi
3274    LD_SWITCH_SYSTEM_TEMACS="-prebind $libs_nsgui -Xlinker -headerpad -Xlinker $headerpad_extra"
3276    ## This is here because src/Makefile.in did some extra fiddling around
3277    ## with LD_SWITCH_SYSTEM.  The cpp logic was:
3278    ##   #ifndef LD_SWITCH_SYSTEM
3279    ##   #if !defined (__GNUC__) && ((defined (BSD_SYSTEM) && !defined (COFF)))
3280    ## Since all the *bsds define LD_SWITCH_SYSTEM, this simplifies to:
3281    ## not using gcc, darwin system not on an alpha (ie darwin, since
3282    ## darwin + alpha does not occur).
3283    ## Because this was done in src/Makefile.in, the resulting part of
3284    ## LD_SWITCH_SYSTEM was not used in configure (ie, in ac_link).
3285    ## It therefore seems cleaner to put this in LD_SWITCH_SYSTEM_TEMACS,
3286    ## rather than LD_SWITCH_SYSTEM.
3287    test "x$LD_SWITCH_SYSTEM" = "x" && test "x$GCC" != "xyes" && \
3288      LD_SWITCH_SYSTEM_TEMACS="-X $LD_SWITCH_SYSTEM_TEMACS"
3289    ;;
3291   ## LD_SWITCH_X_SITE_AUX is a -R option saying where to find X at run-time.
3292   ## When handled by cpp, this was in LD_SWITCH_SYSTEM.  However, at
3293   ## the point where configure sourced the s/*.h file, LD_SWITCH_X_SITE_AUX
3294   ## had not yet been defined and was expanded to null.  Hence LD_SWITCH_SYSTEM
3295   ## had different values in configure (in ac_link) and src/Makefile.in.
3296   ## It seems clearer therefore to put this piece in LD_SWITCH_SYSTEM_TEMACS.
3297   gnu-linux) LD_SWITCH_SYSTEM_TEMACS="\$(LD_SWITCH_X_SITE_AUX)" ;;
3299   *) LD_SWITCH_SYSTEM_TEMACS= ;;
3300 esac
3302 if test "$NS_IMPL_GNUSTEP" = "yes"; then
3303   LD_SWITCH_SYSTEM_TEMACS="${LD_SWITCH_SYSTEM_TEMACS} -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES} -lgnustep-gui -lgnustep-base -lobjc -lpthread"
3306 AC_SUBST(LD_SWITCH_SYSTEM_TEMACS)
3309 LINKER=
3310 ORDINARY_LINK=
3311 case "$opsys" in
3312   ## gnu: GNU needs its own crt0.
3313   aix4-2|darwin|gnu|usg5-4|irix6-5|sol2*|unixware) ORDINARY_LINK=yes ;;
3315   cygwin) LINKER="\$(CC)" ;;
3317   ## On post 1.3 releases of NetBSD, gcc -nostdlib also clears the
3318   ## library search parth, i.e. it won't search /usr/lib for libc and
3319   ## friends.  Using -nostartfiles instead avoids this problem, and
3320   ## will also work on earlier NetBSD releases.
3321   netbsd|openbsd) LINKER="\$(CC) -nostartfiles" ;;
3323   ## macpcc: NAKAJI Hiroyuki <nakaji@tutrp.tut.ac.jp> says
3324   ##   MkLinux/LinuxPPC needs this.
3325   ## ibms390x only supports opsys = gnu-linux so it can be added here.
3326   gnu-*)
3327     case "$machine" in
3328       macppc|ibms390x) LINKER="\$(CC) -nostdlib" ;;
3329     esac
3330     ;;
3331 esac
3334 PRE_EDIT_LDFLAGS=
3335 POST_EDIT_LDFLAGS=
3336 if test "x$ORDINARY_LINK" = "xyes"; then
3338   LINKER="\$(CC)"
3339   AC_DEFINE(ORDINARY_LINK, 1, [Define if the C compiler is the linker.])
3341 ## The system files defining neither ORDINARY_LINK nor LINKER are:
3342 ## (bsd-common), freebsd, gnu-* not on macppc|ibms390x, hpux*.
3343 elif test "x$GCC" = "xyes" && test "x$LINKER" = "x"; then
3345   ## Versions of GCC >= 2.0 put their library, libgcc.a, in obscure
3346   ## places that are difficult to figure out at make time.  Fortunately,
3347   ## these same versions allow you to pass arbitrary flags on to the
3348   ## linker, so there is no reason not to use it as a linker.
3349   ##
3350   ## Well, it is not quite perfect.  The "-nostdlib" keeps GCC from
3351   ## searching for libraries in its internal directories, so we have to
3352   ## ask GCC explicitly where to find libgcc.a (LIB_GCC below).
3353   LINKER="\$(CC) -nostdlib"
3354   ## GCC passes any argument prefixed with -Xlinker directly to the linker.
3355   ## See prefix-args.c for an explanation of why we do not do this with the
3356   ## shell''s ``for'' construct.  Note that sane people do not have '.' in
3357   ## their paths, so we must use ./prefix-args.
3358   ## TODO either make prefix-args check ORDINARY_LINK internally,
3359   ## or remove it altogether (bug#6184), removing the need for this hack.
3360   PRE_EDIT_LDFLAGS='`./prefix-args -Xlinker'
3361   POST_EDIT_LDFLAGS='`'
3363 AC_SUBST(PRE_EDIT_LDFLAGS)
3364 AC_SUBST(POST_EDIT_LDFLAGS)
3366 test "x$LINKER" = "x" && LINKER=ld
3367 ## FIXME? What setting of EDIT_LDFLAGS should this have?
3368 test "$NS_IMPL_GNUSTEP" = "yes" && LINKER="\$(CC) -rdynamic"
3370 AC_SUBST(LINKER)
3373 ## FIXME? The logic here is not precisely the same as that above.
3374 ## There is no check here for a pre-defined LINKER.
3375 ## Should we only be setting LIB_GCC if LD ~ -nostdlib?
3376 LIB_GCC=
3377 if test "x$GCC" = "xyes" && test "x$ORDINARY_LINK" != "xyes"; then
3379   case "$opsys" in
3380     ## cygwin: don't link against static libgcc.
3381     cygwin|freebsd|netbsd|openbsd) LIB_GCC= ;;
3383     gnu-*)
3384       ## armin76@gentoo.org reported that the lgcc_s flag is necessary to
3385       ## build on ARM EABI under GNU/Linux.  (Bug#5518)
3386       ## Note that m/arm.h never bothered to undefine LIB_GCC first.
3387       if test "$machine" = "arm"; then
3388         LIB_GCC="-lgcc_s"
3389       else
3390         ## FIXME? s/gnu-linux.h used to define LIB_GCC as below, then
3391         ## immediately undefine it again and redefine it to empty.
3392         ## Was the C_SWITCH_X_SITE part really necessary?
3393 ##      LIB_GCC=`$CC $C_SWITCH_X_SITE -print-libgcc-file-name`
3394         LIB_GCC=
3395       fi
3396       ;;
3398     ## Ask GCC where to find libgcc.a.
3399     *) LIB_GCC=`$CC -print-libgcc-file-name 2> /dev/null` ;;
3400   esac
3401 fi                              dnl if $GCC
3402 AC_SUBST(LIB_GCC)
3405 TOOLTIP_SUPPORT=
3406 WINDOW_SUPPORT=
3407 ## If we're using X11/GNUstep, define some consequences.
3408 if test "$HAVE_X_WINDOWS" = "yes" || test "$HAVE_NS" = "yes"; then
3409   AC_DEFINE(HAVE_WINDOW_SYSTEM, 1, [Define if you have a window system.])
3410   AC_DEFINE(HAVE_MOUSE, 1, [Define if you have mouse support.])
3411   MOUSE_SUPPORT="\$(REAL_MOUSE_SUPPORT)"
3412   TOOLTIP_SUPPORT="\${lispsource}mouse.elc"
3414   WINDOW_SUPPORT="\$(BASE_WINDOW_SUPPORT)"
3415   test "$HAVE_X_WINDOWS" = "yes" && \
3416     WINDOW_SUPPORT="$WINDOW_SUPPORT \$(X_WINDOW_SUPPORT)"
3419 AC_SUBST(MOUSE_SUPPORT)
3420 AC_SUBST(TOOLTIP_SUPPORT)
3421 AC_SUBST(WINDOW_SUPPORT)
3424 AH_TOP([/* GNU Emacs site configuration template file.
3425    Copyright (C) 1988, 1993, 1994, 1999, 2000, 2001, 2002, 2004, 2005,
3426      2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc.
3428 This file is part of GNU Emacs.
3430 GNU Emacs is free software: you can redistribute it and/or modify
3431 it under the terms of the GNU General Public License as published by
3432 the Free Software Foundation, either version 3 of the License, or
3433 (at your option) any later version.
3435 GNU Emacs is distributed in the hope that it will be useful,
3436 but WITHOUT ANY WARRANTY; without even the implied warranty of
3437 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
3438 GNU General Public License for more details.
3440 You should have received a copy of the GNU General Public License
3441 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
3444 /* No code in Emacs #includes config.h twice, but some bits of code
3445    intended to work with other packages as well (like gmalloc.c)
3446    think they can include it as many times as they like.  */
3447 #ifndef EMACS_CONFIG_H
3448 #define EMACS_CONFIG_H
3449 ])dnl
3451 AH_BOTTOM([
3452 /* Define AMPERSAND_FULL_NAME if you use the convention
3453    that & in the full name stands for the login id.  */
3454 /* Turned on June 1996 supposing nobody will mind it.  */
3455 #define AMPERSAND_FULL_NAME
3457 /* Define HAVE_SOUND if we have sound support.  We know it works
3458    and compiles only on the specified platforms.   For others,
3459    it probably doesn't make sense to try.  */
3461 #if defined __FreeBSD__ || defined __NetBSD__ || defined __linux__
3462 #ifdef HAVE_MACHINE_SOUNDCARD_H
3463 #define HAVE_SOUND 1
3464 #endif
3465 #ifdef HAVE_SYS_SOUNDCARD_H
3466 #define HAVE_SOUND 1
3467 #endif
3468 #ifdef HAVE_SOUNDCARD_H
3469 #define HAVE_SOUND 1
3470 #endif
3471 #ifdef HAVE_ALSA
3472 #define HAVE_SOUND 1
3473 #endif
3474 #endif /* __FreeBSD__ || __NetBSD__ || __linux__  */
3476 /* If using GNU, then support inline function declarations.  */
3477 /* Don't try to switch on inline handling as detected by AC_C_INLINE
3478    generally, because even if non-gcc compilers accept `inline', they
3479    may reject `extern inline'.  */
3480 #if defined (__GNUC__) && defined (OPTIMIZE)
3481 #define INLINE __inline__
3482 #else
3483 #define INLINE
3484 #endif
3486 /* `subprocesses' should be defined if you want to
3487    have code for asynchronous subprocesses
3488    (as used in M-x compile and M-x shell).
3489    Only MSDOS does not support this (it overrides
3490    this in its config_opsysfile below).  */
3492 #define subprocesses
3494 /* Include the os and machine dependent files.  */
3495 #include config_opsysfile
3496 #include config_machfile
3498 /* Set up some defines, C and LD flags for NeXTstep interface on GNUstep.
3499   (There is probably a better place to do this, but right now the Cocoa
3500    side does this in s/darwin.h and we cannot
3501    parallel this exactly since GNUstep is multi-OS.  */
3502 #ifdef HAVE_NS
3503 # ifdef NS_IMPL_GNUSTEP
3504 /* GNUstep needs a bit more pure memory.  Of the existing knobs,
3505 SYSTEM_PURESIZE_EXTRA seems like the least likely to cause problems.  */
3506 #  define SYSTEM_PURESIZE_EXTRA 30000
3507 # endif /* NS_IMPL_GNUSTEP */
3508 #endif /* HAVE_NS */
3510 /* SIGTYPE is the macro we actually use.  */
3511 #ifndef SIGTYPE
3512 #define SIGTYPE RETSIGTYPE
3513 #endif
3515 #ifdef emacs /* Don't do this for lib-src.  */
3516 /* Tell regex.c to use a type compatible with Emacs.  */
3517 #define RE_TRANSLATE_TYPE Lisp_Object
3518 #define RE_TRANSLATE(TBL, C) CHAR_TABLE_TRANSLATE (TBL, C)
3519 #ifdef make_number
3520 /* If make_number is a macro, use it.  */
3521 #define RE_TRANSLATE_P(TBL) (!EQ (TBL, make_number (0)))
3522 #else
3523 /* If make_number is a function, avoid it.  */
3524 #define RE_TRANSLATE_P(TBL) (!(INTEGERP (TBL) && XINT (TBL) == 0))
3525 #endif
3526 #endif
3528 /* Avoid link-time collision with system mktime if we will use our own.  */
3529 #if ! HAVE_MKTIME || BROKEN_MKTIME
3530 #define mktime emacs_mktime
3531 #endif
3533 #define my_strftime nstrftime   /* for strftime.c */
3535 /* The rest of the code currently tests the CPP symbol BSTRING.
3536    Override any claims made by the system-description files.
3537    Note that on some SCO version it is possible to have bcopy and not bcmp.  */
3538 #undef BSTRING
3539 #if defined (HAVE_BCOPY) && defined (HAVE_BCMP)
3540 #define BSTRING
3541 #endif
3543 /* Some of the files of Emacs which are intended for use with other
3544    programs assume that if you have a config.h file, you must declare
3545    the type of getenv.
3547    This declaration shouldn't appear when alloca.s or Makefile.in
3548    includes config.h.  */
3549 #ifndef NOT_C_CODE
3550 extern char *getenv ();
3551 #endif
3553 /* These default definitions are good for almost all machines.
3554    The exceptions override them in m/MACHINE.h.  */
3556 #ifndef BITS_PER_CHAR
3557 #define BITS_PER_CHAR 8
3558 #endif
3560 #ifndef BITS_PER_SHORT
3561 #define BITS_PER_SHORT 16
3562 #endif
3564 /* Note that lisp.h uses this in a preprocessor conditional, so it
3565    would not work to use sizeof.  That being so, we do all of them
3566    without sizeof, for uniformity's sake.  */
3567 #ifndef BITS_PER_INT
3568 #define BITS_PER_INT 32
3569 #endif
3571 #ifndef BITS_PER_LONG
3572 #ifdef _LP64
3573 #define BITS_PER_LONG 64
3574 #else
3575 #define BITS_PER_LONG 32
3576 #endif
3577 #endif
3579 /* Define if the compiler supports function prototypes.  It may do so
3580    but not define __STDC__ (e.g. DEC C by default) or may define it as
3581    zero.  */
3582 #undef PROTOTYPES
3583 /* For mktime.c:  */
3584 #ifndef __P
3585 # if defined PROTOTYPES
3586 #  define __P(args) args
3587 # else
3588 #  define __P(args) ()
3589 # endif  /* GCC.  */
3590 #endif /* __P */
3592 /* Don't include "string.h" or <stdlib.h> in non-C code.  */
3593 #ifndef NOT_C_CODE
3594 #ifdef HAVE_STRING_H
3595 #include "string.h"
3596 #endif
3597 #ifdef HAVE_STRINGS_H
3598 #include "strings.h"  /* May be needed for bcopy & al.  */
3599 #endif
3600 #ifdef HAVE_STDLIB_H
3601 #include <stdlib.h>
3602 #endif
3603 #ifndef __GNUC__
3604 # ifdef HAVE_ALLOCA_H
3605 #  include <alloca.h>
3606 # else /* AIX files deal with #pragma.  */
3607 #  ifndef alloca /* predefined by HP cc +Olibcalls */
3608 char *alloca ();
3609 #  endif
3610 # endif /* HAVE_ALLOCA_H */
3611 #endif /* __GNUC__ */
3612 #ifndef HAVE_SIZE_T
3613 typedef unsigned size_t;
3614 #endif
3615 #endif /* NOT_C_CODE */
3617 /* Define HAVE_X_I18N if we have usable i18n support.  */
3619 #ifdef HAVE_X11R6
3620 #define HAVE_X_I18N
3621 #endif
3623 /* Define HAVE_X11R6_XIM if we have usable X11R6-style XIM support.  */
3625 #if defined HAVE_X11R6 && !defined INHIBIT_X11R6_XIM
3626 #define HAVE_X11R6_XIM
3627 #endif
3629 #if defined __GNUC__ && (__GNUC__ > 2 \
3630                          || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5))
3631 #define NO_RETURN       __attribute__ ((__noreturn__))
3632 #else
3633 #define NO_RETURN       /* nothing */
3634 #endif
3636 /* These won't be used automatically yet.  We also need to know, at least,
3637    that the stack is continuous.  */
3638 #ifdef __GNUC__
3639 #  ifndef GC_SETJMP_WORKS
3640   /* GC_SETJMP_WORKS is nearly always appropriate for GCC.  */
3641 #    define GC_SETJMP_WORKS 1
3642 #  endif
3643 #  ifndef GC_LISP_OBJECT_ALIGNMENT
3644 #    define GC_LISP_OBJECT_ALIGNMENT (__alignof__ (Lisp_Object))
3645 #  endif
3646 #endif
3648 #ifndef HAVE_BCOPY
3649 #define bcopy(a,b,s) memcpy (b,a,s)
3650 #endif
3651 #ifndef HAVE_BZERO
3652 #define bzero(a,s) memset (a,0,s)
3653 #endif
3654 #ifndef HAVE_BCMP
3655 #define BCMP memcmp
3656 #endif
3658 #endif /* EMACS_CONFIG_H */
3661 Local Variables:
3662 mode: c
3663 End:
3665 ])dnl
3667 #### Report on what we decided to do.
3668 #### Report GTK as a toolkit, even if it doesn't use Xt.
3669 #### It makes printing result more understandable as using GTK sets
3670 #### toolkit_scroll_bars to yes by default.
3671 if test "${HAVE_GTK}" = "yes"; then
3672   USE_X_TOOLKIT=GTK
3675 echo "
3676 Configured for \`${canonical}'.
3678   Where should the build process find the source code?    ${srcdir}
3679   What operating system and machine description files should Emacs use?
3680         \`${opsysfile}' and \`${machfile}'
3681   What compiler should emacs be built with?               ${CC} ${CFLAGS}
3682   Should Emacs use the GNU version of malloc?             ${GNU_MALLOC}${GNU_MALLOC_reason}
3683   Should Emacs use a relocating allocator for buffers?    ${REL_ALLOC}
3684   Should Emacs use mmap(2) for buffer allocation?         $use_mmap_for_buffers
3685   What window system should Emacs use?                    ${window_system}
3686   What toolkit should Emacs use?                          ${USE_X_TOOLKIT}"
3688 if test -n "${x_includes}"; then
3689 echo "  Where do we find X Windows header files?                ${x_includes}"
3690 else
3691 echo "  Where do we find X Windows header files?                Standard dirs"
3693 if test -n "${x_libraries}"; then
3694 echo "  Where do we find X Windows libraries?                   ${x_libraries}"
3695 else
3696 echo "  Where do we find X Windows libraries?                   Standard dirs"
3699 echo "  Does Emacs use -lXaw3d?                                 ${HAVE_XAW3D}"
3700 echo "  Does Emacs use -lXpm?                                   ${HAVE_XPM}"
3701 echo "  Does Emacs use -ljpeg?                                  ${HAVE_JPEG}"
3702 echo "  Does Emacs use -ltiff?                                  ${HAVE_TIFF}"
3703 echo "  Does Emacs use a gif library?                           ${HAVE_GIF} $LIBGIF"
3704 echo "  Does Emacs use -lpng?                                   ${HAVE_PNG}"
3705 echo "  Does Emacs use -lrsvg-2?                                ${HAVE_RSVG}"
3706 echo "  Does Emacs use -lgpm?                                   ${HAVE_GPM}"
3707 echo "  Does Emacs use -ldbus?                                  ${HAVE_DBUS}"
3708 echo "  Does Emacs use -lgconf?                                 ${HAVE_GCONF}"
3709 echo "  Does Emacs use -lselinux?                               ${HAVE_LIBSELINUX}"
3711 echo "  Does Emacs use -lfreetype?                              ${HAVE_FREETYPE}"
3712 echo "  Does Emacs use -lm17n-flt?                              ${HAVE_M17N_FLT}"
3713 echo "  Does Emacs use -lotf?                                   ${HAVE_LIBOTF}"
3714 echo "  Does Emacs use -lxft?                                   ${HAVE_XFT}"
3716 echo "  Does Emacs use toolkit scroll bars?                     ${USE_TOOLKIT_SCROLL_BARS}"
3717 echo
3719 if test $USE_XASSERTS = yes; then
3720    echo "  Compiling with asserts turned on."
3721    CPPFLAGS="$CPPFLAGS -DXASSERTS=1"
3724 echo
3726 if test "$HAVE_NS" = "yes"; then
3727    echo
3728    echo "You must run \"make install\" in order to test the built application.
3729 The installed application will go to nextstep/Emacs.app and can be
3730 run or moved from there."
3731    if test "$EN_NS_SELF_CONTAINED" = "yes"; then
3732       echo "The application will be fully self-contained."
3733     else
3734       echo "The lisp resources for the application will be installed under ${prefix}.
3735 You may need to run \"make install\" with sudo.  The application will fail
3736 to run if these resources are not installed."
3737    fi
3738    echo
3741 if test "$HAVE_DBUS" = yes && test "${opsys}" != "gnu-linux"; then
3742   echo "D-Bus integration has been tested for GNU/Linux only."
3743   echo
3747 # Remove any trailing slashes in these variables.
3748 [test "${prefix}" != NONE &&
3749   prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
3750 test "${exec_prefix}" != NONE &&
3751   exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`]
3753 AC_OUTPUT(Makefile lib-src/Makefile oldXMenu/Makefile \
3754         doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \
3755         doc/lispref/Makefile src/Makefile \
3756         lwlib/Makefile lisp/Makefile leim/Makefile, [
3758 ### Make the necessary directories, if they don't exist.
3759 for dir in etc lisp ; do
3760   test -d ${dir} || mkdir ${dir}
3761 done
3763 echo creating src/epaths.h
3764 ${MAKE-make} epaths-force
3766 if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then
3767   echo creating src/.gdbinit
3768   echo source $srcdir/src/.gdbinit > src/.gdbinit
3771 ], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPPFLAGS="$CPPFLAGS"])
3773 m4_if(dnl       Do not change this comment
3774    arch-tag: 156a4dd5-bddc-4d18-96ac-f37742cf6a5e
3775 )dnl