# HG changeset patch # User David J. MacKenzie # Date 777913066 0 # Node ID 015bd32cdb3806c62925ae9b24b151dcb01d732f # Parent a241401a67ff2273d5b99b3c9d332712e517341c Initial revision diff -r a241401a67ff -r 015bd32cdb38 configure.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/configure.in Fri Aug 26 14:57:46 1994 +0000 @@ -0,0 +1,1350 @@ +dnl This is an autoconf script. +dnl To rebuild the `configure' script from this, execute the command +dnl autoconf +dnl in the directory containing this script. +AC_PREREQ(1.106)dnl +AC_INIT(src/lisp.h) +AC_CONFIG_HEADER(src/config.h) + +bindir='${exec_prefix}/bin' +datadir='${prefix}/lib' +statedir='${prefix}/lib' +libdir='${exec_prefix}/lib' +mandir='${prefix}/man/man1' +infodir='${prefix}/info' +lispdir='${datadir}/emacs/${version}/lisp' +locallisppath='${datadir}/emacs/site-lisp' +lisppath='${locallisppath}:${lispdir}' +etcdir='${datadir}/emacs/${version}/etc' +lockdir='${statedir}/emacs/lock' +archlibdir='${libdir}/emacs/${version}/${configuration}' +docdir='${datadir}/emacs/${version}/etc' + +AC_ARG_WITH(x10, +[ --with-x10 Support the X Window System version 10]) +AC_ARG_WITH(x, +[ --with-x Support the X Window System version 11]) +AC_ARG_WITH(x11, +[ --with-x11 Support the X Window System version 11]) +AC_ARG_WITH(x-toolkit, +[ --with-x-toolkit=KIT Use an X toolkit (KIT = lucid or athena)], +[ case "${withval}" in + y | ye | yes ) val=athena ;; + n | no ) val=no ;; + l | lu | luc | luci | lucid ) val=lucid ;; + a | at | ath | athe | athena ) val=athena ;; +# These don't currently work. +# m | mo | mot | moti | motif ) val=motif ;; +# o | op | ope | open | open- | open-l | open-lo \ +# | open-loo | open-look ) val=open-look ;; + * ) +[#] AC_MSG_ERROR([the \`--with-x-toolkit' option is supposed to have a value +[#]which is \`yes', \`no', \`lucid', \`athena', \`motif' or \`open-look'.]) +AC_MSG_ERROR([the \`--with-x-toolkit' option is supposed to have a value +which is \`yes', \`no', \`lucid', or \`athena'. +Currently, \`yes', \`athena' and \`lucid' are synonyms.]) + ;; + esac + with_x_toolkit=$val +]) +AC_ARG_WITH(gcc, +[ --with-gcc Use GCC to compile Emacs]) +AC_ARG_ENABLE(in-place, +[ --enable-in-place Use libraries and data files directly out of the + source tree]) +AC_ARG_ENABLE(single-tree, +[ --enable-single-tree Create a directory tree at DIR which looks like: + .../DIR/bin/CONFIGNAME (emacs, etags, etc.) + .../DIR/bin/CONFIGNAME/etc (movemail, etc.) + .../DIR/common/lisp (emacs' lisp files) + .../DIR/common/site-lisp (local lisp files) + .../DIR/common/lib (DOC, TUTORIAL, etc.) + .../DIR/common/lock (lockfiles)]) + +#### Make srcdir absolute, if it isn't already. It's important to +#### avoid running the path through pwd unnecessary, since pwd can +#### give you automounter prefixes, which can go away. +case "${srcdir}" in + /* ) ;; + . ) + ## We may be able to use the $PWD environment variable to make this + ## absolute. But sometimes PWD is inaccurate. + if test "${PWD}" != "" && test "`(cd ${PWD} ; sh -c pwd)`" = "`pwd`" ; + then + srcdir="$PWD" + else + srcdir="`(cd ${srcdir}; pwd)`" + fi + ;; + * ) srcdir="`(cd ${srcdir}; pwd)`" ;; +esac + +#### Check if the source directory already has a configured system in it. +if test `pwd` != `(cd ${srcdir} && pwd)` \ + && test -f "${srcdir}/src/config.h" ; then + AC_MSG_WARN([The directory tree \`${srcdir}' is being used + as a build directory right now; it has been configured in its own + right. To configure in another directory as well, you MUST + use GNU make. If you do not have GNU make, then you must + now do \`make distclean' in ${srcdir}, + and then run $0 again.]) + + extrasub='/^VPATH[ ]*=/c\ +vpath %.c $(srcdir)\ +vpath %.h $(srcdir)\ +vpath %.y $(srcdir)\ +vpath %.l $(srcdir)\ +vpath %.s $(srcdir)\ +vpath %.in $(srcdir)' +fi + +#### Given the configuration name, set machfile and opsysfile to the +#### names of the m/*.h and s/*.h files we should use. + +### Canonicalize the configuration name. + +AC_CANONICAL_HOST +canonical=$host + +changequote(, )dnl + +### If you add support for a new configuration, add code to this +### switch statement to recognize your configuration name and select +### the appropriate operating system and machine description files. + +### You would hope that you could choose an m/*.h file pretty much +### based on the machine portion of the configuration name, and an s- +### file based on the operating system portion. However, it turns out +### that each m/*.h file is pretty manufacturer-specific - for +### example, apollo.h, hp9000s300.h, mega68k, news.h, and tad68k are +### all 68000 machines; mips.h, pmax.h, and news-risc are all MIPS +### machines. So we basically have to have a special case for each +### configuration name. +### +### As far as handling version numbers on operating systems is +### concerned, make sure things will fail in a fixable way. If +### /etc/MACHINES doesn't say anything about version numbers, be +### prepared to handle anything reasonably. If version numbers +### matter, be sure /etc/MACHINES says something about it. +### +### Eric Raymond says we should accept strings like "sysvr4" to mean +### "System V Release 4"; he writes, "The old convention encouraged +### confusion between `system' and `release' levels'." + +machine='' opsys='' unported=no +case "${canonical}" in + + ## NetBSD ports + *-*-netbsd* ) + opsys=netbsd + case "${canonical}" in + i[345]86-*-netbsd*) machine=intel386 ;; + m68k-*-netbsd*) + # This is somewhat bogus. + machine=hp9000s300 ;; + mips-*-netbsd*) machine=pmax ;; + ns32k-*-netbsd*) machine=ns32000 ;; + sparc-*-netbsd*) machine=sparc ;; + esac + ;; + + ## Alliant machines + ## Strictly speaking, we need the version of the alliant operating + ## system to choose the right machine file, but currently the + ## configuration name doesn't tell us enough to choose the right + ## one; we need to give alliants their own operating system name to + ## do this right. When someone cares, they can help us. + fx80-alliant-* ) + machine=alliant4 opsys=bsd4-2 + ;; + i860-alliant-* ) + machine=alliant-2800 opsys=bsd4-3 + ;; + + ## Altos 3068 + m68*-altos-sysv* ) + machine=altos opsys=usg5-2 + ;; + + ## Amdahl UTS + 580-amdahl-sysv* ) + machine=amdahl opsys=usg5-2-2 + ;; + + ## Appallings - I mean, Apollos - running Domain + m68*-apollo* ) + machine=apollo opsys=bsd4-2 + ;; + + ## AT&T 3b2, 3b5, 3b15, 3b20 + we32k-att-sysv* ) + machine=att3b opsys=usg5-2-2 + ;; + + ## AT&T 3b1 - The Mighty Unix PC! + m68*-att-sysv* ) + machine=7300 opsys=usg5-2-2 + ;; + + ## Bull dpx20 + rs6000-bull-bosx* ) + machine=ibmrs6000 opsys=aix3-2 + ;; + + ## Bull dpx2 + m68*-bull-sysv3* ) + machine=dpx2 opsys=usg5-3 + ;; + + ## Bull sps7 + m68*-bull-sysv2* ) + machine=sps7 opsys=usg5-2 + ;; + + ## CCI 5/32, 6/32 -- see "Tahoe". + + ## Celerity + ## I don't know what configuration name to use for this; config.sub + ## doesn't seem to know anything about it. Hey, Celerity users, get + ## in touch with us! + celerity-celerity-bsd* ) + machine=celerity opsys=bsd4-2 + ;; + + ## Clipper + ## What operating systems does this chip run that Emacs has been + ## tested on? + clipper-* ) + machine=clipper + ## We'll use the catch-all code at the bottom to guess the + ## operating system. + ;; + + ## Convex + *-convex-bsd* | *-convex-convexos* ) + machine=convex opsys=bsd4-3 + ## Prevents suprious white space in makefiles - d.m.cooke@larc.nasa.gov + NON_GNU_CPP="cc -E -P" + ;; + + ## Cubix QBx/386 + i[345]86-cubix-sysv* ) + machine=intel386 opsys=usg5-3 + ;; + + ## Cydra 5 + cydra*-cydrome-sysv* ) + machine=cydra5 opsys=usg5-3 + ;; + + ## Data General AViiON Machines + m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* ) + machine=aviion opsys=dgux5-4r3 + ;; + m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* ) + machine=aviion opsys=dgux5-4r2 + ;; + m88k-dg-dgux* ) + machine=aviion opsys=dgux + ;; + + ## DECstations + mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0* | mips-dec-bsd4.2* ) + machine=pmax opsys=bsd4-2 + ;; + mips-dec-ultrix* | mips-dec-bsd* ) + machine=pmax opsys=bsd4-3 + ;; + mips-dec-osf* ) + machine=pmax opsys=osf1 + ;; + + ## Motorola Delta machines + m68k-motorola-sysv* | m68000-motorola-sysv* ) + machine=delta opsys=usg5-3 + if test -z "`type gnucc | grep 'not found'`" + then CC=gnucc + else + if test -z "`type gcc | grep 'not found'`" + then CC=gcc + else CC=cc + fi + fi + ;; + m88k-motorola-sysv4* ) + machine=delta88k opsys=usg5-4 + ;; + m88k-motorola-sysv* | m88k-motorola-m88kbcs* ) + machine=delta88k opsys=usg5-3 + ;; + + ## Dual machines + m68*-dual-sysv* ) + machine=dual opsys=usg5-2 + ;; + m68*-dual-uniplus* ) + machine=dual opsys=unipl5-2 + ;; + + ## Elxsi 6400 + elxsi-elxsi-sysv* ) + machine=elxsi opsys=usg5-2 + ;; + + ## Encore machines + ns16k-encore-bsd* ) + machine=ns16000 opsys=umax + ;; + + ## The GEC 93 - apparently, this port isn't really finished yet. + + ## Gould Power Node and NP1 + pn-gould-bsd4.2* ) + machine=gould opsys=bsd4-2 + ;; + pn-gould-bsd4.3* ) + machine=gould opsys=bsd4-3 + ;; + np1-gould-bsd* ) + machine=gould-np1 opsys=bsd4-3 + ;; + + ## Harris Night Hawk machines running CX/UX (a 5000 looks just like a 4000 + ## as far as Emacs is concerned). + m88k-harris-cxux* ) + # Build needs to be different on 7.0 and later releases + case "`uname -r`" in + [56].[0-9] ) machine=nh4000 opsys=cxux ;; + [7].[0-9] ) machine=nh4000 opsys=cxux7 ;; + esac + ;; + ## Harris ecx or gcx running CX/UX (Series 1200, Series 3000) + m68k-harris-cxux* ) + machine=nh3000 opsys=cxux + ;; + + ## Honeywell XPS100 + xps*-honeywell-sysv* ) + machine=xps100 opsys=usg5-2 + ;; + + ## HP 9000 series 200 or 300 + m68*-hp-bsd* ) + machine=hp9000s300 opsys=bsd4-3 + ;; + ## HP/UX 7, 8 and 9 are supported on these machines. + m68*-hp-hpux* ) + case "`uname -r`" in + ## Someone's system reports A.B8.05 for this. + ## I wonder what other possibilities there are. + *.B8.* ) machine=hp9000s300 opsys=hpux8 ;; + *.08.* ) machine=hp9000s300 opsys=hpux8 ;; + *.09.* ) machine=hp9000s300 opsys=hpux9 ;; + *) machine=hp9000s300 opsys=hpux ;; + esac + ;; + + ## HP 9000 series 700 and 800, running HP/UX + hppa*-hp-hpux7* ) + machine=hp800 opsys=hpux + ;; + hppa*-hp-hpux8* ) + machine=hp800 opsys=hpux8 + ;; + hppa*-hp-hpux9shr* ) + machine=hp800 opsys=hpux9shr + ;; + hppa*-hp-hpux9* ) + machine=hp800 opsys=hpux9 + ;; + + ## HP 9000 series 700 and 800, running HP/UX + hppa*-hp-hpux* ) + ## Cross-compilation? Nah! + case "`uname -r`" in + ## Someone's system reports A.B8.05 for this. + ## I wonder what other possibilities there are. + *.B8.* ) machine=hp800 opsys=hpux8 ;; + *.08.* ) machine=hp800 opsys=hpux8 ;; + *.09.* ) machine=hp800 opsys=hpux9 ;; + *) machine=hp800 opsys=hpux ;; + esac + ;; + + ## Orion machines + orion-orion-bsd* ) + machine=orion opsys=bsd4-2 + ;; + clipper-orion-bsd* ) + machine=orion105 opsys=bsd4-2 + ;; + + ## IBM machines + i[345]86-ibm-aix1.1* ) + machine=ibmps2-aix opsys=usg5-2-2 + ;; + i[345]86-ibm-aix1.[23]* | i[345]86-ibm-aix* ) + machine=ibmps2-aix opsys=usg5-3 + ;; + i370-ibm-aix*) + machine=ibm370aix opsys=usg5-3 + ;; + rs6000-ibm-aix3.1* ) + machine=ibmrs6000 opsys=aix3-1 + ;; + rs6000-ibm-aix3.2.5) + machine=ibmrs6000 opsys=aix3-2-5 + ;; + rs6000-ibm-aix3.2* | rs6000-ibm-aix* ) + machine=ibmrs6000 opsys=aix3-2 + ;; + romp-ibm-bsd4.3* ) + machine=ibmrt opsys=bsd4-3 + ;; + romp-ibm-bsd4.2* ) + machine=ibmrt opsys=bsd4-2 + ;; + romp-ibm-aos4.3* ) + machine=ibmrt opsys=bsd4-3 + ;; + romp-ibm-aos4.2* ) + machine=ibmrt opsys=bsd4-2 + ;; + romp-ibm-aos* ) + machine=ibmrt opsys=bsd4-3 + ;; + romp-ibm-bsd* ) + machine=ibmrt opsys=bsd4-3 + ;; + romp-ibm-aix* ) + machine=ibmrt-aix opsys=usg5-2-2 + ;; + + ## Integrated Solutions `Optimum V' + m68*-isi-bsd4.2* ) + machine=isi-ov opsys=bsd4-2 + ;; + m68*-isi-bsd4.3* ) + machine=isi-ov opsys=bsd4-3 + ;; + + ## Intel 386 machines where we do care about the manufacturer + i[345]86-intsys-sysv* ) + machine=is386 opsys=usg5-2-2 + ;; + + ## Prime EXL + i[345]86-prime-sysv* ) + machine=i386 opsys=usg5-3 + ;; + + ## Sequent Symmetry + i[345]86-sequent-bsd* ) + machine=symmetry opsys=bsd4-3 + ;; + + ## Unspecified sysv on an ncr machine defaults to svr4.2. + ## (Plain usg5-4 doesn't turn on POSIX signals, which we need.) + i[345]86-ncr-sysv* ) + machine=intel386 opsys=usg5-4-2 + ;; + + ## Intel 860 + i860-*-sysv4* ) + machine=i860 opsys=usg5-4 + NON_GNU_CC="/bin/cc" # Ie, not the one in /usr/ucb/cc. + NON_GNU_CPP="/usr/ccs/lib/cpp" # cc -E tokenizes macro expansion. + ;; + + ## Masscomp machines + m68*-masscomp-rtu* ) + machine=masscomp opsys=rtu + ;; + + ## Megatest machines + m68*-megatest-bsd* ) + machine=mega68 opsys=bsd4-2 + ;; + + ## Workstations sold by MIPS + ## This is not necessarily all workstations using the MIPS processor - + ## Irises are produced by SGI, and DECstations by DEC. + + ## etc/MACHINES lists mips.h and mips4.h as possible machine files, + ## and usg5-2-2 and bsd4-3 as possible OS files. The only guidance + ## it gives for choosing between the alternatives seems to be "Use + ## -machine=mips4 for RISCOS version 4; use -opsystem=bsd4-3 with + ## the BSD world." I'll assume that these are instructions for + ## handling two odd situations, and that every other situation + ## should use mips.h and usg5-2-2, they being listed first. + mips-mips-usg* ) + machine=mips4 + ## Fall through to the general code at the bottom to decide on the OS. + ;; + mips-mips-riscos4* ) + machine=mips4 opsys=bsd4-3 + NON_GNU_CC="cc -systype bsd43" + NON_GNU_CPP="cc -systype bsd43 -E" + ;; + mips-mips-bsd* ) + machine=mips opsys=bsd4-3 + ;; + mips-mips-* ) + machine=mips opsys=usg5-2-2 + ;; + + ## NeXT + m68*-next-* | i[345]86-next-* ) + machine=next opsys=mach2 + ;; + + ## The complete machine from National Semiconductor + ns32k-ns-genix* ) + machine=ns32000 opsys=usg5-2 + ;; + + ## NCR machines + m68*-ncr-sysv2* | m68*-ncr-sysvr2* ) + machine=tower32 opsys=usg5-2-2 + ;; + m68*-ncr-sysv3* | m68*-ncr-sysvr3* ) + machine=tower32v3 opsys=usg5-3 + ;; + + ## Nixdorf Targon 31 + m68*-nixdorf-sysv* ) + machine=targon31 opsys=usg5-2-2 + ;; + + ## Nu (TI or LMI) + m68*-nu-sysv* ) + machine=nu opsys=usg5-2 + ;; + + ## Plexus + m68*-plexus-sysv* ) + machine=plexus opsys=usg5-2 + ;; + + ## Pyramid machines + ## I don't really have any idea what sort of processor the Pyramid has, + ## so I'm assuming it is its own architecture. + pyramid-pyramid-bsd* ) + machine=pyramid opsys=bsd4-2 + ;; + + ## Sequent Balance + ns32k-sequent-bsd4.2* ) + machine=sequent opsys=bsd4-2 + ;; + ns32k-sequent-bsd4.3* ) + machine=sequent opsys=bsd4-3 + ;; + + ## Siemens Nixdorf + mips-siemens-sysv* ) + machine=mips-siemens opsys=usg5-4 + NON_GNU_CC=/usr/ccs/bin/cc + NON_GNU_CPP=/usr/ccs/lib/cpp + ;; + + ## Silicon Graphics machines + ## Iris 2500 and Iris 2500 Turbo (aka the Iris 3030) + m68*-sgi-iris3.5* ) + machine=irist opsys=iris3-5 + ;; + m68*-sgi-iris3.6* | m68*-sgi-iris*) + machine=irist opsys=iris3-6 + ;; + ## Iris 4D + mips-sgi-irix3* ) + machine=iris4d opsys=irix3-3 + ;; + mips-sgi-irix5* ) + machine=iris4d opsys=irix5-0 + ;; + mips-sgi-irix4* | mips-sgi-irix* ) + machine=iris4d opsys=irix4-0 + ;; + + ## SONY machines + m68*-sony-bsd4.2* ) + machine=news opsys=bsd4-2 + ;; + m68*-sony-bsd4.3* ) + machine=news opsys=bsd4-3 + ;; + m68*-sony-newsos3*) + machine=news opsys=bsd4-3 + ;; + mips-sony-bsd* | mips-sony-newsos4* ) + machine=news-risc opsys=bsd4-3 + ;; + mips-sony-newsos* ) + machine=news-risc opsys=newsos5 + ;; + + ## Stride + m68*-stride-sysv* ) + machine=stride opsys=usg5-2 + ;; + + ## Suns + *-sun-sunos* | *-sun-bsd* | *-sun-solaris* | i[345]86-*-solaris2* | i[345]86-*-sunos5* ) + case "${canonical}" in + m68*-sunos1* ) machine=sun1 ;; + m68*-sunos2* ) machine=sun2 ;; + m68* ) machine=sun3 ;; + i[345]86-sun-sunos[34]* ) machine=sun386 ;; + i[345]86-*-* ) machine=intel386 ;; + sparc* ) machine=sparc ;; + * ) unported=yes ;; + esac + case "${canonical}" in + ## The Sun386 didn't get past 4.0. + i[345]86-*-sunos4 ) opsys=sunos4-0 ;; + *-sunos4.0* ) opsys=sunos4-0 ;; + *-sunos4.1.3* ) opsys=sunos4-1-3 + NON_GCC_TEST_OPTIONS=-Bstatic + GCC_TEST_OPTIONS=-static + ;; + *-sunos4shr* ) opsys=sunos4shr ;; + *-sunos4* | *-sunos ) opsys=sunos4-1 + NON_GCC_TEST_OPTIONS=-Bstatic + GCC_TEST_OPTIONS=-static + ;; + *-sunos5.3* | *-solaris2.3* ) + opsys=sol2-3 + NON_GNU_CPP=/usr/ccs/lib/cpp + ;; + *-sunos5.4* | *-solaris2.4* ) + opsys=sol2-4 + NON_GNU_CPP=/usr/ccs/lib/cpp + ;; + *-sunos5* | *-solaris* ) + opsys=sol2 + NON_GNU_CPP=/usr/ccs/lib/cpp + ;; + * ) opsys=bsd4-2 ;; + esac + ;; + + ## Tadpole 68k + m68*-tadpole-sysv* ) + machine=tad68k opsys=usg5-3 + ;; + + ## Tahoe machines + tahoe-tahoe-bsd4.2* ) + machine=tahoe opsys=bsd4-2 + ;; + tahoe-tahoe-bsd4.3* ) + machine=tahoe opsys=bsd4-3 + ;; + + ## Tandem Integrity S2 + mips-tandem-sysv* ) + machine=tandem-s2 opsys=usg5-3 + ;; + + ## Tektronix XD88 + m88k-tektronix-sysv3* ) + machine=tekxd88 opsys=usg5-3 + ;; + + ## Tektronix 16000 box (6130?) + ns16k-tektronix-bsd* ) + machine=ns16000 opsys=bsd4-2 + ;; + ## Tektronix 4300 + ## src/m/tek4300.h hints that this is a m68k machine. + m68*-tektronix-bsd* ) + machine=tek4300 opsys=bsd4-3 + ;; + + ## Titan P2 or P3 + ## We seem to have lost the machine-description file titan.h! + titan-titan-sysv* ) + machine=titan opsys=usg5-3 + ;; + + ## Ustation E30 (SS5E) + m68*-unisys-uniplus* ) + machine=ustation opsystem=unipl5-2 + ;; + + ## Vaxen. + vax-dec-* ) + machine=vax + case "${canonical}" in + *-bsd4.1* ) opsys=bsd4-1 ;; + *-bsd4.2* | *-ultrix[0-3].* | *-ultrix4.0* ) opsys=bsd4-2 ;; + *-bsd4.3* | *-ultrix* ) opsys=bsd4-3 ;; + *-bsd386* | *-bsdi* ) opsys=bsd386 ;; + *-sysv[01]* | *-sysvr[01]* ) opsys=usg5-0 ;; + *-sysv2* | *-sysvr2* ) opsys=usg5-2 ;; + *-vms* ) opsys=vms ;; + * ) unported=yes + esac + ;; + + ## Whitechapel MG1 + ns16k-whitechapel-* ) + machine=mg1 + ## We don't know what sort of OS runs on these; we'll let the + ## operating system guessing code below try. + ;; + + ## Wicat + m68*-wicat-sysv* ) + machine=wicat opsys=usg5-2 + ;; + + ## Intel 386 machines where we don't care about the manufacturer + i[345]86-*-* ) + machine=intel386 + case "${canonical}" in + *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;; + *-isc2.2* ) opsys=isc2-2 ;; + *-isc4.0* ) opsys=isc4-0 ;; + *-isc* ) opsys=isc3-0 ;; + *-esix5* ) opsys=esix5r4; NON_GNU_CPP=/usr/lib/cpp ;; + *-esix* ) opsys=esix ;; + *-xenix* ) opsys=xenix ;; + *-linux* ) opsys=linux ;; + *-sco3.2v4* ) opsys=sco4 ; NON_GNU_CPP=/lib/cpp ;; + *-bsd386* | *-bsdi* ) opsys=bsd386 ;; + *-386bsd* ) opsys=386bsd ;; + *-freebsd* ) opsys=freebsd ;; + *-nextstep* ) opsys=mach2 ;; + ## Otherwise, we'll fall through to the generic opsys code at the bottom. + esac + ;; + + * ) + unported=yes + ;; +esac + +### If the code above didn't choose an operating system, just choose +### an operating system based on the configuration name. You really +### only want to use this when you have no idea what the right +### operating system is; if you know what operating systems a machine +### runs, it's cleaner to make it explicit in the case statement +### above. +if test x"${opsys}" = x; then + case "${canonical}" in + *-gnu* ) opsys=gnu ;; + *-bsd4.[01] ) opsys=bsd4-1 ;; + *-bsd4.2 ) opsys=bsd4-2 ;; + *-bsd4.3 ) opsys=bsd4-3 ;; + *-sysv0 | *-sysvr0 ) opsys=usg5-0 ;; + *-sysv2 | *-sysvr2 ) opsys=usg5-2 ;; + *-sysv2.2 | *-sysvr2.2 ) opsys=usg5-2-2 ;; + *-sysv3 | *-sysvr3 ) opsys=usg5-3 ;; + *-sysv4 | *-sysvr4 ) opsys=usg5-4 ;; + *-sysv4.1 | *-sysvr4.1 ) + NON_GNU_CPP=/usr/lib/cpp + opsys=usg5-4 ;; + *-sysv4.2 | *-sysvr4.2 ) opsys=usg5-4-2 ;; + * ) + unported=yes + ;; + esac +fi + +changequote([, ])dnl + +if test $unported = yes; then + AC_MSG_ERROR([Emacs hasn't been ported to \`${canonical}' systems. +Check \`etc/MACHINES' for recognized configuration names.]) +fi + +machfile="m/${machine}.h" +opsysfile="s/${opsys}.h" + + +#### Choose a compiler. +test -n "$CC" && cc_specified=yes + +case ${with_gcc} in + "yes" ) CC="gcc" GCC=yes ;; + "no" ) test -z "$CC" && CC=cc ;; + * ) AC_PROG_CC +esac + +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi + +#### Some systems specify a CPP to use unless we are using GCC. +#### Now that we know whether we are using GCC, we can decide whether +#### to use that one. +if test "x$NON_GNU_CPP" != x && test x$GCC != xyes && test "x$CPP" = x +then + CPP="$NON_GNU_CPP" +fi + +#### Some systems specify a CC to use unless we are using GCC. +#### Now that we know whether we are using GCC, we can decide whether +#### to use that one. +if test "x$NON_GNU_CC" != x && test x$GCC != xyes && + test x$cc_specified != xyes +then + CC="$NON_GNU_CC" +fi + +if test x$GCC = xyes && test "x$GCC_TEST_OPTIONS" != x +then + CC="$CC $GCC_TEST_OPTIONS" +fi + +if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x +then + CC="$CC $NON_GCC_TEST_OPTIONS" +fi + +#### Some other nice autoconf tests. If you add a test here which +#### should make an entry in src/config.h, don't forget to add an +#### #undef clause to src/config.h.in for autoconf to modify. + +dnl checks for programs +AC_LN_S +AC_PROG_CPP +AC_PROG_INSTALL +AC_PROG_YACC + +dnl checks for header files +AC_HAVE_HEADERS(sys/timeb.h sys/time.h unistd.h) +AC_STDC_HEADERS +AC_TIME_WITH_SYS_TIME +AC_SYS_SIGLIST_DECLARED + +dnl checks for typedefs +AC_RETSIGTYPE + +dnl checks for structure members +AC_STRUCT_TM +AC_TIMEZONE + +dnl checks for compiler characteristics +AC_CONST + +dnl check for Make feature +AC_SET_MAKE + +dnl checks for operating system services +AC_LONG_FILE_NAMES + +dnl other checks for UNIX variants + +#### Choose a window system. +AC_MSG_CHECKING(for specified window system) + +window_system='' +case "${with_x}" in + yes ) window_system=${window_system}x11 ;; + no ) window_system=${window_system}none ;; +esac + +case "${window_system}" in + .* ) ;; + * ) + case "${with_x11}" in + yes ) window_system=x11 ;; + no ) window_system=none ;; + esac + case "${with_x10}" in + yes ) window_system=x10 ;; + no ) window_system=none ;; + esac ;; +esac + +case "${window_system}" in + "none" | "x11" | "x10" ) ;; + "" ) + # --x-includes or --x-libraries implies --with-x11. + if test "${x_includes}" != NONE || test "${x_libraries}" != NONE; then + window_system=x11 + else + # If the user didn't specify a window system and we found X11, use it. + if test -r /usr/lib/libX11.a \ + -o -d /usr/include/X11 \ + -o -d /usr/X386/include \ + -o -d ${x_includes}/X11 ; then + window_system=x11 + fi + fi + ;; + * ) + AC_MSG_ERROR(Don't specify a window system more than once.) + ;; +esac + +AC_MSG_RESULT(${window_system}) + +case "${window_system}" in + "" | "x11" ) + ### If the user hasn't specified where we should find X, try + ### letting Autoconf figure that out. + if test "${x_includes}" = NONE && test "${x_libraries}" = NONE; then + AC_FIND_X + fi + if test "${x_includes}" != NONE || test "${x_libraries}" != NONE; then + window_system=x11 + fi + ;; +esac + +test -z "${window_system}" && window_system=none + +test "${x_libraries}" != NONE && LD_SWITCH_X_SITE="-L${x_libraries}" +test "${x_libraries}" != NONE && LD_SWITCH_X_SITE_AUX="-R${x_libraries}" +test "${x_includes}" != NONE && C_SWITCH_X_SITE="-I${x_includes}" + +# Avoid forcing the search of /usr/include before fixed include files. +if test "$C_SWITCH_X_SITE" = "-I/usr/include"; then + C_SWITCH_X_SITE=" " +fi + +case "${window_system}" in + x11 ) + HAVE_X_WINDOWS=yes + HAVE_X11=yes + case "${with_x_toolkit}" in + athena | lucid ) USE_X_TOOLKIT=LUCID ;; + motif ) USE_X_TOOLKIT=MOTIF ;; + open-look ) USE_X_TOOLKIT=OPEN_LOOK ;; + * ) USE_X_TOOLKIT=none ;; + esac + ;; + x10 ) + HAVE_X_WINDOWS=yes + HAVE_X11=no + USE_X_TOOLKIT=none + ;; + none ) + HAVE_X_WINDOWS=no + HAVE_X11=no + USE_X_TOOLKIT=none + ;; +esac +X_TOOLKIT_TYPE=$USE_X_TOOLKIT + +### If we're using X11, we should use the X menu package. +HAVE_X_MENU=no +case ${HAVE_X11} in + yes ) HAVE_X_MENU=yes ;; +esac + +#### Extract some information from the operating system and machine files. + +AC_CHECKING([the machine- and system-dependent files to find out + - which libraries the lib-src programs will want, and + - whether the GNU malloc routines are usable]) + +### First figure out CFLAGS (which we use for running the compiler here) +### and REAL_CFLAGS (which we use for real compilation). +### The two are the same except on a few systems, where they are made +### different to work around various lossages. For example, +### GCC 2.5 on Linux needs them to be different because it treats -g +### as implying static linking. + +### If the CFLAGS env var is specified, we use that value +### instead of the default. + +### It's not important that this name contain the PID; you can't run +### two configures in the same directory and have anything work +### anyway. +tempcname="conftest.c" + +echo ' +#include "'${srcdir}'/src/'${opsysfile}'" +#include "'${srcdir}'/src/'${machfile}'" +#ifndef LIBS_MACHINE +#define LIBS_MACHINE +#endif +#ifndef LIBS_SYSTEM +#define LIBS_SYSTEM +#endif +#ifndef C_SWITCH_SYSTEM +#define C_SWITCH_SYSTEM +#endif +#ifndef C_SWITCH_MACHINE +#define C_SWITCH_MACHINE +#endif +configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM +configure___ c_switch_system=C_SWITCH_SYSTEM +configure___ c_switch_machine=C_SWITCH_MACHINE + +#ifndef LIB_X11_LIB +#define LIB_X11_LIB -lX11 +#endif + +#ifndef LIBX11_MACHINE +#define LIBX11_MACHINE +#endif + +#ifndef LIBX11_SYSTEM +#define LIBX11_SYSTEM +#endif +configure___ LIBX=LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM + +#ifdef UNEXEC +configure___ unexec=UNEXEC +#else +configure___ unexec=unexec.o +#endif + +#ifdef SYSTEM_MALLOC +configure___ system_malloc=yes +#else +configure___ system_malloc=no +#endif + +#ifndef C_DEBUG_SWITCH +#define C_DEBUG_SWITCH -g +#endif + +#ifndef C_OPTIMIZE_SWITCH +#define C_OPTIMIZE_SWITCH -O +#endif + +#ifdef THIS_IS_CONFIGURE + +/* Get the CFLAGS for tests in configure. */ +#ifdef __GNUC__ +configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${CFLAGS}' +#else +configure___ CFLAGS=C_DEBUG_SWITCH '${CFLAGS}' +#endif + +#else /* not THIS_IS_CONFIGURE */ + +/* Get the CFLAGS for real compilation. */ +#ifdef __GNUC__ +configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${CFLAGS}' +#else +configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${CFLAGS}' +#endif + +#endif /* not THIS_IS_CONFIGURE */ +' > ${tempcname} + +# The value of CPP is a quoted variable reference, so we need to do this +# to get its actual value... +CPP=`eval "echo $CPP"` +changequote(, )dnl +eval `${CPP} -Isrc ${tempcname} \ + | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'` +if test "x$CFLAGS" = x; then + eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \ + | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'` +else + REAL_CFLAGS="$CFLAGS" +fi +changequote([, ])dnl +rm ${tempcname} + +### Compute the unexec source name from the object name. +UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`" + +# Do the opsystem or machine files prohibit the use of the GNU malloc? +# Assume not, until told otherwise. +GNU_MALLOC=yes +if test "${system_malloc}" = "yes"; then + GNU_MALLOC=no + GNU_MALLOC_reason=" + (The GNU allocators don't work with this system configuration.)" +fi + +if test x"${REL_ALLOC}" = x; then + REL_ALLOC=${GNU_MALLOC} +fi + +LISP_FLOAT_TYPE=yes + + +#### Add the libraries to LIBS and check for some functions. + +CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS" +LIBS="$libsrc_libs" + +dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks, +dnl and also adds -ldnet to LIBS, which Autoconf uses for checks. +AC_CHECK_LIB(dnet, dnet_ntoa) +dnl This causes -lresolv to get used in subsequent tests, +dnl which causes failures on some systems such as HPUX 9. +dnl AC_CHECK_LIB(resolv, gethostbyname) + +dnl FIXME replace main with a function we actually want from this library. +AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd") + +AC_MSG_CHECKING(for XFree86) +if test -d /usr/X386/include; then + AC_MSG_RESULT(yes) + HAVE_XFREE386=yes + test -z "${C_SWITCH_X_SITE}" && C_SWITCH_X_SITE="-I/usr/X386/include" +else + AC_MSG_RESULT(no) +fi + +# We change CFLAGS temporarily so that C_SWITCH_X_SITE gets used +# for the tests that follow. + +if test "${HAVE_X11}" = "yes"; then + DEFS="$C_SWITCH_X_SITE $DEFS" + LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS" + CFLAGS="$C_SWITCH_X_SITE $CFLAGS" + AC_HAVE_FUNCS(XrmSetDatabase XScreenResourceString \ +XScreenNumberOfScreen XSetWMProtocols) +fi + +if test "${USE_X_TOOLKIT}" != "none"; then + AC_MSG_CHECKING(X11 toolkit version) + AC_COMPILE_CHECK(, [#include ], +[#if XtSpecificationRelease < 6 +fail; +#endif +], [AC_MSG_RESULT(6) + AC_DEFINE(HAVE_X11XTR6)], + [AC_MSG_RESULT(not 6)]) +fi + +# If netdb.h doesn't declare h_errno, we must declare it by hand. +AC_MSG_CHECKING(whether netdb declarares h_errno) +AC_COMPILE_CHECK(, [#include ], +[int +foo () +{ + return h_errno; +} +], [AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_H_ERRNO)], + [AC_MSG_RESULT(no)]) + +AC_ALLOCA + +# logb and frexp are found in -lm on most systems. +AC_CHECK_LIB(m, logb) +AC_HAVE_FUNCS(gettimeofday gethostname dup2 rename closedir mkdir rmdir \ +random rand48 bcopy bcmp logb frexp fmod drem ftime res_init setsid strerror \ +fpathconf) + +ok_so_far=yes +AC_FUNC_CHECK(socket, , ok_so_far=no) +if test $ok_so_far = yes; then + AC_HEADER_CHECK(netinet/in.h, , ok_so_far=no) +fi +if test $ok_so_far = yes; then + AC_HEADER_CHECK(arpa/inet.h, , ok_so_far=no) +fi +if test $ok_so_far = yes; then + AC_DEFINE(HAVE_INET_SOCKETS) +fi + +# Set up the CFLAGS for real compilation, so we can substitute it. +CFLAGS="$REAL_CFLAGS" + +changequote(, )dnl +#### Find out which version of Emacs this is. +version=`grep 'defconst[ ]*emacs-version' ${srcdir}/lisp/version.el \ + | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'` +changequote([, ])dnl +if test x"${version}" = x; then + AC_MSG_ERROR(can't find current emacs version in \`${srcdir}/lisp/version.el'.) +fi + +if test -f /usr/lpp/X11/bin/smt.exp; then + AC_DEFINE(HAVE_AIX_SMT_EXP) +fi + +### Specify what sort of things we'll be editing into Makefile and config.h. +### Use configuration here uncanonicalized to avoid exceeding size limits. +AC_SUBST(version) +AC_SUBST(configuration) +AC_SUBST(srcdir) +AC_SUBST(prefix) +AC_SUBST(exec_prefix) +AC_SUBST(bindir) +AC_SUBST(datadir) +AC_SUBST(statedir) +AC_SUBST(libdir) +AC_SUBST(mandir) +AC_SUBST(infodir) +AC_SUBST(lispdir) +AC_SUBST(locallisppath) +AC_SUBST(lisppath) +AC_SUBST(etcdir) +AC_SUBST(lockdir) +AC_SUBST(archlibdir) +AC_SUBST(docdir) +AC_SUBST(c_switch_system) +AC_SUBST(c_switch_machine) +AC_SUBST(LD_SWITCH_X_SITE) +AC_SUBST(LD_SWITCH_X_SITE_AUX) +AC_SUBST(C_SWITCH_X_SITE) +AC_SUBST(CFLAGS) +AC_SUBST(X_TOOLKIT_TYPE) +AC_SUBST(machfile) +AC_SUBST(opsysfile) + +AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "${configuration}") +AC_DEFINE_UNQUOTED(config_machfile, "${machfile}") +AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}") +AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE}) +AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX}) +AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE, ${C_SWITCH_X_SITE}) +AC_DEFINE_UNQUOTED(UNEXEC_SRC, ${UNEXEC_SRC}) + +if test "${HAVE_X_WINDOWS}" = "yes" ; then + AC_DEFINE(HAVE_X_WINDOWS) +fi +if test "${USE_X_TOOLKIT}" != "none" ; then + AC_DEFINE(USE_X_TOOLKIT) +fi +if test "${HAVE_X11}" = "yes" ; then + AC_DEFINE(HAVE_X11) +fi +if test "${HAVE_XFREE386}" = "yes" ; then + AC_DEFINE(HAVE_XFREE386) +fi +if test "${HAVE_X_MENU}" = "yes" ; then + AC_DEFINE(HAVE_X_MENU) +fi +if test "${GNU_MALLOC}" = "yes" ; then + AC_DEFINE(GNU_MALLOC) +fi +if test "${REL_ALLOC}" = "yes" ; then + AC_DEFINE(REL_ALLOC) +fi +if test "${LISP_FLOAT_TYPE}" = "yes" ; then + AC_DEFINE(LISP_FLOAT_TYPE) +fi + +# ====================== Developer's configuration ======================= + +# The following assignments make sense if you're running Emacs on a single +# machine, one version at a time, and you want changes to the lisp and etc +# directories in the source tree to show up immediately in your working +# environment. It saves a great deal of disk space by not duplicating the +# lisp and etc directories. + +if test "$enable_in_place" = "yes"; then + lispdir='${srcdir}/lisp' + locallisppath='${srcdir}/site-lisp' + etcdir='${srcdir}/etc' + lockdir='${srcdir}/lock' + # We used to make archlibdir and docdir absolute, + # but that caused trouble with automounters. + archlibdir='${srcdir}/lib-src' + docdir='${srcdir}/etc' + infodir='${srcdir}/info' +elif test "$enable_single_tree" = "yes"; then + bindir='${exec_prefix}/bin/${configuration}' + datadir='${prefix}/common' + statedir='${prefix}/common' + libdir='${bindir}' + lispdir='${prefix}/common/lisp' + locallisppath='${prefix}/common/site-lisp' + lockdir='${prefix}/common/lock' + archlibdir='${libdir}/etc' + etcdir='${prefix}/common/data' + docdir='${prefix}/common/data' +fi + +#### Report on what we decided to do. +echo " + +Configured for \`${canonical}'. + + Where should the build process find the source code? ${srcdir} + What operating system and machine description files should Emacs use? + \`${opsysfile}' and \`${machfile}' + What compiler should emacs be built with? ${CC} ${CFLAGS} + Should Emacs use the GNU version of malloc? ${GNU_MALLOC}${GNU_MALLOC_reason} + Should Emacs use the relocating allocator for buffers? ${REL_ALLOC} + What window system should Emacs use? ${window_system} + What toolkit should Emacs use? ${USE_X_TOOLKIT}${x_includes+ + Where do we find X Windows header files? }${x_includes}${x_libraries+ + Where do we find X Windows libraries? }${x_libraries} + +" + +# Remove any trailing slashes in these variables. +changequote(, )dnl +test "${prefix}" != NONE && + prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'` +test "${exec_prefix}" != NONE && + exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'` +changequote([, ])dnl + +save_no_create="$no_create" +no_create=yes + +AC_OUTPUT(Makefile lib-src/Makefile.in oldXMenu/Makefile lwlib/Makefile src/Makefile.in) + +cat >> ${CONFIG_STATUS} <> ${CONFIG_STATUS} <<\EOF + +### Make the necessary directories, if they don't exist. +for dir in ./src ./lib-src ./cpp ./oldXMenu ./lwlib ./etc ; do + if test ! -d ${dir}; then + mkdir ${dir} + fi +done + +# Build src/Makefile from ${srcdir}/src/Makefile.in. This must be done +# after src/config.h is built, since we rely on that file. + +changequote(,)dnl The horror, the horror. +# Now get this: Some word that is part of the ${srcdir} directory name +# or the ${configuration} value might, just might, happen to be an +# identifier like `sun4' or `i386' or something, and be predefined by +# the C preprocessor to some helpful value like 1, or maybe the empty +# string. Needless to say consequent macro substitutions are less +# than conducive to the makefile finding the correct directory. +undefs="`echo $top_srcdir $configuration $canonical | +sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/ *$//' \ + -e 's/ */ -U/g' -e 's/-U[0-9][^ ]*//g' \ +`" +changequote([,])dnl + +echo creating lib-src/Makefile +( cd lib-src + rm -f junk.c junk1.c junk2.c + sed -e '/start of cpp stuff/q' \ + < Makefile.in > junk1.c + sed -e '1,/start of cpp stuff/d'\ + -e 's@/\*\*/#\(.*\)$@/* \1 */@' \ + < Makefile.in > junk.c + $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \ + sed -e 's/^ / /' -e '/^#/d' -e '/^[ ]*$/d' > junk2.c + cat junk1.c junk2.c > Makefile.new + rm -f junk.c junk1.c junk2.c + chmod 444 Makefile.new + mv -f Makefile.new Makefile +) + +echo creating src/Makefile +( cd src + rm -f junk.c junk1.c junk2.c + sed -e '/start of cpp stuff/q' \ + < Makefile.in > junk1.c + sed -e '1,/start of cpp stuff/d'\ + -e 's@/\*\*/#\(.*\)$@/* \1 */@' \ + < Makefile.in > junk.c + $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \ + sed -e 's/^ / /' -e '/^#/d' -e '/^[ ]*$/d' > junk2.c + cat junk1.c junk2.c > Makefile.new + rm -f junk.c junk1.c junk2.c + chmod 444 Makefile.new + mv -f Makefile.new Makefile +) +EOF + +test "$save_no_create" = yes || ${CONFIG_SHELL-/bin/sh} ${CONFIG_STATUS}