Mention Hochleitner's correlation.
[emacs.git] / configure.in
blobfa79f7ae868d6ba16eb639d90019c97df1e393a9
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-aix* | powerpc-ibm-aix* )
410     machine=ibmrs6000 opsys=aix3-2
411   ;;
412   romp-ibm-bsd4.3* )
413     machine=ibmrt opsys=bsd4-3
414   ;;    
415   romp-ibm-bsd4.2* )
416     machine=ibmrt opsys=bsd4-2
417   ;;
418   romp-ibm-aos4.3* )
419     machine=ibmrt opsys=bsd4-3
420   ;;    
421   romp-ibm-aos4.2* )
422     machine=ibmrt opsys=bsd4-2
423   ;;
424   romp-ibm-aos* )
425     machine=ibmrt opsys=bsd4-3
426   ;;
427   romp-ibm-bsd* )
428     machine=ibmrt opsys=bsd4-3
429   ;;
430   romp-ibm-aix* )
431     machine=ibmrt-aix opsys=usg5-2-2
432   ;;
434   ## Integrated Solutions `Optimum V'
435   m68*-isi-bsd4.2* )
436     machine=isi-ov opsys=bsd4-2
437   ;;
438   m68*-isi-bsd4.3* )
439     machine=isi-ov opsys=bsd4-3
440   ;;
442   ## Intel 386 machines where we do care about the manufacturer
443   i[345]86-intsys-sysv* )
444     machine=is386 opsys=usg5-2-2
445   ;;
447   ## Prime EXL
448   i[345]86-prime-sysv* )
449     machine=i386 opsys=usg5-3
450   ;;
452   ## Sequent Symmetry running Dynix
453   i[345]86-sequent-bsd* )
454     machine=symmetry opsys=bsd4-3
455   ;;
457   ## Sequent Symmetry running DYNIX/ptx
458   ## Use the old cpp rather than the newer ANSI one.
459   i[345]86-sequent-ptx* )
460     machine=sequent-ptx opsys=ptx
461     NON_GNU_CPP="/lib/cpp"
462   ;;
464   ## Unspecified sysv on an ncr machine defaults to svr4.2.
465   ## (Plain usg5-4 doesn't turn on POSIX signals, which we need.)
466   i[345]86-ncr-sysv* )
467     machine=intel386 opsys=usg5-4-2
468   ;;
470   ## Intel Paragon OSF/1
471   i860-intel-osf1* )
472     machine=paragon opsys=osf1 NON_GNU_CPP=/usr/mach/lib/cpp
473   ;;
475   ## Intel 860
476   i860-*-sysv4* )
477     machine=i860 opsys=usg5-4
478     NON_GNU_CC="/bin/cc" # Ie, not the one in /usr/ucb/cc.
479     NON_GNU_CPP="/usr/ccs/lib/cpp" # cc -E tokenizes macro expansion.
480   ;;
482   ## Masscomp machines
483   m68*-masscomp-rtu* )
484     machine=masscomp opsys=rtu
485   ;;
487   ## Megatest machines
488   m68*-megatest-bsd* )
489     machine=mega68 opsys=bsd4-2
490   ;;
492   ## Workstations sold by MIPS
493   ## This is not necessarily all workstations using the MIPS processor -
494   ## Irises are produced by SGI, and DECstations by DEC.
496   ## etc/MACHINES lists mips.h and mips4.h as possible machine files,
497   ## and usg5-2-2 and bsd4-3 as possible OS files.  The only guidance
498   ## it gives for choosing between the alternatives seems to be "Use
499   ## -machine=mips4 for RISCOS version 4; use -opsystem=bsd4-3 with
500   ## the BSD world."  I'll assume that these are instructions for
501   ## handling two odd situations, and that every other situation
502   ## should use mips.h and usg5-2-2, they being listed first.
503   mips-mips-usg* )
504     machine=mips4
505     ## Fall through to the general code at the bottom to decide on the OS.
506   ;;
507   mips-mips-riscos4* )
508     machine=mips4 opsys=bsd4-3
509     NON_GNU_CC="cc -systype bsd43"
510     NON_GNU_CPP="cc -systype bsd43 -E"
511   ;;
512   mips-mips-bsd* )
513     machine=mips opsys=bsd4-3
514   ;;
515   mips-mips-* )
516     machine=mips opsys=usg5-2-2
517   ;;
519   ## NeXT
520   m68*-next-* | i[345]86-next-* )
521     machine=next opsys=mach2
522   ;;
524   ## The complete machine from National Semiconductor
525   ns32k-ns-genix* )
526     machine=ns32000 opsys=usg5-2
527   ;;
529   ## NCR machines
530   m68*-ncr-sysv2* | m68*-ncr-sysvr2* )
531     machine=tower32 opsys=usg5-2-2
532   ;;
533   m68*-ncr-sysv3* | m68*-ncr-sysvr3* )
534     machine=tower32v3 opsys=usg5-3
535   ;;
537   ## Nixdorf Targon 31
538   m68*-nixdorf-sysv* )
539     machine=targon31 opsys=usg5-2-2
540   ;;
542   ## Nu (TI or LMI)
543   m68*-nu-sysv* )
544     machine=nu opsys=usg5-2
545   ;;
547   ## Plexus
548   m68*-plexus-sysv* )
549     machine=plexus opsys=usg5-2
550   ;;
552   ## Pyramid machines
553   ## I don't really have any idea what sort of processor the Pyramid has,
554   ## so I'm assuming it is its own architecture.
555   pyramid-pyramid-bsd* )
556     machine=pyramid opsys=bsd4-2
557   ;;
559   ## Sequent Balance
560   ns32k-sequent-bsd4.2* )
561     machine=sequent opsys=bsd4-2
562   ;;
563   ns32k-sequent-bsd4.3* )
564     machine=sequent opsys=bsd4-3
565   ;;
567   ## Siemens Nixdorf
568   mips-siemens-sysv* )
569     machine=mips-siemens opsys=usg5-4
570     NON_GNU_CC=/usr/ccs/bin/cc
571     NON_GNU_CPP=/usr/ccs/lib/cpp
572   ;;
574   ## Silicon Graphics machines
575   ## Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
576   m68*-sgi-iris3.5* )
577     machine=irist opsys=iris3-5
578   ;;
579   m68*-sgi-iris3.6* | m68*-sgi-iris*)
580     machine=irist opsys=iris3-6
581   ;;
582   ## Iris 4D
583   mips-sgi-irix3* )
584     machine=iris4d opsys=irix3-3
585   ;;
586   mips-sgi-irix4* )
587     machine=iris4d opsys=irix4-0
588   ;;
589   mips-sgi-irix5.[01]* )
590     machine=iris4d opsys=irix5-0
591   ;;
592   mips-sgi-irix5* | mips-sgi-irix* )
593     machine=iris4d opsys=irix5-2
594   ;;
596   ## SONY machines
597   m68*-sony-bsd4.2* )
598     machine=news opsys=bsd4-2
599   ;;
600   m68*-sony-bsd4.3* )
601     machine=news opsys=bsd4-3
602   ;;
603   m68*-sony-newsos3* | m68*-sony-news3*)
604     machine=news opsys=bsd4-3
605   ;;
606   mips-sony-bsd* | mips-sony-newsos4* | mips-sony-news4*)
607     machine=news-risc opsys=bsd4-3
608   ;;
609   mips-sony-news* )
610     machine=news-risc opsys=newsos5
611   ;;
613   ## Stride
614   m68*-stride-sysv* )
615     machine=stride opsys=usg5-2
616   ;;
618   ## Suns
619   *-sun-sunos* | *-sun-bsd* | *-sun-solaris* | i[345]86-*-solaris2* | i[345]86-*-sunos5* )
620     case "${canonical}" in
621       m68*-sunos1* )    machine=sun1 ;;
622       m68*-sunos2* )    machine=sun2 ;;
623       m68* )            machine=sun3 ;;
624       i[345]86-sun-sunos[34]* ) machine=sun386 ;;
625       i[345]86-*-* )     machine=intel386 ;;
626       sparc* )          machine=sparc ;;
627       * )               unported=yes ;;
628     esac
629     case "${canonical}" in
630       ## The Sun386 didn't get past 4.0.
631       i[345]86-*-sunos4   ) opsys=sunos4-0 ;;
632       *-sunos4.0*         ) opsys=sunos4-0 ;;
633       *-sunos4.1.3*       ) opsys=sunos4-1-3
634                 NON_GCC_TEST_OPTIONS=-Bstatic
635                 GCC_TEST_OPTIONS=-static
636                 ;;
637       *-sunos4shr*        ) opsys=sunos4shr ;;
638       *-sunos4* | *-sunos ) opsys=sunos4-1
639                 NON_GCC_TEST_OPTIONS=-Bstatic
640                 GCC_TEST_OPTIONS=-static
641                 ;;
642       *-sunos5.3* | *-solaris2.3* )
643                 opsys=sol2-3
644                 NON_GNU_CPP=/usr/ccs/lib/cpp
645                 ;;
646       *-sunos5.4* | *-solaris2.4* )
647                 opsys=sol2-4
648                 NON_GNU_CPP=/usr/ccs/lib/cpp
649                 ;;
650       *-sunos5* | *-solaris* )
651                 opsys=sol2
652                 NON_GNU_CPP=/usr/ccs/lib/cpp
653                 ;;
654       *                   ) opsys=bsd4-2   ;;
655     esac
656   ;;
658   ## Tadpole 68k
659   m68*-tadpole-sysv* )
660     machine=tad68k opsys=usg5-3
661   ;;
663   ## Tahoe machines
664   tahoe-tahoe-bsd4.2* )
665     machine=tahoe opsys=bsd4-2
666   ;;
667   tahoe-tahoe-bsd4.3* )
668     machine=tahoe opsys=bsd4-3
669   ;;
671   ## Tandem Integrity S2
672   mips-tandem-sysv* )
673     machine=tandem-s2 opsys=usg5-3
674   ;;
676   ## Tektronix XD88
677   m88k-tektronix-sysv3* )
678   machine=tekxd88 opsys=usg5-3
679   ;;
681   ## Tektronix 16000 box (6130?)
682   ns16k-tektronix-bsd* )
683     machine=ns16000 opsys=bsd4-2
684   ;;
685   ## Tektronix 4300
686   ## src/m/tek4300.h hints that this is a m68k machine.
687   m68*-tektronix-bsd* )
688     machine=tek4300 opsys=bsd4-3
689   ;;
691   ## Titan P2 or P3
692   ## We seem to have lost the machine-description file titan.h!
693   titan-titan-sysv* )
694     machine=titan opsys=usg5-3
695   ;;
696   
697   ## Ustation E30 (SS5E)
698   m68*-unisys-uniplus* )
699     machine=ustation opsystem=unipl5-2
700   ;;
702   ## Vaxen.
703   vax-dec-* )
704     machine=vax
705     case "${canonical}" in
706       *-bsd4.1* )                                       opsys=bsd4-1 ;;
707       *-bsd4.2* | *-ultrix[0-3].* | *-ultrix4.0* )      opsys=bsd4-2 ;;
708       *-bsd4.3* | *-ultrix* )                           opsys=bsd4-3 ;;
709       *-bsd386* | *-bsdi* )                             opsys=bsd386 ;;
710       *-sysv[01]* | *-sysvr[01]* )                      opsys=usg5-0 ;;
711       *-sysv2* | *-sysvr2* )                            opsys=usg5-2 ;;
712       *-vms* )                                          opsys=vms ;;
713       * )                                               unported=yes
714     esac
715   ;;
717   ## Whitechapel MG1
718   ns16k-whitechapel-* )
719     machine=mg1
720     ## We don't know what sort of OS runs on these; we'll let the
721     ## operating system guessing code below try.
722   ;;
724   ## Wicat
725   m68*-wicat-sysv* )
726     machine=wicat opsys=usg5-2
727   ;;
729   ## Intel 386 machines where we don't care about the manufacturer
730   i[345]86-*-* )
731     machine=intel386
732     case "${canonical}" in
733       *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;;
734       *-isc2.2* )               opsys=isc2-2 ;;
735       *-isc4.0* )               opsys=isc4-0 ;;
736       *-isc* )                  opsys=isc3-0 ;;
737       *-esix5* )                opsys=esix5r4; NON_GNU_CPP=/usr/lib/cpp ;;
738       *-esix* )                 opsys=esix ;;
739       *-xenix* )                opsys=xenix ;;
740       *-linux* )                opsys=linux ;;
741       *-sco3.2v4* )             opsys=sco4 ; NON_GNU_CPP=/lib/cpp  ;;
742       *-bsd386* | *-bsdi* )     opsys=bsd386 ;;
743       *-386bsd* )               opsys=386bsd ;;
744       *-freebsd* )              opsys=freebsd ;;
745       *-nextstep* )             opsys=mach2 ;;
746       ## Otherwise, we'll fall through to the generic opsys code at the bottom.
747     esac
748   ;;
750   * )
751     unported=yes
752   ;;
753 esac
755 ### If the code above didn't choose an operating system, just choose
756 ### an operating system based on the configuration name.  You really
757 ### only want to use this when you have no idea what the right
758 ### operating system is; if you know what operating systems a machine
759 ### runs, it's cleaner to make it explicit in the case statement
760 ### above.
761 if test x"${opsys}" = x; then
762   case "${canonical}" in
763     *-gnu* )                            opsys=gnu ;;
764     *-bsd4.[01] )                       opsys=bsd4-1 ;;
765     *-bsd4.2 )                          opsys=bsd4-2 ;;
766     *-bsd4.3 )                          opsys=bsd4-3 ;;
767     *-sysv0 | *-sysvr0 )                opsys=usg5-0 ;;
768     *-sysv2 | *-sysvr2 )                opsys=usg5-2 ;;
769     *-sysv2.2 | *-sysvr2.2 )            opsys=usg5-2-2 ;;
770     *-sysv3 | *-sysvr3 )                opsys=usg5-3 ;;
771     *-sysv4 | *-sysvr4 )                opsys=usg5-4 ;;
772     *-sysv4.1 | *-sysvr4.1 )
773         NON_GNU_CPP=/usr/lib/cpp
774         opsys=usg5-4 ;;
775     *-sysv4.2 | *-sysvr4.2 )            opsys=usg5-4-2 ;;
776     * )
777       unported=yes
778     ;;
779   esac
782 changequote([, ])dnl
784 if test $unported = yes; then
785   AC_MSG_ERROR([Emacs hasn't been ported to \`${canonical}' systems.
786 Check \`etc/MACHINES' for recognized configuration names.])
789 machfile="m/${machine}.h"
790 opsysfile="s/${opsys}.h"
793 #### Choose a compiler.
794 test -n "$CC" && cc_specified=yes
796 case ${with_gcc} in
797   "yes" ) CC="gcc" GCC=yes ;;
798   "no"  ) : ${CC=cc} ;;
799   * ) AC_PROG_CC
800 esac
802 # On Suns, sometimes $CPP names a directory.
803 if test -n "$CPP" && test -d "$CPP"; then
804   CPP=
807 #### Some systems specify a CPP to use unless we are using GCC.
808 #### Now that we know whether we are using GCC, we can decide whether
809 #### to use that one.
810 if test "x$NON_GNU_CPP" != x && test x$GCC != xyes && test "x$CPP" = x
811 then
812   CPP="$NON_GNU_CPP"
815 #### Some systems specify a CC to use unless we are using GCC.
816 #### Now that we know whether we are using GCC, we can decide whether
817 #### to use that one.
818 if test "x$NON_GNU_CC" != x && test x$GCC != xyes &&
819   test x$cc_specified != xyes
820 then
821   CC="$NON_GNU_CC"
824 if test x$GCC = xyes && test "x$GCC_TEST_OPTIONS" != x
825 then
826   CC="$CC $GCC_TEST_OPTIONS"
827 fi  
829 if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x
830 then
831   CC="$CC $NON_GCC_TEST_OPTIONS"
832 fi  
834 #### Some other nice autoconf tests.  If you add a test here which
835 #### should make an entry in src/config.h, don't forget to add an
836 #### #undef clause to src/config.h.in for autoconf to modify.
838 dnl checks for programs
839 AC_PROG_LN_S
840 AC_PROG_CPP
841 AC_PROG_INSTALL
842 AC_PROG_YACC
844 dnl checks for Unix variants
845 AC_AIX
847 dnl checks for header files
848 AC_CHECK_HEADERS(sys/timeb.h sys/time.h unistd.h utime.h)
849 AC_HEADER_STDC
850 AC_HEADER_TIME
851 AC_DECL_SYS_SIGLIST
853 dnl Some systems have utime.h but don't declare the struct anyplace.
854 AC_MSG_CHECKING(for struct utimbuf)
855 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
856 #include <sys/time.h>
857 #include <time.h>
858 #else
859 #ifdef HAVE_SYS_TIME_H
860 #include <sys/time.h>
861 #else
862 #include <time.h>
863 #endif
864 #endif
865 #ifdef HAVE_UTIME_H
866 #include <utime.h>
867 #endif], [static struct utimbuf x; x.actime = x.modtime;],
868   [AC_MSG_RESULT(yes)
869    AC_DEFINE(HAVE_STRUCT_UTIMBUF)],
870   AC_MSG_RESULT(no))
872 dnl checks for typedefs
873 AC_TYPE_SIGNAL
875 AC_MSG_CHECKING(for struct timeval)
876 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
877 #include <sys/time.h>
878 #include <time.h>
879 #else
880 #ifdef HAVE_SYS_TIME_H
881 #include <sys/time.h>
882 #else
883 #include <time.h>
884 #endif
885 #endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
886   [AC_MSG_RESULT(yes)
887    AC_DEFINE(HAVE_TIMEVAL)],
888   AC_MSG_RESULT(no))
890 dnl checks for structure members
891 AC_STRUCT_TM
892 AC_STRUCT_TIMEZONE
894 dnl checks for compiler characteristics
895 AC_C_CONST
897 dnl check for Make feature
898 AC_PROG_MAKE_SET
900 dnl checks for operating system services
901 AC_SYS_LONG_FILE_NAMES
903 #### Choose a window system.
905 AC_PATH_X
906 if test "$no_x" = yes; then
907   window_system=none
908 else
909   window_system=x11
912 if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
913   LD_SWITCH_X_SITE="-L${x_libraries}"
914   LD_SWITCH_X_SITE_AUX="-R${x_libraries}"
916 if test "${x_includes}" != NONE && test -n "${x_includes}"; then
917   C_SWITCH_X_SITE="-I${x_includes}"
920 if test x"${x_includes}" = x; then
921   bitmapdir=/usr/include/X11/bitmaps
922 else
923   bitmapdir="${x_includes}/bitmaps"
926 case "${window_system}" in
927   x11 )
928     HAVE_X_WINDOWS=yes
929     HAVE_X11=yes
930     case "${with_x_toolkit}" in
931       athena | lucid ) USE_X_TOOLKIT=LUCID ;;   
932       motif ) USE_X_TOOLKIT=MOTIF ;;    
933 dnl      open-look ) USE_X_TOOLKIT=OPEN_LOOK ;; 
934       * ) USE_X_TOOLKIT=none ;;
935     esac
936   ;;
937   none )
938     HAVE_X_WINDOWS=no
939     HAVE_X11=no
940     USE_X_TOOLKIT=none
941   ;;
942 esac
943 X_TOOLKIT_TYPE=$USE_X_TOOLKIT
945 ### If we're using X11, we should use the X menu package.
946 HAVE_X_MENU=no
947 case ${HAVE_X11} in
948   yes ) HAVE_X_MENU=yes ;;
949 esac
951 #### Extract some information from the operating system and machine files.
953 AC_CHECKING([the machine- and system-dependent files to find out
954  - which libraries the lib-src programs will want, and
955  - whether the GNU malloc routines are usable])
957 ### First figure out CFLAGS (which we use for running the compiler here)
958 ### and REAL_CFLAGS (which we use for real compilation).
959 ### The two are the same except on a few systems, where they are made
960 ### different to work around various lossages.  For example,
961 ### GCC 2.5 on Linux needs them to be different because it treats -g
962 ### as implying static linking.
964 ### If the CFLAGS env var is specified, we use that value
965 ### instead of the default.
967 ### It's not important that this name contain the PID; you can't run
968 ### two configures in the same directory and have anything work
969 ### anyway.
970 tempcname="conftest.c"
972 echo '
973 #include "'${srcdir}'/src/'${opsysfile}'"
974 #include "'${srcdir}'/src/'${machfile}'"
975 #ifndef LIBS_MACHINE
976 #define LIBS_MACHINE
977 #endif
978 #ifndef LIBS_SYSTEM
979 #define LIBS_SYSTEM
980 #endif
981 #ifndef C_SWITCH_SYSTEM
982 #define C_SWITCH_SYSTEM
983 #endif
984 #ifndef C_SWITCH_MACHINE
985 #define C_SWITCH_MACHINE
986 #endif
987 configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
988 configure___ c_switch_system=C_SWITCH_SYSTEM
989 configure___ c_switch_machine=C_SWITCH_MACHINE
991 #ifndef LIB_X11_LIB
992 #define LIB_X11_LIB -lX11
993 #endif
995 #ifndef LIBX11_MACHINE
996 #define LIBX11_MACHINE
997 #endif
999 #ifndef LIBX11_SYSTEM
1000 #define LIBX11_SYSTEM
1001 #endif
1002 configure___ LIBX=LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM
1004 #ifdef UNEXEC
1005 configure___ unexec=UNEXEC
1006 #else
1007 configure___ unexec=unexec.o
1008 #endif
1010 #ifdef SYSTEM_MALLOC
1011 configure___ system_malloc=yes
1012 #else
1013 configure___ system_malloc=no
1014 #endif
1016 #ifndef C_DEBUG_SWITCH
1017 #define C_DEBUG_SWITCH -g
1018 #endif
1020 #ifndef C_OPTIMIZE_SWITCH
1021 #define C_OPTIMIZE_SWITCH -O
1022 #endif
1024 #ifdef THIS_IS_CONFIGURE
1026 /* Get the CFLAGS for tests in configure.  */
1027 #ifdef __GNUC__
1028 configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${CFLAGS}'
1029 #else
1030 configure___ CFLAGS=C_DEBUG_SWITCH '${CFLAGS}'
1031 #endif
1033 #else /* not THIS_IS_CONFIGURE */
1035 /* Get the CFLAGS for real compilation.  */
1036 #ifdef __GNUC__
1037 configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${CFLAGS}'
1038 #else
1039 configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${CFLAGS}'
1040 #endif
1042 #endif /* not THIS_IS_CONFIGURE */
1043 ' > ${tempcname}
1045 # The value of CPP is a quoted variable reference, so we need to do this
1046 # to get its actual value...
1047 CPP=`eval "echo $CPP"`
1048 changequote(, )dnl
1049 eval `${CPP} -Isrc ${tempcname} \
1050        | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
1051 if test "x$CFLAGS" = x; then
1052   eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \
1053          | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
1054 else
1055   REAL_CFLAGS="$CFLAGS"
1057 changequote([, ])dnl
1058 rm ${tempcname}
1060 ### Compute the unexec source name from the object name.
1061 UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`"
1063 # Do the opsystem or machine files prohibit the use of the GNU malloc?
1064 # Assume not, until told otherwise.
1065 GNU_MALLOC=yes
1066 if test "${system_malloc}" = "yes"; then
1067   GNU_MALLOC=no
1068   GNU_MALLOC_reason="
1069   (The GNU allocators don't work with this system configuration.)"
1072 if test x"${REL_ALLOC}" = x; then
1073   REL_ALLOC=${GNU_MALLOC}
1076 LISP_FLOAT_TYPE=yes
1079 #### Add the libraries to LIBS and check for some functions.
1081 CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
1082 LIBS="$libsrc_libs"
1084 dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
1085 dnl and also adds -ldnet to LIBS, which Autoconf uses for checks.
1086 AC_CHECK_LIB(dnet, dnet_ntoa)
1087 dnl This causes -lresolv to get used in subsequent tests,
1088 dnl which causes failures on some systems such as HPUX 9.
1089 dnl AC_CHECK_LIB(resolv, gethostbyname)
1091 dnl FIXME replace main with a function we actually want from this library.
1092 AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
1094 AC_MSG_CHECKING(for XFree86)
1095 if test -d /usr/X386/include; then
1096   HAVE_XFREE386=yes
1097   : ${C_SWITCH_X_SITE="-I/usr/X386/include"}
1098 else
1099   HAVE_XFREE386=no
1101 AC_MSG_RESULT($HAVE_XFREE386)
1103 # We change CFLAGS temporarily so that C_SWITCH_X_SITE gets used
1104 # for the tests that follow.
1106 if test "${HAVE_X11}" = "yes"; then
1107   DEFS="$C_SWITCH_X_SITE $DEFS"
1108   LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS"
1109   CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
1110   AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
1111 XScreenNumberOfScreen XSetWMProtocols)
1114 if test "${USE_X_TOOLKIT}" != "none"; then
1115   AC_MSG_CHECKING(X11 toolkit version)
1116   AC_TRY_LINK([#include <X11/Intrinsic.h>],
1117 [#if XtSpecificationRelease < 6
1118 fail;
1119 #endif
1120 ], [AC_MSG_RESULT(6)
1121     AC_DEFINE(HAVE_X11XTR6)],
1122    [AC_MSG_RESULT(not 6)])
1125 # If netdb.h doesn't declare h_errno, we must declare it by hand.
1126 AC_MSG_CHECKING(whether netdb declarares h_errno)
1127 AC_TRY_LINK([#include <netdb.h>],
1128   [return h_errno;],
1129   [AC_MSG_RESULT(yes)
1130    AC_DEFINE(HAVE_H_ERRNO)],
1131   [AC_MSG_RESULT(no)])
1133 AC_FUNC_ALLOCA
1135 # logb and frexp are found in -lm on most systems.
1136 AC_CHECK_LIB(m, logb)
1137 AC_CHECK_FUNCS(gettimeofday gethostname dup2 rename closedir mkdir rmdir \
1138 random lrand48 bcopy bcmp logb frexp fmod drem ftime res_init setsid \
1139 strerror fpathconf select mktime eaccess getpagesize)
1141 ok_so_far=yes
1142 AC_CHECK_FUNC(socket, , ok_so_far=no)
1143 if test $ok_so_far = yes; then
1144   AC_CHECK_HEADER(netinet/in.h, , ok_so_far=no)
1146 if test $ok_so_far = yes; then
1147   AC_CHECK_HEADER(arpa/inet.h, , ok_so_far=no)
1149 if test $ok_so_far = yes; then
1150   AC_DEFINE(HAVE_INET_SOCKETS)
1153 if test -f /usr/lpp/X11/bin/smt.exp; then
1154   AC_DEFINE(HAVE_AIX_SMT_EXP)
1157 # Set up the CFLAGS for real compilation, so we can substitute it.
1158 CFLAGS="$REAL_CFLAGS"
1160 changequote(, )dnl
1161 #### Find out which version of Emacs this is.
1162 version=`grep 'defconst[         ]*emacs-version' ${srcdir}/lisp/version.el \
1163          | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`
1164 changequote([, ])dnl
1165 if test x"${version}" = x; then
1166   AC_MSG_ERROR(can't find current emacs version in \`${srcdir}/lisp/version.el'.)
1169 ### Specify what sort of things we'll be editing into Makefile and config.h.
1170 ### Use configuration here uncanonicalized to avoid exceeding size limits.
1171 AC_SUBST(version)
1172 AC_SUBST(configuration)
1173 AC_SUBST(canonical)
1174 AC_SUBST(srcdir)
1175 AC_SUBST(prefix)
1176 AC_SUBST(exec_prefix)
1177 AC_SUBST(bindir)
1178 AC_SUBST(datadir)
1179 AC_SUBST(sharedstatedir)
1180 AC_SUBST(libexecdir)
1181 AC_SUBST(mandir)
1182 AC_SUBST(infodir)
1183 AC_SUBST(lispdir)
1184 AC_SUBST(locallisppath)
1185 AC_SUBST(lisppath)
1186 AC_SUBST(etcdir)
1187 AC_SUBST(lockdir)
1188 AC_SUBST(archlibdir)
1189 AC_SUBST(docdir)
1190 AC_SUBST(bitmapdir)
1191 AC_SUBST(c_switch_system)
1192 AC_SUBST(c_switch_machine)
1193 AC_SUBST(LD_SWITCH_X_SITE)
1194 AC_SUBST(LD_SWITCH_X_SITE_AUX)
1195 AC_SUBST(C_SWITCH_X_SITE)
1196 AC_SUBST(CFLAGS)
1197 AC_SUBST(X_TOOLKIT_TYPE)
1198 AC_SUBST(machfile)
1199 AC_SUBST(opsysfile)
1201 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION,  "${canonical}")
1202 AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${config_options}")
1203 AC_DEFINE_UNQUOTED(config_machfile,  "${machfile}")
1204 AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}")
1205 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE})
1206 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX})
1207 AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE,  ${C_SWITCH_X_SITE})
1208 AC_DEFINE_UNQUOTED(UNEXEC_SRC,       ${UNEXEC_SRC})
1210 if test "${HAVE_X_WINDOWS}" = "yes" ; then
1211   AC_DEFINE(HAVE_X_WINDOWS)
1213 if test "${USE_X_TOOLKIT}" != "none" ; then
1214   AC_DEFINE(USE_X_TOOLKIT)
1216 if test "${HAVE_X11}" = "yes" ; then
1217   AC_DEFINE(HAVE_X11)
1219 if test "${HAVE_XFREE386}" = "yes" ; then
1220   AC_DEFINE(HAVE_XFREE386)
1222 if test "${HAVE_X_MENU}" = "yes" ; then
1223   AC_DEFINE(HAVE_X_MENU)
1225 if test "${GNU_MALLOC}" = "yes" ; then
1226   AC_DEFINE(GNU_MALLOC)
1228 if test "${REL_ALLOC}" = "yes" ; then
1229   AC_DEFINE(REL_ALLOC)
1231 if test "${LISP_FLOAT_TYPE}" = "yes" ; then
1232   AC_DEFINE(LISP_FLOAT_TYPE)
1235 #### Report on what we decided to do.
1236 echo "
1238 Configured for \`${canonical}'.
1240   Where should the build process find the source code?    ${srcdir}
1241   What operating system and machine description files should Emacs use?
1242         \`${opsysfile}' and \`${machfile}'
1243   What compiler should emacs be built with?               ${CC} ${CFLAGS}
1244   Should Emacs use the GNU version of malloc?             ${GNU_MALLOC}${GNU_MALLOC_reason}
1245   Should Emacs use the relocating allocator for buffers?  ${REL_ALLOC}
1246   What window system should Emacs use?                    ${window_system}
1247   What toolkit should Emacs use?                          ${USE_X_TOOLKIT}${x_includes+
1248   Where do we find X Windows header files?                }${x_includes}${x_libraries+
1249   Where do we find X Windows libraries?                   }${x_libraries}
1253 # Remove any trailing slashes in these variables.
1254 changequote(, )dnl
1255 test "${prefix}" != NONE &&
1256   prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
1257 test "${exec_prefix}" != NONE &&
1258   exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`
1259 changequote([, ])dnl
1261 AC_OUTPUT(Makefile lib-src/Makefile.in oldXMenu/Makefile \
1262         man/Makefile lwlib/Makefile src/Makefile.in, [
1264 ### Make necessary directories, if they don't exist.
1265 for dir in cpp etc ; do
1266   test -d ${dir} || mkdir ${dir}
1267 done
1269 # Build src/Makefile from ${srcdir}/src/Makefile.in.  This must be done
1270 # after src/config.h is built, since we rely on that file.
1272 changequote(, )dnl The horror, the horror.
1273 # Now get this: Some word that is part of the ${srcdir} directory name
1274 # or the ${configuration} value might, just might, happen to be an
1275 # identifier like `sun4' or `i386' or something, and be predefined by
1276 # the C preprocessor to some helpful value like 1, or maybe the empty
1277 # string.  Needless to say consequent macro substitutions are less
1278 # than conducive to the makefile finding the correct directory.
1279 undefs="`echo $top_srcdir $configuration $canonical |
1280 sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/  *$//' \
1281     -e 's/  */ -U/g' -e 's/-U[0-9][^ ]*//g' \
1283 changequote([, ])dnl
1285 echo creating lib-src/Makefile
1286 ( cd lib-src
1287   rm -f junk.c junk1.c junk2.c
1288   sed -e '/start of cpp stuff/q' \
1289       < Makefile.in > junk1.c
1290   sed -e '1,/start of cpp stuff/d'\
1291       -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
1292       < Makefile.in > junk.c
1293   $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
1294       sed -e 's/^ /     /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
1295   cat junk1.c junk2.c > Makefile.new
1296   rm -f junk.c junk1.c junk2.c
1297   chmod 444 Makefile.new
1298   mv -f Makefile.new Makefile
1301 echo creating src/Makefile
1302 ( cd src
1303   rm -f junk.c junk1.c junk2.c
1304   sed -e '/start of cpp stuff/q' \
1305       < Makefile.in > junk1.c
1306   sed -e '1,/start of cpp stuff/d'\
1307       -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
1308       < Makefile.in > junk.c
1309   $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
1310       sed -e 's/^ /     /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
1311   cat junk1.c junk2.c > Makefile.new
1312   rm -f junk.c junk1.c junk2.c
1313   chmod 444 Makefile.new
1314   mv -f Makefile.new Makefile
1316 ], [CPP="$CPP" CPPFLAGS="$CPPFLAGS"])