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