dnl autoconf
dnl in the directory containing this script.
dnl
-dnl Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
+dnl Copyright (C) 1994, 1995, 1996, 1999, 2000 Free Software Foundation, Inc.
dnl
dnl This file is part of GNU Emacs.
dnl
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
-dnl the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+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)
lispdir='${datadir}/emacs/${version}/lisp'
locallisppath='${datadir}/emacs/${version}/site-lisp:'\
-'${datadir}/emacs/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(gcc,
-[ --with-gcc use GCC to compile Emacs])
+[ --without-gcc don't use GCC to compile Emacs if GCC is found])
AC_ARG_WITH(pop,
-[ --with-pop support POP for mail retrieval],
-[AC_DEFINE(MAIL_USE_POP)])
+[ --without-pop don't support POP mail retrieval with movemail],
+[if test "$withval" = yes; then
+ AC_DEFINE(MAIL_USE_POP)
+else :
+fi],
+AC_DEFINE(MAIL_USE_POP))
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)])
esac
with_x_toolkit=$val
])
+AC_ARG_WITH(xpm,
+[ --with-xpm use -lXpm for displaying XPM images])
+AC_ARG_WITH(jpeg,
+[ --with-jpeg use -ljpeg for displaying JPEG images])
+AC_ARG_WITH(tiff,
+[ --with-tiff use -ltiff for displaying TIFF images])
+AC_ARG_WITH(gif,
+[ --with-gif use -lungif for displaying GIF images])
+AC_ARG_WITH(png,
+[ --with-png use -lpng for displaying PNG images])
+AC_ARG_WITH(toolkit-scroll-bars,
+[ --without-toolkit-scroll-bars
+ don't use Motif or Xaw3d scroll bars])
+AC_ARG_WITH(xim,
+[ --without-xim don't use X11 XIM])
#### Make srcdir absolute, if it isn't already. It's important to
#### avoid running the path through pwd unnecessary, since pwd can
## We may be able to use the $PWD environment variable to make this
## absolute. But sometimes PWD is inaccurate.
## Make sure CDPATH doesn't affect cd (in case PWD is relative).
- CDPATH=
+ unset CDPATH
if test "${PWD}" != "" && test "`(cd ${PWD} ; sh -c pwd)`" = "`pwd`" ;
then
srcdir="$PWD"
*-*-netbsd* )
opsys=netbsd
case "${canonical}" in
+ alpha*-*-netbsd*) machine=alpha ;;
i[3456]86-*-netbsd*) machine=intel386 ;;
m68k-*-netbsd*)
# This is somewhat bogus.
machine=hp9000s300 ;;
+ powerpc-apple-netbsd*) machine=macppc ;;
mips-*-netbsd*) machine=pmax ;;
+ mipsel-*-netbsd*) machine=pmax ;;
ns32k-*-netbsd*) machine=ns32000 ;;
+ powerpc-*-netbsd*) machine=macppc ;;
sparc-*-netbsd*) machine=sparc ;;
+ vax-*-netbsd*) machine=vax ;;
+ arm-*-netbsd*) machine=arm ;;
+ 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-*-openbsd*) 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 ;;
+ *-*-bsdi4* ) opsys=bsdos4 ;;
+ 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
+ case "${canonical}" in
+ # This is necessary on 5.0 to avoid mangling src/Makefile.
+ # Separated out in case it causes problems on earlier versions.
+ alpha*-dec-osf[5-9]*)
+ opsys=osf5-0
+ NON_GNU_CPP='cpp' ;;
+ esac
;;
- alpha-*-linux-gnu* )
+ alpha*-*-linux-gnu* )
machine=alpha opsys=gnu-linux
;;
+ arm*-*-linux-gnu* )
+ machine=arm opsys=gnu-linux
+ ;;
+
+ ppc-*-linux | \
+ powerpc-*-linux* )
+ machine=powerpc opsys=gnu-linux
+ ;;
+
## Altos 3068
m68*-altos-sysv* )
machine=altos opsys=usg5-2
;;
## 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.
+ 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
machine=aviion opsys=dgux
;;
+ ## Data General AViiON Intel (x86) Machines
+ ## Exists from 5.4.3 (current i586-dg-dguxR4.11)
+ ## Ehud Karni, 1998-may-30, ehud@unix.simonwiesel.co.il
+ i[345]86-dg-dguxR4* )
+ machine=aviion-intel opsys=dgux4
+ ;;
+
## DECstations
mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0* | mips-dec-bsd4.2* )
machine=pmax opsys=bsd4-2
machine=ns16000 opsys=umax
;;
- ## The GEC 93 - apparently, this port isn't really finished yet.
+ ## The GEC 63 - apparently, this port isn't really finished yet.
+ # I'm sure we finished off the last of the machines, though. -- fx
## Gould Power Node and NP1
pn-gould-bsd4.2* )
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* )
+ hppa*-*-nextstep* )
machine=hp800 opsys=nextstep
;;
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
;;
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[3456]86-sequent-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[3456]86-ncr-sysv* )
NON_GNU_CPP="/usr/ccs/lib/cpp" # cc -E tokenizes macro expansion.
;;
+ ## Macintosh PowerPC
+ powerpc*-*-linux-gnu* )
+ machine=macppc opsys=gnu-linux
+ ;;
+
## Masscomp machines
m68*-masscomp-rtu* )
machine=masscomp opsys=rtu
machine=tower32v3 opsys=usg5-3
;;
+ ## NEC EWS4800
+ mips-nec-sysv4*)
+ machine=ews4800 opsys=ux4800
+ ;;
+
## Nixdorf Targon 31
m68*-nixdorf-sysv* )
machine=targon31 opsys=usg5-2-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.
mips-sgi-irix4* )
machine=iris4d opsys=irix4-0
;;
+ mips-sgi-irix6.5 )
+ machine=iris4d opsys=irix6-5
+ # Without defining _LANGUAGE_C, things get masked out in the headers
+ # so that, for instance, grepping for `free' in stdlib.h fails and
+ # AC_HEADER_STD_C fails. (MIPSPro 7.2.1.2m compilers, Irix 6.5.3m).
+ NON_GNU_CPP="/lib/cpp -D_LANGUAGE_C"
+ NON_GCC_TEST_OPTIONS="-D_LANGUAGE_C"
+ ;;
mips-sgi-irix6* )
machine=iris4d opsys=irix6-0
- NON_GNU_CPP=/lib/cpp
+ # It's not clear whether -D_LANGUAGE_C is necessary as it is for 6.5,
+ # but presumably it does no harm.
+ NON_GNU_CPP="/lib/cpp -D_LANGUAGE_C"
+ # -32 probably isn't necessary in later v.6s -- anyone know which?
NON_GCC_TEST_OPTIONS=-32
;;
mips-sgi-irix5.[01]* )
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* )
+ sparc-*-linux-gnu* | sparc64-*-linux-gnu* )
machine=sparc opsys=gnu-linux
;;
- *-sun-sunos* | *-sun-bsd* | *-sun-solaris* \
+ *-auspex-sunos* | *-sun-sunos* | *-sun-bsd* | *-sun-solaris* \
| i[3456]86-*-solaris2* | i[3456]86-*-sunos5* | powerpc*-*-solaris2* \
| rs6000-*-solaris2*)
case "${canonical}" in
m68* ) machine=sun3 ;;
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 ;;
## The Sun386 didn't get past 4.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
+ ## 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
RANLIB="ar -ts"
;;
*-sunos5* | *-solaris* )
- opsys=sol2-4
+ opsys=sol2-5
NON_GNU_CPP=/usr/ccs/lib/cpp
;;
* ) opsys=bsd4-2 ;;
machine=wicat opsys=usg5-2
;;
+ ## IA-64
+ ia64*-*-linux* )
+ machine=ia64 opsys=gnu-linux
+ ;;
+
## Intel 386 machines where we don't care about the manufacturer
i[3456]86-*-* )
machine=intel386
case "${canonical}" in
+ *-lynxos* ) opsys=lynxos ;;
*-isc1.* | *-isc2.[01]* ) opsys=386-ix ;;
*-isc2.2* ) opsys=isc2-2 ;;
*-isc4.0* ) opsys=isc4-0 ;;
NON_GNU_CPP=/lib/cpp
# Prevent -belf from being passed to $CPP.
# /lib/cpp does not accept it.
- OVERRIDE_CPPFLAGS=
+ OVERRIDE_CPPFLAGS=" "
;;
- *-bsd386* | *-bsdi1* ) opsys=bsd386 ;;
- *-bsdi2* ) opsys=bsdos2 ;;
+ *-sysv4.2uw* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
*-386bsd* ) opsys=386bsd ;;
*-freebsd* ) opsys=freebsd ;;
*-nextstep* ) opsys=nextstep ;;
esac
;;
- ## Linux/68k-based GNU system
+ ## 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"
+ ;;
+
+ ## UXP/V
+ f301-fujitsu-uxpv4.1)
+ machine=f301 opsys=uxpv
+ ;;
+
* )
unported=yes
;;
*-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 ;;
esac
fi
-if test "x$RANLIB" = x; then
- RANLIB=ranlib
-fi
-
changequote([, ])dnl
if test $unported = yes; then
CC="$CC $NON_GCC_TEST_OPTIONS"
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
#### #undef clause to src/config.h.in for autoconf to modify.
AC_PROG_CPP
AC_PROG_INSTALL
AC_PROG_YACC
+if test "x$RANLIB" = x; then
+ AC_PROG_RANLIB
+fi
dnl checks for Unix variants
AC_AIX
+#### 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 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
+### 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
+#ifdef __GNUC__
+#define C_OPTIMIZE_SWITCH -O2
+#else
+#define C_OPTIMIZE_SWITCH -O
+#endif
+#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. */
+#ifdef __GNUC__
+configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}'
+#else
+configure___ CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
+#endif
+
+#else /* not THIS_IS_CONFIGURE */
+
+/* Get the CFLAGS for real compilation. */
+#ifdef __GNUC__
+configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}'
+#else
+configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_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$SPECIFIED_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}
+
+ac_link="$ac_link $ld_switch_machine $ld_switch_system"
+
+### Make sure subsequent tests use flags consistent with the build flags.
+
+if test x"${OVERRIDE_CPPFLAGS}" != x; then
+ CPPFLAGS="${OVERRIDE_CPPFLAGS}"
+else
+ CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
+fi
+
+dnl Do this early because it can frob feature test macros for Unix-98 &c.
+AC_SYS_LARGEFILE
+
+# Sound support for GNU/Linux and the free BSDs.
+AC_CHECK_HEADERS(machine/soundcard.h sys/soundcard.h soundcard.h)
+# Emulation library used on NetBSD.
+AC_CHECK_LIB(ossaudio, _oss_ioctl, LIBSOUND=-lossaudio, LIBSOUND=)
+AC_SUBST(LIBSOUND)
+
dnl checks for header files
-AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h linux/version.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 stdlib.h \
+ termcap.h stdio_ext.h fcntl.h term.h)
AC_HEADER_STDC
AC_HEADER_TIME
AC_DECL_SYS_SIGLIST
+AC_HEADER_SYS_WAIT
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)
+dnl Check for speed_t typedef.
+AC_CACHE_CHECK(for speed_t, emacs_cv_speed_t,
+AC_TRY_COMPILE([#include <termios.h>], [speed_t x = 1;],
+ emacs_cv_speed_t=yes))
+if test $emacs_cv_speed_t = yes; then
+ AC_DEFINE(HAVE_SPEED_T)
+fi
+
+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)
- HAVE_TIMEVAL=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
+
+AC_CACHE_CHECK(for struct exception, emacs_cv_struct_exception,
+AC_TRY_COMPILE([#include <math.h>],
+[static struct exception x; x.arg1 = x.arg2 = x.retval; x.name = ""; x.type = 1;],
+ emacs_cv_struct_exception=yes, emacs_cv_struct_exception=no))
+HAVE_EXCEPTION=$emacs_cv_struct_exception
+if test $emacs_cv_struct_exception != yes; then
+ AC_DEFINE(NO_MATHERR)
+fi
dnl checks for structure members
AC_STRUCT_TM
AC_STRUCT_TIMEZONE
+AC_CACHE_CHECK(for tm_gmtoff in struct tm, emacs_cv_tm_gmtoff,
+AC_TRY_LINK([#include <time.h>], [struct tm t; t.tm_gmtoff = 0],
+ emacs_cv_tm_gmtoff=yes,
+ emacs_cv_tm_gmtoff=no))
+if test $emacs_cv_tm_gmtoff = yes; then
+ AC_DEFINE(HAVE_TM_GMTOFF)
+fi
dnl checks for compiler characteristics
+
+dnl Testing __STDC__ to determine prototype support isn't good enough.
+dnl DEC C, for instance, doesn't define it with default options, and
+dnl is used on 64-bit systems (OSF Alphas). Similarly for volatile
+dnl and void *.
+AC_C_PROTOTYPES
+AC_C_VOLATILE
AC_C_CONST
+dnl This isn't useful because we can't turn on use of `inline' unless
+dnl the compiler groks `extern inline'.
+dnl AC_C_INLINE
+AC_CACHE_CHECK([for void * support], emacs_cv_void_star,
+ [AC_TRY_COMPILE(, [void * foo;],
+ emacs_cv_void_star=yes, emacs_cv_void_star=no)])
+if test $emacs_cv_void_star = yes; then
+ AC_DEFINE(POINTER_TYPE, void)
+else
+ AC_DEFINE(POINTER_TYPE, char)
+fi
dnl check for Make feature
AC_PROG_MAKE_SET
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"`
for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do
if test -d "${bmd}/X11/bitmaps"; then
bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps"
- elif test -d "${bmd}/bitmaps"; then
+ fi
+ if test -d "${bmd}/bitmaps"; then
bmd_acc="${bmd_acc}:${bmd}/bitmaps"
fi
done
case ${HAVE_X11} in
yes ) HAVE_MENUS=yes ;;
esac
-
+
if test "${opsys}" = "hpux9"; then
case "${x_libraries}" in
*X11R4* )
esac
fi
-#### 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 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
-### 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 '${SPECIFIED_CFLAGS}'
-#else
-configure___ CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
-#endif
-
-#else /* not THIS_IS_CONFIGURE */
-
-/* Get the CFLAGS for real compilation. */
-#ifdef __GNUC__
-configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}'
-#else
-configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_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$SPECIFIED_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
+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
REL_ALLOC=${GNU_MALLOC}
fi
-LISP_FLOAT_TYPE=yes
-
-
-#### Add the libraries to LIBS and check for some functions.
-
-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,
AC_CHECK_LIB(pthreads, cma_open)
-AC_MSG_CHECKING(for XFree86)
+AC_MSG_CHECKING(for XFree86 in /usr/X386)
if test -d /usr/X386/include; then
HAVE_XFREE386=yes
: ${C_SWITCH_X_SITE="-I/usr/X386/include"}
# Change CFLAGS temporarily so that C_SWITCH_X_SITE gets used
# for the tests that follow. We set it back to REAL_CFLAGS later on.
+REAL_CPPFLAGS="$CPPFLAGS"
+
if test "${HAVE_X11}" = "yes"; then
DEFS="$C_SWITCH_X_SITE $DEFS"
LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE"
LIBS="$LIBX $LIBS"
CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
+ CPPFLAGS="$C_SWITCH_X_SITE $CPPFLAGS"
# 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,
if test "${window_system}" = "x11"; then
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 or newer)
- AC_DEFINE(HAVE_X11R6)],
- [AC_MSG_RESULT(before 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
-], [AC_MSG_RESULT(5 or newer)
+], 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)],
- [
+ AC_DEFINE(HAVE_X11R5)
+ else
HAVE_X11R5=no
- AC_MSG_RESULT(before 5)])
+ AC_MSG_RESULT(before 5)
+ fi
fi
dnl Do not put whitespace before the #include statements below.
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>],
[],
- [AC_MSG_RESULT(5 or newer, with Xaw; use toolkit by default)
- USE_X_TOOLKIT=LUCID],
- [AC_MSG_RESULT(before 5 or no Xaw; do not use toolkit by default)
- USE_X_TOOLKIT=none])
+ 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
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 or newer)
- HAVE_X11XTR6=yes
- AC_DEFINE(HAVE_X11XTR6)],
- [AC_MSG_RESULT(before 6)
- HAVE_X11XTR6=no])
+], 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.
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)
+ AC_CHECK_LIB(Xp, XpCreateContext, HAVE_LIBXP=yes, , -lXext)
+ if test ${HAVE_LIBXP} = yes; then
+ AC_DEFINE(HAVE_LIBXP)
+ fi
+ fi
+fi
+
+### Is -lXaw3d available?
+HAVE_XAW3D=no
+if test "${HAVE_X11}" = "yes"; then
+ if test "${USE_X_TOOLKIT}" != "none"; then
+ old_c_flags="${CFLAGS}"
+ CFLAGS="${LD_SWITCH_X_SITE}"
+ AC_CHECK_HEADER(X11/Xaw3d/Scrollbar.h,
+ AC_CHECK_LIB(Xaw3d, XawScrollbarSetThumb, HAVE_XAW3D=yes, , -lX11))
+ CFLAGS="${old_c_flags}"
+
+ if test "${HAVE_XAW3D}" = "yes"; then
+ AC_DEFINE(HAVE_XAW3D)
+ fi
+ fi
+fi
+
+dnl Use toolkit scroll bars if configured for X toolkit and either
+dnl using Motif or Xaw3d is available, and unless
+dnl --with-toolkit-scroll-bars=no was specified.
+
+USE_TOOLKIT_SCROLL_BARS=no
+if test "${with_toolkit_scroll_bars}" != "no"; then
+ if test "${USE_X_TOOLKIT}" != "none"; then
+ if test "${USE_X_TOOLKIT}" = "MOTIF"; then
+ AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
+ HAVE_XAW3D=no
+ USE_TOOLKIT_SCROLL_BARS=yes
+ elif test "${HAVE_XAW3D}" = "yes"; then
+ AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
+ USE_TOOLKIT_SCROLL_BARS=yes
+ fi
+ fi
+fi
+
+dnl Don't use X11 input methods if user specifies he doesn't want it
+dnl with `--with-xim=no'.
+
+if test "${with_xim}" != "no"; then
+ AC_DEFINE(USE_XIM)
+fi
+
+### Use -lXpm if available, unless `--with-xpm=no'.
+HAVE_XPM=no
+if test "${HAVE_X11}" = "yes"; then
+ if test "${with_xpm}" != "no"; then
+ old_c_flags="${CFLAGS}"
+ CFLAGS="${LD_SWITCH_X_SITE}"
+ AC_CHECK_HEADER(X11/xpm.h,
+ AC_CHECK_LIB(Xpm, XpmReadFileToPixmap, HAVE_XPM=yes, , -lX11))
+ if test "${HAVE_XPM}" = "yes"; then
+ AC_EGREP_CPP(no_return_alloc_pixels,
+ [#include "X11/xpm.h"
+#ifndef XpmReturnAllocPixels
+no_return_alloc_pixels
+#endif
+ ], HAVE_XPM=no, HAVE_XPM=yes)
+ fi
+ CFLAGS="${old_c_flags}"
+ fi
+
+ if test "${HAVE_XPM}" = "yes"; then
+ AC_DEFINE(HAVE_XPM)
+ fi
+fi
+
+### Use -ljpeg if available, unless `--with-jpeg=no'.
+HAVE_JPEG=no
+if test "${HAVE_X11}" = "yes"; then
+ if test "${with_jpeg}" != "no"; then
+ old_c_flags="${CFLAGS}"
+ CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}"
+ dnl Checking for jpeglib.h can lose becsue of a redefinition of
+ dnl HAVE_STDLIB_H.
+ AC_CHECK_HEADER(jerror.h,
+ AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes, , -lX11))
+ CFLAGS="${old_c_flags}"
+ fi
+
+ if test "${HAVE_JPEG}" = "yes"; then
+ AC_DEFINE(HAVE_JPEG)
+ fi
+fi
+
+### Use -lpng if available, unless `--with-png=no'.
+HAVE_PNG=no
+if test "${HAVE_X11}" = "yes"; then
+ if test "${with_png}" != "no"; then
+ old_c_flags="${CFLAGS}"
+ CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}"
+ AC_CHECK_HEADER(png.h,
+ AC_CHECK_LIB(png, png_set_expand, HAVE_PNG=yes, , -lX11 -lz -lm))
+ CFLAGS="${old_c_flags}"
+ fi
+
+ if test "${HAVE_PNG}" = "yes"; then
+ AC_DEFINE(HAVE_PNG)
+ fi
+fi
+
+### Use -ltiff if available, unless `--with-tiff=no'.
+HAVE_TIFF=no
+if test "${HAVE_X11}" = "yes"; then
+ if test "${with_tiff}" != "no"; then
+ old_c_flags="${CFLAGS}"
+ CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}"
+ AC_CHECK_HEADER(tiffio.h,
+ tifflibs="-lX11 -lz -lm"
+ # At least one tiff package requires the jpeg library.
+ if test "${HAVE_JPEG}" = yes; then tifflibs="-ljpeg $tifflibs"; fi
+ AC_CHECK_LIB(tiff, TIFFGetVersion, HAVE_TIFF=yes, , $tifflibs))
+ CFLAGS="${old_c_flags}"
+ fi
+
+ if test "${HAVE_TIFF}" = "yes"; then
+ AC_DEFINE(HAVE_TIFF)
+ fi
+fi
+
+### Use -lgif if available, unless `--with-gif=no'.
+HAVE_GIF=no
+if test "${HAVE_X11}" = "yes"; then
+ if test "${with_gif}" != "no"; then
+ old_c_flags="${CFLAGS}"
+ CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}"
+ AC_CHECK_HEADER(gif_lib.h,
+ AC_CHECK_LIB(ungif, DGifOpen, HAVE_GIF=yes, , -lX11))
+ CFLAGS="${old_c_flags}"
+ fi
+
+ if test "${HAVE_GIF}" = "yes"; then
+ AC_DEFINE(HAVE_GIF)
+ 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
# On HPUX 9.01, -lm does not contain logb, so check for sqrt.
AC_CHECK_LIB(m, sqrt)
-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 euidaccess getpagesize tzset setlocale)
+# Check for mail-locking functions in a "mail" library
+AC_CHECK_LIB(mail, maillock)
+dnl Debian, at least:
+dnl AC_CHECK_LIB(lockfile, maillock, [AC_DEFINE(HAVE_LIBMAIL)])
+AC_CHECK_LIB(lockfile, maillock)
+# If we have the shared liblockfile, assume we must use it for mail
+# locking (e.g. Debian). If we couldn't link against liblockfile
+# (no liblockfile.a installed), ensure that we don't need to.
+if test "$ac_cv_lib_lockfile_maillock" = no; then
+ dnl This works for files generally, not just executables.
+ dnl Should we look elsewhere for it? Maybe examine /etc/ld.so.conf?
+ AC_CHECK_PROG(liblockfile, liblockfile.so, yes, no,
+ /usr/lib:/lib:/usr/local/lib:$LD_LIBRARY_PATH)
+ if test $ac_cv_prog_liblockfile = yes; then
+ AC_MSG_ERROR([Shared liblockfile found but can't link against it.
+This probably means that movemail could lose mail.
+There may be a \`development' package to install containing liblockfile.])
+ else AC_DEFINE(LIBMAIL, -llockfile)
+ fi
+ else :
+fi
+AC_CHECK_FUNCS(touchlock)
+AC_CHECK_HEADERS(maillock.h)
+
+AC_CHECK_FUNCS(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 getwd shutdown strftime getaddrinfo \
+__fpending mblen mbrlen strsignal setitimer ualarm)
+
+AC_FUNC_MKTIME
+if test "$ac_cv_func_working_mktime" = no; then
+ AC_DEFINE(BROKEN_MKTIME)
+fi
+
+AC_FUNC_GETLOADAVG
+
+AC_CHECK_FUNCS(ftello)
+
+# UNIX98 PTYs. AC_SYS_LARGEFILE should have defined _XOPEN_SOURCE
+# if we need it.
+AC_CHECK_FUNCS(grantpt)
+
+# PTY-related GNU extensions.
+AC_CHECK_FUNCS(getpt)
# 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.
# 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(k5crypto, mit_des_cbc_encrypt)
+ AC_CHECK_LIB(crypto, mit_des_cbc_encrypt)
+ AC_CHECK_LIB(krb5, krb5_init_context)
+ if test "${with_kerberos5+set}" != set; then
+ AC_CHECK_LIB(des425, des_cbc_encrypt,,
+ AC_CHECK_LIB(des, des_cbc_encrypt))
+ AC_CHECK_LIB(krb4, krb_get_cred,,
+ AC_CHECK_LIB(krb, 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
+
+# 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 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 ()
{
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_GMT0, hour_unset;
- if (putenv ("TZ=GMT0") != 0)
+ 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)
+ if (putenv (TZ_PST8) != 0)
exit (1);
if (localtime (&now)->tm_hour == hour_GMT0)
exit (1);
fi
if test "x$HAVE_TIMEVAL" = xyes; then
-AC_MSG_CHECKING(whether gettimeofday can't accept two arguments)
-AC_TRY_LINK([
+ AC_CHECK_FUNCS(gettimeofday)
+ AC_CACHE_CHECK(whether gettimeofday can accept two arguments,
+ emacs_cv_gettimeofday_two_arguments,
+ AC_TRY_COMPILE([
+#ifdef TIME_WITH_SYS_TIME
+#include <sys/time.h>
+#include <time.h>
+#else
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#else
+#include <time.h>
+#endif
+#endif],
+ [struct timeval time;
+ gettimeofday (&time, 0);],
+ 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
+
+dnl Note that AC_STRUCT_TIMEZONE doesn't do what you might expect.
+if test "$ac_cv_func_gettimeofday" = yes; then
+ AC_CACHE_CHECK([for struct timezone], emacs_cv_struct_timezone,
+ [AC_TRY_COMPILE([#include <sys/time.h>],
+ [struct timezone tz;],
+ dnl It may be that we can't call gettimeofday with a non-null pointer,
+ dnl even though we have struct timezone (e.g. HPUX). In that case
+ dnl we'll lie about struct timezone.
+ [AC_TRY_RUN([
#ifdef TIME_WITH_SYS_TIME
#include <sys/time.h>
#include <time.h>
#include <time.h>
#endif
#endif
- ],
- [
+main () {
struct timeval time;
struct timezone dummy;
- gettimeofday (&time, &dummy);
-],
- [AC_MSG_RESULT(no)],
- [AC_MSG_RESULT(yes)
- AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT)])
+ exit (gettimeofday (&time, &dummy));
+}],
+ emacs_cv_struct_timezone=yes,
+ emacs_cv_struct_timezone=no, emacs_cv_struct_timezone=yes)],
+ emacs_cv_struct_timezone=no)])
fi
ok_so_far=yes
AC_DEFINE(HAVE_AIX_SMT_EXP)
fi
+AC_MSG_CHECKING(whether system supports dynamic ptys)
+if test -d /dev/pts && ls -d /dev/ptmx > /dev/null 2>&1 ; then
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_DEV_PTMX)
+else
+ AC_MSG_RESULT(no)
+fi
+
+AC_FUNC_VFORK
+
+# Fixme: This should be replaced when we have autoconf 2.14.
+AC_SIZE_T
+
# Set up the CFLAGS for real compilation, so we can substitute it.
CFLAGS="$REAL_CFLAGS"
+CPPFLAGS="$REAL_CPPFLAGS"
changequote(, )dnl
#### Find out which version of Emacs this is.
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)
AC_SUBST(X_TOOLKIT_TYPE)
AC_SUBST(machfile)
AC_SUBST(opsysfile)
-AC_SUBST(RANLIB)
+AC_SUBST(GETLOADAVG_LIBS)
AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "${canonical}")
AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}")
if test "${REL_ALLOC}" = "yes" ; then
AC_DEFINE(REL_ALLOC)
fi
-if test "${LISP_FLOAT_TYPE}" = "yes" ; then
- AC_DEFINE(LISP_FLOAT_TYPE)
-fi
#### Report on what we decided to do.
echo "
echo " Where do we find X Windows libraries? Standard dirs"
fi
+echo " Does Emacs use -lXaw3d? ${HAVE_XAW3D}"
+echo " Does Emacs use -lXpm? ${HAVE_XPM}"
+echo " Does Emacs use -ljpeg? ${HAVE_JPEG}"
+echo " Does Emacs use -ltiff? ${HAVE_TIFF}"
+echo " Does Emacs use -lungif? ${HAVE_GIF}"
+echo " Does Emacs use -lpng? ${HAVE_PNG}"
+echo " Does Emacs use X toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}"
echo
# Remove any trailing slashes in these variables.
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 \
+ lisp/Makefile leim/Makefile, [
### Make the necessary directories, if they don't exist.
-for dir in cpp etc ; do
+for dir in etc lisp ; do
test -d ${dir} || mkdir ${dir}
done
`"
changequote([, ])dnl
+echo creating src/epaths.h
+make epaths-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"])