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