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