prefix='/usr/local'
exec_prefix='${prefix}'
-while [ $# != 0 ]; do
- arg="$1"
+### 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.
## 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}"
+ 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}"
+ 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 specifiec an installation prefix?
+ ## 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 [ $# = 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
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
;;
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
"" )
confdir=`echo $0 | sed 's|//|/|' | sed 's|/[^/]*$||'`
if [ -f $confdir/src/lisp.h -a -f $confdir/lisp/version.el ]; then
- srcdir=`(cd $confdir ; pwd)`
+ srcdir="${confdir}"
else
if [ -f "./src/lisp.h" -a -f "./lisp/version.el" ]; then
- srcdir=`pwd`
+ srcdir='.'
else
if [ -f "../src/lisp.h" -a -f "../lisp/version.el" ]; then
- srcdir=`(cd .. ; pwd)`
+ srcdir='..'
else
(echo "\
${progname}: Neither the current directory nor its parent seem to
## Otherwise, check if the directory they specified is okay.
* )
- srcdir=`(cd ${srcdir}; pwd)`
if [ ! -d "${srcdir}" -o ! -f "${srcdir}/src/lisp.h" -o ! -f "${srcdir}/lisp/version.el" ]; then
(echo "\
${progname}: The directory specified with the \`--srcdir' option,
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
+#### Make sure that the source directory doesn't already have a
+#### configured system in it.
+if [ `pwd` != `(cd ${srcdir} && pwd)` ] \
+ && [ -f "${srcdir}/src/config.h" ] ; then
+ (echo "${progname}: the directory tree \`${srcdir}' is being used"
+ echo " as a build directory right now; it has been configured in its own"
+ echo " right. You can't use srcdir in this situation.") >&2
+ exit 1
fi
+### 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.
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 )
machine=pmax opsys=bsd4-2
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
;;
m68*-hp-bsd* )
machine=hp9000s300 opsys=bsd4-3
;;
- ## HP/UX 8 doesn't run on these machines, so use HP/UX 7.
+ ## HP/UX 7, 8 and 9 are supported on these machines.
m68*-hp-hpux* )
- machine=hp9000s300 opsys=hpux
+ case "`uname -r`" in
+ *.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* )
+ hppa*-hp-hpux7* )
machine=hp9000s800 opsys=hpux
;;
- hppa1.1-hp-hpux* )
+ 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 ;;
- 9000/7?? ) machine=hp9000s800 opsys=hpux8 ;;
+ case "`uname -r`" in
+ *.08.* ) machine=hp9000s800 opsys=hpux8 ;;
+ *.09.* ) machine=hp9000s800 opsys=hpux9 ;;
+ *) machine=hp9000s800 opsys=hpux ;;
esac
;;
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 )
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
;;
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-unknown-* )
- 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
## 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.
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 )
esac
case "${configuration}" in
*-sunos4.0* ) opsys=sunos4-0 ;;
+ *-sunos4.1.3* ) opsys=sunos4-1-3 ;;
*-sunos4* | *-sunos ) opsys=sunos4-1 ;;
*-sunos5* | *-solaris* ) opsys=sol2 ;;
* ) opsys=bsd4-2 ;;
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
*-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 "${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 ;;
+ *-bsd386* ) opsys=bsd386 ;;
+ *-386bsd ) opsys=386bsd ;;
+ ## 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
+if [ x"${opsys}" = x ]; then
case "${configuration}" in
*-bsd4.[01] ) opsys=bsd4-1 ;;
*-bsd4.2 ) opsys=bsd4-2 ;;
*-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
;;
] 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.
AC_LN_S
AC_PROG_CPP
AC_PROG_INSTALL
+AC_PROG_YACC
dnl checks for UNIX variants that set `DEFS'
AC_STDC_HEADERS
AC_TIME_WITH_SYS_TIME
+dnl checks for library files
+AC_HAVE_LIBRARY(-ldnet)
+
dnl checks for typedefs
AC_RETSIGTYPE
dnl checks for functions
AC_ALLOCA
-AC_HAVE_FUNCS(gettimeofday gethostname dup2 rename)
+AC_HAVE_FUNCS(gettimeofday gethostname dup2 rename closedir)
dnl checks for structure members
AC_STRUCT_TM
AC_CONST
dnl checks for operating system services
+AC_LONG_FILE_NAMES
dnl other checks for UNIX variants
[
;;
esac
+### If the user hasn't specified where we should find X, try
+### letting autoconf figure that out.
+if [ "0${x_includes}" == 0 ] && [ "0${x_libraries}" == 0 ]; then
+ ]
+ AC_FIND_X
+ [
+fi
+
case "${window_system}" in
"none" | "x11" | "x10" ) ;;
"" )
- echo " No window system specifed. Looking for X window system."
+ echo " No window system specified. Looking for X11."
window_system=none
if [ -r /usr/lib/libX11.a \
-o -d /usr/include/X11 \
;;
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"
#endif
@configure@ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
@configure@ c_switch_system=C_SWITCH_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 __GNUC__
+@configure@ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH
+#else
+@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} \
+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 X libraries to the list, and check for some functions found there.
+CFLAGS_save="$CFLAGS"
+CFLAGS="${CFLAGS} ${LD_SWITCH_X_SITE}"
+]
+AC_HAVE_LIBRARY(-lXbsd)
+[
+LIBS_save="$LIBS"
+if [ "${HAVE_X11}" = "yes" ] ; then
+ LIBS="-lX11 ${LIBS}"
+fi
+]
+AC_HAVE_FUNCS(XrmSetDatabase random)
+[
+CFLAGS="$CFLAGS_save"
+LIBS="$LIBS_save"
+
+case "${window_system}:${LIBS}" in
+ x11:*-lXbsd* )
+ if [ -d /usr/X386/include ]; then
+ HAVE_XFREE386=yes
+ if [ "${C_SWITCH_X_SITE}" = "" ]; then
+ C_SWITCH_X_SITE="-I/usr/X386/include"
+ fi
+ fi
+ ;;
+esac
+
#### 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
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
Configured for \`${configuration}'.
+ 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}
Where do we find X Windows libraries? }${x_libraries}
"
-
-### Restore the arguments to this script, so autoconf can record them
-### in the config.status file.
-set -- ${arguments}
]
AC_OUTPUT(Makefile)