dnl autoconf
dnl in the directory containing this script.
dnl
-dnl Copyright (C) 1994, 1995, 1996, 1999 Free Software Foundation, Inc.
+dnl Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002
+dnl Free Software Foundation, Inc.
dnl
dnl This file is part of GNU Emacs.
dnl
dnl Free Software Foundation, Inc., 59 Temple Place - Suite 330,
dnl Boston, MA 02111-1307, USA.
-AC_PREREQ(2.8)dnl
+AC_PREREQ(2.51)dnl
AC_INIT(src/lisp.h)
AC_CONFIG_HEADER(src/config.h:src/config.in)
+dnl Support for --program-prefix, --program-suffix and
+dnl --program-transform-name options
+AC_ARG_PROGRAM
+
lispdir='${datadir}/emacs/${version}/lisp'
locallisppath='${datadir}/emacs/${version}/site-lisp:'\
'${datadir}/emacs/site-lisp:${datadir}/emacs/${version}/leim'
etcdir='${datadir}/emacs/${version}/etc'
archlibdir='${libexecdir}/emacs/${version}/${configuration}'
docdir='${datadir}/emacs/${version}/etc'
+gamedir='${localstatedir}/games/emacs'
+
+gameuser=games
AC_ARG_WITH(gcc,
[ --without-gcc don't use GCC to compile Emacs if GCC is found])
else :
fi],
AC_DEFINE(MAIL_USE_POP))
+AH_TEMPLATE(MAIL_USE_POP, [Define to support POP mail retrieval.])dnl
AC_ARG_WITH(kerberos,
[ --with-kerberos support Kerberos-authenticated POP],
[AC_DEFINE(KERBEROS)])
+AH_TEMPLATE(KERBEROS,
+ [Define to support Kerberos-authenticated POP mail retrieval.])dnl
AC_ARG_WITH(kerberos5,
-[ --with-kerberos5 support Kerberos version 5 authenticated POP],
+[ --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_DEFINE(KERBEROS5, 1, [Define to use Kerberos 5 instead of Kerberos 4.])])
AC_ARG_WITH(hesiod,
[ --with-hesiod support Hesiod to get the POP server host],
-[AC_DEFINE(HESIOD)])
+[AC_DEFINE(HESIOD, 1, [Define to support using a Hesiod database to find the POP server.])])
+
+AC_ARG_WITH(sound,
+[ --without-sound don't compile with sound support])
+
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(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])
+[ --without-toolkit-scroll-bars
+ don't use Motif or Xaw3d scroll bars])
+AC_ARG_WITH(xim,
+[ --without-xim don't use X11 XIM])
+AC_ARG_WITH(carbon,
+[ --without-carbon don't use Carbon GUI on Mac OS X])
#### Make srcdir absolute, if it isn't already. It's important to
-#### avoid running the path through pwd unnecessary, since pwd can
+#### avoid running the path through pwd unnecessarily, since pwd can
#### give you automounter prefixes, which can go away. We do all this
#### so Emacs can find its files when run uninstalled.
+## Make sure CDPATH doesn't affect cd (in case PWD is relative).
+unset CDPATH
case "${srcdir}" in
/* ) ;;
. )
## 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).
- unset CDPATH
- if test "${PWD}" != "" && test "`(cd ${PWD} ; sh -c pwd)`" = "`pwd`" ;
+ ## Note: we used to use ${PWD} at the end instead of `pwd`,
+ ## but that tested only for a well-formed and valid PWD,
+ ## it did not object when PWD was well-formed and valid but just wrong.
+ if test ".${PWD}" != "." && test ".`(cd ${PWD} ; sh -c pwd)`" = ".`pwd`" ;
then
srcdir="$PWD"
else
AC_CANONICAL_HOST
canonical=$host
-configuration=$host_alias
+configuration=${host_alias-$host}
changequote(, )dnl
machine='' opsys='' unported=no
case "${canonical}" in
+ ## FreeBSD ports
+ *-*-freebsd* )
+ opsys=freebsd
+ case "${canonical}" in
+ alpha*-*-freebsd*) machine=alpha ;;
+ i[3456]86-*-freebsd*) machine=intel386 ;;
+ esac
+ ;;
+
## NetBSD ports
*-*-netbsd* )
opsys=netbsd
machine=hp9000s300 ;;
powerpc-apple-netbsd*) machine=macppc ;;
mips-*-netbsd*) machine=pmax ;;
+ mipsel-*-netbsd*) machine=pmax ;;
+ mipseb-*-netbsd*) machine=pmax ;;
ns32k-*-netbsd*) machine=ns32000 ;;
- sparc-*-netbsd*) machine=sparc ;;
+ powerpc-*-netbsd*) machine=macppc ;;
+ sparc*-*-netbsd*) machine=sparc ;;
vax-*-netbsd*) machine=vax ;;
+ arm-*-netbsd*) machine=arm ;;
esac
;;
case "${canonical}" in
i[345]86-*-bsdi*) machine=intel386 ;;
sparc-*-bsdi*) machine=sparc ;;
- powerpc-*-bsdi*) machine=powerpc ;;
+ powerpc-*-bsdi*) machine=macppc ;;
esac
case "${canonical}" in
*-*-bsd386* | *-*-bsdi1* ) opsys=bsd386 ;;
*-*-bsdi2.0* ) opsys=bsdos2 ;;
*-*-bsdi2* ) opsys=bsdos2-1 ;;
*-*-bsdi3* ) opsys=bsdos3 ;;
- *-*-bsdi4* ) opsys=bsdos4 ;;
+ *-*-bsdi[45]* ) opsys=bsdos4 ;;
esac
;;
# 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
+ # NON_GNU_CPP is necessary on 5.0 to avoid mangling src/Makefile
+ # due to non-traditional preprocessing with the current compiler
+ # defaults. OSF 4 can also have that compiler version, and there
+ # seems always to have been a usable /usr/bin/cpp.
+ NON_GNU_CPP=/usr/bin/cpp
+ case "${canonical}" in
+ alpha*-dec-osf[5-9]*)
+ opsys=osf5-0 ;;
+ esac
;;
alpha*-*-linux-gnu* )
ppc-*-linux | \
powerpc-*-linux* )
- machine=powerpc opsys=gnu-linux
+ machine=macppc opsys=gnu-linux
;;
## Altos 3068
## operating system.
;;
+ ## Compaq Nonstop
+ mips-compaq-nonstopux* )
+ machine=nonstopux opsys=nonstopux
+ ;;
+
## Convex
*-convex-bsd* | *-convex-convexos* )
machine=convex opsys=bsd4-3
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* )
hppa1.1-hitachi-hiuxmpp* )
machine=sr2k opsys=hiuxmpp
;;
+ hppa1.1-hitachi-hiuxwe2* )
+ machine=sr2k opsys=hiuxwe2
+ ;;
## Honeywell XPS100
xps*-honeywell-sysv* )
machine=xps100 opsys=usg5-2
hppa*-hp-hpux9* )
machine=hp800 opsys=hpux9
;;
- hppa*-hp-hpux1[0-9]* )
+ hppa*-hp-hpux10* )
machine=hp800 opsys=hpux10
;;
+ hppa*-hp-hpux1[1-9]* )
+ machine=hp800 opsys=hpux11
+ ;;
+
+ hppa*-*-linux-gnu* )
+ machine=hp800 opsys=gnu-linux
+ ;;
## HP 9000 series 700 and 800, running HP/UX
hppa*-hp-hpux* )
i370-ibm-aix*)
machine=ibm370aix opsys=usg5-3
;;
+ s390-*-linux-gnu)
+ machine=ibms390 opsys=gnu-linux
+ ;;
rs6000-ibm-aix3.1* | powerpc-ibm-aix3.1* )
machine=ibmrs6000 opsys=aix3-1
;;
rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2* )
machine=ibmrs6000 opsys=aix4-2
;;
+ rs6000-ibm-aix5.1* | powerpc-ibm-aix5.1* )
+ machine=ibmrs6000 opsys=aix4-2
+ ;;
rs6000-ibm-aix4.0* | powerpc-ibm-aix4.0* )
machine=ibmrs6000 opsys=aix4
;;
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
# 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="-n32 -D_LANGUAGE_C"
+ NON_GCC_TEST_OPTIONS="-D_LANGUAGE_C"
;;
mips-sgi-irix6* )
machine=iris4d opsys=irix6-0
# 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]* )
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
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 ;;
;;
*-sysv4.2uw* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
*-386bsd* ) opsys=386bsd ;;
- *-freebsd* ) opsys=freebsd ;;
*-nextstep* ) opsys=nextstep ;;
## Otherwise, we'll fall through to the generic opsys code at the bottom.
esac
machine=f301 opsys=uxpv
;;
+ ## Darwin / Mac OS X
+ powerpc-apple-darwin* )
+ machine=powermac opsys=darwin
+ # Define CPP as follows to make autoconf work correctly.
+ CPP="cc -E -traditional-cpp"
+ ;;
+
+ ## AMD x86-64 Linux-based GNU system
+ x86_64-*-linux-gnu* )
+ machine=amdx86-64 opsys=gnu-linux
+ ;;
+
* )
unported=yes
;;
esac
fi
-if test "x$RANLIB" = x; then
- RANLIB=ranlib
-fi
-
changequote([, ])dnl
if test $unported = yes; then
case ${with_gcc} in
"yes" ) CC="gcc" GCC=yes ;;
"no" ) : ${CC=cc} ;;
- * ) AC_PROG_CC
+ * )
esac
+AC_PROG_CC
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
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
-# Sound support for GNU/Linux and the free BSDs.
-AC_CHECK_HEADERS(machine/soundcard.h sys/soundcard.h)
+#### 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
+
+#ifdef USE_MMAP_FOR_BUFFERS
+configure___ use_mmap_for_buffers=yes
+#else
+configure___ use_mmap_for_buffers=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
+
+if test "${with_sound}" != "no"; then
+ # 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)
+fi
dnl checks for header files
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)
+ termcap.h stdio_ext.h fcntl.h term.h strings.h coff.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_CACHE_CHECK(for struct utimbuf, emacs_cv_struct_utimbuf,
#endif], [static struct utimbuf x; x.actime = x.modtime;],
emacs_cv_struct_utimbuf=yes, emacs_cv_struct_utimbuf=no))
if test $emacs_cv_struct_utimbuf = yes; then
- AC_DEFINE(HAVE_STRUCT_UTIMBUF)
+ AC_DEFINE(HAVE_STRUCT_UTIMBUF, 1, [Define to 1 if `struct utimbuf' is declared by <utime.h>.])
fi
dnl checks for typedefs
AC_TYPE_SIGNAL
+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, emacs_cv_speed_t=no)])
+if test $emacs_cv_speed_t = yes; then
+ AC_DEFINE(HAVE_SPEED_T, 1,
+ [Define to 1 if `speed_t' is declared by <termios.h>.])
+fi
+
AC_CACHE_CHECK(for struct timeval, emacs_cv_struct_timeval,
AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
#include <sys/time.h>
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)
+ AC_DEFINE(HAVE_TIMEVAL, 1, [Define to 1 if `struct timeval' is declared by <sys/time.h>.])
+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, 1, [Define to 1 if you don't have struct exception in math.h.])
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
+AC_CHECK_MEMBER(struct tm.tm_gmtoff,
+ [AC_DEFINE(HAVE_TM_GMTOFF, 1,
+ [Define to 1 if `tm_gmtoff' is member of `struct tm'.])],,
+ [#include <time.h>])
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
+AH_TEMPLATE(POINTER_TYPE,
+ [Define as `void' if your compiler accepts `void *'; otherwise
+ define as `char'.])dnl
dnl check for Make feature
AC_PROG_MAKE_SET
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"
+ x_search_path="\
+${x_library}/X11/%L/%T/%N%C%S:\
+${x_library}/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
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
-
-#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"
-
### Compute the unexec source name from the object name.
UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`"
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],
+[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))
+ emacs_cv_var___after_morecore_hook=no)])
if test $emacs_cv_var___after_morecore_hook = no; then
doug_lea_malloc=no
fi
GNU_MALLOC_reason="
(Using Doug Lea's new malloc from the GNU C Library.)"
fi
- AC_DEFINE(DOUG_LEA_MALLOC)
+ AC_DEFINE(DOUG_LEA_MALLOC, 1,
+ [Define to 1 if you are using the GNU C Library.])
fi
if test x"${REL_ALLOC}" = x; then
REL_ALLOC=${GNU_MALLOC}
fi
-#### Add the libraries to LIBS and check for some functions.
+dnl For now, need to use an explicit `#define USE_MMAP_FOR_BUFFERS 1'
+dnl the system configuration file (s/*.h) to turn the use of mmap
+dnl in the relocating allocator on.
-if test x"${OVERRIDE_CPPFLAGS}" != x; then
- CPPFLAGS="${OVERRIDE_CPPFLAGS}"
-else
- CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
+AC_FUNC_MMAP
+if test $use_mmap_for_buffers = yes; then
+ REL_ALLOC=no
fi
LIBS="$libsrc_libs $LIBS"
# 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,
fi
fi
+ # Reportedly, some broken Solaris systems have XKBlib.h but are missing
+ # header files included from there.
+ AC_MSG_CHECKING(for Xkb)
+ AC_TRY_LINK([#include <X11/Xlib.h>
+#include <X11/XKBlib.h>],
+ [XkbDescPtr kb = XkbGetKeyboard (0, XkbAllComponentsMask, XkbUseCoreKbd);],
+ emacs_xkb=yes, emacs_xkb=no)
+ AC_MSG_RESULT($emacs_xkb)
+ if test $emacs_xkb = yes; then
+ AC_DEFINE(HAVE_XKBGETKEYBOARD, 1, [Define to 1 if you have the XkbGetKeyboard function.])
+ fi
+
AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
XScreenNumberOfScreen XSetWMProtocols)
fi
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>],
+ [AC_TRY_LINK([#include <X11/Xlib.h>],
[#if XlibSpecificationRelease < 6
fail;
#endif
-], emacs_cv_x11_version_6=yes, emacs_cv_x11_version_6=no))
+], 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)
+ AC_DEFINE(HAVE_X11R6, 1,
+ [Define to 1 if you have the X11R6 or newer version of Xlib.])
else
AC_MSG_RESULT(before 6)
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>],
+ [AC_TRY_LINK([#include <X11/Xlib.h>],
[#if XlibSpecificationRelease < 5
fail;
#endif
-], emacs_cv_x11_version_5=yes, emacs_cv_x11_version_5=no))
+], 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, 1,
+ [Define to 1 if you have the X11R5 or newer version of Xlib.])
else
HAVE_X11R5=no
AC_MSG_RESULT(before 5)
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([
+ [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))
+ 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
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>],
+ [AC_TRY_LINK([#include <X11/Intrinsic.h>],
[#if XtSpecificationRelease < 6
fail;
#endif
-], emacs_cv_x11_toolkit_version_6=yes, emacs_cv_x11_toolkit_version_6=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)
+ AC_DEFINE(HAVE_X11XTR6, 1,
+ [Define to 1 if you have the X11R6 or newer version of Xt.])
else
AC_MSG_RESULT(before 6)
fi
LIBS="-lXt $LIBS"
fi
AC_CHECK_LIB(Xmu, XmuConvertStandardSelection)
- LIBS="$OLDLIBS"
+ test $ac_cv_lib_Xmu_XmuConvertStandardSelection = no && LIBS="$OLDLIBS"
+fi
+
+# On Irix 6.5, at least, we need XShapeQueryExtension from -lXext for Xaw3D.
+if test "${HAVE_X11}" = "yes"; then
+ if test "${USE_X_TOOLKIT}" != "none"; then
+ AC_CHECK_LIB(Xext, XShapeQueryExtension)
+ fi
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>],
+ [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))
+ 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=no
+ AC_DEFINE(HAVE_MOTIF_2_1, 1,
+ [Define to 1 if you have Motif 2.1 or newer.])
+ AC_CHECK_LIB(Xp, XpCreateContext, HAVE_LIBXP=yes)
+ if test ${HAVE_LIBXP} = yes; then
+ AC_DEFINE(HAVE_LIBXP, 1,
+ [Define to 1 if you have the Xp library (-lXp).])
+ fi
fi
fi
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}"
-
+ AC_CHECK_LIB(Xaw3d, XawScrollbarSetThumb, HAVE_XAW3D=yes))
if test "${HAVE_XAW3D}" = "yes"; then
- AC_DEFINE(HAVE_XAW3D)
+ AC_DEFINE(HAVE_XAW3D, 1,
+ [Define to 1 if you have the Xaw3d library (-lXaw3d).])
fi
fi
fi
dnl using Motif or Xaw3d is available, and unless
dnl --with-toolkit-scroll-bars=no was specified.
+AH_TEMPLATE(USE_TOOLKIT_SCROLL_BARS,
+ [Define to 1 if we should use toolkit scroll bars.])dnl
USE_TOOLKIT_SCROLL_BARS=no
if test "${with_toolkit_scroll_bars}" != "no"; then
if test "${USE_X_TOOLKIT}" != "none"; then
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, 1,
+ [Define to 1 if we should use XIM, if it is available.])
+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))
- CFLAGS="${old_c_flags}"
+ if test "${HAVE_XPM}" = "yes"; then
+ AC_MSG_CHECKING(for XpmReturnAllocPixels preprocessor define)
+ AC_EGREP_CPP(no_return_alloc_pixels,
+ [#include "X11/xpm.h"
+#ifndef XpmReturnAllocPixels
+no_return_alloc_pixels
+#endif
+ ], HAVE_XPM=no, HAVE_XPM=yes)
+
+ if test "${HAVE_XPM}" = "yes"; then
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ fi
+ fi
fi
if test "${HAVE_XPM}" = "yes"; then
- AC_DEFINE(HAVE_XPM)
+ AC_DEFINE(HAVE_XPM, 1, [Define to 1 if you have the Xpm libary (-lXpm).])
fi
fi
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}"
+ AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes))
fi
+ AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl
if test "${HAVE_JPEG}" = "yes"; then
AC_DEFINE(HAVE_JPEG)
+ AC_EGREP_CPP(
+changequote({, })dnl avoid leadingspace on the next line
+{version= *(6[2-9]|[7-9][0-9])},
+changequote([, ])dnl
+ [#include <jpeglib.h>
+ version=JPEG_LIB_VERSION
+],
+ AC_DEFINE(HAVE_JPEG),
+ [AC_MSG_WARN([libjpeg found, but not version 6b or later])
+ HAVE_JPEG=no])
fi
fi
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}"
+ AC_CHECK_LIB(png, png_get_channels, HAVE_PNG=yes, , -lz -lm))
fi
if test "${HAVE_PNG}" = "yes"; then
- AC_DEFINE(HAVE_PNG)
+ AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library (-lpng).])
fi
fi
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"
+ tifflibs="-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)
+ AC_DEFINE(HAVE_TIFF, 1, [Define to 1 if you have the tiff library (-ltiff).])
fi
fi
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}"
+# EGifPutExtensionLast only exists from version libungif-4.1.0b1.
+# Earlier versions can crash Emacs.
+ AC_CHECK_LIB(ungif, EGifPutExtensionLast, HAVE_GIF=yes))
fi
if test "${HAVE_GIF}" = "yes"; then
- AC_DEFINE(HAVE_GIF)
+ AC_DEFINE(HAVE_GIF, 1, [Define to 1 if you have the ungif library (-lungif).])
fi
fi
+### Use Mac OS X Carbon API to implement GUI.
+HAVE_CARBON=no
+if test "${with_carbon}" != "no"; then
+ AC_CHECK_HEADER(Carbon/Carbon.h, HAVE_CARBON=yes)
+fi
+
+if test "${HAVE_CARBON}" = "yes"; then
+ AC_DEFINE(HAVE_CARBON, 1, [Define to 1 if you are using the Carbon API on Mac OS X.])
+fi
+
+### Use session management (-lSM -lICE) if available
+HAVE_X_SM=no
+if test "${HAVE_X11}" = "yes"; then
+ AC_CHECK_HEADER(X11/SM/SMlib.h,
+ AC_CHECK_LIB(SM, SmcOpenConnection, HAVE_X_SM=yes, -lICE))
+
+ if test "${HAVE_X_SM}" = "yes"; then
+ AC_DEFINE(HAVE_X_SM, 1, [Define to 1 if you have the SM library (-lSM).])
+ case "$LIBS" in
+ *-lSM*) ;;
+ *) LIBS="-lSM -lICE $LIBS" ;;
+ esac
+ fi
+fi
+
# If netdb.h doesn't declare h_errno, we must declare it by hand.
AC_CACHE_CHECK(whether netdb declares h_errno,
emacs_cv_netdb_declares_h_errno,
-AC_TRY_LINK([#include <netdb.h>],
+[AC_TRY_LINK([#include <netdb.h>],
[return h_errno;],
- emacs_cv_netdb_declares_h_errno=yes, emacs_cv_netdb_declares_h_errno=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)
+ AC_DEFINE(HAVE_H_ERRNO, 1, [Define to 1 if netdb.h declares h_errno.])
fi
AC_FUNC_ALLOCA
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)
+ else AC_DEFINE(LIBMAIL, -llockfile, [Define to -llockfile if it is usable.])
fi
else :
fi
AC_CHECK_FUNCS(touchlock)
AC_CHECK_HEADERS(maillock.h)
-AC_CHECK_FUNCS(gettimeofday gethostname getdomainname dup2 \
+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 shutdown strftime getaddrinfo \
-__fpending ftello getloadavg mblen mbrlen strsignal setitimer ualarm)
+utimes setrlimit setpgid getcwd getwd shutdown strftime getaddrinfo \
+__fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \
+sendto recvfrom getsockopt setsockopt getsockname getpeername \
+gai_strerror mkstemp getline getdelim)
+
+AC_CHECK_HEADERS(sys/un.h)
+
+AC_FUNC_MKTIME
+if test "$ac_cv_func_working_mktime" = no; then
+ AC_DEFINE(BROKEN_MKTIME, 1, [Define to 1 if the mktime function is broken.])
+fi
+
+AC_FUNC_GETLOADAVG
+
+AC_FUNC_FSEEKO
+
+# UNIX98 PTYs.
+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)
+# Do we need the Hesiod library to provide the support routines?
+if test "$with_hesiod" = yes ; then
+ # Don't set $LIBS here -- see comments above.
+ resolv=no
+ AC_CHECK_FUNC(res_send, , [AC_CHECK_FUNC(__res_send, ,
+ [AC_CHECK_LIB(resolv, res_send, resolv=yes,
+ [AC_CHECK_LIB(resolv, __res_send, resolv=yes)])])])
+ if test "$resolv" = yes ; then
+ RESOLVLIB=-lresolv
+ AC_DEFINE(HAVE_LIBRESOLV, 1,
+ [Define to 1 if you have the resolv library (-lresolv).])
+ else
+ RESOLVLIB=
+ fi
+ AC_CHECK_FUNC(hes_getmailhost, , [AC_CHECK_LIB(hesiod, hes_getmailhost,
+ AC_DEFINE(HAVE_LIBHESIOD, 1,
+ [Define to 1 if you have the hesiod library (-lhesiod).]),
+ :, $RESOLVLIB)])
+fi
+
# 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_HEADERS(krb5.h)
else
AC_CHECK_HEADERS(des.h,,
- AC_CHECK_HEADERS(kerberosIV/des.h,,
- AC_CHECK_HEADERS(kerberos/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)))
+ [AC_CHECK_HEADERS(kerberosIV/krb.h,,
+ [AC_CHECK_HEADERS(kerberos/krb.h)])])
fi
AC_CHECK_HEADERS(com_err.h)
fi
fi])dnl
AC_MSG_RESULT($emacs_cv_localtime_cache)
if test $emacs_cv_localtime_cache = yes; then
- AC_DEFINE(LOCALTIME_CACHE)
+ AC_DEFINE(LOCALTIME_CACHE, 1,
+ [Define to 1 if localtime caches TZ.])
fi
if test "x$HAVE_TIMEVAL" = xyes; then
-AC_CACHE_CHECK(whether gettimeofday can accept two arguments,
- emacs_cv_gettimeofday_two_arguments,
-AC_TRY_LINK([
+ AC_CHECK_FUNCS(gettimeofday)
+ if test $ac_cv_func_gettimeofday = yes; then
+ 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, 1,
+ [Define to 1 if gettimeofday accepts only one argument.])
+ fi
+ 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);
-],
- 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
+ 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_CHECK_HEADER(arpa/inet.h, , ok_so_far=no)
fi
if test $ok_so_far = yes; then
- AC_DEFINE(HAVE_INET_SOCKETS)
+ AC_DEFINE(HAVE_INET_SOCKETS, 1,
+ [Define to 1 if you have inet sockets.])
fi
if test -f /usr/lpp/X11/bin/smt.exp; then
- AC_DEFINE(HAVE_AIX_SMT_EXP)
+ AC_DEFINE(HAVE_AIX_SMT_EXP, 1,
+ [Define to 1 if the file /usr/lpp/X11/bin/smt.exp exists.])
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)
+ AC_DEFINE(HAVE_DEV_PTMX, 1, [Define to 1 if dynamic ptys are supported.])
else
AC_MSG_RESULT(no)
fi
-AC_FUNC_VFORK
+AC_FUNC_FORK
+
+# 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(archlibdir)
AC_SUBST(docdir)
AC_SUBST(bitmapdir)
+AC_SUBST(gamedir)
+AC_SUBST(gameuser)
AC_SUBST(c_switch_system)
AC_SUBST(c_switch_machine)
AC_SUBST(LD_SWITCH_X_SITE)
AC_SUBST(X_TOOLKIT_TYPE)
AC_SUBST(machfile)
AC_SUBST(opsysfile)
-AC_SUBST(RANLIB)
-
-AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "${canonical}")
-AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}")
-AC_DEFINE_UNQUOTED(config_machfile, "${machfile}")
-AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}")
-AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE})
-AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX})
-AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE, ${C_SWITCH_X_SITE})
-AC_DEFINE_UNQUOTED(UNEXEC_SRC, ${UNEXEC_SRC})
+AC_SUBST(GETLOADAVG_LIBS)
+
+AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "${canonical}",
+ [Define to the canonical Emacs configuration name.])
+AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}",
+ [Define to the options passed to configure.])
+AC_DEFINE_UNQUOTED(config_machfile, "${machfile}",
+ [Define to the used machine dependent file.])
+AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}",
+ [Define to the used os dependent file.])
+AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE},
+[Define LD_SWITCH_X_SITE to contain any special flags your loader
+ may need to deal with X Windows. For instance, if you've defined
+ HAVE_X_WINDOWS above and your X libraries aren't in a place that
+ your loader can find on its own, you might want to add "-L/..." or
+ something similar.])
+AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX},
+ [Define LD_SWITCH_X_SITE_AUX with an -R option
+ in case it's needed (for Solaris, for example).])
+AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE, ${C_SWITCH_X_SITE},
+[Define C_SWITCH_X_SITE to contain any special flags your compiler
+ may need to deal with X Windows. For instance, if you've defined
+ HAVE_X_WINDOWS above and your X include files aren't in a place
+ that your compiler can find on its own, you might want to add
+ "-I/..." or something similar.])
+AC_DEFINE_UNQUOTED(UNEXEC_SRC, ${UNEXEC_SRC},
+ [Define to the unexec source file name.])
if test "${HAVE_X_WINDOWS}" = "yes" ; then
- AC_DEFINE(HAVE_X_WINDOWS)
+ AC_DEFINE(HAVE_X_WINDOWS, 1,
+ [Define to 1 if you want to use the X window system.])
fi
if test "${USE_X_TOOLKIT}" != "none" ; then
- AC_DEFINE(USE_X_TOOLKIT)
+ AC_DEFINE(USE_X_TOOLKIT, 1, [Define to 1 if using an X toolkit.])
fi
if test "${HAVE_X11}" = "yes" ; then
- AC_DEFINE(HAVE_X11)
+ AC_DEFINE(HAVE_X11, 1,
+ [Define to 1 if you want to use version 11 of X windows.
+ Otherwise, Emacs expects to use version 10.])
fi
if test "${HAVE_XFREE386}" = "yes" ; then
- AC_DEFINE(HAVE_XFREE386)
+ AC_DEFINE(HAVE_XFREE386, 1, [Define to 1 if you're using XFree386.])
fi
if test "${HAVE_MENUS}" = "yes" ; then
- AC_DEFINE(HAVE_MENUS)
+ AC_DEFINE(HAVE_MENUS, 1,
+ [Define to 1 if you have mouse menus.
+ (This is automatic if you use X, but the option to specify it remains.)
+ It is also defined with other window systems that support xmenu.c.])
fi
if test "${GNU_MALLOC}" = "yes" ; then
- AC_DEFINE(GNU_MALLOC)
+ AC_DEFINE(GNU_MALLOC, 1,
+ [Define to 1 if you want to use the GNU memory allocator.])
fi
if test "${REL_ALLOC}" = "yes" ; then
- AC_DEFINE(REL_ALLOC)
+ AC_DEFINE(REL_ALLOC, 1,
+ [Define REL_ALLOC if you want to use the relocating allocator for
+ buffer space.])
fi
+AC_CHECK_HEADERS(nlist.h, [AC_DEFINE(NLIST_STRUCT, 1,
+ [Define to 1 if you have <nlist.h>.])])
+
+AH_TOP([/* GNU Emacs site configuration template file. -*- C -*-
+ Copyright (C) 1988, 1993, 1994, 1999, 2000 Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+
+/* No code in Emacs #includes config.h twice, but some of the code
+ intended to work with other packages as well (like gmalloc.c)
+ think they can include it as many times as they like. */
+#ifndef EMACS_CONFIG_H
+#define EMACS_CONFIG_H
+])dnl
+
+AH_BOTTOM([
+/* If we're using any sort of window system, define some consequences. */
+#ifdef HAVE_X_WINDOWS
+#define HAVE_WINDOW_SYSTEM
+#define MULTI_KBOARD
+#define HAVE_MOUSE
+#endif
+
+/* If we're using the Carbon API on Mac OS X, define a few more
+ variables as well. */
+#ifdef HAVE_CARBON
+#define HAVE_WINDOW_SYSTEM
+#define HAVE_MOUSE
+#define HAVE_MENUS
+#endif
+
+/* Define USER_FULL_NAME to return a string
+ that is the user's full name.
+ It can assume that the variable `pw'
+ points to the password file entry for this user.
+
+ At some sites, the pw_gecos field contains
+ the user's full name. If neither this nor any other
+ field contains the right thing, use pw_name,
+ giving the user's login name, since that is better than nothing. */
+#define USER_FULL_NAME pw->pw_gecos
+
+/* Define AMPERSAND_FULL_NAME if you use the convention
+ that & in the full name stands for the login id. */
+/* Turned on June 1996 supposing nobody will mind it. */
+#define AMPERSAND_FULL_NAME
+
+/* Define HAVE_SOUND if we have sound support. We know it works
+ and compiles only on the specified platforms. For others,
+ it probably doesn't make sense to try. */
+
+#if defined __FreeBSD__ || defined __NetBSD__ || defined __linux__
+#ifdef HAVE_MACHINE_SOUNDCARD_H
+#define HAVE_SOUND 1
+#endif
+#ifdef HAVE_SYS_SOUNDCARD_H
+#define HAVE_SOUND 1
+#endif
+#ifdef HAVE_SOUNDCARD_H
+#define HAVE_SOUND 1
+#endif
+#endif /* __FreeBSD__ || __NetBSD__ || __linux__ */
+
+/* If using GNU, then support inline function declarations. */
+/* Don't try to switch on inline handling as detected by AC_C_INLINE
+ generally, because even if non-gcc compilers accept `inline', they
+ may reject `extern inline'. */
+#ifdef __GNUC__
+#define INLINE __inline__
+#else
+#define INLINE
+#endif
+
+/* Include the os and machine dependent files. */
+#include config_opsysfile
+#include config_machfile
+
+/* Load in the conversion definitions if this system
+ needs them and the source file being compiled has not
+ said to inhibit this. There should be no need for you
+ to alter these lines. */
+
+#ifdef SHORTNAMES
+#ifndef NO_SHORTNAMES
+#include "../shortnames/remap.h"
+#endif /* not NO_SHORTNAMES */
+#endif /* SHORTNAMES */
+
+/* If no remapping takes place, static variables cannot be dumped as
+ pure, so don't worry about the `static' keyword. */
+#ifdef NO_REMAP
+#undef static
+#endif
+
+/* Define `subprocesses' should be defined if you want to
+ have code for asynchronous subprocesses
+ (as used in M-x compile and M-x shell).
+ These do not work for some USG systems yet;
+ for the ones where they work, the s/SYSTEM.h file defines this flag. */
+
+#ifndef VMS
+#ifndef USG
+/* #define subprocesses */
+#endif
+#endif
+
+/* SIGTYPE is the macro we actually use. */
+#ifndef SIGTYPE
+#define SIGTYPE RETSIGTYPE
+#endif
+
+#ifdef emacs /* Don't do this for lib-src. */
+/* Tell regex.c to use a type compatible with Emacs. */
+#define RE_TRANSLATE_TYPE Lisp_Object
+#define RE_TRANSLATE(TBL, C) CHAR_TABLE_TRANSLATE (TBL, C)
+#define RE_TRANSLATE_P(TBL) (XFASTINT (TBL) != 0)
+#endif
+
+/* Avoid link-time collision with system mktime if we will use our own. */
+#if ! HAVE_MKTIME || BROKEN_MKTIME
+#define mktime emacs_mktime
+#endif
+
+/* The rest of the code currently tests the CPP symbol BSTRING.
+ Override any claims made by the system-description files.
+ Note that on some SCO version it is possible to have bcopy and not bcmp. */
+#undef BSTRING
+#if defined (HAVE_BCOPY) && defined (HAVE_BCMP)
+#define BSTRING
+#endif
+
+/* Some of the files of Emacs which are intended for use with other
+ programs assume that if you have a config.h file, you must declare
+ the type of getenv.
+
+ This declaration shouldn't appear when alloca.s or Makefile.in
+ includes config.h. */
+#ifndef NOT_C_CODE
+extern char *getenv ();
+#endif
+
+#endif /* EMACS_CONFIG_H */
+
+/* These default definitions are good for almost all machines.
+ The exceptions override them in m/MACHINE.h. */
+
+#ifndef BITS_PER_CHAR
+#define BITS_PER_CHAR 8
+#endif
+
+#ifndef BITS_PER_SHORT
+#define BITS_PER_SHORT 16
+#endif
+
+/* Note that lisp.h uses this in a preprocessor conditional, so it
+ would not work to use sizeof. That being so, we do all of them
+ without sizeof, for uniformity's sake. */
+#ifndef BITS_PER_INT
+#define BITS_PER_INT 32
+#endif
+
+#ifndef BITS_PER_LONG
+#ifdef _LP64
+#define BITS_PER_LONG 64
+#else
+#define BITS_PER_LONG 32
+#endif
+#endif
+
+/* Define if the compiler supports function prototypes. It may do so
+ but not define __STDC__ (e.g. DEC C by default) or may define it as
+ zero. */
+#undef PROTOTYPES
+/* For mktime.c: */
+#ifndef __P
+# if defined PROTOTYPES
+# define __P(args) args
+# else
+# define __P(args) ()
+# endif /* GCC. */
+#endif /* __P */
+
+
+/* Don't include "string.h" or <stdlib.h> in non-C code. */
+#ifndef NOT_C_CODE
+#ifdef HAVE_STRING_H
+#include "string.h"
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#endif
+
+/* Define HAVE_X_I18N if we have usable i18n support. */
+
+#ifdef HAVE_X11R6
+#define HAVE_X_I18N
+#elif defined HAVE_X11R5 && !defined X11R5_INHIBIT_I18N
+#define HAVE_X_I18N
+#endif
+
+/* Define HAVE_X11R6_XIM if we have usable X11R6-style XIM support. */
+
+#if defined HAVE_X11R6 && !defined INHIBIT_X11R6_XIM
+#define HAVE_X11R6_XIM
+#endif
+
+/* Should we enable expensive run-time checking of data types? */
+#undef ENABLE_CHECKING
+
+#if defined __GNUC__ && (__GNUC__ > 2 \
+ || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5))
+#define NO_RETURN __attribute__ ((__noreturn__))
+#else
+#define NO_RETURN /* nothing */
+#endif
+])dnl
+
#### Report on what we decided to do.
echo "
Configured for \`${canonical}'.
\`${opsysfile}' and \`${machfile}'
What compiler should emacs be built with? ${CC} ${CFLAGS}
Should Emacs use the GNU version of malloc? ${GNU_MALLOC}${GNU_MALLOC_reason}
- Should Emacs use the relocating allocator for buffers? ${REL_ALLOC}
+ Should Emacs use a relocating allocator for buffers? ${REL_ALLOC}
+ Should Emacs use mmap(2) for buffer allocation? $use_mmap_for_buffers
What window system should Emacs use? ${window_system}
What toolkit should Emacs use? ${USE_X_TOOLKIT}"
exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`
changequote([, ])dnl
+## Check if the C preprocessor will convert `..' to `. .'. If so, set
+## CPP_NEED_TRADITIONAL to `yes' so that the code to generate Makefile
+## from Makefile.c can correctly provide the arg `-traditional' to the
+## C preprocessor.
+
+AC_EGREP_CPP(yes..yes,
+ [yes..yes],
+ CPP_NEED_TRADITIONAL=no,
+ CPP_NEED_TRADITIONAL=yes)
+
AC_OUTPUT(Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile \
man/Makefile lwlib/Makefile src/Makefile.c:src/Makefile.in \
- leim/Makefile, [
+ lisp/Makefile lispref/Makefile lispintro/Makefile leim/Makefile, [
### Make the necessary directories, if they don't exist.
for dir in etc lisp ; do
changequote([, ])dnl
echo creating src/epaths.h
-make epaths-force
+${MAKE-make} epaths-force
+
+# As of 2000-11-19, newest development versions of GNU cpp preprocess
+# `..' to `. .' unless invoked with -traditional
+
+if test "x$GCC" = xyes && test "x$CPP_NEED_TRADITIONAL" = xyes; then
+ CPPFLAGS="$CPPFLAGS -traditional"
+fi
echo creating lib-src/Makefile
( cd lib-src
sed -e '/start of cpp stuff/q' \
< Makefile.c > junk1.c
sed -e '1,/start of cpp stuff/d'\
- -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
+ -e 's,/\*\*/#\(.*\)$,/* \1 */,' \
< Makefile.c > junk.c
- $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
+ $CPP $undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
sed -e 's/^ / /' -e '/^#/d' -e '/^[ \f]*$/d' > junk2.c
cat junk1.c junk2.c > Makefile.new
rm -f junk.c junk1.c junk2.c
sed -e '/start of cpp stuff/q' \
< Makefile.c > junk1.c
sed -e '1,/start of cpp stuff/d'\
- -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
+ -e 's,/\*\*/#\(.*\)$,/* \1 */,' \
< Makefile.c > junk.c
- $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
+ $CPP $undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
sed -e 's/^ / /' -e '/^#/d' -e '/^[ \f]*$/d' > junk2.c
cat junk1.c junk2.c > Makefile.new
rm -f junk.c junk1.c junk2.c
mv -f Makefile.new Makefile
)
-if test ! -f src/.gdbinit && test -f $top_srcdir/src/.gdbinit; then
+if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then
echo creating src/.gdbinit
- echo source $top_srcdir/src/.gdbinit > src/.gdbinit
+ echo source $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"])
+], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPP_NEED_TRADITIONAL="$CPP_NEED_TRADITIONAL" CPPFLAGS="$CPPFLAGS"])
+