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