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