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