### Since Emacs has configuration requirements that autoconf can't
### meet, this file is an unholy marriage of custom-baked
-### configuration code and autoconf macros. New versions of autoconf
-### could very well break this arrangement.
-###
-### We omit the invocation of autoconf's initialization function,
-### because it produces Bourne shell code to parse arguments, but we
-### need to parse our own arguments.
+### configuration code and autoconf macros.
###
### We use the m4 quoting characters [ ] (as established by the
### autoconf system) to include large sections of raw sewage - Oops, I
Set compilation and installation parameters for GNU Emacs, and report.
CONFIGURATION specifies the machine and operating system to build for.
--with-x Support the X Window System.
---with-x=no Don't support the X Window System.
---x-includes=DIR Search for X Window System header files in DIR.
---x-libraries=DIR Search for X Window System libraries in DIR.
+--with-x=no Don't support X.
+--x-includes=DIR Search for X header files in DIR.
+--x-libraries=DIR Search for X libraries in DIR.
--with-gcc Use GCC to compile Emacs.
--with-gcc=no Don't use GCC to compile Emacs.
--run-in-place Use libraries and data files directly out of the
### Establish some default values.
prefix='/usr/local'
-
-while [ $# != 0 ]; do
- arg="$1"
+exec_prefix='${prefix}'
+
+### Don't use shift -- that destroys the argument list, which autoconf needs
+### to produce config.status. It turns out that "set - ${arguments}" doesn't
+### work portably.
+index=0
+while [ $index -lt $# ]; do
+ index=`expr $index + 1`
+ arg=`eval echo '$'$index`
case "${arg}" in
## Anything starting with a hyphen we assume is an option.
;;
## Has the user specified whether or not they want GCC?
- "with_gcc" )
+ "with_gcc" | "with_gnu_cc" )
## Make sure the value given was either "yes" or "no".
case "${val}" in
y | ye | yes ) val=yes ;;
## If the value was omitted, get it from the next argument.
if [ "${valomitted}" = "yes" ]; then
## Get the next argument from the argument list, if there is one.
- if [ $# = 1 ]; then
+ if [ $index = $# ]; then
(echo "${progname}: You must give a value for the \`--${optname}' option, as in
\`--${optname}=FOO'."
echo "${short_usage}") >&2
exit 1
fi
- shift; val="$1"
+ index=`expr $index + 1`
+ val=`eval echo '$'$index`
fi
srcdir="${val}"
;;
## If the value was omitted, get it from the next argument.
if [ "${valomitted}" = "yes" ]; then
## Get the next argument from the argument list, if there is one.
- if [ $# = 1 ]; then
+ if [ $index = $# ]; then
(echo "${progname}: You must give a value for the \`--${optname}' option, as in
\`--${optname}=FOO'."
echo "${short_usage}") >&2
exit 1
fi
- shift; val="$1"
+ index=`expr $index + 1`
+ val=`eval echo '$'$index`
fi
x_includes="${val}"
- C_SWITCH_X_SITE="-I${x_includes}"
;;
"x_libraries" )
## If the value was omitted, get it from the next argument.
if [ "${valomitted}" = "yes" ]; then
## Get the next argument from the argument list, if there is one.
- if [ $# = 1 ]; then
+ if [ $index = $# ]; then
(echo "${progname}: You must give a value for the \`--${optname}' option, as in
\`--${optname}=FOO'."
echo "${short_usage}") >&2
exit 1
fi
- shift; val="$1"
+ index=`expr $index + 1`
+ val=`eval echo '$'$index`
fi
x_libraries="${val}"
- LD_SWITCH_X_SITE="-L${x_libraries}"
;;
## Should this use the "development configuration"?
inst_paths='#disabled# '
;;
- ## Has the user specifiec an installation prefix?
+ ## Has the user specified an installation prefix?
"prefix" )
## If the value was omitted, get it from the next argument.
if [ "${valomitted}" = "yes" ]; then
## Get the next argument from the argument list, if there is one.
- if [ $# = 1 ]; then
+ if [ $index = $# ]; then
(echo "${progname}: You must give a value for the \`--${optname}' option, as in
\`--${optname}=FOO'."
echo "${short_usage}") >&2
exit 1
fi
- shift; val="$1"
+ index=`expr $index + 1`
+ val=`eval echo '$'$index`
fi
prefix="${val}"
;;
+ ## Has the user specified an installation prefix?
+ "exec_prefix" )
+ ## If the value was omitted, get it from the next argument.
+ if [ "${valomitted}" = "yes" ]; then
+ ## Get the next argument from the argument list, if there is one.
+ if [ $index = $# ]; then
+ (echo "${progname}: You must give a value for the \`--${optname}' option, as in
+ \`--${optname}=FOO'."
+ echo "${short_usage}") >&2
+ exit 1
+ fi
+ index=`expr $index + 1`
+ val=`eval echo '$'$index`
+ fi
+ exec_prefix="${val}"
+ ;;
+
+ ## Verbose flag, tested by autoconf macros.
+ "verbose" )
+ verbose=yes
+ ;;
+
## Has the user asked for some help?
"usage" | "help" )
- echo "${short_usage}" | more
+ if [ "x$PAGER" = x ]
+ then
+ echo "${short_usage}" | more
+ else
+ echo "${short_usage}" | $PAGER
+ fi
exit
;;
;;
esac
- shift
done
if [ "${configuration}" = "" ]; then
- (echo "${progname}: You must specify a configuration name as an argument."
- echo "${short_usage}") >&2
- exit 1
+ echo '- You did not tell me what kind of host system you want to configure.
+- I will attempt to guess the kind of system this is.' 1>&2
+ guesssys=`echo ${progname} | sed 's/configure$/config.guess/'`
+ if configuration=`${guesssys}` ; then
+ echo "- Looks like this is a ${configuration}" 1>&2
+ else
+ echo '- Failed to guess the system type. You need to tell me.' 1>&2
+ echo "${short_usage}" >&2
+ exit 1
+ fi
fi
-
#### Decide where the source is.
case "${srcdir}" in
## If it's not specified, see if `.' or `..' might work.
"" )
- if [ -f "./src/lisp.h" -a -f "./lisp/version.el" ]; then
- srcdir=`pwd`
+ confdir=`echo $0 | sed 's|//|/|' | sed 's|/[^/]*$||'`
+ if [ -f $confdir/src/lisp.h -a -f $confdir/lisp/version.el ]; then
+ srcdir="${confdir}"
else
- if [ -f "../src/lisp.h" -a -f "../lisp/version.el" ]; then
- srcdir=`(cd .. ; pwd)`
+ if [ -f "./src/lisp.h" -a -f "./lisp/version.el" ]; then
+ srcdir='.'
else
- (echo "\
+ if [ -f "../src/lisp.h" -a -f "../lisp/version.el" ]; then
+ srcdir='..'
+ else
+ (echo "\
${progname}: Neither the current directory nor its parent seem to
contain the Emacs sources. If you do not want to build Emacs in its
source tree, you should run \`${progname}' in the directory in which
you wish to build Emacs, using its \`--srcdir' option to say where the
sources may be found."
- echo "${short_usage}") >&2
- exit 1
+ echo "${short_usage}") >&2
+ exit 1
+ fi
fi
fi
;;
exit 1
fi
;;
+esac
+#### 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 [ "${PWD}" != "" ] && [ "`(cd ${PWD} ; pwd)`" = "`pwd`" ] ; then
+ srcdir="$PWD"
+ else
+ srcdir="`(cd ${srcdir}; pwd)`"
+ fi
+ ;;
+ * ) srcdir="`(cd ${srcdir}; pwd)`" ;;
esac
-### Make the necessary directories, if they don't exist.
-if [ ! -d ./src ]; then
- mkdir ./src
-fi
-if [ ! -d ./lib-src ]; then
- mkdir ./lib-src
-fi
-if [ ! -d ./cpp ]; then
- mkdir ./cpp
-fi
-if [ ! -d ./oldXMenu ]; then
- mkdir ./oldXMenu
-fi
-if [ ! -d ./etc ]; then
- mkdir ./etc
+#### Check if the source directory already has a configured system in it.
+if [ `pwd` != `(cd ${srcdir} && pwd)` ] \
+ && [ -f "${srcdir}/src/config.h" ] ; then
+ (echo "${progname}: WARNING: The directory tree \`${srcdir}' is being used"
+ echo " as a build directory right now; it has been configured in its own"
+ echo " right. To configure in another directory as well, you MUST"
+ echo " use GNU make. If you do not have GNU make, then you must"
+ echo " now do \`make distclean' in ${srcdir},"
+ echo " and then run ${progname} again.") >&2
+ # We need a multi-line sed script, which cannot go in a makefile.
+ vpath_sed='-f vpath.sed'
+else
+ # Do the normal substitution for VPATH. This will not crash non-GNU make.
+ vpath_sed=]'AC_QUOTE_SQUOTE(AC_QUOTE_SQUOTE('-e '\''s|^\(VPATH *=\).*$$|\1 ='\''"${srcdir}/${subdir}|"'))'[
fi
+] AC_SUBST(vpath_sed) [
+
+### Make the necessary directories, if they don't exist.
+for dir in ./src ./lib-src ./cpp ./oldXMenu ./etc ; do
+ if [ ! -d ${dir} ]; then
+ mkdir ${dir}
+ fi
+done
#### 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.
echo "Checking the configuration name."
-if configuration=`${srcdir}/config.sub "${configuration}"` ; then : ; else
+if canonical=`${srcdir}/config.sub "${configuration}"` ; then : ; else
exit $?
fi
### confusion between `system' and `release' levels'."
machine='' opsys='' unported='false'
-case "${configuration}" in
+case "${canonical}" in
## Alliant machines
## Strictly speaking, we need the version of the alliant operating
machine=7300 opsys=usg5-2-2
;;
+ ## Bull dpx2
+ m68*-bull-sysv3* )
+ machine=dpx2 opsys=usg5-3
+ ;;
+
## Bull sps7
- m68*-bull-sysv* )
+ m68*-bull-sysv2* )
machine=sps7 opsys=usg5-2
;;
machine=cydra5 opsys=usg5-3
;;
+ ## Data General AViiON Machines
+ m88k-dg-dgux* )
+ machine=aviion opsys=dgux
+ ;;
+
## DECstations
- mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0 | mips-dec-bsd4.2 )
+ mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0* | mips-dec-bsd4.2* )
machine=pmax opsys=bsd4-2
;;
mips-dec-ultrix* | mips-dec-bsd* )
m68*-motorola-sysv* )
machine=delta opsys=usg5-3
;;
+ m88k-motorola-sysv4* )
+ machine=delta88k opsys=usg5-4
+ ;;
m88k-motorola-sysv* | m88k-motorola-m88kbcs* )
machine=delta88k opsys=usg5-3
;;
## The GEC 93 - apparently, this port isn't really finished yet.
## Gould Power Node and NP1
- pn-gould-bsd4.2 )
+ pn-gould-bsd4.2* )
machine=gould opsys=bsd4-2
;;
- pn-gould-bsd4.3 )
+ pn-gould-bsd4.3* )
machine=gould opsys=bsd4-3
;;
np1-gould-bsd* )
m68*-hp-bsd* )
machine=hp9000s300 opsys=bsd4-3
;;
- ## HP/UX 8 doesn't run on these machines, so use HP/UX 7.
+ m68*-hp-netbsd* )
+ machine=hp9000s300 opsys=netbsd
+ ;;
+ ## HP/UX 7, 8 and 9 are supported on these machines.
m68*-hp-hpux* )
- machine=hp9000s300 opsys=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
- hppa1.0-hp-hpux* )
- machine=hp9000s800 opsys=hpux.h
+ hppa*-hp-hpux7* )
+ machine=hp9000s800 opsys=hpux
;;
- hppa1.1-hp-hpux* )
- machine=hp9000s800 opsys=hpux8.h
+ hppa*-hp-hpux8* )
+ machine=hp9000s800 opsys=hpux8
;;
+ hppa*-hp-hpux9* )
+ machine=hp9000s800 opsys=hpux9
+ ;;
+
+ ## HP 9000 series 700 and 800, running HP/UX
hppa*-hp-hpux* )
## Cross-compilation? Nah!
- case "`uname -m`" in
- 9000/8?? ) machine=hp9000s800 opsys=hpux.h ;;
- 9000/7?? ) machine=hp9000s800 opsys=hpux8.h ;;
+ case "`uname -r`" in
+ ## Someone's system reports A.B8.05 for this.
+ ## I wonder what other possibilities there are.
+ *.B8.* ) machine=hp9000s800 opsys=hpux8 ;;
+ *.08.* ) machine=hp9000s800 opsys=hpux8 ;;
+ *.09.* ) machine=hp9000s800 opsys=hpux9 ;;
+ *) machine=hp9000s800 opsys=hpux ;;
esac
;;
;;
## IBM machines
- i386-ibm-aix1.1 )
+ i386-ibm-aix1.1* )
machine=ibmps2-aix opsys=usg5-2-2
;;
- i386-ibm-aix1.2 )
+ i386-ibm-aix1.[23]* | i386-ibm-aix* )
machine=ibmps2-aix opsys=usg5-3
;;
- rs6000-ibm-aix3.1 )
+ i370-ibm-aix*)
+ machine=ibm370aix opsys=usg5-3
+ ;;
+ rs6000-ibm-aix3.1* )
machine=ibmrs6000 opsys=aix3-1
;;
- rs6000-ibm-aix3.2 | rs6000-ibm-aix* )
+ rs6000-ibm-aix3.2* | rs6000-ibm-aix* )
machine=ibmrs6000 opsys=aix3-2
;;
- romp-ibm-bsd* )
+ 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 )
+ m68*-isi-bsd4.2* )
machine=isi-ov opsys=bsd4-2
;;
- m68*-isi-bsd4.3 )
+ m68*-isi-bsd4.3* )
machine=isi-ov opsys=bsd4-3
;;
i[34]86-intsys-sysv* )
machine=is386 opsys=usg5-2-2
;;
- ## Intel 386 machines where we don't care about the manufacturer
- i[34]86-* )
- machine=intel386
- case "${configuration}" in
- *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;;
- *-isc2.2 ) opsys=isc2-2 ;;
- *-isc* ) opsys=isc3-0 ;;
- *-esix5* ) opsys=esix5r4 ;;
- *-esix* ) opsys=esix ;;
- *-xenix* ) opsys=xenix ;;
- *-linux* ) opsys=linux ;;
- *-sco3.2v4* ) opsys=sco4 ;;
- ## Otherwise, we'll fall through to the generic opsys code at the bottom.
- esac
+
+ ## Prime EXL
+ i386-prime-sysv* )
+ machine=i386 opsys=usg5-3
+ ;;
+
+ ## Sequent Symmetry
+ i386-sequent-bsd* )
+ machine=symmetry opsys=bsd4-3
+ ;;
+
+ ## Intel 860
+ i860-*-sysvr4* )
+ machine=i860 opsys=usg5-4
;;
## Silicon Graphics machines
## Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
- m68*-sgi-iris3.5 )
+ m68*-sgi-iris3.5* )
machine=irist opsys=iris3-5
;;
- m68*-sgi-iris3.6 | m68*-sgi-iris*)
+ 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
;;
## Masscomp machines
- m68*-masscomp-rtu )
+ m68*-masscomp-rtu* )
machine=masscomp opsys=rtu
;;
## 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=usg5-2-2
+ machine=mips4 opsys=bsd4-3
;;
mips-mips-bsd* )
machine=mips opsys=bsd4-3
machine=plexus opsys=usg5-2
;;
- ## Prime EXL
- i386-prime-sysv* )
- machine=i386 opsys=usg5-3
- ;;
-
## 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.
;;
## Sequent Balance
- ns32k-sequent-bsd4.2 )
+ ns32k-sequent-bsd4.2* )
machine=sequent opsys=bsd4-2
;;
- ns32k-sequent-bsd4.3 )
+ ns32k-sequent-bsd4.3* )
machine=sequent opsys=bsd4-3
;;
- ## Sequent Symmetry
- i386-sequent-bsd* )
- machine=symmetry opsys=bsd4-3
- ;;
## SONY machines
- m68*-sony-bsd4.2 )
+ m68*-sony-bsd4.2* )
machine=news opsys=bsd4-2
;;
- m68*-sony-bsd4.3 )
+ m68*-sony-bsd4.3* )
+ machine=news opsys=bsd4-3
+ ;;
+ m68*-sony-newsos3*)
machine=news opsys=bsd4-3
;;
mips-sony-bsd* )
## Suns
*-sun-sunos* | *-sun-bsd* | *-sun-solaris* )
- case "${configuration}" in
+ case "${canonical}" in
m68*-sunos1* ) machine=sun1 ;;
m68*-sunos2* ) machine=sun2 ;;
m68* ) machine=sun3 ;;
sparc* ) machine=sparc ;;
* ) unported=true ;;
esac
- case "${configuration}" in
+ case "${canonical}" in
+ ## The Sun386 didn't get past 4.0.
+ i386-*-sunos4 ) opsys=sunos4-0 ;;
*-sunos4.0* ) opsys=sunos4-0 ;;
+ *-sunos4.1.3* ) opsys=sunos4-1-3 ;;
*-sunos4* | *-sunos ) opsys=sunos4-1 ;;
*-sunos5* | *-solaris* ) opsys=sol2 ;;
* ) opsys=bsd4-2 ;;
;;
## Tahoe machines
- tahoe-tahoe-bsd4.2 )
+ tahoe-tahoe-bsd4.2* )
machine=tahoe opsys=bsd4-2
;;
- tahoe-tahoe-bsd4.3 )
+ tahoe-tahoe-bsd4.3* )
machine=tahoe opsys=bsd4-3
;;
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=tex4300 opsys=bsd4-3
+ machine=tek4300 opsys=bsd4-3
;;
## Titan P2 or P3
## Vaxen.
vax-dec-* )
machine=vax
- case "${configuration}" in
- *-bsd4.1 ) opsys=bsd4-1 ;;
- *-bsd4.2 | *-ultrix[0-3].* | *-ultrix4.0 ) opsys=bsd4-2 ;;
- *-bsd4.3 | *-ultrix* ) opsys=bsd4-3 ;;
+ 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* ) opsys=bsd386 ;;
*-sysv[01]* | *-sysvr[01]* ) opsys=usg5-0 ;;
*-sysv2* | *-sysvr2* ) opsys=usg5-2 ;;
*-vms* ) opsys=vms ;;
machine=wicat opsys=usg5-2
;;
+ ## Intel 386 machines where we don't care about the manufacturer
+ i[34]86-*-* )
+ machine=intel386
+ case "${canonical}" in
+ *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;;
+ *-isc2.2* ) opsys=isc2-2 ;;
+ *-isc* ) opsys=isc3-0 ;;
+ *-esix5* ) opsys=esix5r4 ;;
+ *-esix* ) opsys=esix ;;
+ *-xenix* ) opsys=xenix ;;
+ *-linux* ) opsys=linux ;;
+ *-sco3.2v4* ) opsys=sco4 ;;
+ *-bsd386* ) opsys=bsd386 ;;
+ *-386bsd* ) opsys=386bsd ;;
+ *-netbsd* ) opsys=netbsd ;;
+ ## Otherwise, we'll fall through to the generic opsys code at the bottom.
+ esac
+ ;;
+
* )
unported=true
;;
### 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 [ ! "${opsys}" ]; then
- case "${configuration}" in
+if [ x"${opsys}" = x ]; then
+ case "${canonical}" in
*-bsd4.[01] ) opsys=bsd4-1 ;;
*-bsd4.2 ) opsys=bsd4-2 ;;
*-bsd4.3 ) opsys=bsd4-3 ;;
*-sysv2.2 | *-sysvr2.2 ) opsys=usg5-2-2 ;;
*-sysv3 | *-sysvr3 ) opsys=usg5-3 ;;
*-sysv4 | *-sysvr4 ) opsys=usg5-4 ;;
+ *-sysv4.2 | *-sysvr4.2 ) opsys=usg5-4-2 ;;
* )
unported=true
;;
fi
if $unported ; then
- (echo "${progname}: Emacs hasn't been ported to \`${configuration}' systems."
+ (echo "${progname}: Emacs hasn't been ported to \`${canonical}' systems."
echo "${progname}: Check \`etc/MACHINES' for recognized configuration names."
) >&2
exit 1
] AC_PROG_CC [
esac
-CFLAGS='-g'
-if test -n "${GCC}"; then
- CFLAGS='-g -O'
-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 UNIX variants that set `DEFS'
dnl checks for typedefs
AC_RETSIGTYPE
-dnl checks for functions
-AC_ALLOCA
-AC_HAVE_FUNCS(gettimeofday gethostname dup2 rename)
-
dnl checks for structure members
AC_STRUCT_TM
AC_TIMEZONE
AC_CONST
dnl checks for operating system services
+AC_LONG_FILE_NAMES
dnl other checks for UNIX variants
[
case "${window_system}" in
"none" | "x11" | "x10" ) ;;
"" )
- echo " No window system specifed. Looking for X Windows."
- window_system=none
- if [ -r /usr/lib/libX11.a \
+ # --x-includes or --x-libraries implies --with-x11.
+ if [ -n "${x_includes}" ] || [ -n "${x_libraries}" ]; then
+ window_system=x11
+ else
+ echo " No window system specified. Looking for X11."
+ # If the user didn't specify a window system and we found X11, use it.
+ if [ -r /usr/lib/libX11.a \
-o -d /usr/include/X11 \
-o -d /usr/X386/include \
-o -d ${x_includes}/X11 ]; then
- window_system=x11
+ window_system=x11
+ fi
fi
;;
* )
- echo "Don\'t specify the window system more than once." >&2
+ echo "Don't specify a window system more than once." >&2
exit 1
;;
esac
+case "${window_system}" in
+ "" | "x11" )
+ ### If the user hasn't specified where we should find X, try
+ ### letting autoconf figure that out.
+ if [ -z "${x_includes}" ] && [ -z "${x_libraries}" ]; then
+ ]
+ AC_FIND_X
+ [
+ fi
+ if [ -n "${x_includes}" ] || [ -n "${x_libraries}" ]; then
+ window_system=x11
+ fi
+ ;;
+esac
+
+[ -z "${window_system}" ] && window_system=none
+
+[ -n "${x_libraries}" ] && LD_SWITCH_X_SITE="-L${x_libraries}"
+[ -n "${x_includes}" ] && C_SWITCH_X_SITE="-I${x_includes}"
+
case "${window_system}" in
x11 )
HAVE_X_WINDOWS=yes
;;
esac
-### Check for XFree386. It needs special hacks.
-lib_havexbsd=no
-]
-AC_HAVE_LIBRARY( Xbsd , have_libxbsd=yes , have_libxbsd=no )
-[
-if [ -n "${x_libraries}" ] && [ -f ${x_libraries}/libXbsd.a ]; then
- have_libxbsd=yes
-fi
-
-case ${window_system} in
- x11 )
- if [ -d /usr/X386/include ] && [ "${have_libxbsd}" = "yes" ]; then
- HAVE_XFREE386=yes
- if [ "${C_SWITCH_X_SITE}" = "" ]; then
- C_SWITCH_X_SITE="-I/usr/X386/include"
- fi
- fi
- ;;
-esac
-
#### Extract some information from the operating system and machine files.
echo "Examining the machine- and system-dependent files to find out"
#ifndef C_SWITCH_SYSTEM
#define C_SWITCH_SYSTEM
#endif
-@configure@ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
-@configure@ c_switch_system=C_SWITCH_SYSTEM
+configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
+configure___ c_switch_system=C_SWITCH_SYSTEM
+
+#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
+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 __GNUC__
+configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH
#else
-@configure@ system_malloc=no
+configure___ CFLAGS=C_DEBUG_SWITCH
#endif
' > ${tempcname}
# The value of CPP is a quoted variable reference, so we need to do this
# to get its actual value...
-foo=`eval "echo $CPP"`
-eval `${foo} ${tempcname} \
- | grep '@configure@' \
- | sed -e 's/^@configure@ \([^=]*=\)\(.*\)$/\1"\2"/'`
+CPP=`eval "echo $CPP"`
+eval `${CPP} -Isrc ${tempcname} \
+ | grep 'configure___' \
+ | sed -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/'`
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.
(The GNU allocators don't work with this system configuration.)"
fi
-if [ ! "${REL_ALLOC}" ]; then
+if [ x"${REL_ALLOC}" = x ]; then
REL_ALLOC=${GNU_MALLOC}
fi
LISP_FLOAT_TYPE=yes
+#### Add the libraries to LIBS and check for some functions.
+
+]
+DEFS="$c_switch_system $DEFS"
+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_HAVE_LIBRARY(-ldnet)
+
+AC_HAVE_LIBRARY(-lXbsd, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
+
+echo checking for XFree86
+if test -d /usr/X386/include; then
+ HAVE_XFREE386=yes
+ test -z "${C_SWITCH_X_SITE}" && C_SWITCH_X_SITE="-I/usr/X386/include"
+fi
+
+if test "${HAVE_X11}" = "yes"; then
+ DEFS="$C_SWITCH_X_SITE $DEFS"
+ LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS"
+ AC_HAVE_FUNCS(XrmSetDatabase XScreenResourceString XScreenNumberOfScreen)
+fi
+
+AC_ALLOCA
+
+# logb and frexp are found in -lm on most systems.
+AC_HAVE_LIBRARY(-lm)
+AC_HAVE_FUNCS(gettimeofday gethostname dup2 rename closedir mkdir rmdir random bcopy logb frexp ftime res_init)
+
+ok_so_far=true
+AC_FUNC_CHECK(socket, , ok_so_far=)
+if test -n "$ok_so_far"; then
+ AC_HEADER_CHECK(netinet/in.h, , ok_so_far=)
+fi
+if test -n "$ok_so_far"; then
+ AC_HEADER_CHECK(arpa/inet.h, , ok_so_far=)
+fi
+if test -n "$ok_so_far"; then
+ AC_DEFINE(HAVE_INET_SOCKETS)
+fi
+[
#### Find out which version of Emacs this is.
version=`grep 'defconst[ ]*emacs-version' ${srcdir}/lisp/version.el \
| sed -e 's/^.*"\([0-9][0-9]*\.[0-9][0-9]*\)\..*$/\1/'`
-if [ ! "${version}" ]; then
+if [ x"${version}" = x ]; then
echo "${progname}: can't find current emacs version in
\`${srcdir}/lisp/version.el'." >&2
exit 1
fi
+if [ -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(configuration)
AC_SUBST(version)
AC_SUBST(C_SWITCH_X_SITE)
AC_SUBST(CFLAGS)
AC_SUBST(prefix)
+AC_SUBST(exec_prefix)
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(C_SWITCH_X_SITE, ${C_SWITCH_X_SITE})
+AC_DEFINE_UNQUOTED(UNEXEC_SRC, ${UNEXEC_SRC})
[
if [ "${HAVE_X_WINDOWS}" = "yes" ] ; then
#### Report on what we decided to do.
echo "
-Configured for \`${configuration}'.
+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}
"
-### Restore the arguments to this script, so autoconf can record them
-### in the config.status file.
-set - ${arguments}
+# Remove any trailing slashes in these variables.
+test -n "${prefix}" &&
+ prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
+test -n "${exec_prefix}" &&
+ exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`
]
AC_OUTPUT(Makefile)