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
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])
#### Make srcdir absolute, if it isn't already. It's important to
#### avoid running the path through pwd unnecessary, since pwd can
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
;;
# 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]*)
+ NON_GNU_CPP='cc -E -std0' ;;
+ esac
;;
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
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
;;
mips-sgi-irix6.5 )
machine=iris4d opsys=irix6-5
- NON_GNU_CPP=/lib/cpp
- NON_GCC_TEST_OPTIONS="-n32 -G0"
+ # 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="-n32 -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"
NON_GCC_TEST_OPTIONS=-32
;;
mips-sgi-irix5.[01]* )
;;
## 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
esac
fi
-if test "x$RANLIB" = x; then
- RANLIB=ranlib
-fi
-
changequote([, ])dnl
if test $unported = yes; 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)
+
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)
+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)
AC_HEADER_STDC
AC_HEADER_TIME
AC_DECL_SYS_SIGLIST
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
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* )
#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
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
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
+
+### 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}"
+ 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_CACHE_CHECK(whether netdb declares h_errno,
emacs_cv_netdb_declares_h_errno,
AC_CHECK_LIB(m, sqrt)
# Check for mail-locking functions in a "mail" library
-AC_CHECK_LIB(mail, maillock,
- AC_DEFINE(HAVE_LIBMAIL)
- AC_CHECK_FUNCS(touchlock)
- AC_CHECK_HEADERS(maillock.h))
+AC_CHECK_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(gettimeofday gethostname getdomainname dup2 \
rename closedir mkdir rmdir sysinfo \
random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime res_init setsid \
strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \
-utimes setrlimit setpgid getcwd shutdown strftime)
+utimes setrlimit setpgid getcwd shutdown strftime getaddrinfo \
+__fpending ftello getloadavg mblen mbrlen strsignal setitimer ualarm)
+
+AC_FUNC_MKTIME
+if test "$ac_cv_func_working_mktime" = no; then
+ AC_DEFINE(BROKEN_MKTIME)
+fi
# 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_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 ()
{
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
+
# Set up the CFLAGS for real compilation, so we can substitute it.
CFLAGS="$REAL_CFLAGS"
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}")
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.