Remove last internal use of cpp and src/{m,s}/*.h files in configure.in.
[emacs.git] / configure.in
blob2e5ed9497b7fdc6400bce90bd528c622d91e5aa2
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.65)
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 dnl It is important that variables on the RHS not be expanded here,
36 dnl hence the single quotes.  This is per the GNU coding standards, see
37 dnl (autoconf) Installation Directory Variables
38 dnl See also epaths.h below.
39 lispdir='${datadir}/emacs/${version}/lisp'
40 locallisppath='${datadir}/emacs/${version}/site-lisp:'\
41 '${datadir}/emacs/site-lisp'
42 lisppath='${locallisppath}:${lispdir}:${datadir}/emacs/${version}/leim'
43 etcdir='${datadir}/emacs/${version}/etc'
44 archlibdir='${libexecdir}/emacs/${version}/${configuration}'
45 docdir='${datadir}/emacs/${version}/etc'
46 gamedir='${localstatedir}/games/emacs'
48 gameuser=games
50 dnl OPTION_DEFAULT_OFF(NAME, HELP-STRING)
51 dnl Create a new --with option that defaults to being disabled.
52 dnl NAME is the base name of the option.  The shell variable with_NAME
53 dnl   will be set to either the user's value (if the option is
54 dnl   specified; 'yes' for a plain --with-NAME) or to 'no' (if the
55 dnl   option is not specified).  Note that the shell variable name is
56 dnl   constructed as autoconf does, by replacing non-alphanumeric
57 dnl   characters with "_".
58 dnl HELP-STRING is the help text for the option.
59 AC_DEFUN([OPTION_DEFAULT_OFF], [dnl
60   AC_ARG_WITH([$1],[AS_HELP_STRING([--with-$1],[$2])],[],[dnl
61     m4_bpatsubst([with_$1], [[^0-9a-z]], [_])=no])dnl
62 ])dnl
64 dnl OPTION_DEFAULT_ON(NAME, HELP-STRING)
65 dnl Create a new --with option that defaults to being enabled.  NAME
66 dnl   is the base name of the option.  The shell variable with_NAME
67 dnl   will be set either to 'no' (for a plain --without-NAME) or to
68 dnl   'yes' (if the option is not specified).  Note that the shell
69 dnl   variable name is constructed as autoconf does, by replacing
70 dnl   non-alphanumeric characters with "_".
71 dnl HELP-STRING is the help text for the option.
72 AC_DEFUN([OPTION_DEFAULT_ON], [dnl
73   AC_ARG_WITH([$1],[AS_HELP_STRING([--without-$1],[$2])],[],[dnl
74    m4_bpatsubst([with_$1], [[^0-9a-z]], [_])=yes])dnl
75 ])dnl
77 OPTION_DEFAULT_ON([pop],[don't support POP mail retrieval with movemail])
78 if test "$with_pop" = yes; then
79    AC_DEFINE(MAIL_USE_POP)
81 AH_TEMPLATE(MAIL_USE_POP, [Define to support POP mail retrieval.])dnl
83 OPTION_DEFAULT_OFF([kerberos],[support Kerberos-authenticated POP])
84 if test "$with_kerberos" != no; then
85    AC_DEFINE(KERBEROS)
87 AH_TEMPLATE(KERBEROS,
88             [Define to support Kerberos-authenticated POP mail retrieval.])dnl
90 OPTION_DEFAULT_OFF([kerberos5],[support Kerberos version 5 authenticated POP])
91 if test "${with_kerberos5}" != no; then
92   if test "${with_kerberos}" = no; then
93     with_kerberos=yes
94     AC_DEFINE(KERBEROS)
95   fi
96   AC_DEFINE(KERBEROS5, 1, [Define to use Kerberos 5 instead of Kerberos 4.])
99 OPTION_DEFAULT_OFF([hesiod],[support Hesiod to get the POP server host])
100 dnl FIXME hesiod support may not be present, so it seems like an error
101 dnl to define, or at least use, this unconditionally.
102 if test "$with_hesiod" != no; then
103   AC_DEFINE(HESIOD, 1, [Define to support using a Hesiod database to find the POP server.])
106 OPTION_DEFAULT_OFF([mmdf],[support MMDF mailboxes])
107 if test "$with_mmdf" != no; then
108    AC_DEFINE(MAIL_USE_MMDF, 1, [Define to support MMDF mailboxes in movemail.])
111 OPTION_DEFAULT_OFF([mail-unlink],[unlink, rather than empty, mail spool after reading])
112 if test "$with_mail_unlink" != no; then
113    AC_DEFINE(MAIL_UNLINK_SPOOL, 1, [Define to unlink, rather than empty, mail spool after reading.])
116 AC_ARG_WITH([mailhost],[AS_HELP_STRING([--with-mailhost=HOSTNAME],
117     [string giving default POP mail host])],
118     AC_DEFINE_UNQUOTED(MAILHOST, ["$withval"], [String giving fallback POP mail host.]))
120 OPTION_DEFAULT_ON([sound],[don't compile with sound support])
122 OPTION_DEFAULT_ON([sync-input],[process async input synchronously])
123 if test "$with_sync_input" = yes; then
124    AC_DEFINE(SYNC_INPUT, 1, [Process async input synchronously.])
127 dnl FIXME currently it is not the last.
128 dnl This should be the last --with option, because --with-x is
129 dnl added later on when we find the path of X, and it's best to
130 dnl keep them together visually.
131 AC_ARG_WITH([x-toolkit],[AS_HELP_STRING([--with-x-toolkit=KIT],
132  [use an X toolkit (KIT one of: yes or gtk, gtk3, lucid or athena, motif, no)])],
133 [         case "${withval}" in
134             y | ye | yes )      val=gtk ;;
135             n | no )            val=no  ;;
136             l | lu | luc | luci | lucid )       val=lucid ;;
137             a | at | ath | athe | athen | athena )      val=athena ;;
138             m | mo | mot | moti | motif )       val=motif ;;
139             g | gt | gtk  )     val=gtk ;;
140             gtk3  )     val=gtk3 ;;
141             * )
142 AC_MSG_ERROR([`--with-x-toolkit=$withval' is invalid;
143 this option's value should be `yes', `no', `lucid', `athena', `motif', `gtk' or
144 `gtk3'.  `yes' and `gtk' are synonyms. `athena' and `lucid' are synonyms.])
145             ;;
146           esac
147           with_x_toolkit=$val
150 dnl _ON results in a '--without' option in the --help output, so
151 dnl the help text should refer to "don't compile", etc.
152 OPTION_DEFAULT_ON([xpm],[don't compile with XPM image support])
153 OPTION_DEFAULT_ON([jpeg],[don't compile with JPEG image support])
154 OPTION_DEFAULT_ON([tiff],[don't compile with TIFF image support])
155 OPTION_DEFAULT_ON([gif],[don't compile with GIF image support])
156 OPTION_DEFAULT_ON([png],[don't compile with PNG image support])
157 OPTION_DEFAULT_ON([rsvg],[don't compile with SVG image support])
159 OPTION_DEFAULT_ON([xft],[don't use XFT for anti aliased fonts])
160 OPTION_DEFAULT_ON([libotf],[don't use libotf for OpenType font support])
161 OPTION_DEFAULT_ON([m17n-flt],[don't use m17n-flt for text shaping])
163 OPTION_DEFAULT_ON([toolkit-scroll-bars],[don't use Motif or Xaw3d scroll bars])
164 OPTION_DEFAULT_ON([xaw3d],[don't use Xaw3d])
165 OPTION_DEFAULT_ON([xim],[don't use X11 XIM])
166 OPTION_DEFAULT_OFF([ns],[use nextstep (Cocoa or GNUstep) windowing system])
168 OPTION_DEFAULT_ON([gpm],[don't use -lgpm for mouse support on a GNU/Linux console])
169 OPTION_DEFAULT_ON([dbus],[don't compile with D-Bus support])
170 OPTION_DEFAULT_ON([gconf],[don't compile with GConf support])
171 OPTION_DEFAULT_ON([selinux],[don't compile with SELinux support])
173 ## For the times when you want to build Emacs but don't have
174 ## a suitable makeinfo, and can live without the manuals.
175 dnl http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01844.html
176 OPTION_DEFAULT_ON([makeinfo],[don't require makeinfo for building manuals])
178 ## This is an option because I do not know if all info/man support
179 ## compressed files, nor how to test if they do so.
180 OPTION_DEFAULT_ON([compress-info],[don't compress the installed Info pages])
181 if test $with_compress_info = yes; then
182    GZIP_INFO=yes
183 else
184    GZIP_INFO=
186 AC_SUBST(GZIP_INFO)
188 AC_ARG_WITH([pkg-config-prog],dnl
189 [AS_HELP_STRING([--with-pkg-config-prog=PATH],
190                   [path to pkg-config for finding GTK and librsvg])])
191 if test "X${with_pkg_config_prog}" != X; then
192    if test "${with_pkg_config_prog}" != yes; then
193       PKG_CONFIG="${with_pkg_config_prog}"
194    fi
197 CRT_DIR=
198 AC_ARG_WITH([crt-dir],dnl
199 [AS_HELP_STRING([--with-crt-dir=DIR],[directory containing crtn.o etc.
200 The default is /usr/lib, or /usr/lib64 on some platforms.])])
201 CRT_DIR="${with_crt_dir}"
203 AC_ARG_WITH([gnustep-conf],dnl
204 [AS_HELP_STRING([--with-gnustep-conf=PATH],[path to GNUstep.conf; default $GNUSTEP_CONFIG_FILE, or /etc/GNUstep/GNUstep.conf])])
205 test "X${with_gnustep_conf}" != X && test "${with_gnustep_conf}" != yes && \
206   GNUSTEP_CONFIG_FILE="${with_gnustep_conf}"
207 test "X$GNUSTEP_CONFIG_FILE" = "X" && \
208      GNUSTEP_CONFIG_FILE=/etc/GNUstep/GNUstep.conf
210 AC_ARG_ENABLE(ns-self-contained,
211 [AS_HELP_STRING([--disable-ns-self-contained],
212                 [disable self contained build under NeXTstep])],
213    EN_NS_SELF_CONTAINED=$enableval,
214    EN_NS_SELF_CONTAINED=yes)
216 AC_ARG_ENABLE(asserts,
217 [AS_HELP_STRING([--enable-asserts], [compile code with asserts enabled])],
218       USE_XASSERTS=$enableval,
219       USE_XASSERTS=no)
221 AC_ARG_ENABLE(maintainer-mode,
222 [AS_HELP_STRING([--enable-maintainer-mode],
223                 [enable make rules and dependencies not useful (and sometimes
224                  confusing) to the casual installer])],
225       USE_MAINTAINER_MODE=$enableval,
226       USE_MAINTAINER_MODE=no)
227 if test $USE_MAINTAINER_MODE = yes; then
228   MAINT=
229 else
230   MAINT=#
232 AC_SUBST(MAINT)
234 AC_ARG_ENABLE(locallisppath,
235 [AS_HELP_STRING([--enable-locallisppath=PATH],
236                 [directories Emacs should search for lisp files specific
237                  to this site])],
238 if test "${enableval}" = "no"; then
239   locallisppath=
240 elif test "${enableval}" != "yes"; then
241   locallisppath=${enableval}
244 AC_ARG_ENABLE(checking,
245 [AS_HELP_STRING([--enable-checking@<:@=LIST@:>@],
246                 [enable expensive run-time checks.  With LIST,
247                  enable only specific categories of checks.
248                  Categories are: all,yes,no.
249                  Flags are: stringbytes, stringoverrun, stringfreelist,
250                  xmallocoverrun, conslist])],
251 [ac_checking_flags="${enableval}"],[])
252 IFS="${IFS=     }"; ac_save_IFS="$IFS"; IFS="$IFS,"
253 for check in $ac_checking_flags
255         case $check in
256         # these set all the flags to specific states
257         yes)            ac_enable_checking=1 ;;
258         no)             ac_enable_checking= ;
259                         ac_gc_check_stringbytes= ;
260                         ac_gc_check_string_overrun= ;
261                         ac_gc_check_string_free_list= ;
262                         ac_xmalloc_overrun= ;
263                         ac_gc_check_cons_list= ;;
264         all)            ac_enable_checking=1 ;
265                         ac_gc_check_stringbytes=1 ;
266                         ac_gc_check_string_overrun=1 ;
267                         ac_gc_check_string_free_list=1 ;
268                         ac_xmalloc_overrun=1 ;
269                         ac_gc_check_cons_list=1 ;;
270         # these enable particular checks
271         stringbytes)    ac_gc_check_stringbytes=1 ;;
272         stringoverrun)  ac_gc_check_string_overrun=1 ;;
273         stringfreelist) ac_gc_check_string_free_list=1 ;;
274         xmallocoverrun) ac_xmalloc_overrun=1 ;;
275         conslist)       ac_gc_check_cons_list=1 ;;
276         *)      AC_MSG_ERROR(unknown check category $check) ;;
277         esac
278 done
279 IFS="$ac_save_IFS"
281 if test x$ac_enable_checking != x ; then
282   AC_DEFINE(ENABLE_CHECKING, 1,
283 [Enable expensive run-time checking of data types?])
285 if test x$ac_gc_check_stringbytes != x ; then
286   AC_DEFINE(GC_CHECK_STRING_BYTES, 1,
287 [Define this temporarily to hunt a bug.  If defined, the size of
288    strings is redundantly recorded in sdata structures so that it can
289    be compared to the sizes recorded in Lisp strings.])
291 if test x$ac_gc_check_stringoverrun != x ; then
292   AC_DEFINE(GC_CHECK_STRING_OVERRUN, 1,
293 [Define this to check for short string overrun.])
295 if test x$ac_gc_check_string_free_list != x ; then
296   AC_DEFINE(GC_CHECK_STRING_FREE_LIST, 1,
297 [Define this to check the string free list.])
299 if test x$ac_xmalloc_overrun != x ; then
300   AC_DEFINE(XMALLOC_OVERRUN_CHECK, 1,
301 [Define this to check for malloc buffer overrun.])
303 if test x$ac_gc_check_cons_list != x ; then
304   AC_DEFINE(GC_CHECK_CONS_LIST, 1,
305 [Define this to check for errors in cons list.])
308 AC_ARG_ENABLE(profiling,
309 [AS_HELP_STRING([--enable-profiling],
310                 [build emacs with profiling support.
311                  This might not work on all platforms])],
312 [ac_enable_profiling="${enableval}"],[])
313 if test x$ac_enable_profiling != x ; then
314    PROFILING_CFLAGS="-DPROFILING=1 -pg"
315    PROFILING_LDFLAGS="-pg"
316 else
317    PROFILING_CFLAGS=
318    PROFILING_LDFLAGS=
321 AC_ARG_ENABLE(autodepend,
322 [AS_HELP_STRING([--enable-autodepend],
323                 [automatically generate dependencies to .h-files.
324                  Requires GNU Make and Gcc. Enabled if GNU Make and Gcc is
325                  found])],
326 [ac_enable_autodepend="${enableval}"],[ac_enable_autodepend=yes])
328 #### Make srcdir absolute, if it isn't already.  It's important to
329 #### avoid running the path through pwd unnecessarily, since pwd can
330 #### give you automounter prefixes, which can go away.  We do all this
331 #### so Emacs can find its files when run uninstalled.
332 ## Make sure CDPATH doesn't affect cd (in case PWD is relative).
333 unset CDPATH
334 case "${srcdir}" in
335   /* ) ;;
336   . )
337     ## We may be able to use the $PWD environment variable to make this
338     ## absolute.  But sometimes PWD is inaccurate.
339     ## Note: we used to use ${PWD} at the end instead of `pwd`,
340     ## but that tested only for a well-formed and valid PWD,
341     ## it did not object when PWD was well-formed and valid but just wrong.
342     if test ".${PWD}" != "." && test ".`(cd ${PWD} ; sh -c pwd)`" = ".`pwd`"  ;
343     then
344       srcdir="$PWD"
345     else
346       srcdir="`(cd ${srcdir}; pwd)`"
347     fi
348   ;;
349   *  ) srcdir="`(cd ${srcdir}; pwd)`" ;;
350 esac
352 #### Check if the source directory already has a configured system in it.
353 if test `pwd` != `(cd ${srcdir} && pwd)` \
354    && test -f "${srcdir}/src/config.h" ; then
355   AC_MSG_WARN([[The directory tree `${srcdir}' is being used
356    as a build directory right now; it has been configured in its own
357    right.  To configure in another directory as well, you MUST
358    use GNU make.  If you do not have GNU make, then you must
359    now do `make distclean' in ${srcdir},
360    and then run $0 again.]])
363 #### Given the configuration name, set machfile and opsysfile to the
364 #### names of the m/*.h and s/*.h files we should use.
366 ### Canonicalize the configuration name.
368 AC_CANONICAL_HOST
369 canonical=$host
370 configuration=${host_alias-${build_alias-$host}}
372 dnl This used to use changequote, but, apart from `changequote is evil'
373 dnl per the autoconf manual, we can speed up autoconf somewhat by quoting
374 dnl the great gob of text.  Thus it's not processed for possible expansion.
375 dnl Just make sure the brackets remain balanced.
377 dnl Since Emacs can't find matching pairs of quotes, boundaries are
378 dnl indicated by comments.
379 dnl quotation begins
382 ### If you add support for a new configuration, add code to this
383 ### switch statement to recognize your configuration name and select
384 ### the appropriate operating system and machine description files.
386 ### You would hope that you could choose an m/*.h file pretty much
387 ### based on the machine portion of the configuration name, and an s/*.h
388 ### file based on the operating system portion.  However, it turns out
389 ### that each m/*.h file is pretty manufacturer-specific - for
390 ### example mips.h is MIPS
391 ### So we basically have to have a special case for each
392 ### configuration name.
394 ### As far as handling version numbers on operating systems is
395 ### concerned, make sure things will fail in a fixable way.  If
396 ### /etc/MACHINES doesn't say anything about version numbers, be
397 ### prepared to handle anything reasonably.  If version numbers
398 ### matter, be sure /etc/MACHINES says something about it.
400 machine='' opsys='' unported=no
401 case "${canonical}" in
403   ## FreeBSD ports
404   *-*-freebsd* )
405     opsys=freebsd
406     case "${canonical}" in
407       alpha*)           machine=alpha ;;
408       amd64-*|x86_64-*) machine=amdx86-64 ;;
409       arm*)             machine=arm ;;
410       ia64-*)           machine=ia64 ;;
411       i[3456]86-*)      machine=intel386 ;;
412       powerpc-*)        machine=macppc ;;
413       sparc-*)          machine=sparc ;;
414       sparc64-*)        machine=sparc ;;
415     esac
416   ;;
418   ## FreeBSD kernel + glibc based userland
419   *-*-kfreebsd*gnu* )
420     opsys=gnu-kfreebsd
421     case "${canonical}" in
422       alpha*)           machine=alpha ;;
423       amd64-*|x86_64-*) machine=amdx86-64 ;;
424       ia64-*)           machine=ia64 ;;
425       i[3456]86-*)      machine=intel386 ;;
426       powerpc-*)        machine=macppc ;;
427       sparc-*)          machine=sparc ;;
428       sparc64-*)        machine=sparc ;;
429     esac
430   ;;
432   ## NetBSD ports
433   *-*-netbsd* )
434     opsys=netbsd
435     case "${canonical}" in
436       alpha*)      machine=alpha ;;
437       x86_64-*)    machine=amdx86-64 ;;
438       arm-*)       machine=arm ;;
439       hppa-*)      machine=hp800 ;;
440       i[3456]86-*) machine=intel386 ;;
441       m68k-*)      machine=m68k ;;
442       powerpc-*)   machine=macppc ;;
443       mips-*)      machine=mips ;;
444       mipse[bl]-*) machine=mips ;;
445       sparc*-)     machine=sparc ;;
446       vax-*)       machine=vax ;;
447     esac
448   ;;
450   ## OpenBSD ports
451   *-*-openbsd* )
452     opsys=openbsd
453     case "${canonical}" in
454       alpha*)    machine=alpha ;;
455       x86_64-*)  machine=amdx86-64 ;;
456       arm-*)     machine=arm ;;
457       hppa-*)    machine=hp800 ;;
458       i386-*)    machine=intel386 ;;
459       powerpc-*) machine=macppc ;;
460       sparc*)    machine=sparc ;;
461       vax-*)     machine=vax ;;
462     esac
463   ;;
465   alpha*-*-linux-gnu* )
466     machine=alpha opsys=gnu-linux
467   ;;
469   arm*-*-linux-gnu* )
470     machine=arm opsys=gnu-linux
471   ;;
473   ## Apple Darwin / Mac OS X
474   *-apple-darwin* )
475     case "${canonical}" in
476       i[3456]86-* )  machine=intel386 ;;
477       powerpc-* )    machine=macppc ;;
478       x86_64-* )     machine=amdx86-64 ;;
479       * )            unported=yes ;;
480     esac
481     opsys=darwin
482     # Define CPP as follows to make autoconf work correctly.
483     CPP="${CC-cc} -E -no-cpp-precomp"
484     # Use fink packages if available.
485     if test -d /sw/include && test -d /sw/lib; then
486       GCC_TEST_OPTIONS="-I/sw/include -L/sw/lib"
487       CPP="${CPP} ${GCC_TEST_OPTIONS}"
488       NON_GCC_TEST_OPTIONS=${GCC_TEST_OPTIONS}
489     fi
490   ;;
492   ## HP 9000 series 700 and 800, running HP/UX
493   hppa*-hp-hpux10.2* )
494     machine=hp800 opsys=hpux10-20
495   ;;
496   hppa*-hp-hpux1[1-9]* )
497     machine=hp800 opsys=hpux11
498     CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS"
499   ;;
501   hppa*-*-linux-gnu* )
502     machine=hp800 opsys=gnu-linux
503   ;;
505   ## IBM machines
506   s390-*-linux-gnu* )
507     machine=ibms390 opsys=gnu-linux
508   ;;
509   s390x-*-linux-gnu* )
510     machine=ibms390x opsys=gnu-linux
511   ;;
512   rs6000-ibm-aix4.[23]* )
513     machine=ibmrs6000 opsys=aix4-2
514   ;;
515   powerpc-ibm-aix4.[23]*  )
516     machine=ibmrs6000 opsys=aix4-2
517   ;;
518   rs6000-ibm-aix[56]* )
519     machine=ibmrs6000 opsys=aix4-2
520   ;;
521   powerpc-ibm-aix[56]*  )
522     machine=ibmrs6000 opsys=aix4-2
523   ;;
525   ## Macintosh PowerPC
526   powerpc*-*-linux-gnu* )
527     machine=macppc opsys=gnu-linux
528   ;;
530   ## Silicon Graphics machines
531   ## Iris 4D
532   mips-sgi-irix6.5 )
533     machine=iris4d opsys=irix6-5
534     # Without defining _LANGUAGE_C, things get masked out in the headers
535     # so that, for instance, grepping for `free' in stdlib.h fails and
536     # AC_HEADER_STD_C fails.   (MIPSPro 7.2.1.2m compilers, Irix 6.5.3m).
537     NON_GNU_CPP="/lib/cpp -D_LANGUAGE_C"
538     NON_GCC_TEST_OPTIONS="-D_LANGUAGE_C"
539   ;;
541   ## Suns
542   sparc-*-linux-gnu* | sparc64-*-linux-gnu* )
543     machine=sparc opsys=gnu-linux
544   ;;
546   *-sun-solaris* \
547     | i[3456]86-*-solaris2* | i[3456]86-*-sunos5* \
548     | x86_64-*-solaris2*    | x86_64-*-sunos5*)
549     case "${canonical}" in
550       i[3456]86-*-* )     machine=intel386 ;;
551       amd64-*-*|x86_64-*-*)     machine=amdx86-64 ;;
552       sparc* )          machine=sparc ;;
553       * )               unported=yes ;;
554     esac
555     case "${canonical}" in
556       *-sunos5.6* | *-solaris2.6* )
557                 opsys=sol2-6
558                 NON_GNU_CPP=/usr/ccs/lib/cpp
559                 RANLIB="ar -ts"
560                 ;;
561       *-sunos5.[7-9]* | *-solaris2.[7-9]* )
562                 opsys=sol2-6
563                 emacs_check_sunpro_c=yes
564                 NON_GNU_CPP=/usr/ccs/lib/cpp
565                 ;;
566       *-sunos5* | *-solaris* )
567                 opsys=sol2-10
568                 emacs_check_sunpro_c=yes
569                 NON_GNU_CPP=/usr/ccs/lib/cpp
570                 ;;
571     esac
572     ## Watch out for a compiler that we know will not work.
573     case "${canonical}" in
574      *-solaris* | *-sunos5* )
575                 if [ "x$CC" = x/usr/ucb/cc ]; then
576                   ## /usr/ucb/cc doesn't work;
577                   ## we should find some other compiler that does work.
578                   unset CC
579                 fi
580                 ;;
581       *) ;;
582     esac
583   ;;
585   ## IA-64
586   ia64*-*-linux* )
587     machine=ia64 opsys=gnu-linux
588   ;;
590   ## Intel 386 machines where we don't care about the manufacturer.
591   i[3456]86-*-* )
592     machine=intel386
593     case "${canonical}" in
594       *-cygwin )                opsys=cygwin ;;
595       *-darwin* )               opsys=darwin
596                                 CPP="${CC-cc} -E -no-cpp-precomp"
597                                 ;;
598       *-linux-gnu* )            opsys=gnu-linux ;;
599       *-sysv4.2uw* )            opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
600       *-sysv5uw* )              opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
601       *-sysv5OpenUNIX* )        opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
602       ## Otherwise, we'll fall through to the generic opsys code at the bottom.
603     esac
604   ;;
606   ## m68k Linux-based GNU system
607   m68k-*-linux-gnu* )
608     machine=m68k opsys=gnu-linux
609   ;;
611   ## Mips Linux-based GNU system
612   mips-*-linux-gnu* | mipsel-*-linux-gnu* \
613     | mips64-*-linux-gnu* | mips64el-*-linux-gnu* )
614     machine=mips opsys=gnu-linux
615   ;;
617   ## AMD x86-64 Linux-based GNU system
618   x86_64-*-linux-gnu* )
619     machine=amdx86-64 opsys=gnu-linux
620   ;;
622   ## Tensilica Xtensa Linux-based GNU system
623   xtensa*-*-linux-gnu* )
624     machine=xtensa opsys=gnu-linux
625     ;;
627   ## SuperH Linux-based GNU system
628   sh[34]*-*-linux-gnu* )
629     machine=sh3 opsys=gnu-linux
630   ;;
632   * )
633     unported=yes
634   ;;
635 esac
637 ### If the code above didn't choose an operating system, just choose
638 ### an operating system based on the configuration name.  You really
639 ### only want to use this when you have no idea what the right
640 ### operating system is; if you know what operating systems a machine
641 ### runs, it's cleaner to make it explicit in the case statement
642 ### above.
643 if test x"${opsys}" = x; then
644   case "${canonical}" in
645     *-gnu* )                            opsys=gnu ;;
646     * )
647       unported=yes
648     ;;
649   esac
653 dnl quotation ends
655 if test $unported = yes; then
656   AC_MSG_ERROR([Emacs hasn't been ported to `${canonical}' systems.
657 Check `etc/MACHINES' for recognized configuration names.])
660 machfile="m/${machine}.h"
661 opsysfile="s/${opsys}.h"
664 #### Choose a compiler.
665 test -n "$CC" && cc_specified=yes
667 # Save the value of CFLAGS that the user specified.
668 SPECIFIED_CFLAGS="$CFLAGS"
670 dnl Sets GCC=yes if using gcc.
671 AC_PROG_CC
673 # On Suns, sometimes $CPP names a directory.
674 if test -n "$CPP" && test -d "$CPP"; then
675   CPP=
678 ## If not using gcc, and on Solaris, and no CPP specified, see if
679 ## using a Sun compiler, which needs -Xs to prevent whitespace.
680 if test x"$GCC" != xyes && test x"$emacs_check_sunpro_c" = xyes && \
681  test x"$CPP" = x; then
682   AC_MSG_CHECKING([whether we are using a Sun C compiler])
683   AC_CACHE_VAL(emacs_cv_sunpro_c,
684   [AC_TRY_LINK([],
685 [#ifndef __SUNPRO_C
686 fail;
687 #endif
688 ], emacs_cv_sunpro_c=yes, emacs_cv_sunpro_c=no)])
689   AC_MSG_RESULT($emacs_cv_sunpro_c)
691   if test x"$emacs_cv_sunpro_c" = xyes; then
692     NON_GNU_CPP="$CC -E -Xs"
693   fi
696 #### Some systems specify a CPP to use unless we are using GCC.
697 #### Now that we know whether we are using GCC, we can decide whether
698 #### to use that one.
699 if test "x$NON_GNU_CPP" != x && test x$GCC != xyes && test "x$CPP" = x
700 then
701   CPP="$NON_GNU_CPP"
704 #### Some systems specify a CC to use unless we are using GCC.
705 #### Now that we know whether we are using GCC, we can decide whether
706 #### to use that one.
707 if test "x$NON_GNU_CC" != x && test x$GCC != xyes &&
708   test x$cc_specified != xyes
709 then
710   CC="$NON_GNU_CC"
713 if test x$GCC = xyes; then
714   C_OPTIMIZE_SWITCH=-O2
715   test "x$GCC_TEST_OPTIONS" != x && CC="$CC $GCC_TEST_OPTIONS"
716 else
717   dnl FIXME? unused.
718   C_OPTIMIZE_SWITCH=-O
719   test "x$NON_GCC_TEST_OPTIONS" != x && CC="$CC $NON_GCC_TEST_OPTIONS"
722 dnl checks for Unix variants
723 AC_USE_SYSTEM_EXTENSIONS
725 ### Use -Wno-pointer-sign if the compiler supports it
726 AC_MSG_CHECKING([whether gcc understands -Wno-pointer-sign])
727 SAVE_CFLAGS="$CFLAGS"
728 CFLAGS="$CFLAGS -Wno-pointer-sign"
729 AC_TRY_COMPILE([], [], has_option=yes, has_option=no,)
730 if test $has_option = yes; then
731    C_WARNINGS_SWITCH="-Wno-pointer-sign $C_WARNINGS_SWITCH"
733 AC_MSG_RESULT($has_option)
734 CFLAGS="$SAVE_CFLAGS"
735 unset has_option
736 unset SAVE_CFLAGS
738 ### Use -Wdeclaration-after-statement if the compiler supports it
739 AC_MSG_CHECKING([whether gcc understands -Wdeclaration-after-statement])
740 SAVE_CFLAGS="$CFLAGS"
741 CFLAGS="$CFLAGS -Wdeclaration-after-statement"
742 AC_TRY_COMPILE([], [], has_option=yes, has_option=no,)
743 if test $has_option = yes; then
744    C_WARNINGS_SWITCH="-Wdeclaration-after-statement $C_WARNINGS_SWITCH"
746 AC_MSG_RESULT($has_option)
747 CFLAGS="$SAVE_CFLAGS"
748 unset has_option
749 unset SAVE_CFLAGS
751 #### Some other nice autoconf tests.
753 dnl checks for programs
754 AC_PROG_CPP
755 AC_PROG_INSTALL
756 if test "x$RANLIB" = x; then
757   AC_PROG_RANLIB
760 ## Although we're running on an amd64 kernel, we're actually compiling for
761 ## the x86 architecture.  The user should probably have provided an
762 ## explicit --build to `configure', but if everything else than the kernel
763 ## is running in i386 mode, we can help them out.
764 if test "$machine" = "amdx86-64"; then
765   AC_CHECK_DECL([i386])
766   if test "$ac_cv_have_decl_i386" = "yes"; then
767     canonical=`echo "$canonical" | sed -e 's/^amd64/i386/' -e 's/^x86_64/i386/'`
768     machine=intel386
769     machfile="m/${machine}.h"
770   fi
773 AC_PATH_PROG(INSTALL_INFO, install-info)
774 AC_PATH_PROG(INSTALL_INFO, install-info,, /usr/sbin)
775 AC_PATH_PROG(INSTALL_INFO, install-info,:, /sbin)
776 dnl Don't use GZIP, which is used by gzip for additional parameters.
777 AC_PATH_PROG(GZIP_PROG, gzip)
780 ## Need makeinfo >= 4.6 (?) to build the manuals.
781 AC_PATH_PROG(MAKEINFO, makeinfo, no)
782 dnl By this stage, configure has already checked for egrep and set EGREP,
783 dnl or exited with an error if no egrep was found.
784 if test "$MAKEINFO" != "no" && \
785   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
786    MAKEINFO=no
789 ## Makeinfo is unusual.  For a released Emacs, the manuals are
790 ## pre-built, and not deleted by the normal clean rules.  makeinfo is
791 ## therefore in the category of "special tools" not normally required, which
792 ## configure does not have to check for (eg autoconf itself).
793 ## In a Bazaar checkout on the other hand, the manuals are not included.
794 ## So makeinfo is a requirement to build from Bazaar, and configure
795 ## should test for it as it does for any other build requirement.
796 ## We use the presence of $srcdir/info/emacs to distinguish a release,
797 ## with pre-built manuals, from a Bazaar checkout.
798 if test "$MAKEINFO" = "no"; then
799   if test "x${with_makeinfo}" = "xno"; then
800     MAKEINFO=off
801   elif test ! -e $srcdir/info/emacs; then
802     AC_MSG_ERROR( [You do not seem to have makeinfo >= 4.6, and your
803 source tree does not seem to have pre-built manuals in the `info' directory.
804 Either install a suitable version of makeinfo, or re-run configure
805 with the `--without-makeinfo' option to build without the manuals.] )
806   fi
809 dnl Add our options to ac_link now, after it is set up.
811 if test x$GCC = xyes && test "x$GCC_LINK_TEST_OPTIONS" != x
812 then
813   ac_link="$ac_link $GCC_LINK_TEST_OPTIONS"
816 if test x$GCC = x && test "x$NON_GCC_LINK_TEST_OPTIONS" != x
817 then
818   ac_link="$ac_link $NON_GCC_LINK_TEST_OPTIONS"
821 dnl We need -znocombreloc if we're using a relatively recent GNU ld.
822 dnl If we can link with the flag, it shouldn't do any harm anyhow.
823 dnl (Don't use `-z nocombreloc' as -z takes no arg on Irix.)
824 dnl Treat GCC specially since it just gives a non-fatal `unrecognized option'
825 dnl if not built to support GNU ld.
827 late_LDFLAGS=$LDFLAGS
828 if test "$GCC" = yes; then
829   LDFLAGS="$LDFLAGS -Wl,-znocombreloc"
830 else
831   LDFLAGS="$LDFLAGS -znocombreloc"
834 AC_MSG_CHECKING([for -znocombreloc])
835 AC_LINK_IFELSE([main(){return 0;}],
836   [AC_MSG_RESULT(yes)],
837   LDFLAGS=$late_LDFLAGS
838   [AC_MSG_RESULT(no)])
840 LDFLAGS="${LDFLAGS} ${PROFILING_LDFLAGS}"
843 # The value of CPP is a quoted variable reference, so we need to do this
844 # to get its actual value...
845 CPP=`eval "echo $CPP"`
848 ### First figure out CFLAGS (which we use for running the compiler here)
849 ### and REAL_CFLAGS (which we use for real compilation).
850 ### The two are the same except on a few systems, where they are made
851 ### different to work around various lossages.  For example,
852 ### GCC 2.5 on GNU/Linux needs them to be different because it treats -g
853 ### as implying static linking.
855 ### If the CFLAGS env var is specified, we use that value
856 ### instead of the default.
858 dnl C_OPTIMIZE_SWITCH unused save for gcc, so why set it for non-gcc?
859 dnl Note AC_PROG_CC sets CFLAGS to -g -O2 for gcc anyway.
860 if test "x$SPECIFIED_CFLAGS" = x; then
861   if test x$GCC = xyes; then
862     CFLAGS="-g $C_OPTIMIZE_SWITCH"
863     REAL_CFLAGS="$CFLAGS $C_WARNINGS_SWITCH $PROFILING_CFLAGS"
864   else
865     CFLAGS=
866     REAL_CFLAGS=
867   fi
868 else
869   REAL_CFLAGS="$CFLAGS" 
873 dnl Not used by any currently supported platform.
874 dnl The function dump-emacs will not be defined and temacs will do
875 dnl (load "loadup") automatically unless told otherwise.
876 CANNOT_DUMP=no
877 case "$opsys" in
878   your-opsys-here)
879    CANNOT_DUMP=yes
880    AC_DEFINE(CANNOT_DUMP, 1, [Define if Emacs cannot be dumped on your system.])
881   ;;
882 esac
883 AC_SUBST(CANNOT_DUMP)
886 UNEXEC_OBJ=unexelf.o
887 case "$opsys" in
888   aix4-2)
889    UNEXEC_OBJ=unexaix.o
890    ;;
891   cygwin)
892    UNEXEC_OBJ=unexcw.o
893    ;;
894   darwin)
895    UNEXEC_OBJ=unexmacosx.o
896    ;;
897   hpux10-20 | hpux11)
898    UNEXEC_OBJ=unexhp9k800.o
899    ;;
900   sol2-10)
901    # Use the Solaris dldump() function, called from unexsol.c, to dump
902    # emacs, instead of the generic ELF dump code found in unexelf.c.
903    # The resulting binary has a complete symbol table, and is better
904    # for debugging and other observability tools (debuggers, pstack, etc).
905    # 
906    # If you encounter a problem using dldump(), please consider sending
907    # a message to the OpenSolaris tools-linking mailing list:
908    #      http://mail.opensolaris.org/mailman/listinfo/tools-linking
909    # 
910    # It is likely that dldump() works with older Solaris too, but this has
911    # not been tested, so for now this change is for Solaris 10 or newer.
912    UNEXEC_OBJ=unexsol.o
913    ;;
914 esac
916 LD_SWITCH_SYSTEM=
917 case "$opsys" in
918   freebsd)
919    ## Let `ld' find image libs and similar things in /usr/local/lib.
920    ## The system compiler, GCC, has apparently been modified to not
921    ## look there, contrary to what a stock GCC would do.
922    LD_SWITCH_SYSTEM=-L/usr/local/lib
923    ;;
925   gnu-linux)
926    ## cpp test was "ifdef __mips__", but presumably this is equivalent...
927    test "$machine" = "mips" && LD_SWITCH_SYSTEM="-G 0"
928    ;;
930   netbsd)
931    LD_SWITCH_SYSTEM="-Wl,-rpath,/usr/pkg/lib -L/usr/pkg/lib -Wl,-rpath,/usr/local/lib -L/usr/local/lib"
932    ;;
934   openbsd)
935    ## Han Boetes <han@mijncomputer.nl> says this is necessary,
936    ## otherwise Emacs dumps core on elf systems.
937    LD_SWITCH_SYSTEM="-Z"
938    ;;
939 esac
940 AC_SUBST(LD_SWITCH_SYSTEM)
942 ac_link="$ac_link $LD_SWITCH_SYSTEM"
944 ## This setting of LD_SWITCH_SYSTEM references LD_SWITCH_X_SITE_AUX,
945 ## which has not been defined yet.  When this was handled with cpp,
946 ## it was expanded to null when configure sourced the s/*.h file.
947 ## Thus LD_SWITCH_SYSTEM had different values in configure and the Makefiles.
948 ## FIXME it would be cleaner to put this in LD_SWITCH_SYSTEM_TEMACS
949 ## (or somesuch), but because it is supposed to go at the _front_
950 ## of LD_SWITCH_SYSTEM, we cannot do that in exactly the same way.
951 ## Compare with the gnu-linux case below, which added to the end
952 ## of LD_SWITCH_SYSTEM, and so can instead go at the front of
953 ## LD_SWITCH_SYSTEM_TEMACS.
954 case "$opsys" in
955   netbsd|openbsd)
956    ## _AUX_RPATH is like _AUX, but uses -rpath instead of -R.
957    LD_SWITCH_SYSTEM="\$(LD_SWITCH_X_SITE_AUX_RPATH) $LD_SWITCH_SYSTEM" ;;
958 esac
961 C_SWITCH_MACHINE=
962 if test "$machine" = "alpha"; then
963   AC_CHECK_DECL([__ELF__])
964   if test "$ac_cv_have_decl___ELF__" = "yes"; then
965     ## With ELF, make sure that all common symbols get allocated to in the
966     ## data section.  Otherwise, the dump of temacs may miss variables in
967     ## the shared library that have been initialized.  For example, with
968     ## GNU libc, __malloc_initialized would normally be resolved to the
969     ## shared library's .bss section, which is fatal.
970     if test "x$GCC" = "xyes"; then
971       C_SWITCH_MACHINE="-fno-common"
972     else
973       AC_MSG_ERROR([What gives?  Fix me if DEC Unix supports ELF now.])
974     fi
975   else
976     UNEXEC_OBJ=unexalpha.o 
977   fi
979 AC_SUBST(C_SWITCH_MACHINE)
981 AC_SUBST(UNEXEC_OBJ)
983 C_SWITCH_SYSTEM=
984 ## Some programs in src produce warnings saying certain subprograms
985 ## are too complex and need a MAXMEM value greater than 2000 for
986 ## additional optimization.  --nils@exp-math.uni-essen.de
987 test "$opsys" = "aix4.2" && test "x$GCC" != "xyes" && \
988   C_SWITCH_SYSTEM="-ma -qmaxmem=4000"
989 ## gnu-linux might need -D_BSD_SOURCE on old libc5 systems.
990 ## It is redundant in glibc2, since we define _GNU_SOURCE.
991 AC_SUBST(C_SWITCH_SYSTEM)
994 LIBS_SYSTEM=
995 case "$opsys" in
996   ## IBM's X11R5 uses -lIM and -liconv in AIX 3.2.2.
997   aix4-2) LIBS_SYSTEM="-lrts -lIM -liconv" ;;
999   freebsd) LIBS_SYSTEM="-lutil" ;;
1001   hpux*) LIBS_SYSTEM="-l:libdld.sl" ;;
1003   sol2*) LIBS_SYSTEM="-lsocket -lnsl -lkstat" ;;
1005   ## Motif needs -lgen.
1006   unixware) LIBS_SYSTEM="-lsocket -lnsl -lelf -lgen" ;;
1007 esac
1008 AC_SUBST(LIBS_SYSTEM)
1011 ### Make sure subsequent tests use flags consistent with the build flags.
1013 if test x"${OVERRIDE_CPPFLAGS}" != x; then
1014   CPPFLAGS="${OVERRIDE_CPPFLAGS}"
1015 else
1016   CPPFLAGS="$C_SWITCH_SYSTEM $C_SWITCH_MACHINE $CPPFLAGS"
1019 dnl For AC_FUNC_GETLOADAVG, at least:
1020 AC_CONFIG_LIBOBJ_DIR(src)
1022 dnl Do this early because it can frob feature test macros for Unix-98 &c.
1023 AC_SYS_LARGEFILE
1026 ## If user specified a crt-dir, use that unconditionally.
1027 if test "X$CRT_DIR" = "X"; then
1029   case "$canonical" in
1030     x86_64-*-linux-gnu* | s390x-*-linux-gnu*)
1031     ## On x86-64 and s390x GNU/Linux distributions, the standard library
1032     ## can be in a variety of places.  We only try /usr/lib64 and /usr/lib.
1033     ## For anything else (eg /usr/lib32), it is up the user to specify
1034     ## the location (bug#5655).
1035     ## Test for crtn.o, not just the directory, because sometimes the
1036     ## directory exists but does not have the relevant files (bug#1287).
1037     ## FIXME better to test for binary compatibility somehow.
1038     test -e /usr/lib64/crtn.o && CRT_DIR=/usr/lib64
1039     ;;
1041     powerpc64-*-linux-gnu* | sparc64-*-linux-gnu*) CRT_DIR=/usr/lib64 ;;
1042   esac
1044   case "$opsys" in
1045     hpux10-20) CRT_DIR=/lib ;;
1046   esac
1048   ## Default is /usr/lib.
1049   test "X$CRT_DIR" = "X" && CRT_DIR=/usr/lib
1051 else
1053   ## Some platforms don't use any of these files, so it is not
1054   ## appropriate to put this test outside the if block.
1055   test -e $CRT_DIR/crtn.o || test -e $CRT_DIR/crt0.o || \
1056     AC_MSG_ERROR([crt*.o not found in specified location.])
1060 AC_SUBST(CRT_DIR)
1062 LIB_MATH=-lm
1063 LIB_STANDARD=
1064 START_FILES=
1066 case $opsys in
1067   cygwin )
1068     LIB_MATH=
1069     START_FILES='ecrt0.o'
1070     ;;
1071   darwin )
1072     ## Adding -lm confuses the dynamic linker, so omit it.
1073     LIB_MATH=
1074     START_FILES='pre-crt0.o'
1075     ;;
1076   freebsd )
1077     LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o $(CRT_DIR)/crtn.o'
1078     START_FILES='pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o $(CRT_DIR)/crtbegin.o'
1079     ;;
1080   gnu-linux | gnu-kfreebsd )
1081     LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtn.o'
1082     START_FILES='pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o'
1083     ;;
1084   hpux10-20 | hpux11 )
1085     LIB_STANDARD=-lc
1086     START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o'
1087     ;;
1088   netbsd | openbsd )
1089     if test -f $CRT_DIR/crti.o; then
1090         LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o $(CRT_DIR)/crtn.o'
1091         START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o $(CRT_DIR)/crti.o $(CRT_DIR)/crtbegin.o'
1092     else
1093         LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o'
1094         START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o $(CRT_DIR)/crtbegin.o'
1095     fi
1096     ;;
1097 esac
1099 AC_SUBST(LIB_MATH)
1100 AC_SUBST(START_FILES)
1102 dnl This function definition taken from Gnome 2.0
1103 dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
1104 dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
1105 dnl also defines GSTUFF_PKG_ERRORS on error
1106 AC_DEFUN([PKG_CHECK_MODULES], [
1107   succeeded=no
1109   AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1111   if test "$PKG_CONFIG" = "no" ; then
1112      ifelse([$4], , [AC_MSG_ERROR([
1113       *** 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])
1114   else
1115      PKG_CONFIG_MIN_VERSION=0.9.0
1116      if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
1117         AC_MSG_CHECKING(for $2)
1119         if $PKG_CONFIG --exists "$2" 2>&AS_MESSAGE_LOG_FD; then
1120             AC_MSG_RESULT(yes)
1121             succeeded=yes
1123             AC_MSG_CHECKING($1_CFLAGS)
1124             $1_CFLAGS=`$PKG_CONFIG --cflags "$2"|sed -e 's,///*,/,g'`
1125             AC_MSG_RESULT($$1_CFLAGS)
1127             AC_MSG_CHECKING($1_LIBS)
1128             $1_LIBS=`$PKG_CONFIG --libs "$2"|sed -e 's,///*,/,g'`
1129             AC_MSG_RESULT($$1_LIBS)
1130         else
1131             AC_MSG_RESULT(no)
1132             $1_CFLAGS=""
1133             $1_LIBS=""
1134             ## If we have a custom action on failure, don't print errors, but
1135             ## do set a variable so people can do so.
1136             $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
1137             ifelse([$4], ,echo $$1_PKG_ERRORS,)
1138         fi
1140         AC_SUBST($1_CFLAGS)
1141         AC_SUBST($1_LIBS)
1142      else
1143         echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
1144         echo "*** See http://www.freedesktop.org/software/pkgconfig"
1145      fi
1146   fi
1148   if test $succeeded = yes; then
1149      ifelse([$3], , :, [$3])
1150   else
1151      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])
1152   fi
1156 if test "${with_sound}" != "no"; then
1157   # Sound support for GNU/Linux and the free BSDs.
1158   AC_CHECK_HEADERS(machine/soundcard.h sys/soundcard.h soundcard.h)
1159   # Emulation library used on NetBSD.
1160   AC_CHECK_LIB(ossaudio, _oss_ioctl, LIBSOUND=-lossaudio, LIBSOUND=)
1161   AC_SUBST(LIBSOUND)
1163   ALSA_REQUIRED=1.0.0
1164   ALSA_MODULES="alsa >= $ALSA_REQUIRED"
1165   PKG_CHECK_MODULES(ALSA, $ALSA_MODULES, HAVE_ALSA=yes, HAVE_ALSA=no)
1166   if test $HAVE_ALSA = yes; then
1167     SAVE_CFLAGS="$CFLAGS"
1168     SAVE_LDFLAGS="$LDFLAGS"
1169     CFLAGS="$ALSA_CFLAGS $CFLAGS"
1170     LDFLAGS="$ALSA_LIBS $LDFLAGS"
1171     AC_TRY_COMPILE([#include <asoundlib.h>], [snd_lib_error_set_handler (0);],
1172                     emacs_alsa_normal=yes,
1173                     emacs_alsa_normal=no)
1174     if test "$emacs_alsa_normal" != yes; then
1175       AC_TRY_COMPILE([#include <alsa/asoundlib.h>],
1176                      [snd_lib_error_set_handler (0);],
1177                      emacs_alsa_subdir=yes,
1178                      emacs_alsa_subdir=no)
1179       if test "$emacs_alsa_subdir" != yes; then
1180         AC_MSG_ERROR([pkg-config found alsa, but it does not compile.  See config.log for error messages.])
1181       fi
1182       ALSA_CFLAGS="$ALSA_CFLAGS -DALSA_SUBDIR_INCLUDE"
1183     fi
1185     CFLAGS="$SAVE_CFLAGS"
1186     LDFLAGS="$SAVE_LDFLAGS"
1187     LIBSOUND="$LIBSOUND $ALSA_LIBS"
1188     CFLAGS_SOUND="$CFLAGS_SOUND $ALSA_CFLAGS"
1189     AC_DEFINE(HAVE_ALSA, 1, [Define to 1 if ALSA is available.])
1190   fi
1191   AC_SUBST(CFLAGS_SOUND)
1194 dnl checks for header files
1195 AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \
1196   linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \
1197   stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \
1198   sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \
1199   sys/utsname.h pwd.h utmp.h)
1201 AC_MSG_CHECKING(if personality LINUX32 can be set)
1202 AC_TRY_COMPILE([#include <sys/personality.h>], [personality (PER_LINUX32)],
1203                emacs_cv_personality_linux32=yes,
1204                emacs_cv_personality_linux32=no)
1205 AC_MSG_RESULT($emacs_cv_personality_linux32)
1207 if test $emacs_cv_personality_linux32 = yes; then
1208   AC_DEFINE(HAVE_PERSONALITY_LINUX32, 1,
1209             [Define to 1 if personality LINUX32 can be set.])
1212 dnl On Solaris 8 there's a compilation warning for term.h because
1213 dnl it doesn't define `bool'.
1214 AC_CHECK_HEADERS(term.h, , , -)
1215 AC_HEADER_STDC
1216 AC_HEADER_TIME
1217 AC_CHECK_DECLS([sys_siglist])
1218 if test $ac_cv_have_decl_sys_siglist != yes; then
1219   # For Tru64, at least:
1220   AC_CHECK_DECLS([__sys_siglist])
1221   if test $ac_cv_have_decl___sys_siglist = yes; then
1222     AC_DEFINE(sys_siglist, __sys_siglist,
1223               [Define to any substitute for sys_siglist.])
1224   fi
1226 AC_HEADER_SYS_WAIT
1228 dnl Some systems have utime.h but don't declare the struct anyplace.
1229 AC_CACHE_CHECK(for struct utimbuf, emacs_cv_struct_utimbuf,
1230 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
1231 #include <sys/time.h>
1232 #include <time.h>
1233 #else
1234 #ifdef HAVE_SYS_TIME_H
1235 #include <sys/time.h>
1236 #else
1237 #include <time.h>
1238 #endif
1239 #endif
1240 #ifdef HAVE_UTIME_H
1241 #include <utime.h>
1242 #endif], [static struct utimbuf x; x.actime = x.modtime;],
1243   emacs_cv_struct_utimbuf=yes, emacs_cv_struct_utimbuf=no))
1244 if test $emacs_cv_struct_utimbuf = yes; then
1245   AC_DEFINE(HAVE_STRUCT_UTIMBUF, 1, [Define to 1 if `struct utimbuf' is declared by <utime.h>.])
1248 dnl checks for typedefs
1249 AC_TYPE_SIGNAL
1251 dnl Check for speed_t typedef.
1252 AC_CACHE_CHECK(for speed_t, emacs_cv_speed_t,
1253   [AC_TRY_COMPILE([#include <termios.h>], [speed_t x = 1;],
1254     emacs_cv_speed_t=yes, emacs_cv_speed_t=no)])
1255 if test $emacs_cv_speed_t = yes; then
1256   AC_DEFINE(HAVE_SPEED_T, 1,
1257            [Define to 1 if `speed_t' is declared by <termios.h>.])
1260 AC_CACHE_CHECK(for struct timeval, emacs_cv_struct_timeval,
1261 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
1262 #include <sys/time.h>
1263 #include <time.h>
1264 #else
1265 #ifdef HAVE_SYS_TIME_H
1266 #include <sys/time.h>
1267 #else
1268 #include <time.h>
1269 #endif
1270 #endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
1271   emacs_cv_struct_timeval=yes, emacs_cv_struct_timeval=no))
1272 HAVE_TIMEVAL=$emacs_cv_struct_timeval
1273 if test $emacs_cv_struct_timeval = yes; then
1274   AC_DEFINE(HAVE_TIMEVAL, 1, [Define to 1 if `struct timeval' is declared by <sys/time.h>.])
1277 AC_CACHE_CHECK(for struct exception, emacs_cv_struct_exception,
1278 AC_TRY_COMPILE([#include <math.h>],
1279 [static struct exception x; x.arg1 = x.arg2 = x.retval; x.name = ""; x.type = 1;],
1280   emacs_cv_struct_exception=yes, emacs_cv_struct_exception=no))
1281 HAVE_EXCEPTION=$emacs_cv_struct_exception
1282 if test $emacs_cv_struct_exception != yes; then
1283   AC_DEFINE(NO_MATHERR, 1, [Define to 1 if you don't have struct exception in math.h.])
1286 AC_CHECK_HEADERS(sys/socket.h)
1287 AC_CHECK_HEADERS(net/if.h, , , [AC_INCLUDES_DEFAULT
1288 #if HAVE_SYS_SOCKET_H
1289 #include <sys/socket.h>
1290 #endif])
1292 dnl checks for structure members
1293 AC_STRUCT_TM
1294 AC_STRUCT_TIMEZONE
1295 AC_CHECK_MEMBER(struct tm.tm_gmtoff,
1296                 [AC_DEFINE(HAVE_TM_GMTOFF, 1,
1297                            [Define to 1 if `tm_gmtoff' is member of `struct tm'.])],,
1298                 [#include <time.h>])
1299 AC_CHECK_MEMBERS([struct ifreq.ifr_flags, struct ifreq.ifr_hwaddr,
1300                   struct ifreq.ifr_netmask, struct ifreq.ifr_broadaddr,
1301                   struct ifreq.ifr_addr], , ,
1302                  [AC_INCLUDES_DEFAULT
1303 #if HAVE_SYS_SOCKET_H
1304 #include <sys/socket.h>
1305 #endif
1306 #if HAVE_NET_IF_H
1307 #include <net/if.h>
1308 #endif])
1310 dnl checks for compiler characteristics
1312 dnl Testing __STDC__ to determine prototype support isn't good enough.
1313 dnl DEC C, for instance, doesn't define it with default options, and
1314 dnl is used on 64-bit systems (OSF Alphas).  Similarly for volatile
1315 dnl and void *.
1316 AC_C_PROTOTYPES
1317 AC_C_VOLATILE
1318 AC_C_CONST
1319 dnl This isn't useful because we can't turn on use of `inline' unless
1320 dnl the compiler groks `extern inline'.
1321 dnl AC_C_INLINE
1322 AC_CACHE_CHECK([for void * support], emacs_cv_void_star,
1323   [AC_TRY_COMPILE(, [void * foo;],
1324                    emacs_cv_void_star=yes, emacs_cv_void_star=no)])
1325 if test $emacs_cv_void_star = yes; then
1326   AC_DEFINE(POINTER_TYPE, void)
1327 else
1328   AC_DEFINE(POINTER_TYPE, char)
1330 AH_TEMPLATE(POINTER_TYPE,
1331             [Define as `void' if your compiler accepts `void *'; otherwise
1332              define as `char'.])dnl
1336 dnl This could be used for targets which can have both byte sexes.
1337 dnl We could presumably replace the hardwired WORDS_BIG_ENDIAN generally.
1338 dnl AC_C_BIGENDIAN
1340 dnl check for Make feature
1341 AC_PROG_MAKE_SET
1343 DEPFLAGS=
1344 MKDEPDIR=":"
1345 deps_frag=deps.mk
1346 dnl check for GNU Make if we have GCC and autodepend is on.
1347 if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then
1348    AC_MSG_CHECKING([whether we are using GNU Make])
1349    HAVE_GNU_MAKE=no
1350    testval=`make --version 2>/dev/null | grep 'GNU Make'`
1351    if test "x$testval" != x; then
1352       HAVE_GNU_MAKE=yes
1353    else
1354       ac_enable_autodepend=no
1355    fi
1356    AC_MSG_RESULT([$HAVE_GNU_MAKE])
1357    if test $HAVE_GNU_MAKE = yes; then
1358       AC_MSG_CHECKING([whether gcc understands -MMD -MF])
1359       SAVE_CFLAGS="$CFLAGS"
1360       CFLAGS="$CFLAGS -MMD -MF deps.d"
1361       AC_TRY_COMPILE([], [], , ac_enable_autodepend=no)
1362       CFLAGS="$SAVE_CFLAGS"
1363       test -f deps.d || ac_enable_autodepend=no
1364       rm -rf deps.d
1365       AC_MSG_RESULT([$ac_enable_autodepend])
1366    fi
1367    if test $ac_enable_autodepend = yes; then
1368       DEPFLAGS='-MMD -MF ${DEPDIR}/$*.d'
1369       ## In parallel builds, another make might create depdir between
1370       ## the first test and mkdir, so stick another test on the end.
1371       ## Or use mkinstalldirs?  mkdir -p is not portable.
1372       MKDEPDIR='test -d ${DEPDIR} || mkdir ${DEPDIR} || test -d ${DEPDIR}'
1373       deps_frag=autodeps.mk
1374    fi
1376 deps_frag=$srcdir/src/$deps_frag
1377 AC_SUBST(MKDEPDIR)
1378 AC_SUBST(DEPFLAGS)
1379 AC_SUBST_FILE(deps_frag)
1382 dnl checks for operating system services
1383 AC_SYS_LONG_FILE_NAMES
1385 #### Choose a window system.
1387 AC_PATH_X
1388 if test "$no_x" = yes; then
1389   window_system=none
1390 else
1391   window_system=x11
1394 ## Workaround for bug in autoconf <= 2.62.
1395 ## http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01551.html
1396 ## No need to do anything special for these standard directories.
1397 if test -n "${x_libraries}" && test x"${x_libraries}" != xNONE; then
1399    x_libraries=`echo :${x_libraries}: | sed -e 's|:/usr/lib64:|:|g' -e 's|:/lib64:|:|g' -e 's|^:||' -e 's|:$||'`
1403 LD_SWITCH_X_SITE_AUX=
1404 LD_SWITCH_X_SITE_AUX_RPATH=
1405 if test "${x_libraries}" != NONE; then
1406   if test -n "${x_libraries}"; then
1407     LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
1408     LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
1409     LD_SWITCH_X_SITE_AUX_RPATH=`echo ${LD_SWITCH_X_SITE_AUX} | sed -e 's/-R/-Wl,-rpath,/'`
1410   fi
1411   x_default_search_path=""
1412   x_search_path=${x_libraries}
1413   if test -z "${x_search_path}"; then
1414     x_search_path=/usr/lib
1415   fi
1416   for x_library in `echo ${x_search_path}: | \
1417                     sed -e "s/:/ /g" -e p -e "s:/lib[[^ /]]* :/share :g"`; do
1418     x_search_path="\
1419 ${x_library}/X11/%L/%T/%N%C%S:\
1420 ${x_library}/X11/%l/%T/%N%C%S:\
1421 ${x_library}/X11/%T/%N%C%S:\
1422 ${x_library}/X11/%L/%T/%N%S:\
1423 ${x_library}/X11/%l/%T/%N%S:\
1424 ${x_library}/X11/%T/%N%S"
1425     if test x"${x_default_search_path}" = x; then
1426       x_default_search_path=${x_search_path}
1427     else
1428       x_default_search_path="${x_search_path}:${x_default_search_path}"
1429     fi
1430   done
1432 AC_SUBST(LD_SWITCH_X_SITE_AUX)
1433 AC_SUBST(LD_SWITCH_X_SITE_AUX_RPATH)
1435 if test "${x_includes}" != NONE && test -n "${x_includes}"; then
1436   C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"`
1439 if test x"${x_includes}" = x; then
1440   bitmapdir=/usr/include/X11/bitmaps
1441 else
1442   # accumulate include directories that have X11 bitmap subdirectories
1443   bmd_acc="dummyval"
1444   for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do
1445     if test -d "${bmd}/X11/bitmaps"; then
1446       bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps"
1447     fi
1448     if test -d "${bmd}/bitmaps"; then
1449       bmd_acc="${bmd_acc}:${bmd}/bitmaps"
1450     fi
1451   done
1452   if test ${bmd_acc} != "dummyval"; then
1453     bitmapdir=`echo ${bmd_acc} | sed -e "s/^dummyval://"`
1454   fi
1457 HAVE_NS=no
1458 NS_IMPL_COCOA=no
1459 NS_IMPL_GNUSTEP=no
1460 tmp_CPPFLAGS="$CPPFLAGS"
1461 tmp_CFLAGS="$CFLAGS"
1462 CPPFLAGS="$CPPFLAGS -x objective-c"
1463 CFLAGS="$CFLAGS -x objective-c"
1464 TEMACS_LDFLAGS2="\${LDFLAGS}"
1465 dnl I don't think it's especially important, but src/Makefile.in
1466 dnl (now the only user of ns_appdir) used to go to the trouble of adding a
1467 dnl trailing "/" to it, so now we do it here.
1468 if test "${with_ns}" != no; then
1469   if test "${opsys}" = darwin; then
1470      NS_IMPL_COCOA=yes
1471      ns_appdir=`pwd`/nextstep/Emacs.app/
1472      ns_appbindir=${ns_appdir}Contents/MacOS/
1473      ns_appresdir=${ns_appdir}Contents/Resources
1474      ns_appsrc=${srcdir}/nextstep/Cocoa/Emacs.base
1475   elif test -f $GNUSTEP_CONFIG_FILE; then
1476      NS_IMPL_GNUSTEP=yes
1477      ns_appdir=`pwd`/nextstep/Emacs.app/
1478      ns_appbindir=${ns_appdir}
1479      ns_appresdir=${ns_appdir}Resources
1480      ns_appsrc=${srcdir}/nextstep/GNUstep/Emacs.base
1481      dnl FIXME sourcing this several times in subshells seems inefficient.
1482      GNUSTEP_SYSTEM_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_HEADERS)"
1483      GNUSTEP_SYSTEM_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_LIBRARIES)"
1484      dnl I seemed to need these as well with GNUstep-startup 0.25.
1485      GNUSTEP_LOCAL_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_LOCAL_HEADERS)"
1486      GNUSTEP_LOCAL_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_LOCAL_LIBRARIES)"
1487      test "x${GNUSTEP_LOCAL_HEADERS}" != "x" && \
1488        GNUSTEP_LOCAL_HEADERS="-I${GNUSTEP_LOCAL_HEADERS}"
1489      test "x${GNUSTEP_LOCAL_LIBRARIES}" != "x" && \
1490        GNUSTEP_LOCAL_LIBRARIES="-L${GNUSTEP_LOCAL_LIBRARIES}"
1491      CPPFLAGS="$CPPFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
1492      CFLAGS="$CFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
1493      REAL_CFLAGS="$REAL_CFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
1494      LDFLAGS="$LDFLAGS -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES}"
1495      LIB_STANDARD=
1496      START_FILES=
1497      TEMACS_LDFLAGS2=
1498   fi
1499   AC_CHECK_HEADER([AppKit/AppKit.h], [HAVE_NS=yes],
1500                   [AC_MSG_ERROR([`--with-ns' was specified, but the include
1501   files are missing or cannot be compiled.])])
1502   NS_HAVE_NSINTEGER=yes
1503   AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <Foundation/NSObjCRuntime.h>],
1504                                      [NSInteger i;])],
1505                     ns_have_nsinteger=yes,
1506                     ns_have_nsinteger=no)
1507   if test $ns_have_nsinteger = no; then
1508     NS_HAVE_NSINTEGER=no
1509   fi
1511 AC_SUBST(TEMACS_LDFLAGS2)
1513 ns_frag=/dev/null
1514 NS_OBJ=
1515 NS_SUPPORT=
1516 if test "${HAVE_NS}" = yes; then
1517   window_system=nextstep
1518   with_xft=no
1519   # set up packaging dirs
1520   exec_prefix=${ns_appbindir}
1521   libexecdir=${ns_appbindir}/libexec
1522   if test "${EN_NS_SELF_CONTAINED}" = yes; then
1523      prefix=${ns_appresdir}
1524   fi
1525   ns_frag=$srcdir/src/ns.mk
1526   NS_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o fontset.o fringe.o image.o"
1527   NS_SUPPORT="\${lispsource}emacs-lisp/easymenu.elc \${lispsource}term/ns-win.elc"
1529 CFLAGS="$tmp_CFLAGS"
1530 CPPFLAGS="$tmp_CPPFLAGS"
1531 AC_SUBST(NS_OBJ)
1532 AC_SUBST(NS_SUPPORT)
1533 AC_SUBST(LIB_STANDARD)
1534 AC_SUBST_FILE(ns_frag)
1536 case "${window_system}" in
1537   x11 )
1538     HAVE_X_WINDOWS=yes
1539     HAVE_X11=yes
1540     case "${with_x_toolkit}" in
1541       athena | lucid ) USE_X_TOOLKIT=LUCID ;;
1542       motif ) USE_X_TOOLKIT=MOTIF ;;
1543       gtk ) with_gtk=yes
1544 dnl Dont set this for GTK.  A lot of tests below assumes Xt when
1545 dnl USE_X_TOOLKIT is set.
1546             USE_X_TOOLKIT=none ;;
1547       gtk3 ) with_gtk3=yes
1548              USE_X_TOOLKIT=none ;;
1549       no ) USE_X_TOOLKIT=none ;;
1550 dnl If user did not say whether to use a toolkit, make this decision later:
1551 dnl use the toolkit if we have gtk, or X11R5 or newer.
1552       * ) USE_X_TOOLKIT=maybe ;;
1553     esac
1554   ;;
1555   nextstep | none )
1556     HAVE_X_WINDOWS=no
1557     HAVE_X11=no
1558     USE_X_TOOLKIT=none
1559   ;;
1560 esac
1562 if test "$window_system" = none && test "X$with_x" != "Xno"; then
1563    AC_CHECK_PROG(HAVE_XSERVER, X, true, false)
1564    if test "$HAVE_XSERVER" = true ||
1565       test -n "$DISPLAY" ||
1566       test "`echo /usr/lib/libX11.*`" != "/usr/lib/libX11.*"; then
1567         AC_MSG_ERROR([You seem to be running X, but no X development libraries
1568 were found.  You should install the relevant development files for X
1569 and for the toolkit you want, such as Gtk+, Lesstif or Motif.  Also make
1570 sure you have development files for image handling, i.e.
1571 tiff, gif, jpeg, png and xpm.
1572 If you are sure you want Emacs compiled without X window support, pass
1573   --without-x
1574 to configure.])
1575    fi
1578 ### If we're using X11, we should use the X menu package.
1579 HAVE_MENUS=no
1580 case ${HAVE_X11} in
1581   yes ) HAVE_MENUS=yes ;;
1582 esac
1584 # Do the opsystem or machine files prohibit the use of the GNU malloc?
1585 # Assume not, until told otherwise.
1586 GNU_MALLOC=yes
1587 doug_lea_malloc=yes
1588 AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no)
1589 AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
1590 AC_CACHE_CHECK(whether __after_morecore_hook exists,
1591                emacs_cv_var___after_morecore_hook,
1592 [AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
1593   emacs_cv_var___after_morecore_hook=yes,
1594   emacs_cv_var___after_morecore_hook=no)])
1595 if test $emacs_cv_var___after_morecore_hook = no; then
1596   doug_lea_malloc=no
1600 dnl See comments in aix4-2.h about maybe using system malloc there.
1601 system_malloc=no
1602 case "$opsys" in
1603   ## darwin ld insists on the use of malloc routines in the System framework.
1604   darwin|sol2-10) system_malloc=yes ;;
1605 esac
1607 if test "${system_malloc}" = "yes"; then
1608   AC_DEFINE(SYSTEM_MALLOC, 1, [Define to use system malloc.])
1609   GNU_MALLOC=no
1610   GNU_MALLOC_reason="
1611     (The GNU allocators don't work with this system configuration.)"
1612   GMALLOC_OBJ=
1613   VMLIMIT_OBJ=
1614 else
1615   test "$doug_lea_malloc" != "yes" && GMALLOC_OBJ=gmalloc.o
1616   VMLIMIT_OBJ=vm-limit.o
1618 AC_SUBST(GMALLOC_OBJ)
1619 AC_SUBST(VMLIMIT_OBJ)
1621 if test "$doug_lea_malloc" = "yes" ; then
1622   if test "$GNU_MALLOC" = yes ; then
1623     GNU_MALLOC_reason="
1624       (Using Doug Lea's new malloc from the GNU C Library.)"
1625   fi
1626   AC_DEFINE(DOUG_LEA_MALLOC, 1,
1627             [Define to 1 if you are using the GNU C Library.])
1629   ## Use mmap directly for allocating larger buffers.
1630   ## FIXME this comes from src/s/{gnu,gnu-linux}.h:
1631   ## #ifdef DOUG_LEA_MALLOC; #undef REL_ALLOC; #endif
1632   ## Does the AC_FUNC_MMAP test below make this check unecessary?
1633   case "$opsys" in
1634     gnu*) REL_ALLOC=no ;;
1635   esac
1638 if test x"${REL_ALLOC}" = x; then
1639   REL_ALLOC=${GNU_MALLOC}
1642 use_mmap_for_buffers=no
1643 case "$opsys" in
1644   freebsd|irix6-5) use_mmap_for_buffers=yes ;;
1645 esac
1647 AC_FUNC_MMAP
1648 if test $use_mmap_for_buffers = yes; then
1649   AC_DEFINE(USE_MMAP_FOR_BUFFERS, 1, [Define to use mmap to allocate buffer text.])
1650   REL_ALLOC=no
1653 LIBS="$LIBS_SYSTEM $LIBS"
1655 dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
1656 dnl and also adds -ldnet to LIBS, which Autoconf uses for checks.
1657 AC_CHECK_LIB(dnet, dnet_ntoa)
1658 dnl This causes -lresolv to get used in subsequent tests,
1659 dnl which causes failures on some systems such as HPUX 9.
1660 dnl AC_CHECK_LIB(resolv, gethostbyname)
1662 dnl FIXME replace main with a function we actually want from this library.
1663 AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
1665 AC_CHECK_LIB(pthreads, cma_open)
1667 ## Note: when using cpp in s/aix4.2.h, this definition depended on
1668 ## HAVE_LIBPTHREADS.  That was not defined earlier in configure when
1669 ## the system file was sourced.  Hence the value of LIBS_SYSTEM
1670 ## added to LIBS in configure would never contain the pthreads part,
1671 ## but the value used in Makefiles might.  FIXME?
1673 ## -lpthreads seems to be necessary for Xlib in X11R6, and should
1674 ## be harmless on older versions of X where it happens to exist.
1675 test "$opsys" = "aix4-2" && \
1676   test $ac_cv_lib_pthreads_cma_open = yes && \
1677   LIBS_SYSTEM="$LIBS_SYSTEM -lpthreads"
1679 dnl Check for need for bigtoc support on IBM AIX
1681 case ${host_os} in
1682 aix*)
1683   AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
1684     case $GCC in
1685     yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
1686     *) gdb_cv_bigtoc=-bbigtoc ;;
1687     esac
1689     LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
1690     AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
1691   ])
1692   ;;
1693 esac
1695 # Change CFLAGS and CPPFLAGS temporarily so that C_SWITCH_X_SITE gets
1696 # used for the tests that follow.  We set them back to REAL_CFLAGS and
1697 # REAL_CPPFLAGS later on.
1699 REAL_CPPFLAGS="$CPPFLAGS"
1701 if test "${HAVE_X11}" = "yes"; then
1702   DEFS="$C_SWITCH_X_SITE $DEFS"
1703   LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE"
1704   LIBS="-lX11 $LIBS"
1705   CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
1706   CPPFLAGS="$C_SWITCH_X_SITE $CPPFLAGS"
1708   # On Solaris, arrange for LD_RUN_PATH to point to the X libraries for tests.
1709   # This is handled by LD_SWITCH_X_SITE_AUX during the real build,
1710   # but it's more convenient here to set LD_RUN_PATH
1711   # since this also works on hosts that don't understand LD_SWITCH_X_SITE_AUX.
1712   if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
1713     LD_RUN_PATH=$x_libraries${LD_RUN_PATH+:}$LD_RUN_PATH
1714     export LD_RUN_PATH
1715   fi
1717   if test "${opsys}" = "gnu-linux"; then
1718     AC_MSG_CHECKING(whether X on GNU/Linux needs -b to link)
1719     AC_TRY_LINK([],
1720      [XOpenDisplay ("foo");],
1721      [xlinux_first_failure=no],
1722      [xlinux_first_failure=yes])
1723     if test "${xlinux_first_failure}" = "yes"; then
1724       OLD_LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE"
1725       OLD_C_SWITCH_X_SITE="$C_SWITCH_X_SITE"
1726       OLD_CPPFLAGS="$CPPFLAGS"
1727       OLD_LIBS="$LIBS"
1728       LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout"
1729       C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout"
1730       CPPFLAGS="$CPPFLAGS -b i486-linuxaout"
1731       LIBS="$LIBS -b i486-linuxaout"
1732       AC_TRY_LINK([],
1733        [XOpenDisplay ("foo");],
1734        [xlinux_second_failure=no],
1735        [xlinux_second_failure=yes])
1736       if test "${xlinux_second_failure}" = "yes"; then
1737         # If we get the same failure with -b, there is no use adding -b.
1738         # So take it out.  This plays safe.
1739         LD_SWITCH_X_SITE="$OLD_LD_SWITCH_X_SITE"
1740         C_SWITCH_X_SITE="$OLD_C_SWITCH_X_SITE"
1741         CPPFLAGS="$OLD_CPPFLAGS"
1742         LIBS="$OLD_LIBS"
1743         AC_MSG_RESULT(no)
1744       else
1745         AC_MSG_RESULT(yes)
1746       fi
1747     else
1748       AC_MSG_RESULT(no)
1749     fi
1750   fi
1752   # Reportedly, some broken Solaris systems have XKBlib.h but are missing
1753   # header files included from there.
1754   AC_MSG_CHECKING(for Xkb)
1755   AC_TRY_LINK([#include <X11/Xlib.h>
1756 #include <X11/XKBlib.h>],
1757         [XkbDescPtr kb = XkbGetKeyboard (0, XkbAllComponentsMask, XkbUseCoreKbd);],
1758         emacs_xkb=yes, emacs_xkb=no)
1759   AC_MSG_RESULT($emacs_xkb)
1760   if test $emacs_xkb = yes; then
1761     AC_DEFINE(HAVE_XKBGETKEYBOARD, 1, [Define to 1 if you have the XkbGetKeyboard function.])
1762   fi
1764   AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
1765 XScreenNumberOfScreen XSetWMProtocols)
1768 if test "${window_system}" = "x11"; then
1769   AC_MSG_CHECKING(X11 version 6)
1770   AC_CACHE_VAL(emacs_cv_x11_version_6,
1771   [AC_TRY_LINK([#include <X11/Xlib.h>],
1772 [#if XlibSpecificationRelease < 6
1773 fail;
1774 #endif
1775 ], emacs_cv_x11_version_6=yes, emacs_cv_x11_version_6=no)])
1776   if test $emacs_cv_x11_version_6 = yes; then
1777     AC_MSG_RESULT(6 or newer)
1778     AC_DEFINE(HAVE_X11R6, 1,
1779               [Define to 1 if you have the X11R6 or newer version of Xlib.])
1780   else
1781     AC_MSG_RESULT(before 6)
1782   fi
1786 ### Use -lrsvg-2 if available, unless `--with-rsvg=no' is specified.
1787 HAVE_RSVG=no
1788 if test "${HAVE_X11}" = "yes" || test "${NS_IMPL_GNUSTEP}" = "yes"; then
1789   if test "${with_rsvg}" != "no"; then
1790     RSVG_REQUIRED=2.11.0
1791     RSVG_MODULE="librsvg-2.0 >= $RSVG_REQUIRED"
1793     PKG_CHECK_MODULES(RSVG, $RSVG_MODULE, :, :)
1794     AC_SUBST(RSVG_CFLAGS)
1795     AC_SUBST(RSVG_LIBS)
1797     if test ".${RSVG_CFLAGS}" != "."; then
1798       HAVE_RSVG=yes
1799       AC_DEFINE(HAVE_RSVG, 1, [Define to 1 if using librsvg.])
1800       CFLAGS="$CFLAGS $RSVG_CFLAGS"
1801       LIBS="$RSVG_LIBS $LIBS"
1802     fi
1803   fi
1807 HAVE_GTK=no
1808 if test "${with_gtk3}" = "yes"; then
1809   GLIB_REQUIRED=2.6
1810   GTK_REQUIRED=2.90
1811   GTK_MODULES="gtk+-3.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
1813   dnl Checks for libraries.
1814   PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
1815   if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
1816      AC_MSG_ERROR($GTK_PKG_ERRORS)
1817   fi
1820 if test "$pkg_check_gtk" != "yes"; then
1821   HAVE_GTK=no
1822 if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "maybe"; then
1823   GLIB_REQUIRED=2.6
1824   GTK_REQUIRED=2.6
1825   GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
1827   dnl Checks for libraries.
1828   PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
1829   if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
1830      AC_MSG_ERROR($GTK_PKG_ERRORS)
1831   fi
1835 GTK_OBJ=
1836 if test x"$pkg_check_gtk" = xyes; then
1838   AC_SUBST(GTK_CFLAGS)
1839   AC_SUBST(GTK_LIBS)
1840   C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS"
1841   CFLAGS="$CFLAGS $GTK_CFLAGS"
1842   LIBS="$GTK_LIBS $LIBS"
1843   dnl Try to compile a simple GTK program.
1844   GTK_COMPILES=no
1845   AC_CHECK_FUNCS(gtk_main, GTK_COMPILES=yes)
1846   if test "${GTK_COMPILES}" != "yes"; then
1847     if test "$USE_X_TOOLKIT" != "maybe"; then
1848       AC_MSG_ERROR([Gtk+ wanted, but it does not compile, see config.log.  Maybe some x11-devel files missing?]);
1849     fi
1850   else
1851     HAVE_GTK=yes
1852     AC_DEFINE(USE_GTK, 1, [Define to 1 if using GTK.])
1853     GTK_OBJ=gtkutil.o
1854     USE_X_TOOLKIT=none
1855     if $PKG_CONFIG --atleast-version=2.10 gtk+-2.0; then
1856       :
1857     else
1858       AC_MSG_WARN([[Your version of Gtk+ will have problems with
1859        closing open displays.  This is no problem if you just use
1860        one display, but if you use more than one and close one of them
1861        Emacs may crash.]])
1862       sleep 3
1863     fi
1864   fi
1867 AC_SUBST(GTK_OBJ)
1870 if test "${HAVE_GTK}" = "yes"; then
1872   dnl  GTK scrollbars resemble toolkit scrollbars a lot, so to avoid
1873   dnl  a lot if #ifdef:s, say we have toolkit scrollbars.
1874   if test "$with_toolkit_scroll_bars" != no; then
1875     with_toolkit_scroll_bars=yes
1876   fi
1878   dnl  Check if we have the old file selection dialog declared and
1879   dnl  in the link library.  In 2.x it may be in the library,
1880   dnl  but not declared if deprecated featured has been selected out.
1881   dnl  AC_CHECK_DECL checks for a macro, so check for GTK_TYPE_FILE_SELECTION.
1882   HAVE_GTK_FILE_SELECTION=no
1883   AC_CHECK_DECL(GTK_TYPE_FILE_SELECTION, HAVE_GTK_FILE_SELECTION=yes,
1884                    HAVE_GTK_FILE_SELECTION=no, [AC_INCLUDES_DEFAULT
1885 #include <gtk/gtk.h>])
1886   if test "$HAVE_GTK_FILE_SELECTION" = yes; then
1887     AC_CHECK_FUNCS(gtk_file_selection_new)
1888   fi
1890   dnl Check if pthreads are available.  Emacs only needs this when using
1891   dnl gtk_file_chooser under Gnome.
1892     HAVE_GTK_AND_PTHREAD=no
1893     AC_CHECK_HEADERS(pthread.h)
1894     if test "$ac_cv_header_pthread_h"; then
1895       AC_CHECK_LIB(pthread, pthread_self, HAVE_GTK_AND_PTHREAD=yes)
1896     fi
1897     if test "$HAVE_GTK_AND_PTHREAD" = yes; then
1898       case "${canonical}" in
1899         *-hpux*) ;;
1900         *) GTK_LIBS="$GTK_LIBS -lpthread" ;;
1901       esac
1902       AC_DEFINE(HAVE_GTK_AND_PTHREAD, 1,
1903                [Define to 1 if you have GTK and pthread (-lpthread).])
1904     fi
1906   dnl Check for functions introduced in 2.14 and later.
1907   AC_CHECK_FUNCS(gtk_widget_get_window gtk_widget_set_has_window \
1908                  gtk_dialog_get_action_area gtk_widget_get_sensitive \
1909                  gtk_widget_get_mapped gtk_adjustment_get_page_size \
1910                  gtk_orientable_set_orientation)
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 ## FIXME? Nothing uses @LD_SWITCH_X_SITE@.
3082 ## src/Makefile.in did add LD_SWITCH_X_SITE (as a cpp define) to the
3083 ## end of LIBX_BASE, but nothing ever set it.
3084 AC_SUBST(LD_SWITCH_X_SITE)
3085 AC_SUBST(C_SWITCH_X_SITE)
3086 AC_SUBST(C_SWITCH_X_SYSTEM)
3087 AC_SUBST(CFLAGS)
3088 ## Used in lwlib/Makefile.in.
3089 AC_SUBST(X_TOOLKIT_TYPE)
3090 AC_SUBST(machfile)
3091 AC_SUBST(opsysfile)
3092 AC_SUBST(GETLOADAVG_LIBS)
3093 AC_SUBST(ns_appdir)
3094 AC_SUBST(ns_appbindir)
3095 AC_SUBST(ns_appresdir)
3096 AC_SUBST(ns_appsrc)
3097 AC_SUBST(GNU_OBJC_CFLAGS)
3098 AC_SUBST(OTHER_FILES)
3100 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION,  "${canonical}",
3101                    [Define to the canonical Emacs configuration name.])
3102 AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}",
3103                    [Define to the options passed to configure.])
3104 AC_DEFINE_UNQUOTED(config_machfile,  "${machfile}",
3105                    [Define to the used machine dependent file.])
3106 AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}",
3107                    [Define to the used os dependent file.])
3109 XMENU_OBJ=
3110 XOBJ=
3111 FONT_OBJ=
3112 if test "${HAVE_X_WINDOWS}" = "yes" ; then
3113   AC_DEFINE(HAVE_X_WINDOWS, 1,
3114             [Define to 1 if you want to use the X window system.])
3115   XMENU_OBJ=xmenu.o
3116   XOBJ="xterm.o xfns.o xselect.o xrdb.o fontset.o xsmfns.o fringe.o image.o xsettings.o xgselect.o"
3117   FONT_OBJ=xfont.o
3118   if test "$HAVE_XFT" = "yes"; then
3119     FONT_OBJ="$FONT_OBJ ftfont.o xftfont.o ftxfont.o"
3120   elif test "$HAVE_FREETYPE" = "yes"; then
3121     FONT_OBJ="$FONT_OBJ ftfont.o ftxfont.o"
3122   fi
3123   AC_SUBST(FONT_OBJ)
3125 AC_SUBST(XMENU_OBJ)
3126 AC_SUBST(XOBJ)
3127 AC_SUBST(FONT_OBJ)
3129 WIDGET_OBJ=
3130 MOTIF_LIBW=
3131 if test "${USE_X_TOOLKIT}" != "none" ; then
3132   WIDGET_OBJ=widget.o
3133   AC_DEFINE(USE_X_TOOLKIT, 1, [Define to 1 if using an X toolkit.])
3134   if test "${USE_X_TOOLKIT}" = "LUCID"; then
3135     AC_DEFINE(USE_LUCID, 1, [Define to 1 if using the Lucid X toolkit.])
3136   elif test "${USE_X_TOOLKIT}" = "MOTIF"; then
3137     AC_DEFINE(USE_MOTIF, 1, [Define to 1 if using the Motif X toolkit.])
3138     MOTIF_LIBW=-lXm
3139     case "$opsys" in
3140       gnu-linux)
3141         ## Paul Abrahams <abrahams at equinox.shaysnet.com> says this is needed.
3142         MOTIF_LIBW="$MOTIF_LIBW -lXpm"
3143         ;;
3145       unixware)
3146         ## Richard Anthony Ryan <ryanr at ellingtn.ftc.nrcs.usda.gov>
3147         ## says -lXimp is needed in UNIX_SV ... 4.2 1.1.2.
3148         MOTIF_LIBW="MOTIF_LIBW -lXimp"
3149         ;;
3151       aix4-2)
3152         ## olson@mcs.anl.gov says -li18n is needed by -lXm.
3153         MOTIF_LIBW="$MOTIF_LIBW -li18n"
3154         ;;
3155     esac
3156     MOTIF_LIBW="$MOTIF_LIBW $LIBXP"
3157   fi
3159 AC_SUBST(WIDGET_OBJ)
3161 TOOLKIT_LIBW=
3162 case "$USE_X_TOOLKIT" in
3163   MOTIF) TOOLKIT_LIBW="$MOTIF_LIBW" ;;
3164   LUCID) TOOLKIT_LIBW="$LUCID_LIBW" ;;
3165   none) test "x$HAVE_GTK" = "xyes" && TOOLKIT_LIBW="$GTK_LIBS" ;;
3166 esac
3167 AC_SUBST(TOOLKIT_LIBW)
3169 if test "$USE_X_TOOLKIT" = "none"; then
3170   LIBXT_OTHER="\$(LIBXSM)"
3171   OLDXMENU_TARGET="really-oldXMenu"
3172 else
3173   LIBXT_OTHER="\$(LIBXMU) -lXt \$(LIBXTR6) -lXext"
3174   OLDXMENU_TARGET="really-lwlib"
3176 AC_SUBST(LIBXT_OTHER)
3178 ## The X Menu stuff is present in the X10 distribution, but missing
3179 ## from X11.  If we have X10, just use the installed library;
3180 ## otherwise, use our own copy.
3181 if test "${HAVE_X11}" = "yes" ; then
3182   AC_DEFINE(HAVE_X11, 1,
3183             [Define to 1 if you want to use version 11 of X windows.
3184              Otherwise, Emacs expects to use version 10.])
3186   if test "$USE_X_TOOLKIT" = "none"; then
3187     OLDXMENU="\${oldXMenudir}libXMenu11.a"
3188   else
3189     OLDXMENU="\${lwlibdir}liblw.a"
3190   fi
3191   LIBXMENU="\$(OLDXMENU)"
3192   LIBX_OTHER="\$(LIBXT) \$(LIBX_EXTRA)"
3193   OLDXMENU_DEPS="\${OLDXMENU} ../src/\${OLDXMENU}"
3194 else
3195   ## For a syntactically valid Makefile; not actually used for anything.
3196   ## See comments in src/Makefile.in.
3197   OLDXMENU=nothing
3198   ## FIXME This case (!HAVE_X11 && HAVE_X_WINDOWS) is no longer possible(?).
3199   if test "${HAVE_X_WINDOWS}" = "yes"; then
3200     LIBXMENU="-lXMenu"
3201   else
3202     LIBXMENU=
3203   fi
3204   LIBX_OTHER=
3205   OLDXMENU_DEPS=
3208 if test "$HAVE_GTK" = "yes" || test "$HAVE_MENUS" != "yes"; then
3209   OLDXMENU_TARGET=
3210   OLDXMENU=nothing  
3211   LIBXMENU=
3212   OLDXMENU_DEPS=
3215 AC_SUBST(OLDXMENU_TARGET)
3216 AC_SUBST(OLDXMENU)
3217 AC_SUBST(LIBXMENU)
3218 AC_SUBST(LIBX_OTHER)
3219 AC_SUBST(OLDXMENU_DEPS)
3221 if test "${HAVE_MENUS}" = "yes" ; then
3222   AC_DEFINE(HAVE_MENUS, 1,
3223             [Define to 1 if you have mouse menus.
3224              (This is automatic if you use X, but the option to specify it remains.)
3225              It is also defined with other window systems that support xmenu.c.])
3228 if test "${GNU_MALLOC}" = "yes" ; then
3229   AC_DEFINE(GNU_MALLOC, 1,
3230             [Define to 1 if you want to use the GNU memory allocator.])
3233 RALLOC_OBJ=
3234 if test "${REL_ALLOC}" = "yes" ; then
3235   AC_DEFINE(REL_ALLOC, 1,
3236             [Define REL_ALLOC if you want to use the relocating allocator for
3237              buffer space.])
3239   test "$system_malloc" != "yes" && RALLOC_OBJ=ralloc.o
3241 AC_SUBST(RALLOC_OBJ)
3243 if test "$opsys" = "cygwin"; then
3244   CYGWIN_OBJ="sheap.o"
3245   ## Cygwin differs because of its unexec().
3246   PRE_ALLOC_OBJ=
3247   POST_ALLOC_OBJ=lastfile.o
3248 else
3249   CYGWIN_OBJ=
3250   PRE_ALLOC_OBJ=lastfile.o
3251   POST_ALLOC_OBJ=
3253 AC_SUBST(CYGWIN_OBJ)
3254 AC_SUBST(PRE_ALLOC_OBJ)
3255 AC_SUBST(POST_ALLOC_OBJ)
3258 case "$opsys" in
3259   aix4-2) LD_SWITCH_SYSTEM_TEMACS="-Wl,-bnodelcsect" ;;
3261   darwin)
3262    ## The -headerpad option tells ld (see man page) to leave room at the
3263    ## end of the header for adding load commands.  Needed for dumping.
3264    ## 0x690 is the total size of 30 segment load commands (at 56
3265    ## each); under Cocoa 31 commands are required.
3266    if test "$HAVE_NS" = "yes"; then
3267      libs_nsgui="-framework AppKit"
3268      headerpad_extra=6C8
3269    else
3270      libs_nsgui=
3271      headerpad_extra=690
3272    fi
3273    LD_SWITCH_SYSTEM_TEMACS="-prebind $libs_nsgui -Xlinker -headerpad -Xlinker $headerpad_extra"
3275    ## This is here because src/Makefile.in did some extra fiddling around
3276    ## with LD_SWITCH_SYSTEM.  The cpp logic was:
3277    ##   #ifndef LD_SWITCH_SYSTEM
3278    ##   #if !defined (__GNUC__) && ((defined (BSD_SYSTEM) && !defined (COFF)))
3279    ## Since all the *bsds define LD_SWITCH_SYSTEM, this simplifies to:
3280    ## not using gcc, darwin system not on an alpha (ie darwin, since
3281    ## darwin + alpha does not occur).
3282    ## Because this was done in src/Makefile.in, the resulting part of
3283    ## LD_SWITCH_SYSTEM was not used in configure (ie, in ac_link).
3284    ## It therefore seems cleaner to put this in LD_SWITCH_SYSTEM_TEMACS,
3285    ## rather than LD_SWITCH_SYSTEM.
3286    test "x$LD_SWITCH_SYSTEM" = "x" && test "x$GCC" != "xyes" && \
3287      LD_SWITCH_SYSTEM_TEMACS="-X $LD_SWITCH_SYSTEM_TEMACS"
3288    ;;
3290   ## LD_SWITCH_X_SITE_AUX is a -R option saying where to find X at run-time.
3291   ## When handled by cpp, this was in LD_SWITCH_SYSTEM.  However, at
3292   ## the point where configure sourced the s/*.h file, LD_SWITCH_X_SITE_AUX
3293   ## had not yet been defined and was expanded to null.  Hence LD_SWITCH_SYSTEM
3294   ## had different values in configure (in ac_link) and src/Makefile.in.
3295   ## It seems clearer therefore to put this piece in LD_SWITCH_SYSTEM_TEMACS.
3296   gnu-linux) LD_SWITCH_SYSTEM_TEMACS="\$(LD_SWITCH_X_SITE_AUX)" ;;
3298   *) LD_SWITCH_SYSTEM_TEMACS= ;;
3299 esac
3301 if test "$NS_IMPL_GNUSTEP" = "yes"; then
3302   LD_SWITCH_SYSTEM_TEMACS="${LD_SWITCH_SYSTEM_TEMACS} -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES} -lgnustep-gui -lgnustep-base -lobjc -lpthread"
3305 AC_SUBST(LD_SWITCH_SYSTEM_TEMACS)
3308 LINKER=
3309 ORDINARY_LINK=
3310 case "$opsys" in
3311   ## gnu: GNU needs its own crt0.
3312   aix4-2|darwin|gnu|usg5-4|irix6-5|sol2*|unixware) ORDINARY_LINK=yes ;;
3314   cygwin) LINKER="\$(CC)" ;;
3316   ## On post 1.3 releases of NetBSD, gcc -nostdlib also clears the
3317   ## library search parth, i.e. it won't search /usr/lib for libc and
3318   ## friends.  Using -nostartfiles instead avoids this problem, and
3319   ## will also work on earlier NetBSD releases.
3320   netbsd|openbsd) LINKER="\$(CC) -nostartfiles" ;;
3322   ## macpcc: NAKAJI Hiroyuki <nakaji@tutrp.tut.ac.jp> says
3323   ##   MkLinux/LinuxPPC needs this.
3324   ## ibms390x only supports opsys = gnu-linux so it can be added here.
3325   gnu-*)
3326     case "$machine" in
3327       macppc|ibms390x) LINKER="\$(CC) -nostdlib" ;;
3328     esac
3329     ;;
3330 esac
3333 PRE_EDIT_LDFLAGS=
3334 POST_EDIT_LDFLAGS=
3335 if test "x$ORDINARY_LINK" = "xyes"; then
3337   LINKER="\$(CC)"
3338   AC_DEFINE(ORDINARY_LINK, 1, [Define if the C compiler is the linker.])
3340 ## The system files defining neither ORDINARY_LINK nor LINKER are:
3341 ## (bsd-common), freebsd, gnu-* not on macppc|ibms390x, hpux*.
3342 elif test "x$GCC" = "xyes" && test "x$LINKER" = "x"; then
3344   ## Versions of GCC >= 2.0 put their library, libgcc.a, in obscure
3345   ## places that are difficult to figure out at make time.  Fortunately,
3346   ## these same versions allow you to pass arbitrary flags on to the
3347   ## linker, so there is no reason not to use it as a linker.
3348   ##
3349   ## Well, it is not quite perfect.  The "-nostdlib" keeps GCC from
3350   ## searching for libraries in its internal directories, so we have to
3351   ## ask GCC explicitly where to find libgcc.a (LIB_GCC below).
3352   LINKER="\$(CC) -nostdlib"
3353   ## GCC passes any argument prefixed with -Xlinker directly to the linker.
3354   ## See prefix-args.c for an explanation of why we do not do this with the
3355   ## shell''s ``for'' construct.  Note that sane people do not have '.' in
3356   ## their paths, so we must use ./prefix-args.
3357   ## TODO either make prefix-args check ORDINARY_LINK internally,
3358   ## or remove it altogether (bug#6184), removing the need for this hack.
3359   PRE_EDIT_LDFLAGS='`./prefix-args -Xlinker'
3360   POST_EDIT_LDFLAGS='`'
3362 AC_SUBST(PRE_EDIT_LDFLAGS)
3363 AC_SUBST(POST_EDIT_LDFLAGS)
3365 test "x$LINKER" = "x" && LINKER=ld
3366 ## FIXME? What setting of EDIT_LDFLAGS should this have?
3367 test "$NS_IMPL_GNUSTEP" = "yes" && LINKER="\$(CC) -rdynamic"
3369 AC_SUBST(LINKER)
3372 ## FIXME? The logic here is not precisely the same as that above.
3373 ## There is no check here for a pre-defined LINKER.
3374 ## Should we only be setting LIB_GCC if LD ~ -nostdlib?
3375 LIB_GCC=
3376 if test "x$GCC" = "xyes" && test "x$ORDINARY_LINK" != "xyes"; then
3378   case "$opsys" in
3379     ## cygwin: don't link against static libgcc.
3380     cygwin|freebsd|netbsd|openbsd) LIB_GCC= ;;
3382     gnu-*)
3383       ## armin76@gentoo.org reported that the lgcc_s flag is necessary to
3384       ## build on ARM EABI under GNU/Linux.  (Bug#5518)
3385       ## Note that m/arm.h never bothered to undefine LIB_GCC first.
3386       if test "$machine" = "arm"; then
3387         LIB_GCC="-lgcc_s"
3388       else
3389         ## FIXME? s/gnu-linux.h used to define LIB_GCC as below, then
3390         ## immediately undefine it again and redefine it to empty.
3391         ## Was the C_SWITCH_X_SITE part really necessary?
3392 ##      LIB_GCC=`$CC $C_SWITCH_X_SITE -print-libgcc-file-name`
3393         LIB_GCC=
3394       fi
3395       ;;
3397     ## Ask GCC where to find libgcc.a.
3398     *) LIB_GCC=`$CC -print-libgcc-file-name 2> /dev/null` ;;
3399   esac
3400 fi                              dnl if $GCC
3401 AC_SUBST(LIB_GCC)
3404 TOOLTIP_SUPPORT=
3405 WINDOW_SUPPORT=
3406 ## If we're using X11/GNUstep, define some consequences.
3407 if test "$HAVE_X_WINDOWS" = "yes" || test "$HAVE_NS" = "yes"; then
3408   AC_DEFINE(HAVE_WINDOW_SYSTEM, 1, [Define if you have a window system.])
3409   AC_DEFINE(HAVE_MOUSE, 1, [Define if you have mouse support.])
3410   MOUSE_SUPPORT="\$(REAL_MOUSE_SUPPORT)"
3411   TOOLTIP_SUPPORT="\${lispsource}mouse.elc"
3413   WINDOW_SUPPORT="\$(BASE_WINDOW_SUPPORT)"
3414   test "$HAVE_X_WINDOWS" = "yes" && \
3415     WINDOW_SUPPORT="$WINDOW_SUPPORT \$(X_WINDOW_SUPPORT)"
3418 AC_SUBST(MOUSE_SUPPORT)
3419 AC_SUBST(TOOLTIP_SUPPORT)
3420 AC_SUBST(WINDOW_SUPPORT)
3423 AH_TOP([/* GNU Emacs site configuration template file.
3424    Copyright (C) 1988, 1993, 1994, 1999, 2000, 2001, 2002, 2004, 2005,
3425      2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc.
3427 This file is part of GNU Emacs.
3429 GNU Emacs is free software: you can redistribute it and/or modify
3430 it under the terms of the GNU General Public License as published by
3431 the Free Software Foundation, either version 3 of the License, or
3432 (at your option) any later version.
3434 GNU Emacs is distributed in the hope that it will be useful,
3435 but WITHOUT ANY WARRANTY; without even the implied warranty of
3436 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
3437 GNU General Public License for more details.
3439 You should have received a copy of the GNU General Public License
3440 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
3443 /* No code in Emacs #includes config.h twice, but some bits of code
3444    intended to work with other packages as well (like gmalloc.c)
3445    think they can include it as many times as they like.  */
3446 #ifndef EMACS_CONFIG_H
3447 #define EMACS_CONFIG_H
3448 ])dnl
3450 AH_BOTTOM([
3451 /* Define AMPERSAND_FULL_NAME if you use the convention
3452    that & in the full name stands for the login id.  */
3453 /* Turned on June 1996 supposing nobody will mind it.  */
3454 #define AMPERSAND_FULL_NAME
3456 /* Define HAVE_SOUND if we have sound support.  We know it works
3457    and compiles only on the specified platforms.   For others,
3458    it probably doesn't make sense to try.  */
3460 #if defined __FreeBSD__ || defined __NetBSD__ || defined __linux__
3461 #ifdef HAVE_MACHINE_SOUNDCARD_H
3462 #define HAVE_SOUND 1
3463 #endif
3464 #ifdef HAVE_SYS_SOUNDCARD_H
3465 #define HAVE_SOUND 1
3466 #endif
3467 #ifdef HAVE_SOUNDCARD_H
3468 #define HAVE_SOUND 1
3469 #endif
3470 #ifdef HAVE_ALSA
3471 #define HAVE_SOUND 1
3472 #endif
3473 #endif /* __FreeBSD__ || __NetBSD__ || __linux__  */
3475 /* If using GNU, then support inline function declarations.  */
3476 /* Don't try to switch on inline handling as detected by AC_C_INLINE
3477    generally, because even if non-gcc compilers accept `inline', they
3478    may reject `extern inline'.  */
3479 #if defined (__GNUC__) && defined (OPTIMIZE)
3480 #define INLINE __inline__
3481 #else
3482 #define INLINE
3483 #endif
3485 /* `subprocesses' should be defined if you want to
3486    have code for asynchronous subprocesses
3487    (as used in M-x compile and M-x shell).
3488    Only MSDOS does not support this (it overrides
3489    this in its config_opsysfile below).  */
3491 #define subprocesses
3493 /* Include the os and machine dependent files.  */
3494 #include config_opsysfile
3495 #include config_machfile
3497 /* Set up some defines, C and LD flags for NeXTstep interface on GNUstep.
3498   (There is probably a better place to do this, but right now the Cocoa
3499    side does this in s/darwin.h and we cannot
3500    parallel this exactly since GNUstep is multi-OS.  */
3501 #ifdef HAVE_NS
3502 # ifdef NS_IMPL_GNUSTEP
3503 /* GNUstep needs a bit more pure memory.  Of the existing knobs,
3504 SYSTEM_PURESIZE_EXTRA seems like the least likely to cause problems.  */
3505 #  define SYSTEM_PURESIZE_EXTRA 30000
3506 # endif /* NS_IMPL_GNUSTEP */
3507 #endif /* HAVE_NS */
3509 /* SIGTYPE is the macro we actually use.  */
3510 #ifndef SIGTYPE
3511 #define SIGTYPE RETSIGTYPE
3512 #endif
3514 #ifdef emacs /* Don't do this for lib-src.  */
3515 /* Tell regex.c to use a type compatible with Emacs.  */
3516 #define RE_TRANSLATE_TYPE Lisp_Object
3517 #define RE_TRANSLATE(TBL, C) CHAR_TABLE_TRANSLATE (TBL, C)
3518 #ifdef make_number
3519 /* If make_number is a macro, use it.  */
3520 #define RE_TRANSLATE_P(TBL) (!EQ (TBL, make_number (0)))
3521 #else
3522 /* If make_number is a function, avoid it.  */
3523 #define RE_TRANSLATE_P(TBL) (!(INTEGERP (TBL) && XINT (TBL) == 0))
3524 #endif
3525 #endif
3527 /* Avoid link-time collision with system mktime if we will use our own.  */
3528 #if ! HAVE_MKTIME || BROKEN_MKTIME
3529 #define mktime emacs_mktime
3530 #endif
3532 #define my_strftime nstrftime   /* for strftime.c */
3534 /* Some of the files of Emacs which are intended for use with other
3535    programs assume that if you have a config.h file, you must declare
3536    the type of getenv.  */
3537 extern char *getenv ();
3539 /* These default definitions are good for almost all machines.
3540    The exceptions override them in m/MACHINE.h.  */
3542 #ifndef BITS_PER_CHAR
3543 #define BITS_PER_CHAR 8
3544 #endif
3546 #ifndef BITS_PER_SHORT
3547 #define BITS_PER_SHORT 16
3548 #endif
3550 /* Note that lisp.h uses this in a preprocessor conditional, so it
3551    would not work to use sizeof.  That being so, we do all of them
3552    without sizeof, for uniformity's sake.  */
3553 #ifndef BITS_PER_INT
3554 #define BITS_PER_INT 32
3555 #endif
3557 #ifndef BITS_PER_LONG
3558 #ifdef _LP64
3559 #define BITS_PER_LONG 64
3560 #else
3561 #define BITS_PER_LONG 32
3562 #endif
3563 #endif
3565 /* Define if the compiler supports function prototypes.  It may do so
3566    but not define __STDC__ (e.g. DEC C by default) or may define it as
3567    zero.  */
3568 #undef PROTOTYPES
3569 /* For mktime.c:  */
3570 #ifndef __P
3571 # if defined PROTOTYPES
3572 #  define __P(args) args
3573 # else
3574 #  define __P(args) ()
3575 # endif  /* GCC.  */
3576 #endif /* __P */
3578 #ifdef HAVE_STRING_H
3579 #include <string.h>
3580 #endif
3582 #ifdef HAVE_STRINGS_H
3583 #include <strings.h>  /* May be needed for bcopy & al.  */
3584 #endif
3586 #ifdef HAVE_STDLIB_H
3587 #include <stdlib.h>
3588 #endif
3590 #ifdef HAVE_ALLOCA_H
3591 # include <alloca.h>
3592 #elif defined __GNUC__
3593 # define alloca __builtin_alloca
3594 #elif defined _AIX
3595 # define alloca __alloca
3596 #else
3597 # include <stddef.h>
3598 # ifdef  __cplusplus
3599 extern "C"
3600 # endif
3601 void *alloca (size_t);
3602 #endif
3604 #ifndef HAVE_SIZE_T
3605 typedef unsigned size_t;
3606 #endif
3608 /* Define HAVE_X_I18N if we have usable i18n support.  */
3610 #ifdef HAVE_X11R6
3611 #define HAVE_X_I18N
3612 #endif
3614 /* Define HAVE_X11R6_XIM if we have usable X11R6-style XIM support.  */
3616 #if defined HAVE_X11R6 && !defined INHIBIT_X11R6_XIM
3617 #define HAVE_X11R6_XIM
3618 #endif
3620 #if defined __GNUC__ && (__GNUC__ > 2 \
3621                          || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5))
3622 #define NO_RETURN       __attribute__ ((__noreturn__))
3623 #else
3624 #define NO_RETURN       /* nothing */
3625 #endif
3627 /* These won't be used automatically yet.  We also need to know, at least,
3628    that the stack is continuous.  */
3629 #ifdef __GNUC__
3630 #  ifndef GC_SETJMP_WORKS
3631   /* GC_SETJMP_WORKS is nearly always appropriate for GCC.  */
3632 #    define GC_SETJMP_WORKS 1
3633 #  endif
3634 #  ifndef GC_LISP_OBJECT_ALIGNMENT
3635 #    define GC_LISP_OBJECT_ALIGNMENT (__alignof__ (Lisp_Object))
3636 #  endif
3637 #endif
3639 #ifndef HAVE_BCOPY
3640 #define bcopy(a,b,s) memcpy (b,a,s)
3641 #endif
3642 #ifndef HAVE_BZERO
3643 #define bzero(a,s) memset (a,0,s)
3644 #endif
3645 #ifndef HAVE_BCMP
3646 #define BCMP memcmp
3647 #endif
3649 #endif /* EMACS_CONFIG_H */
3652 Local Variables:
3653 mode: c
3654 End:
3656 ])dnl
3658 #### Report on what we decided to do.
3659 #### Report GTK as a toolkit, even if it doesn't use Xt.
3660 #### It makes printing result more understandable as using GTK sets
3661 #### toolkit_scroll_bars to yes by default.
3662 if test "${HAVE_GTK}" = "yes"; then
3663   USE_X_TOOLKIT=GTK
3666 echo "
3667 Configured for \`${canonical}'.
3669   Where should the build process find the source code?    ${srcdir}
3670   What operating system and machine description files should Emacs use?
3671         \`${opsysfile}' and \`${machfile}'
3672   What compiler should emacs be built with?               ${CC} ${CFLAGS}
3673   Should Emacs use the GNU version of malloc?             ${GNU_MALLOC}${GNU_MALLOC_reason}
3674   Should Emacs use a relocating allocator for buffers?    ${REL_ALLOC}
3675   Should Emacs use mmap(2) for buffer allocation?         $use_mmap_for_buffers
3676   What window system should Emacs use?                    ${window_system}
3677   What toolkit should Emacs use?                          ${USE_X_TOOLKIT}"
3679 if test -n "${x_includes}"; then
3680 echo "  Where do we find X Windows header files?                ${x_includes}"
3681 else
3682 echo "  Where do we find X Windows header files?                Standard dirs"
3684 if test -n "${x_libraries}"; then
3685 echo "  Where do we find X Windows libraries?                   ${x_libraries}"
3686 else
3687 echo "  Where do we find X Windows libraries?                   Standard dirs"
3690 echo "  Does Emacs use -lXaw3d?                                 ${HAVE_XAW3D}"
3691 echo "  Does Emacs use -lXpm?                                   ${HAVE_XPM}"
3692 echo "  Does Emacs use -ljpeg?                                  ${HAVE_JPEG}"
3693 echo "  Does Emacs use -ltiff?                                  ${HAVE_TIFF}"
3694 echo "  Does Emacs use a gif library?                           ${HAVE_GIF} $LIBGIF"
3695 echo "  Does Emacs use -lpng?                                   ${HAVE_PNG}"
3696 echo "  Does Emacs use -lrsvg-2?                                ${HAVE_RSVG}"
3697 echo "  Does Emacs use -lgpm?                                   ${HAVE_GPM}"
3698 echo "  Does Emacs use -ldbus?                                  ${HAVE_DBUS}"
3699 echo "  Does Emacs use -lgconf?                                 ${HAVE_GCONF}"
3700 echo "  Does Emacs use -lselinux?                               ${HAVE_LIBSELINUX}"
3702 echo "  Does Emacs use -lfreetype?                              ${HAVE_FREETYPE}"
3703 echo "  Does Emacs use -lm17n-flt?                              ${HAVE_M17N_FLT}"
3704 echo "  Does Emacs use -lotf?                                   ${HAVE_LIBOTF}"
3705 echo "  Does Emacs use -lxft?                                   ${HAVE_XFT}"
3707 echo "  Does Emacs use toolkit scroll bars?                     ${USE_TOOLKIT_SCROLL_BARS}"
3708 echo
3710 if test $USE_XASSERTS = yes; then
3711    echo "  Compiling with asserts turned on."
3712    CPPFLAGS="$CPPFLAGS -DXASSERTS=1"
3715 echo
3717 if test "$HAVE_NS" = "yes"; then
3718    echo
3719    echo "You must run \"make install\" in order to test the built application.
3720 The installed application will go to nextstep/Emacs.app and can be
3721 run or moved from there."
3722    if test "$EN_NS_SELF_CONTAINED" = "yes"; then
3723       echo "The application will be fully self-contained."
3724     else
3725       echo "The lisp resources for the application will be installed under ${prefix}.
3726 You may need to run \"make install\" with sudo.  The application will fail
3727 to run if these resources are not installed."
3728    fi
3729    echo
3732 if test "$HAVE_DBUS" = yes && test "${opsys}" != "gnu-linux"; then
3733   echo "D-Bus integration has been tested for GNU/Linux only."
3734   echo
3738 # Remove any trailing slashes in these variables.
3739 [test "${prefix}" != NONE &&
3740   prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
3741 test "${exec_prefix}" != NONE &&
3742   exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`]
3744 dnl You might wonder (I did) why epaths.h is generated by running make,
3745 dnl rather than just letting configure generate it from epaths.in.
3746 dnl One reason is that the various paths are not fully expanded (see above);
3747 dnl eg gamedir=${prefix}/var/games/emacs.
3748 dnl Secondly, the GNU Coding standards require that one should be able
3749 dnl to run `make prefix=/some/where/else' and override the values set
3750 dnl by configure.  This also explains the `move-if-change' test and
3751 dnl the use of force in the `epaths-force' rule in Makefile.in.
3752 AC_OUTPUT(Makefile lib-src/Makefile oldXMenu/Makefile \
3753         doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \
3754         doc/lispref/Makefile src/Makefile \
3755         lwlib/Makefile lisp/Makefile leim/Makefile, [
3757 ### Make the necessary directories, if they don't exist.
3758 for dir in etc lisp ; do
3759   test -d ${dir} || mkdir ${dir}
3760 done
3762 echo creating src/epaths.h
3763 ${MAKE-make} epaths-force
3765 if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then
3766   echo creating src/.gdbinit
3767   echo source $srcdir/src/.gdbinit > src/.gdbinit
3770 ], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPPFLAGS="$CPPFLAGS"])
3772 m4_if(dnl       Do not change this comment
3773    arch-tag: 156a4dd5-bddc-4d18-96ac-f37742cf6a5e
3774 )dnl