-dnl This is an autoconf script.
+dnl Autoconf script for GNU Emacs
dnl To rebuild the `configure' script from this, execute the command
dnl autoconf
dnl in the directory containing this script.
-AC_PREREQ(2.4.1)dnl
+dnl
+dnl Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
+dnl
+dnl This file is part of GNU Emacs.
+dnl
+dnl GNU Emacs is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2, or (at your option)
+dnl any later version.
+dnl
+dnl GNU Emacs is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with GNU Emacs; see the file COPYING. If not, write to the
+dnl Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+dnl Boston, MA 02111-1307, USA.
+
+AC_PREREQ(2.8)dnl
AC_INIT(src/lisp.h)
AC_CONFIG_HEADER(src/config.h:src/config.in)
lispdir='${datadir}/emacs/${version}/lisp'
-locallisppath='${datadir}/emacs/site-lisp'
+locallisppath='${datadir}/emacs/${version}/site-lisp:'\
+'${datadir}/emacs/site-lisp:${datadir}/emacs/${version}/leim'
lisppath='${locallisppath}:${lispdir}'
etcdir='${datadir}/emacs/${version}/etc'
-lockdir='${sharedstatedir}/emacs/lock'
archlibdir='${libexecdir}/emacs/${version}/${configuration}'
docdir='${datadir}/emacs/${version}/etc'
AC_ARG_WITH(kerberos,
[ --with-kerberos support Kerberos-authenticated POP],
[AC_DEFINE(KERBEROS)])
+AC_ARG_WITH(kerberos5,
+[ --with-kerberos5 support Kerberos version 5 authenticated POP],
+[if test "${with_kerberos5+set}" = set; then
+ if test "${with_kerberos+set}" != set; then
+ with_kerberos=yes
+ AC_DEFINE(KERBEROS)
+ fi
+fi
+AC_DEFINE(KERBEROS5)])
AC_ARG_WITH(hesiod,
[ --with-hesiod support Hesiod to get the POP server host],
[AC_DEFINE(HESIOD)])
+AC_ARG_WITH(gssapi,
+[ --with-gssapi support GSSAPI-authenticated POP],
+[AC_DEFINE(GSSAPI)])
dnl This should be the last --with option, because --with-x is
dnl added later on when we find the path of X, and it's best to
dnl keep them together visually.
AC_ARG_WITH(x-toolkit,
-[ --with-x-toolkit=KIT use an X toolkit (KIT = yes/lucid/athena/motif)],
+[ --with-x-toolkit=KIT use an X toolkit (KIT = yes/lucid/athena/motif/no)],
[ case "${withval}" in
y | ye | yes ) val=athena ;;
n | no ) val=no ;;
vpath %.y $(srcdir)\
vpath %.l $(srcdir)\
vpath %.s $(srcdir)\
-vpath %.in $(srcdir)'
+vpath %.in $(srcdir)\
+vpath %.texi $(srcdir)'
fi
#### Given the configuration name, set machfile and opsysfile to the
*-*-netbsd* )
opsys=netbsd
case "${canonical}" in
- i[345]86-*-netbsd*) machine=intel386 ;;
+ alpha*-*-netbsd*) machine=alpha ;;
+ i[3456]86-*-netbsd*) machine=intel386 ;;
m68k-*-netbsd*)
# This is somewhat bogus.
machine=hp9000s300 ;;
mips-*-netbsd*) machine=pmax ;;
ns32k-*-netbsd*) machine=ns32000 ;;
sparc-*-netbsd*) machine=sparc ;;
+ vax-*-netbsd*) machine=vax ;;
+ esac
+ ;;
+
+ ## OpenBSD ports
+ *-*-openbsd* )
+ opsys=openbsd
+ case "${canonical}" in
+ alpha*-*-openbsd*) machine=alpha ;;
+ i386-*-openbsd*) machine=intel386 ;;
+ m68k-*-openbsd*) machine=hp9000s300 ;;
+ mipsel-*-openbsd*) machine=pmax ;;
+ ns32k-*-openbsd*) machine=ns32000 ;;
+ sparc-*-openbsd*) machine=sparc ;;
+ vax-*-netbsd*) machine=vax ;;
esac
;;
machine=acorn opsys=riscix1-1
;;
arm-acorn-riscix1.2* | arm-acorn-riscix )
- machine=acorn opsys=riscix1-2
+ ## This name is riscix12 instead of riscix1.2
+ ## to avoid a file name conflict on MSDOS.
+ machine=acorn opsys=riscix12
+ ;;
+
+ ## BSDI ports
+ *-*-bsdi* )
+ opsys=bsdi
+ case "${canonical}" in
+ i[345]86-*-bsdi*) machine=intel386 ;;
+ sparc-*-bsdi*) machine=sparc ;;
+ powerpc-*-bsdi*) machine=powerpc ;;
+ esac
+ case "${canonical}" in
+ *-*-bsd386* | *-*-bsdi1* ) opsys=bsd386 ;;
+ *-*-bsdi2.0* ) opsys=bsdos2 ;;
+ *-*-bsdi2* ) opsys=bsdos2-1 ;;
+ *-*-bsdi3* ) opsys=bsdos3 ;;
+ esac
;;
## Alliant machines
;;
## Alpha (DEC) machines.
- alpha-dec-osf* )
+ alpha*-dec-osf* )
machine=alpha opsys=osf1
+ # This is needed to find X11R6.1 libraries for certain tests.
+ NON_GCC_LINK_TEST_OPTIONS=-Wl,-rpath,/usr/X11R6/lib
+ GCC_LINK_TEST_OPTIONS=-Wl,-rpath,/usr/X11R6/lib
;;
- alpha-*-linux* )
- machine=alpha opsys=linux
+ alpha*-*-linux-gnu* )
+ machine=alpha opsys=gnu-linux
;;
## Altos 3068
m68*-altos-sysv* )
machine=altos opsys=usg5-2
;;
-
+
## Amdahl UTS
580-amdahl-sysv* )
machine=amdahl opsys=usg5-2-2
;;
## Cubix QBx/386
- i[345]86-cubix-sysv* )
+ i[3456]86-cubix-sysv* )
machine=intel386 opsys=usg5-3
;;
;;
## Data General AViiON Machines
+ ## DG changed naming conventions with the release of 5.4.4.10, they
+ ## dropped the initial 5.4 but left the intervening R. Because of the
+ ## R this shouldn't conflict with older versions of the OS (which I
+ ## think were named like dgux4.*). In addition, DG new AViiONs series
+ ## uses either Motorola M88k or Intel Pentium CPUs.
+ i586-dg-dguxR4.* | m88k-dg-dguxR4.* | m88k-dg-dgux4* )
+ machine=aviion opsys=dgux4
+ ;;
m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* )
- machine=aviion opsys=dgux5-4r3
+ ## This name is dgux5-4-3 instead of dgux5-4r3
+ ## to avoid a file name conflict on MSDOS.
+ machine=aviion opsys=dgux5-4-3
;;
m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* )
machine=aviion opsys=dgux5-4r2
if test -s /etc/167config
then CC="gnucc -m68040"
else CC="gnucc -m68881"
- fi
+ fi
else
if test -z "`type gcc | grep 'not found'`"
then CC=gcc
machine=nh6000 opsys=powerunix
NON_GNU_CPP="cc -Xo -E -P"
;;
-
+ ## SR2001/SR2201 running HI-UX/MPP
+ hppa1.1-hitachi-hiuxmpp* )
+ machine=sr2k opsys=hiuxmpp
+ ;;
## Honeywell XPS100
xps*-honeywell-sysv* )
machine=xps100 opsys=usg5-2
*.B8.* ) machine=hp9000s300 opsys=hpux8 ;;
*.08.* ) machine=hp9000s300 opsys=hpux8 ;;
*.09.* ) machine=hp9000s300 opsys=hpux9 ;;
- *.10.* ) machine=hp9000s300 opsys=hpux9shr ;;
+ *.1[0-9].* ) machine=hp9000s300 opsys=hpux9shr ;;
*) machine=hp9000s300 opsys=hpux ;;
esac
;;
hppa*-hp-hpux9* )
machine=hp800 opsys=hpux9
;;
- hppa*-hp-hpux10* )
+ hppa*-hp-hpux1[0-9]* )
machine=hp800 opsys=hpux10
;;
*.B8.* ) machine=hp800 opsys=hpux8 ;;
*.08.* ) machine=hp800 opsys=hpux8 ;;
*.09.* ) machine=hp800 opsys=hpux9 ;;
- *) machine=hp800 opsys=hpux ;;
+ *) machine=hp800 opsys=hpux10 ;;
esac
;;
+ hppa*-*-nextstep* )
+ machine=hp800 opsys=nextstep
+ ;;
## Orion machines
orion-orion-bsd* )
;;
## IBM machines
- i[345]86-ibm-aix1.1* )
+ i[3456]86-ibm-aix1.1* )
machine=ibmps2-aix opsys=usg5-2-2
;;
- i[345]86-ibm-aix1.[23]* | i[345]86-ibm-aix* )
+ i[3456]86-ibm-aix1.[23]* | i[3456]86-ibm-aix* )
machine=ibmps2-aix opsys=usg5-3
;;
i370-ibm-aix*)
rs6000-ibm-aix4.1* | powerpc-ibm-aix4.1* )
machine=ibmrs6000 opsys=aix4-1
;;
- rs6000-ibm-aix4* | powerpc-ibm-aix4* )
+ rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2* )
+ machine=ibmrs6000 opsys=aix4-2
+ ;;
+ rs6000-ibm-aix4.0* | powerpc-ibm-aix4.0* )
machine=ibmrs6000 opsys=aix4
;;
+ rs6000-ibm-aix4* | powerpc-ibm-aix4* )
+ machine=ibmrs6000 opsys=aix4-1
+ ;;
rs6000-ibm-aix* | powerpc-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
;;
;;
## Intel 386 machines where we do care about the manufacturer
- i[345]86-intsys-sysv* )
+ i[3456]86-intsys-sysv* )
machine=is386 opsys=usg5-2-2
;;
## Prime EXL
- i[345]86-prime-sysv* )
+ i[3456]86-prime-sysv* )
machine=i386 opsys=usg5-3
;;
## Sequent Symmetry running Dynix
- i[345]86-sequent-bsd* )
+ i[3456]86-sequent-bsd* )
machine=symmetry opsys=bsd4-3
;;
+ ## Sequent Symmetry running ptx 4, which is a modified SVR4.
+ i[3456]86-sequent-ptx4* | i[3456]86-sequent-sysv4* )
+ machine=sequent-ptx opsys=ptx4
+ NON_GNU_CPP=/lib/cpp
+ ;;
+
## Sequent Symmetry running DYNIX/ptx
## Use the old cpp rather than the newer ANSI one.
- i[345]86-sequent-ptx* )
+ i[3456]86-sequent-ptx* )
machine=sequent-ptx opsys=ptx
NON_GNU_CPP="/lib/cpp"
;;
+ ## ncr machine running svr4.3.
+ i[3456]86-ncr-sysv4.3 )
+ machine=ncr386 opsys=usg5-4-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* )
+ i[3456]86-ncr-sysv* )
machine=ncr386 opsys=usg5-4-2
;;
machine=plexus opsys=usg5-2
;;
+ ## PowerPC reference platform
+ powerpcle-*-solaris2* )
+ machine=prep
+ opsys=sol2-5
+ ;;
+
## 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.
machine=iris4d opsys=irix4-0
;;
mips-sgi-irix6* )
- machine=iris4d opsys=irix6-0 NON_GNU_CPP=/lib/cpp
+ machine=iris4d opsys=irix6-0
+ NON_GNU_CPP=/lib/cpp
+ NON_GCC_TEST_OPTIONS=-32
;;
mips-sgi-irix5.[01]* )
machine=iris4d opsys=irix5-0
mips-sony-bsd* | mips-sony-newsos4* | mips-sony-news4*)
machine=news-risc opsys=bsd4-3
;;
+ mips-sony-newsos6* )
+ machine=news-r6 opsys=newsos6
+ ;;
mips-sony-news* )
machine=news-risc opsys=newsos5
;;
;;
## Suns
+ sparc-*-linux-gnu* )
+ machine=sparc opsys=gnu-linux
+ ;;
+
*-sun-sunos* | *-sun-bsd* | *-sun-solaris* \
- | i[345]86-*-solaris2* | i[345]86-*-sunos5* | powerpc*-*-solaris2* \
+ | i[3456]86-*-solaris2* | i[3456]86-*-sunos5* | powerpc*-*-solaris2* \
| rs6000-*-solaris2*)
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 ;;
- powerpc* | rs6000* ) machine=rs6000 ;;
+ i[3456]86-sun-sunos[34]* ) machine=sun386 ;;
+ i[3456]86-*-* ) machine=intel386 ;;
+ powerpcle* ) machine=powerpcle ;;
+ powerpc* | rs6000* ) machine=ibmrs6000 ;;
sparc* ) machine=sparc ;;
* ) unported=yes ;;
esac
case "${canonical}" in
## The Sun386 didn't get past 4.0.
- i[345]86-*-sunos4 ) opsys=sunos4-0 ;;
+ i[3456]86-*-sunos4 ) opsys=sunos4-0 ;;
*-sunos4.0* ) opsys=sunos4-0 ;;
- *-sunos4.1.[3-9]* | *-sunos4shr*)
- opsys=sunos4shr
- NON_GNU_CPP=/usr/lib/cpp
- ;;
- *-sunos4.1.[3-9]*-noshare )
- opsys=sunos4-1-3
+ *-sunos4.1.[3-9]*noshare )
+ ## This name is sunos413 instead of sunos4-1-3
+ ## to avoid a file name conflict on MSDOS.
+ opsys=sunos413
NON_GNU_CPP=/usr/lib/cpp
NON_GCC_TEST_OPTIONS=-Bstatic
GCC_TEST_OPTIONS=-static
;;
+ *-sunos4.1.[3-9]* | *-sunos4shr*)
+ opsys=sunos4shr
+ NON_GNU_CPP=/usr/lib/cpp
+ ;;
*-sunos4* | *-sunos )
opsys=sunos4-1
NON_GCC_TEST_OPTIONS=-Bstatic
;;
* ) opsys=bsd4-2 ;;
esac
+ ## Watch out for a compiler that we know will not work.
+ case "${canonical}" in
+ *-solaris* | *-sunos5* )
+ if [ "x$CC" = x/usr/ucb/cc ]; then
+ ## /usr/ucb/cc doesn't work;
+ ## we should find some other compiler that does work.
+ unset CC
+ fi
+ ;;
+ *) ;;
+ esac
;;
sparc-*-nextstep* )
machine=sparc opsys=nextstep
titan-titan-sysv* )
machine=titan opsys=usg5-3
;;
-
+
## Ustation E30 (SS5E)
m68*-unisys-uniplus* )
machine=ustation opsystem=unipl5-2
;;
## Intel 386 machines where we don't care about the manufacturer
- i[345]86-*-* )
+ i[3456]86-*-* )
machine=intel386
case "${canonical}" in
*-isc1.* | *-isc2.[01]* ) opsys=386-ix ;;
*-esix5* ) opsys=esix5r4; NON_GNU_CPP=/usr/lib/cpp ;;
*-esix* ) opsys=esix ;;
*-xenix* ) opsys=xenix ;;
- *-linux* ) opsys=linux ;;
+ *-linux-gnu* ) opsys=gnu-linux ;;
*-sco3.2v4* ) opsys=sco4 ; NON_GNU_CPP=/lib/cpp ;;
- *-bsd386* | *-bsdi1* ) opsys=bsd386 ;;
- *-bsdi2* ) opsys=bsdos2 ;;
+ *-sco3.2v5* ) opsys=sco5
+ NON_GNU_CPP=/lib/cpp
+ # Prevent -belf from being passed to $CPP.
+ # /lib/cpp does not accept it.
+ OVERRIDE_CPPFLAGS=" "
+ ;;
+ *-sysv4.2uw* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
*-386bsd* ) opsys=386bsd ;;
*-freebsd* ) opsys=freebsd ;;
*-nextstep* ) opsys=nextstep ;;
esac
;;
- ## Linux/68k
- m68k-*-linux* )
- machine=m68k opsys=linux
+ ## m68k Linux-based GNU system
+ m68k-*-linux-gnu* )
+ machine=m68k opsys=gnu-linux
+ ;;
+
+ ## Mips Linux-based GNU system
+ mips-*-linux-gnu* )
+ machine=mips opsys=gnu-linux
+ ;;
+
+ ## UXP/DS
+ sparc-fujitsu-sysv4* )
+ machine=sparc opsys=uxpds
+ NON_GNU_CPP=/usr/ccs/lib/cpp
+ RANLIB="ar -ts"
;;
* )
*-sysv2 | *-sysvr2 ) opsys=usg5-2 ;;
*-sysv2.2 | *-sysvr2.2 ) opsys=usg5-2-2 ;;
*-sysv3* | *-sysvr3* ) opsys=usg5-3 ;;
+ *-sysv4.2uw* ) opsys=unixware ;;
*-sysv4.1* | *-sysvr4.1* )
NON_GNU_CPP=/usr/lib/cpp
opsys=usg5-4 ;;
*-sysv4.[2-9]* | *-sysvr4.[2-9]* )
if [ x$NON_GNU_CPP = x ]; then
- NON_GNU_CPP=/usr/ccs/lib/cpp
+ if [ -f /usr/ccs/lib/cpp ]; then
+ NON_GNU_CPP=/usr/ccs/lib/cpp
+ else
+ NON_GNU_CPP=/lib/cpp
+ fi
fi
opsys=usg5-4-2 ;;
*-sysv4* | *-sysvr4* ) opsys=usg5-4 ;;
if test x$GCC = xyes && test "x$GCC_TEST_OPTIONS" != x
then
CC="$CC $GCC_TEST_OPTIONS"
-fi
+fi
if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x
then
CC="$CC $NON_GCC_TEST_OPTIONS"
-fi
+fi
+
+if test x$GCC = xyes && test "x$GCC_LINK_TEST_OPTIONS" != x
+then
+ ac_link="$ac_link $GCC_LINK_TEST_OPTIONS"
+fi
+
+if test x$GCC = x && test "x$NON_GCC_LINK_TEST_OPTIONS" != x
+then
+ ac_link="$ac_link $NON_GCC_LINK_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
AC_AIX
dnl checks for header files
-AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h)
+AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h linux/version.h sys/systeminfo.h termios.h limits.h string.h)
AC_HEADER_STDC
AC_HEADER_TIME
AC_DECL_SYS_SIGLIST
dnl Some systems have utime.h but don't declare the struct anyplace.
-AC_MSG_CHECKING(for struct utimbuf)
+AC_CACHE_CHECK(for struct utimbuf, emacs_cv_struct_utimbuf,
AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
#include <sys/time.h>
#include <time.h>
#ifdef HAVE_UTIME_H
#include <utime.h>
#endif], [static struct utimbuf x; x.actime = x.modtime;],
- [AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_STRUCT_UTIMBUF)],
- AC_MSG_RESULT(no))
+ emacs_cv_struct_utimbuf=yes, emacs_cv_struct_utimbuf=no))
+if test $emacs_cv_struct_utimbuf = yes; then
+ AC_DEFINE(HAVE_STRUCT_UTIMBUF)
+fi
dnl checks for typedefs
AC_TYPE_SIGNAL
-AC_MSG_CHECKING(for struct timeval)
+AC_CACHE_CHECK(for struct timeval, emacs_cv_struct_timeval,
AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
#include <sys/time.h>
#include <time.h>
#include <time.h>
#endif
#endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
- [AC_MSG_RESULT(yes)
- HAVE_TIMEVAL=yes
- AC_DEFINE(HAVE_TIMEVAL)],
- AC_MSG_RESULT(no))
+ emacs_cv_struct_timeval=yes, emacs_cv_struct_timeval=no))
+HAVE_TIMEVAL=$emacs_cv_struct_timeval
+if test $emacs_cv_struct_timeval = yes; then
+ AC_DEFINE(HAVE_TIMEVAL)
+fi
dnl checks for structure members
AC_STRUCT_TM
if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
+ x_default_search_path=""
+ for x_library in `echo ${x_libraries} | sed -e "s/:/ /g"`; do
+ x_search_path="${x_library}/X11/%L/%T/%N%C%S:\
+${x_library}/X11/%L/%T/%N%C%S:${x_libary}/X11/%l/%T/%N%C%S:\
+${x_library}/X11/%T/%N%C%S:${x_library}/X11/%L/%T/%N%S:\
+${x_library}/X11/%l/%T/%N%S:${x_library}/X11/%T/%N%S"
+ if test x"${x_default_search_path}" = x; then
+ x_default_search_path=${x_search_path}
+ else
+ x_default_search_path="${x_search_path}:${x_default_search_path}"
+ fi
+ done
fi
if test "${x_includes}" != NONE && test -n "${x_includes}"; then
C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"`
HAVE_X_WINDOWS=yes
HAVE_X11=yes
case "${with_x_toolkit}" in
- athena | lucid ) USE_X_TOOLKIT=LUCID ;;
- motif ) USE_X_TOOLKIT=MOTIF ;;
-dnl open-look ) USE_X_TOOLKIT=OPEN_LOOK ;;
- * ) USE_X_TOOLKIT=none ;;
+ athena | lucid ) USE_X_TOOLKIT=LUCID ;;
+ motif ) USE_X_TOOLKIT=MOTIF ;;
+dnl open-look ) USE_X_TOOLKIT=OPEN_LOOK ;;
+ no ) USE_X_TOOLKIT=none ;;
+dnl If user did not say whether to use a toolkit,
+dnl make this decision later: use the toolkit if we have X11R5 or newer.
+ * ) USE_X_TOOLKIT=maybe ;;
esac
;;
none )
USE_X_TOOLKIT=none
;;
esac
-X_TOOLKIT_TYPE=$USE_X_TOOLKIT
### If we're using X11, we should use the X menu package.
HAVE_MENUS=no
### 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
+### GCC 2.5 on GNU/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
#define C_OPTIMIZE_SWITCH -O
#endif
+#ifndef LD_SWITCH_MACHINE
+#define LD_SWITCH_MACHINE
+#endif
+
+#ifndef LD_SWITCH_SYSTEM
+#define LD_SWITCH_SYSTEM
+#endif
+
+#ifndef LD_SWITCH_X_SITE_AUX
+#define LD_SWITCH_X_SITE_AUX
+#endif
+
+configure___ ld_switch_system=LD_SWITCH_SYSTEM
+configure___ ld_switch_machine=LD_SWITCH_MACHINE
+
#ifdef THIS_IS_CONFIGURE
/* Get the CFLAGS for tests in configure. */
changequote([, ])dnl
rm ${tempcname}
+ac_link="$ac_link $ld_switch_machine $ld_switch_system"
+
### 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
+doug_lea_malloc=yes
+AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no)
+AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
+AC_CACHE_CHECK(whether __after_morecore_hook exists,
+ emacs_cv_var___after_morecore_hook,
+AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
+ emacs_cv_var___after_morecore_hook=yes,
+ emacs_cv_var___after_morecore_hook=no))
+if test $emacs_cv_var___after_morecore_hook = no; then
+ doug_lea_malloc=no
+fi
if test "${system_malloc}" = "yes"; then
GNU_MALLOC=no
GNU_MALLOC_reason="
- (The GNU allocators don't work with this system configuration.)"
+ (The GNU allocators don't work with this system configuration.)"
+fi
+if test "$doug_lea_malloc" = "yes" ; then
+ if test "$GNU_MALLOC" = yes ; then
+ GNU_MALLOC_reason="
+ (Using Doug Lea's new malloc from the GNU C Library.)"
+ fi
+ AC_DEFINE(DOUG_LEA_MALLOC)
fi
if test x"${REL_ALLOC}" = x; then
#### Add the libraries to LIBS and check for some functions.
-CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
+if test x"${OVERRIDE_CPPFLAGS}" != x; then
+ CPPFLAGS="${OVERRIDE_CPPFLAGS}"
+else
+ CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
+fi
+
LIBS="$libsrc_libs $LIBS"
dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
if test "${HAVE_X11}" = "yes"; then
DEFS="$C_SWITCH_X_SITE $DEFS"
- LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS"
+ LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE"
+ LIBS="$LIBX $LIBS"
CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
- if test "${opsys}" = "linux"; then
+ # On Solaris, arrange for LD_RUN_PATH to point to the X libraries for tests.
+ # This is handled by LD_SWITCH_X_SITE_AUX during the real build,
+ # but it's more convenient here to set LD_RUN_PATH
+ # since this also works on hosts that don't understand LD_SWITCH_X_SITE_AUX.
+ if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
+ LD_RUN_PATH=$x_libraries${LD_RUN_PATH+:}$LD_RUN_PATH
+ export LD_RUN_PATH
+ fi
+
+ if test "${opsys}" = "gnu-linux"; then
AC_MSG_CHECKING(whether X on GNU/Linux needs -b to link)
AC_TRY_LINK([],
[XOpenDisplay ("foo");],
AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
XScreenNumberOfScreen XSetWMProtocols)
- AC_CHECK_LIB(Xmu, XmuConvertStandardSelection)
fi
if test "${window_system}" = "x11"; then
- AC_MSG_CHECKING(X11 version)
+ AC_MSG_CHECKING(X11 version 6)
+ AC_CACHE_VAL(emacs_cv_x11_version_6,
AC_TRY_LINK([#include <X11/Xlib.h>],
[#if XlibSpecificationRelease < 6
fail;
#endif
-], [AC_MSG_RESULT(6)
- AC_DEFINE(HAVE_X11R6)],
- [AC_MSG_RESULT(not 6)])
+], emacs_cv_x11_version_6=yes, emacs_cv_x11_version_6=no))
+ if test $emacs_cv_x11_version_6 = yes; then
+ AC_MSG_RESULT(6 or newer)
+ AC_DEFINE(HAVE_X11R6)
+ else
+ AC_MSG_RESULT(before 6)
+ fi
+fi
+
+if test "${window_system}" = "x11"; then
+ AC_MSG_CHECKING(X11 version 5)
+ AC_CACHE_VAL(emacs_cv_x11_version_5,
+ AC_TRY_LINK([#include <X11/Xlib.h>],
+[#if XlibSpecificationRelease < 5
+fail;
+#endif
+], emacs_cv_x11_version_5=yes, emacs_cv_x11_version_5=no))
+ if test $emacs_cv_x11_version_5 = yes; then
+ AC_MSG_RESULT(5 or newer)
+ HAVE_X11R5=yes
+ AC_DEFINE(HAVE_X11R5)
+ else
+ HAVE_X11R5=no
+ AC_MSG_RESULT(before 5)
+ fi
+fi
+
+dnl Do not put whitespace before the #include statements below.
+dnl Older compilers (eg sunos4 cc) choke on it.
+if test x"${USE_X_TOOLKIT}" = xmaybe; then
+ if test x"${HAVE_X11R5}" = xyes; then
+ AC_MSG_CHECKING(X11 version 5 with Xaw)
+ AC_CACHE_VAL(emacs_cv_x11_version_5_with_xaw,
+ AC_TRY_LINK([
+#include <X11/Intrinsic.h>
+#include <X11/Xaw/Simple.h>],
+ [],
+ emacs_cv_x11_version_5_with_xaw=yes,
+ emacs_cv_x11_version_5_with_xaw=no))
+ if test $emacs_cv_x11_version_5_with_xaw = yes; then
+ AC_MSG_RESULT([5 or newer, with Xaw; use toolkit by default])
+ USE_X_TOOLKIT=LUCID
+ else
+ AC_MSG_RESULT(before 5 or no Xaw; do not use toolkit by default)
+ USE_X_TOOLKIT=none
+ fi
+ else
+ USE_X_TOOLKIT=none
+ fi
fi
+X_TOOLKIT_TYPE=$USE_X_TOOLKIT
+
if test "${USE_X_TOOLKIT}" != "none"; then
AC_MSG_CHECKING(X11 toolkit version)
+ AC_CACHE_VAL(emacs_cv_x11_toolkit_version_6,
AC_TRY_LINK([#include <X11/Intrinsic.h>],
[#if XtSpecificationRelease < 6
fail;
#endif
-], [AC_MSG_RESULT(6)
- AC_DEFINE(HAVE_X11XTR6)],
- [AC_MSG_RESULT(not 6)])
+], emacs_cv_x11_toolkit_version_6=yes, emacs_cv_x11_toolkit_version_6=no))
+ HAVE_X11XTR6=$emacs_cv_x11_toolkit_version_6
+ if test $emacs_cv_x11_toolkit_version_6 = yes; then
+ AC_MSG_RESULT(6 or newer)
+ AC_DEFINE(HAVE_X11XTR6)
+ else
+ AC_MSG_RESULT(before 6)
+ fi
+
+dnl If using toolkit, check whether libXmu.a exists.
+dnl tranle@intellicorp.com says libXmu.a can need XtMalloc in libXt.a to link.
+ OLDLIBS="$LIBS"
+ if test x$HAVE_X11XTR6 = xyes; then
+ LIBS="-lXt -lSM -lICE $LIBS"
+ else
+ LIBS="-lXt $LIBS"
+ fi
+ AC_CHECK_LIB(Xmu, XmuConvertStandardSelection)
+ LIBS="$OLDLIBS"
+fi
+
+if test "${USE_X_TOOLKIT}" = "MOTIF"; then
+ AC_CACHE_CHECK(for Motif version 2.1, emacs_cv_motif_version_2_1,
+ AC_TRY_COMPILE([#include <Xm/Xm.h>],
+ [#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1)
+int x = 5;
+#else
+Motif version prior to 2.1.
+#endif],
+ emacs_cv_motif_version_2_1=yes, emacs_cv_motif_version_2_1=no))
+ HAVE_MOTIF_2_1=$emacs_cv_motif_version_2_1
+ if test $emacs_cv_motif_version_2_1 = yes; then
+ AC_DEFINE(HAVE_MOTIF_2_1)
+ fi
fi
# If netdb.h doesn't declare h_errno, we must declare it by hand.
-AC_MSG_CHECKING(whether netdb declares h_errno)
+AC_CACHE_CHECK(whether netdb declares h_errno,
+ emacs_cv_netdb_declares_h_errno,
AC_TRY_LINK([#include <netdb.h>],
[return h_errno;],
- [AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_H_ERRNO)],
- [AC_MSG_RESULT(no)])
+ emacs_cv_netdb_declares_h_errno=yes, emacs_cv_netdb_declares_h_errno=no))
+if test $emacs_cv_netdb_declares_h_errno = yes; then
+ AC_DEFINE(HAVE_H_ERRNO)
+fi
AC_FUNC_ALLOCA
# fmod, logb, and frexp are found in -lm on most systems.
# On HPUX 9.01, -lm does not contain logb, so check for sqrt.
-AC_CHECK_LIB(m, sqrt(0.0) + t)
-AC_CHECK_FUNCS(gettimeofday gethostname dup2 rename closedir mkdir rmdir \
-random lrand48 bcopy bcmp logb frexp fmod ftime res_init setsid \
-strerror fpathconf select mktime eaccess getpagesize tzset)
+AC_CHECK_LIB(m, sqrt)
+
+# Check for mail-locking functions in a "mail" library
+AC_CHECK_LIB(mail, maillock,
+ AC_DEFINE(HAVE_LIBMAIL)
+ AC_CHECK_FUNCS(touchlock)
+ AC_CHECK_HEADERS(maillock.h))
+
+AC_CHECK_FUNCS(gettimeofday gethostname getdomainname dup2 \
+rename closedir mkdir rmdir sysinfo \
+random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime res_init setsid \
+strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \
+utimes setrlimit setpgid getcwd shutdown strftime)
+
+# Check this now, so that we will NOT find the above functions in ncurses.
+# That is because we have not set up to link ncurses in lib-src.
+# It's better to believe a function is not available
+# than to expect to find it in ncurses.
+AC_CHECK_LIB(ncurses, tparm)
+
+# These tell us which Kerberos-related libraries to use.
+if test "${with_kerberos+set}" = set; then
+ AC_CHECK_LIB(com_err, com_err)
+ AC_CHECK_LIB(crypto, mit_des_cbc_encrypt)
+ AC_CHECK_LIB(krb5, krb5_init_context)
+ if test "${with_kerberos5+set}" = set; then
+ if test "${with_gssapi+set}" = set; then
+ AC_CHECK_LIB(gssapi_krb5,gss_init_sec_context)
+ fi
+ else
+ AC_CHECK_LIB(des, des_cbc_encrypt,,
+ AC_CHECK_LIB(des425, des_cbc_encrypt))
+ AC_CHECK_LIB(krb, krb_get_cred,,
+ AC_CHECK_LIB(krb4, krb_get_cred))
+ fi
+
+ if test "${with_kerberos5+set}" = set; then
+ AC_CHECK_HEADERS(krb5.h)
+ else
+ AC_CHECK_HEADERS(des.h,,
+ AC_CHECK_HEADERS(kerberosIV/des.h,,
+ AC_CHECK_HEADERS(kerberos/des.h)))
+ AC_CHECK_HEADERS(krb.h,,
+ AC_CHECK_HEADERS(kerberosIV/krb.h,,
+ AC_CHECK_HEADERS(kerberos/krb.h)))
+ fi
+ AC_CHECK_HEADERS(com_err.h)
+fi
+
+if test "${with_gssapi+set}" = set; then
+ AC_CHECK_LIB(gssapi, gss_init_sec_context)
+ AC_CHECK_HEADERS(gssapi.h)
+fi
+
+# Solaris requires -lintl if you want strerror (which calls dgettext)
+# to return localized messages.
+AC_CHECK_LIB(intl, dgettext)
AC_MSG_CHECKING(whether localtime caches TZ)
AC_CACHE_VAL(emacs_cv_localtime_cache,
-[if test $ac_cv_func_tzset = yes; then
+[if test x$ac_cv_func_tzset = xyes; then
AC_TRY_RUN([#include <time.h>
#if STDC_HEADERS
# include <stdlib.h>
#endif
+extern char **environ;
+unset_TZ ()
+{
+ char **from, **to;
+ for (to = from = environ; (*to = *from); from++)
+ if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
+ to++;
+}
+char TZ_GMT0[] = "TZ=GMT0";
+char TZ_PST8[] = "TZ=PST8";
main()
{
time_t now = time ((time_t *) 0);
- int hour;
- if (putenv ("TZ=GMT0") != 0)
+ int hour_GMT0, hour_unset;
+ if (putenv (TZ_GMT0) != 0)
+ exit (1);
+ hour_GMT0 = localtime (&now)->tm_hour;
+ unset_TZ ();
+ hour_unset = localtime (&now)->tm_hour;
+ if (putenv (TZ_PST8) != 0)
+ exit (1);
+ if (localtime (&now)->tm_hour == hour_GMT0)
exit (1);
- hour = localtime (&now)->tm_hour;
- if (putenv ("TZ=PST8") != 0)
+ unset_TZ ();
+ if (localtime (&now)->tm_hour != hour_unset)
exit (1);
- exit (localtime (&now)->tm_hour == hour);
+ exit (0);
}], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
[# If we have tzset, assume the worst when cross-compiling.
emacs_cv_localtime_cache=yes])
fi
if test "x$HAVE_TIMEVAL" = xyes; then
-AC_MSG_CHECKING(whether gettimeofday can't accept two arguments)
+AC_CACHE_CHECK(whether gettimeofday can accept two arguments,
+ emacs_cv_gettimeofday_two_arguments,
AC_TRY_LINK([
#ifdef TIME_WITH_SYS_TIME
#include <sys/time.h>
struct timezone dummy;
gettimeofday (&time, &dummy);
],
- [AC_MSG_RESULT(no)],
- [AC_MSG_RESULT(yes)
- AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT)])
+ emacs_cv_gettimeofday_two_arguments=yes,
+ emacs_cv_gettimeofday_two_arguments=no))
+ if test $emacs_cv_gettimeofday_two_arguments = no; then
+ AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT)
+ fi
fi
ok_so_far=yes
AC_SUBST(lispdir)
AC_SUBST(locallisppath)
AC_SUBST(lisppath)
+AC_SUBST(x_default_search_path)
AC_SUBST(etcdir)
-AC_SUBST(lockdir)
AC_SUBST(archlibdir)
AC_SUBST(docdir)
AC_SUBST(bitmapdir)
changequote([, ])dnl
AC_OUTPUT(Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile \
- man/Makefile lwlib/Makefile src/Makefile.c:src/Makefile.in, [
+ man/Makefile lwlib/Makefile src/Makefile.c:src/Makefile.in \
+ leim/Makefile, [
### Make the necessary directories, if they don't exist.
-for dir in cpp etc ; do
+for dir in cpp etc lisp ; do
test -d ${dir} || mkdir ${dir}
done
`"
changequote([, ])dnl
+echo creating src/paths.h
+make paths-force
+
echo creating lib-src/Makefile
( cd lib-src
rm -f junk.c junk1.c junk2.c
echo source $top_srcdir/src/.gdbinit > src/.gdbinit
fi
+# This is how we know whether to re-run configure in certain cases.
+touch src/config.stamp
+
], [CPP="$CPP" CPPFLAGS="$CPPFLAGS"])