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