Fix last change.
[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.
6e502e37 5dnl
89ce934d
GM
6dnl Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2003,
7dnl 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
552dfe31 8dnl
6e502e37 9dnl This file is part of GNU Emacs.
552dfe31 10dnl
6e502e37
RS
11dnl GNU Emacs is free software; you can redistribute it and/or modify
12dnl it under the terms of the GNU General Public License as published by
fca4a5de 13dnl the Free Software Foundation; either version 3, or (at your option)
6e502e37 14dnl any later version.
552dfe31 15dnl
6e502e37
RS
16dnl GNU Emacs is distributed in the hope that it will be useful,
17dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
18dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19dnl GNU General Public License for more details.
20dnl
21dnl You should have received a copy of the GNU General Public License
1fb87c77 22dnl along with GNU Emacs; see the file COPYING. If not, write to the
0d07bc90
LK
23dnl Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
24dnl Boston, MA 02110-1301, USA.
6e502e37 25
ba8c1935 26AC_PREREQ(2.61)dnl
9ec10b2f 27AC_INIT(src/lisp.h)
5f8c8f00 28AC_CONFIG_HEADER(src/config.h:src/config.in)
9ec10b2f 29
a4663fed
PJ
30dnl Support for --program-prefix, --program-suffix and
31dnl --program-transform-name options
32AC_ARG_PROGRAM
33
9ec10b2f 34lispdir='${datadir}/emacs/${version}/lisp'
4be21f66 35locallisppath='${datadir}/emacs/${version}/site-lisp:'\
b8225171
KH
36'${datadir}/emacs/site-lisp'
37lisppath='${locallisppath}:${lispdir}:${datadir}/emacs/${version}/leim'
9ec10b2f 38etcdir='${datadir}/emacs/${version}/etc'
60c3568d 39archlibdir='${libexecdir}/emacs/${version}/${configuration}'
9ec10b2f 40docdir='${datadir}/emacs/${version}/etc'
b914de74 41gamedir='${localstatedir}/games/emacs'
93c05c18
CW
42
43gameuser=games
9ec10b2f 44
eb11f5b8
TTN
45dnl Autoconf is so much less fun under VMS, maybe
46dnl because everything is less fun under VMS. --ttn
47AC_DEFUN([EMACS_ARG_Y],[dnl
48AC_ARG_WITH([$1],[AS_HELP_STRING([--with-$1],[$2])],[$3],[$4])dnl
49])dnl
50AC_DEFUN([EMACS_ARG_N],[dnl
51AC_ARG_WITH([$1],[AS_HELP_STRING([--without-$1],[$2])],[$3],[$4])dnl
52])dnl
53
54EMACS_ARG_N([gcc],[don't use GCC to compile Emacs if GCC is found])
55
56EMACS_ARG_N([pop],[don't support POP mail retrieval with movemail],
6fa064b6
DL
57[if test "$withval" = yes; then
58 AC_DEFINE(MAIL_USE_POP)
59else :
3d9fec71
DL
60fi],
61AC_DEFINE(MAIL_USE_POP))
5e7d772d 62AH_TEMPLATE(MAIL_USE_POP, [Define to support POP mail retrieval.])dnl
eb11f5b8
TTN
63
64EMACS_ARG_Y([kerberos],[support Kerberos-authenticated POP],
ae61688f
CY
65[if test "$withval" = yes; then
66 AC_DEFINE(KERBEROS)
67fi])
5e7d772d
AS
68AH_TEMPLATE(KERBEROS,
69 [Define to support Kerberos-authenticated POP mail retrieval.])dnl
eb11f5b8
TTN
70
71EMACS_ARG_Y([kerberos5],[support Kerberos version 5 authenticated POP],
a21616bd
KR
72[if test "${with_kerberos5+set}" = set; then
73 if test "${with_kerberos+set}" != set; then
74 with_kerberos=yes
75 AC_DEFINE(KERBEROS)
76 fi
ae61688f
CY
77 AC_DEFINE(KERBEROS5, 1, [Define to use Kerberos 5 instead of Kerberos 4.])
78fi])
eb11f5b8
TTN
79
80EMACS_ARG_Y([hesiod],[support Hesiod to get the POP server host],
ae61688f
CY
81[if test "$withval" = yes; then
82 AC_DEFINE(HESIOD, 1, [Define to support using a Hesiod database to find the POP server.])
83fi])
3d9830e5 84
eb11f5b8 85EMACS_ARG_N([sound],[don't compile with sound support])
3d9830e5 86
4f734bde
DM
87dnl This should be the last --with option, because --with-x is
88dnl added later on when we find the path of X, and it's best to
89dnl keep them together visually.
eb11f5b8
TTN
90AC_ARG_WITH([x-toolkit],[AS_HELP_STRING([--with-x-toolkit=KIT],
91 [use an X toolkit (KIT one of: yes, lucid, athena, motif, gtk, no)])],
9ec10b2f 92[ case "${withval}" in
4f823057 93 y | ye | yes ) val=gtk ;;
9ec10b2f
DM
94 n | no ) val=no ;;
95 l | lu | luc | luci | lucid ) val=lucid ;;
84c5c823 96 a | at | ath | athe | athen | athena ) val=athena ;;
3cd69289 97 m | mo | mot | moti | motif ) val=motif ;;
488dd4c4 98 g | gt | gtk ) val=gtk ;;
9ec10b2f 99 * )
f7b4f5aa 100AC_MSG_ERROR([`--with-x-toolkit=$withval' is invalid;
488dd4c4 101this option's value should be `yes', `no', `lucid', `athena', `motif' or `gtk'.
f7b4f5aa 102`yes' and `gtk' are synonyms. `athena' and `lucid' are synonyms.])
9ec10b2f
DM
103 ;;
104 esac
105 with_x_toolkit=$val
106])
eb11f5b8
TTN
107
108EMACS_ARG_Y([xpm],[use -lXpm for displaying XPM images])
109EMACS_ARG_Y([jpeg],[use -ljpeg for displaying JPEG images])
110EMACS_ARG_Y([tiff],[use -ltiff for displaying TIFF images])
111EMACS_ARG_Y([gif],[use -lgif (or -lungif) for displaying GIF images])
112EMACS_ARG_Y([png],[use -lpng for displaying PNG images])
113EMACS_ARG_Y([gpm],[use -lgpm for mouse support on a GNU/Linux console])
114EMACS_ARG_Y([rsvg],[use -lrsvg-2 for displaying SVG images])
115EMACS_ARG_Y([gtk],[use GTK (same as --with-x-toolkit=gtk)])
116EMACS_ARG_Y([pkg-config-prog],[Path to pkg-config for finding GTK and librsvg])
117EMACS_ARG_N([toolkit-scroll-bars],[don't use Motif or Xaw3d scroll bars])
118EMACS_ARG_N([xaw3d],[don't use Xaw3d])
119EMACS_ARG_N([xim],[don't use X11 XIM])
120EMACS_ARG_N([carbon],[don't use Carbon GUI on Mac OS X])
121
52cd7d02 122AC_ARG_ENABLE(carbon-app,
1eb22088
AS
123[AS_HELP_STRING([--enable-carbon-app@<:@=DIR@:>@],
124 [specify install directory for Emacs.app on Mac OS X
125 [DIR=/Application]])],
52cd7d02 126[ carbon_appdir_x=${enableval}])
9ec10b2f 127
d0098f13 128AC_ARG_ENABLE(asserts,
1eb22088 129[AS_HELP_STRING([--enable-asserts], [compile code with asserts enabled])],
d0098f13
JD
130 USE_XASSERTS=$enableval,
131 USE_XASSERTS=no)
132
6a5f7a29 133AC_ARG_ENABLE(maintainer-mode,
1eb22088
AS
134[AS_HELP_STRING([--enable-maintainer-mode],
135 [enable make rules and dependencies not useful (and sometimes
136 confusing) to the casual installer])],
6a5f7a29
AS
137 USE_MAINTAINER_MODE=$enableval,
138 USE_MAINTAINER_MODE=no)
139if test $USE_MAINTAINER_MODE = yes; then
140 MAINT=
141else
142 MAINT=#
143fi
144AC_SUBST(MAINT)
145
261967be 146AC_ARG_ENABLE(locallisppath,
1eb22088
AS
147[AS_HELP_STRING([--enable-locallisppath=PATH],
148 [directories Emacs should search for lisp files specific
149 to this site])],
261967be
LK
150if test "${enableval}" = "no"; then
151 locallisppath=
152elif test "${enableval}" != "yes"; then
153 locallisppath=${enableval}
154fi)
155
9ec10b2f 156#### Make srcdir absolute, if it isn't already. It's important to
36969de6 157#### avoid running the path through pwd unnecessarily, since pwd can
069df4bf
DM
158#### give you automounter prefixes, which can go away. We do all this
159#### so Emacs can find its files when run uninstalled.
36969de6
GM
160## Make sure CDPATH doesn't affect cd (in case PWD is relative).
161unset CDPATH
9ec10b2f
DM
162case "${srcdir}" in
163 /* ) ;;
164 . )
165 ## We may be able to use the $PWD environment variable to make this
166 ## absolute. But sometimes PWD is inaccurate.
b83e4a77
RS
167 ## Note: we used to use ${PWD} at the end instead of `pwd`,
168 ## but that tested only for a well-formed and valid PWD,
169 ## it did not object when PWD was well-formed and valid but just wrong.
170 if test ".${PWD}" != "." && test ".`(cd ${PWD} ; sh -c pwd)`" = ".`pwd`" ;
9ec10b2f
DM
171 then
172 srcdir="$PWD"
173 else
174 srcdir="`(cd ${srcdir}; pwd)`"
175 fi
176 ;;
177 * ) srcdir="`(cd ${srcdir}; pwd)`" ;;
178esac
179
180#### Check if the source directory already has a configured system in it.
181if test `pwd` != `(cd ${srcdir} && pwd)` \
182 && test -f "${srcdir}/src/config.h" ; then
91b5aa9a 183 AC_MSG_WARN([[The directory tree `${srcdir}' is being used
9ec10b2f
DM
184 as a build directory right now; it has been configured in its own
185 right. To configure in another directory as well, you MUST
186 use GNU make. If you do not have GNU make, then you must
91b5aa9a
DL
187 now do `make distclean' in ${srcdir},
188 and then run $0 again.]])
9ec10b2f
DM
189fi
190
191#### Given the configuration name, set machfile and opsysfile to the
192#### names of the m/*.h and s/*.h files we should use.
193
194### Canonicalize the configuration name.
195
196AC_CANONICAL_HOST
197canonical=$host
0b7543ce 198configuration=${host_alias-${build_alias-$host}}
9ec10b2f 199
91b5aa9a
DL
200dnl This used to use changequote, but, apart from `changequote is evil'
201dnl per the autoconf manual, we can speed up autoconf somewhat by quoting
202dnl the great gob of text. Thus it's not processed for possible expansion.
203dnl Just make sure the brackets remain balanced.
10aa5486
MR
204dnl
205dnl Since Emacs can't find matching pairs of quotes, boundaries are
206dnl indicated by comments.
207dnl quotation begins
91b5aa9a 208[
9ec10b2f
DM
209
210### If you add support for a new configuration, add code to this
211### switch statement to recognize your configuration name and select
212### the appropriate operating system and machine description files.
213
214### You would hope that you could choose an m/*.h file pretty much
215### based on the machine portion of the configuration name, and an s-
216### file based on the operating system portion. However, it turns out
217### that each m/*.h file is pretty manufacturer-specific - for
218### example, apollo.h, hp9000s300.h, mega68k, news.h, and tad68k are
219### all 68000 machines; mips.h, pmax.h, and news-risc are all MIPS
220### machines. So we basically have to have a special case for each
221### configuration name.
222###
223### As far as handling version numbers on operating systems is
224### concerned, make sure things will fail in a fixable way. If
225### /etc/MACHINES doesn't say anything about version numbers, be
226### prepared to handle anything reasonably. If version numbers
227### matter, be sure /etc/MACHINES says something about it.
228###
229### Eric Raymond says we should accept strings like "sysvr4" to mean
230### "System V Release 4"; he writes, "The old convention encouraged
231### confusion between `system' and `release' levels'."
232
233machine='' opsys='' unported=no
234case "${canonical}" in
235
ba45dae0
GM
236 ## FreeBSD ports
237 *-*-freebsd* )
238 opsys=freebsd
239 case "${canonical}" in
240 alpha*-*-freebsd*) machine=alpha ;;
d6d1029d
CY
241 ia64-*-freebsd*) machine=ia64 ;;
242 sparc64-*-freebsd*) machine=sparc ;;
243 powerpc-*-freebsd*) machine=macppc ;;
ba45dae0 244 i[3456]86-*-freebsd*) machine=intel386 ;;
d52c26e9 245 amd64-*-freebsd*|x86_64-*-freebsd*) machine=amdx86-64 ;;
ba45dae0
GM
246 esac
247 ;;
248
472fd4dc
GM
249 ## FreeBSD kernel + glibc based userland
250 *-*-kfreebsd*gnu* )
251 opsys=gnu-kfreebsd
252 case "${canonical}" in
253 alpha*-*-kfreebsd*) machine=alpha ;;
254 ia64-*-kfreebsd*) machine=ia64 ;;
255 sparc64-*-kfreebsd*) machine=sparc ;;
256 powerpc-*-kfreebsd*) machine=macppc ;;
257 i[3456]86-*-kfreebsd*) machine=intel386 ;;
258 amd64-*-kfreebsd*|x86_64-*-kfreebsd*) machine=amdx86-64 ;;
259 esac
260 ;;
261
9ec10b2f
DM
262 ## NetBSD ports
263 *-*-netbsd* )
264 opsys=netbsd
da894f7d 265 if test -f /usr/lib/crti.o; then]
8cfdf2ca
DL
266dnl The close and open brackets here are because this section is quoted --
267dnl see the `changequote' comment above.
268 AC_DEFINE(HAVE_CRTIN, [], [Define to 1 if you have /usr/lib/crti.o.])
da894f7d 269[ fi
fdf83dbb 270
9ec10b2f 271 case "${canonical}" in
98bbf2a1 272 alpha*-*-netbsd*) machine=alpha ;;
5ac83f86 273 i[3456]86-*-netbsd*) machine=intel386 ;;
9ec10b2f
DM
274 m68k-*-netbsd*)
275 # This is somewhat bogus.
276 machine=hp9000s300 ;;
277 mips-*-netbsd*) machine=pmax ;;
69d5a2fa 278 mipsel-*-netbsd*) machine=pmax ;;
1967c6ee 279 mipseb-*-netbsd*) machine=pmax ;;
9ec10b2f 280 ns32k-*-netbsd*) machine=ns32000 ;;
b52425f4 281 powerpc-*-netbsd*) machine=macppc ;;
1ecefa7a 282 sparc*-*-netbsd*) machine=sparc ;;
b336ddd3 283 vax-*-netbsd*) machine=vax ;;
69d5a2fa 284 arm-*-netbsd*) machine=arm ;;
01cd065b 285 x86_64-*-netbsd*) machine=amdx86-64 ;;
55433670 286 hppa-*-netbsd*) machine=hp800 ;;
01cd065b 287 shle-*-netbsd*) machine=sh3el ;;
9ec10b2f
DM
288 esac
289 ;;
290
e3ac1b7f
RS
291 ## OpenBSD ports
292 *-*-openbsd* )
293 opsys=openbsd
294 case "${canonical}" in
98bbf2a1 295 alpha*-*-openbsd*) machine=alpha ;;
9a982d0a
RS
296 arm-*-openbsd*) machine=arm ;;
297 hppa-*-openbsd*) machine=hp9000s300 ;;
298 i386-*-openbsd*) machine=intel386 ;;
299 m68k-*-openbsd*) machine=hp9000s300 ;;
300 m88k-*-openbsd*) machine=aviion ;;
301 mips64-*-openbsd*) machine=mips64 ;;
302 powerpc-*-openbsd*) machine=macppc ;;
303 sh-*-openbsd*) machine=sh3el ;;
304 sparc*-*-openbsd*) machine=sparc ;;
305 vax-*-openbsd*) machine=vax ;;
306 x86_64-*-openbsd*) machine=amdx86-64 ;;
e3ac1b7f
RS
307 esac
308 ;;
309
10a3b1a1
EZ
310 ## LynxOS ports
311 *-*-lynxos* )
312 opsys=lynxos
313 case "${canonical}" in
314 i[3456]86-*-lynxos*) machine=intel386 ;;
315 powerpc-*-lynxos*) machine=powerpc ;;
316 esac
317 ;;
318
3cd69289
DM
319 ## Acorn RISCiX:
320 arm-acorn-riscix1.1* )
321 machine=acorn opsys=riscix1-1
322 ;;
323 arm-acorn-riscix1.2* | arm-acorn-riscix )
aac2257c
RS
324 ## This name is riscix12 instead of riscix1.2
325 ## to avoid a file name conflict on MSDOS.
326 machine=acorn opsys=riscix12
3cd69289
DM
327 ;;
328
2c4f7ce7
RS
329 ## BSDI ports
330 *-*-bsdi* )
331 opsys=bsdi
332 case "${canonical}" in
333 i[345]86-*-bsdi*) machine=intel386 ;;
334 sparc-*-bsdi*) machine=sparc ;;
393032d2 335 powerpc-*-bsdi*) machine=macppc ;;
2c4f7ce7
RS
336 esac
337 case "${canonical}" in
338 *-*-bsd386* | *-*-bsdi1* ) opsys=bsd386 ;;
339 *-*-bsdi2.0* ) opsys=bsdos2 ;;
340 *-*-bsdi2* ) opsys=bsdos2-1 ;;
341 *-*-bsdi3* ) opsys=bsdos3 ;;
1d06fc82 342 *-*-bsdi[45]* ) opsys=bsdos4 ;;
2c4f7ce7
RS
343 esac
344 ;;
345
9ec10b2f
DM
346 ## Alliant machines
347 ## Strictly speaking, we need the version of the alliant operating
348 ## system to choose the right machine file, but currently the
349 ## configuration name doesn't tell us enough to choose the right
350 ## one; we need to give alliants their own operating system name to
351 ## do this right. When someone cares, they can help us.
352 fx80-alliant-* )
353 machine=alliant4 opsys=bsd4-2
354 ;;
355 i860-alliant-* )
356 machine=alliant-2800 opsys=bsd4-3
357 ;;
358
30457b4f 359 ## Alpha (DEC) machines.
98bbf2a1 360 alpha*-dec-osf* )
3cd69289 361 machine=alpha opsys=osf1
f528522b 362 # This is needed to find X11R6.1 libraries for certain tests.
1bc5a004
RS
363 NON_GCC_LINK_TEST_OPTIONS=-Wl,-rpath,/usr/X11R6/lib
364 GCC_LINK_TEST_OPTIONS=-Wl,-rpath,/usr/X11R6/lib
557dcfd7
DL
365 # NON_GNU_CPP is necessary on 5.0 to avoid mangling src/Makefile
366 # due to non-traditional preprocessing with the current compiler
367 # defaults. OSF 4 can also have that compiler version, and there
368 # seems always to have been a usable /usr/bin/cpp.
369 NON_GNU_CPP=/usr/bin/cpp
71c72a72 370 case "${canonical}" in
d5c898bb 371 alpha*-dec-osf[5-9]*)
f8340326 372 opsys=osf5-0 ;;
e57196a0 373 esac
3cd69289
DM
374 ;;
375
98bbf2a1 376 alpha*-*-linux-gnu* )
5ac83f86 377 machine=alpha opsys=gnu-linux
4e90a7d5
RS
378 ;;
379
d506e713
GM
380 arm*-*-linux-gnu* )
381 machine=arm opsys=gnu-linux
382 ;;
383
9ec10b2f
DM
384 ## Altos 3068
385 m68*-altos-sysv* )
386 machine=altos opsys=usg5-2
387 ;;
c7f493fd 388
9ec10b2f
DM
389 ## Amdahl UTS
390 580-amdahl-sysv* )
391 machine=amdahl opsys=usg5-2-2
392 ;;
393
acd04c87
RS
394 ## Apollo, Domain/OS
395 m68*-apollo-* )
396 machine=apollo opsys=bsd4-3
9ec10b2f
DM
397 ;;
398
57653883
RS
399 ## Apple Darwin / Mac OS X
400 *-apple-darwin* )
401 case "${canonical}" in
402 i[3456]86-* ) machine=intel386 ;;
403 powerpc-* ) machine=powermac ;;
404 * ) unported=yes ;;
405 esac
406 opsys=darwin
407 # Define CPP as follows to make autoconf work correctly.
408 CPP="${CC-cc} -E -no-cpp-precomp"
409 # Use fink packages if available.
410 if test -d /sw/include && test -d /sw/lib; then
411 GCC_TEST_OPTIONS="-I/sw/include -L/sw/lib"
412 CPP="${CPP} ${GCC_TEST_OPTIONS}"
413 NON_GCC_TEST_OPTIONS=${GCC_TEST_OPTIONS}
414 fi
415 ;;
416
9ec10b2f
DM
417 ## AT&T 3b2, 3b5, 3b15, 3b20
418 we32k-att-sysv* )
419 machine=att3b opsys=usg5-2-2
420 ;;
421
422 ## AT&T 3b1 - The Mighty Unix PC!
423 m68*-att-sysv* )
424 machine=7300 opsys=usg5-2-2
425 ;;
426
427 ## Bull dpx20
428 rs6000-bull-bosx* )
429 machine=ibmrs6000 opsys=aix3-2
430 ;;
431
432 ## Bull dpx2
433 m68*-bull-sysv3* )
434 machine=dpx2 opsys=usg5-3
435 ;;
436
437 ## Bull sps7
438 m68*-bull-sysv2* )
439 machine=sps7 opsys=usg5-2
440 ;;
441
442 ## CCI 5/32, 6/32 -- see "Tahoe".
443
444 ## Celerity
445 ## I don't know what configuration name to use for this; config.sub
446 ## doesn't seem to know anything about it. Hey, Celerity users, get
447 ## in touch with us!
448 celerity-celerity-bsd* )
449 machine=celerity opsys=bsd4-2
450 ;;
451
452 ## Clipper
453 ## What operating systems does this chip run that Emacs has been
454 ## tested on?
455 clipper-* )
456 machine=clipper
457 ## We'll use the catch-all code at the bottom to guess the
458 ## operating system.
459 ;;
460
b83e4a77
RS
461 ## Compaq Nonstop
462 mips-compaq-nonstopux* )
463 machine=nonstopux opsys=nonstopux
464 ;;
465
9ec10b2f
DM
466 ## Convex
467 *-convex-bsd* | *-convex-convexos* )
468 machine=convex opsys=bsd4-3
908ff139 469 ## Prevents spurious white space in makefiles - d.m.cooke@larc.nasa.gov
9ec10b2f
DM
470 NON_GNU_CPP="cc -E -P"
471 ;;
472
473 ## Cubix QBx/386
5ac83f86 474 i[3456]86-cubix-sysv* )
9ec10b2f
DM
475 machine=intel386 opsys=usg5-3
476 ;;
477
478 ## Cydra 5
479 cydra*-cydrome-sysv* )
480 machine=cydra5 opsys=usg5-3
481 ;;
482
483 ## Data General AViiON Machines
651fc2d2
RS
484 ## DG changed naming conventions with the release of 5.4.4.10, they
485 ## dropped the initial 5.4 but left the intervening R. Because of the
486 ## R this shouldn't conflict with older versions of the OS (which I
f4afda69
KH
487 ## think were named like dgux4.*). In addition, DG new AViiONs series
488 ## uses either Motorola M88k or Intel Pentium CPUs.
9ae70ffe 489 m88k-dg-dguxR4.* | m88k-dg-dgux4* )
651fc2d2
RS
490 machine=aviion opsys=dgux4
491 ;;
9ec10b2f 492 m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* )
aac2257c
RS
493 ## This name is dgux5-4-3 instead of dgux5-4r3
494 ## to avoid a file name conflict on MSDOS.
495 machine=aviion opsys=dgux5-4-3
9ec10b2f
DM
496 ;;
497 m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* )
498 machine=aviion opsys=dgux5-4r2
499 ;;
500 m88k-dg-dgux* )
501 machine=aviion opsys=dgux
502 ;;
503
4e746fa8
KH
504 ## Data General AViiON Intel (x86) Machines
505 ## Exists from 5.4.3 (current i586-dg-dguxR4.11)
506 ## Ehud Karni, 1998-may-30, ehud@unix.simonwiesel.co.il
9ae70ffe 507 i[345]86-dg-dguxR4* )
4e746fa8
KH
508 machine=aviion-intel opsys=dgux4
509 ;;
510
9ec10b2f
DM
511 ## DECstations
512 mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0* | mips-dec-bsd4.2* )
513 machine=pmax opsys=bsd4-2
514 ;;
3bbe016c 515 mips-dec-ultrix4.[12]* | mips-dec-bsd* )
9ec10b2f
DM
516 machine=pmax opsys=bsd4-3
517 ;;
3bbe016c
KH
518 mips-dec-ultrix* )
519 machine=pmax opsys=ultrix4-3
520 ;;
9ec10b2f
DM
521 mips-dec-osf* )
522 machine=pmax opsys=osf1
523 ;;
b95c8e7e
RS
524 mips-dec-mach_bsd4.3* )
525 machine=pmax opsys=mach-bsd4-3
526 ;;
9ec10b2f
DM
527
528 ## Motorola Delta machines
529 m68k-motorola-sysv* | m68000-motorola-sysv* )
530 machine=delta opsys=usg5-3
531 if test -z "`type gnucc | grep 'not found'`"
018427ee
RS
532 then
533 if test -s /etc/167config
534 then CC="gnucc -m68040"
535 else CC="gnucc -m68881"
c7f493fd 536 fi
9ec10b2f
DM
537 else
538 if test -z "`type gcc | grep 'not found'`"
539 then CC=gcc
540 else CC=cc
541 fi
542 fi
543 ;;
544 m88k-motorola-sysv4* )
63c1d3f2
RS
545 # jbotte@bnr.ca says that UNIX_System_V <hostName> 4.0 R40V4.3 m88k mc88110
546 # needs POSIX_SIGNALS and therefore needs usg5-4-2.
547 # I hope there are not other 4.0 versions for this machine
548 # which really need usg5-4 instead.
549 machine=delta88k opsys=usg5-4-2
9ec10b2f
DM
550 ;;
551 m88k-motorola-sysv* | m88k-motorola-m88kbcs* )
552 machine=delta88k opsys=usg5-3
553 ;;
554
555 ## Dual machines
556 m68*-dual-sysv* )
557 machine=dual opsys=usg5-2
558 ;;
559 m68*-dual-uniplus* )
560 machine=dual opsys=unipl5-2
561 ;;
562
563 ## Elxsi 6400
564 elxsi-elxsi-sysv* )
565 machine=elxsi opsys=usg5-2
566 ;;
567
568 ## Encore machines
569 ns16k-encore-bsd* )
570 machine=ns16000 opsys=umax
571 ;;
572
2ce723a5
DL
573 ## The GEC 63 - apparently, this port isn't really finished yet.
574 # I'm sure we finished off the last of the machines, though. -- fx
9ec10b2f
DM
575
576 ## Gould Power Node and NP1
577 pn-gould-bsd4.2* )
578 machine=gould opsys=bsd4-2
579 ;;
580 pn-gould-bsd4.3* )
581 machine=gould opsys=bsd4-3
582 ;;
583 np1-gould-bsd* )
584 machine=gould-np1 opsys=bsd4-3
585 ;;
586
587 ## Harris Night Hawk machines running CX/UX (a 5000 looks just like a 4000
588 ## as far as Emacs is concerned).
589 m88k-harris-cxux* )
590 # Build needs to be different on 7.0 and later releases
591 case "`uname -r`" in
592 [56].[0-9] ) machine=nh4000 opsys=cxux ;;
593 [7].[0-9] ) machine=nh4000 opsys=cxux7 ;;
594 esac
3d68df05 595 NON_GNU_CPP="/lib/cpp"
9ec10b2f
DM
596 ;;
597 ## Harris ecx or gcx running CX/UX (Series 1200, Series 3000)
598 m68k-harris-cxux* )
599 machine=nh3000 opsys=cxux
600 ;;
3d68df05
KH
601 ## Harris power pc NightHawk running Power UNIX (Series 6000)
602 powerpc-harris-powerunix )
603 machine=nh6000 opsys=powerunix
604 NON_GNU_CPP="cc -Xo -E -P"
605 ;;
d347c8e1
GM
606 ## SR2001/SR2201 running HI-UX/MPP
607 hppa1.1-hitachi-hiuxmpp* )
608 machine=sr2k opsys=hiuxmpp
609 ;;
610 hppa1.1-hitachi-hiuxwe2* )
611 machine=sr2k opsys=hiuxwe2
612 ;;
9ec10b2f
DM
613 ## Honeywell XPS100
614 xps*-honeywell-sysv* )
615 machine=xps100 opsys=usg5-2
616 ;;
617
618 ## HP 9000 series 200 or 300
619 m68*-hp-bsd* )
620 machine=hp9000s300 opsys=bsd4-3
621 ;;
42c3a7f7 622 ## HP/UX 7, 8, 9, and 10 are supported on these machines.
9ec10b2f
DM
623 m68*-hp-hpux* )
624 case "`uname -r`" in
625 ## Someone's system reports A.B8.05 for this.
626 ## I wonder what other possibilities there are.
627 *.B8.* ) machine=hp9000s300 opsys=hpux8 ;;
628 *.08.* ) machine=hp9000s300 opsys=hpux8 ;;
629 *.09.* ) machine=hp9000s300 opsys=hpux9 ;;
88a806e9 630 *.1[0-9].* ) machine=hp9000s300 opsys=hpux9shr ;;
9ec10b2f
DM
631 *) machine=hp9000s300 opsys=hpux ;;
632 esac
633 ;;
634
d347c8e1
GM
635 ## HP 9000 series 700 and 800, running HP/UX
636 hppa*-hp-hpux7* )
637 machine=hp800 opsys=hpux
638 ;;
639 hppa*-hp-hpux8* )
640 machine=hp800 opsys=hpux8
641 ;;
642 hppa*-hp-hpux9shr* )
643 machine=hp800 opsys=hpux9shr
644 ;;
645 hppa*-hp-hpux9* )
646 machine=hp800 opsys=hpux9
647 ;;
648 hppa*-hp-hpux10.2* )
649 machine=hp800 opsys=hpux10-20
650 ;;
651 hppa*-hp-hpux10* )
652 machine=hp800 opsys=hpux10
653 ;;
654 hppa*-hp-hpux1[1-9]* )
655 machine=hp800 opsys=hpux11
656 CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS"
657 ;;
658
55433670
CY
659 hppa*-*-linux-gnu* )
660 machine=hp800 opsys=gnu-linux
661 ;;
662
d347c8e1
GM
663 ## HP 9000 series 700 and 800, running HP/UX
664 hppa*-hp-hpux* )
665 ## Cross-compilation? Nah!
666 case "`uname -r`" in
667 ## Someone's system reports A.B8.05 for this.
668 ## I wonder what other possibilities there are.
669 *.B8.* ) machine=hp800 opsys=hpux8 ;;
670 *.08.* ) machine=hp800 opsys=hpux8 ;;
671 *.09.* ) machine=hp800 opsys=hpux9 ;;
672 *) machine=hp800 opsys=hpux10 ;;
673 esac
674 ;;
55433670
CY
675 hppa*-*-nextstep* )
676 machine=hp800 opsys=nextstep
677 ;;
678
9ec10b2f
DM
679 ## Orion machines
680 orion-orion-bsd* )
681 machine=orion opsys=bsd4-2
682 ;;
683 clipper-orion-bsd* )
684 machine=orion105 opsys=bsd4-2
685 ;;
686
687 ## IBM machines
5ac83f86 688 i[3456]86-ibm-aix1.1* )
9ec10b2f
DM
689 machine=ibmps2-aix opsys=usg5-2-2
690 ;;
5ac83f86 691 i[3456]86-ibm-aix1.[23]* | i[3456]86-ibm-aix* )
9ec10b2f
DM
692 machine=ibmps2-aix opsys=usg5-3
693 ;;
694 i370-ibm-aix*)
695 machine=ibm370aix opsys=usg5-3
696 ;;
4b121527 697 s390-*-linux-gnu* )
f4c2acb3
EZ
698 machine=ibms390 opsys=gnu-linux
699 ;;
e9da7ba5
RS
700 s390x-*-linux-gnu* )
701 machine=ibms390x opsys=gnu-linux
702 ;;
046545ec 703 rs6000-ibm-aix3.1* | powerpc-ibm-aix3.1* )
9ec10b2f
DM
704 machine=ibmrs6000 opsys=aix3-1
705 ;;
046545ec 706 rs6000-ibm-aix3.2.5 | powerpc-ibm-aix3.2.5 )
9ec10b2f
DM
707 machine=ibmrs6000 opsys=aix3-2-5
708 ;;
b63df577
RS
709 rs6000-ibm-aix4.1* | powerpc-ibm-aix4.1* )
710 machine=ibmrs6000 opsys=aix4-1
711 ;;
a8958813
RS
712 rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2* )
713 machine=ibmrs6000 opsys=aix4-2
714 ;;
9fd77b51
CY
715 rs6000-ibm-aix4.3* | powerpc-ibm-aix4.3* )
716 machine=ibmrs6000 opsys=aix4-2
717 ;;
54c4fabd 718 rs6000-ibm-aix5* | powerpc-ibm-aix5* )
1ef1ef96
EZ
719 machine=ibmrs6000 opsys=aix4-2
720 ;;
a8958813 721 rs6000-ibm-aix4.0* | powerpc-ibm-aix4.0* )
b63df577
RS
722 machine=ibmrs6000 opsys=aix4
723 ;;
a8958813
RS
724 rs6000-ibm-aix4* | powerpc-ibm-aix4* )
725 machine=ibmrs6000 opsys=aix4-1
726 ;;
046545ec 727 rs6000-ibm-aix* | powerpc-ibm-aix* )
9ec10b2f
DM
728 machine=ibmrs6000 opsys=aix3-2
729 ;;
730 romp-ibm-bsd4.3* )
731 machine=ibmrt opsys=bsd4-3
c7f493fd 732 ;;
9ec10b2f
DM
733 romp-ibm-bsd4.2* )
734 machine=ibmrt opsys=bsd4-2
735 ;;
736 romp-ibm-aos4.3* )
737 machine=ibmrt opsys=bsd4-3
c7f493fd 738 ;;
9ec10b2f
DM
739 romp-ibm-aos4.2* )
740 machine=ibmrt opsys=bsd4-2
741 ;;
742 romp-ibm-aos* )
743 machine=ibmrt opsys=bsd4-3
744 ;;
745 romp-ibm-bsd* )
746 machine=ibmrt opsys=bsd4-3
747 ;;
748 romp-ibm-aix* )
749 machine=ibmrt-aix opsys=usg5-2-2
750 ;;
751
752 ## Integrated Solutions `Optimum V'
753 m68*-isi-bsd4.2* )
754 machine=isi-ov opsys=bsd4-2
755 ;;
756 m68*-isi-bsd4.3* )
757 machine=isi-ov opsys=bsd4-3
758 ;;
759
760 ## Intel 386 machines where we do care about the manufacturer
5ac83f86 761 i[3456]86-intsys-sysv* )
9ec10b2f
DM
762 machine=is386 opsys=usg5-2-2
763 ;;
764
765 ## Prime EXL
5ac83f86 766 i[3456]86-prime-sysv* )
9ec10b2f
DM
767 machine=i386 opsys=usg5-3
768 ;;
769
3cd69289 770 ## Sequent Symmetry running Dynix
5ac83f86 771 i[3456]86-sequent-bsd* )
9ec10b2f
DM
772 machine=symmetry opsys=bsd4-3
773 ;;
774
86d6f6ee
RS
775 ## Sequent Symmetry running ptx 4, which is a modified SVR4.
776 i[3456]86-sequent-ptx4* | i[3456]86-sequent-sysv4* )
777 machine=sequent-ptx opsys=ptx4
0dcdc912 778 NON_GNU_CPP=/lib/cpp
86d6f6ee
RS
779 ;;
780
3cd69289
DM
781 ## Sequent Symmetry running DYNIX/ptx
782 ## Use the old cpp rather than the newer ANSI one.
5ac83f86 783 i[3456]86-sequent-ptx* )
3cd69289
DM
784 machine=sequent-ptx opsys=ptx
785 NON_GNU_CPP="/lib/cpp"
786 ;;
787
cd837fee
KH
788 ## ncr machine running svr4.3.
789 i[3456]86-ncr-sysv4.3 )
790 machine=ncr386 opsys=usg5-4-3
791 ;;
792
9ec10b2f
DM
793 ## Unspecified sysv on an ncr machine defaults to svr4.2.
794 ## (Plain usg5-4 doesn't turn on POSIX signals, which we need.)
5ac83f86 795 i[3456]86-ncr-sysv* )
b0f36760 796 machine=ncr386 opsys=usg5-4-2
9ec10b2f
DM
797 ;;
798
cbce363f
RS
799 ## Intel Paragon OSF/1
800 i860-intel-osf1* )
801 machine=paragon opsys=osf1 NON_GNU_CPP=/usr/mach/lib/cpp
802 ;;
803
9ec10b2f
DM
804 ## Intel 860
805 i860-*-sysv4* )
806 machine=i860 opsys=usg5-4
807 NON_GNU_CC="/bin/cc" # Ie, not the one in /usr/ucb/cc.
808 NON_GNU_CPP="/usr/ccs/lib/cpp" # cc -E tokenizes macro expansion.
809 ;;
810
3ad6e32b
GM
811 ## Macintosh PowerPC
812 powerpc*-*-linux-gnu* )
813 machine=macppc opsys=gnu-linux
814 ;;
815
9ec10b2f
DM
816 ## Masscomp machines
817 m68*-masscomp-rtu* )
818 machine=masscomp opsys=rtu
819 ;;
820
821 ## Megatest machines
822 m68*-megatest-bsd* )
823 machine=mega68 opsys=bsd4-2
824 ;;
825
826 ## Workstations sold by MIPS
827 ## This is not necessarily all workstations using the MIPS processor -
828 ## Irises are produced by SGI, and DECstations by DEC.
829
830 ## etc/MACHINES lists mips.h and mips4.h as possible machine files,
831 ## and usg5-2-2 and bsd4-3 as possible OS files. The only guidance
832 ## it gives for choosing between the alternatives seems to be "Use
833 ## -machine=mips4 for RISCOS version 4; use -opsystem=bsd4-3 with
834 ## the BSD world." I'll assume that these are instructions for
835 ## handling two odd situations, and that every other situation
836 ## should use mips.h and usg5-2-2, they being listed first.
837 mips-mips-usg* )
838 machine=mips4
839 ## Fall through to the general code at the bottom to decide on the OS.
840 ;;
841 mips-mips-riscos4* )
842 machine=mips4 opsys=bsd4-3
843 NON_GNU_CC="cc -systype bsd43"
844 NON_GNU_CPP="cc -systype bsd43 -E"
845 ;;
b95c8e7e
RS
846 mips-mips-riscos5* )
847 machine=mips4 opsys=riscos5
848 NON_GNU_CC="cc -systype bsd43"
849 NON_GNU_CPP="cc -systype bsd43 -E"
850 ;;
9ec10b2f
DM
851 mips-mips-bsd* )
852 machine=mips opsys=bsd4-3
853 ;;
854 mips-mips-* )
855 machine=mips opsys=usg5-2-2
856 ;;
857
858 ## NeXT
5ab52d42
RS
859 m68*-next-* | m68k-*-nextstep* )
860 machine=m68k opsys=nextstep
9ec10b2f
DM
861 ;;
862
863 ## The complete machine from National Semiconductor
864 ns32k-ns-genix* )
865 machine=ns32000 opsys=usg5-2
866 ;;
867
868 ## NCR machines
869 m68*-ncr-sysv2* | m68*-ncr-sysvr2* )
870 machine=tower32 opsys=usg5-2-2
871 ;;
872 m68*-ncr-sysv3* | m68*-ncr-sysvr3* )
873 machine=tower32v3 opsys=usg5-3
874 ;;
875
b4ea3111
KH
876 ## NEC EWS4800
877 mips-nec-sysv4*)
878 machine=ews4800 opsys=ux4800
879 ;;
880
9ec10b2f
DM
881 ## Nixdorf Targon 31
882 m68*-nixdorf-sysv* )
883 machine=targon31 opsys=usg5-2-2
884 ;;
885
886 ## Nu (TI or LMI)
887 m68*-nu-sysv* )
888 machine=nu opsys=usg5-2
889 ;;
890
891 ## Plexus
892 m68*-plexus-sysv* )
893 machine=plexus opsys=usg5-2
894 ;;
895
896 ## Pyramid machines
897 ## I don't really have any idea what sort of processor the Pyramid has,
898 ## so I'm assuming it is its own architecture.
899 pyramid-pyramid-bsd* )
900 machine=pyramid opsys=bsd4-2
901 ;;
902
903 ## Sequent Balance
904 ns32k-sequent-bsd4.2* )
905 machine=sequent opsys=bsd4-2
906 ;;
907 ns32k-sequent-bsd4.3* )
908 machine=sequent opsys=bsd4-3
909 ;;
910
911 ## Siemens Nixdorf
7cba3845 912 mips-siemens-sysv* | mips-sni-sysv*)
9ec10b2f
DM
913 machine=mips-siemens opsys=usg5-4
914 NON_GNU_CC=/usr/ccs/bin/cc
915 NON_GNU_CPP=/usr/ccs/lib/cpp
916 ;;
917
918 ## Silicon Graphics machines
919 ## Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
920 m68*-sgi-iris3.5* )
921 machine=irist opsys=iris3-5
922 ;;
923 m68*-sgi-iris3.6* | m68*-sgi-iris*)
924 machine=irist opsys=iris3-6
925 ;;
926 ## Iris 4D
927 mips-sgi-irix3* )
928 machine=iris4d opsys=irix3-3
929 ;;
4ab83697
RS
930 mips-sgi-irix4* )
931 machine=iris4d opsys=irix4-0
932 ;;
a187fb80
KH
933 mips-sgi-irix6.5 )
934 machine=iris4d opsys=irix6-5
91193697
DL
935 # Without defining _LANGUAGE_C, things get masked out in the headers
936 # so that, for instance, grepping for `free' in stdlib.h fails and
937 # AC_HEADER_STD_C fails. (MIPSPro 7.2.1.2m compilers, Irix 6.5.3m).
938 NON_GNU_CPP="/lib/cpp -D_LANGUAGE_C"
63c59d1e 939 NON_GCC_TEST_OPTIONS="-D_LANGUAGE_C"
a187fb80 940 ;;
546fa279 941 mips-sgi-irix6* )
309daad2 942 machine=iris4d opsys=irix6-0
d9b5c990 943 # It's not clear whether -D_LANGUAGE_C is necessary as it is for 6.5,
91193697
DL
944 # but presumably it does no harm.
945 NON_GNU_CPP="/lib/cpp -D_LANGUAGE_C"
63c59d1e 946 # -32 probably isn't necessary in later v.6s -- anyone know which?
309daad2 947 NON_GCC_TEST_OPTIONS=-32
546fa279 948 ;;
4ab83697 949 mips-sgi-irix5.[01]* )
9ec10b2f
DM
950 machine=iris4d opsys=irix5-0
951 ;;
4ab83697
RS
952 mips-sgi-irix5* | mips-sgi-irix* )
953 machine=iris4d opsys=irix5-2
9ec10b2f
DM
954 ;;
955
956 ## SONY machines
957 m68*-sony-bsd4.2* )
958 machine=news opsys=bsd4-2
959 ;;
960 m68*-sony-bsd4.3* )
961 machine=news opsys=bsd4-3
962 ;;
3d102c59 963 m68*-sony-newsos3* | m68*-sony-news3*)
9ec10b2f
DM
964 machine=news opsys=bsd4-3
965 ;;
3d102c59 966 mips-sony-bsd* | mips-sony-newsos4* | mips-sony-news4*)
9ec10b2f
DM
967 machine=news-risc opsys=bsd4-3
968 ;;
423ef6e8 969 mips-sony-newsos6* )
b48e4aeb 970 machine=news-r6 opsys=newsos6
423ef6e8 971 ;;
3d102c59 972 mips-sony-news* )
9ec10b2f
DM
973 machine=news-risc opsys=newsos5
974 ;;
975
976 ## Stride
977 m68*-stride-sysv* )
978 machine=stride opsys=usg5-2
979 ;;
980
981 ## Suns
b5b193a7 982 sparc-*-linux-gnu* | sparc64-*-linux-gnu* )
5ac83f86 983 machine=sparc opsys=gnu-linux
28d9bc0e
KH
984 ;;
985
f4027958 986 *-auspex-sunos* | *-sun-sunos* | *-sun-bsd* | *-sun-solaris* \
5ac83f86 987 | i[3456]86-*-solaris2* | i[3456]86-*-sunos5* | powerpc*-*-solaris2* \
c42b1767 988 | rs6000-*-solaris2*)
9ec10b2f
DM
989 case "${canonical}" in
990 m68*-sunos1* ) machine=sun1 ;;
991 m68*-sunos2* ) machine=sun2 ;;
992 m68* ) machine=sun3 ;;
5ac83f86
RS
993 i[3456]86-sun-sunos[34]* ) machine=sun386 ;;
994 i[3456]86-*-* ) machine=intel386 ;;
a15fc3c3 995 amd64-*-*|x86_64-*-*) machine=amdx86-64 ;;
42326ef0 996 powerpcle* ) machine=powerpcle ;;
f7894e88 997 powerpc* | rs6000* ) machine=ibmrs6000 ;;
9ec10b2f
DM
998 sparc* ) machine=sparc ;;
999 * ) unported=yes ;;
1000 esac
1001 case "${canonical}" in
1002 ## The Sun386 didn't get past 4.0.
5ac83f86 1003 i[3456]86-*-sunos4 ) opsys=sunos4-0 ;;
9ec10b2f 1004 *-sunos4.0* ) opsys=sunos4-0 ;;
0ff0179d 1005 *-sunos4.1.[3-9]*noshare )
aac2257c
RS
1006 ## This name is sunos413 instead of sunos4-1-3
1007 ## to avoid a file name conflict on MSDOS.
1008 opsys=sunos413
3d68df05
KH
1009 NON_GNU_CPP=/usr/lib/cpp
1010 NON_GCC_TEST_OPTIONS=-Bstatic
1011 GCC_TEST_OPTIONS=-static
1012 ;;
3e23af40
RS
1013 *-sunos4.1.[3-9]* | *-sunos4shr*)
1014 opsys=sunos4shr
1015 NON_GNU_CPP=/usr/lib/cpp
1016 ;;
3d68df05
KH
1017 *-sunos4* | *-sunos )
1018 opsys=sunos4-1
9ec10b2f
DM
1019 NON_GCC_TEST_OPTIONS=-Bstatic
1020 GCC_TEST_OPTIONS=-static
1021 ;;
1022 *-sunos5.3* | *-solaris2.3* )
1023 opsys=sol2-3
1024 NON_GNU_CPP=/usr/ccs/lib/cpp
1025 ;;
1026 *-sunos5.4* | *-solaris2.4* )
1027 opsys=sol2-4
1028 NON_GNU_CPP=/usr/ccs/lib/cpp
30457b4f 1029 RANLIB="ar -ts"
9ec10b2f 1030 ;;
2e567bad
KH
1031 *-sunos5.5* | *-solaris2.5* )
1032 opsys=sol2-5
1033 NON_GNU_CPP=/usr/ccs/lib/cpp
30457b4f 1034 RANLIB="ar -ts"
2e567bad 1035 ;;
a28947f0
RS
1036 *-sunos5.6* | *-solaris2.6* )
1037 opsys=sol2-6
1038 NON_GNU_CPP=/usr/ccs/lib/cpp
1039 RANLIB="ar -ts"
1040 ;;
9ec10b2f 1041 *-sunos5* | *-solaris* )
f79b6dcc 1042 opsys=sol2-6
42bf63da
GM
1043 emacs_check_sunpro_c=yes
1044 NON_GNU_CPP=/usr/ccs/lib/cpp
9ec10b2f
DM
1045 ;;
1046 * ) opsys=bsd4-2 ;;
1047 esac
6e502e37
RS
1048 ## Watch out for a compiler that we know will not work.
1049 case "${canonical}" in
1050 *-solaris* | *-sunos5* )
1051 if [ "x$CC" = x/usr/ucb/cc ]; then
1052 ## /usr/ucb/cc doesn't work;
1053 ## we should find some other compiler that does work.
1054 unset CC
1055 fi
1056 ;;
1057 *) ;;
1058 esac
9ec10b2f 1059 ;;
5ab52d42 1060 sparc-*-nextstep* )
19e45036 1061 machine=sparc opsys=nextstep
5ab52d42 1062 ;;
9ec10b2f
DM
1063
1064 ## Tadpole 68k
1065 m68*-tadpole-sysv* )
1066 machine=tad68k opsys=usg5-3
1067 ;;
1068
1069 ## Tahoe machines
1070 tahoe-tahoe-bsd4.2* )
1071 machine=tahoe opsys=bsd4-2
1072 ;;
1073 tahoe-tahoe-bsd4.3* )
1074 machine=tahoe opsys=bsd4-3
1075 ;;
1076
1077 ## Tandem Integrity S2
1078 mips-tandem-sysv* )
1079 machine=tandem-s2 opsys=usg5-3
1080 ;;
1081
1082 ## Tektronix XD88
1083 m88k-tektronix-sysv3* )
1084 machine=tekxd88 opsys=usg5-3
1085 ;;
1086
1087 ## Tektronix 16000 box (6130?)
1088 ns16k-tektronix-bsd* )
1089 machine=ns16000 opsys=bsd4-2
1090 ;;
1091 ## Tektronix 4300
1092 ## src/m/tek4300.h hints that this is a m68k machine.
1093 m68*-tektronix-bsd* )
1094 machine=tek4300 opsys=bsd4-3
1095 ;;
1096
1097 ## Titan P2 or P3
1098 ## We seem to have lost the machine-description file titan.h!
1099 titan-titan-sysv* )
1100 machine=titan opsys=usg5-3
1101 ;;
c7f493fd 1102
9ec10b2f
DM
1103 ## Ustation E30 (SS5E)
1104 m68*-unisys-uniplus* )
1105 machine=ustation opsystem=unipl5-2
1106 ;;
1107
1108 ## Vaxen.
1109 vax-dec-* )
1110 machine=vax
1111 case "${canonical}" in
1112 *-bsd4.1* ) opsys=bsd4-1 ;;
1113 *-bsd4.2* | *-ultrix[0-3].* | *-ultrix4.0* ) opsys=bsd4-2 ;;
1114 *-bsd4.3* | *-ultrix* ) opsys=bsd4-3 ;;
9ec10b2f
DM
1115 *-sysv[01]* | *-sysvr[01]* ) opsys=usg5-0 ;;
1116 *-sysv2* | *-sysvr2* ) opsys=usg5-2 ;;
1117 *-vms* ) opsys=vms ;;
1118 * ) unported=yes
1119 esac
1120 ;;
1121
1122 ## Whitechapel MG1
1123 ns16k-whitechapel-* )
1124 machine=mg1
1125 ## We don't know what sort of OS runs on these; we'll let the
1126 ## operating system guessing code below try.
1127 ;;
1128
1129 ## Wicat
1130 m68*-wicat-sysv* )
1131 machine=wicat opsys=usg5-2
1132 ;;
1133
2d23c8cc
GM
1134 ## IA-64
1135 ia64*-*-linux* )
1136 machine=ia64 opsys=gnu-linux
1137 ;;
1138
9ec10b2f 1139 ## Intel 386 machines where we don't care about the manufacturer
5ac83f86 1140 i[3456]86-*-* )
9ec10b2f
DM
1141 machine=intel386
1142 case "${canonical}" in
c60ee5e7 1143 *-cygwin ) opsys=cygwin ;;
eae54018 1144 *-darwin* ) opsys=darwin
23fd4483
ST
1145 CPP="${CC-cc} -E -no-cpp-precomp"
1146 ;;
9ec10b2f
DM
1147 *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;;
1148 *-isc2.2* ) opsys=isc2-2 ;;
1149 *-isc4.0* ) opsys=isc4-0 ;;
135c9ca6
RS
1150 *-isc4.* ) opsys=isc4-1
1151 GCC_TEST_OPTIONS=-posix
1152 NON_GCC_TEST_OPTIONS=-Xp
1153 ;;
9ec10b2f
DM
1154 *-isc* ) opsys=isc3-0 ;;
1155 *-esix5* ) opsys=esix5r4; NON_GNU_CPP=/usr/lib/cpp ;;
1156 *-esix* ) opsys=esix ;;
1157 *-xenix* ) opsys=xenix ;;
5ac83f86 1158 *-linux-gnu* ) opsys=gnu-linux ;;
9ec10b2f 1159 *-sco3.2v4* ) opsys=sco4 ; NON_GNU_CPP=/lib/cpp ;;
177c0ea7 1160 *-sco3.2v5* ) opsys=sco5
5ac83f86
RS
1161 NON_GNU_CPP=/lib/cpp
1162 # Prevent -belf from being passed to $CPP.
1163 # /lib/cpp does not accept it.
1e60bcf8 1164 OVERRIDE_CPPFLAGS=" "
5ac83f86 1165 ;;
0e6d70d5 1166 *-sysv4.2uw* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
167899c4
RS
1167 *-sysv5uw* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
1168 *-sysv5OpenUNIX* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
9ec10b2f 1169 *-386bsd* ) opsys=386bsd ;;
5ab52d42 1170 *-nextstep* ) opsys=nextstep ;;
9ec10b2f
DM
1171 ## Otherwise, we'll fall through to the generic opsys code at the bottom.
1172 esac
1173 ;;
1174
287f502c 1175 ## m68k Linux-based GNU system
5ac83f86
RS
1176 m68k-*-linux-gnu* )
1177 machine=m68k opsys=gnu-linux
e1fd57e3
RS
1178 ;;
1179
287f502c 1180 ## Mips Linux-based GNU system
71cc40d5 1181 mips-*-linux-gnu* | mipsel-*-linux-gnu* )
287f502c
RS
1182 machine=mips opsys=gnu-linux
1183 ;;
1184
eded5b68
RS
1185 ## UXP/DS
1186 sparc-fujitsu-sysv4* )
1187 machine=sparc opsys=uxpds
1188 NON_GNU_CPP=/usr/ccs/lib/cpp
1189 RANLIB="ar -ts"
1190 ;;
1191
5dbb45f2
KH
1192 ## UXP/V
1193 f301-fujitsu-uxpv4.1)
1194 machine=f301 opsys=uxpv
1195 ;;
1196
3fa4ac47
AS
1197 ## AMD x86-64 Linux-based GNU system
1198 x86_64-*-linux-gnu* )
177c0ea7 1199 machine=amdx86-64 opsys=gnu-linux
3fa4ac47
AS
1200 ;;
1201
94218e27
DN
1202 ## Tensilica Xtensa Linux-based GNU system
1203 xtensa-*-linux-gnu* )
1204 machine=xtensa opsys=gnu-linux
1205 ;;
1206
9ec10b2f
DM
1207 * )
1208 unported=yes
1209 ;;
1210esac
1211
1212### If the code above didn't choose an operating system, just choose
1213### an operating system based on the configuration name. You really
1214### only want to use this when you have no idea what the right
1215### operating system is; if you know what operating systems a machine
1216### runs, it's cleaner to make it explicit in the case statement
1217### above.
1218if test x"${opsys}" = x; then
1219 case "${canonical}" in
1220 *-gnu* ) opsys=gnu ;;
1221 *-bsd4.[01] ) opsys=bsd4-1 ;;
1222 *-bsd4.2 ) opsys=bsd4-2 ;;
1223 *-bsd4.3 ) opsys=bsd4-3 ;;
1224 *-sysv0 | *-sysvr0 ) opsys=usg5-0 ;;
1225 *-sysv2 | *-sysvr2 ) opsys=usg5-2 ;;
1226 *-sysv2.2 | *-sysvr2.2 ) opsys=usg5-2-2 ;;
5ab52d42 1227 *-sysv3* | *-sysvr3* ) opsys=usg5-3 ;;
66a96cff 1228 *-sysv4.2uw* ) opsys=unixware ;;
167899c4
RS
1229 *-sysv5uw* ) opsys=unixware ;;
1230 *-sysv5OpenUNIX* ) opsys=unixware ;;
5ab52d42 1231 *-sysv4.1* | *-sysvr4.1* )
9ec10b2f
DM
1232 NON_GNU_CPP=/usr/lib/cpp
1233 opsys=usg5-4 ;;
5ab52d42 1234 *-sysv4.[2-9]* | *-sysvr4.[2-9]* )
b63df577 1235 if [ x$NON_GNU_CPP = x ]; then
16831d8c
RS
1236 if [ -f /usr/ccs/lib/cpp ]; then
1237 NON_GNU_CPP=/usr/ccs/lib/cpp
1238 else
1239 NON_GNU_CPP=/lib/cpp
1240 fi
b63df577
RS
1241 fi
1242 opsys=usg5-4-2 ;;
5ab52d42 1243 *-sysv4* | *-sysvr4* ) opsys=usg5-4 ;;
9ec10b2f
DM
1244 * )
1245 unported=yes
1246 ;;
1247 esac
1248fi
1249
91b5aa9a 1250]
10aa5486 1251dnl quotation ends
9ec10b2f
DM
1252
1253if test $unported = yes; then
91b5aa9a
DL
1254 AC_MSG_ERROR([Emacs hasn't been ported to `${canonical}' systems.
1255Check `etc/MACHINES' for recognized configuration names.])
9ec10b2f
DM
1256fi
1257
1258machfile="m/${machine}.h"
1259opsysfile="s/${opsys}.h"
1260
1261
1262#### Choose a compiler.
1263test -n "$CC" && cc_specified=yes
1264
5ab52d42
RS
1265# Save the value of CFLAGS that the user specified.
1266SPECIFIED_CFLAGS="$CFLAGS"
1267
9ec10b2f
DM
1268case ${with_gcc} in
1269 "yes" ) CC="gcc" GCC=yes ;;
6e0dc84a 1270 "no" ) : ${CC=cc} ;;
e9b2a022 1271 * )
9ec10b2f 1272esac
e9b2a022 1273AC_PROG_CC
9ec10b2f
DM
1274
1275# On Suns, sometimes $CPP names a directory.
1276if test -n "$CPP" && test -d "$CPP"; then
1277 CPP=
1278fi
1279
42bf63da
GM
1280## If not using gcc, and on Solaris, and no CPP specified, see if
1281## using a Sun compiler, which needs -Xs to prevent whitespace.
1282if test x"$GCC" != xyes && test x"$emacs_check_sunpro_c" = xyes && \
1283 test x"$CPP" = x; then
1284 AC_MSG_CHECKING([whether we are using a Sun C compiler])
1285 AC_CACHE_VAL(emacs_cv_sunpro_c,
1286 [AC_TRY_LINK([],
1287[#ifndef __SUNPRO_C
1288fail;
1289#endif
1290], emacs_cv_sunpro_c=yes, emacs_cv_sunpro_c=no)])
1291 AC_MSG_RESULT($emacs_cv_sunpro_c)
1292
1293 if test x"$emacs_cv_sunpro_c" = xyes; then
1294 NON_GNU_CPP="$CC -E -Xs"
1295 fi
1296fi
1297
9ec10b2f
DM
1298#### Some systems specify a CPP to use unless we are using GCC.
1299#### Now that we know whether we are using GCC, we can decide whether
1300#### to use that one.
1301if test "x$NON_GNU_CPP" != x && test x$GCC != xyes && test "x$CPP" = x
1302then
1303 CPP="$NON_GNU_CPP"
1304fi
1305
1306#### Some systems specify a CC to use unless we are using GCC.
1307#### Now that we know whether we are using GCC, we can decide whether
1308#### to use that one.
1309if test "x$NON_GNU_CC" != x && test x$GCC != xyes &&
1310 test x$cc_specified != xyes
1311then
1312 CC="$NON_GNU_CC"
1313fi
1314
1315if test x$GCC = xyes && test "x$GCC_TEST_OPTIONS" != x
1316then
1317 CC="$CC $GCC_TEST_OPTIONS"
c7f493fd 1318fi
9ec10b2f
DM
1319
1320if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x
1321then
1322 CC="$CC $NON_GCC_TEST_OPTIONS"
c7f493fd 1323fi
9ec10b2f 1324
f405f8ec
AS
1325dnl checks for Unix variants
1326AC_AIX
1327AC_GNU_SOURCE
1328
01abe918
CY
1329### Use -Wno-pointer-sign if the compiler supports it
1330AC_MSG_CHECKING([whether gcc understands -Wno-pointer-sign])
1331SAVE_CFLAGS="$CFLAGS"
1332CFLAGS="$CFLAGS -Wno-pointer-sign"
1333AC_TRY_COMPILE([], [], has_option=yes, has_option=no,)
1334if test $has_option = yes; then
1335 C_WARNINGS_SWITCH="-Wno-pointer-sign $C_WARNINGS_SWITCH"
1336fi
1337AC_MSG_RESULT($has_option)
1338CFLAGS="$SAVE_CFLAGS"
1339unset has_option
1340unset SAVE_CFLAGS
1341
fb33ec52 1342#### Some other nice autoconf tests.
9ec10b2f
DM
1343
1344dnl checks for programs
6e0dc84a 1345AC_PROG_LN_S
9ec10b2f
DM
1346AC_PROG_CPP
1347AC_PROG_INSTALL
3f5b097c
DL
1348if test "x$RANLIB" = x; then
1349 AC_PROG_RANLIB
1350fi
d57c2211
DK
1351AC_PATH_PROG(INSTALL_INFO, install-info)
1352AC_PATH_PROG(INSTALL_INFO, install-info,, /usr/sbin)
1353AC_PATH_PROG(INSTALL_INFO, install-info,:, /sbin)
19b6b5d3
AS
1354dnl Don't use GZIP, which is used by gzip for additional parameters.
1355AC_PATH_PROG(GZIP_PROG, gzip)
9ec10b2f 1356
d25b54b3 1357
9538e9ca 1358## Need makeinfo >= 4.6 (?) to build the manuals.
d25b54b3
GM
1359AC_PATH_PROG(MAKEINFO, makeinfo, no)
1360dnl By this stage, configure has already checked for egrep and set EGREP,
1361dnl or exited with an error if no egrep was found.
1362if test "$MAKEINFO" != "no" && \
d4840f44 1363 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
d25b54b3
GM
1364 MAKEINFO=no
1365fi
1366
1367if test "$MAKEINFO" = "no"; then
9538e9ca 1368 AC_MSG_ERROR( [makeinfo >= 4.6 is required] )
d25b54b3
GM
1369fi
1370
1371
6d621bab
RS
1372dnl Add our options to ac_link now, after it is set up.
1373
1374if test x$GCC = xyes && test "x$GCC_LINK_TEST_OPTIONS" != x
1375then
1376 ac_link="$ac_link $GCC_LINK_TEST_OPTIONS"
1377fi
1378
1379if test x$GCC = x && test "x$NON_GCC_LINK_TEST_OPTIONS" != x
1380then
1381 ac_link="$ac_link $NON_GCC_LINK_TEST_OPTIONS"
1382fi
1383
1d6cc9a8
RS
1384dnl We need -znocombreloc if we're using a relatively recent GNU ld.
1385dnl If we can link with the flag, it shouldn't do any harm anyhow.
1386dnl (Don't use `-z nocombreloc' as -z takes no arg on Irix.)
06aacc62
RS
1387dnl Treat GCC specially since it just gives a non-fatal `unrecognized option'
1388dnl if not built to support GNU ld.
1389
1d6cc9a8 1390late_LDFLAGS=$LDFLAGS
b917689b 1391if test "$GCC" = yes; then
06aacc62
RS
1392 LDFLAGS="$LDFLAGS -Wl,-znocombreloc"
1393else
1394 LDFLAGS="$LDFLAGS -znocombreloc"
1395fi
1d6cc9a8 1396
e6a304f0 1397AC_MSG_CHECKING([for -znocombreloc])
1d6cc9a8
RS
1398AC_LINK_IFELSE([main(){return 0;}],
1399 [AC_MSG_RESULT(yes)],
1400 LDFLAGS=$late_LDFLAGS
1401 [AC_MSG_RESULT(no)])
1402
4428e268
DL
1403#### Extract some information from the operating system and machine files.
1404
1405AC_CHECKING([the machine- and system-dependent files to find out
1406 - which libraries the lib-src programs will want, and
1407 - whether the GNU malloc routines are usable])
1408
1409### First figure out CFLAGS (which we use for running the compiler here)
1410### and REAL_CFLAGS (which we use for real compilation).
1411### The two are the same except on a few systems, where they are made
1412### different to work around various lossages. For example,
1413### GCC 2.5 on GNU/Linux needs them to be different because it treats -g
1414### as implying static linking.
1415
1416### If the CFLAGS env var is specified, we use that value
1417### instead of the default.
1418
1419### It's not important that this name contain the PID; you can't run
1420### two configures in the same directory and have anything work
1421### anyway.
1422tempcname="conftest.c"
1423
1424echo '
1425#include "'${srcdir}'/src/'${opsysfile}'"
1426#include "'${srcdir}'/src/'${machfile}'"
1427#ifndef LIBS_MACHINE
1428#define LIBS_MACHINE
1429#endif
1430#ifndef LIBS_SYSTEM
1431#define LIBS_SYSTEM
1432#endif
1433#ifndef C_SWITCH_SYSTEM
1434#define C_SWITCH_SYSTEM
1435#endif
1436#ifndef C_SWITCH_MACHINE
1437#define C_SWITCH_MACHINE
1438#endif
1439configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
1440configure___ c_switch_system=C_SWITCH_SYSTEM
1441configure___ c_switch_machine=C_SWITCH_MACHINE
1442
1443#ifndef LIB_X11_LIB
1444#define LIB_X11_LIB -lX11
1445#endif
1446
1447#ifndef LIBX11_MACHINE
1448#define LIBX11_MACHINE
1449#endif
1450
1451#ifndef LIBX11_SYSTEM
1452#define LIBX11_SYSTEM
1453#endif
1454configure___ LIBX=LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM
1455
1456#ifdef UNEXEC
1457configure___ unexec=UNEXEC
1458#else
1459configure___ unexec=unexec.o
1460#endif
1461
1462#ifdef SYSTEM_MALLOC
1463configure___ system_malloc=yes
1464#else
1465configure___ system_malloc=no
1466#endif
1467
e32fac2a
GM
1468#ifdef USE_MMAP_FOR_BUFFERS
1469configure___ use_mmap_for_buffers=yes
b1b4ce06 1470#else
e32fac2a 1471configure___ use_mmap_for_buffers=no
b1b4ce06
GM
1472#endif
1473
4428e268
DL
1474#ifndef C_DEBUG_SWITCH
1475#define C_DEBUG_SWITCH -g
1476#endif
1477
1478#ifndef C_OPTIMIZE_SWITCH
1479#ifdef __GNUC__
1480#define C_OPTIMIZE_SWITCH -O2
1481#else
1482#define C_OPTIMIZE_SWITCH -O
1483#endif
1484#endif
1485
01abe918
CY
1486#ifndef C_WARNINGS_SWITCH
1487#define C_WARNINGS_SWITCH ${C_WARNINGS_SWITCH}
1488#endif
1489
4428e268
DL
1490#ifndef LD_SWITCH_MACHINE
1491#define LD_SWITCH_MACHINE
1492#endif
1493
1494#ifndef LD_SWITCH_SYSTEM
1495#define LD_SWITCH_SYSTEM
1496#endif
1497
1498#ifndef LD_SWITCH_X_SITE_AUX
1499#define LD_SWITCH_X_SITE_AUX
177c0ea7 1500#endif
4428e268
DL
1501
1502configure___ ld_switch_system=LD_SWITCH_SYSTEM
1503configure___ ld_switch_machine=LD_SWITCH_MACHINE
1504
1505#ifdef THIS_IS_CONFIGURE
1506
1507/* Get the CFLAGS for tests in configure. */
1508#ifdef __GNUC__
1509configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}'
1510#else
1511configure___ CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
1512#endif
1513
1514#else /* not THIS_IS_CONFIGURE */
1515
1516/* Get the CFLAGS for real compilation. */
1517#ifdef __GNUC__
01abe918 1518configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH C_WARNINGS_SWITCH '${SPECIFIED_CFLAGS}'
4428e268
DL
1519#else
1520configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
1521#endif
1522
1523#endif /* not THIS_IS_CONFIGURE */
1524' > ${tempcname}
1525
1526# The value of CPP is a quoted variable reference, so we need to do this
1527# to get its actual value...
1528CPP=`eval "echo $CPP"`
91b5aa9a 1529[eval `${CPP} -Isrc ${tempcname} \
4428e268
DL
1530 | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
1531if test "x$SPECIFIED_CFLAGS" = x; then
1532 eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \
1533 | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
1534else
1535 REAL_CFLAGS="$CFLAGS"
91b5aa9a 1536fi]
4428e268
DL
1537rm ${tempcname}
1538
1539ac_link="$ac_link $ld_switch_machine $ld_switch_system"
1540
1541### Make sure subsequent tests use flags consistent with the build flags.
1542
1543if test x"${OVERRIDE_CPPFLAGS}" != x; then
1544 CPPFLAGS="${OVERRIDE_CPPFLAGS}"
1545else
1546 CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
1547fi
1548
17b3d9f6
DL
1549dnl For AC_FUNC_GETLOADAVG, at least:
1550AC_CONFIG_LIBOBJ_DIR(src)
1551
48989ead
DL
1552dnl Do this early because it can frob feature test macros for Unix-98 &c.
1553AC_SYS_LARGEFILE
1554
2eec8691 1555
0bc02f03
CY
1556### The standard library on x86-64 GNU/Linux distributions can
1557### be located in either /usr/lib64 or /usr/lib.
1558case "${canonical}" in
1559 x86_64-*-linux-gnu* )
1560 if test -d /usr/lib64; then
1561 AC_DEFINE(HAVE_X86_64_LIB64_DIR, 1,
1562 [Define to 1 if the file /usr/lib64 exists.])
1563fi
1564esac
1565
2eec8691
JD
1566dnl This function defintion taken from Gnome 2.0
1567dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
1568dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
1569dnl also defines GSTUFF_PKG_ERRORS on error
1570AC_DEFUN([PKG_CHECK_MODULES], [
1571 succeeded=no
1572
1573 if test -z "$PKG_CONFIG"; then
1574 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1575 fi
1576
1577 if test "$PKG_CONFIG" = "no" ; then
1578 ifelse([$4], , [AC_MSG_ERROR([
1579 *** 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])
1580 else
1581 PKG_CONFIG_MIN_VERSION=0.9.0
1582 if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
1583 AC_MSG_CHECKING(for $2)
1584
e9f67acf 1585 if $PKG_CONFIG --exists "$2" 2>&AS_MESSAGE_LOG_FD; then
2eec8691
JD
1586 AC_MSG_RESULT(yes)
1587 succeeded=yes
1588
1589 AC_MSG_CHECKING($1_CFLAGS)
94315858 1590 $1_CFLAGS=`$PKG_CONFIG --cflags "$2"|sed -e 's,///*,/,g'`
2eec8691
JD
1591 AC_MSG_RESULT($$1_CFLAGS)
1592
1593 AC_MSG_CHECKING($1_LIBS)
94315858 1594 $1_LIBS=`$PKG_CONFIG --libs "$2"|sed -e 's,///*,/,g'`
2eec8691
JD
1595 AC_MSG_RESULT($$1_LIBS)
1596 else
1597 AC_MSG_RESULT(no)
1598 $1_CFLAGS=""
1599 $1_LIBS=""
1600 ## If we have a custom action on failure, don't print errors, but
1601 ## do set a variable so people can do so.
1602 $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
1603 ifelse([$4], ,echo $$1_PKG_ERRORS,)
1604 fi
1605
1606 AC_SUBST($1_CFLAGS)
1607 AC_SUBST($1_LIBS)
1608 else
1609 echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
1610 echo "*** See http://www.freedesktop.org/software/pkgconfig"
1611 fi
1612 fi
1613
1614 if test $succeeded = yes; then
1615 ifelse([$3], , :, [$3])
1616 else
1617 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])
1618 fi
1619])
1620
1621
3d9830e5
PJ
1622if test "${with_sound}" != "no"; then
1623 # Sound support for GNU/Linux and the free BSDs.
1624 AC_CHECK_HEADERS(machine/soundcard.h sys/soundcard.h soundcard.h)
1625 # Emulation library used on NetBSD.
1626 AC_CHECK_LIB(ossaudio, _oss_ioctl, LIBSOUND=-lossaudio, LIBSOUND=)
1627 AC_SUBST(LIBSOUND)
2eec8691
JD
1628
1629 ALSA_REQUIRED=1.0.0
1630 ALSA_MODULES="alsa >= $ALSA_REQUIRED"
1631 dnl Check if --with-pkg-config-prog has been given.
1632 if test "X${with_pkg_config_prog}" != X; then
1633 PKG_CONFIG="${with_pkg_config_prog}"
1634 fi
1635 PKG_CHECK_MODULES(ALSA, $ALSA_MODULES, HAVE_ALSA=yes, HAVE_ALSA=no)
1636 if test $HAVE_ALSA = yes; then
ce091e44
JD
1637 SAVE_CFLAGS="$CFLAGS"
1638 SAVE_LDFLAGS="$LDFLAGS"
1639 CFLAGS="$ALSA_CFLAGS $CFLAGS"
1640 LDFLAGS="$ALSA_LIBS $LDFLAGS"
1641 AC_TRY_COMPILE([#include <asoundlib.h>], [snd_lib_error_set_handler (0);],
1642 emacs_alsa_normal=yes,
1643 emacs_alsa_normal=no)
1644 if test "$emacs_alsa_normal" != yes; then
1645 AC_TRY_COMPILE([#include <alsa/asoundlib.h>],
1646 [snd_lib_error_set_handler (0);],
1647 emacs_alsa_subdir=yes,
1648 emacs_alsa_subdir=no)
1649 if test "$emacs_alsa_subdir" != yes; then
1650 AC_MSG_ERROR([pkg-config found alsa, but it does not compile. See config.log for error messages.])
1651 fi
1652 ALSA_CFLAGS="$ALSA_CFLAGS -DALSA_SUBDIR_INCLUDE"
1653 fi
1654
1655 CFLAGS="$SAVE_CFLAGS"
1656 LDFLAGS="$SAVE_LDFLAGS"
2eec8691
JD
1657 LIBSOUND="$LIBSOUND $ALSA_LIBS"
1658 CFLAGS_SOUND="$CFLAGS_SOUND $ALSA_CFLAGS"
1659 AC_DEFINE(HAVE_ALSA, 1, [Define to 1 if ALSA is available.])
1660 fi
1661 AC_SUBST(CFLAGS_SOUND)
3d9830e5 1662fi
b412189c 1663
9ec10b2f 1664dnl checks for header files
1113b624
PE
1665AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \
1666 linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \
9afca57c 1667 termcap.h stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \
551ffc27 1668 sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \
8a877e5c 1669 sys/utsname.h pwd.h)
f17e308a
JD
1670
1671AC_MSG_CHECKING(if personality LINUX32 can be set)
1672AC_TRY_COMPILE([#include <sys/personality.h>], [personality (PER_LINUX32)],
1673 emacs_cv_personality_linux32=yes,
1674 emacs_cv_personality_linux32=no)
1675AC_MSG_RESULT($emacs_cv_personality_linux32)
1676
1677if test $emacs_cv_personality_linux32 = yes; then
1678 AC_DEFINE(HAVE_PERSONALITY_LINUX32, 1,
1679 [Define to 1 if personality LINUX32 can be set.])
1680fi
1681
91b5aa9a
DL
1682dnl On Solaris 8 there's a compilation warning for term.h because
1683dnl it doesn't define `bool'.
1684AC_CHECK_HEADERS(term.h, , , -)
6e0dc84a
DM
1685AC_HEADER_STDC
1686AC_HEADER_TIME
71cc40d5
DL
1687AC_CHECK_DECLS([sys_siglist])
1688if test $ac_cv_have_decl_sys_siglist != yes; then
1689 # For Tru64, at least:
1690 AC_CHECK_DECLS([__sys_siglist])
1691 if test $ac_cv_have_decl___sys_siglist = yes; then
1692 AC_DEFINE(sys_siglist, __sys_siglist,
1693 [Define to any substitute for sys_siglist.])
1694 fi
1695fi
2ce723a5 1696AC_HEADER_SYS_WAIT
9ec10b2f 1697
3cd69289 1698dnl Some systems have utime.h but don't declare the struct anyplace.
fd0a060b 1699AC_CACHE_CHECK(for struct utimbuf, emacs_cv_struct_utimbuf,
3cd69289
DM
1700AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
1701#include <sys/time.h>
1702#include <time.h>
1703#else
1704#ifdef HAVE_SYS_TIME_H
1705#include <sys/time.h>
1706#else
1707#include <time.h>
1708#endif
1709#endif
1710#ifdef HAVE_UTIME_H
1711#include <utime.h>
1712#endif], [static struct utimbuf x; x.actime = x.modtime;],
fd0a060b
AS
1713 emacs_cv_struct_utimbuf=yes, emacs_cv_struct_utimbuf=no))
1714if test $emacs_cv_struct_utimbuf = yes; then
5e7d772d 1715 AC_DEFINE(HAVE_STRUCT_UTIMBUF, 1, [Define to 1 if `struct utimbuf' is declared by <utime.h>.])
fd0a060b 1716fi
3cd69289 1717
9ec10b2f 1718dnl checks for typedefs
6e0dc84a 1719AC_TYPE_SIGNAL
9ec10b2f 1720
25abcaf1
GM
1721dnl Check for speed_t typedef.
1722AC_CACHE_CHECK(for speed_t, emacs_cv_speed_t,
a1d8dc87
RS
1723 [AC_TRY_COMPILE([#include <termios.h>], [speed_t x = 1;],
1724 emacs_cv_speed_t=yes, emacs_cv_speed_t=no)])
25abcaf1 1725if test $emacs_cv_speed_t = yes; then
177c0ea7 1726 AC_DEFINE(HAVE_SPEED_T, 1,
a1d8dc87 1727 [Define to 1 if `speed_t' is declared by <termios.h>.])
25abcaf1
GM
1728fi
1729
fd0a060b 1730AC_CACHE_CHECK(for struct timeval, emacs_cv_struct_timeval,
3cd69289
DM
1731AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
1732#include <sys/time.h>
1733#include <time.h>
1734#else
1735#ifdef HAVE_SYS_TIME_H
1736#include <sys/time.h>
1737#else
1738#include <time.h>
1739#endif
1740#endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
fd0a060b
AS
1741 emacs_cv_struct_timeval=yes, emacs_cv_struct_timeval=no))
1742HAVE_TIMEVAL=$emacs_cv_struct_timeval
1743if test $emacs_cv_struct_timeval = yes; then
5e7d772d 1744 AC_DEFINE(HAVE_TIMEVAL, 1, [Define to 1 if `struct timeval' is declared by <sys/time.h>.])
fd0a060b 1745fi
3cd69289 1746
63c59d1e 1747AC_CACHE_CHECK(for struct exception, emacs_cv_struct_exception,
177c0ea7 1748AC_TRY_COMPILE([#include <math.h>],
63c59d1e
DL
1749[static struct exception x; x.arg1 = x.arg2 = x.retval; x.name = ""; x.type = 1;],
1750 emacs_cv_struct_exception=yes, emacs_cv_struct_exception=no))
1751HAVE_EXCEPTION=$emacs_cv_struct_exception
1752if test $emacs_cv_struct_exception != yes; then
5e7d772d 1753 AC_DEFINE(NO_MATHERR, 1, [Define to 1 if you don't have struct exception in math.h.])
63c59d1e
DL
1754fi
1755
ce6e4c21
AS
1756AC_CHECK_HEADERS(sys/socket.h)
1757AC_CHECK_HEADERS(net/if.h, , , [AC_INCLUDES_DEFAULT
1758#if HAVE_SYS_SOCKET_H
1759#include <sys/socket.h>
1760#endif])
1761
9ec10b2f
DM
1762dnl checks for structure members
1763AC_STRUCT_TM
6e0dc84a 1764AC_STRUCT_TIMEZONE
5e7d772d
AS
1765AC_CHECK_MEMBER(struct tm.tm_gmtoff,
1766 [AC_DEFINE(HAVE_TM_GMTOFF, 1,
1767 [Define to 1 if `tm_gmtoff' is member of `struct tm'.])],,
1768 [#include <time.h>])
f6214bb7 1769AC_CHECK_MEMBERS([struct ifreq.ifr_flags, struct ifreq.ifr_hwaddr,
86bd9393 1770 struct ifreq.ifr_netmask, struct ifreq.ifr_broadaddr,
ce6e4c21
AS
1771 struct ifreq.ifr_addr], , ,
1772 [AC_INCLUDES_DEFAULT
1773#if HAVE_SYS_SOCKET_H
1774#include <sys/socket.h>
1775#endif
1776#if HAVE_NET_IF_H
1777#include <net/if.h>
1778#endif])
9ec10b2f
DM
1779
1780dnl checks for compiler characteristics
3f5b097c
DL
1781
1782dnl Testing __STDC__ to determine prototype support isn't good enough.
1783dnl DEC C, for instance, doesn't define it with default options, and
1784dnl is used on 64-bit systems (OSF Alphas). Similarly for volatile
1785dnl and void *.
1786AC_C_PROTOTYPES
1787AC_C_VOLATILE
6e0dc84a 1788AC_C_CONST
3f5b097c
DL
1789dnl This isn't useful because we can't turn on use of `inline' unless
1790dnl the compiler groks `extern inline'.
1791dnl AC_C_INLINE
1792AC_CACHE_CHECK([for void * support], emacs_cv_void_star,
177c0ea7 1793 [AC_TRY_COMPILE(, [void * foo;],
3f5b097c
DL
1794 emacs_cv_void_star=yes, emacs_cv_void_star=no)])
1795if test $emacs_cv_void_star = yes; then
1796 AC_DEFINE(POINTER_TYPE, void)
1797else
1798 AC_DEFINE(POINTER_TYPE, char)
1799fi
5e7d772d
AS
1800AH_TEMPLATE(POINTER_TYPE,
1801 [Define as `void' if your compiler accepts `void *'; otherwise
1802 define as `char'.])dnl
9ec10b2f 1803
4494a266
JD
1804
1805
71cc40d5
DL
1806dnl This could be used for targets which can have both byte sexes.
1807dnl We could presumably replace the hardwired WORDS_BIG_ENDIAN generally.
1808dnl AC_C_BIGENDIAN
1809
9ec10b2f 1810dnl check for Make feature
6e0dc84a 1811AC_PROG_MAKE_SET
9ec10b2f
DM
1812
1813dnl checks for operating system services
6e0dc84a 1814AC_SYS_LONG_FILE_NAMES
9ec10b2f
DM
1815
1816#### Choose a window system.
9ec10b2f 1817
6e0dc84a 1818AC_PATH_X
530ce502
DM
1819if test "$no_x" = yes; then
1820 window_system=none
1821else
1822 window_system=x11
1823fi
9ec10b2f 1824
f13de01e
AS
1825if test "${x_libraries}" != NONE; then
1826 if test -n "${x_libraries}"; then
1827 LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
1828 LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
1829 fi
66d736a9 1830 x_default_search_path=""
f13de01e
AS
1831 x_search_path=${x_libraries}
1832 if test -z "${x_search_path}"; then
1833 x_search_path=/usr/lib
1834 fi
1835 for x_library in `echo ${x_search_path}: | \
1836 sed -e "s/:/ /g" -e p -e "s:/lib[[^ /]]* :/share :g"`; do
c8d4d4cc
KH
1837 x_search_path="\
1838${x_library}/X11/%L/%T/%N%C%S:\
1839${x_library}/X11/%l/%T/%N%C%S:\
1840${x_library}/X11/%T/%N%C%S:\
1841${x_library}/X11/%L/%T/%N%S:\
1842${x_library}/X11/%l/%T/%N%S:\
1843${x_library}/X11/%T/%N%S"
66d736a9
RS
1844 if test x"${x_default_search_path}" = x; then
1845 x_default_search_path=${x_search_path}
1846 else
1847 x_default_search_path="${x_search_path}:${x_default_search_path}"
1848 fi
1849 done
ea199426
DM
1850fi
1851if test "${x_includes}" != NONE && test -n "${x_includes}"; then
cc6476f6 1852 C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"`
ea199426 1853fi
9ec10b2f 1854
8dbeb353
DM
1855if test x"${x_includes}" = x; then
1856 bitmapdir=/usr/include/X11/bitmaps
3cd69289 1857else
908ff139 1858 # accumulate include directories that have X11 bitmap subdirectories
cc6476f6
KH
1859 bmd_acc="dummyval"
1860 for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do
1861 if test -d "${bmd}/X11/bitmaps"; then
1862 bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps"
4f6f5dab
GM
1863 fi
1864 if test -d "${bmd}/bitmaps"; then
cc6476f6
KH
1865 bmd_acc="${bmd_acc}:${bmd}/bitmaps"
1866 fi
1867 done
1868 if test ${bmd_acc} != "dummyval"; then
1869 bitmapdir=`echo ${bmd_acc} | sed -e "s/^dummyval://"`
1870 fi
3cd69289
DM
1871fi
1872
9797a87d
YM
1873HAVE_CARBON=no
1874if test "${with_carbon}" != no; then
1875 AC_CHECK_HEADER(Carbon/Carbon.h, HAVE_CARBON=yes)
1876fi
1877if test "${window_system}" = x11 && test "${HAVE_CARBON}" = yes; then
1878 if test "${with_carbon+set}" != set \
1879 && test "${carbon_appdir_x+set}" != set; then
cacacdfc
YM
1880 for var in with_x with_x_toolkit with_gtk with_xim \
1881 with_xpm with_jpeg with_tiff with_gif with_png; do
1882 if eval test \"\${$var+set}\" = set; then
1883 HAVE_CARBON=no
1884 break
1885 fi
1886 done
9797a87d
YM
1887 fi
1888fi
1889if test "${HAVE_CARBON}" = yes; then
1890 window_system=mac
1891fi
1892
9ec10b2f
DM
1893case "${window_system}" in
1894 x11 )
1895 HAVE_X_WINDOWS=yes
1896 HAVE_X11=yes
1897 case "${with_x_toolkit}" in
c7f493fd
RM
1898 athena | lucid ) USE_X_TOOLKIT=LUCID ;;
1899 motif ) USE_X_TOOLKIT=MOTIF ;;
488dd4c4
JD
1900 gtk ) with_gtk=yes
1901dnl Dont set this for GTK. A lot of tests below assumes Xt when
1902dnl USE_X_TOOLKIT is set.
1903 USE_X_TOOLKIT=none ;;
4be21f66 1904 no ) USE_X_TOOLKIT=none ;;
4f823057
GM
1905dnl If user did not say whether to use a toolkit, make this decision later:
1906dnl use the toolkit if we have gtk, or X11R5 or newer.
1907 * )
1908 if test x"$with_gtk" = xyes; then
1909 USE_X_TOOLKIT=none
1910 else
1911 USE_X_TOOLKIT=maybe
1912 fi
1913 ;;
9ec10b2f
DM
1914 esac
1915 ;;
9797a87d 1916 mac | none )
9ec10b2f
DM
1917 HAVE_X_WINDOWS=no
1918 HAVE_X11=no
1919 USE_X_TOOLKIT=none
1920 ;;
1921esac
9ec10b2f 1922
31ad8850
JD
1923if test "$window_system" = none && test "X$with_x" != "Xno"; then
1924 AC_CHECK_PROG(HAVE_XSERVER, X, true, false)
1925 if test "$HAVE_XSERVER" = true ||
1926 test -n "$DISPLAY" ||
1927 test "`echo /usr/lib/libX11.*`" != "/usr/lib/libX11.*"; then
1928 AC_MSG_ERROR([You seem to be running X, but no X development libraries
0d875537
GM
1929were found. You should install the relevant development files for X
1930and for the toolkit you want, such as Gtk+, Lesstif or Motif. Also make
31ad8850
JD
1931sure you have development files for image handling, i.e.
1932tiff, gif, jpeg, png and xpm.
1933If you are sure you want Emacs compiled without X window support, pass
1934 --without-x
1935to configure.])
1936 fi
1937fi
1938
9ec10b2f 1939### If we're using X11, we should use the X menu package.
08741ba9 1940HAVE_MENUS=no
9ec10b2f 1941case ${HAVE_X11} in
08741ba9 1942 yes ) HAVE_MENUS=yes ;;
9ec10b2f 1943esac
177c0ea7 1944
b95c8e7e
RS
1945if test "${opsys}" = "hpux9"; then
1946 case "${x_libraries}" in
1947 *X11R4* )
1948 opsysfile="s/hpux9-x11r4.h"
1949 ;;
1950 esac
1951fi
1952
1953if test "${opsys}" = "hpux9shr"; then
1954 case "${x_libraries}" in
1955 *X11R4* )
1956 opsysfile="s/hpux9shxr4.h"
1957 ;;
1958 esac
1959fi
1960
9ec10b2f
DM
1961### Compute the unexec source name from the object name.
1962UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`"
1963
1964# Do the opsystem or machine files prohibit the use of the GNU malloc?
1965# Assume not, until told otherwise.
1966GNU_MALLOC=yes
b05a95cb
RS
1967doug_lea_malloc=yes
1968AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no)
1969AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
fd0a060b
AS
1970AC_CACHE_CHECK(whether __after_morecore_hook exists,
1971 emacs_cv_var___after_morecore_hook,
e9b2a022 1972[AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
fd0a060b 1973 emacs_cv_var___after_morecore_hook=yes,
e9b2a022 1974 emacs_cv_var___after_morecore_hook=no)])
fd0a060b
AS
1975if test $emacs_cv_var___after_morecore_hook = no; then
1976 doug_lea_malloc=no
1977fi
8cd88038 1978if test "${system_malloc}" = "yes"; then
9ec10b2f
DM
1979 GNU_MALLOC=no
1980 GNU_MALLOC_reason="
b05a95cb 1981 (The GNU allocators don't work with this system configuration.)"
9ec10b2f 1982fi
8cd88038
RS
1983if test "$doug_lea_malloc" = "yes" ; then
1984 if test "$GNU_MALLOC" = yes ; then
1985 GNU_MALLOC_reason="
0855015c 1986 (Using Doug Lea's new malloc from the GNU C Library.)"
8cd88038 1987 fi
5e7d772d
AS
1988 AC_DEFINE(DOUG_LEA_MALLOC, 1,
1989 [Define to 1 if you are using the GNU C Library.])
8cd88038 1990fi
9ec10b2f
DM
1991
1992if test x"${REL_ALLOC}" = x; then
1993 REL_ALLOC=${GNU_MALLOC}
1994fi
1995
e32fac2a 1996dnl For now, need to use an explicit `#define USE_MMAP_FOR_BUFFERS 1'
69c40632 1997dnl the system configuration file (s/*.h) to turn the use of mmap
53c94d4d 1998dnl in the relocating allocator on.
b1b4ce06
GM
1999
2000AC_FUNC_MMAP
e32fac2a
GM
2001if test $use_mmap_for_buffers = yes; then
2002 REL_ALLOC=no
b1b4ce06
GM
2003fi
2004
52c76122 2005LIBS="$libsrc_libs $LIBS"
9ec10b2f
DM
2006
2007dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
2008dnl and also adds -ldnet to LIBS, which Autoconf uses for checks.
2009AC_CHECK_LIB(dnet, dnet_ntoa)
2010dnl This causes -lresolv to get used in subsequent tests,
2011dnl which causes failures on some systems such as HPUX 9.
2012dnl AC_CHECK_LIB(resolv, gethostbyname)
2013
2014dnl FIXME replace main with a function we actually want from this library.
2015AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
2016
027dae63 2017AC_CHECK_LIB(pthreads, cma_open)
1d94ee28 2018
5d4245a6 2019AC_MSG_CHECKING(for XFree86 in /usr/X386)
9ec10b2f 2020if test -d /usr/X386/include; then
9ec10b2f 2021 HAVE_XFREE386=yes
6e0dc84a 2022 : ${C_SWITCH_X_SITE="-I/usr/X386/include"}
9ec10b2f 2023else
6e0dc84a 2024 HAVE_XFREE386=no
9ec10b2f 2025fi
6e0dc84a 2026AC_MSG_RESULT($HAVE_XFREE386)
f6214bb7 2027
f4d9f5b8
FP
2028dnl Check for need for bigtoc support on IBM AIX
2029
2030case ${host_os} in
2031aix*)
2032 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
2033 case $GCC in
2034 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
2035 *) gdb_cv_bigtoc=-bbigtoc ;;
2036 esac
2037
2038 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
2039 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
2040 ])
2041 ;;
2042esac
9ec10b2f 2043
9811b1cf
RS
2044# Change CFLAGS and CPPFLAGS temporarily so that C_SWITCH_X_SITE gets
2045# used for the tests that follow. We set them back to REAL_CFLAGS and
2046# REAL_CPPFLAGS later on.
9ec10b2f 2047
5a9bf171
KR
2048REAL_CPPFLAGS="$CPPFLAGS"
2049
9ec10b2f
DM
2050if test "${HAVE_X11}" = "yes"; then
2051 DEFS="$C_SWITCH_X_SITE $DEFS"
96c20358
RS
2052 LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE"
2053 LIBS="$LIBX $LIBS"
9ec10b2f 2054 CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
5a9bf171 2055 CPPFLAGS="$C_SWITCH_X_SITE $CPPFLAGS"
509fccc3 2056
617a496c
RS
2057 # On Solaris, arrange for LD_RUN_PATH to point to the X libraries for tests.
2058 # This is handled by LD_SWITCH_X_SITE_AUX during the real build,
2059 # but it's more convenient here to set LD_RUN_PATH
2060 # since this also works on hosts that don't understand LD_SWITCH_X_SITE_AUX.
2061 if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
2062 LD_RUN_PATH=$x_libraries${LD_RUN_PATH+:}$LD_RUN_PATH
2063 export LD_RUN_PATH
2064 fi
2065
5ac83f86 2066 if test "${opsys}" = "gnu-linux"; then
3bbe016c 2067 AC_MSG_CHECKING(whether X on GNU/Linux needs -b to link)
509fccc3
RS
2068 AC_TRY_LINK([],
2069 [XOpenDisplay ("foo");],
3bbe016c
KH
2070 [xlinux_first_failure=no],
2071 [xlinux_first_failure=yes])
2072 if test "${xlinux_first_failure}" = "yes"; then
509fccc3
RS
2073 OLD_LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE"
2074 OLD_C_SWITCH_X_SITE="$C_SWITCH_X_SITE"
2075 OLD_CPPFLAGS="$CPPFLAGS"
2076 OLD_LIBS="$LIBS"
2077 LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout"
2078 C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout"
2079 CPPFLAGS="$CPPFLAGS -b i486-linuxaout"
2080 LIBS="$LIBS -b i486-linuxaout"
2081 AC_TRY_LINK([],
2082 [XOpenDisplay ("foo");],
3bbe016c
KH
2083 [xlinux_second_failure=no],
2084 [xlinux_second_failure=yes])
2085 if test "${xlinux_second_failure}" = "yes"; then
509fccc3
RS
2086 # If we get the same failure with -b, there is no use adding -b.
2087 # So take it out. This plays safe.
2088 LD_SWITCH_X_SITE="$OLD_LD_SWITCH_X_SITE"
2089 C_SWITCH_X_SITE="$OLD_C_SWITCH_X_SITE"
2090 CPPFLAGS="$OLD_CPPFLAGS"
2091 LIBS="$OLD_LIBS"
2092 AC_MSG_RESULT(no)
2093 else
2094 AC_MSG_RESULT(yes)
2095 fi
2096 else
2097 AC_MSG_RESULT(no)
2098 fi
2099 fi
2100
9ca4be21
GM
2101 # Reportedly, some broken Solaris systems have XKBlib.h but are missing
2102 # header files included from there.
2103 AC_MSG_CHECKING(for Xkb)
2104 AC_TRY_LINK([#include <X11/Xlib.h>
2105#include <X11/XKBlib.h>],
2106 [XkbDescPtr kb = XkbGetKeyboard (0, XkbAllComponentsMask, XkbUseCoreKbd);],
2107 emacs_xkb=yes, emacs_xkb=no)
ad4ac636 2108 AC_MSG_RESULT($emacs_xkb)
9ca4be21 2109 if test $emacs_xkb = yes; then
5e7d772d 2110 AC_DEFINE(HAVE_XKBGETKEYBOARD, 1, [Define to 1 if you have the XkbGetKeyboard function.])
9ca4be21
GM
2111 fi
2112
6e0dc84a 2113 AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
9ca4be21 2114XScreenNumberOfScreen XSetWMProtocols)
9ec10b2f
DM
2115fi
2116
08741ba9 2117if test "${window_system}" = "x11"; then
4be21f66 2118 AC_MSG_CHECKING(X11 version 6)
fd0a060b 2119 AC_CACHE_VAL(emacs_cv_x11_version_6,
e9b2a022 2120 [AC_TRY_LINK([#include <X11/Xlib.h>],
08741ba9
RS
2121[#if XlibSpecificationRelease < 6
2122fail;
2123#endif
e9b2a022 2124], emacs_cv_x11_version_6=yes, emacs_cv_x11_version_6=no)])
fd0a060b
AS
2125 if test $emacs_cv_x11_version_6 = yes; then
2126 AC_MSG_RESULT(6 or newer)
5e7d772d
AS
2127 AC_DEFINE(HAVE_X11R6, 1,
2128 [Define to 1 if you have the X11R6 or newer version of Xlib.])
fd0a060b
AS
2129 else
2130 AC_MSG_RESULT(before 6)
2131 fi
08741ba9
RS
2132fi
2133
f7894e88 2134
96f574f0
GM
2135### Use -lrsvg-2 if available, unless `--with-rsvg=no' is specified.
2136HAVE_RSVG=no
7abdcaf4 2137if test "${HAVE_X11}" = "yes" || test "${HAVE_CARBON}" = "yes"; then
96f574f0
GM
2138 if test "${with_rsvg}" != "no"; then
2139 dnl Check if `--with-pkg-config-prog' has been given.
2140 if test "X${with_pkg_config_prog}" != X; then
2141 PKG_CONFIG="${with_pkg_config_prog}"
2142 fi
2143
2144 RSVG_REQUIRED=2.0.0
2145 RSVG_MODULE="librsvg-2.0 >= $RSVG_REQUIRED"
2146
2147 PKG_CHECK_MODULES(RSVG, $RSVG_MODULE, :, :)
2148 AC_SUBST(RSVG_CFLAGS)
2149 AC_SUBST(RSVG_LIBS)
2150
2151 if test ".${RSVG_CFLAGS}" != "."; then
2152 HAVE_RSVG=yes
2153 AC_DEFINE(HAVE_RSVG, 1, [Define to 1 if using librsvg.])
2154 CFLAGS="$CFLAGS $RSVG_CFLAGS"
2155 LIBS="$RSVG_LIBS $LIBS"
2156 fi
2157 fi
2158fi
2159
2160
488dd4c4 2161HAVE_GTK=no
a8ba915c
JD
2162if test "${with_gtk}" = "yes" && test "$USE_X_TOOLKIT" = "gtk"; then
2163 USE_X_TOOLKIT=none
2164fi
4f823057
GM
2165if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk" || \
2166 test "$USE_X_TOOLKIT" = "maybe"; then
cd890796 2167 if test "$USE_X_TOOLKIT" != "none" && test "$USE_X_TOOLKIT" != "maybe"; then
488dd4c4
JD
2168 AC_MSG_ERROR([Conflicting options, --with-gtk is incompatible with --with-x-toolkit=${with_x_toolkit}]);
2169 fi
f8932819
JD
2170 GLIB_REQUIRED=2.6
2171 GTK_REQUIRED=2.6
488dd4c4
JD
2172 GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
2173
2174 dnl Check if --with-pkg-config-prog has been given.
2175 if test "X${with_pkg_config_prog}" != X; then
2176 PKG_CONFIG="${with_pkg_config_prog}"
2177 fi
2178 dnl Checks for libraries.
4f823057
GM
2179 PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
2180 if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
2181 AC_MSG_ERROR($GTK_PKG_ERRORS)
2182 fi
2183fi
2184
2185
2186if test x"$pkg_check_gtk" = xyes; then
2187
488dd4c4
JD
2188 AC_SUBST(GTK_CFLAGS)
2189 AC_SUBST(GTK_LIBS)
2190 C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS"
57669b57
JD
2191 CFLAGS="$CFLAGS $GTK_CFLAGS"
2192 LIBS="$GTK_LIBS $LIBS"
a8ba915c
JD
2193 dnl Try to compile a simple GTK program.
2194 GTK_COMPILES=no
2195 AC_CHECK_FUNCS(gtk_main, GTK_COMPILES=yes)
2196 if test "${GTK_COMPILES}" != "yes"; then
4f823057
GM
2197 if test "$USE_X_TOOLKIT" != "maybe"; then
2198 AC_MSG_ERROR([Gtk+ wanted, but it does not compile, see config.log. Maybe some x11-devel files missing?]);
2199 fi
2200 else
2201 HAVE_GTK=yes
2202 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if using GTK.])
2203 USE_X_TOOLKIT=none
a8ba915c 2204 fi
4f823057
GM
2205
2206fi
2207
2208
2209if test "${HAVE_GTK}" = "yes"; then
488dd4c4 2210
57669b57 2211 dnl GTK scrollbars resemble toolkit scrollbars a lot, so to avoid
488dd4c4 2212 dnl a lot if #ifdef:s, say we have toolkit scrollbars.
d0a80c21
JD
2213 if test "$with_toolkit_scroll_bars" != no; then
2214 with_toolkit_scroll_bars=yes
2215 fi
57669b57
JD
2216
2217 dnl Check if we can use multiple displays with this GTK version.
2218 dnl If gdk_display_open exists, assume all others are there also.
3410a550 2219 HAVE_GTK_MULTIDISPLAY=no
fa1b1007
KL
2220 AC_CHECK_FUNCS(gdk_display_open, HAVE_GTK_MULTIDISPLAY=yes)
2221 if test "${HAVE_GTK_MULTIDISPLAY}" = "yes"; then
2222 AC_DEFINE(HAVE_GTK_MULTIDISPLAY, 1,
2223 [Define to 1 if GTK can handle more than one display.])
2224 fi
5f6a587f 2225
572a3cc2
JD
2226 dnl Check if we have the old file selection dialog.
2227 dnl If gdk_display_open exists, assume all others are there also.
2228 HAVE_GTK_FILE_SELECTION=no
2229 AC_CHECK_FUNCS(gtk_file_selection_new, HAVE_GTK_FILE_SELECTION=yes)
2230
2231 dnl Check if we have the new file chooser dialog
2232 dnl If gdk_display_open exists, assume all others are there also.
2233 HAVE_GTK_FILE_CHOOSER=no
2234 AC_CHECK_FUNCS(gtk_file_chooser_dialog_new, HAVE_GTK_FILE_CHOOSER=yes)
2235
2236 if test "$HAVE_GTK_FILE_SELECTION" = yes \
2237 && test "$HAVE_GTK_FILE_CHOOSER" = yes; then
2238 AC_DEFINE(HAVE_GTK_FILE_BOTH, 1,
2239 [Define to 1 if GTK has both file selection and chooser dialog.])
2240 fi
b8bdffbe
JD
2241
2242 dnl Check if pthreads are available. Emacs only needs this when using
2243 dnl gtk_file_chooser under Gnome.
2244 if test "$HAVE_GTK_FILE_CHOOSER" = yes; then
2245 HAVE_GTK_AND_PTHREAD=no
2246 AC_CHECK_HEADERS(pthread.h)
2247 if test "$ac_cv_header_pthread_h"; then
2248 AC_CHECK_LIB(pthread, pthread_self, HAVE_GTK_AND_PTHREAD=yes)
2249 fi
2250 if test "$HAVE_GTK_AND_PTHREAD" = yes; then
846d1b3e
JD
2251 case "${canonical}" in
2252 *-hpux*) ;;
2253 *) GTK_LIBS="$GTK_LIBS -lpthread" ;;
2254 esac
b8bdffbe
JD
2255 AC_DEFINE(HAVE_GTK_AND_PTHREAD, 1,
2256 [Define to 1 if you have GTK and pthread (-lpthread).])
2257 fi
2258 fi
488dd4c4
JD
2259fi
2260
aa4ff486
JD
2261### Link with -lXft if available to work around a bug.
2262HAVE_XFT=maybe
2263if test "${HAVE_GTK}" = "yes"; then
2264 dnl Check if --with-pkg-config-prog has been given.
2265 if test "X${with_pkg_config_prog}" != X; then
2266 PKG_CONFIG="${with_pkg_config_prog}"
2267 fi
2268
2269 PKG_CHECK_MODULES(XFT, xft >= 0.13.0, , HAVE_XFT=no)
2270 if test "$HAVE_XFT" != no; then
2271 OLD_CFLAGS="$CPPFLAGS"
36942957 2272 OLD_CPPFLAGS="$CFLAGS"
aa4ff486
JD
2273 OLD_LIBS="$LIBS"
2274 CPPFLAGS="$CPPFLAGS $XFT_CFLAGS"
2275 CFLAGS="$CFLAGS $XFT_CFLAGS"
2276 LIBS="$XFT_LIBS $LIBS"
2277 AC_CHECK_HEADER(X11/Xft/Xft.h,
28aa2c3e 2278 [AC_CHECK_LIB(Xft, XftFontOpen, HAVE_XFT=yes, , $XFT_LIBS)])
aa4ff486
JD
2279
2280 if test "${HAVE_XFT}" = "yes"; then
2281 AC_DEFINE(HAVE_XFT, 1, [Define to 1 if you have the Xft library.])
2282 AC_SUBST(XFT_LIBS)
2283 C_SWITCH_X_SITE="$C_SWITCH_X_SITE $XFT_CFLAGS"
2284 else
2285 CFLAGS="$OLD_CPPFLAGS"
2286 CFLAGS="$OLD_CFLAGS"
2287 LIBS="$OLD_LIBS"
2288 fi
2289 fi
2290fi
2291
bce97856
RS
2292dnl Do not put whitespace before the #include statements below.
2293dnl Older compilers (eg sunos4 cc) choke on it.
687b2aa3 2294HAVE_XAW3D=no
465ace28 2295if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then
e818a450
JD
2296 if test "$with_xaw3d" != no; then
2297 AC_MSG_CHECKING(for xaw3d)
2298 AC_CACHE_VAL(emacs_cv_xaw3d,
2299 [AC_TRY_LINK([
bce97856 2300#include <X11/Intrinsic.h>
687b2aa3 2301#include <X11/Xaw3d/Simple.h>],
e818a450
JD
2302 [],
2303 emacs_cv_xaw3d=yes,
2304 emacs_cv_xaw3d=no)])
2305 else
2306 emacs_cv_xaw3d=no
2307 fi
2308 if test $emacs_cv_xaw3d = yes; then
2309 AC_MSG_RESULT([yes; using Lucid toolkit])
2310 USE_X_TOOLKIT=LUCID
2311 HAVE_XAW3D=yes
2312 AC_DEFINE(HAVE_XAW3D, 1,
2313 [Define to 1 if you have the Xaw3d library (-lXaw3d).])
2314 else
2315 AC_MSG_RESULT(no)
2316 AC_MSG_CHECKING(for libXaw)
2317 AC_CACHE_VAL(emacs_cv_xaw,
2318 [AC_TRY_LINK([
2319#include <X11/Intrinsic.h>
2320#include <X11/Xaw/Simple.h>],
2321 [],
2322 emacs_cv_xaw=yes,
2323 emacs_cv_xaw=no)])
2324 if test $emacs_cv_xaw = yes; then
687b2aa3 2325 AC_MSG_RESULT([yes; using Lucid toolkit])
fd0a060b 2326 USE_X_TOOLKIT=LUCID
e818a450
JD
2327 elif test x"${USE_X_TOOLKIT}" = xLUCID; then
2328 AC_MSG_ERROR([Lucid toolkit requires X11/Xaw include files])
fd0a060b 2329 else
e818a450
JD
2330 AC_MSG_RESULT([no; do not use toolkit by default])
2331 USE_X_TOOLKIT=none
fd0a060b 2332 fi
f7894e88 2333 fi
4be21f66
KH
2334fi
2335
2336X_TOOLKIT_TYPE=$USE_X_TOOLKIT
2337
9ec10b2f
DM
2338if test "${USE_X_TOOLKIT}" != "none"; then
2339 AC_MSG_CHECKING(X11 toolkit version)
fd0a060b 2340 AC_CACHE_VAL(emacs_cv_x11_toolkit_version_6,
e9b2a022 2341 [AC_TRY_LINK([#include <X11/Intrinsic.h>],
9ec10b2f
DM
2342[#if XtSpecificationRelease < 6
2343fail;
2344#endif
e9b2a022 2345], emacs_cv_x11_toolkit_version_6=yes, emacs_cv_x11_toolkit_version_6=no)])
fd0a060b
AS
2346 HAVE_X11XTR6=$emacs_cv_x11_toolkit_version_6
2347 if test $emacs_cv_x11_toolkit_version_6 = yes; then
2348 AC_MSG_RESULT(6 or newer)
5e7d772d
AS
2349 AC_DEFINE(HAVE_X11XTR6, 1,
2350 [Define to 1 if you have the X11R6 or newer version of Xt.])
fd0a060b
AS
2351 else
2352 AC_MSG_RESULT(before 6)
2353 fi
6aad10e4
RS
2354
2355dnl If using toolkit, check whether libXmu.a exists.
2356dnl tranle@intellicorp.com says libXmu.a can need XtMalloc in libXt.a to link.
2357 OLDLIBS="$LIBS"
fcc303f4
RS
2358 if test x$HAVE_X11XTR6 = xyes; then
2359 LIBS="-lXt -lSM -lICE $LIBS"
2360 else
2361 LIBS="-lXt $LIBS"
2362 fi
6aad10e4 2363 AC_CHECK_LIB(Xmu, XmuConvertStandardSelection)
ad4ac636
GM
2364 test $ac_cv_lib_Xmu_XmuConvertStandardSelection = no && LIBS="$OLDLIBS"
2365fi
2366
2367# On Irix 6.5, at least, we need XShapeQueryExtension from -lXext for Xaw3D.
2368if test "${HAVE_X11}" = "yes"; then
2369 if test "${USE_X_TOOLKIT}" != "none"; then
2370 AC_CHECK_LIB(Xext, XShapeQueryExtension)
2371 fi
9ec10b2f
DM
2372fi
2373
66d736a9 2374if test "${USE_X_TOOLKIT}" = "MOTIF"; then
fd0a060b 2375 AC_CACHE_CHECK(for Motif version 2.1, emacs_cv_motif_version_2_1,
e9b2a022 2376 [AC_TRY_COMPILE([#include <Xm/Xm.h>],
66d736a9
RS
2377 [#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1)
2378int x = 5;
2379#else
2380Motif version prior to 2.1.
2381#endif],
e9b2a022 2382 emacs_cv_motif_version_2_1=yes, emacs_cv_motif_version_2_1=no)])
fd0a060b
AS
2383 HAVE_MOTIF_2_1=$emacs_cv_motif_version_2_1
2384 if test $emacs_cv_motif_version_2_1 = yes; then
d96a4de3 2385 HAVE_LIBXP=no
5e7d772d
AS
2386 AC_DEFINE(HAVE_MOTIF_2_1, 1,
2387 [Define to 1 if you have Motif 2.1 or newer.])
ad4ac636 2388 AC_CHECK_LIB(Xp, XpCreateContext, HAVE_LIBXP=yes)
72d9b5b3 2389 if test ${HAVE_LIBXP} = yes; then
5e7d772d
AS
2390 AC_DEFINE(HAVE_LIBXP, 1,
2391 [Define to 1 if you have the Xp library (-lXp).])
177c0ea7 2392 fi
4693dbc9
SM
2393 else
2394 AC_CACHE_CHECK(for LessTif where some systems put it, emacs_cv_lesstif,
2395 # We put this in CFLAGS temporarily to precede other -I options
2396 # that might be in CFLAGS temporarily.
2397 # We put this in CPPFLAGS where it precedes the other -I options.
2398 OLD_CPPFLAGS=$CPPFLAGS
2399 OLD_CFLAGS=$CFLAGS
2400 CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS"
2401 CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS"
2402 [AC_TRY_COMPILE([#include </usr/X11R6/LessTif/Motif1.2/include/Xm/Xm.h>],
2403 [int x = 5;],
2404 emacs_cv_lesstif=yes, emacs_cv_lesstif=no)])
2405 if test $emacs_cv_lesstif = yes; then
2406 # Make sure this -I option remains in CPPFLAGS after it is set
2407 # back to REAL_CPPFLAGS.
2408 # There is no need to change REAL_CFLAGS, because REAL_CFLAGS does not
2409 # have those other -I options anyway. Ultimately, having this
2410 # directory ultimately in CPPFLAGS will be enough.
2411 REAL_CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $REAL_CPPFLAGS"
2412 LDFLAGS="-L/usr/X11R6/LessTif/Motif1.2/lib $LDFLAGS"
2413 else
2414 CFLAGS=$OLD_CFLAGS
2415 CPPFLAGS=$OLD_CPPFLAGS
2416 fi
fd0a060b 2417 fi
66d736a9
RS
2418fi
2419
488dd4c4 2420dnl Use toolkit scroll bars if configured for GTK or X toolkit and either
0be97a72
GM
2421dnl using Motif or Xaw3d is available, and unless
2422dnl --with-toolkit-scroll-bars=no was specified.
2423
5e7d772d
AS
2424AH_TEMPLATE(USE_TOOLKIT_SCROLL_BARS,
2425 [Define to 1 if we should use toolkit scroll bars.])dnl
0be97a72
GM
2426USE_TOOLKIT_SCROLL_BARS=no
2427if test "${with_toolkit_scroll_bars}" != "no"; then
2428 if test "${USE_X_TOOLKIT}" != "none"; then
2429 if test "${USE_X_TOOLKIT}" = "MOTIF"; then
2430 AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
2431 HAVE_XAW3D=no
2432 USE_TOOLKIT_SCROLL_BARS=yes
2433 elif test "${HAVE_XAW3D}" = "yes"; then
2434 AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
2435 USE_TOOLKIT_SCROLL_BARS=yes
2436 fi
488dd4c4
JD
2437 elif test "${HAVE_GTK}" = "yes"; then
2438 AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
2439 USE_TOOLKIT_SCROLL_BARS=yes
de0a3247
YM
2440 elif test "${HAVE_CARBON}" = "yes"; then
2441 AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
2442 USE_TOOLKIT_SCROLL_BARS=yes
0be97a72
GM
2443 fi
2444fi
2445
0d936a36
RS
2446dnl See if XIM is available.
2447AC_TRY_COMPILE([
2448 #include <X11/Xlib.h>
2449 #include <X11/Xresource.h>],
2450 [XIMProc callback;],
28aa2c3e
AS
2451 [HAVE_XIM=yes
2452 AC_DEFINE(HAVE_XIM, 1, [Define to 1 if XIM is available])],
0d936a36
RS
2453 HAVE_XIM=no)
2454
2455dnl `--with-xim' now controls only the initial value of use_xim at run time.
c6f7dae8
GM
2456
2457if test "${with_xim}" != "no"; then
5e7d772d
AS
2458 AC_DEFINE(USE_XIM, 1,
2459 [Define to 1 if we should use XIM, if it is available.])
4fdbcac5 2460fi
f6214bb7 2461
0d936a36
RS
2462
2463if test "${HAVE_XIM}" != "no"; then
a6c2ef66
DL
2464 late_CFLAGS=$CFLAGS
2465 if test "$GCC" = yes; then
2466 CFLAGS="$CFLAGS --pedantic-errors"
2467 fi
1c3a8acf
DL
2468 AC_TRY_COMPILE([
2469#include <X11/Xlib.h>
2470#include <X11/Xresource.h>],
2471[Display *display;
2472XrmDatabase db;
2473char *res_name;
2474char *res_class;
2475XIMProc callback;
2476XPointer *client_data;
a6c2ef66
DL
2477#ifndef __GNUC__
2478/* If we're not using GCC, it's probably not XFree86, and this is
2479 probably right, but we can't use something like --pedantic-errors. */
2480extern Bool XRegisterIMInstantiateCallback(Display*, XrmDatabase, char*,
2481 char*, XIMProc, XPointer*);
2482#endif
1c3a8acf
DL
2483(void)XRegisterIMInstantiateCallback(display, db, res_name, res_class, callback,
2484 client_data);],
2485 [emacs_cv_arg6_star=yes])
2486 AH_TEMPLATE(XRegisterIMInstantiateCallback_arg6,
2487 [Define to the type of the 6th arg of XRegisterIMInstantiateCallback,
2488either XPointer or XPointer*.])dnl
2489 if test "$emacs_cv_arg6_star" = yes; then
8cfdf2ca 2490 AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer*])
1c3a8acf 2491 else
8cfdf2ca 2492 AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer])
1c3a8acf 2493 fi
a6c2ef66 2494 CFLAGS=$late_CFLAGS
c6f7dae8
GM
2495fi
2496
620fdfdf
RS
2497### Use -lXpm if available, unless `--with-xpm=no'.
2498HAVE_XPM=no
2499if test "${HAVE_X11}" = "yes"; then
2500 if test "${with_xpm}" != "no"; then
620fdfdf 2501 AC_CHECK_HEADER(X11/xpm.h,
28aa2c3e 2502 [AC_CHECK_LIB(Xpm, XpmReadFileToPixmap, HAVE_XPM=yes, , -lX11)])
7960d0bd 2503 if test "${HAVE_XPM}" = "yes"; then
29c1b68e
GM
2504 AC_MSG_CHECKING(for XpmReturnAllocPixels preprocessor define)
2505 AC_EGREP_CPP(no_return_alloc_pixels,
2506 [#include "X11/xpm.h"
7960d0bd
GM
2507#ifndef XpmReturnAllocPixels
2508no_return_alloc_pixels
2509#endif
29c1b68e
GM
2510 ], HAVE_XPM=no, HAVE_XPM=yes)
2511
2512 if test "${HAVE_XPM}" = "yes"; then
2513 AC_MSG_RESULT(yes)
2514 else
2515 AC_MSG_RESULT(no)
2516 fi
1890c0c4 2517 fi
620fdfdf
RS
2518 fi
2519
2520 if test "${HAVE_XPM}" = "yes"; then
5e7d772d 2521 AC_DEFINE(HAVE_XPM, 1, [Define to 1 if you have the Xpm libary (-lXpm).])
620fdfdf
RS
2522 fi
2523fi
177c0ea7 2524
620fdfdf
RS
2525### Use -ljpeg if available, unless `--with-jpeg=no'.
2526HAVE_JPEG=no
2527if test "${HAVE_X11}" = "yes"; then
2528 if test "${with_jpeg}" != "no"; then
71cc40d5 2529 dnl Checking for jpeglib.h can lose because of a redefinition of
3cc9d384
DL
2530 dnl HAVE_STDLIB_H.
2531 AC_CHECK_HEADER(jerror.h,
28aa2c3e 2532 [AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes)])
620fdfdf
RS
2533 fi
2534
5e7d772d 2535 AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl
620fdfdf
RS
2536 if test "${HAVE_JPEG}" = "yes"; then
2537 AC_DEFINE(HAVE_JPEG)
91b5aa9a 2538 AC_EGREP_CPP([version= *(6[2-9]|[7-9][0-9])],
a0dd4fa6 2539 [#include <jpeglib.h>
4d766b59 2540 version=JPEG_LIB_VERSION
177c0ea7 2541],
28aa2c3e 2542 [AC_DEFINE(HAVE_JPEG)],
4d766b59
RS
2543 [AC_MSG_WARN([libjpeg found, but not version 6b or later])
2544 HAVE_JPEG=no])
620fdfdf
RS
2545 fi
2546fi
177c0ea7 2547
620fdfdf
RS
2548### Use -lpng if available, unless `--with-png=no'.
2549HAVE_PNG=no
2550if test "${HAVE_X11}" = "yes"; then
2551 if test "${with_png}" != "no"; then
8cfdf2ca
DL
2552 # Debian unstable as of July 2003 has multiple libpngs, and puts png.h
2553 # in /usr/include/libpng.
2554 AC_CHECK_HEADERS(png.h libpng/png.h)
2555 if test "$ac_cv_header_png_h" = yes || test "$ac_cv_header_libpng_png_h" = yes ; then
2556 AC_CHECK_LIB(png, png_get_channels, HAVE_PNG=yes, , -lz -lm)
2557 fi
620fdfdf
RS
2558 fi
2559
2560 if test "${HAVE_PNG}" = "yes"; then
5e7d772d 2561 AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library (-lpng).])
620fdfdf
RS
2562 fi
2563fi
177c0ea7 2564
620fdfdf
RS
2565### Use -ltiff if available, unless `--with-tiff=no'.
2566HAVE_TIFF=no
2567if test "${HAVE_X11}" = "yes"; then
2568 if test "${with_tiff}" != "no"; then
620fdfdf 2569 AC_CHECK_HEADER(tiffio.h,
28aa2c3e 2570 [tifflibs="-lz -lm"
3b3cc4a4
KR
2571 # At least one tiff package requires the jpeg library.
2572 if test "${HAVE_JPEG}" = yes; then tifflibs="-ljpeg $tifflibs"; fi
28aa2c3e 2573 AC_CHECK_LIB(tiff, TIFFGetVersion, HAVE_TIFF=yes, , $tifflibs)])
620fdfdf
RS
2574 fi
2575
2576 if test "${HAVE_TIFF}" = "yes"; then
5e7d772d 2577 AC_DEFINE(HAVE_TIFF, 1, [Define to 1 if you have the tiff library (-ltiff).])
620fdfdf
RS
2578 fi
2579fi
177c0ea7 2580
47d1e061 2581### Use -lgif or -lungif if available, unless `--with-gif=no'.
620fdfdf 2582HAVE_GIF=no
47d1e061
GM
2583if test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no"; then
2584 AC_CHECK_HEADER(gif_lib.h,
4d766b59
RS
2585# EGifPutExtensionLast only exists from version libungif-4.1.0b1.
2586# Earlier versions can crash Emacs.
28aa2c3e 2587 [AC_CHECK_LIB(gif, EGifPutExtensionLast, HAVE_GIF=yes, try_libungif=yes)])
47d1e061
GM
2588
2589 if test "$HAVE_GIF" = yes; then
12d9c91d 2590 ac_gif_lib_name="-lgif"
47d1e061
GM
2591 fi
2592
12d9c91d
GM
2593# If gif_lib.h but no libgif, try libungif.
2594 if test x"$try_libungif" = xyes; then
2595 AC_CHECK_LIB(ungif, EGifPutExtensionLast, HAVE_GIF=yes)
47d1e061
GM
2596
2597 if test "$HAVE_GIF" = yes; then
12d9c91d
GM
2598 AC_DEFINE(LIBGIF, -lungif, [Compiler option to link with the gif library (if not -lgif).])
2599 ac_gif_lib_name="-lungif"
47d1e061 2600 fi
620fdfdf
RS
2601 fi
2602
2603 if test "${HAVE_GIF}" = "yes"; then
12d9c91d 2604 AC_DEFINE(HAVE_GIF, 1, [Define to 1 if you have a gif library (default -lgif; otherwise specify with LIBGIF).])
bfa6fb7e
JD
2605 fi
2606fi
2607
2608dnl Check for required libraries.
2609if test "${HAVE_X11}" = "yes"; then
2610 MISSING=""
2611 WITH_NO=""
2612 test "${with_xpm}" != "no" && test "${HAVE_XPM}" != "yes" &&
2613 MISSING="libXpm" && WITH_NO="--with-xpm=no"
2614 test "${with_jpeg}" != "no" && test "${HAVE_JPEG}" != "yes" &&
2615 MISSING="$MISSING libjpeg" && WITH_NO="$WITH_NO --with-jpeg=no"
2616 test "${with_png}" != "no" && test "${HAVE_PNG}" != "yes" &&
2617 MISSING="$MISSING libpng" && WITH_NO="$WITH_NO --with-png=no"
2618 test "${with_gif}" != "no" && test "${HAVE_GIF}" != "yes" &&
2619 MISSING="$MISSING libgif/libungif" && WITH_NO="$WITH_NO --with-gif=no"
2620 test "${with_tiff}" != "no" && test "${HAVE_TIFF}" != "yes" &&
2621 MISSING="$MISSING libtiff" && WITH_NO="$WITH_NO --with-tiff=no"
2622
2623 if test "X${MISSING}" != X; then
3d20d6aa 2624 AC_MSG_ERROR([The following required libraries were not found:
bfa6fb7e 2625 $MISSING
1ee86f21 2626Maybe some development libraries/packages are missing?
bfa6fb7e
JD
2627If you don't want to link with them give
2628 $WITH_NO
2629as options to configure])
620fdfdf
RS
2630 fi
2631fi
2632
79011b82
NR
2633### Use -lgpm if available, unless `--with-gpm=no'.
2634HAVE_GPM=no
2635if test "${with_gpm}" != "no"; then
2636 AC_CHECK_HEADER(gpm.h,
28aa2c3e 2637 [AC_CHECK_LIB(gpm, Gpm_Open, HAVE_GPM=yes)])
79011b82
NR
2638fi
2639
2640if test "${HAVE_GPM}" = "yes"; then
2641 AC_DEFINE(HAVE_GPM, 1, [Define to 1 if you have the gpm library (-lgpm).])
2642fi
2643
cef11da2 2644dnl Check for malloc/malloc.h on darwin
28aa2c3e 2645AC_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 2646
de0a3247 2647### Use Mac OS X Carbon API to implement GUI.
e0f712ba 2648if test "${HAVE_CARBON}" = "yes"; then
e3ba1015 2649 AC_DEFINE(HAVE_CARBON, 1, [Define to 1 if you are using the Carbon API on Mac OS X.])
52cd7d02
ST
2650 ## Specify the install directory
2651 carbon_appdir=
2652 if test "${carbon_appdir_x}" != ""; then
2653 case ${carbon_appdir_x} in
2654 y | ye | yes) carbon_appdir=/Applications ;;
2655 * ) carbon_appdir=${carbon_appdir_x} ;;
2656 esac
2657 fi
12bf22e0
AS
2658 # We also have mouse menus.
2659 HAVE_MENUS=yes
e0f712ba
AC
2660fi
2661
f21fadcc
JD
2662### Use session management (-lSM -lICE) if available
2663HAVE_X_SM=no
2664if test "${HAVE_X11}" = "yes"; then
2665 AC_CHECK_HEADER(X11/SM/SMlib.h,
28aa2c3e 2666 [AC_CHECK_LIB(SM, SmcOpenConnection, HAVE_X_SM=yes, , -lICE)])
f21fadcc
JD
2667
2668 if test "${HAVE_X_SM}" = "yes"; then
5e7d772d 2669 AC_DEFINE(HAVE_X_SM, 1, [Define to 1 if you have the SM library (-lSM).])
f21fadcc
JD
2670 case "$LIBS" in
2671 *-lSM*) ;;
2672 *) LIBS="-lSM -lICE $LIBS" ;;
2673 esac
2674 fi
2675fi
177c0ea7 2676
9ec10b2f 2677# If netdb.h doesn't declare h_errno, we must declare it by hand.
fd0a060b
AS
2678AC_CACHE_CHECK(whether netdb declares h_errno,
2679 emacs_cv_netdb_declares_h_errno,
e9b2a022 2680[AC_TRY_LINK([#include <netdb.h>],
01345308 2681 [return h_errno;],
e9b2a022 2682 emacs_cv_netdb_declares_h_errno=yes, emacs_cv_netdb_declares_h_errno=no)])
fd0a060b 2683if test $emacs_cv_netdb_declares_h_errno = yes; then
5e7d772d 2684 AC_DEFINE(HAVE_H_ERRNO, 1, [Define to 1 if netdb.h declares h_errno.])
fd0a060b 2685fi
9ec10b2f 2686
6e0dc84a 2687AC_FUNC_ALLOCA
9ec10b2f 2688
4756ee42
GM
2689dnl src/alloca.c has been removed. Could also check if $ALLOCA is set?
2690dnl FIXME is there an autoconf test that does the right thing, without
2691dnl needing to call A_M_E afterwards?
2692if test x"$ac_cv_func_alloca_works" != xyes; then
2693 AC_MSG_ERROR( [a system implementation of alloca is required] )
2694fi
2695
f6e8adea 2696# fmod, logb, and frexp are found in -lm on most systems.
e468fb38 2697# On HPUX 9.01, -lm does not contain logb, so check for sqrt.
e6fd9047 2698AC_CHECK_LIB(m, sqrt)
e6fd9047 2699
4b121527
DL
2700# Check for mail-locking functions in a "mail" library. Probably this should
2701# have the same check as for liblockfile below.
5ad9ac92
DL
2702AC_CHECK_LIB(mail, maillock)
2703dnl Debian, at least:
5ad9ac92
DL
2704AC_CHECK_LIB(lockfile, maillock)
2705# If we have the shared liblockfile, assume we must use it for mail
2706# locking (e.g. Debian). If we couldn't link against liblockfile
2707# (no liblockfile.a installed), ensure that we don't need to.
2708if test "$ac_cv_lib_lockfile_maillock" = no; then
2709 dnl This works for files generally, not just executables.
2710 dnl Should we look elsewhere for it? Maybe examine /etc/ld.so.conf?
2711 AC_CHECK_PROG(liblockfile, liblockfile.so, yes, no,
2712 /usr/lib:/lib:/usr/local/lib:$LD_LIBRARY_PATH)
2713 if test $ac_cv_prog_liblockfile = yes; then
2714 AC_MSG_ERROR([Shared liblockfile found but can't link against it.
2715This probably means that movemail could lose mail.
91b5aa9a 2716There may be a `development' package to install containing liblockfile.])
5ad9ac92 2717 else :
4b121527 2718 fi
5ad9ac92
DL
2719fi
2720AC_CHECK_FUNCS(touchlock)
2721AC_CHECK_HEADERS(maillock.h)
4e4db900 2722
66abe596 2723AC_CHECK_FUNCS(gethostname getdomainname dup2 \
e1d954e4 2724rename closedir mkdir rmdir sysinfo getrusage get_current_dir_name \
555ffc3f 2725random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime setsid \
85ea1a28 2726strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \
12c0a8da 2727utimes setrlimit setpgid getcwd getwd shutdown getaddrinfo \
ec406751 2728__fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \
66abe596 2729sendto recvfrom getsockopt setsockopt getsockname getpeername \
72621b4e 2730gai_strerror mkstemp getline getdelim mremap memmove fsync sync bzero \
4489ece2 2731memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign)
38c44a91 2732
66abe596
KS
2733AC_CHECK_HEADERS(sys/un.h)
2734
38c44a91
DL
2735AC_FUNC_MKTIME
2736if test "$ac_cv_func_working_mktime" = no; then
5e7d772d 2737 AC_DEFINE(BROKEN_MKTIME, 1, [Define to 1 if the mktime function is broken.])
38c44a91
DL
2738fi
2739
1ca2077a
DL
2740AC_FUNC_GETLOADAVG
2741
64a04a42 2742AC_FUNC_FSEEKO
63c59d1e 2743
9eff9fe3
PE
2744# Configure getopt.
2745m4_include([m4/getopt.m4])
2746gl_GETOPT_IFELSE([
2747 gl_GETOPT_SUBSTITUTE_HEADER
2748 gl_PREREQ_GETOPT
2749 GETOPTOBJS='getopt.o getopt1.o'
2750])
2751AC_SUBST(GETOPTOBJS)
2752
71cc40d5
DL
2753AC_FUNC_GETPGRP
2754
12c0a8da
DL
2755AC_FUNC_STRFTIME
2756
64a04a42 2757# UNIX98 PTYs.
40ccc4c7
GM
2758AC_CHECK_FUNCS(grantpt)
2759
2760# PTY-related GNU extensions.
2761AC_CHECK_FUNCS(getpt)
2762
16831d8c
RS
2763# Check this now, so that we will NOT find the above functions in ncurses.
2764# That is because we have not set up to link ncurses in lib-src.
2765# It's better to believe a function is not available
2766# than to expect to find it in ncurses.
2767AC_CHECK_LIB(ncurses, tparm)
0c565a0a 2768
555ffc3f
CY
2769# Do we have res_init, for detecting changes in /etc/resolv.conf?
2770
2771resolv=no
c0a3f2a2
AS
2772AC_TRY_LINK([#include <netinet/in.h>
2773#include <arpa/nameser.h>
2774#include <resolv.h>],
2775 [return res_init();],
2776 have_res_init=yes, have_res_init=no)
555ffc3f
CY
2777if test "$have_res_init" = no; then
2778 OLIBS="$LIBS"
2779 LIBS="$LIBS -lresolv"
2780 AC_MSG_CHECKING(for res_init with -lresolv)
2781 AC_TRY_LINK([#include <netinet/in.h>
2782#include <arpa/nameser.h>
c0a3f2a2
AS
2783#include <resolv.h>],
2784 [return res_init();],
555ffc3f
CY
2785 have_res_init=yes, have_res_init=no)
2786 AC_MSG_RESULT($have_res_init)
2787 if test "$have_res_init" = yes ; then
2788 resolv=yes
2789 fi
2790 LIBS="$OLIBS"
2791fi
2792
2793if test "$have_res_init" = yes; then
2794 AC_DEFINE(HAVE_RES_INIT, 1, [Define to 1 if res_init is available.])
2795fi
2796
84e70f78
KR
2797# Do we need the Hesiod library to provide the support routines?
2798if test "$with_hesiod" = yes ; then
2799 # Don't set $LIBS here -- see comments above.
84e70f78
KR
2800 AC_CHECK_FUNC(res_send, , [AC_CHECK_FUNC(__res_send, ,
2801 [AC_CHECK_LIB(resolv, res_send, resolv=yes,
2802 [AC_CHECK_LIB(resolv, __res_send, resolv=yes)])])])
2803 if test "$resolv" = yes ; then
2804 RESOLVLIB=-lresolv
84e70f78
KR
2805 else
2806 RESOLVLIB=
2807 fi
2808 AC_CHECK_FUNC(hes_getmailhost, , [AC_CHECK_LIB(hesiod, hes_getmailhost,
28aa2c3e
AS
2809 [AC_DEFINE(HAVE_LIBHESIOD, 1,
2810 [Define to 1 if you have the hesiod library (-lhesiod).])],
5e7d772d 2811 :, $RESOLVLIB)])
84e70f78
KR
2812fi
2813
555ffc3f
CY
2814# Do we need libresolv (due to res_init or Hesiod)?
2815if test "$resolv" = yes ; then
2816 AC_DEFINE(HAVE_LIBRESOLV, 1,
2817 [Define to 1 if you have the resolv library (-lresolv).])
2818fi
2819
a21616bd
KR
2820# These tell us which Kerberos-related libraries to use.
2821if test "${with_kerberos+set}" = set; then
2822 AC_CHECK_LIB(com_err, com_err)
2823 AC_CHECK_LIB(k5crypto, mit_des_cbc_encrypt)
2824 AC_CHECK_LIB(crypto, mit_des_cbc_encrypt)
2825 AC_CHECK_LIB(krb5, krb5_init_context)
2826 if test "${with_kerberos5+set}" != set; then
2827 AC_CHECK_LIB(des425, des_cbc_encrypt,,
28aa2c3e 2828 [AC_CHECK_LIB(des, des_cbc_encrypt)])
a21616bd 2829 AC_CHECK_LIB(krb4, krb_get_cred,,
28aa2c3e 2830 [AC_CHECK_LIB(krb, krb_get_cred)])
a21616bd
KR
2831 fi
2832
2833 if test "${with_kerberos5+set}" = set; then
2834 AC_CHECK_HEADERS(krb5.h)
2835 else
2836 AC_CHECK_HEADERS(des.h,,
5a129faf
PE
2837 [AC_CHECK_HEADERS(kerberosIV/des.h,,
2838 [AC_CHECK_HEADERS(kerberos/des.h)])])
a21616bd 2839 AC_CHECK_HEADERS(krb.h,,
5a129faf
PE
2840 [AC_CHECK_HEADERS(kerberosIV/krb.h,,
2841 [AC_CHECK_HEADERS(kerberos/krb.h)])])
a21616bd
KR
2842 fi
2843 AC_CHECK_HEADERS(com_err.h)
2844fi
2845
c4510052
PE
2846# Solaris requires -lintl if you want strerror (which calls dgettext)
2847# to return localized messages.
2848AC_CHECK_LIB(intl, dgettext)
2849
0c565a0a
RS
2850AC_MSG_CHECKING(whether localtime caches TZ)
2851AC_CACHE_VAL(emacs_cv_localtime_cache,
fcc303f4 2852[if test x$ac_cv_func_tzset = xyes; then
0c565a0a 2853AC_TRY_RUN([#include <time.h>
22cc077c
RS
2854extern char **environ;
2855unset_TZ ()
2856{
2857 char **from, **to;
2858 for (to = from = environ; (*to = *from); from++)
2859 if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
2860 to++;
2861}
98ab445d
RS
2862char TZ_GMT0[] = "TZ=GMT0";
2863char TZ_PST8[] = "TZ=PST8";
0c565a0a
RS
2864main()
2865{
2866 time_t now = time ((time_t *) 0);
22cc077c 2867 int hour_GMT0, hour_unset;
98ab445d 2868 if (putenv (TZ_GMT0) != 0)
0c565a0a 2869 exit (1);
22cc077c
RS
2870 hour_GMT0 = localtime (&now)->tm_hour;
2871 unset_TZ ();
2872 hour_unset = localtime (&now)->tm_hour;
98ab445d 2873 if (putenv (TZ_PST8) != 0)
0c565a0a 2874 exit (1);
22cc077c
RS
2875 if (localtime (&now)->tm_hour == hour_GMT0)
2876 exit (1);
2877 unset_TZ ();
2878 if (localtime (&now)->tm_hour != hour_unset)
2879 exit (1);
2880 exit (0);
0c565a0a
RS
2881}], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
2882[# If we have tzset, assume the worst when cross-compiling.
2883emacs_cv_localtime_cache=yes])
2884else
2885 # If we lack tzset, report that localtime does not cache TZ,
2886 # since we can't invalidate the cache if we don't have tzset.
2887 emacs_cv_localtime_cache=no
2888fi])dnl
2889AC_MSG_RESULT($emacs_cv_localtime_cache)
2890if test $emacs_cv_localtime_cache = yes; then
5e7d772d
AS
2891 AC_DEFINE(LOCALTIME_CACHE, 1,
2892 [Define to 1 if localtime caches TZ.])
0c565a0a 2893fi
9ec10b2f 2894
3d68df05 2895if test "x$HAVE_TIMEVAL" = xyes; then
8a2c2328 2896 AC_CHECK_FUNCS(gettimeofday)
5e7d772d
AS
2897 if test $ac_cv_func_gettimeofday = yes; then
2898 AC_CACHE_CHECK(whether gettimeofday can accept two arguments,
2899 emacs_cv_gettimeofday_two_arguments,
2900 [AC_TRY_COMPILE([
5ab52d42
RS
2901#ifdef TIME_WITH_SYS_TIME
2902#include <sys/time.h>
2903#include <time.h>
2904#else
2905#ifdef HAVE_SYS_TIME_H
2906#include <sys/time.h>
2907#else
2908#include <time.h>
2909#endif
290c1191 2910#endif],
5e7d772d
AS
2911 [struct timeval time;
2912 gettimeofday (&time, 0);],
2913 emacs_cv_gettimeofday_two_arguments=yes,
2914 emacs_cv_gettimeofday_two_arguments=no)])
2915 if test $emacs_cv_gettimeofday_two_arguments = no; then
2916 AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT, 1,
2917 [Define to 1 if gettimeofday accepts only one argument.])
2918 fi
fd0a060b 2919 fi
5ab52d42
RS
2920fi
2921
9ec10b2f 2922ok_so_far=yes
6e0dc84a 2923AC_CHECK_FUNC(socket, , ok_so_far=no)
9ec10b2f 2924if test $ok_so_far = yes; then
6e0dc84a 2925 AC_CHECK_HEADER(netinet/in.h, , ok_so_far=no)
9ec10b2f
DM
2926fi
2927if test $ok_so_far = yes; then
6e0dc84a 2928 AC_CHECK_HEADER(arpa/inet.h, , ok_so_far=no)
9ec10b2f
DM
2929fi
2930if test $ok_so_far = yes; then
91b5aa9a 2931dnl Fixme: Not used. Should this be HAVE_SOCKETS?
5e7d772d
AS
2932 AC_DEFINE(HAVE_INET_SOCKETS, 1,
2933 [Define to 1 if you have inet sockets.])
9ec10b2f
DM
2934fi
2935
ce6e4c21 2936AC_CHECK_HEADERS(sys/ioctl.h)
2ba3faa3 2937
7bbbba31 2938if test -f /usr/lpp/X11/bin/smt.exp; then
5e7d772d
AS
2939 AC_DEFINE(HAVE_AIX_SMT_EXP, 1,
2940 [Define to 1 if the file /usr/lpp/X11/bin/smt.exp exists.])
7bbbba31
DM
2941fi
2942
27b07953
GM
2943AC_MSG_CHECKING(whether system supports dynamic ptys)
2944if test -d /dev/pts && ls -d /dev/ptmx > /dev/null 2>&1 ; then
2945 AC_MSG_RESULT(yes)
5e7d772d 2946 AC_DEFINE(HAVE_DEV_PTMX, 1, [Define to 1 if dynamic ptys are supported.])
27b07953
GM
2947else
2948 AC_MSG_RESULT(no)
2949fi
2950
5a129faf 2951AC_FUNC_FORK
79e12078 2952
fb33ec52
DL
2953dnl Adapted from Haible's version.
2954AC_CACHE_CHECK([for nl_langinfo and CODESET], emacs_cv_langinfo_codeset,
2955 [AC_TRY_LINK([#include <langinfo.h>],
2956 [char* cs = nl_langinfo(CODESET);],
2957 emacs_cv_langinfo_codeset=yes,
2958 emacs_cv_langinfo_codeset=no)
2959 ])
2960if test $emacs_cv_langinfo_codeset = yes; then
2961 AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
2962 [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
2963fi
2964
f3acf5be 2965AC_CHECK_TYPES(size_t)
8170f46b 2966
12c0a8da
DL
2967AC_TYPE_MBSTATE_T
2968
91b5aa9a
DL
2969dnl Restrict could probably be used effectively other than in regex.c.
2970AC_CACHE_CHECK([for C restrict keyword], emacs_cv_c_restrict,
2971 [AC_TRY_COMPILE([void fred (int *restrict x);], [],
2972 emacs_cv_c_restrict=yes,
2973 [AC_TRY_COMPILE([void fred (int *__restrict x);], [],
2974 emacs_cv_c_restrict=__restrict,
2975 emacs_cv_c_restrict=no)])])
2976case "$emacs_cv_c_restrict" in
2977 yes) emacs_restrict=restrict;;
2978 no) emacs_restrict="";;
2979 *) emacs_restrict="$emacs_cv_c_restrict";;
2980esac
2981if test "$emacs_restrict" != __restrict; then
2982 AC_DEFINE_UNQUOTED(__restrict, $emacs_restrict,
2983 [Define to compiler's equivalent of C99 restrict keyword.
2984 Don't define if equivalent is `__restrict'.])
2985fi
2986
2987AC_CACHE_CHECK([for C restricted array declarations], emacs_cv_c_restrict_arr,
2988 [AC_TRY_COMPILE([void fred (int x[__restrict]);], [],
2989 emacs_cv_c_restrict_arr=yes, emacs_cv_c_restrict_arr=no)])
2990if test "$emacs_cv_c_restrict_arr" = yes; then
2991 AC_DEFINE(__restrict_arr, __restrict,
2992 [Define to compiler's equivalent of C99 restrict keyword in array
2993 declarations. Define as empty for no equivalent.])
2994fi
2995
2996dnl Fixme: AC_SYS_POSIX_TERMIOS should probably be used, but it's not clear
2997dnl how the tty code is related to POSIX and/or other versions of termios.
4b121527
DL
2998dnl The following looks like a useful start.
2999dnl
3000dnl AC_SYS_POSIX_TERMIOS
3001dnl if test $ac_cv_sys_posix_termios = yes; then
f6214bb7 3002dnl AC_DEFINE(HAVE_TERMIOS, 1, [Define to 1 if you have POSIX-style functions
4b121527
DL
3003dnl and macros for terminal control.])
3004dnl AC_DEFINE(HAVE_TCATTR, 1, [Define to 1 if you have tcgetattr and tcsetattr.])
3005dnl fi
91b5aa9a
DL
3006
3007dnl Fixme: Use AC_FUNC_MEMCMP since memcmp is used. (Needs libobj replacement.)
3008
9ec10b2f
DM
3009# Set up the CFLAGS for real compilation, so we can substitute it.
3010CFLAGS="$REAL_CFLAGS"
5a9bf171 3011CPPFLAGS="$REAL_CPPFLAGS"
9ec10b2f 3012
9ec10b2f 3013#### Find out which version of Emacs this is.
91b5aa9a
DL
3014[version=`grep 'defconst[ ]*emacs-version' ${srcdir}/lisp/version.el \
3015 | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`]
9ec10b2f 3016if test x"${version}" = x; then
91b5aa9a 3017 AC_MSG_ERROR([can't find current emacs version in `${srcdir}/lisp/version.el'.])
9ec10b2f
DM
3018fi
3019
9ec10b2f
DM
3020### Specify what sort of things we'll be editing into Makefile and config.h.
3021### Use configuration here uncanonicalized to avoid exceeding size limits.
3022AC_SUBST(version)
3023AC_SUBST(configuration)
3cd69289 3024AC_SUBST(canonical)
9ec10b2f
DM
3025AC_SUBST(srcdir)
3026AC_SUBST(prefix)
3027AC_SUBST(exec_prefix)
3028AC_SUBST(bindir)
3029AC_SUBST(datadir)
3cd69289
DM
3030AC_SUBST(sharedstatedir)
3031AC_SUBST(libexecdir)
9ec10b2f
DM
3032AC_SUBST(mandir)
3033AC_SUBST(infodir)
3034AC_SUBST(lispdir)
3035AC_SUBST(locallisppath)
3036AC_SUBST(lisppath)
66d736a9 3037AC_SUBST(x_default_search_path)
9ec10b2f 3038AC_SUBST(etcdir)
9ec10b2f
DM
3039AC_SUBST(archlibdir)
3040AC_SUBST(docdir)
3cd69289 3041AC_SUBST(bitmapdir)
93c05c18
CW
3042AC_SUBST(gamedir)
3043AC_SUBST(gameuser)
9ec10b2f
DM
3044AC_SUBST(c_switch_system)
3045AC_SUBST(c_switch_machine)
3046AC_SUBST(LD_SWITCH_X_SITE)
3047AC_SUBST(LD_SWITCH_X_SITE_AUX)
3048AC_SUBST(C_SWITCH_X_SITE)
3049AC_SUBST(CFLAGS)
3050AC_SUBST(X_TOOLKIT_TYPE)
3051AC_SUBST(machfile)
3052AC_SUBST(opsysfile)
1ca2077a 3053AC_SUBST(GETLOADAVG_LIBS)
52cd7d02 3054AC_SUBST(carbon_appdir)
9ec10b2f 3055
5e7d772d
AS
3056AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "${canonical}",
3057 [Define to the canonical Emacs configuration name.])
3058AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}",
3059 [Define to the options passed to configure.])
3060AC_DEFINE_UNQUOTED(config_machfile, "${machfile}",
3061 [Define to the used machine dependent file.])
3062AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}",
3063 [Define to the used os dependent file.])
3064AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE},
3065[Define LD_SWITCH_X_SITE to contain any special flags your loader
3066 may need to deal with X Windows. For instance, if you've defined
3067 HAVE_X_WINDOWS above and your X libraries aren't in a place that
3068 your loader can find on its own, you might want to add "-L/..." or
3069 something similar.])
3070AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX},
3071 [Define LD_SWITCH_X_SITE_AUX with an -R option
3072 in case it's needed (for Solaris, for example).])
3073AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE, ${C_SWITCH_X_SITE},
3074[Define C_SWITCH_X_SITE to contain any special flags your compiler
3075 may need to deal with X Windows. For instance, if you've defined
3076 HAVE_X_WINDOWS above and your X include files aren't in a place
3077 that your compiler can find on its own, you might want to add
3078 "-I/..." or something similar.])
3079AC_DEFINE_UNQUOTED(UNEXEC_SRC, ${UNEXEC_SRC},
3080 [Define to the unexec source file name.])
9ec10b2f
DM
3081
3082if test "${HAVE_X_WINDOWS}" = "yes" ; then
5e7d772d
AS
3083 AC_DEFINE(HAVE_X_WINDOWS, 1,
3084 [Define to 1 if you want to use the X window system.])
9ec10b2f
DM
3085fi
3086if test "${USE_X_TOOLKIT}" != "none" ; then
5e7d772d 3087 AC_DEFINE(USE_X_TOOLKIT, 1, [Define to 1 if using an X toolkit.])
9ec10b2f
DM
3088fi
3089if test "${HAVE_X11}" = "yes" ; then
5e7d772d
AS
3090 AC_DEFINE(HAVE_X11, 1,
3091 [Define to 1 if you want to use version 11 of X windows.
3092 Otherwise, Emacs expects to use version 10.])
9ec10b2f
DM
3093fi
3094if test "${HAVE_XFREE386}" = "yes" ; then
5e7d772d 3095 AC_DEFINE(HAVE_XFREE386, 1, [Define to 1 if you're using XFree386.])
9ec10b2f 3096fi
08741ba9 3097if test "${HAVE_MENUS}" = "yes" ; then
5e7d772d
AS
3098 AC_DEFINE(HAVE_MENUS, 1,
3099 [Define to 1 if you have mouse menus.
3100 (This is automatic if you use X, but the option to specify it remains.)
3101 It is also defined with other window systems that support xmenu.c.])
9ec10b2f
DM
3102fi
3103if test "${GNU_MALLOC}" = "yes" ; then
5e7d772d
AS
3104 AC_DEFINE(GNU_MALLOC, 1,
3105 [Define to 1 if you want to use the GNU memory allocator.])
9ec10b2f
DM
3106fi
3107if test "${REL_ALLOC}" = "yes" ; then
5e7d772d
AS
3108 AC_DEFINE(REL_ALLOC, 1,
3109 [Define REL_ALLOC if you want to use the relocating allocator for
3110 buffer space.])
9ec10b2f 3111fi
9ec10b2f 3112
bfa6fb7e 3113
f3acf5be 3114AH_TOP([/* GNU Emacs site configuration template file.
4e6835db 3115 Copyright (C) 1988, 1993, 1994, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007
be5472bd 3116 Free Software Foundation, Inc.
5e7d772d
AS
3117
3118This file is part of GNU Emacs.
3119
3120GNU Emacs is free software; you can redistribute it and/or modify
3121it under the terms of the GNU General Public License as published by
fca4a5de 3122the Free Software Foundation; either version 3, or (at your option)
5e7d772d
AS
3123any later version.
3124
3125GNU Emacs is distributed in the hope that it will be useful,
3126but WITHOUT ANY WARRANTY; without even the implied warranty of
3127MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3128GNU General Public License for more details.
3129
3130You should have received a copy of the GNU General Public License
3131along with GNU Emacs; see the file COPYING. If not, write to the
086add15
LK
3132Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
3133Boston, MA 02110-1301, USA. */
5e7d772d
AS
3134
3135
91b5aa9a 3136/* No code in Emacs #includes config.h twice, but some bits of code
177c0ea7 3137 intended to work with other packages as well (like gmalloc.c)
5e7d772d
AS
3138 think they can include it as many times as they like. */
3139#ifndef EMACS_CONFIG_H
3140#define EMACS_CONFIG_H
3141])dnl
3142
3143AH_BOTTOM([
3144/* If we're using any sort of window system, define some consequences. */
3145#ifdef HAVE_X_WINDOWS
3146#define HAVE_WINDOW_SYSTEM
3147#define MULTI_KBOARD
3148#define HAVE_MOUSE
3149#endif
3150
89ce934d
GM
3151/* Multi-tty support relies on MULTI_KBOARD. It seems safe to turn it
3152 on unconditionally. Note that src/s/darwin.h disables this at
3153 present. */
3154#ifndef MULTI_KBOARD
3155#define MULTI_KBOARD
3156#endif
3157
e3ba1015
AC
3158/* If we're using the Carbon API on Mac OS X, define a few more
3159 variables as well. */
3160#ifdef HAVE_CARBON
3161#define HAVE_WINDOW_SYSTEM
3162#define HAVE_MOUSE
e3ba1015
AC
3163#endif
3164
5e7d772d
AS
3165/* Define USER_FULL_NAME to return a string
3166 that is the user's full name.
3167 It can assume that the variable `pw'
3168 points to the password file entry for this user.
3169
3170 At some sites, the pw_gecos field contains
3171 the user's full name. If neither this nor any other
3172 field contains the right thing, use pw_name,
3173 giving the user's login name, since that is better than nothing. */
3174#define USER_FULL_NAME pw->pw_gecos
3175
3176/* Define AMPERSAND_FULL_NAME if you use the convention
3177 that & in the full name stands for the login id. */
3178/* Turned on June 1996 supposing nobody will mind it. */
3179#define AMPERSAND_FULL_NAME
3180
1c3a8acf
DL
3181/* We have blockinput.h. */
3182#define DO_BLOCK_INPUT
3183
5e7d772d
AS
3184/* Define HAVE_SOUND if we have sound support. We know it works
3185 and compiles only on the specified platforms. For others,
3186 it probably doesn't make sense to try. */
3187
3188#if defined __FreeBSD__ || defined __NetBSD__ || defined __linux__
3189#ifdef HAVE_MACHINE_SOUNDCARD_H
3190#define HAVE_SOUND 1
3191#endif
3192#ifdef HAVE_SYS_SOUNDCARD_H
3193#define HAVE_SOUND 1
3194#endif
3195#ifdef HAVE_SOUNDCARD_H
3196#define HAVE_SOUND 1
3197#endif
2eec8691
JD
3198#ifdef HAVE_ALSA
3199#define HAVE_SOUND 1
3200#endif
5e7d772d
AS
3201#endif /* __FreeBSD__ || __NetBSD__ || __linux__ */
3202
3203/* If using GNU, then support inline function declarations. */
3204/* Don't try to switch on inline handling as detected by AC_C_INLINE
3205 generally, because even if non-gcc compilers accept `inline', they
3206 may reject `extern inline'. */
be5472bd 3207#if defined (__GNUC__) && defined (OPTIMIZE)
5e7d772d
AS
3208#define INLINE __inline__
3209#else
3210#define INLINE
3211#endif
3212
3213/* Include the os and machine dependent files. */
3214#include config_opsysfile
3215#include config_machfile
3216
3217/* Load in the conversion definitions if this system
3218 needs them and the source file being compiled has not
3219 said to inhibit this. There should be no need for you
3220 to alter these lines. */
3221
3222#ifdef SHORTNAMES
3223#ifndef NO_SHORTNAMES
3224#include "../shortnames/remap.h"
3225#endif /* not NO_SHORTNAMES */
3226#endif /* SHORTNAMES */
3227
3228/* If no remapping takes place, static variables cannot be dumped as
3229 pure, so don't worry about the `static' keyword. */
3230#ifdef NO_REMAP
3231#undef static
3232#endif
3233
3234/* Define `subprocesses' should be defined if you want to
3235 have code for asynchronous subprocesses
3236 (as used in M-x compile and M-x shell).
3237 These do not work for some USG systems yet;
3238 for the ones where they work, the s/SYSTEM.h file defines this flag. */
3239
3240#ifndef VMS
3241#ifndef USG
3242/* #define subprocesses */
3243#endif
3244#endif
3245
3246/* SIGTYPE is the macro we actually use. */
3247#ifndef SIGTYPE
3248#define SIGTYPE RETSIGTYPE
3249#endif
3250
3251#ifdef emacs /* Don't do this for lib-src. */
3252/* Tell regex.c to use a type compatible with Emacs. */
3253#define RE_TRANSLATE_TYPE Lisp_Object
3254#define RE_TRANSLATE(TBL, C) CHAR_TABLE_TRANSLATE (TBL, C)
be5472bd
SM
3255#ifdef make_number
3256/* If make_number is a macro, use it. */
3257#define RE_TRANSLATE_P(TBL) (!EQ (TBL, make_number (0)))
3258#else
3259/* If make_number is a function, avoid it. */
3260#define RE_TRANSLATE_P(TBL) (!(INTEGERP (TBL) && XINT (TBL) == 0))
3261#endif
5e7d772d
AS
3262#endif
3263
3264/* Avoid link-time collision with system mktime if we will use our own. */
3265#if ! HAVE_MKTIME || BROKEN_MKTIME
3266#define mktime emacs_mktime
3267#endif
3268
1c3a8acf
DL
3269#define my_strftime nstrftime /* for strftime.c */
3270
5e7d772d
AS
3271/* The rest of the code currently tests the CPP symbol BSTRING.
3272 Override any claims made by the system-description files.
3273 Note that on some SCO version it is possible to have bcopy and not bcmp. */
3274#undef BSTRING
3275#if defined (HAVE_BCOPY) && defined (HAVE_BCMP)
3276#define BSTRING
3277#endif
3278
3279/* Some of the files of Emacs which are intended for use with other
3280 programs assume that if you have a config.h file, you must declare
3281 the type of getenv.
3282
3283 This declaration shouldn't appear when alloca.s or Makefile.in
3284 includes config.h. */
3285#ifndef NOT_C_CODE
3286extern char *getenv ();
3287#endif
3288
5e7d772d
AS
3289/* These default definitions are good for almost all machines.
3290 The exceptions override them in m/MACHINE.h. */
3291
3292#ifndef BITS_PER_CHAR
3293#define BITS_PER_CHAR 8
3294#endif
3295
3296#ifndef BITS_PER_SHORT
3297#define BITS_PER_SHORT 16
3298#endif
3299
3300/* Note that lisp.h uses this in a preprocessor conditional, so it
3301 would not work to use sizeof. That being so, we do all of them
3302 without sizeof, for uniformity's sake. */
3303#ifndef BITS_PER_INT
3304#define BITS_PER_INT 32
3305#endif
3306
3307#ifndef BITS_PER_LONG
3308#ifdef _LP64
3309#define BITS_PER_LONG 64
3310#else
3311#define BITS_PER_LONG 32
3312#endif
3313#endif
3314
3315/* Define if the compiler supports function prototypes. It may do so
3316 but not define __STDC__ (e.g. DEC C by default) or may define it as
3317 zero. */
3318#undef PROTOTYPES
3319/* For mktime.c: */
3320#ifndef __P
3321# if defined PROTOTYPES
3322# define __P(args) args
3323# else
3324# define __P(args) ()
3325# endif /* GCC. */
3326#endif /* __P */
3327
5e7d772d
AS
3328/* Don't include "string.h" or <stdlib.h> in non-C code. */
3329#ifndef NOT_C_CODE
3330#ifdef HAVE_STRING_H
3331#include "string.h"
3332#endif
f3acf5be
DL
3333#ifdef HAVE_STRINGS_H
3334#include "strings.h" /* May be needed for bcopy & al. */
3335#endif
5e7d772d
AS
3336#ifdef HAVE_STDLIB_H
3337#include <stdlib.h>
3338#endif
91b5aa9a
DL
3339#ifndef __GNUC__
3340# ifdef HAVE_ALLOCA_H
3341# include <alloca.h>
3342# else /* AIX files deal with #pragma. */
3343# ifndef alloca /* predefined by HP cc +Olibcalls */
3344char *alloca ();
3345# endif
3346# endif /* HAVE_ALLOCA_H */
3347#endif /* __GNUC__ */
17b3d9f6 3348#ifndef HAVE_SIZE_T
f968418d 3349typedef unsigned size_t;
17b3d9f6 3350#endif
91b5aa9a 3351#endif /* NOT_C_CODE */
5e7d772d
AS
3352
3353/* Define HAVE_X_I18N if we have usable i18n support. */
3354
3355#ifdef HAVE_X11R6
3356#define HAVE_X_I18N
e818a450 3357#elif !defined X11R5_INHIBIT_I18N
5e7d772d
AS
3358#define HAVE_X_I18N
3359#endif
3360
3361/* Define HAVE_X11R6_XIM if we have usable X11R6-style XIM support. */
3362
3363#if defined HAVE_X11R6 && !defined INHIBIT_X11R6_XIM
3364#define HAVE_X11R6_XIM
3365#endif
3366
3367/* Should we enable expensive run-time checking of data types? */
3368#undef ENABLE_CHECKING
3369
3370#if defined __GNUC__ && (__GNUC__ > 2 \
3371 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5))
3372#define NO_RETURN __attribute__ ((__noreturn__))
3373#else
3374#define NO_RETURN /* nothing */
3375#endif
f3acf5be 3376
91b5aa9a
DL
3377/* These won't be used automatically yet. We also need to know, at least,
3378 that the stack is continuous. */
3379#ifdef __GNUC__
3380# ifndef GC_SETJMP_WORKS
3381 /* GC_SETJMP_WORKS is nearly always appropriate for GCC --
177c0ea7 3382 see NON_SAVING_SETJMP in the target descriptions. */
91b5aa9a
DL
3383 /* Exceptions (see NON_SAVING_SETJMP in target description) are ns32k,
3384 SCO5 non-ELF (but Emacs specifies ELF) and SVR3 on x86.
3385 Fixme: Deal with ns32k, SVR3. */
3386# define GC_SETJMP_WORKS 1
3387# endif
3388# ifndef GC_LISP_OBJECT_ALIGNMENT
3389# define GC_LISP_OBJECT_ALIGNMENT (__alignof__ (Lisp_Object))
3390# endif
3391#endif
3392
efd60266
JB
3393#ifndef HAVE_BCOPY
3394#define bcopy(a,b,s) memcpy (b,a,s)
3395#endif
3396#ifndef HAVE_BZERO
3397#define bzero(a,s) memset (a,0,s)
3398#endif
3399#ifndef HAVE_BCMP
3400#define BCMP memcmp
3401#endif
91b5aa9a
DL
3402
3403#endif /* EMACS_CONFIG_H */
3404
177c0ea7 3405/*
91b5aa9a 3406Local Variables:
f3acf5be
DL
3407mode: c
3408End:
3409*/
5e7d772d 3410])dnl
f0f2756d 3411
9ec10b2f 3412#### Report on what we decided to do.
488dd4c4
JD
3413#### Report GTK as a toolkit, even if it doesn't use Xt.
3414#### It makes printing result more understandable as using GTK sets
3415#### toolkit_scroll_bars to yes by default.
3416if test "${HAVE_GTK}" = "yes"; then
3417 USE_X_TOOLKIT=GTK
3418fi
3419
9ec10b2f 3420echo "
9ec10b2f
DM
3421Configured for \`${canonical}'.
3422
3423 Where should the build process find the source code? ${srcdir}
3424 What operating system and machine description files should Emacs use?
3425 \`${opsysfile}' and \`${machfile}'
3426 What compiler should emacs be built with? ${CC} ${CFLAGS}
3427 Should Emacs use the GNU version of malloc? ${GNU_MALLOC}${GNU_MALLOC_reason}
b1b4ce06 3428 Should Emacs use a relocating allocator for buffers? ${REL_ALLOC}
e32fac2a 3429 Should Emacs use mmap(2) for buffer allocation? $use_mmap_for_buffers
9ec10b2f 3430 What window system should Emacs use? ${window_system}
dc16594b 3431 What toolkit should Emacs use? ${USE_X_TOOLKIT}"
509fccc3
RS
3432
3433if test -n "${x_includes}"; then
3434echo " Where do we find X Windows header files? ${x_includes}"
3435else
3436echo " Where do we find X Windows header files? Standard dirs"
3437fi
3438if test -n "${x_libraries}"; then
3439echo " Where do we find X Windows libraries? ${x_libraries}"
3440else
3441echo " Where do we find X Windows libraries? Standard dirs"
3442fi
9ec10b2f 3443
b412189c
GM
3444echo " Does Emacs use -lXaw3d? ${HAVE_XAW3D}"
3445echo " Does Emacs use -lXpm? ${HAVE_XPM}"
3446echo " Does Emacs use -ljpeg? ${HAVE_JPEG}"
495ccc04 3447echo " Does Emacs use -ltiff? ${HAVE_TIFF}"
47d1e061 3448echo " Does Emacs use a gif library? ${HAVE_GIF} $ac_gif_lib_name"
b412189c 3449echo " Does Emacs use -lpng? ${HAVE_PNG}"
96f574f0 3450echo " Does Emacs use -lrsvg-2? ${HAVE_RSVG}"
79011b82 3451echo " Does Emacs use -lgpm? ${HAVE_GPM}"
20c1822e 3452echo " Does Emacs use X toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}"
509fccc3 3453echo
9ec10b2f 3454
d0098f13
JD
3455if test $USE_XASSERTS = yes; then
3456 echo " Compiling with asserts turned on."
d0098f13
JD
3457 CPPFLAGS="$CPPFLAGS -DXASSERTS=1"
3458 echo
3459fi
05cf15c6 3460
adfd1e39
JD
3461if test "$USE_X_TOOLKIT" = GTK; then
3462 case "$canonical" in
3463 *cygwin*)
3464 echo "There are known problems with Emacs and Gtk+ on cygwin, so you
3465 will probably get a crash on startup. If this happens, please use another
3466 toolkit for Emacs. See etc/PROBLEMS for more information."
3467 ;;
3468 esac
3469fi
3470
05cf15c6 3471
f0e04acc
GM
3472if test "$HAVE_CARBON" = "yes"; then
3473 echo
3474 echo "Warning: The Mac Carbon port is currently unsupported and has
3475known problems. It is not recommended for use by non-developers.
3476Read the emacs-devel archives for more information."
3477 echo
3478fi
3479
05cf15c6 3480
9ec10b2f 3481# Remove any trailing slashes in these variables.
91b5aa9a 3482[test "${prefix}" != NONE &&
9ec10b2f
DM
3483 prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
3484test "${exec_prefix}" != NONE &&
91b5aa9a 3485 exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`]
9ec10b2f 3486
3aa40e0e
GM
3487## Check if the C preprocessor will convert `..' to `. .'. If so, set
3488## CPP_NEED_TRADITIONAL to `yes' so that the code to generate Makefile
3489## from Makefile.c can correctly provide the arg `-traditional' to the
3490## C preprocessor.
3491
3492AC_EGREP_CPP(yes..yes,
3493 [yes..yes],
3494 CPP_NEED_TRADITIONAL=no,
3495 CPP_NEED_TRADITIONAL=yes)
3496
5f8c8f00 3497AC_OUTPUT(Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile \
62b1c28f
GM
3498 doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \
3499 doc/lispref/Makefile src/Makefile.c:src/Makefile.in \
3500 lwlib/Makefile lisp/Makefile leim/Makefile, [
7bbbba31 3501
b63df577 3502### Make the necessary directories, if they don't exist.
e0a3686b 3503for dir in etc lisp ; do
b3947967 3504 test -d ${dir} || mkdir ${dir}
9ec10b2f
DM
3505done
3506
5f8c8f00
RS
3507# Build src/Makefile from ${srcdir}/src/Makefile.c
3508# and lib-src/Makefile from ${srcdir}/lib-src/Makefile.c
3509# This must be done after src/config.h is built, since we rely on that file.
9ec10b2f 3510
9ec10b2f
DM
3511# Now get this: Some word that is part of the ${srcdir} directory name
3512# or the ${configuration} value might, just might, happen to be an
3513# identifier like `sun4' or `i386' or something, and be predefined by
3514# the C preprocessor to some helpful value like 1, or maybe the empty
3515# string. Needless to say consequent macro substitutions are less
3516# than conducive to the makefile finding the correct directory.
91b5aa9a 3517[undefs="`echo $top_srcdir $configuration $canonical |
9ec10b2f
DM
3518sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/ *$//' \
3519 -e 's/ */ -U/g' -e 's/-U[0-9][^ ]*//g' \
91b5aa9a 3520`"]
9ec10b2f 3521
6a4bb05d 3522echo creating src/epaths.h
f8f7ab54 3523${MAKE-make} epaths-force
ab85d355 3524
c776f30b
GM
3525# As of 2000-11-19, newest development versions of GNU cpp preprocess
3526# `..' to `. .' unless invoked with -traditional
3527
3aa40e0e 3528if test "x$GCC" = xyes && test "x$CPP_NEED_TRADITIONAL" = xyes; then
c776f30b
GM
3529 CPPFLAGS="$CPPFLAGS -traditional"
3530fi
3531
9ec10b2f
DM
3532echo creating lib-src/Makefile
3533( cd lib-src
3534 rm -f junk.c junk1.c junk2.c
3535 sed -e '/start of cpp stuff/q' \
5f8c8f00 3536 < Makefile.c > junk1.c
9ec10b2f 3537 sed -e '1,/start of cpp stuff/d'\
3b74127d 3538 -e 's,/\*\*/#\(.*\)$,/* \1 */,' \
5f8c8f00 3539 < Makefile.c > junk.c
e9b2a022 3540 $CPP $undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
9ec10b2f
DM
3541 sed -e 's/^ / /' -e '/^#/d' -e '/^[ \f]*$/d' > junk2.c
3542 cat junk1.c junk2.c > Makefile.new
3543 rm -f junk.c junk1.c junk2.c
3544 chmod 444 Makefile.new
3545 mv -f Makefile.new Makefile
3546)
3547
3548echo creating src/Makefile
3549( cd src
3550 rm -f junk.c junk1.c junk2.c
3551 sed -e '/start of cpp stuff/q' \
5f8c8f00 3552 < Makefile.c > junk1.c
9ec10b2f 3553 sed -e '1,/start of cpp stuff/d'\
3b74127d 3554 -e 's,/\*\*/#\(.*\)$,/* \1 */,' \
5f8c8f00 3555 < Makefile.c > junk.c
e9b2a022 3556 $CPP $undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
9ec10b2f
DM
3557 sed -e 's/^ / /' -e '/^#/d' -e '/^[ \f]*$/d' > junk2.c
3558 cat junk1.c junk2.c > Makefile.new
3559 rm -f junk.c junk1.c junk2.c
3560 chmod 444 Makefile.new
3561 mv -f Makefile.new Makefile
3562)
8b66759a 3563
e9b2a022 3564if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then
8b66759a 3565 echo creating src/.gdbinit
e9b2a022 3566 echo source $srcdir/src/.gdbinit > src/.gdbinit
8b66759a
DM
3567fi
3568
66a96cff
RS
3569# This is how we know whether to re-run configure in certain cases.
3570touch src/config.stamp
3571
3aa40e0e 3572], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPP_NEED_TRADITIONAL="$CPP_NEED_TRADITIONAL" CPPFLAGS="$CPPFLAGS"])
464c7d2d 3573
ab5796a9
MB
3574m4_if(dnl Do not change this comment
3575 arch-tag: 156a4dd5-bddc-4d18-96ac-f37742cf6a5e
3576)dnl