]> code.delx.au - gnu-emacs/blob - configure.in
(alpha-dec-osf*): Specify GCC_TEST_OPTIONS and NON_GCC_TEST_OPTIONS.
[gnu-emacs] / configure.in
1 dnl Autoconf script for GNU Emacs
2 dnl To rebuild the `configure' script from this, execute the command
3 dnl autoconf
4 dnl in the directory containing this script.
5 dnl
6 dnl Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
7 dnl
8 dnl This file is part of GNU Emacs.
9 dnl
10 dnl GNU Emacs is free software; you can redistribute it and/or modify
11 dnl it under the terms of the GNU General Public License as published by
12 dnl the Free Software Foundation; either version 2, or (at your option)
13 dnl any later version.
14 dnl
15 dnl GNU Emacs is distributed in the hope that it will be useful,
16 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
17 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 dnl GNU General Public License for more details.
19 dnl
20 dnl You should have received a copy of the GNU General Public License
21 dnl along with GNU Emacs; see the file COPYING. If not, write to the
22 dnl Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 dnl Boston, MA 02111-1307, USA.
24
25 AC_PREREQ(2.8)dnl
26 AC_INIT(src/lisp.h)
27 AC_CONFIG_HEADER(src/config.h:src/config.in)
28
29 lispdir='${datadir}/emacs/${version}/lisp'
30 locallisppath='${datadir}/emacs/${version}/site-lisp:'\
31 '${datadir}/emacs/site-lisp'
32 lisppath='${locallisppath}:${lispdir}'
33 etcdir='${datadir}/emacs/${version}/etc'
34 lockdir='${sharedstatedir}/emacs/lock'
35 archlibdir='${libexecdir}/emacs/${version}/${configuration}'
36 docdir='${datadir}/emacs/${version}/etc'
37
38 AC_ARG_WITH(gcc,
39 [ --with-gcc use GCC to compile Emacs])
40 AC_ARG_WITH(pop,
41 [ --with-pop support POP for mail retrieval],
42 [AC_DEFINE(MAIL_USE_POP)])
43 AC_ARG_WITH(kerberos,
44 [ --with-kerberos support Kerberos-authenticated POP],
45 [AC_DEFINE(KERBEROS)])
46 AC_ARG_WITH(hesiod,
47 [ --with-hesiod support Hesiod to get the POP server host],
48 [AC_DEFINE(HESIOD)])
49 dnl This should be the last --with option, because --with-x is
50 dnl added later on when we find the path of X, and it's best to
51 dnl keep them together visually.
52 AC_ARG_WITH(x-toolkit,
53 [ --with-x-toolkit=KIT use an X toolkit (KIT = yes/lucid/athena/motif/no)],
54 [ case "${withval}" in
55 y | ye | yes ) val=athena ;;
56 n | no ) val=no ;;
57 l | lu | luc | luci | lucid ) val=lucid ;;
58 a | at | ath | athe | athen | athena ) val=athena ;;
59 m | mo | mot | moti | motif ) val=motif ;;
60 dnl These don't currently work.
61 dnl o | op | ope | open | open- | open-l | open-lo \
62 dnl | open-loo | open-look ) val=open-look ;;
63 * )
64 dnl AC_MSG_ERROR([the \`--with-x-toolkit' option is supposed to have a value
65 dnl which is \`yes', \`no', \`lucid', \`athena', \`motif' or \`open-look'.])
66 AC_MSG_ERROR([\`--with-x-toolkit=$withval' is invalid\;
67 this option's value should be \`yes', \`no', \`lucid', \`athena', or \`motif'.
68 Currently, \`yes', \`athena' and \`lucid' are synonyms.])
69 ;;
70 esac
71 with_x_toolkit=$val
72 ])
73
74 #### Make srcdir absolute, if it isn't already. It's important to
75 #### avoid running the path through pwd unnecessary, since pwd can
76 #### give you automounter prefixes, which can go away. We do all this
77 #### so Emacs can find its files when run uninstalled.
78 case "${srcdir}" in
79 /* ) ;;
80 . )
81 ## We may be able to use the $PWD environment variable to make this
82 ## absolute. But sometimes PWD is inaccurate.
83 ## Make sure CDPATH doesn't affect cd (in case PWD is relative).
84 CDPATH=
85 if test "${PWD}" != "" && test "`(cd ${PWD} ; sh -c pwd)`" = "`pwd`" ;
86 then
87 srcdir="$PWD"
88 else
89 srcdir="`(cd ${srcdir}; pwd)`"
90 fi
91 ;;
92 * ) srcdir="`(cd ${srcdir}; pwd)`" ;;
93 esac
94
95 #### Check if the source directory already has a configured system in it.
96 if test `pwd` != `(cd ${srcdir} && pwd)` \
97 && test -f "${srcdir}/src/config.h" ; then
98 AC_MSG_WARN([The directory tree \`${srcdir}' is being used
99 as a build directory right now; it has been configured in its own
100 right. To configure in another directory as well, you MUST
101 use GNU make. If you do not have GNU make, then you must
102 now do \`make distclean' in ${srcdir},
103 and then run $0 again.])
104
105 changequote(, )dnl
106 extrasub='/^VPATH[ ]*=/c\
107 changequote([, ])dnl
108 vpath %.c $(srcdir)\
109 vpath %.h $(srcdir)\
110 vpath %.y $(srcdir)\
111 vpath %.l $(srcdir)\
112 vpath %.s $(srcdir)\
113 vpath %.in $(srcdir)\
114 vpath %.texi $(srcdir)'
115 fi
116
117 #### Given the configuration name, set machfile and opsysfile to the
118 #### names of the m/*.h and s/*.h files we should use.
119
120 ### Canonicalize the configuration name.
121
122 AC_CANONICAL_HOST
123 canonical=$host
124 configuration=$host_alias
125
126 changequote(, )dnl
127
128 ### If you add support for a new configuration, add code to this
129 ### switch statement to recognize your configuration name and select
130 ### the appropriate operating system and machine description files.
131
132 ### You would hope that you could choose an m/*.h file pretty much
133 ### based on the machine portion of the configuration name, and an s-
134 ### file based on the operating system portion. However, it turns out
135 ### that each m/*.h file is pretty manufacturer-specific - for
136 ### example, apollo.h, hp9000s300.h, mega68k, news.h, and tad68k are
137 ### all 68000 machines; mips.h, pmax.h, and news-risc are all MIPS
138 ### machines. So we basically have to have a special case for each
139 ### configuration name.
140 ###
141 ### As far as handling version numbers on operating systems is
142 ### concerned, make sure things will fail in a fixable way. If
143 ### /etc/MACHINES doesn't say anything about version numbers, be
144 ### prepared to handle anything reasonably. If version numbers
145 ### matter, be sure /etc/MACHINES says something about it.
146 ###
147 ### Eric Raymond says we should accept strings like "sysvr4" to mean
148 ### "System V Release 4"; he writes, "The old convention encouraged
149 ### confusion between `system' and `release' levels'."
150
151 machine='' opsys='' unported=no
152 case "${canonical}" in
153
154 ## NetBSD ports
155 *-*-netbsd* )
156 opsys=netbsd
157 case "${canonical}" in
158 i[3456]86-*-netbsd*) machine=intel386 ;;
159 m68k-*-netbsd*)
160 # This is somewhat bogus.
161 machine=hp9000s300 ;;
162 mips-*-netbsd*) machine=pmax ;;
163 ns32k-*-netbsd*) machine=ns32000 ;;
164 sparc-*-netbsd*) machine=sparc ;;
165 esac
166 ;;
167
168 ## Acorn RISCiX:
169 arm-acorn-riscix1.1* )
170 machine=acorn opsys=riscix1-1
171 ;;
172 arm-acorn-riscix1.2* | arm-acorn-riscix )
173 machine=acorn opsys=riscix1-2
174 ;;
175
176 ## Alliant machines
177 ## Strictly speaking, we need the version of the alliant operating
178 ## system to choose the right machine file, but currently the
179 ## configuration name doesn't tell us enough to choose the right
180 ## one; we need to give alliants their own operating system name to
181 ## do this right. When someone cares, they can help us.
182 fx80-alliant-* )
183 machine=alliant4 opsys=bsd4-2
184 ;;
185 i860-alliant-* )
186 machine=alliant-2800 opsys=bsd4-3
187 ;;
188
189 ## Alpha (DEC) machines.
190 alpha-dec-osf* )
191 machine=alpha opsys=osf1
192 # This is needed to find X11R6.1 libraries for certain tests.
193 NON_GCC_TEST_OPTIONS=-Wl,-rpath,/usr/X11R6/lib
194 GCC_TEST_OPTIONS=-Wl,-rpath,/usr/X11R6/lib
195 ;;
196
197 alpha-*-linux-gnu* )
198 machine=alpha opsys=gnu-linux
199 ;;
200
201 ## Altos 3068
202 m68*-altos-sysv* )
203 machine=altos opsys=usg5-2
204 ;;
205
206 ## Amdahl UTS
207 580-amdahl-sysv* )
208 machine=amdahl opsys=usg5-2-2
209 ;;
210
211 ## Apollo, Domain/OS
212 m68*-apollo-* )
213 machine=apollo opsys=bsd4-3
214 ;;
215
216 ## AT&T 3b2, 3b5, 3b15, 3b20
217 we32k-att-sysv* )
218 machine=att3b opsys=usg5-2-2
219 ;;
220
221 ## AT&T 3b1 - The Mighty Unix PC!
222 m68*-att-sysv* )
223 machine=7300 opsys=usg5-2-2
224 ;;
225
226 ## Bull dpx20
227 rs6000-bull-bosx* )
228 machine=ibmrs6000 opsys=aix3-2
229 ;;
230
231 ## Bull dpx2
232 m68*-bull-sysv3* )
233 machine=dpx2 opsys=usg5-3
234 ;;
235
236 ## Bull sps7
237 m68*-bull-sysv2* )
238 machine=sps7 opsys=usg5-2
239 ;;
240
241 ## CCI 5/32, 6/32 -- see "Tahoe".
242
243 ## Celerity
244 ## I don't know what configuration name to use for this; config.sub
245 ## doesn't seem to know anything about it. Hey, Celerity users, get
246 ## in touch with us!
247 celerity-celerity-bsd* )
248 machine=celerity opsys=bsd4-2
249 ;;
250
251 ## Clipper
252 ## What operating systems does this chip run that Emacs has been
253 ## tested on?
254 clipper-* )
255 machine=clipper
256 ## We'll use the catch-all code at the bottom to guess the
257 ## operating system.
258 ;;
259
260 ## Convex
261 *-convex-bsd* | *-convex-convexos* )
262 machine=convex opsys=bsd4-3
263 ## Prevents spurious white space in makefiles - d.m.cooke@larc.nasa.gov
264 NON_GNU_CPP="cc -E -P"
265 ;;
266
267 ## Cubix QBx/386
268 i[3456]86-cubix-sysv* )
269 machine=intel386 opsys=usg5-3
270 ;;
271
272 ## Cydra 5
273 cydra*-cydrome-sysv* )
274 machine=cydra5 opsys=usg5-3
275 ;;
276
277 ## Data General AViiON Machines
278 m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* )
279 machine=aviion opsys=dgux5-4r3
280 ;;
281 m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* )
282 machine=aviion opsys=dgux5-4r2
283 ;;
284 m88k-dg-dgux* )
285 machine=aviion opsys=dgux
286 ;;
287
288 ## DECstations
289 mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0* | mips-dec-bsd4.2* )
290 machine=pmax opsys=bsd4-2
291 ;;
292 mips-dec-ultrix4.[12]* | mips-dec-bsd* )
293 machine=pmax opsys=bsd4-3
294 ;;
295 mips-dec-ultrix* )
296 machine=pmax opsys=ultrix4-3
297 ;;
298 mips-dec-osf* )
299 machine=pmax opsys=osf1
300 ;;
301 mips-dec-mach_bsd4.3* )
302 machine=pmax opsys=mach-bsd4-3
303 ;;
304
305 ## Motorola Delta machines
306 m68k-motorola-sysv* | m68000-motorola-sysv* )
307 machine=delta opsys=usg5-3
308 if test -z "`type gnucc | grep 'not found'`"
309 then
310 if test -s /etc/167config
311 then CC="gnucc -m68040"
312 else CC="gnucc -m68881"
313 fi
314 else
315 if test -z "`type gcc | grep 'not found'`"
316 then CC=gcc
317 else CC=cc
318 fi
319 fi
320 ;;
321 m88k-motorola-sysv4* )
322 # jbotte@bnr.ca says that UNIX_System_V <hostName> 4.0 R40V4.3 m88k mc88110
323 # needs POSIX_SIGNALS and therefore needs usg5-4-2.
324 # I hope there are not other 4.0 versions for this machine
325 # which really need usg5-4 instead.
326 machine=delta88k opsys=usg5-4-2
327 ;;
328 m88k-motorola-sysv* | m88k-motorola-m88kbcs* )
329 machine=delta88k opsys=usg5-3
330 ;;
331
332 ## Dual machines
333 m68*-dual-sysv* )
334 machine=dual opsys=usg5-2
335 ;;
336 m68*-dual-uniplus* )
337 machine=dual opsys=unipl5-2
338 ;;
339
340 ## Elxsi 6400
341 elxsi-elxsi-sysv* )
342 machine=elxsi opsys=usg5-2
343 ;;
344
345 ## Encore machines
346 ns16k-encore-bsd* )
347 machine=ns16000 opsys=umax
348 ;;
349
350 ## The GEC 93 - apparently, this port isn't really finished yet.
351
352 ## Gould Power Node and NP1
353 pn-gould-bsd4.2* )
354 machine=gould opsys=bsd4-2
355 ;;
356 pn-gould-bsd4.3* )
357 machine=gould opsys=bsd4-3
358 ;;
359 np1-gould-bsd* )
360 machine=gould-np1 opsys=bsd4-3
361 ;;
362
363 ## Harris Night Hawk machines running CX/UX (a 5000 looks just like a 4000
364 ## as far as Emacs is concerned).
365 m88k-harris-cxux* )
366 # Build needs to be different on 7.0 and later releases
367 case "`uname -r`" in
368 [56].[0-9] ) machine=nh4000 opsys=cxux ;;
369 [7].[0-9] ) machine=nh4000 opsys=cxux7 ;;
370 esac
371 NON_GNU_CPP="/lib/cpp"
372 ;;
373 ## Harris ecx or gcx running CX/UX (Series 1200, Series 3000)
374 m68k-harris-cxux* )
375 machine=nh3000 opsys=cxux
376 ;;
377 ## Harris power pc NightHawk running Power UNIX (Series 6000)
378 powerpc-harris-powerunix )
379 machine=nh6000 opsys=powerunix
380 NON_GNU_CPP="cc -Xo -E -P"
381 ;;
382
383 ## Honeywell XPS100
384 xps*-honeywell-sysv* )
385 machine=xps100 opsys=usg5-2
386 ;;
387
388 ## HP 9000 series 200 or 300
389 m68*-hp-bsd* )
390 machine=hp9000s300 opsys=bsd4-3
391 ;;
392 ## HP/UX 7, 8, 9, and 10 are supported on these machines.
393 m68*-hp-hpux* )
394 case "`uname -r`" in
395 ## Someone's system reports A.B8.05 for this.
396 ## I wonder what other possibilities there are.
397 *.B8.* ) machine=hp9000s300 opsys=hpux8 ;;
398 *.08.* ) machine=hp9000s300 opsys=hpux8 ;;
399 *.09.* ) machine=hp9000s300 opsys=hpux9 ;;
400 *.10.* ) machine=hp9000s300 opsys=hpux9shr ;;
401 *) machine=hp9000s300 opsys=hpux ;;
402 esac
403 ;;
404
405 ## HP 9000 series 700 and 800, running HP/UX
406 hppa*-hp-hpux7* )
407 machine=hp800 opsys=hpux
408 ;;
409 hppa*-hp-hpux8* )
410 machine=hp800 opsys=hpux8
411 ;;
412 hppa*-hp-hpux9shr* )
413 machine=hp800 opsys=hpux9shr
414 ;;
415 hppa*-hp-hpux9* )
416 machine=hp800 opsys=hpux9
417 ;;
418 hppa*-hp-hpux10* )
419 machine=hp800 opsys=hpux10
420 ;;
421
422 ## HP 9000 series 700 and 800, running HP/UX
423 hppa*-hp-hpux* )
424 ## Cross-compilation? Nah!
425 case "`uname -r`" in
426 ## Someone's system reports A.B8.05 for this.
427 ## I wonder what other possibilities there are.
428 *.B8.* ) machine=hp800 opsys=hpux8 ;;
429 *.08.* ) machine=hp800 opsys=hpux8 ;;
430 *.09.* ) machine=hp800 opsys=hpux9 ;;
431 *) machine=hp800 opsys=hpux ;;
432 esac
433 ;;
434 hppa-*-nextstep* )
435 machine=hp800 opsys=nextstep
436 ;;
437
438 ## Orion machines
439 orion-orion-bsd* )
440 machine=orion opsys=bsd4-2
441 ;;
442 clipper-orion-bsd* )
443 machine=orion105 opsys=bsd4-2
444 ;;
445
446 ## IBM machines
447 i[3456]86-ibm-aix1.1* )
448 machine=ibmps2-aix opsys=usg5-2-2
449 ;;
450 i[3456]86-ibm-aix1.[23]* | i[3456]86-ibm-aix* )
451 machine=ibmps2-aix opsys=usg5-3
452 ;;
453 i370-ibm-aix*)
454 machine=ibm370aix opsys=usg5-3
455 ;;
456 rs6000-ibm-aix3.1* | powerpc-ibm-aix3.1* )
457 machine=ibmrs6000 opsys=aix3-1
458 ;;
459 rs6000-ibm-aix3.2.5 | powerpc-ibm-aix3.2.5 )
460 machine=ibmrs6000 opsys=aix3-2-5
461 ;;
462 rs6000-ibm-aix4.1* | powerpc-ibm-aix4.1* )
463 machine=ibmrs6000 opsys=aix4-1
464 ;;
465 rs6000-ibm-aix4* | powerpc-ibm-aix4* )
466 machine=ibmrs6000 opsys=aix4
467 ;;
468 rs6000-ibm-aix* | powerpc-ibm-aix* )
469 machine=ibmrs6000 opsys=aix3-2
470 ;;
471 romp-ibm-bsd4.3* )
472 machine=ibmrt opsys=bsd4-3
473 ;;
474 romp-ibm-bsd4.2* )
475 machine=ibmrt opsys=bsd4-2
476 ;;
477 romp-ibm-aos4.3* )
478 machine=ibmrt opsys=bsd4-3
479 ;;
480 romp-ibm-aos4.2* )
481 machine=ibmrt opsys=bsd4-2
482 ;;
483 romp-ibm-aos* )
484 machine=ibmrt opsys=bsd4-3
485 ;;
486 romp-ibm-bsd* )
487 machine=ibmrt opsys=bsd4-3
488 ;;
489 romp-ibm-aix* )
490 machine=ibmrt-aix opsys=usg5-2-2
491 ;;
492
493 ## Integrated Solutions `Optimum V'
494 m68*-isi-bsd4.2* )
495 machine=isi-ov opsys=bsd4-2
496 ;;
497 m68*-isi-bsd4.3* )
498 machine=isi-ov opsys=bsd4-3
499 ;;
500
501 ## Intel 386 machines where we do care about the manufacturer
502 i[3456]86-intsys-sysv* )
503 machine=is386 opsys=usg5-2-2
504 ;;
505
506 ## Prime EXL
507 i[3456]86-prime-sysv* )
508 machine=i386 opsys=usg5-3
509 ;;
510
511 ## Sequent Symmetry running Dynix
512 i[3456]86-sequent-bsd* )
513 machine=symmetry opsys=bsd4-3
514 ;;
515
516 ## Sequent Symmetry running DYNIX/ptx
517 ## Use the old cpp rather than the newer ANSI one.
518 i[3456]86-sequent-ptx* )
519 machine=sequent-ptx opsys=ptx
520 NON_GNU_CPP="/lib/cpp"
521 ;;
522
523 ## ncr machine running svr4.3.
524 i[3456]86-ncr-sysv4.3 )
525 machine=ncr386 opsys=usg5-4-3
526 ;;
527
528 ## Unspecified sysv on an ncr machine defaults to svr4.2.
529 ## (Plain usg5-4 doesn't turn on POSIX signals, which we need.)
530 i[3456]86-ncr-sysv* )
531 machine=ncr386 opsys=usg5-4-2
532 ;;
533
534 ## Intel Paragon OSF/1
535 i860-intel-osf1* )
536 machine=paragon opsys=osf1 NON_GNU_CPP=/usr/mach/lib/cpp
537 ;;
538
539 ## Intel 860
540 i860-*-sysv4* )
541 machine=i860 opsys=usg5-4
542 NON_GNU_CC="/bin/cc" # Ie, not the one in /usr/ucb/cc.
543 NON_GNU_CPP="/usr/ccs/lib/cpp" # cc -E tokenizes macro expansion.
544 ;;
545
546 ## Masscomp machines
547 m68*-masscomp-rtu* )
548 machine=masscomp opsys=rtu
549 ;;
550
551 ## Megatest machines
552 m68*-megatest-bsd* )
553 machine=mega68 opsys=bsd4-2
554 ;;
555
556 ## Workstations sold by MIPS
557 ## This is not necessarily all workstations using the MIPS processor -
558 ## Irises are produced by SGI, and DECstations by DEC.
559
560 ## etc/MACHINES lists mips.h and mips4.h as possible machine files,
561 ## and usg5-2-2 and bsd4-3 as possible OS files. The only guidance
562 ## it gives for choosing between the alternatives seems to be "Use
563 ## -machine=mips4 for RISCOS version 4; use -opsystem=bsd4-3 with
564 ## the BSD world." I'll assume that these are instructions for
565 ## handling two odd situations, and that every other situation
566 ## should use mips.h and usg5-2-2, they being listed first.
567 mips-mips-usg* )
568 machine=mips4
569 ## Fall through to the general code at the bottom to decide on the OS.
570 ;;
571 mips-mips-riscos4* )
572 machine=mips4 opsys=bsd4-3
573 NON_GNU_CC="cc -systype bsd43"
574 NON_GNU_CPP="cc -systype bsd43 -E"
575 ;;
576 mips-mips-riscos5* )
577 machine=mips4 opsys=riscos5
578 NON_GNU_CC="cc -systype bsd43"
579 NON_GNU_CPP="cc -systype bsd43 -E"
580 ;;
581 mips-mips-bsd* )
582 machine=mips opsys=bsd4-3
583 ;;
584 mips-mips-* )
585 machine=mips opsys=usg5-2-2
586 ;;
587
588 ## NeXT
589 m68*-next-* | m68k-*-nextstep* )
590 machine=m68k opsys=nextstep
591 ;;
592
593 ## The complete machine from National Semiconductor
594 ns32k-ns-genix* )
595 machine=ns32000 opsys=usg5-2
596 ;;
597
598 ## NCR machines
599 m68*-ncr-sysv2* | m68*-ncr-sysvr2* )
600 machine=tower32 opsys=usg5-2-2
601 ;;
602 m68*-ncr-sysv3* | m68*-ncr-sysvr3* )
603 machine=tower32v3 opsys=usg5-3
604 ;;
605
606 ## Nixdorf Targon 31
607 m68*-nixdorf-sysv* )
608 machine=targon31 opsys=usg5-2-2
609 ;;
610
611 ## Nu (TI or LMI)
612 m68*-nu-sysv* )
613 machine=nu opsys=usg5-2
614 ;;
615
616 ## Plexus
617 m68*-plexus-sysv* )
618 machine=plexus opsys=usg5-2
619 ;;
620
621 ## Pyramid machines
622 ## I don't really have any idea what sort of processor the Pyramid has,
623 ## so I'm assuming it is its own architecture.
624 pyramid-pyramid-bsd* )
625 machine=pyramid opsys=bsd4-2
626 ;;
627
628 ## Sequent Balance
629 ns32k-sequent-bsd4.2* )
630 machine=sequent opsys=bsd4-2
631 ;;
632 ns32k-sequent-bsd4.3* )
633 machine=sequent opsys=bsd4-3
634 ;;
635
636 ## Siemens Nixdorf
637 mips-siemens-sysv* | mips-sni-sysv*)
638 machine=mips-siemens opsys=usg5-4
639 NON_GNU_CC=/usr/ccs/bin/cc
640 NON_GNU_CPP=/usr/ccs/lib/cpp
641 ;;
642
643 ## Silicon Graphics machines
644 ## Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
645 m68*-sgi-iris3.5* )
646 machine=irist opsys=iris3-5
647 ;;
648 m68*-sgi-iris3.6* | m68*-sgi-iris*)
649 machine=irist opsys=iris3-6
650 ;;
651 ## Iris 4D
652 mips-sgi-irix3* )
653 machine=iris4d opsys=irix3-3
654 ;;
655 mips-sgi-irix4* )
656 machine=iris4d opsys=irix4-0
657 ;;
658 mips-sgi-irix6* )
659 machine=iris4d opsys=irix6-0
660 NON_GNU_CPP=/lib/cpp
661 NON_GCC_TEST_OPTIONS=-32
662 ;;
663 mips-sgi-irix5.[01]* )
664 machine=iris4d opsys=irix5-0
665 ;;
666 mips-sgi-irix5* | mips-sgi-irix* )
667 machine=iris4d opsys=irix5-2
668 ;;
669
670 ## SONY machines
671 m68*-sony-bsd4.2* )
672 machine=news opsys=bsd4-2
673 ;;
674 m68*-sony-bsd4.3* )
675 machine=news opsys=bsd4-3
676 ;;
677 m68*-sony-newsos3* | m68*-sony-news3*)
678 machine=news opsys=bsd4-3
679 ;;
680 mips-sony-bsd* | mips-sony-newsos4* | mips-sony-news4*)
681 machine=news-risc opsys=bsd4-3
682 ;;
683 mips-sony-news* )
684 machine=news-risc opsys=newsos5
685 ;;
686
687 ## Stride
688 m68*-stride-sysv* )
689 machine=stride opsys=usg5-2
690 ;;
691
692 ## Suns
693 sparc-*-linux-gnu* )
694 machine=sparc opsys=gnu-linux
695 ;;
696
697 *-sun-sunos* | *-sun-bsd* | *-sun-solaris* \
698 | i[3456]86-*-solaris2* | i[3456]86-*-sunos5* | powerpc*-*-solaris2* \
699 | rs6000-*-solaris2*)
700 case "${canonical}" in
701 m68*-sunos1* ) machine=sun1 ;;
702 m68*-sunos2* ) machine=sun2 ;;
703 m68* ) machine=sun3 ;;
704 i[3456]86-sun-sunos[34]* ) machine=sun386 ;;
705 i[3456]86-*-* ) machine=intel386 ;;
706 powerpc* | rs6000* ) machine=ibmrs6000 ;;
707 sparc* ) machine=sparc ;;
708 * ) unported=yes ;;
709 esac
710 case "${canonical}" in
711 ## The Sun386 didn't get past 4.0.
712 i[3456]86-*-sunos4 ) opsys=sunos4-0 ;;
713 *-sunos4.0* ) opsys=sunos4-0 ;;
714 *-sunos4.1.[3-9]*noshare )
715 opsys=sunos4-1-3
716 NON_GNU_CPP=/usr/lib/cpp
717 NON_GCC_TEST_OPTIONS=-Bstatic
718 GCC_TEST_OPTIONS=-static
719 ;;
720 *-sunos4.1.[3-9]* | *-sunos4shr*)
721 opsys=sunos4shr
722 NON_GNU_CPP=/usr/lib/cpp
723 ;;
724 *-sunos4* | *-sunos )
725 opsys=sunos4-1
726 NON_GCC_TEST_OPTIONS=-Bstatic
727 GCC_TEST_OPTIONS=-static
728 ;;
729 *-sunos5.3* | *-solaris2.3* )
730 opsys=sol2-3
731 NON_GNU_CPP=/usr/ccs/lib/cpp
732 ;;
733 *-sunos5.4* | *-solaris2.4* )
734 opsys=sol2-4
735 NON_GNU_CPP=/usr/ccs/lib/cpp
736 RANLIB="ar -ts"
737 ;;
738 *-sunos5.5* | *-solaris2.5* )
739 opsys=sol2-5
740 NON_GNU_CPP=/usr/ccs/lib/cpp
741 RANLIB="ar -ts"
742 ;;
743 *-sunos5* | *-solaris* )
744 opsys=sol2-4
745 NON_GNU_CPP=/usr/ccs/lib/cpp
746 ;;
747 * ) opsys=bsd4-2 ;;
748 esac
749 ## Watch out for a compiler that we know will not work.
750 case "${canonical}" in
751 *-solaris* | *-sunos5* )
752 if [ "x$CC" = x/usr/ucb/cc ]; then
753 ## /usr/ucb/cc doesn't work;
754 ## we should find some other compiler that does work.
755 unset CC
756 fi
757 ;;
758 *) ;;
759 esac
760 ;;
761 sparc-*-nextstep* )
762 machine=sparc opsys=nextstep
763 ;;
764
765 ## Tadpole 68k
766 m68*-tadpole-sysv* )
767 machine=tad68k opsys=usg5-3
768 ;;
769
770 ## Tahoe machines
771 tahoe-tahoe-bsd4.2* )
772 machine=tahoe opsys=bsd4-2
773 ;;
774 tahoe-tahoe-bsd4.3* )
775 machine=tahoe opsys=bsd4-3
776 ;;
777
778 ## Tandem Integrity S2
779 mips-tandem-sysv* )
780 machine=tandem-s2 opsys=usg5-3
781 ;;
782
783 ## Tektronix XD88
784 m88k-tektronix-sysv3* )
785 machine=tekxd88 opsys=usg5-3
786 ;;
787
788 ## Tektronix 16000 box (6130?)
789 ns16k-tektronix-bsd* )
790 machine=ns16000 opsys=bsd4-2
791 ;;
792 ## Tektronix 4300
793 ## src/m/tek4300.h hints that this is a m68k machine.
794 m68*-tektronix-bsd* )
795 machine=tek4300 opsys=bsd4-3
796 ;;
797
798 ## Titan P2 or P3
799 ## We seem to have lost the machine-description file titan.h!
800 titan-titan-sysv* )
801 machine=titan opsys=usg5-3
802 ;;
803
804 ## Ustation E30 (SS5E)
805 m68*-unisys-uniplus* )
806 machine=ustation opsystem=unipl5-2
807 ;;
808
809 ## Vaxen.
810 vax-dec-* )
811 machine=vax
812 case "${canonical}" in
813 *-bsd4.1* ) opsys=bsd4-1 ;;
814 *-bsd4.2* | *-ultrix[0-3].* | *-ultrix4.0* ) opsys=bsd4-2 ;;
815 *-bsd4.3* | *-ultrix* ) opsys=bsd4-3 ;;
816 *-sysv[01]* | *-sysvr[01]* ) opsys=usg5-0 ;;
817 *-sysv2* | *-sysvr2* ) opsys=usg5-2 ;;
818 *-vms* ) opsys=vms ;;
819 * ) unported=yes
820 esac
821 ;;
822
823 ## Whitechapel MG1
824 ns16k-whitechapel-* )
825 machine=mg1
826 ## We don't know what sort of OS runs on these; we'll let the
827 ## operating system guessing code below try.
828 ;;
829
830 ## Wicat
831 m68*-wicat-sysv* )
832 machine=wicat opsys=usg5-2
833 ;;
834
835 ## Intel 386 machines where we don't care about the manufacturer
836 i[3456]86-*-* )
837 machine=intel386
838 case "${canonical}" in
839 *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;;
840 *-isc2.2* ) opsys=isc2-2 ;;
841 *-isc4.0* ) opsys=isc4-0 ;;
842 *-isc4.* ) opsys=isc4-1
843 GCC_TEST_OPTIONS=-posix
844 NON_GCC_TEST_OPTIONS=-Xp
845 ;;
846 *-isc* ) opsys=isc3-0 ;;
847 *-esix5* ) opsys=esix5r4; NON_GNU_CPP=/usr/lib/cpp ;;
848 *-esix* ) opsys=esix ;;
849 *-xenix* ) opsys=xenix ;;
850 *-linux-gnu* ) opsys=gnu-linux ;;
851 *-sco3.2v4* ) opsys=sco4 ; NON_GNU_CPP=/lib/cpp ;;
852 *-sco3.2v5* ) opsys=sco5
853 NON_GNU_CPP=/lib/cpp
854 # Prevent -belf from being passed to $CPP.
855 # /lib/cpp does not accept it.
856 OVERRIDE_CPPFLAGS=" "
857 ;;
858 *-bsd386* | *-bsdi1* ) opsys=bsd386 ;;
859 *-bsdi2.0* ) opsys=bsdos2 ;;
860 *-bsdi2* ) opsys=bsdos2-1 ;;
861 *-386bsd* ) opsys=386bsd ;;
862 *-freebsd* ) opsys=freebsd ;;
863 *-nextstep* ) opsys=nextstep ;;
864 ## Otherwise, we'll fall through to the generic opsys code at the bottom.
865 esac
866 ;;
867
868 ## Linux/68k-based GNU system
869 m68k-*-linux-gnu* )
870 machine=m68k opsys=gnu-linux
871 ;;
872
873 * )
874 unported=yes
875 ;;
876 esac
877
878 ### If the code above didn't choose an operating system, just choose
879 ### an operating system based on the configuration name. You really
880 ### only want to use this when you have no idea what the right
881 ### operating system is; if you know what operating systems a machine
882 ### runs, it's cleaner to make it explicit in the case statement
883 ### above.
884 if test x"${opsys}" = x; then
885 case "${canonical}" in
886 *-gnu* ) opsys=gnu ;;
887 *-bsd4.[01] ) opsys=bsd4-1 ;;
888 *-bsd4.2 ) opsys=bsd4-2 ;;
889 *-bsd4.3 ) opsys=bsd4-3 ;;
890 *-sysv0 | *-sysvr0 ) opsys=usg5-0 ;;
891 *-sysv2 | *-sysvr2 ) opsys=usg5-2 ;;
892 *-sysv2.2 | *-sysvr2.2 ) opsys=usg5-2-2 ;;
893 *-sysv3* | *-sysvr3* ) opsys=usg5-3 ;;
894 *-sysv4.1* | *-sysvr4.1* )
895 NON_GNU_CPP=/usr/lib/cpp
896 opsys=usg5-4 ;;
897 *-sysv4.[2-9]* | *-sysvr4.[2-9]* )
898 if [ x$NON_GNU_CPP = x ]; then
899 if [ -f /usr/ccs/lib/cpp ]; then
900 NON_GNU_CPP=/usr/ccs/lib/cpp
901 else
902 NON_GNU_CPP=/lib/cpp
903 fi
904 fi
905 opsys=usg5-4-2 ;;
906 *-sysv4* | *-sysvr4* ) opsys=usg5-4 ;;
907 * )
908 unported=yes
909 ;;
910 esac
911 fi
912
913 if test "x$RANLIB" = x; then
914 RANLIB=ranlib
915 fi
916
917 changequote([, ])dnl
918
919 if test $unported = yes; then
920 AC_MSG_ERROR([Emacs hasn't been ported to \`${canonical}' systems.
921 Check \`etc/MACHINES' for recognized configuration names.])
922 fi
923
924 machfile="m/${machine}.h"
925 opsysfile="s/${opsys}.h"
926
927
928 #### Choose a compiler.
929 test -n "$CC" && cc_specified=yes
930
931 # Save the value of CFLAGS that the user specified.
932 SPECIFIED_CFLAGS="$CFLAGS"
933
934 case ${with_gcc} in
935 "yes" ) CC="gcc" GCC=yes ;;
936 "no" ) : ${CC=cc} ;;
937 * ) AC_PROG_CC
938 esac
939
940 # On Suns, sometimes $CPP names a directory.
941 if test -n "$CPP" && test -d "$CPP"; then
942 CPP=
943 fi
944
945 #### Some systems specify a CPP to use unless we are using GCC.
946 #### Now that we know whether we are using GCC, we can decide whether
947 #### to use that one.
948 if test "x$NON_GNU_CPP" != x && test x$GCC != xyes && test "x$CPP" = x
949 then
950 CPP="$NON_GNU_CPP"
951 fi
952
953 #### Some systems specify a CC to use unless we are using GCC.
954 #### Now that we know whether we are using GCC, we can decide whether
955 #### to use that one.
956 if test "x$NON_GNU_CC" != x && test x$GCC != xyes &&
957 test x$cc_specified != xyes
958 then
959 CC="$NON_GNU_CC"
960 fi
961
962 if test x$GCC = xyes && test "x$GCC_TEST_OPTIONS" != x
963 then
964 CC="$CC $GCC_TEST_OPTIONS"
965 fi
966
967 if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x
968 then
969 CC="$CC $NON_GCC_TEST_OPTIONS"
970 fi
971
972 #### Some other nice autoconf tests. If you add a test here which
973 #### should make an entry in src/config.h, don't forget to add an
974 #### #undef clause to src/config.h.in for autoconf to modify.
975
976 dnl checks for programs
977 AC_PROG_LN_S
978 AC_PROG_CPP
979 AC_PROG_INSTALL
980 AC_PROG_YACC
981
982 dnl checks for Unix variants
983 AC_AIX
984
985 dnl checks for header files
986 AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h linux/version.h)
987 AC_HEADER_STDC
988 AC_HEADER_TIME
989 AC_DECL_SYS_SIGLIST
990
991 dnl Some systems have utime.h but don't declare the struct anyplace.
992 AC_MSG_CHECKING(for struct utimbuf)
993 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
994 #include <sys/time.h>
995 #include <time.h>
996 #else
997 #ifdef HAVE_SYS_TIME_H
998 #include <sys/time.h>
999 #else
1000 #include <time.h>
1001 #endif
1002 #endif
1003 #ifdef HAVE_UTIME_H
1004 #include <utime.h>
1005 #endif], [static struct utimbuf x; x.actime = x.modtime;],
1006 [AC_MSG_RESULT(yes)
1007 AC_DEFINE(HAVE_STRUCT_UTIMBUF)],
1008 AC_MSG_RESULT(no))
1009
1010 dnl checks for typedefs
1011 AC_TYPE_SIGNAL
1012
1013 AC_MSG_CHECKING(for struct timeval)
1014 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
1015 #include <sys/time.h>
1016 #include <time.h>
1017 #else
1018 #ifdef HAVE_SYS_TIME_H
1019 #include <sys/time.h>
1020 #else
1021 #include <time.h>
1022 #endif
1023 #endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
1024 [AC_MSG_RESULT(yes)
1025 HAVE_TIMEVAL=yes
1026 AC_DEFINE(HAVE_TIMEVAL)],
1027 [AC_MSG_RESULT(no)
1028 HAVE_TIMEVAL=no])
1029
1030 dnl checks for structure members
1031 AC_STRUCT_TM
1032 AC_STRUCT_TIMEZONE
1033
1034 dnl checks for compiler characteristics
1035 AC_C_CONST
1036
1037 dnl check for Make feature
1038 AC_PROG_MAKE_SET
1039
1040 dnl checks for operating system services
1041 AC_SYS_LONG_FILE_NAMES
1042
1043 #### Choose a window system.
1044
1045 AC_PATH_X
1046 if test "$no_x" = yes; then
1047 window_system=none
1048 else
1049 window_system=x11
1050 fi
1051
1052 if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
1053 LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
1054 LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
1055 fi
1056 if test "${x_includes}" != NONE && test -n "${x_includes}"; then
1057 C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"`
1058 fi
1059
1060 if test x"${x_includes}" = x; then
1061 bitmapdir=/usr/include/X11/bitmaps
1062 else
1063 # accumulate include directories that have X11 bitmap subdirectories
1064 bmd_acc="dummyval"
1065 for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do
1066 if test -d "${bmd}/X11/bitmaps"; then
1067 bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps"
1068 elif test -d "${bmd}/bitmaps"; then
1069 bmd_acc="${bmd_acc}:${bmd}/bitmaps"
1070 fi
1071 done
1072 if test ${bmd_acc} != "dummyval"; then
1073 bitmapdir=`echo ${bmd_acc} | sed -e "s/^dummyval://"`
1074 fi
1075 fi
1076
1077 case "${window_system}" in
1078 x11 )
1079 HAVE_X_WINDOWS=yes
1080 HAVE_X11=yes
1081 case "${with_x_toolkit}" in
1082 athena | lucid ) USE_X_TOOLKIT=LUCID ;;
1083 motif ) USE_X_TOOLKIT=MOTIF ;;
1084 dnl open-look ) USE_X_TOOLKIT=OPEN_LOOK ;;
1085 no ) USE_X_TOOLKIT=none ;;
1086 dnl If user did not say whether to use a toolkit,
1087 dnl make this decision later: use the toolkit if we have X11R5 or newer.
1088 * ) USE_X_TOOLKIT=maybe ;;
1089 esac
1090 ;;
1091 none )
1092 HAVE_X_WINDOWS=no
1093 HAVE_X11=no
1094 USE_X_TOOLKIT=none
1095 ;;
1096 esac
1097
1098 ### If we're using X11, we should use the X menu package.
1099 HAVE_MENUS=no
1100 case ${HAVE_X11} in
1101 yes ) HAVE_MENUS=yes ;;
1102 esac
1103
1104 if test "${opsys}" = "hpux9"; then
1105 case "${x_libraries}" in
1106 *X11R4* )
1107 opsysfile="s/hpux9-x11r4.h"
1108 ;;
1109 esac
1110 fi
1111
1112 if test "${opsys}" = "hpux9shr"; then
1113 case "${x_libraries}" in
1114 *X11R4* )
1115 opsysfile="s/hpux9shxr4.h"
1116 ;;
1117 esac
1118 fi
1119
1120 #### Extract some information from the operating system and machine files.
1121
1122 AC_CHECKING([the machine- and system-dependent files to find out
1123 - which libraries the lib-src programs will want, and
1124 - whether the GNU malloc routines are usable])
1125
1126 ### First figure out CFLAGS (which we use for running the compiler here)
1127 ### and REAL_CFLAGS (which we use for real compilation).
1128 ### The two are the same except on a few systems, where they are made
1129 ### different to work around various lossages. For example,
1130 ### GCC 2.5 on GNU/Linux needs them to be different because it treats -g
1131 ### as implying static linking.
1132
1133 ### If the CFLAGS env var is specified, we use that value
1134 ### instead of the default.
1135
1136 ### It's not important that this name contain the PID; you can't run
1137 ### two configures in the same directory and have anything work
1138 ### anyway.
1139 tempcname="conftest.c"
1140
1141 echo '
1142 #include "'${srcdir}'/src/'${opsysfile}'"
1143 #include "'${srcdir}'/src/'${machfile}'"
1144 #ifndef LIBS_MACHINE
1145 #define LIBS_MACHINE
1146 #endif
1147 #ifndef LIBS_SYSTEM
1148 #define LIBS_SYSTEM
1149 #endif
1150 #ifndef C_SWITCH_SYSTEM
1151 #define C_SWITCH_SYSTEM
1152 #endif
1153 #ifndef C_SWITCH_MACHINE
1154 #define C_SWITCH_MACHINE
1155 #endif
1156 configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
1157 configure___ c_switch_system=C_SWITCH_SYSTEM
1158 configure___ c_switch_machine=C_SWITCH_MACHINE
1159
1160 #ifndef LIB_X11_LIB
1161 #define LIB_X11_LIB -lX11
1162 #endif
1163
1164 #ifndef LIBX11_MACHINE
1165 #define LIBX11_MACHINE
1166 #endif
1167
1168 #ifndef LIBX11_SYSTEM
1169 #define LIBX11_SYSTEM
1170 #endif
1171 configure___ LIBX=LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM
1172
1173 #ifdef UNEXEC
1174 configure___ unexec=UNEXEC
1175 #else
1176 configure___ unexec=unexec.o
1177 #endif
1178
1179 #ifdef SYSTEM_MALLOC
1180 configure___ system_malloc=yes
1181 #else
1182 configure___ system_malloc=no
1183 #endif
1184
1185 #ifndef C_DEBUG_SWITCH
1186 #define C_DEBUG_SWITCH -g
1187 #endif
1188
1189 #ifndef C_OPTIMIZE_SWITCH
1190 #define C_OPTIMIZE_SWITCH -O
1191 #endif
1192
1193 #ifdef THIS_IS_CONFIGURE
1194
1195 /* Get the CFLAGS for tests in configure. */
1196 #ifdef __GNUC__
1197 configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}'
1198 #else
1199 configure___ CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
1200 #endif
1201
1202 #else /* not THIS_IS_CONFIGURE */
1203
1204 /* Get the CFLAGS for real compilation. */
1205 #ifdef __GNUC__
1206 configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}'
1207 #else
1208 configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
1209 #endif
1210
1211 #endif /* not THIS_IS_CONFIGURE */
1212 ' > ${tempcname}
1213
1214 # The value of CPP is a quoted variable reference, so we need to do this
1215 # to get its actual value...
1216 CPP=`eval "echo $CPP"`
1217 changequote(, )dnl
1218 eval `${CPP} -Isrc ${tempcname} \
1219 | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
1220 if test "x$SPECIFIED_CFLAGS" = x; then
1221 eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \
1222 | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
1223 else
1224 REAL_CFLAGS="$CFLAGS"
1225 fi
1226 changequote([, ])dnl
1227 rm ${tempcname}
1228
1229 ### Compute the unexec source name from the object name.
1230 UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`"
1231
1232 # Do the opsystem or machine files prohibit the use of the GNU malloc?
1233 # Assume not, until told otherwise.
1234 GNU_MALLOC=yes
1235 if test "${system_malloc}" = "yes"; then
1236 GNU_MALLOC=no
1237 GNU_MALLOC_reason="
1238 (The GNU allocators don't work with this system configuration.)"
1239 fi
1240
1241 if test x"${REL_ALLOC}" = x; then
1242 REL_ALLOC=${GNU_MALLOC}
1243 fi
1244
1245 LISP_FLOAT_TYPE=yes
1246
1247
1248 #### Add the libraries to LIBS and check for some functions.
1249
1250 if test x"${OVERRIDE_CPPFLAGS}" != x; then
1251 CPPFLAGS="${OVERRIDE_CPPFLAGS}"
1252 else
1253 CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
1254 fi
1255
1256 LIBS="$libsrc_libs $LIBS"
1257
1258 dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
1259 dnl and also adds -ldnet to LIBS, which Autoconf uses for checks.
1260 AC_CHECK_LIB(dnet, dnet_ntoa)
1261 dnl This causes -lresolv to get used in subsequent tests,
1262 dnl which causes failures on some systems such as HPUX 9.
1263 dnl AC_CHECK_LIB(resolv, gethostbyname)
1264
1265 dnl FIXME replace main with a function we actually want from this library.
1266 AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
1267
1268 AC_CHECK_LIB(pthreads, cma_open)
1269
1270 AC_MSG_CHECKING(for XFree86)
1271 if test -d /usr/X386/include; then
1272 HAVE_XFREE386=yes
1273 : ${C_SWITCH_X_SITE="-I/usr/X386/include"}
1274 else
1275 HAVE_XFREE386=no
1276 fi
1277 AC_MSG_RESULT($HAVE_XFREE386)
1278
1279 # Change CFLAGS temporarily so that C_SWITCH_X_SITE gets used
1280 # for the tests that follow. We set it back to REAL_CFLAGS later on.
1281
1282 if test "${HAVE_X11}" = "yes"; then
1283 DEFS="$C_SWITCH_X_SITE $DEFS"
1284 LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE"
1285 LIBS="$LIBX $LIBS"
1286 CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
1287
1288 # On Solaris, arrange for LD_RUN_PATH to point to the X libraries for tests.
1289 # This is handled by LD_SWITCH_X_SITE_AUX during the real build,
1290 # but it's more convenient here to set LD_RUN_PATH
1291 # since this also works on hosts that don't understand LD_SWITCH_X_SITE_AUX.
1292 if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
1293 LD_RUN_PATH=$x_libraries${LD_RUN_PATH+:}$LD_RUN_PATH
1294 export LD_RUN_PATH
1295 fi
1296
1297 if test "${opsys}" = "gnu-linux"; then
1298 AC_MSG_CHECKING(whether X on GNU/Linux needs -b to link)
1299 AC_TRY_LINK([],
1300 [XOpenDisplay ("foo");],
1301 [xlinux_first_failure=no],
1302 [xlinux_first_failure=yes])
1303 if test "${xlinux_first_failure}" = "yes"; then
1304 OLD_LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE"
1305 OLD_C_SWITCH_X_SITE="$C_SWITCH_X_SITE"
1306 OLD_CPPFLAGS="$CPPFLAGS"
1307 OLD_LIBS="$LIBS"
1308 LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout"
1309 C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout"
1310 CPPFLAGS="$CPPFLAGS -b i486-linuxaout"
1311 LIBS="$LIBS -b i486-linuxaout"
1312 AC_TRY_LINK([],
1313 [XOpenDisplay ("foo");],
1314 [xlinux_second_failure=no],
1315 [xlinux_second_failure=yes])
1316 if test "${xlinux_second_failure}" = "yes"; then
1317 # If we get the same failure with -b, there is no use adding -b.
1318 # So take it out. This plays safe.
1319 LD_SWITCH_X_SITE="$OLD_LD_SWITCH_X_SITE"
1320 C_SWITCH_X_SITE="$OLD_C_SWITCH_X_SITE"
1321 CPPFLAGS="$OLD_CPPFLAGS"
1322 LIBS="$OLD_LIBS"
1323 AC_MSG_RESULT(no)
1324 else
1325 AC_MSG_RESULT(yes)
1326 fi
1327 else
1328 AC_MSG_RESULT(no)
1329 fi
1330 fi
1331
1332 AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
1333 XScreenNumberOfScreen XSetWMProtocols)
1334 fi
1335
1336 if test "${window_system}" = "x11"; then
1337 AC_MSG_CHECKING(X11 version 6)
1338 AC_TRY_LINK([#include <X11/Xlib.h>],
1339 [#if XlibSpecificationRelease < 6
1340 fail;
1341 #endif
1342 ], [AC_MSG_RESULT(6 or newer)
1343 AC_DEFINE(HAVE_X11R6)],
1344 [AC_MSG_RESULT(before 6)])
1345 fi
1346
1347 if test "${window_system}" = "x11"; then
1348 AC_MSG_CHECKING(X11 version 5)
1349 AC_TRY_LINK([#include <X11/Xlib.h>],
1350 [#if XlibSpecificationRelease < 5
1351 fail;
1352 #endif
1353 ], [AC_MSG_RESULT(5 or newer)
1354 HAVE_X11R5=yes
1355 AC_DEFINE(HAVE_X11R5)],
1356 [
1357 HAVE_X11R5=no
1358 AC_MSG_RESULT(before 5)])
1359 fi
1360
1361 dnl Do not put whitespace before the #include statements below.
1362 dnl Older compilers (eg sunos4 cc) choke on it.
1363 if test x"${USE_X_TOOLKIT}" = xmaybe; then
1364 if test x"${HAVE_X11R5}" = xyes; then
1365 AC_MSG_CHECKING(X11 version 5 with Xaw)
1366 AC_TRY_LINK([
1367 #include <X11/Intrinsic.h>
1368 #include <X11/Xaw/Simple.h>],
1369 [],
1370 [AC_MSG_RESULT(5 or newer, with Xaw; use toolkit by default)
1371 USE_X_TOOLKIT=LUCID],
1372 [AC_MSG_RESULT(before 5 or no Xaw; do not use toolkit by default)
1373 USE_X_TOOLKIT=none])
1374 else
1375 USE_X_TOOLKIT=none
1376 fi
1377 fi
1378
1379 X_TOOLKIT_TYPE=$USE_X_TOOLKIT
1380
1381 if test "${USE_X_TOOLKIT}" != "none"; then
1382 AC_MSG_CHECKING(X11 toolkit version)
1383 AC_TRY_LINK([#include <X11/Intrinsic.h>],
1384 [#if XtSpecificationRelease < 6
1385 fail;
1386 #endif
1387 ], [AC_MSG_RESULT(6 or newer)
1388 HAVE_X11XTR6=yes
1389 AC_DEFINE(HAVE_X11XTR6)],
1390 [AC_MSG_RESULT(before 6)
1391 HAVE_X11XTR6=no])
1392
1393 dnl If using toolkit, check whether libXmu.a exists.
1394 dnl tranle@intellicorp.com says libXmu.a can need XtMalloc in libXt.a to link.
1395 OLDLIBS="$LIBS"
1396 if test x$HAVE_X11XTR6 = xyes; then
1397 LIBS="-lXt -lSM -lICE $LIBS"
1398 else
1399 LIBS="-lXt $LIBS"
1400 fi
1401 AC_CHECK_LIB(Xmu, XmuConvertStandardSelection)
1402 LIBS="$OLDLIBS"
1403 fi
1404
1405 # If netdb.h doesn't declare h_errno, we must declare it by hand.
1406 AC_MSG_CHECKING(whether netdb declares h_errno)
1407 AC_TRY_LINK([#include <netdb.h>],
1408 [return h_errno;],
1409 [AC_MSG_RESULT(yes)
1410 AC_DEFINE(HAVE_H_ERRNO)],
1411 [AC_MSG_RESULT(no)])
1412
1413 AC_FUNC_ALLOCA
1414
1415 # fmod, logb, and frexp are found in -lm on most systems.
1416 # On HPUX 9.01, -lm does not contain logb, so check for sqrt.
1417 AC_CHECK_LIB(m, sqrt)
1418
1419 AC_CHECK_FUNCS(gettimeofday gethostname dup2 rename closedir mkdir rmdir \
1420 random lrand48 bcopy bcmp logb frexp fmod ftime res_init setsid \
1421 strerror fpathconf select mktime euidaccess getpagesize tzset setlocale)
1422
1423 # Check this now, so that we will NOT find the above functions in ncurses.
1424 # That is because we have not set up to link ncurses in lib-src.
1425 # It's better to believe a function is not available
1426 # than to expect to find it in ncurses.
1427 AC_CHECK_LIB(ncurses, tparm)
1428
1429 AC_MSG_CHECKING(whether localtime caches TZ)
1430 AC_CACHE_VAL(emacs_cv_localtime_cache,
1431 [if test x$ac_cv_func_tzset = xyes; then
1432 AC_TRY_RUN([#include <time.h>
1433 #if STDC_HEADERS
1434 # include <stdlib.h>
1435 #endif
1436 extern char **environ;
1437 unset_TZ ()
1438 {
1439 char **from, **to;
1440 for (to = from = environ; (*to = *from); from++)
1441 if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
1442 to++;
1443 }
1444 char TZ_GMT0[] = "TZ=GMT0";
1445 char TZ_PST8[] = "TZ=PST8";
1446 main()
1447 {
1448 time_t now = time ((time_t *) 0);
1449 int hour_GMT0, hour_unset;
1450 if (putenv (TZ_GMT0) != 0)
1451 exit (1);
1452 hour_GMT0 = localtime (&now)->tm_hour;
1453 unset_TZ ();
1454 hour_unset = localtime (&now)->tm_hour;
1455 if (putenv (TZ_PST8) != 0)
1456 exit (1);
1457 if (localtime (&now)->tm_hour == hour_GMT0)
1458 exit (1);
1459 unset_TZ ();
1460 if (localtime (&now)->tm_hour != hour_unset)
1461 exit (1);
1462 exit (0);
1463 }], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
1464 [# If we have tzset, assume the worst when cross-compiling.
1465 emacs_cv_localtime_cache=yes])
1466 else
1467 # If we lack tzset, report that localtime does not cache TZ,
1468 # since we can't invalidate the cache if we don't have tzset.
1469 emacs_cv_localtime_cache=no
1470 fi])dnl
1471 AC_MSG_RESULT($emacs_cv_localtime_cache)
1472 if test $emacs_cv_localtime_cache = yes; then
1473 AC_DEFINE(LOCALTIME_CACHE)
1474 fi
1475
1476 if test "x$HAVE_TIMEVAL" = xyes; then
1477 AC_MSG_CHECKING(whether gettimeofday can't accept two arguments)
1478 AC_TRY_LINK([
1479 #ifdef TIME_WITH_SYS_TIME
1480 #include <sys/time.h>
1481 #include <time.h>
1482 #else
1483 #ifdef HAVE_SYS_TIME_H
1484 #include <sys/time.h>
1485 #else
1486 #include <time.h>
1487 #endif
1488 #endif
1489 ],
1490 [
1491 struct timeval time;
1492 struct timezone dummy;
1493 gettimeofday (&time, &dummy);
1494 ],
1495 [AC_MSG_RESULT(no)],
1496 [AC_MSG_RESULT(yes)
1497 AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT)])
1498 fi
1499
1500 ok_so_far=yes
1501 AC_CHECK_FUNC(socket, , ok_so_far=no)
1502 if test $ok_so_far = yes; then
1503 AC_CHECK_HEADER(netinet/in.h, , ok_so_far=no)
1504 fi
1505 if test $ok_so_far = yes; then
1506 AC_CHECK_HEADER(arpa/inet.h, , ok_so_far=no)
1507 fi
1508 if test $ok_so_far = yes; then
1509 AC_DEFINE(HAVE_INET_SOCKETS)
1510 fi
1511
1512 if test -f /usr/lpp/X11/bin/smt.exp; then
1513 AC_DEFINE(HAVE_AIX_SMT_EXP)
1514 fi
1515
1516 # Set up the CFLAGS for real compilation, so we can substitute it.
1517 CFLAGS="$REAL_CFLAGS"
1518
1519 changequote(, )dnl
1520 #### Find out which version of Emacs this is.
1521 version=`grep 'defconst[ ]*emacs-version' ${srcdir}/lisp/version.el \
1522 | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`
1523 changequote([, ])dnl
1524 if test x"${version}" = x; then
1525 AC_MSG_ERROR(can't find current emacs version in \`${srcdir}/lisp/version.el'.)
1526 fi
1527
1528 ### Specify what sort of things we'll be editing into Makefile and config.h.
1529 ### Use configuration here uncanonicalized to avoid exceeding size limits.
1530 AC_SUBST(version)
1531 AC_SUBST(configuration)
1532 AC_SUBST(canonical)
1533 AC_SUBST(srcdir)
1534 AC_SUBST(prefix)
1535 AC_SUBST(exec_prefix)
1536 AC_SUBST(bindir)
1537 AC_SUBST(datadir)
1538 AC_SUBST(sharedstatedir)
1539 AC_SUBST(libexecdir)
1540 AC_SUBST(mandir)
1541 AC_SUBST(infodir)
1542 AC_SUBST(lispdir)
1543 AC_SUBST(locallisppath)
1544 AC_SUBST(lisppath)
1545 AC_SUBST(etcdir)
1546 AC_SUBST(lockdir)
1547 AC_SUBST(archlibdir)
1548 AC_SUBST(docdir)
1549 AC_SUBST(bitmapdir)
1550 AC_SUBST(c_switch_system)
1551 AC_SUBST(c_switch_machine)
1552 AC_SUBST(LD_SWITCH_X_SITE)
1553 AC_SUBST(LD_SWITCH_X_SITE_AUX)
1554 AC_SUBST(C_SWITCH_X_SITE)
1555 AC_SUBST(CFLAGS)
1556 AC_SUBST(X_TOOLKIT_TYPE)
1557 AC_SUBST(machfile)
1558 AC_SUBST(opsysfile)
1559 AC_SUBST(RANLIB)
1560
1561 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "${canonical}")
1562 AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}")
1563 AC_DEFINE_UNQUOTED(config_machfile, "${machfile}")
1564 AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}")
1565 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE})
1566 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX})
1567 AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE, ${C_SWITCH_X_SITE})
1568 AC_DEFINE_UNQUOTED(UNEXEC_SRC, ${UNEXEC_SRC})
1569
1570 if test "${HAVE_X_WINDOWS}" = "yes" ; then
1571 AC_DEFINE(HAVE_X_WINDOWS)
1572 fi
1573 if test "${USE_X_TOOLKIT}" != "none" ; then
1574 AC_DEFINE(USE_X_TOOLKIT)
1575 fi
1576 if test "${HAVE_X11}" = "yes" ; then
1577 AC_DEFINE(HAVE_X11)
1578 fi
1579 if test "${HAVE_XFREE386}" = "yes" ; then
1580 AC_DEFINE(HAVE_XFREE386)
1581 fi
1582 if test "${HAVE_MENUS}" = "yes" ; then
1583 AC_DEFINE(HAVE_MENUS)
1584 fi
1585 if test "${GNU_MALLOC}" = "yes" ; then
1586 AC_DEFINE(GNU_MALLOC)
1587 fi
1588 if test "${REL_ALLOC}" = "yes" ; then
1589 AC_DEFINE(REL_ALLOC)
1590 fi
1591 if test "${LISP_FLOAT_TYPE}" = "yes" ; then
1592 AC_DEFINE(LISP_FLOAT_TYPE)
1593 fi
1594
1595 #### Report on what we decided to do.
1596 echo "
1597 Configured for \`${canonical}'.
1598
1599 Where should the build process find the source code? ${srcdir}
1600 What operating system and machine description files should Emacs use?
1601 \`${opsysfile}' and \`${machfile}'
1602 What compiler should emacs be built with? ${CC} ${CFLAGS}
1603 Should Emacs use the GNU version of malloc? ${GNU_MALLOC}${GNU_MALLOC_reason}
1604 Should Emacs use the relocating allocator for buffers? ${REL_ALLOC}
1605 What window system should Emacs use? ${window_system}
1606 What toolkit should Emacs use? ${USE_X_TOOLKIT}"
1607
1608 if test -n "${x_includes}"; then
1609 echo " Where do we find X Windows header files? ${x_includes}"
1610 else
1611 echo " Where do we find X Windows header files? Standard dirs"
1612 fi
1613 if test -n "${x_libraries}"; then
1614 echo " Where do we find X Windows libraries? ${x_libraries}"
1615 else
1616 echo " Where do we find X Windows libraries? Standard dirs"
1617 fi
1618
1619 echo
1620
1621 # Remove any trailing slashes in these variables.
1622 changequote(, )dnl
1623 test "${prefix}" != NONE &&
1624 prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
1625 test "${exec_prefix}" != NONE &&
1626 exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`
1627 changequote([, ])dnl
1628
1629 AC_OUTPUT(Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile \
1630 man/Makefile lwlib/Makefile src/Makefile.c:src/Makefile.in, [
1631
1632 ### Make the necessary directories, if they don't exist.
1633 for dir in cpp etc ; do
1634 test -d ${dir} || mkdir ${dir}
1635 done
1636
1637 # Build src/Makefile from ${srcdir}/src/Makefile.c
1638 # and lib-src/Makefile from ${srcdir}/lib-src/Makefile.c
1639 # This must be done after src/config.h is built, since we rely on that file.
1640
1641 changequote(, )dnl The horror, the horror.
1642 # Now get this: Some word that is part of the ${srcdir} directory name
1643 # or the ${configuration} value might, just might, happen to be an
1644 # identifier like `sun4' or `i386' or something, and be predefined by
1645 # the C preprocessor to some helpful value like 1, or maybe the empty
1646 # string. Needless to say consequent macro substitutions are less
1647 # than conducive to the makefile finding the correct directory.
1648 undefs="`echo $top_srcdir $configuration $canonical |
1649 sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/ *$//' \
1650 -e 's/ */ -U/g' -e 's/-U[0-9][^ ]*//g' \
1651 `"
1652 changequote([, ])dnl
1653
1654 echo creating lib-src/Makefile
1655 ( cd lib-src
1656 rm -f junk.c junk1.c junk2.c
1657 sed -e '/start of cpp stuff/q' \
1658 < Makefile.c > junk1.c
1659 sed -e '1,/start of cpp stuff/d'\
1660 -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
1661 < Makefile.c > junk.c
1662 $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
1663 sed -e 's/^ / /' -e '/^#/d' -e '/^[ \f]*$/d' > junk2.c
1664 cat junk1.c junk2.c > Makefile.new
1665 rm -f junk.c junk1.c junk2.c
1666 chmod 444 Makefile.new
1667 mv -f Makefile.new Makefile
1668 )
1669
1670 echo creating src/Makefile
1671 ( cd src
1672 rm -f junk.c junk1.c junk2.c
1673 sed -e '/start of cpp stuff/q' \
1674 < Makefile.c > junk1.c
1675 sed -e '1,/start of cpp stuff/d'\
1676 -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
1677 < Makefile.c > junk.c
1678 $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
1679 sed -e 's/^ / /' -e '/^#/d' -e '/^[ \f]*$/d' > junk2.c
1680 cat junk1.c junk2.c > Makefile.new
1681 rm -f junk.c junk1.c junk2.c
1682 chmod 444 Makefile.new
1683 mv -f Makefile.new Makefile
1684 )
1685
1686 if test ! -f src/.gdbinit && test -f $top_srcdir/src/.gdbinit; then
1687 echo creating src/.gdbinit
1688 echo source $top_srcdir/src/.gdbinit > src/.gdbinit
1689 fi
1690
1691 ], [CPP="$CPP" CPPFLAGS="$CPPFLAGS"])