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