* ispell.el (check-ispell-version): suggest to try ispell4.el if
[emacs.git] / configure.in
blob5956c313d7ed2ad29215ad43ef4d9b8f7dd28840
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(1.111)dnl
6 AC_INIT(src/lisp.h)
7 AC_CONFIG_HEADER(src/config.h)
9 bindir='${exec_prefix}/bin'
10 datadir='${prefix}/lib'
11 statedir='${prefix}/lib'
12 libdir='${exec_prefix}/lib'
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='${statedir}/emacs/lock'
20 archlibdir='${libdir}/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(x-toolkit,
26 [  --with-x-toolkit=KIT    Use an X toolkit (KIT = lucid or athena)],
27 [         case "${withval}" in
28             y | ye | yes )      val=athena ;;
29             n | no )            val=no  ;;
30             l | lu | luc | luci | lucid )       val=lucid ;;
31             a | at | ath | athe | athena )      val=athena ;;
32 dnl These don't currently work.
33 dnl         m | mo | mot | moti | motif )       val=motif ;;
34 dnl         o | op | ope | open | open- | open-l | open-lo \
35 dnl             | open-loo | open-look )        val=open-look ;;
36             * )
37 dnl AC_MSG_ERROR([the \`--with-x-toolkit' option is supposed to have a value
38 dnl which is \`yes', \`no', \`lucid', \`athena', \`motif' or \`open-look'.])
39 AC_MSG_ERROR([the \`--with-x-toolkit' option is supposed to have a value
40 which is \`yes', \`no', \`lucid', or \`athena'.
41 Currently, \`yes', \`athena' and \`lucid' are synonyms.])
42             ;;
43           esac
44           with_x_toolkit=$val
46 dnl AC_ARG_ENABLE(single-tree,
47 dnl [  --enable-single-tree    Create a directory tree at DIR which looks like:
48 dnl                           .../DIR/bin/CONFIGNAME (emacs, etags, etc.)
49 dnl                           .../DIR/bin/CONFIGNAME/etc (movemail, etc.)
50 dnl                           .../DIR/common/lisp  (emacs' lisp files)
51 dnl                           .../DIR/common/site-lisp (local lisp files)
52 dnl                           .../DIR/common/lib (DOC, TUTORIAL, etc.)
53 dnl                           .../DIR/common/lock (lockfiles)])
55 #### Make srcdir absolute, if it isn't already.  It's important to
56 #### avoid running the path through pwd unnecessary, since pwd can
57 #### give you automounter prefixes, which can go away.  We do all this
58 #### so Emacs can find its files when run uninstalled.
59 case "${srcdir}" in
60   /* ) ;;
61   . )
62     ## We may be able to use the $PWD environment variable to make this
63     ## absolute.  But sometimes PWD is inaccurate.
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   extrasub='/^VPATH[     ]*=/c\
85 vpath %.c $(srcdir)\
86 vpath %.h $(srcdir)\
87 vpath %.y $(srcdir)\
88 vpath %.l $(srcdir)\
89 vpath %.s $(srcdir)\
90 vpath %.in $(srcdir)'
93 #### Given the configuration name, set machfile and opsysfile to the
94 #### names of the m/*.h and s/*.h files we should use.
96 ### Canonicalize the configuration name.
98 AC_CANONICAL_HOST
99 canonical=$host
100 configuration=$host_alias
102 changequote(, )dnl
104 ### If you add support for a new configuration, add code to this
105 ### switch statement to recognize your configuration name and select
106 ### the appropriate operating system and machine description files.
108 ### You would hope that you could choose an m/*.h file pretty much
109 ### based on the machine portion of the configuration name, and an s-
110 ### file based on the operating system portion.  However, it turns out
111 ### that each m/*.h file is pretty manufacturer-specific - for
112 ### example, apollo.h, hp9000s300.h, mega68k, news.h, and tad68k are
113 ### all 68000 machines; mips.h, pmax.h, and news-risc are all MIPS
114 ### machines.  So we basically have to have a special case for each
115 ### configuration name.
117 ### As far as handling version numbers on operating systems is
118 ### concerned, make sure things will fail in a fixable way.  If
119 ### /etc/MACHINES doesn't say anything about version numbers, be
120 ### prepared to handle anything reasonably.  If version numbers
121 ### matter, be sure /etc/MACHINES says something about it.
123 ### Eric Raymond says we should accept strings like "sysvr4" to mean
124 ### "System V Release 4"; he writes, "The old convention encouraged
125 ### confusion between `system' and `release' levels'."
127 machine='' opsys='' unported=no
128 case "${canonical}" in
130   ## NetBSD ports
131   *-*-netbsd* )
132     opsys=netbsd
133     case "${canonical}" in
134       i[345]86-*-netbsd*) machine=intel386 ;;
135       m68k-*-netbsd*)
136                         # This is somewhat bogus.
137                         machine=hp9000s300 ;;
138       mips-*-netbsd*)   machine=pmax ;;
139       ns32k-*-netbsd*)  machine=ns32000 ;;
140       sparc-*-netbsd*)  machine=sparc ;;
141     esac
142   ;;
144   ## Alliant machines
145   ## Strictly speaking, we need the version of the alliant operating
146   ## system to choose the right machine file, but currently the
147   ## configuration name doesn't tell us enough to choose the right
148   ## one; we need to give alliants their own operating system name to
149   ## do this right.  When someone cares, they can help us.
150   fx80-alliant-* )
151     machine=alliant4 opsys=bsd4-2
152   ;;
153   i860-alliant-* )
154     machine=alliant-2800 opsys=bsd4-3
155   ;;
157   ## Altos 3068
158   m68*-altos-sysv* )
159     machine=altos opsys=usg5-2
160   ;;
161     
162   ## Amdahl UTS
163   580-amdahl-sysv* )
164     machine=amdahl opsys=usg5-2-2
165   ;;
167   ## Appallings - I mean, Apollos - running Domain
168   m68*-apollo* )
169     machine=apollo opsys=bsd4-2
170   ;;
172   ## AT&T 3b2, 3b5, 3b15, 3b20
173   we32k-att-sysv* )
174     machine=att3b opsys=usg5-2-2
175   ;;
177   ## AT&T 3b1 - The Mighty Unix PC!
178   m68*-att-sysv* )
179     machine=7300 opsys=usg5-2-2
180   ;;
182   ## Bull dpx20
183   rs6000-bull-bosx* )
184     machine=ibmrs6000 opsys=aix3-2
185   ;;
187   ## Bull dpx2
188   m68*-bull-sysv3* )
189     machine=dpx2 opsys=usg5-3
190   ;;
192   ## Bull sps7
193   m68*-bull-sysv2* )
194     machine=sps7 opsys=usg5-2
195   ;;
197   ## CCI 5/32, 6/32 -- see "Tahoe".
199   ## Celerity
200   ## I don't know what configuration name to use for this; config.sub
201   ## doesn't seem to know anything about it.  Hey, Celerity users, get
202   ## in touch with us!
203   celerity-celerity-bsd* )
204     machine=celerity opsys=bsd4-2
205   ;;
207   ## Clipper
208   ## What operating systems does this chip run that Emacs has been
209   ## tested on?
210   clipper-* )
211     machine=clipper
212     ## We'll use the catch-all code at the bottom to guess the
213     ## operating system.
214   ;;
216   ## Convex
217   *-convex-bsd* | *-convex-convexos* )
218     machine=convex opsys=bsd4-3
219     ## Prevents suprious white space in makefiles - d.m.cooke@larc.nasa.gov
220     NON_GNU_CPP="cc -E -P"
221   ;;
223   ## Cubix QBx/386
224   i[345]86-cubix-sysv* )
225     machine=intel386 opsys=usg5-3
226   ;;
228   ## Cydra 5
229   cydra*-cydrome-sysv* )
230     machine=cydra5 opsys=usg5-3
231   ;;
233   ## Data General AViiON Machines
234   m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* )
235     machine=aviion opsys=dgux5-4r3
236   ;;
237   m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* )
238     machine=aviion opsys=dgux5-4r2
239   ;;
240   m88k-dg-dgux* )
241     machine=aviion opsys=dgux
242   ;;
244   ## DECstations
245   mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0* | mips-dec-bsd4.2* )
246     machine=pmax opsys=bsd4-2
247   ;;
248   mips-dec-ultrix* | mips-dec-bsd* )
249     machine=pmax opsys=bsd4-3
250   ;;
251   mips-dec-osf* )
252     machine=pmax opsys=osf1
253   ;;
255   ## Motorola Delta machines
256   m68k-motorola-sysv* | m68000-motorola-sysv* )
257     machine=delta opsys=usg5-3
258     if test -z "`type gnucc | grep 'not found'`"
259     then CC=gnucc
260     else
261       if test -z "`type gcc | grep 'not found'`"
262       then CC=gcc
263       else CC=cc
264       fi
265     fi
266   ;;
267   m88k-motorola-sysv4* )
268     machine=delta88k opsys=usg5-4
269   ;;
270   m88k-motorola-sysv* | m88k-motorola-m88kbcs* )
271     machine=delta88k opsys=usg5-3
272   ;;
274   ## Dual machines
275   m68*-dual-sysv* )
276     machine=dual opsys=usg5-2
277   ;;
278   m68*-dual-uniplus* )
279     machine=dual opsys=unipl5-2
280   ;;
282   ## Elxsi 6400
283   elxsi-elxsi-sysv* )
284     machine=elxsi opsys=usg5-2
285   ;;
287   ## Encore machines
288   ns16k-encore-bsd* )
289     machine=ns16000 opsys=umax
290   ;;
292   ## The GEC 93 - apparently, this port isn't really finished yet.
294   ## Gould Power Node and NP1
295   pn-gould-bsd4.2* )
296     machine=gould opsys=bsd4-2
297   ;;
298   pn-gould-bsd4.3* )
299     machine=gould opsys=bsd4-3
300   ;;
301   np1-gould-bsd* )
302     machine=gould-np1 opsys=bsd4-3
303   ;;
305   ## Harris Night Hawk machines running CX/UX (a 5000 looks just like a 4000
306   ## as far as Emacs is concerned).
307   m88k-harris-cxux* )
308     # Build needs to be different on 7.0 and later releases
309     case "`uname -r`" in
310        [56].[0-9] ) machine=nh4000 opsys=cxux ;;
311        [7].[0-9] ) machine=nh4000 opsys=cxux7 ;;
312     esac
313   ;;
314   ## Harris ecx or gcx running CX/UX (Series 1200, Series 3000)
315   m68k-harris-cxux* )
316     machine=nh3000 opsys=cxux
317   ;;
319   ## Honeywell XPS100
320   xps*-honeywell-sysv* )
321     machine=xps100 opsys=usg5-2
322   ;;
324   ## HP 9000 series 200 or 300
325   m68*-hp-bsd* )
326     machine=hp9000s300 opsys=bsd4-3
327   ;;
328   ## HP/UX 7, 8 and 9 are supported on these machines.
329   m68*-hp-hpux* )
330     case "`uname -r`" in
331       ## Someone's system reports A.B8.05 for this.
332       ## I wonder what other possibilities there are.
333       *.B8.* ) machine=hp9000s300 opsys=hpux8 ;;
334       *.08.* ) machine=hp9000s300 opsys=hpux8 ;;
335       *.09.* ) machine=hp9000s300 opsys=hpux9 ;;
336       *) machine=hp9000s300 opsys=hpux ;;
337     esac
338   ;;
340   ## HP 9000 series 700 and 800, running HP/UX
341   hppa*-hp-hpux7* )
342     machine=hp800 opsys=hpux
343   ;;
344   hppa*-hp-hpux8* )
345     machine=hp800 opsys=hpux8
346   ;;
347   hppa*-hp-hpux9shr* )
348     machine=hp800 opsys=hpux9shr
349   ;;
350   hppa*-hp-hpux9* )
351     machine=hp800 opsys=hpux9
352   ;;
354   ## HP 9000 series 700 and 800, running HP/UX
355   hppa*-hp-hpux* )
356     ## Cross-compilation?  Nah!
357     case "`uname -r`" in
358       ## Someone's system reports A.B8.05 for this.
359       ## I wonder what other possibilities there are.
360       *.B8.* ) machine=hp800 opsys=hpux8 ;;
361       *.08.* ) machine=hp800 opsys=hpux8 ;;
362       *.09.* ) machine=hp800 opsys=hpux9 ;;
363       *) machine=hp800 opsys=hpux ;;
364     esac
365   ;;
367   ## Orion machines
368   orion-orion-bsd* )
369     machine=orion opsys=bsd4-2
370   ;;
371   clipper-orion-bsd* )
372     machine=orion105 opsys=bsd4-2
373   ;;
375   ## IBM machines
376   i[345]86-ibm-aix1.1* )
377     machine=ibmps2-aix opsys=usg5-2-2
378   ;;
379   i[345]86-ibm-aix1.[23]* | i[345]86-ibm-aix* )
380     machine=ibmps2-aix opsys=usg5-3
381   ;;
382   i370-ibm-aix*)
383     machine=ibm370aix opsys=usg5-3
384   ;;
385   rs6000-ibm-aix3.1* | powerpc-ibm-aix3.1*  )
386     machine=ibmrs6000 opsys=aix3-1
387   ;;
388   rs6000-ibm-aix3.2.5 | powerpc-ibm-aix3.2.5 )
389     machine=ibmrs6000 opsys=aix3-2-5
390   ;;
391   rs6000-ibm-aix* | powerpc-ibm-aix* )
392     machine=ibmrs6000 opsys=aix3-2
393   ;;
394   romp-ibm-bsd4.3* )
395     machine=ibmrt opsys=bsd4-3
396   ;;    
397   romp-ibm-bsd4.2* )
398     machine=ibmrt opsys=bsd4-2
399   ;;
400   romp-ibm-aos4.3* )
401     machine=ibmrt opsys=bsd4-3
402   ;;    
403   romp-ibm-aos4.2* )
404     machine=ibmrt opsys=bsd4-2
405   ;;
406   romp-ibm-aos* )
407     machine=ibmrt opsys=bsd4-3
408   ;;
409   romp-ibm-bsd* )
410     machine=ibmrt opsys=bsd4-3
411   ;;
412   romp-ibm-aix* )
413     machine=ibmrt-aix opsys=usg5-2-2
414   ;;
416   ## Integrated Solutions `Optimum V'
417   m68*-isi-bsd4.2* )
418     machine=isi-ov opsys=bsd4-2
419   ;;
420   m68*-isi-bsd4.3* )
421     machine=isi-ov opsys=bsd4-3
422   ;;
424   ## Intel 386 machines where we do care about the manufacturer
425   i[345]86-intsys-sysv* )
426     machine=is386 opsys=usg5-2-2
427   ;;
429   ## Prime EXL
430   i[345]86-prime-sysv* )
431     machine=i386 opsys=usg5-3
432   ;;
434   ## Sequent Symmetry
435   i[345]86-sequent-bsd* )
436     machine=symmetry opsys=bsd4-3
437   ;;
439   ## Unspecified sysv on an ncr machine defaults to svr4.2.
440   ## (Plain usg5-4 doesn't turn on POSIX signals, which we need.)
441   i[345]86-ncr-sysv* )
442     machine=intel386 opsys=usg5-4-2
443   ;;
445   ## Intel 860
446   i860-*-sysv4* )
447     machine=i860 opsys=usg5-4
448     NON_GNU_CC="/bin/cc" # Ie, not the one in /usr/ucb/cc.
449     NON_GNU_CPP="/usr/ccs/lib/cpp" # cc -E tokenizes macro expansion.
450   ;;
452   ## Masscomp machines
453   m68*-masscomp-rtu* )
454     machine=masscomp opsys=rtu
455   ;;
457   ## Megatest machines
458   m68*-megatest-bsd* )
459     machine=mega68 opsys=bsd4-2
460   ;;
462   ## Workstations sold by MIPS
463   ## This is not necessarily all workstations using the MIPS processor -
464   ## Irises are produced by SGI, and DECstations by DEC.
466   ## etc/MACHINES lists mips.h and mips4.h as possible machine files,
467   ## and usg5-2-2 and bsd4-3 as possible OS files.  The only guidance
468   ## it gives for choosing between the alternatives seems to be "Use
469   ## -machine=mips4 for RISCOS version 4; use -opsystem=bsd4-3 with
470   ## the BSD world."  I'll assume that these are instructions for
471   ## handling two odd situations, and that every other situation
472   ## should use mips.h and usg5-2-2, they being listed first.
473   mips-mips-usg* )
474     machine=mips4
475     ## Fall through to the general code at the bottom to decide on the OS.
476   ;;
477   mips-mips-riscos4* )
478     machine=mips4 opsys=bsd4-3
479     NON_GNU_CC="cc -systype bsd43"
480     NON_GNU_CPP="cc -systype bsd43 -E"
481   ;;
482   mips-mips-bsd* )
483     machine=mips opsys=bsd4-3
484   ;;
485   mips-mips-* )
486     machine=mips opsys=usg5-2-2
487   ;;
489   ## NeXT
490   m68*-next-* | i[345]86-next-* )
491     machine=next opsys=mach2
492   ;;
494   ## The complete machine from National Semiconductor
495   ns32k-ns-genix* )
496     machine=ns32000 opsys=usg5-2
497   ;;
499   ## NCR machines
500   m68*-ncr-sysv2* | m68*-ncr-sysvr2* )
501     machine=tower32 opsys=usg5-2-2
502   ;;
503   m68*-ncr-sysv3* | m68*-ncr-sysvr3* )
504     machine=tower32v3 opsys=usg5-3
505   ;;
507   ## Nixdorf Targon 31
508   m68*-nixdorf-sysv* )
509     machine=targon31 opsys=usg5-2-2
510   ;;
512   ## Nu (TI or LMI)
513   m68*-nu-sysv* )
514     machine=nu opsys=usg5-2
515   ;;
517   ## Plexus
518   m68*-plexus-sysv* )
519     machine=plexus opsys=usg5-2
520   ;;
522   ## Pyramid machines
523   ## I don't really have any idea what sort of processor the Pyramid has,
524   ## so I'm assuming it is its own architecture.
525   pyramid-pyramid-bsd* )
526     machine=pyramid opsys=bsd4-2
527   ;;
529   ## Sequent Balance
530   ns32k-sequent-bsd4.2* )
531     machine=sequent opsys=bsd4-2
532   ;;
533   ns32k-sequent-bsd4.3* )
534     machine=sequent opsys=bsd4-3
535   ;;
537   ## Siemens Nixdorf
538   mips-siemens-sysv* )
539     machine=mips-siemens opsys=usg5-4
540     NON_GNU_CC=/usr/ccs/bin/cc
541     NON_GNU_CPP=/usr/ccs/lib/cpp
542   ;;
544   ## Silicon Graphics machines
545   ## Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
546   m68*-sgi-iris3.5* )
547     machine=irist opsys=iris3-5
548   ;;
549   m68*-sgi-iris3.6* | m68*-sgi-iris*)
550     machine=irist opsys=iris3-6
551   ;;
552   ## Iris 4D
553   mips-sgi-irix3* )
554     machine=iris4d opsys=irix3-3
555   ;;
556   mips-sgi-irix5* )
557     machine=iris4d opsys=irix5-0
558   ;;
559   mips-sgi-irix4* | mips-sgi-irix* )
560     machine=iris4d opsys=irix4-0
561   ;;
563   ## SONY machines
564   m68*-sony-bsd4.2* )
565     machine=news opsys=bsd4-2
566   ;;
567   m68*-sony-bsd4.3* )
568     machine=news opsys=bsd4-3
569   ;;
570   m68*-sony-newsos3*)
571     machine=news opsys=bsd4-3
572   ;;
573   mips-sony-bsd* | mips-sony-newsos4* )
574     machine=news-risc opsys=bsd4-3
575   ;;
576   mips-sony-newsos* )
577     machine=news-risc opsys=newsos5
578   ;;
580   ## Stride
581   m68*-stride-sysv* )
582     machine=stride opsys=usg5-2
583   ;;
585   ## Suns
586   *-sun-sunos* | *-sun-bsd* | *-sun-solaris* | i[345]86-*-solaris2* | i[345]86-*-sunos5* )
587     case "${canonical}" in
588       m68*-sunos1* )    machine=sun1 ;;
589       m68*-sunos2* )    machine=sun2 ;;
590       m68* )            machine=sun3 ;;
591       i[345]86-sun-sunos[34]* ) machine=sun386 ;;
592       i[345]86-*-* )     machine=intel386 ;;
593       sparc* )          machine=sparc ;;
594       * )               unported=yes ;;
595     esac
596     case "${canonical}" in
597       ## The Sun386 didn't get past 4.0.
598       i[345]86-*-sunos4   ) opsys=sunos4-0 ;;
599       *-sunos4.0*         ) opsys=sunos4-0 ;;
600       *-sunos4.1.3*       ) opsys=sunos4-1-3
601                 NON_GCC_TEST_OPTIONS=-Bstatic
602                 GCC_TEST_OPTIONS=-static
603                 ;;
604       *-sunos4shr*        ) opsys=sunos4shr ;;
605       *-sunos4* | *-sunos ) opsys=sunos4-1
606                 NON_GCC_TEST_OPTIONS=-Bstatic
607                 GCC_TEST_OPTIONS=-static
608                 ;;
609       *-sunos5.3* | *-solaris2.3* )
610                 opsys=sol2-3
611                 NON_GNU_CPP=/usr/ccs/lib/cpp
612                 ;;
613       *-sunos5.4* | *-solaris2.4* )
614                 opsys=sol2-4
615                 NON_GNU_CPP=/usr/ccs/lib/cpp
616                 ;;
617       *-sunos5* | *-solaris* )
618                 opsys=sol2
619                 NON_GNU_CPP=/usr/ccs/lib/cpp
620                 ;;
621       *                   ) opsys=bsd4-2   ;;
622     esac
623   ;;
625   ## Tadpole 68k
626   m68*-tadpole-sysv* )
627     machine=tad68k opsys=usg5-3
628   ;;
630   ## Tahoe machines
631   tahoe-tahoe-bsd4.2* )
632     machine=tahoe opsys=bsd4-2
633   ;;
634   tahoe-tahoe-bsd4.3* )
635     machine=tahoe opsys=bsd4-3
636   ;;
638   ## Tandem Integrity S2
639   mips-tandem-sysv* )
640     machine=tandem-s2 opsys=usg5-3
641   ;;
643   ## Tektronix XD88
644   m88k-tektronix-sysv3* )
645   machine=tekxd88 opsys=usg5-3
646   ;;
648   ## Tektronix 16000 box (6130?)
649   ns16k-tektronix-bsd* )
650     machine=ns16000 opsys=bsd4-2
651   ;;
652   ## Tektronix 4300
653   ## src/m/tek4300.h hints that this is a m68k machine.
654   m68*-tektronix-bsd* )
655     machine=tek4300 opsys=bsd4-3
656   ;;
658   ## Titan P2 or P3
659   ## We seem to have lost the machine-description file titan.h!
660   titan-titan-sysv* )
661     machine=titan opsys=usg5-3
662   ;;
663   
664   ## Ustation E30 (SS5E)
665   m68*-unisys-uniplus* )
666     machine=ustation opsystem=unipl5-2
667   ;;
669   ## Vaxen.
670   vax-dec-* )
671     machine=vax
672     case "${canonical}" in
673       *-bsd4.1* )                                       opsys=bsd4-1 ;;
674       *-bsd4.2* | *-ultrix[0-3].* | *-ultrix4.0* )      opsys=bsd4-2 ;;
675       *-bsd4.3* | *-ultrix* )                           opsys=bsd4-3 ;;
676       *-bsd386* | *-bsdi* )                             opsys=bsd386 ;;
677       *-sysv[01]* | *-sysvr[01]* )                      opsys=usg5-0 ;;
678       *-sysv2* | *-sysvr2* )                            opsys=usg5-2 ;;
679       *-vms* )                                          opsys=vms ;;
680       * )                                               unported=yes
681     esac
682   ;;
684   ## Whitechapel MG1
685   ns16k-whitechapel-* )
686     machine=mg1
687     ## We don't know what sort of OS runs on these; we'll let the
688     ## operating system guessing code below try.
689   ;;
691   ## Wicat
692   m68*-wicat-sysv* )
693     machine=wicat opsys=usg5-2
694   ;;
696   ## Intel 386 machines where we don't care about the manufacturer
697   i[345]86-*-* )
698     machine=intel386
699     case "${canonical}" in
700       *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;;
701       *-isc2.2* )               opsys=isc2-2 ;;
702       *-isc4.0* )               opsys=isc4-0 ;;
703       *-isc* )                  opsys=isc3-0 ;;
704       *-esix5* )                opsys=esix5r4; NON_GNU_CPP=/usr/lib/cpp ;;
705       *-esix* )                 opsys=esix ;;
706       *-xenix* )                opsys=xenix ;;
707       *-linux* )                opsys=linux ;;
708       *-sco3.2v4* )             opsys=sco4 ; NON_GNU_CPP=/lib/cpp  ;;
709       *-bsd386* | *-bsdi* )     opsys=bsd386 ;;
710       *-386bsd* )               opsys=386bsd ;;
711       *-freebsd* )              opsys=freebsd ;;
712       *-nextstep* )             opsys=mach2 ;;
713       ## Otherwise, we'll fall through to the generic opsys code at the bottom.
714     esac
715   ;;
717   * )
718     unported=yes
719   ;;
720 esac
722 ### If the code above didn't choose an operating system, just choose
723 ### an operating system based on the configuration name.  You really
724 ### only want to use this when you have no idea what the right
725 ### operating system is; if you know what operating systems a machine
726 ### runs, it's cleaner to make it explicit in the case statement
727 ### above.
728 if test x"${opsys}" = x; then
729   case "${canonical}" in
730     *-gnu* )                            opsys=gnu ;;
731     *-bsd4.[01] )                       opsys=bsd4-1 ;;
732     *-bsd4.2 )                          opsys=bsd4-2 ;;
733     *-bsd4.3 )                          opsys=bsd4-3 ;;
734     *-sysv0 | *-sysvr0 )                opsys=usg5-0 ;;
735     *-sysv2 | *-sysvr2 )                opsys=usg5-2 ;;
736     *-sysv2.2 | *-sysvr2.2 )            opsys=usg5-2-2 ;;
737     *-sysv3 | *-sysvr3 )                opsys=usg5-3 ;;
738     *-sysv4 | *-sysvr4 )                opsys=usg5-4 ;;
739     *-sysv4.1 | *-sysvr4.1 )
740         NON_GNU_CPP=/usr/lib/cpp
741         opsys=usg5-4 ;;
742     *-sysv4.2 | *-sysvr4.2 )            opsys=usg5-4-2 ;;
743     * )
744       unported=yes
745     ;;
746   esac
749 changequote([, ])dnl
751 if test $unported = yes; then
752   AC_MSG_ERROR([Emacs hasn't been ported to \`${canonical}' systems.
753 Check \`etc/MACHINES' for recognized configuration names.])
756 machfile="m/${machine}.h"
757 opsysfile="s/${opsys}.h"
760 #### Choose a compiler.
761 test -n "$CC" && cc_specified=yes
763 case ${with_gcc} in
764   "yes" ) CC="gcc" GCC=yes ;;
765   "no"  ) : ${CC=cc} ;;
766   * ) AC_PROG_CC
767 esac
769 # On Suns, sometimes $CPP names a directory.
770 if test -n "$CPP" && test -d "$CPP"; then
771   CPP=
774 #### Some systems specify a CPP to use unless we are using GCC.
775 #### Now that we know whether we are using GCC, we can decide whether
776 #### to use that one.
777 if test "x$NON_GNU_CPP" != x && test x$GCC != xyes && test "x$CPP" = x
778 then
779   CPP="$NON_GNU_CPP"
782 #### Some systems specify a CC to use unless we are using GCC.
783 #### Now that we know whether we are using GCC, we can decide whether
784 #### to use that one.
785 if test "x$NON_GNU_CC" != x && test x$GCC != xyes &&
786   test x$cc_specified != xyes
787 then
788   CC="$NON_GNU_CC"
791 if test x$GCC = xyes && test "x$GCC_TEST_OPTIONS" != x
792 then
793   CC="$CC $GCC_TEST_OPTIONS"
794 fi  
796 if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x
797 then
798   CC="$CC $NON_GCC_TEST_OPTIONS"
799 fi  
801 #### Some other nice autoconf tests.  If you add a test here which
802 #### should make an entry in src/config.h, don't forget to add an
803 #### #undef clause to src/config.h.in for autoconf to modify.
805 dnl checks for programs
806 AC_PROG_LN_S
807 AC_PROG_CPP
808 AC_PROG_INSTALL
809 AC_PROG_YACC
811 dnl checks for header files
812 AC_CHECK_HEADERS(sys/timeb.h sys/time.h unistd.h)
813 AC_HEADER_STDC
814 AC_HEADER_TIME
815 AC_DECL_SYS_SIGLIST
817 dnl checks for typedefs
818 AC_TYPE_SIGNAL
820 dnl checks for structure members
821 AC_STRUCT_TM
822 AC_STRUCT_TIMEZONE
824 dnl checks for compiler characteristics
825 AC_C_CONST
827 dnl check for Make feature
828 AC_PROG_MAKE_SET
830 dnl checks for operating system services
831 AC_SYS_LONG_FILE_NAMES
833 #### Choose a window system.
835 AC_PATH_X
836 if test "$no_x" = yes; then
837   window_system=none
838 else
839   window_system=x11
842 test "${x_libraries}" != NONE && LD_SWITCH_X_SITE="-L${x_libraries}"
843 test "${x_libraries}" != NONE && LD_SWITCH_X_SITE_AUX="-R${x_libraries}"
844 test "${x_includes}" != NONE && C_SWITCH_X_SITE="-I${x_includes}"
846 case "${window_system}" in
847   x11 )
848     HAVE_X_WINDOWS=yes
849     HAVE_X11=yes
850     case "${with_x_toolkit}" in
851       athena | lucid ) USE_X_TOOLKIT=LUCID ;;   
852 dnl      motif ) USE_X_TOOLKIT=MOTIF ;; 
853 dnl      open-look ) USE_X_TOOLKIT=OPEN_LOOK ;; 
854       * ) USE_X_TOOLKIT=none ;;
855     esac
856   ;;
857   none )
858     HAVE_X_WINDOWS=no
859     HAVE_X11=no
860     USE_X_TOOLKIT=none
861   ;;
862 esac
863 X_TOOLKIT_TYPE=$USE_X_TOOLKIT
865 ### If we're using X11, we should use the X menu package.
866 HAVE_X_MENU=no
867 case ${HAVE_X11} in
868   yes ) HAVE_X_MENU=yes ;;
869 esac
871 #### Extract some information from the operating system and machine files.
873 AC_CHECKING([the machine- and system-dependent files to find out
874  - which libraries the lib-src programs will want, and
875  - whether the GNU malloc routines are usable])
877 ### First figure out CFLAGS (which we use for running the compiler here)
878 ### and REAL_CFLAGS (which we use for real compilation).
879 ### The two are the same except on a few systems, where they are made
880 ### different to work around various lossages.  For example,
881 ### GCC 2.5 on Linux needs them to be different because it treats -g
882 ### as implying static linking.
884 ### If the CFLAGS env var is specified, we use that value
885 ### instead of the default.
887 ### It's not important that this name contain the PID; you can't run
888 ### two configures in the same directory and have anything work
889 ### anyway.
890 tempcname="conftest.c"
892 echo '
893 #include "'${srcdir}'/src/'${opsysfile}'"
894 #include "'${srcdir}'/src/'${machfile}'"
895 #ifndef LIBS_MACHINE
896 #define LIBS_MACHINE
897 #endif
898 #ifndef LIBS_SYSTEM
899 #define LIBS_SYSTEM
900 #endif
901 #ifndef C_SWITCH_SYSTEM
902 #define C_SWITCH_SYSTEM
903 #endif
904 #ifndef C_SWITCH_MACHINE
905 #define C_SWITCH_MACHINE
906 #endif
907 configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
908 configure___ c_switch_system=C_SWITCH_SYSTEM
909 configure___ c_switch_machine=C_SWITCH_MACHINE
911 #ifndef LIB_X11_LIB
912 #define LIB_X11_LIB -lX11
913 #endif
915 #ifndef LIBX11_MACHINE
916 #define LIBX11_MACHINE
917 #endif
919 #ifndef LIBX11_SYSTEM
920 #define LIBX11_SYSTEM
921 #endif
922 configure___ LIBX=LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM
924 #ifdef UNEXEC
925 configure___ unexec=UNEXEC
926 #else
927 configure___ unexec=unexec.o
928 #endif
930 #ifdef SYSTEM_MALLOC
931 configure___ system_malloc=yes
932 #else
933 configure___ system_malloc=no
934 #endif
936 #ifndef C_DEBUG_SWITCH
937 #define C_DEBUG_SWITCH -g
938 #endif
940 #ifndef C_OPTIMIZE_SWITCH
941 #define C_OPTIMIZE_SWITCH -O
942 #endif
944 #ifdef THIS_IS_CONFIGURE
946 /* Get the CFLAGS for tests in configure.  */
947 #ifdef __GNUC__
948 configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${CFLAGS}'
949 #else
950 configure___ CFLAGS=C_DEBUG_SWITCH '${CFLAGS}'
951 #endif
953 #else /* not THIS_IS_CONFIGURE */
955 /* Get the CFLAGS for real compilation.  */
956 #ifdef __GNUC__
957 configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${CFLAGS}'
958 #else
959 configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${CFLAGS}'
960 #endif
962 #endif /* not THIS_IS_CONFIGURE */
963 ' > ${tempcname}
965 # The value of CPP is a quoted variable reference, so we need to do this
966 # to get its actual value...
967 CPP=`eval "echo $CPP"`
968 changequote(, )dnl
969 eval `${CPP} -Isrc ${tempcname} \
970        | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
971 if test "x$CFLAGS" = x; then
972   eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \
973          | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
974 else
975   REAL_CFLAGS="$CFLAGS"
977 changequote([, ])dnl
978 rm ${tempcname}
980 ### Compute the unexec source name from the object name.
981 UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`"
983 # Do the opsystem or machine files prohibit the use of the GNU malloc?
984 # Assume not, until told otherwise.
985 GNU_MALLOC=yes
986 if test "${system_malloc}" = "yes"; then
987   GNU_MALLOC=no
988   GNU_MALLOC_reason="
989   (The GNU allocators don't work with this system configuration.)"
992 if test x"${REL_ALLOC}" = x; then
993   REL_ALLOC=${GNU_MALLOC}
996 LISP_FLOAT_TYPE=yes
999 #### Add the libraries to LIBS and check for some functions.
1001 CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
1002 LIBS="$libsrc_libs"
1004 dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
1005 dnl and also adds -ldnet to LIBS, which Autoconf uses for checks.
1006 AC_CHECK_LIB(dnet, dnet_ntoa)
1007 dnl This causes -lresolv to get used in subsequent tests,
1008 dnl which causes failures on some systems such as HPUX 9.
1009 dnl AC_CHECK_LIB(resolv, gethostbyname)
1011 dnl FIXME replace main with a function we actually want from this library.
1012 AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
1014 AC_MSG_CHECKING(for XFree86)
1015 if test -d /usr/X386/include; then
1016   HAVE_XFREE386=yes
1017   : ${C_SWITCH_X_SITE="-I/usr/X386/include"}
1018 else
1019   HAVE_XFREE386=no
1021 AC_MSG_RESULT($HAVE_XFREE386)
1023 # We change CFLAGS temporarily so that C_SWITCH_X_SITE gets used
1024 # for the tests that follow.
1026 if test "${HAVE_X11}" = "yes"; then
1027   DEFS="$C_SWITCH_X_SITE $DEFS"
1028   LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS"
1029   CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
1030   AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
1031 XScreenNumberOfScreen XSetWMProtocols)
1034 if test "${USE_X_TOOLKIT}" != "none"; then
1035   AC_MSG_CHECKING(X11 toolkit version)
1036   AC_TRY_LINK([#include <X11/Intrinsic.h>],
1037 [#if XtSpecificationRelease < 6
1038 fail;
1039 #endif
1040 ], [AC_MSG_RESULT(6)
1041     AC_DEFINE(HAVE_X11XTR6)],
1042    [AC_MSG_RESULT(not 6)])
1045 # If netdb.h doesn't declare h_errno, we must declare it by hand.
1046 AC_MSG_CHECKING(whether netdb declarares h_errno)
1047 AC_TRY_LINK([#include <netdb.h>],
1048 [int
1049 foo ()
1051   return h_errno;
1053 ], [AC_MSG_RESULT(yes)
1054     AC_DEFINE(HAVE_H_ERRNO)],
1055    [AC_MSG_RESULT(no)])
1057 AC_FUNC_ALLOCA
1059 # logb and frexp are found in -lm on most systems.
1060 AC_CHECK_LIB(m, logb)
1061 AC_CHECK_FUNCS(gettimeofday gethostname dup2 rename closedir mkdir rmdir \
1062 random lrand48 bcopy bcmp logb frexp fmod drem ftime res_init setsid strerror \
1063 fpathconf)
1065 ok_so_far=yes
1066 AC_CHECK_FUNC(socket, , ok_so_far=no)
1067 if test $ok_so_far = yes; then
1068   AC_CHECK_HEADER(netinet/in.h, , ok_so_far=no)
1070 if test $ok_so_far = yes; then
1071   AC_CHECK_HEADER(arpa/inet.h, , ok_so_far=no)
1073 if test $ok_so_far = yes; then
1074   AC_DEFINE(HAVE_INET_SOCKETS)
1077 if test -f /usr/lpp/X11/bin/smt.exp; then
1078   AC_DEFINE(HAVE_AIX_SMT_EXP)
1081 # Set up the CFLAGS for real compilation, so we can substitute it.
1082 CFLAGS="$REAL_CFLAGS"
1084 changequote(, )dnl
1085 #### Find out which version of Emacs this is.
1086 version=`grep 'defconst[         ]*emacs-version' ${srcdir}/lisp/version.el \
1087          | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`
1088 changequote([, ])dnl
1089 if test x"${version}" = x; then
1090   AC_MSG_ERROR(can't find current emacs version in \`${srcdir}/lisp/version.el'.)
1093 ### Specify what sort of things we'll be editing into Makefile and config.h.
1094 ### Use configuration here uncanonicalized to avoid exceeding size limits.
1095 AC_SUBST(version)
1096 AC_SUBST(configuration)
1097 AC_SUBST(srcdir)
1098 AC_SUBST(prefix)
1099 AC_SUBST(exec_prefix)
1100 AC_SUBST(bindir)
1101 AC_SUBST(datadir)
1102 AC_SUBST(statedir)
1103 AC_SUBST(libdir)
1104 AC_SUBST(mandir)
1105 AC_SUBST(infodir)
1106 AC_SUBST(lispdir)
1107 AC_SUBST(locallisppath)
1108 AC_SUBST(lisppath)
1109 AC_SUBST(etcdir)
1110 AC_SUBST(lockdir)
1111 AC_SUBST(archlibdir)
1112 AC_SUBST(docdir)
1113 AC_SUBST(c_switch_system)
1114 AC_SUBST(c_switch_machine)
1115 AC_SUBST(LD_SWITCH_X_SITE)
1116 AC_SUBST(LD_SWITCH_X_SITE_AUX)
1117 AC_SUBST(C_SWITCH_X_SITE)
1118 AC_SUBST(CFLAGS)
1119 AC_SUBST(X_TOOLKIT_TYPE)
1120 AC_SUBST(machfile)
1121 AC_SUBST(opsysfile)
1123 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION,  "${configuration}")
1124 AC_DEFINE_UNQUOTED(config_machfile,  "${machfile}")
1125 AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}")
1126 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE})
1127 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX})
1128 AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE,  ${C_SWITCH_X_SITE})
1129 AC_DEFINE_UNQUOTED(UNEXEC_SRC,       ${UNEXEC_SRC})
1131 if test "${HAVE_X_WINDOWS}" = "yes" ; then
1132   AC_DEFINE(HAVE_X_WINDOWS)
1134 if test "${USE_X_TOOLKIT}" != "none" ; then
1135   AC_DEFINE(USE_X_TOOLKIT)
1137 if test "${HAVE_X11}" = "yes" ; then
1138   AC_DEFINE(HAVE_X11)
1140 if test "${HAVE_XFREE386}" = "yes" ; then
1141   AC_DEFINE(HAVE_XFREE386)
1143 if test "${HAVE_X_MENU}" = "yes" ; then
1144   AC_DEFINE(HAVE_X_MENU)
1146 if test "${GNU_MALLOC}" = "yes" ; then
1147   AC_DEFINE(GNU_MALLOC)
1149 if test "${REL_ALLOC}" = "yes" ; then
1150   AC_DEFINE(REL_ALLOC)
1152 if test "${LISP_FLOAT_TYPE}" = "yes" ; then
1153   AC_DEFINE(LISP_FLOAT_TYPE)
1156 dnl # ====================== Developer's configuration =======================
1157 dnl 
1158 dnl # The following assignments make sense if you're running Emacs on a single
1159 dnl # machine, one version at a time, and  you want changes to the lisp and etc
1160 dnl # directories in the source tree to show up immediately in your working
1161 dnl # environment.  It saves a great deal of disk space by not duplicating the
1162 dnl # lisp and etc directories.
1163 dnl 
1164 dnl if test "$enable_single_tree" = "yes"; then
1165 dnl    bindir='${exec_prefix}/bin/${configuration}'
1166 dnl    datadir='${prefix}/common'
1167 dnl    statedir='${prefix}/common'
1168 dnl    libdir='${bindir}'
1169 dnl    lispdir='${prefix}/common/lisp'
1170 dnl    locallisppath='${prefix}/common/site-lisp'
1171 dnl    lockdir='${prefix}/common/lock'
1172 dnl    archlibdir='${libdir}/etc'
1173 dnl    etcdir='${prefix}/common/data'
1174 dnl    docdir='${prefix}/common/data'
1175 dnl fi
1177 #### Report on what we decided to do.
1178 echo "
1180 Configured for \`${canonical}'.
1182   Where should the build process find the source code?    ${srcdir}
1183   What operating system and machine description files should Emacs use?
1184         \`${opsysfile}' and \`${machfile}'
1185   What compiler should emacs be built with?               ${CC} ${CFLAGS}
1186   Should Emacs use the GNU version of malloc?             ${GNU_MALLOC}${GNU_MALLOC_reason}
1187   Should Emacs use the relocating allocator for buffers?  ${REL_ALLOC}
1188   What window system should Emacs use?                    ${window_system}
1189   What toolkit should Emacs use?                          ${USE_X_TOOLKIT}${x_includes+
1190   Where do we find X Windows header files?                }${x_includes}${x_libraries+
1191   Where do we find X Windows libraries?                   }${x_libraries}
1195 # Remove any trailing slashes in these variables.
1196 changequote(, )dnl
1197 test "${prefix}" != NONE &&
1198   prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
1199 test "${exec_prefix}" != NONE &&
1200   exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`
1201 changequote([, ])dnl
1203 AC_OUTPUT(Makefile lib-src/Makefile.in oldXMenu/Makefile \
1204         lwlib/Makefile src/Makefile.in, [
1206 ### Make the necessary directories, if they don't exist.
1207 for dir in ./src ./lib-src ./cpp ./oldXMenu ./lwlib ./etc ; do
1208   if test ! -d ${dir}; then
1209     mkdir ${dir}
1210   fi
1211 done
1213 # Build src/Makefile from ${srcdir}/src/Makefile.in.  This must be done
1214 # after src/config.h is built, since we rely on that file.
1216 changequote(,)dnl The horror, the horror.
1217 # Now get this: Some word that is part of the ${srcdir} directory name
1218 # or the ${configuration} value might, just might, happen to be an
1219 # identifier like `sun4' or `i386' or something, and be predefined by
1220 # the C preprocessor to some helpful value like 1, or maybe the empty
1221 # string.  Needless to say consequent macro substitutions are less
1222 # than conducive to the makefile finding the correct directory.
1223 undefs="`echo $top_srcdir $configuration $canonical |
1224 sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/  *$//' \
1225     -e 's/  */ -U/g' -e 's/-U[0-9][^ ]*//g' \
1227 changequote([,])dnl
1229 echo creating lib-src/Makefile
1230 ( cd lib-src
1231   rm -f junk.c junk1.c junk2.c
1232   sed -e '/start of cpp stuff/q' \
1233       < Makefile.in > junk1.c
1234   sed -e '1,/start of cpp stuff/d'\
1235       -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
1236       < Makefile.in > junk.c
1237   $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
1238       sed -e 's/^ /     /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
1239   cat junk1.c junk2.c > Makefile.new
1240   rm -f junk.c junk1.c junk2.c
1241   chmod 444 Makefile.new
1242   mv -f Makefile.new Makefile
1245 echo creating src/Makefile
1246 ( cd src
1247   rm -f junk.c junk1.c junk2.c
1248   sed -e '/start of cpp stuff/q' \
1249       < Makefile.in > junk1.c
1250   sed -e '1,/start of cpp stuff/d'\
1251       -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
1252       < Makefile.in > junk.c
1253   $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
1254       sed -e 's/^ /     /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
1255   cat junk1.c junk2.c > Makefile.new
1256   rm -f junk.c junk1.c junk2.c
1257   chmod 444 Makefile.new
1258   mv -f Makefile.new Makefile
1260 ], [CPP="$CPP" CPPFLAGS="$CPPFLAGS"])