(global_set_key, local_set_key, global_unset_key)
[emacs.git] / configure.in
blob75e7382c949332ee4a61a2e6a6f112c0d434201e
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.0)dnl
6 AC_INIT(src/lisp.h)
7 AC_CONFIG_HEADER(src/config.h)
9 bindir='${exec_prefix}/bin'
10 datadir='${prefix}/share'
11 sharedstatedir='${prefix}/com'
12 libexecdir='${exec_prefix}/libexec'
13 mandir='${prefix}/man/man1'
14 infodir='${prefix}/info'
15 lispdir='${datadir}/emacs/${version}/lisp'
16 locallisppath='${datadir}/emacs/site-lisp'
17 lisppath='${locallisppath}:${lispdir}'
18 etcdir='${datadir}/emacs/${version}/etc'
19 lockdir='${sharedstatedir}/emacs/lock'
20 archlibdir='${libexecdir}/emacs/${version}/${configuration}'
21 docdir='${datadir}/emacs/${version}/etc'
23 AC_ARG_WITH(gcc,
24 [  --with-gcc              use GCC to compile Emacs])
25 AC_ARG_WITH(pop,
26 [  --with-pop              support POP for mail retrieval],
27 [AC_DEFINE(MAIL_USE_POP)])
28 AC_ARG_WITH(kerberos,
29 [  --with-kerberos         support Kerberos-authenticated POP],
30 [AC_DEFINE(KERBEROS)])
31 AC_ARG_WITH(hesiod,
32 [  --with-hesiod           support Hesiod to get the POP server host],
33 [AC_DEFINE(HESIOD)])
34 dnl This should be the last --with option, because --with-x is
35 dnl added later on when we find the path of X, and it's best to
36 dnl keep them together visually.
37 AC_ARG_WITH(x-toolkit,
38 [  --with-x-toolkit=KIT    use an X toolkit (KIT = yes/lucid/athena/motif)],
39 [         case "${withval}" in
40             y | ye | yes )      val=athena ;;
41             n | no )            val=no  ;;
42             l | lu | luc | luci | lucid )       val=lucid ;;
43             a | at | ath | athe | athena )      val=athena ;;
44             m | mo | mot | moti | motif )       val=motif ;;
45 dnl These don't currently work.
46 dnl         o | op | ope | open | open- | open-l | open-lo \
47 dnl             | open-loo | open-look )        val=open-look ;;
48             * )
49 dnl AC_MSG_ERROR([the \`--with-x-toolkit' option is supposed to have a value
50 dnl which is \`yes', \`no', \`lucid', \`athena', \`motif' or \`open-look'.])
51 AC_MSG_ERROR([the \`--with-x-toolkit' option is supposed to have a value
52 which is \`yes', \`no', \`lucid', \`athena', or \`motif'.
53 Currently, \`yes', \`athena' and \`lucid' are synonyms.])
54             ;;
55           esac
56           with_x_toolkit=$val
59 #### Make srcdir absolute, if it isn't already.  It's important to
60 #### avoid running the path through pwd unnecessary, since pwd can
61 #### give you automounter prefixes, which can go away.  We do all this
62 #### so Emacs can find its files when run uninstalled.
63 case "${srcdir}" in
64   /* ) ;;
65   . )
66     ## We may be able to use the $PWD environment variable to make this
67     ## absolute.  But sometimes PWD is inaccurate.
68     if test "${PWD}" != "" && test "`(cd ${PWD} ; sh -c pwd)`" = "`pwd`"  ;
69     then
70       srcdir="$PWD"
71     else
72       srcdir="`(cd ${srcdir}; pwd)`"
73     fi
74   ;;
75   *  ) srcdir="`(cd ${srcdir}; pwd)`" ;;
76 esac
78 #### Check if the source directory already has a configured system in it.
79 if test `pwd` != `(cd ${srcdir} && pwd)` \
80    && test -f "${srcdir}/src/config.h" ; then
81   AC_MSG_WARN([The directory tree \`${srcdir}' is being used
82    as a build directory right now; it has been configured in its own
83    right.  To configure in another directory as well, you MUST
84    use GNU make.  If you do not have GNU make, then you must
85    now do \`make distclean' in ${srcdir},
86    and then run $0 again.])
88 changequote(, )dnl
89   extrasub='/^VPATH[     ]*=/c\
90 changequote([, ])dnl
91 vpath %.c $(srcdir)\
92 vpath %.h $(srcdir)\
93 vpath %.y $(srcdir)\
94 vpath %.l $(srcdir)\
95 vpath %.s $(srcdir)\
96 vpath %.in $(srcdir)'
99 #### Given the configuration name, set machfile and opsysfile to the
100 #### names of the m/*.h and s/*.h files we should use.
102 ### Canonicalize the configuration name.
104 AC_CANONICAL_HOST
105 canonical=$host
106 configuration=$host_alias
108 changequote(, )dnl
110 ### If you add support for a new configuration, add code to this
111 ### switch statement to recognize your configuration name and select
112 ### the appropriate operating system and machine description files.
114 ### You would hope that you could choose an m/*.h file pretty much
115 ### based on the machine portion of the configuration name, and an s-
116 ### file based on the operating system portion.  However, it turns out
117 ### that each m/*.h file is pretty manufacturer-specific - for
118 ### example, apollo.h, hp9000s300.h, mega68k, news.h, and tad68k are
119 ### all 68000 machines; mips.h, pmax.h, and news-risc are all MIPS
120 ### machines.  So we basically have to have a special case for each
121 ### configuration name.
123 ### As far as handling version numbers on operating systems is
124 ### concerned, make sure things will fail in a fixable way.  If
125 ### /etc/MACHINES doesn't say anything about version numbers, be
126 ### prepared to handle anything reasonably.  If version numbers
127 ### matter, be sure /etc/MACHINES says something about it.
129 ### Eric Raymond says we should accept strings like "sysvr4" to mean
130 ### "System V Release 4"; he writes, "The old convention encouraged
131 ### confusion between `system' and `release' levels'."
133 machine='' opsys='' unported=no
134 case "${canonical}" in
136   ## NetBSD ports
137   *-*-netbsd* )
138     opsys=netbsd
139     case "${canonical}" in
140       i[345]86-*-netbsd*) machine=intel386 ;;
141       m68k-*-netbsd*)
142                         # This is somewhat bogus.
143                         machine=hp9000s300 ;;
144       mips-*-netbsd*)   machine=pmax ;;
145       ns32k-*-netbsd*)  machine=ns32000 ;;
146       sparc-*-netbsd*)  machine=sparc ;;
147     esac
148   ;;
150   ## Acorn RISCiX:
151   arm-acorn-riscix1.1* )
152     machine=acorn opsys=riscix1-1
153   ;;
154   arm-acorn-riscix1.2* | arm-acorn-riscix )
155     machine=acorn opsys=riscix1-2
156   ;;
158   ## Alliant machines
159   ## Strictly speaking, we need the version of the alliant operating
160   ## system to choose the right machine file, but currently the
161   ## configuration name doesn't tell us enough to choose the right
162   ## one; we need to give alliants their own operating system name to
163   ## do this right.  When someone cares, they can help us.
164   fx80-alliant-* )
165     machine=alliant4 opsys=bsd4-2
166   ;;
167   i860-alliant-* )
168     machine=alliant-2800 opsys=bsd4-3
169   ;;
171   alpha-dec-osf* )
172     machine=alpha opsys=osf1
173   ;;
175   ## Altos 3068
176   m68*-altos-sysv* )
177     machine=altos opsys=usg5-2
178   ;;
179     
180   ## Amdahl UTS
181   580-amdahl-sysv* )
182     machine=amdahl opsys=usg5-2-2
183   ;;
185   ## Appallings - I mean, Apollos - running Domain
186   m68*-apollo* )
187     machine=apollo opsys=domain NON_GNU_CPP=/usr/lib/cpp
188   ;;
190   ## AT&T 3b2, 3b5, 3b15, 3b20
191   we32k-att-sysv* )
192     machine=att3b opsys=usg5-2-2
193   ;;
195   ## AT&T 3b1 - The Mighty Unix PC!
196   m68*-att-sysv* )
197     machine=7300 opsys=usg5-2-2
198   ;;
200   ## Bull dpx20
201   rs6000-bull-bosx* )
202     machine=ibmrs6000 opsys=aix3-2
203   ;;
205   ## Bull dpx2
206   m68*-bull-sysv3* )
207     machine=dpx2 opsys=usg5-3
208   ;;
210   ## Bull sps7
211   m68*-bull-sysv2* )
212     machine=sps7 opsys=usg5-2
213   ;;
215   ## CCI 5/32, 6/32 -- see "Tahoe".
217   ## Celerity
218   ## I don't know what configuration name to use for this; config.sub
219   ## doesn't seem to know anything about it.  Hey, Celerity users, get
220   ## in touch with us!
221   celerity-celerity-bsd* )
222     machine=celerity opsys=bsd4-2
223   ;;
225   ## Clipper
226   ## What operating systems does this chip run that Emacs has been
227   ## tested on?
228   clipper-* )
229     machine=clipper
230     ## We'll use the catch-all code at the bottom to guess the
231     ## operating system.
232   ;;
234   ## Convex
235   *-convex-bsd* | *-convex-convexos* )
236     machine=convex opsys=bsd4-3
237     ## Prevents suprious white space in makefiles - d.m.cooke@larc.nasa.gov
238     NON_GNU_CPP="cc -E -P"
239   ;;
241   ## Cubix QBx/386
242   i[345]86-cubix-sysv* )
243     machine=intel386 opsys=usg5-3
244   ;;
246   ## Cydra 5
247   cydra*-cydrome-sysv* )
248     machine=cydra5 opsys=usg5-3
249   ;;
251   ## Data General AViiON Machines
252   m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* )
253     machine=aviion opsys=dgux5-4r3
254   ;;
255   m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* )
256     machine=aviion opsys=dgux5-4r2
257   ;;
258   m88k-dg-dgux* )
259     machine=aviion opsys=dgux
260   ;;
262   ## DECstations
263   mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0* | mips-dec-bsd4.2* )
264     machine=pmax opsys=bsd4-2
265   ;;
266   mips-dec-ultrix* | mips-dec-bsd* )
267     machine=pmax opsys=bsd4-3
268   ;;
269   mips-dec-osf* )
270     machine=pmax opsys=osf1
271   ;;
273   ## Motorola Delta machines
274   m68k-motorola-sysv* | m68000-motorola-sysv* )
275     machine=delta opsys=usg5-3
276     if test -z "`type gnucc | grep 'not found'`"
277     then CC=gnucc
278     else
279       if test -z "`type gcc | grep 'not found'`"
280       then CC=gcc
281       else CC=cc
282       fi
283     fi
284   ;;
285   m88k-motorola-sysv4* )
286     machine=delta88k opsys=usg5-4
287   ;;
288   m88k-motorola-sysv* | m88k-motorola-m88kbcs* )
289     machine=delta88k opsys=usg5-3
290   ;;
292   ## Dual machines
293   m68*-dual-sysv* )
294     machine=dual opsys=usg5-2
295   ;;
296   m68*-dual-uniplus* )
297     machine=dual opsys=unipl5-2
298   ;;
300   ## Elxsi 6400
301   elxsi-elxsi-sysv* )
302     machine=elxsi opsys=usg5-2
303   ;;
305   ## Encore machines
306   ns16k-encore-bsd* )
307     machine=ns16000 opsys=umax
308   ;;
310   ## The GEC 93 - apparently, this port isn't really finished yet.
312   ## Gould Power Node and NP1
313   pn-gould-bsd4.2* )
314     machine=gould opsys=bsd4-2
315   ;;
316   pn-gould-bsd4.3* )
317     machine=gould opsys=bsd4-3
318   ;;
319   np1-gould-bsd* )
320     machine=gould-np1 opsys=bsd4-3
321   ;;
323   ## Harris Night Hawk machines running CX/UX (a 5000 looks just like a 4000
324   ## as far as Emacs is concerned).
325   m88k-harris-cxux* )
326     # Build needs to be different on 7.0 and later releases
327     case "`uname -r`" in
328        [56].[0-9] ) machine=nh4000 opsys=cxux ;;
329        [7].[0-9] ) machine=nh4000 opsys=cxux7 ;;
330     esac
331   ;;
332   ## Harris ecx or gcx running CX/UX (Series 1200, Series 3000)
333   m68k-harris-cxux* )
334     machine=nh3000 opsys=cxux
335   ;;
337   ## Honeywell XPS100
338   xps*-honeywell-sysv* )
339     machine=xps100 opsys=usg5-2
340   ;;
342   ## HP 9000 series 200 or 300
343   m68*-hp-bsd* )
344     machine=hp9000s300 opsys=bsd4-3
345   ;;
346   ## HP/UX 7, 8 and 9 are supported on these machines.
347   m68*-hp-hpux* )
348     case "`uname -r`" in
349       ## Someone's system reports A.B8.05 for this.
350       ## I wonder what other possibilities there are.
351       *.B8.* ) machine=hp9000s300 opsys=hpux8 ;;
352       *.08.* ) machine=hp9000s300 opsys=hpux8 ;;
353       *.09.* ) machine=hp9000s300 opsys=hpux9 ;;
354       *) machine=hp9000s300 opsys=hpux ;;
355     esac
356   ;;
358   ## HP 9000 series 700 and 800, running HP/UX
359   hppa*-hp-hpux7* )
360     machine=hp800 opsys=hpux
361   ;;
362   hppa*-hp-hpux8* )
363     machine=hp800 opsys=hpux8
364   ;;
365   hppa*-hp-hpux9shr* )
366     machine=hp800 opsys=hpux9shr
367   ;;
368   hppa*-hp-hpux9* )
369     machine=hp800 opsys=hpux9
370   ;;
372   ## HP 9000 series 700 and 800, running HP/UX
373   hppa*-hp-hpux* )
374     ## Cross-compilation?  Nah!
375     case "`uname -r`" in
376       ## Someone's system reports A.B8.05 for this.
377       ## I wonder what other possibilities there are.
378       *.B8.* ) machine=hp800 opsys=hpux8 ;;
379       *.08.* ) machine=hp800 opsys=hpux8 ;;
380       *.09.* ) machine=hp800 opsys=hpux9 ;;
381       *) machine=hp800 opsys=hpux ;;
382     esac
383   ;;
385   ## Orion machines
386   orion-orion-bsd* )
387     machine=orion opsys=bsd4-2
388   ;;
389   clipper-orion-bsd* )
390     machine=orion105 opsys=bsd4-2
391   ;;
393   ## IBM machines
394   i[345]86-ibm-aix1.1* )
395     machine=ibmps2-aix opsys=usg5-2-2
396   ;;
397   i[345]86-ibm-aix1.[23]* | i[345]86-ibm-aix* )
398     machine=ibmps2-aix opsys=usg5-3
399   ;;
400   i370-ibm-aix*)
401     machine=ibm370aix opsys=usg5-3
402   ;;
403   rs6000-ibm-aix3.1* | powerpc-ibm-aix3.1*  )
404     machine=ibmrs6000 opsys=aix3-1
405   ;;
406   rs6000-ibm-aix3.2.5 | powerpc-ibm-aix3.2.5 )
407     machine=ibmrs6000 opsys=aix3-2-5
408   ;;
409   rs6000-ibm-aix4.1* | powerpc-ibm-aix4.1*  )
410     machine=ibmrs6000 opsys=aix4-1
411   ;;
412   rs6000-ibm-aix4* | powerpc-ibm-aix4*  )
413     machine=ibmrs6000 opsys=aix4
414   ;;
415   rs6000-ibm-aix* | powerpc-ibm-aix* )
416     machine=ibmrs6000 opsys=aix3-2
417   ;;
418   romp-ibm-bsd4.3* )
419     machine=ibmrt opsys=bsd4-3
420   ;;    
421   romp-ibm-bsd4.2* )
422     machine=ibmrt opsys=bsd4-2
423   ;;
424   romp-ibm-aos4.3* )
425     machine=ibmrt opsys=bsd4-3
426   ;;    
427   romp-ibm-aos4.2* )
428     machine=ibmrt opsys=bsd4-2
429   ;;
430   romp-ibm-aos* )
431     machine=ibmrt opsys=bsd4-3
432   ;;
433   romp-ibm-bsd* )
434     machine=ibmrt opsys=bsd4-3
435   ;;
436   romp-ibm-aix* )
437     machine=ibmrt-aix opsys=usg5-2-2
438   ;;
440   ## Integrated Solutions `Optimum V'
441   m68*-isi-bsd4.2* )
442     machine=isi-ov opsys=bsd4-2
443   ;;
444   m68*-isi-bsd4.3* )
445     machine=isi-ov opsys=bsd4-3
446   ;;
448   ## Intel 386 machines where we do care about the manufacturer
449   i[345]86-intsys-sysv* )
450     machine=is386 opsys=usg5-2-2
451   ;;
453   ## Prime EXL
454   i[345]86-prime-sysv* )
455     machine=i386 opsys=usg5-3
456   ;;
458   ## Sequent Symmetry running Dynix
459   i[345]86-sequent-bsd* )
460     machine=symmetry opsys=bsd4-3
461   ;;
463   ## Sequent Symmetry running DYNIX/ptx
464   ## Use the old cpp rather than the newer ANSI one.
465   i[345]86-sequent-ptx* )
466     machine=sequent-ptx opsys=ptx
467     NON_GNU_CPP="/lib/cpp"
468   ;;
470   ## Unspecified sysv on an ncr machine defaults to svr4.2.
471   ## (Plain usg5-4 doesn't turn on POSIX signals, which we need.)
472   i[345]86-ncr-sysv* )
473     machine=intel386 opsys=usg5-4-2
474   ;;
476   ## Intel Paragon OSF/1
477   i860-intel-osf1* )
478     machine=paragon opsys=osf1 NON_GNU_CPP=/usr/mach/lib/cpp
479   ;;
481   ## Intel 860
482   i860-*-sysv4* )
483     machine=i860 opsys=usg5-4
484     NON_GNU_CC="/bin/cc" # Ie, not the one in /usr/ucb/cc.
485     NON_GNU_CPP="/usr/ccs/lib/cpp" # cc -E tokenizes macro expansion.
486   ;;
488   ## Masscomp machines
489   m68*-masscomp-rtu* )
490     machine=masscomp opsys=rtu
491   ;;
493   ## Megatest machines
494   m68*-megatest-bsd* )
495     machine=mega68 opsys=bsd4-2
496   ;;
498   ## Workstations sold by MIPS
499   ## This is not necessarily all workstations using the MIPS processor -
500   ## Irises are produced by SGI, and DECstations by DEC.
502   ## etc/MACHINES lists mips.h and mips4.h as possible machine files,
503   ## and usg5-2-2 and bsd4-3 as possible OS files.  The only guidance
504   ## it gives for choosing between the alternatives seems to be "Use
505   ## -machine=mips4 for RISCOS version 4; use -opsystem=bsd4-3 with
506   ## the BSD world."  I'll assume that these are instructions for
507   ## handling two odd situations, and that every other situation
508   ## should use mips.h and usg5-2-2, they being listed first.
509   mips-mips-usg* )
510     machine=mips4
511     ## Fall through to the general code at the bottom to decide on the OS.
512   ;;
513   mips-mips-riscos4* )
514     machine=mips4 opsys=bsd4-3
515     NON_GNU_CC="cc -systype bsd43"
516     NON_GNU_CPP="cc -systype bsd43 -E"
517   ;;
518   mips-mips-bsd* )
519     machine=mips opsys=bsd4-3
520   ;;
521   mips-mips-* )
522     machine=mips opsys=usg5-2-2
523   ;;
525   ## NeXT
526   m68*-next-* | i[345]86-next-* )
527     machine=next opsys=mach2
528   ;;
530   ## The complete machine from National Semiconductor
531   ns32k-ns-genix* )
532     machine=ns32000 opsys=usg5-2
533   ;;
535   ## NCR machines
536   m68*-ncr-sysv2* | m68*-ncr-sysvr2* )
537     machine=tower32 opsys=usg5-2-2
538   ;;
539   m68*-ncr-sysv3* | m68*-ncr-sysvr3* )
540     machine=tower32v3 opsys=usg5-3
541   ;;
543   ## Nixdorf Targon 31
544   m68*-nixdorf-sysv* )
545     machine=targon31 opsys=usg5-2-2
546   ;;
548   ## Nu (TI or LMI)
549   m68*-nu-sysv* )
550     machine=nu opsys=usg5-2
551   ;;
553   ## Plexus
554   m68*-plexus-sysv* )
555     machine=plexus opsys=usg5-2
556   ;;
558   ## Pyramid machines
559   ## I don't really have any idea what sort of processor the Pyramid has,
560   ## so I'm assuming it is its own architecture.
561   pyramid-pyramid-bsd* )
562     machine=pyramid opsys=bsd4-2
563   ;;
565   ## Sequent Balance
566   ns32k-sequent-bsd4.2* )
567     machine=sequent opsys=bsd4-2
568   ;;
569   ns32k-sequent-bsd4.3* )
570     machine=sequent opsys=bsd4-3
571   ;;
573   ## Siemens Nixdorf
574   mips-siemens-sysv* )
575     machine=mips-siemens opsys=usg5-4
576     NON_GNU_CC=/usr/ccs/bin/cc
577     NON_GNU_CPP=/usr/ccs/lib/cpp
578   ;;
580   ## Silicon Graphics machines
581   ## Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
582   m68*-sgi-iris3.5* )
583     machine=irist opsys=iris3-5
584   ;;
585   m68*-sgi-iris3.6* | m68*-sgi-iris*)
586     machine=irist opsys=iris3-6
587   ;;
588   ## Iris 4D
589   mips-sgi-irix3* )
590     machine=iris4d opsys=irix3-3
591   ;;
592   mips-sgi-irix4* )
593     machine=iris4d opsys=irix4-0
594   ;;
595   mips-sgi-irix6* )
596     machine=iris4d opsys=irix6-0
597   ;;
598   mips-sgi-irix5.[01]* )
599     machine=iris4d opsys=irix5-0
600   ;;
601   mips-sgi-irix5* | mips-sgi-irix* )
602     machine=iris4d opsys=irix5-2
603   ;;
605   ## SONY machines
606   m68*-sony-bsd4.2* )
607     machine=news opsys=bsd4-2
608   ;;
609   m68*-sony-bsd4.3* )
610     machine=news opsys=bsd4-3
611   ;;
612   m68*-sony-newsos3* | m68*-sony-news3*)
613     machine=news opsys=bsd4-3
614   ;;
615   mips-sony-bsd* | mips-sony-newsos4* | mips-sony-news4*)
616     machine=news-risc opsys=bsd4-3
617   ;;
618   mips-sony-news* )
619     machine=news-risc opsys=newsos5
620   ;;
622   ## Stride
623   m68*-stride-sysv* )
624     machine=stride opsys=usg5-2
625   ;;
627   ## Suns
628   *-sun-sunos* | *-sun-bsd* | *-sun-solaris* | i[345]86-*-solaris2* | i[345]86-*-sunos5* )
629     case "${canonical}" in
630       m68*-sunos1* )    machine=sun1 ;;
631       m68*-sunos2* )    machine=sun2 ;;
632       m68* )            machine=sun3 ;;
633       i[345]86-sun-sunos[34]* ) machine=sun386 ;;
634       i[345]86-*-* )     machine=intel386 ;;
635       sparc* )          machine=sparc ;;
636       * )               unported=yes ;;
637     esac
638     case "${canonical}" in
639       ## The Sun386 didn't get past 4.0.
640       i[345]86-*-sunos4   ) opsys=sunos4-0 ;;
641       *-sunos4.0*         ) opsys=sunos4-0 ;;
642       *-sunos4.1.3*       ) opsys=sunos4-1-3
643                 NON_GCC_TEST_OPTIONS=-Bstatic
644                 GCC_TEST_OPTIONS=-static
645                 NON_GNU_CPP=/usr/lib/cpp
646                 ;;
647       *-sunos4shr*        ) opsys=sunos4shr
648                 NON_GNU_CPP=/usr/lib/cpp
649                 ;;
650       *-sunos4* | *-sunos ) opsys=sunos4-1
651                 NON_GCC_TEST_OPTIONS=-Bstatic
652                 GCC_TEST_OPTIONS=-static
653                 ;;
654       *-sunos5.3* | *-solaris2.3* )
655                 opsys=sol2-3
656                 NON_GNU_CPP=/usr/ccs/lib/cpp
657                 ;;
658       *-sunos5.4* | *-solaris2.4* )
659                 opsys=sol2-4
660                 NON_GNU_CPP=/usr/ccs/lib/cpp
661                 ;;
662       *-sunos5* | *-solaris* )
663                 opsys=sol2
664                 NON_GNU_CPP=/usr/ccs/lib/cpp
665                 ;;
666       *                   ) opsys=bsd4-2   ;;
667     esac
668   ;;
670   ## Tadpole 68k
671   m68*-tadpole-sysv* )
672     machine=tad68k opsys=usg5-3
673   ;;
675   ## Tahoe machines
676   tahoe-tahoe-bsd4.2* )
677     machine=tahoe opsys=bsd4-2
678   ;;
679   tahoe-tahoe-bsd4.3* )
680     machine=tahoe opsys=bsd4-3
681   ;;
683   ## Tandem Integrity S2
684   mips-tandem-sysv* )
685     machine=tandem-s2 opsys=usg5-3
686   ;;
688   ## Tektronix XD88
689   m88k-tektronix-sysv3* )
690   machine=tekxd88 opsys=usg5-3
691   ;;
693   ## Tektronix 16000 box (6130?)
694   ns16k-tektronix-bsd* )
695     machine=ns16000 opsys=bsd4-2
696   ;;
697   ## Tektronix 4300
698   ## src/m/tek4300.h hints that this is a m68k machine.
699   m68*-tektronix-bsd* )
700     machine=tek4300 opsys=bsd4-3
701   ;;
703   ## Titan P2 or P3
704   ## We seem to have lost the machine-description file titan.h!
705   titan-titan-sysv* )
706     machine=titan opsys=usg5-3
707   ;;
708   
709   ## Ustation E30 (SS5E)
710   m68*-unisys-uniplus* )
711     machine=ustation opsystem=unipl5-2
712   ;;
714   ## Vaxen.
715   vax-dec-* )
716     machine=vax
717     case "${canonical}" in
718       *-bsd4.1* )                                       opsys=bsd4-1 ;;
719       *-bsd4.2* | *-ultrix[0-3].* | *-ultrix4.0* )      opsys=bsd4-2 ;;
720       *-bsd4.3* | *-ultrix* )                           opsys=bsd4-3 ;;
721       *-bsd386* | *-bsdi* )                             opsys=bsd386 ;;
722       *-sysv[01]* | *-sysvr[01]* )                      opsys=usg5-0 ;;
723       *-sysv2* | *-sysvr2* )                            opsys=usg5-2 ;;
724       *-vms* )                                          opsys=vms ;;
725       * )                                               unported=yes
726     esac
727   ;;
729   ## Whitechapel MG1
730   ns16k-whitechapel-* )
731     machine=mg1
732     ## We don't know what sort of OS runs on these; we'll let the
733     ## operating system guessing code below try.
734   ;;
736   ## Wicat
737   m68*-wicat-sysv* )
738     machine=wicat opsys=usg5-2
739   ;;
741   ## Intel 386 machines where we don't care about the manufacturer
742   i[345]86-*-* )
743     machine=intel386
744     case "${canonical}" in
745       *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;;
746       *-isc2.2* )               opsys=isc2-2 ;;
747       *-isc4.0* )               opsys=isc4-0 ;;
748       *-isc4.* )                opsys=isc4-1 ;;
749       *-isc* )                  opsys=isc3-0 ;;
750       *-esix5* )                opsys=esix5r4; NON_GNU_CPP=/usr/lib/cpp ;;
751       *-esix* )                 opsys=esix ;;
752       *-xenix* )                opsys=xenix ;;
753       *-linux* )                opsys=linux ;;
754       *-sco3.2v4* )             opsys=sco4 ; NON_GNU_CPP=/lib/cpp  ;;
755       *-bsd386* | *-bsdi* )     opsys=bsd386 ;;
756       *-386bsd* )               opsys=386bsd ;;
757       *-freebsd* )              opsys=freebsd ;;
758       *-nextstep* )             opsys=mach2 ;;
759       ## Otherwise, we'll fall through to the generic opsys code at the bottom.
760     esac
761   ;;
763   * )
764     unported=yes
765   ;;
766 esac
768 ### If the code above didn't choose an operating system, just choose
769 ### an operating system based on the configuration name.  You really
770 ### only want to use this when you have no idea what the right
771 ### operating system is; if you know what operating systems a machine
772 ### runs, it's cleaner to make it explicit in the case statement
773 ### above.
774 if test x"${opsys}" = x; then
775   case "${canonical}" in
776     *-gnu* )                            opsys=gnu ;;
777     *-bsd4.[01] )                       opsys=bsd4-1 ;;
778     *-bsd4.2 )                          opsys=bsd4-2 ;;
779     *-bsd4.3 )                          opsys=bsd4-3 ;;
780     *-sysv0 | *-sysvr0 )                opsys=usg5-0 ;;
781     *-sysv2 | *-sysvr2 )                opsys=usg5-2 ;;
782     *-sysv2.2 | *-sysvr2.2 )            opsys=usg5-2-2 ;;
783     *-sysv3 | *-sysvr3 )                opsys=usg5-3 ;;
784     *-sysv4 | *-sysvr4 )                opsys=usg5-4 ;;
785     *-sysv4.1 | *-sysvr4.1 )
786         NON_GNU_CPP=/usr/lib/cpp
787         opsys=usg5-4 ;;
788     *-sysv4.2 | *-sysvr4.2 )
789         if [ x$NON_GNU_CPP = x ]; then
790           NON_GNU_CPP=/usr/ccs/lib/cpp
791         fi
792         opsys=usg5-4-2 ;;
793     * )
794       unported=yes
795     ;;
796   esac
799 changequote([, ])dnl
801 if test $unported = yes; then
802   AC_MSG_ERROR([Emacs hasn't been ported to \`${canonical}' systems.
803 Check \`etc/MACHINES' for recognized configuration names.])
806 machfile="m/${machine}.h"
807 opsysfile="s/${opsys}.h"
810 #### Choose a compiler.
811 test -n "$CC" && cc_specified=yes
813 case ${with_gcc} in
814   "yes" ) CC="gcc" GCC=yes ;;
815   "no"  ) : ${CC=cc} ;;
816   * ) AC_PROG_CC
817 esac
819 # On Suns, sometimes $CPP names a directory.
820 if test -n "$CPP" && test -d "$CPP"; then
821   CPP=
824 #### Some systems specify a CPP to use unless we are using GCC.
825 #### Now that we know whether we are using GCC, we can decide whether
826 #### to use that one.
827 if test "x$NON_GNU_CPP" != x && test x$GCC != xyes && test "x$CPP" = x
828 then
829   CPP="$NON_GNU_CPP"
832 #### Some systems specify a CC to use unless we are using GCC.
833 #### Now that we know whether we are using GCC, we can decide whether
834 #### to use that one.
835 if test "x$NON_GNU_CC" != x && test x$GCC != xyes &&
836   test x$cc_specified != xyes
837 then
838   CC="$NON_GNU_CC"
841 if test x$GCC = xyes && test "x$GCC_TEST_OPTIONS" != x
842 then
843   CC="$CC $GCC_TEST_OPTIONS"
844 fi  
846 if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x
847 then
848   CC="$CC $NON_GCC_TEST_OPTIONS"
849 fi  
851 #### Some other nice autoconf tests.  If you add a test here which
852 #### should make an entry in src/config.h, don't forget to add an
853 #### #undef clause to src/config.h.in for autoconf to modify.
855 dnl checks for programs
856 AC_PROG_LN_S
857 AC_PROG_CPP
858 AC_PROG_INSTALL
859 AC_PROG_YACC
861 dnl checks for Unix variants
862 AC_AIX
864 dnl checks for header files
865 AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h)
866 AC_HEADER_STDC
867 AC_HEADER_TIME
868 AC_DECL_SYS_SIGLIST
870 dnl Some systems have utime.h but don't declare the struct anyplace.
871 AC_MSG_CHECKING(for struct utimbuf)
872 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
873 #include <sys/time.h>
874 #include <time.h>
875 #else
876 #ifdef HAVE_SYS_TIME_H
877 #include <sys/time.h>
878 #else
879 #include <time.h>
880 #endif
881 #endif
882 #ifdef HAVE_UTIME_H
883 #include <utime.h>
884 #endif], [static struct utimbuf x; x.actime = x.modtime;],
885   [AC_MSG_RESULT(yes)
886    AC_DEFINE(HAVE_STRUCT_UTIMBUF)],
887   AC_MSG_RESULT(no))
889 dnl checks for typedefs
890 AC_TYPE_SIGNAL
892 AC_MSG_CHECKING(for struct timeval)
893 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
894 #include <sys/time.h>
895 #include <time.h>
896 #else
897 #ifdef HAVE_SYS_TIME_H
898 #include <sys/time.h>
899 #else
900 #include <time.h>
901 #endif
902 #endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
903   [AC_MSG_RESULT(yes)
904    AC_DEFINE(HAVE_TIMEVAL)],
905   AC_MSG_RESULT(no))
907 dnl checks for structure members
908 AC_STRUCT_TM
909 AC_STRUCT_TIMEZONE
911 dnl checks for compiler characteristics
912 AC_C_CONST
914 dnl check for Make feature
915 AC_PROG_MAKE_SET
917 dnl checks for operating system services
918 AC_SYS_LONG_FILE_NAMES
920 #### Choose a window system.
922 AC_PATH_X
923 if test "$no_x" = yes; then
924   window_system=none
925 else
926   window_system=x11
929 if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
930   LD_SWITCH_X_SITE="-L${x_libraries}"
931   LD_SWITCH_X_SITE_AUX="-R${x_libraries}"
933 if test "${x_includes}" != NONE && test -n "${x_includes}"; then
934   C_SWITCH_X_SITE="-I${x_includes}"
937 if test x"${x_includes}" = x; then
938   bitmapdir=/usr/include/X11/bitmaps
939 else
940   bitmapdir="${x_includes}/bitmaps"
943 case "${window_system}" in
944   x11 )
945     HAVE_X_WINDOWS=yes
946     HAVE_X11=yes
947     case "${with_x_toolkit}" in
948       athena | lucid ) USE_X_TOOLKIT=LUCID ;;   
949       motif ) USE_X_TOOLKIT=MOTIF ;;    
950 dnl      open-look ) USE_X_TOOLKIT=OPEN_LOOK ;; 
951       * ) USE_X_TOOLKIT=none ;;
952     esac
953   ;;
954   none )
955     HAVE_X_WINDOWS=no
956     HAVE_X11=no
957     USE_X_TOOLKIT=none
958   ;;
959 esac
960 X_TOOLKIT_TYPE=$USE_X_TOOLKIT
962 ### If we're using X11, we should use the X menu package.
963 HAVE_X_MENU=no
964 case ${HAVE_X11} in
965   yes ) HAVE_X_MENU=yes ;;
966 esac
968 #### Extract some information from the operating system and machine files.
970 AC_CHECKING([the machine- and system-dependent files to find out
971  - which libraries the lib-src programs will want, and
972  - whether the GNU malloc routines are usable])
974 ### First figure out CFLAGS (which we use for running the compiler here)
975 ### and REAL_CFLAGS (which we use for real compilation).
976 ### The two are the same except on a few systems, where they are made
977 ### different to work around various lossages.  For example,
978 ### GCC 2.5 on Linux needs them to be different because it treats -g
979 ### as implying static linking.
981 ### If the CFLAGS env var is specified, we use that value
982 ### instead of the default.
984 ### It's not important that this name contain the PID; you can't run
985 ### two configures in the same directory and have anything work
986 ### anyway.
987 tempcname="conftest.c"
989 echo '
990 #include "'${srcdir}'/src/'${opsysfile}'"
991 #include "'${srcdir}'/src/'${machfile}'"
992 #ifndef LIBS_MACHINE
993 #define LIBS_MACHINE
994 #endif
995 #ifndef LIBS_SYSTEM
996 #define LIBS_SYSTEM
997 #endif
998 #ifndef C_SWITCH_SYSTEM
999 #define C_SWITCH_SYSTEM
1000 #endif
1001 #ifndef C_SWITCH_MACHINE
1002 #define C_SWITCH_MACHINE
1003 #endif
1004 configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
1005 configure___ c_switch_system=C_SWITCH_SYSTEM
1006 configure___ c_switch_machine=C_SWITCH_MACHINE
1008 #ifndef LIB_X11_LIB
1009 #define LIB_X11_LIB -lX11
1010 #endif
1012 #ifndef LIBX11_MACHINE
1013 #define LIBX11_MACHINE
1014 #endif
1016 #ifndef LIBX11_SYSTEM
1017 #define LIBX11_SYSTEM
1018 #endif
1019 configure___ LIBX=LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM
1021 #ifdef UNEXEC
1022 configure___ unexec=UNEXEC
1023 #else
1024 configure___ unexec=unexec.o
1025 #endif
1027 #ifdef SYSTEM_MALLOC
1028 configure___ system_malloc=yes
1029 #else
1030 configure___ system_malloc=no
1031 #endif
1033 #ifndef C_DEBUG_SWITCH
1034 #define C_DEBUG_SWITCH -g
1035 #endif
1037 #ifndef C_OPTIMIZE_SWITCH
1038 #define C_OPTIMIZE_SWITCH -O
1039 #endif
1041 #ifdef THIS_IS_CONFIGURE
1043 /* Get the CFLAGS for tests in configure.  */
1044 #ifdef __GNUC__
1045 configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${CFLAGS}'
1046 #else
1047 configure___ CFLAGS=C_DEBUG_SWITCH '${CFLAGS}'
1048 #endif
1050 #else /* not THIS_IS_CONFIGURE */
1052 /* Get the CFLAGS for real compilation.  */
1053 #ifdef __GNUC__
1054 configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${CFLAGS}'
1055 #else
1056 configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${CFLAGS}'
1057 #endif
1059 #endif /* not THIS_IS_CONFIGURE */
1060 ' > ${tempcname}
1062 # The value of CPP is a quoted variable reference, so we need to do this
1063 # to get its actual value...
1064 CPP=`eval "echo $CPP"`
1065 changequote(, )dnl
1066 eval `${CPP} -Isrc ${tempcname} \
1067        | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
1068 if test "x$CFLAGS" = x; then
1069   eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \
1070          | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
1071 else
1072   REAL_CFLAGS="$CFLAGS"
1074 changequote([, ])dnl
1075 rm ${tempcname}
1077 ### Compute the unexec source name from the object name.
1078 UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`"
1080 # Do the opsystem or machine files prohibit the use of the GNU malloc?
1081 # Assume not, until told otherwise.
1082 GNU_MALLOC=yes
1083 if test "${system_malloc}" = "yes"; then
1084   GNU_MALLOC=no
1085   GNU_MALLOC_reason="
1086   (The GNU allocators don't work with this system configuration.)"
1089 if test x"${REL_ALLOC}" = x; then
1090   REL_ALLOC=${GNU_MALLOC}
1093 LISP_FLOAT_TYPE=yes
1096 #### Add the libraries to LIBS and check for some functions.
1098 CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
1099 LIBS="$libsrc_libs"
1101 dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
1102 dnl and also adds -ldnet to LIBS, which Autoconf uses for checks.
1103 AC_CHECK_LIB(dnet, dnet_ntoa)
1104 dnl This causes -lresolv to get used in subsequent tests,
1105 dnl which causes failures on some systems such as HPUX 9.
1106 dnl AC_CHECK_LIB(resolv, gethostbyname)
1108 dnl FIXME replace main with a function we actually want from this library.
1109 AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
1111 AC_MSG_CHECKING(for XFree86)
1112 if test -d /usr/X386/include; then
1113   HAVE_XFREE386=yes
1114   : ${C_SWITCH_X_SITE="-I/usr/X386/include"}
1115 else
1116   HAVE_XFREE386=no
1118 AC_MSG_RESULT($HAVE_XFREE386)
1120 # We change CFLAGS temporarily so that C_SWITCH_X_SITE gets used
1121 # for the tests that follow.
1123 if test "${HAVE_X11}" = "yes"; then
1124   DEFS="$C_SWITCH_X_SITE $DEFS"
1125   LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS"
1126   CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
1127   AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
1128 XScreenNumberOfScreen XSetWMProtocols)
1131 if test "${USE_X_TOOLKIT}" != "none"; then
1132   AC_MSG_CHECKING(X11 toolkit version)
1133   AC_TRY_LINK([#include <X11/Intrinsic.h>],
1134 [#if XtSpecificationRelease < 6
1135 fail;
1136 #endif
1137 ], [AC_MSG_RESULT(6)
1138     AC_DEFINE(HAVE_X11XTR6)],
1139    [AC_MSG_RESULT(not 6)])
1142 # If netdb.h doesn't declare h_errno, we must declare it by hand.
1143 AC_MSG_CHECKING(whether netdb declarares h_errno)
1144 AC_TRY_LINK([#include <netdb.h>],
1145   [return h_errno;],
1146   [AC_MSG_RESULT(yes)
1147    AC_DEFINE(HAVE_H_ERRNO)],
1148   [AC_MSG_RESULT(no)])
1150 AC_FUNC_ALLOCA
1152 # logb and frexp are found in -lm on most systems.
1153 AC_CHECK_LIB(m, logb)
1154 AC_CHECK_FUNCS(gettimeofday gethostname dup2 rename closedir mkdir rmdir \
1155 random lrand48 bcopy bcmp logb frexp fmod drem ftime res_init setsid \
1156 strerror fpathconf select mktime eaccess getpagesize)
1158 ok_so_far=yes
1159 AC_CHECK_FUNC(socket, , ok_so_far=no)
1160 if test $ok_so_far = yes; then
1161   AC_CHECK_HEADER(netinet/in.h, , ok_so_far=no)
1163 if test $ok_so_far = yes; then
1164   AC_CHECK_HEADER(arpa/inet.h, , ok_so_far=no)
1166 if test $ok_so_far = yes; then
1167   AC_DEFINE(HAVE_INET_SOCKETS)
1170 if test -f /usr/lpp/X11/bin/smt.exp; then
1171   AC_DEFINE(HAVE_AIX_SMT_EXP)
1174 # Set up the CFLAGS for real compilation, so we can substitute it.
1175 CFLAGS="$REAL_CFLAGS"
1177 changequote(, )dnl
1178 #### Find out which version of Emacs this is.
1179 version=`grep 'defconst[         ]*emacs-version' ${srcdir}/lisp/version.el \
1180          | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`
1181 changequote([, ])dnl
1182 if test x"${version}" = x; then
1183   AC_MSG_ERROR(can't find current emacs version in \`${srcdir}/lisp/version.el'.)
1186 ### Specify what sort of things we'll be editing into Makefile and config.h.
1187 ### Use configuration here uncanonicalized to avoid exceeding size limits.
1188 AC_SUBST(version)
1189 AC_SUBST(configuration)
1190 AC_SUBST(canonical)
1191 AC_SUBST(srcdir)
1192 AC_SUBST(prefix)
1193 AC_SUBST(exec_prefix)
1194 AC_SUBST(bindir)
1195 AC_SUBST(datadir)
1196 AC_SUBST(sharedstatedir)
1197 AC_SUBST(libexecdir)
1198 AC_SUBST(mandir)
1199 AC_SUBST(infodir)
1200 AC_SUBST(lispdir)
1201 AC_SUBST(locallisppath)
1202 AC_SUBST(lisppath)
1203 AC_SUBST(etcdir)
1204 AC_SUBST(lockdir)
1205 AC_SUBST(archlibdir)
1206 AC_SUBST(docdir)
1207 AC_SUBST(bitmapdir)
1208 AC_SUBST(c_switch_system)
1209 AC_SUBST(c_switch_machine)
1210 AC_SUBST(LD_SWITCH_X_SITE)
1211 AC_SUBST(LD_SWITCH_X_SITE_AUX)
1212 AC_SUBST(C_SWITCH_X_SITE)
1213 AC_SUBST(CFLAGS)
1214 AC_SUBST(X_TOOLKIT_TYPE)
1215 AC_SUBST(machfile)
1216 AC_SUBST(opsysfile)
1218 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION,  "${canonical}")
1219 AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}")
1220 AC_DEFINE_UNQUOTED(config_machfile,  "${machfile}")
1221 AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}")
1222 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE})
1223 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX})
1224 AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE,  ${C_SWITCH_X_SITE})
1225 AC_DEFINE_UNQUOTED(UNEXEC_SRC,       ${UNEXEC_SRC})
1227 if test "${HAVE_X_WINDOWS}" = "yes" ; then
1228   AC_DEFINE(HAVE_X_WINDOWS)
1230 if test "${USE_X_TOOLKIT}" != "none" ; then
1231   AC_DEFINE(USE_X_TOOLKIT)
1233 if test "${HAVE_X11}" = "yes" ; then
1234   AC_DEFINE(HAVE_X11)
1236 if test "${HAVE_XFREE386}" = "yes" ; then
1237   AC_DEFINE(HAVE_XFREE386)
1239 if test "${HAVE_X_MENU}" = "yes" ; then
1240   AC_DEFINE(HAVE_X_MENU)
1242 if test "${GNU_MALLOC}" = "yes" ; then
1243   AC_DEFINE(GNU_MALLOC)
1245 if test "${REL_ALLOC}" = "yes" ; then
1246   AC_DEFINE(REL_ALLOC)
1248 if test "${LISP_FLOAT_TYPE}" = "yes" ; then
1249   AC_DEFINE(LISP_FLOAT_TYPE)
1252 #### Report on what we decided to do.
1253 echo "
1255 Configured for \`${canonical}'.
1257   Where should the build process find the source code?    ${srcdir}
1258   What operating system and machine description files should Emacs use?
1259         \`${opsysfile}' and \`${machfile}'
1260   What compiler should emacs be built with?               ${CC} ${CFLAGS}
1261   Should Emacs use the GNU version of malloc?             ${GNU_MALLOC}${GNU_MALLOC_reason}
1262   Should Emacs use the relocating allocator for buffers?  ${REL_ALLOC}
1263   What window system should Emacs use?                    ${window_system}
1264   What toolkit should Emacs use?                          ${USE_X_TOOLKIT}${x_includes+
1265   Where do we find X Windows header files?                }${x_includes}${x_libraries+
1266   Where do we find X Windows libraries?                   }${x_libraries}
1270 # Remove any trailing slashes in these variables.
1271 changequote(, )dnl
1272 test "${prefix}" != NONE &&
1273   prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
1274 test "${exec_prefix}" != NONE &&
1275   exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`
1276 changequote([, ])dnl
1278 AC_OUTPUT(Makefile lib-src/Makefile.in oldXMenu/Makefile \
1279         man/Makefile lwlib/Makefile src/Makefile.in, [
1281 ### Make the necessary directories, if they don't exist.
1282 for dir in cpp etc ; do
1283   test -d ${dir} || mkdir ${dir}
1284 done
1286 # Build src/Makefile from ${srcdir}/src/Makefile.in.  This must be done
1287 # after src/config.h is built, since we rely on that file.
1289 changequote(, )dnl The horror, the horror.
1290 # Now get this: Some word that is part of the ${srcdir} directory name
1291 # or the ${configuration} value might, just might, happen to be an
1292 # identifier like `sun4' or `i386' or something, and be predefined by
1293 # the C preprocessor to some helpful value like 1, or maybe the empty
1294 # string.  Needless to say consequent macro substitutions are less
1295 # than conducive to the makefile finding the correct directory.
1296 undefs="`echo $top_srcdir $configuration $canonical |
1297 sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/  *$//' \
1298     -e 's/  */ -U/g' -e 's/-U[0-9][^ ]*//g' \
1300 changequote([, ])dnl
1302 echo creating lib-src/Makefile
1303 ( cd lib-src
1304   rm -f junk.c junk1.c junk2.c
1305   sed -e '/start of cpp stuff/q' \
1306       < Makefile.in > junk1.c
1307   sed -e '1,/start of cpp stuff/d'\
1308       -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
1309       < Makefile.in > junk.c
1310   $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
1311       sed -e 's/^ /     /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
1312   cat junk1.c junk2.c > Makefile.new
1313   rm -f junk.c junk1.c junk2.c
1314   chmod 444 Makefile.new
1315   mv -f Makefile.new Makefile
1318 echo creating src/Makefile
1319 ( cd src
1320   rm -f junk.c junk1.c junk2.c
1321   sed -e '/start of cpp stuff/q' \
1322       < Makefile.in > junk1.c
1323   sed -e '1,/start of cpp stuff/d'\
1324       -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
1325       < Makefile.in > junk.c
1326   $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
1327       sed -e 's/^ /     /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
1328   cat junk1.c junk2.c > Makefile.new
1329   rm -f junk.c junk1.c junk2.c
1330   chmod 444 Makefile.new
1331   mv -f Makefile.new Makefile
1334 if test ! -f src/.gdbinit && test -f $top_srcdir/src/.gdbinit; then
1335   echo creating src/.gdbinit
1336   echo source $top_srcdir/src/.gdbinit > src/.gdbinit
1339 ], [CPP="$CPP" CPPFLAGS="$CPPFLAGS"])