Use SAVE_MODIFF and BUF_SAVE_MODIFF
[emacs.git] / configure.in
blob31267bdba2583352f7f75134ef7aec0c90c0b7b3
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-irix5.[01]* )
596     machine=iris4d opsys=irix5-0
597   ;;
598   mips-sgi-irix5* | mips-sgi-irix* )
599     machine=iris4d opsys=irix5-2
600   ;;
602   ## SONY machines
603   m68*-sony-bsd4.2* )
604     machine=news opsys=bsd4-2
605   ;;
606   m68*-sony-bsd4.3* )
607     machine=news opsys=bsd4-3
608   ;;
609   m68*-sony-newsos3* | m68*-sony-news3*)
610     machine=news opsys=bsd4-3
611   ;;
612   mips-sony-bsd* | mips-sony-newsos4* | mips-sony-news4*)
613     machine=news-risc opsys=bsd4-3
614   ;;
615   mips-sony-news* )
616     machine=news-risc opsys=newsos5
617   ;;
619   ## Stride
620   m68*-stride-sysv* )
621     machine=stride opsys=usg5-2
622   ;;
624   ## Suns
625   *-sun-sunos* | *-sun-bsd* | *-sun-solaris* | i[345]86-*-solaris2* | i[345]86-*-sunos5* )
626     case "${canonical}" in
627       m68*-sunos1* )    machine=sun1 ;;
628       m68*-sunos2* )    machine=sun2 ;;
629       m68* )            machine=sun3 ;;
630       i[345]86-sun-sunos[34]* ) machine=sun386 ;;
631       i[345]86-*-* )     machine=intel386 ;;
632       sparc* )          machine=sparc ;;
633       * )               unported=yes ;;
634     esac
635     case "${canonical}" in
636       ## The Sun386 didn't get past 4.0.
637       i[345]86-*-sunos4   ) opsys=sunos4-0 ;;
638       *-sunos4.0*         ) opsys=sunos4-0 ;;
639       *-sunos4.1.3*       ) opsys=sunos4-1-3
640                 NON_GCC_TEST_OPTIONS=-Bstatic
641                 GCC_TEST_OPTIONS=-static
642                 ;;
643       *-sunos4shr*        ) opsys=sunos4shr ;;
644       *-sunos4* | *-sunos ) opsys=sunos4-1
645                 NON_GCC_TEST_OPTIONS=-Bstatic
646                 GCC_TEST_OPTIONS=-static
647                 ;;
648       *-sunos5.3* | *-solaris2.3* )
649                 opsys=sol2-3
650                 NON_GNU_CPP=/usr/ccs/lib/cpp
651                 ;;
652       *-sunos5.4* | *-solaris2.4* )
653                 opsys=sol2-4
654                 NON_GNU_CPP=/usr/ccs/lib/cpp
655                 ;;
656       *-sunos5* | *-solaris* )
657                 opsys=sol2
658                 NON_GNU_CPP=/usr/ccs/lib/cpp
659                 ;;
660       *                   ) opsys=bsd4-2   ;;
661     esac
662   ;;
664   ## Tadpole 68k
665   m68*-tadpole-sysv* )
666     machine=tad68k opsys=usg5-3
667   ;;
669   ## Tahoe machines
670   tahoe-tahoe-bsd4.2* )
671     machine=tahoe opsys=bsd4-2
672   ;;
673   tahoe-tahoe-bsd4.3* )
674     machine=tahoe opsys=bsd4-3
675   ;;
677   ## Tandem Integrity S2
678   mips-tandem-sysv* )
679     machine=tandem-s2 opsys=usg5-3
680   ;;
682   ## Tektronix XD88
683   m88k-tektronix-sysv3* )
684   machine=tekxd88 opsys=usg5-3
685   ;;
687   ## Tektronix 16000 box (6130?)
688   ns16k-tektronix-bsd* )
689     machine=ns16000 opsys=bsd4-2
690   ;;
691   ## Tektronix 4300
692   ## src/m/tek4300.h hints that this is a m68k machine.
693   m68*-tektronix-bsd* )
694     machine=tek4300 opsys=bsd4-3
695   ;;
697   ## Titan P2 or P3
698   ## We seem to have lost the machine-description file titan.h!
699   titan-titan-sysv* )
700     machine=titan opsys=usg5-3
701   ;;
702   
703   ## Ustation E30 (SS5E)
704   m68*-unisys-uniplus* )
705     machine=ustation opsystem=unipl5-2
706   ;;
708   ## Vaxen.
709   vax-dec-* )
710     machine=vax
711     case "${canonical}" in
712       *-bsd4.1* )                                       opsys=bsd4-1 ;;
713       *-bsd4.2* | *-ultrix[0-3].* | *-ultrix4.0* )      opsys=bsd4-2 ;;
714       *-bsd4.3* | *-ultrix* )                           opsys=bsd4-3 ;;
715       *-bsd386* | *-bsdi* )                             opsys=bsd386 ;;
716       *-sysv[01]* | *-sysvr[01]* )                      opsys=usg5-0 ;;
717       *-sysv2* | *-sysvr2* )                            opsys=usg5-2 ;;
718       *-vms* )                                          opsys=vms ;;
719       * )                                               unported=yes
720     esac
721   ;;
723   ## Whitechapel MG1
724   ns16k-whitechapel-* )
725     machine=mg1
726     ## We don't know what sort of OS runs on these; we'll let the
727     ## operating system guessing code below try.
728   ;;
730   ## Wicat
731   m68*-wicat-sysv* )
732     machine=wicat opsys=usg5-2
733   ;;
735   ## Intel 386 machines where we don't care about the manufacturer
736   i[345]86-*-* )
737     machine=intel386
738     case "${canonical}" in
739       *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;;
740       *-isc2.2* )               opsys=isc2-2 ;;
741       *-isc4.0* )               opsys=isc4-0 ;;
742       *-isc* )                  opsys=isc3-0 ;;
743       *-esix5* )                opsys=esix5r4; NON_GNU_CPP=/usr/lib/cpp ;;
744       *-esix* )                 opsys=esix ;;
745       *-xenix* )                opsys=xenix ;;
746       *-linux* )                opsys=linux ;;
747       *-sco3.2v4* )             opsys=sco4 ; NON_GNU_CPP=/lib/cpp  ;;
748       *-bsd386* | *-bsdi* )     opsys=bsd386 ;;
749       *-386bsd* )               opsys=386bsd ;;
750       *-freebsd* )              opsys=freebsd ;;
751       *-nextstep* )             opsys=mach2 ;;
752       ## Otherwise, we'll fall through to the generic opsys code at the bottom.
753     esac
754   ;;
756   * )
757     unported=yes
758   ;;
759 esac
761 ### If the code above didn't choose an operating system, just choose
762 ### an operating system based on the configuration name.  You really
763 ### only want to use this when you have no idea what the right
764 ### operating system is; if you know what operating systems a machine
765 ### runs, it's cleaner to make it explicit in the case statement
766 ### above.
767 if test x"${opsys}" = x; then
768   case "${canonical}" in
769     *-gnu* )                            opsys=gnu ;;
770     *-bsd4.[01] )                       opsys=bsd4-1 ;;
771     *-bsd4.2 )                          opsys=bsd4-2 ;;
772     *-bsd4.3 )                          opsys=bsd4-3 ;;
773     *-sysv0 | *-sysvr0 )                opsys=usg5-0 ;;
774     *-sysv2 | *-sysvr2 )                opsys=usg5-2 ;;
775     *-sysv2.2 | *-sysvr2.2 )            opsys=usg5-2-2 ;;
776     *-sysv3 | *-sysvr3 )                opsys=usg5-3 ;;
777     *-sysv4 | *-sysvr4 )                opsys=usg5-4 ;;
778     *-sysv4.1 | *-sysvr4.1 )
779         NON_GNU_CPP=/usr/lib/cpp
780         opsys=usg5-4 ;;
781     *-sysv4.2 | *-sysvr4.2 )
782         if [ x$NON_GNU_CPP = x ]; then
783           NON_GNU_CPP=/usr/ccs/lib/cpp
784         fi
785         opsys=usg5-4-2 ;;
786     * )
787       unported=yes
788     ;;
789   esac
792 changequote([, ])dnl
794 if test $unported = yes; then
795   AC_MSG_ERROR([Emacs hasn't been ported to \`${canonical}' systems.
796 Check \`etc/MACHINES' for recognized configuration names.])
799 machfile="m/${machine}.h"
800 opsysfile="s/${opsys}.h"
803 #### Choose a compiler.
804 test -n "$CC" && cc_specified=yes
806 case ${with_gcc} in
807   "yes" ) CC="gcc" GCC=yes ;;
808   "no"  ) : ${CC=cc} ;;
809   * ) AC_PROG_CC
810 esac
812 # On Suns, sometimes $CPP names a directory.
813 if test -n "$CPP" && test -d "$CPP"; then
814   CPP=
817 #### Some systems specify a CPP to use unless we are using GCC.
818 #### Now that we know whether we are using GCC, we can decide whether
819 #### to use that one.
820 if test "x$NON_GNU_CPP" != x && test x$GCC != xyes && test "x$CPP" = x
821 then
822   CPP="$NON_GNU_CPP"
825 #### Some systems specify a CC to use unless we are using GCC.
826 #### Now that we know whether we are using GCC, we can decide whether
827 #### to use that one.
828 if test "x$NON_GNU_CC" != x && test x$GCC != xyes &&
829   test x$cc_specified != xyes
830 then
831   CC="$NON_GNU_CC"
834 if test x$GCC = xyes && test "x$GCC_TEST_OPTIONS" != x
835 then
836   CC="$CC $GCC_TEST_OPTIONS"
837 fi  
839 if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x
840 then
841   CC="$CC $NON_GCC_TEST_OPTIONS"
842 fi  
844 #### Some other nice autoconf tests.  If you add a test here which
845 #### should make an entry in src/config.h, don't forget to add an
846 #### #undef clause to src/config.h.in for autoconf to modify.
848 dnl checks for programs
849 AC_PROG_LN_S
850 AC_PROG_CPP
851 AC_PROG_INSTALL
852 AC_PROG_YACC
854 dnl checks for Unix variants
855 AC_AIX
857 dnl checks for header files
858 AC_CHECK_HEADERS(sys/timeb.h sys/time.h unistd.h utime.h)
859 AC_HEADER_STDC
860 AC_HEADER_TIME
861 AC_DECL_SYS_SIGLIST
863 dnl Some systems have utime.h but don't declare the struct anyplace.
864 AC_MSG_CHECKING(for struct utimbuf)
865 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
866 #include <sys/time.h>
867 #include <time.h>
868 #else
869 #ifdef HAVE_SYS_TIME_H
870 #include <sys/time.h>
871 #else
872 #include <time.h>
873 #endif
874 #endif
875 #ifdef HAVE_UTIME_H
876 #include <utime.h>
877 #endif], [static struct utimbuf x; x.actime = x.modtime;],
878   [AC_MSG_RESULT(yes)
879    AC_DEFINE(HAVE_STRUCT_UTIMBUF)],
880   AC_MSG_RESULT(no))
882 dnl checks for typedefs
883 AC_TYPE_SIGNAL
885 AC_MSG_CHECKING(for struct timeval)
886 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
887 #include <sys/time.h>
888 #include <time.h>
889 #else
890 #ifdef HAVE_SYS_TIME_H
891 #include <sys/time.h>
892 #else
893 #include <time.h>
894 #endif
895 #endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
896   [AC_MSG_RESULT(yes)
897    AC_DEFINE(HAVE_TIMEVAL)],
898   AC_MSG_RESULT(no))
900 dnl checks for structure members
901 AC_STRUCT_TM
902 AC_STRUCT_TIMEZONE
904 dnl checks for compiler characteristics
905 AC_C_CONST
907 dnl check for Make feature
908 AC_PROG_MAKE_SET
910 dnl checks for operating system services
911 AC_SYS_LONG_FILE_NAMES
913 #### Choose a window system.
915 AC_PATH_X
916 if test "$no_x" = yes; then
917   window_system=none
918 else
919   window_system=x11
922 if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
923   LD_SWITCH_X_SITE="-L${x_libraries}"
924   LD_SWITCH_X_SITE_AUX="-R${x_libraries}"
926 if test "${x_includes}" != NONE && test -n "${x_includes}"; then
927   C_SWITCH_X_SITE="-I${x_includes}"
930 if test x"${x_includes}" = x; then
931   bitmapdir=/usr/include/X11/bitmaps
932 else
933   bitmapdir="${x_includes}/bitmaps"
936 case "${window_system}" in
937   x11 )
938     HAVE_X_WINDOWS=yes
939     HAVE_X11=yes
940     case "${with_x_toolkit}" in
941       athena | lucid ) USE_X_TOOLKIT=LUCID ;;   
942       motif ) USE_X_TOOLKIT=MOTIF ;;    
943 dnl      open-look ) USE_X_TOOLKIT=OPEN_LOOK ;; 
944       * ) USE_X_TOOLKIT=none ;;
945     esac
946   ;;
947   none )
948     HAVE_X_WINDOWS=no
949     HAVE_X11=no
950     USE_X_TOOLKIT=none
951   ;;
952 esac
953 X_TOOLKIT_TYPE=$USE_X_TOOLKIT
955 ### If we're using X11, we should use the X menu package.
956 HAVE_X_MENU=no
957 case ${HAVE_X11} in
958   yes ) HAVE_X_MENU=yes ;;
959 esac
961 #### Extract some information from the operating system and machine files.
963 AC_CHECKING([the machine- and system-dependent files to find out
964  - which libraries the lib-src programs will want, and
965  - whether the GNU malloc routines are usable])
967 ### First figure out CFLAGS (which we use for running the compiler here)
968 ### and REAL_CFLAGS (which we use for real compilation).
969 ### The two are the same except on a few systems, where they are made
970 ### different to work around various lossages.  For example,
971 ### GCC 2.5 on Linux needs them to be different because it treats -g
972 ### as implying static linking.
974 ### If the CFLAGS env var is specified, we use that value
975 ### instead of the default.
977 ### It's not important that this name contain the PID; you can't run
978 ### two configures in the same directory and have anything work
979 ### anyway.
980 tempcname="conftest.c"
982 echo '
983 #include "'${srcdir}'/src/'${opsysfile}'"
984 #include "'${srcdir}'/src/'${machfile}'"
985 #ifndef LIBS_MACHINE
986 #define LIBS_MACHINE
987 #endif
988 #ifndef LIBS_SYSTEM
989 #define LIBS_SYSTEM
990 #endif
991 #ifndef C_SWITCH_SYSTEM
992 #define C_SWITCH_SYSTEM
993 #endif
994 #ifndef C_SWITCH_MACHINE
995 #define C_SWITCH_MACHINE
996 #endif
997 configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
998 configure___ c_switch_system=C_SWITCH_SYSTEM
999 configure___ c_switch_machine=C_SWITCH_MACHINE
1001 #ifndef LIB_X11_LIB
1002 #define LIB_X11_LIB -lX11
1003 #endif
1005 #ifndef LIBX11_MACHINE
1006 #define LIBX11_MACHINE
1007 #endif
1009 #ifndef LIBX11_SYSTEM
1010 #define LIBX11_SYSTEM
1011 #endif
1012 configure___ LIBX=LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM
1014 #ifdef UNEXEC
1015 configure___ unexec=UNEXEC
1016 #else
1017 configure___ unexec=unexec.o
1018 #endif
1020 #ifdef SYSTEM_MALLOC
1021 configure___ system_malloc=yes
1022 #else
1023 configure___ system_malloc=no
1024 #endif
1026 #ifndef C_DEBUG_SWITCH
1027 #define C_DEBUG_SWITCH -g
1028 #endif
1030 #ifndef C_OPTIMIZE_SWITCH
1031 #define C_OPTIMIZE_SWITCH -O
1032 #endif
1034 #ifdef THIS_IS_CONFIGURE
1036 /* Get the CFLAGS for tests in configure.  */
1037 #ifdef __GNUC__
1038 configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${CFLAGS}'
1039 #else
1040 configure___ CFLAGS=C_DEBUG_SWITCH '${CFLAGS}'
1041 #endif
1043 #else /* not THIS_IS_CONFIGURE */
1045 /* Get the CFLAGS for real compilation.  */
1046 #ifdef __GNUC__
1047 configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${CFLAGS}'
1048 #else
1049 configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${CFLAGS}'
1050 #endif
1052 #endif /* not THIS_IS_CONFIGURE */
1053 ' > ${tempcname}
1055 # The value of CPP is a quoted variable reference, so we need to do this
1056 # to get its actual value...
1057 CPP=`eval "echo $CPP"`
1058 changequote(, )dnl
1059 eval `${CPP} -Isrc ${tempcname} \
1060        | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
1061 if test "x$CFLAGS" = x; then
1062   eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \
1063          | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
1064 else
1065   REAL_CFLAGS="$CFLAGS"
1067 changequote([, ])dnl
1068 rm ${tempcname}
1070 ### Compute the unexec source name from the object name.
1071 UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`"
1073 # Do the opsystem or machine files prohibit the use of the GNU malloc?
1074 # Assume not, until told otherwise.
1075 GNU_MALLOC=yes
1076 if test "${system_malloc}" = "yes"; then
1077   GNU_MALLOC=no
1078   GNU_MALLOC_reason="
1079   (The GNU allocators don't work with this system configuration.)"
1082 if test x"${REL_ALLOC}" = x; then
1083   REL_ALLOC=${GNU_MALLOC}
1086 LISP_FLOAT_TYPE=yes
1089 #### Add the libraries to LIBS and check for some functions.
1091 CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
1092 LIBS="$libsrc_libs"
1094 dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
1095 dnl and also adds -ldnet to LIBS, which Autoconf uses for checks.
1096 AC_CHECK_LIB(dnet, dnet_ntoa)
1097 dnl This causes -lresolv to get used in subsequent tests,
1098 dnl which causes failures on some systems such as HPUX 9.
1099 dnl AC_CHECK_LIB(resolv, gethostbyname)
1101 dnl FIXME replace main with a function we actually want from this library.
1102 AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
1104 AC_MSG_CHECKING(for XFree86)
1105 if test -d /usr/X386/include; then
1106   HAVE_XFREE386=yes
1107   : ${C_SWITCH_X_SITE="-I/usr/X386/include"}
1108 else
1109   HAVE_XFREE386=no
1111 AC_MSG_RESULT($HAVE_XFREE386)
1113 # We change CFLAGS temporarily so that C_SWITCH_X_SITE gets used
1114 # for the tests that follow.
1116 if test "${HAVE_X11}" = "yes"; then
1117   DEFS="$C_SWITCH_X_SITE $DEFS"
1118   LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS"
1119   CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
1120   AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
1121 XScreenNumberOfScreen XSetWMProtocols)
1124 if test "${USE_X_TOOLKIT}" != "none"; then
1125   AC_MSG_CHECKING(X11 toolkit version)
1126   AC_TRY_LINK([#include <X11/Intrinsic.h>],
1127 [#if XtSpecificationRelease < 6
1128 fail;
1129 #endif
1130 ], [AC_MSG_RESULT(6)
1131     AC_DEFINE(HAVE_X11XTR6)],
1132    [AC_MSG_RESULT(not 6)])
1135 # If netdb.h doesn't declare h_errno, we must declare it by hand.
1136 AC_MSG_CHECKING(whether netdb declarares h_errno)
1137 AC_TRY_LINK([#include <netdb.h>],
1138   [return h_errno;],
1139   [AC_MSG_RESULT(yes)
1140    AC_DEFINE(HAVE_H_ERRNO)],
1141   [AC_MSG_RESULT(no)])
1143 AC_FUNC_ALLOCA
1145 # logb and frexp are found in -lm on most systems.
1146 AC_CHECK_LIB(m, logb)
1147 AC_CHECK_FUNCS(gettimeofday gethostname dup2 rename closedir mkdir rmdir \
1148 random lrand48 bcopy bcmp logb frexp fmod drem ftime res_init setsid \
1149 strerror fpathconf select mktime eaccess getpagesize)
1151 ok_so_far=yes
1152 AC_CHECK_FUNC(socket, , ok_so_far=no)
1153 if test $ok_so_far = yes; then
1154   AC_CHECK_HEADER(netinet/in.h, , ok_so_far=no)
1156 if test $ok_so_far = yes; then
1157   AC_CHECK_HEADER(arpa/inet.h, , ok_so_far=no)
1159 if test $ok_so_far = yes; then
1160   AC_DEFINE(HAVE_INET_SOCKETS)
1163 if test -f /usr/lpp/X11/bin/smt.exp; then
1164   AC_DEFINE(HAVE_AIX_SMT_EXP)
1167 # Set up the CFLAGS for real compilation, so we can substitute it.
1168 CFLAGS="$REAL_CFLAGS"
1170 changequote(, )dnl
1171 #### Find out which version of Emacs this is.
1172 version=`grep 'defconst[         ]*emacs-version' ${srcdir}/lisp/version.el \
1173          | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`
1174 changequote([, ])dnl
1175 if test x"${version}" = x; then
1176   AC_MSG_ERROR(can't find current emacs version in \`${srcdir}/lisp/version.el'.)
1179 ### Specify what sort of things we'll be editing into Makefile and config.h.
1180 ### Use configuration here uncanonicalized to avoid exceeding size limits.
1181 AC_SUBST(version)
1182 AC_SUBST(configuration)
1183 AC_SUBST(canonical)
1184 AC_SUBST(srcdir)
1185 AC_SUBST(prefix)
1186 AC_SUBST(exec_prefix)
1187 AC_SUBST(bindir)
1188 AC_SUBST(datadir)
1189 AC_SUBST(sharedstatedir)
1190 AC_SUBST(libexecdir)
1191 AC_SUBST(mandir)
1192 AC_SUBST(infodir)
1193 AC_SUBST(lispdir)
1194 AC_SUBST(locallisppath)
1195 AC_SUBST(lisppath)
1196 AC_SUBST(etcdir)
1197 AC_SUBST(lockdir)
1198 AC_SUBST(archlibdir)
1199 AC_SUBST(docdir)
1200 AC_SUBST(bitmapdir)
1201 AC_SUBST(c_switch_system)
1202 AC_SUBST(c_switch_machine)
1203 AC_SUBST(LD_SWITCH_X_SITE)
1204 AC_SUBST(LD_SWITCH_X_SITE_AUX)
1205 AC_SUBST(C_SWITCH_X_SITE)
1206 AC_SUBST(CFLAGS)
1207 AC_SUBST(X_TOOLKIT_TYPE)
1208 AC_SUBST(machfile)
1209 AC_SUBST(opsysfile)
1211 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION,  "${canonical}")
1212 AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${config_options}")
1213 AC_DEFINE_UNQUOTED(config_machfile,  "${machfile}")
1214 AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}")
1215 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE})
1216 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX})
1217 AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE,  ${C_SWITCH_X_SITE})
1218 AC_DEFINE_UNQUOTED(UNEXEC_SRC,       ${UNEXEC_SRC})
1220 if test "${HAVE_X_WINDOWS}" = "yes" ; then
1221   AC_DEFINE(HAVE_X_WINDOWS)
1223 if test "${USE_X_TOOLKIT}" != "none" ; then
1224   AC_DEFINE(USE_X_TOOLKIT)
1226 if test "${HAVE_X11}" = "yes" ; then
1227   AC_DEFINE(HAVE_X11)
1229 if test "${HAVE_XFREE386}" = "yes" ; then
1230   AC_DEFINE(HAVE_XFREE386)
1232 if test "${HAVE_X_MENU}" = "yes" ; then
1233   AC_DEFINE(HAVE_X_MENU)
1235 if test "${GNU_MALLOC}" = "yes" ; then
1236   AC_DEFINE(GNU_MALLOC)
1238 if test "${REL_ALLOC}" = "yes" ; then
1239   AC_DEFINE(REL_ALLOC)
1241 if test "${LISP_FLOAT_TYPE}" = "yes" ; then
1242   AC_DEFINE(LISP_FLOAT_TYPE)
1245 #### Report on what we decided to do.
1246 echo "
1248 Configured for \`${canonical}'.
1250   Where should the build process find the source code?    ${srcdir}
1251   What operating system and machine description files should Emacs use?
1252         \`${opsysfile}' and \`${machfile}'
1253   What compiler should emacs be built with?               ${CC} ${CFLAGS}
1254   Should Emacs use the GNU version of malloc?             ${GNU_MALLOC}${GNU_MALLOC_reason}
1255   Should Emacs use the relocating allocator for buffers?  ${REL_ALLOC}
1256   What window system should Emacs use?                    ${window_system}
1257   What toolkit should Emacs use?                          ${USE_X_TOOLKIT}${x_includes+
1258   Where do we find X Windows header files?                }${x_includes}${x_libraries+
1259   Where do we find X Windows libraries?                   }${x_libraries}
1263 # Remove any trailing slashes in these variables.
1264 changequote(, )dnl
1265 test "${prefix}" != NONE &&
1266   prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
1267 test "${exec_prefix}" != NONE &&
1268   exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`
1269 changequote([, ])dnl
1271 AC_OUTPUT(Makefile lib-src/Makefile.in oldXMenu/Makefile \
1272         man/Makefile lwlib/Makefile src/Makefile.in, [
1274 ### Make the necessary directories, if they don't exist.
1275 for dir in cpp etc ; do
1276   test -d ${dir} || mkdir ${dir}
1277 done
1279 # Build src/Makefile from ${srcdir}/src/Makefile.in.  This must be done
1280 # after src/config.h is built, since we rely on that file.
1282 changequote(, )dnl The horror, the horror.
1283 # Now get this: Some word that is part of the ${srcdir} directory name
1284 # or the ${configuration} value might, just might, happen to be an
1285 # identifier like `sun4' or `i386' or something, and be predefined by
1286 # the C preprocessor to some helpful value like 1, or maybe the empty
1287 # string.  Needless to say consequent macro substitutions are less
1288 # than conducive to the makefile finding the correct directory.
1289 undefs="`echo $top_srcdir $configuration $canonical |
1290 sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/  *$//' \
1291     -e 's/  */ -U/g' -e 's/-U[0-9][^ ]*//g' \
1293 changequote([, ])dnl
1295 echo creating lib-src/Makefile
1296 ( cd lib-src
1297   rm -f junk.c junk1.c junk2.c
1298   sed -e '/start of cpp stuff/q' \
1299       < Makefile.in > junk1.c
1300   sed -e '1,/start of cpp stuff/d'\
1301       -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
1302       < Makefile.in > junk.c
1303   $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
1304       sed -e 's/^ /     /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
1305   cat junk1.c junk2.c > Makefile.new
1306   rm -f junk.c junk1.c junk2.c
1307   chmod 444 Makefile.new
1308   mv -f Makefile.new Makefile
1311 echo creating src/Makefile
1312 ( cd src
1313   rm -f junk.c junk1.c junk2.c
1314   sed -e '/start of cpp stuff/q' \
1315       < Makefile.in > junk1.c
1316   sed -e '1,/start of cpp stuff/d'\
1317       -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
1318       < Makefile.in > junk.c
1319   $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
1320       sed -e 's/^ /     /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
1321   cat junk1.c junk2.c > Makefile.new
1322   rm -f junk.c junk1.c junk2.c
1323   chmod 444 Makefile.new
1324   mv -f Makefile.new Makefile
1326 ], [CPP="$CPP" CPPFLAGS="$CPPFLAGS"])