X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/0be97a727d5476cb7ee1398b56bc27f64473c647..7b16a6bf075b9d77cd28ec59cc7059d8977802f5:/configure.in diff --git a/configure.in b/configure.in index 1b5556afbe..00d283daac 100644 --- a/configure.in +++ b/configure.in @@ -3,7 +3,8 @@ dnl To rebuild the `configure' script from this, execute the command 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 +dnl Free Software Foundation, Inc. dnl dnl This file is part of GNU Emacs. dnl @@ -35,10 +36,26 @@ 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)]) @@ -76,23 +93,24 @@ 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(sound, -[ --with-sound native sound support for GNU/Linux and free BSDs]) AC_ARG_WITH(toolkit-scroll-bars, -[ --with-toolkit-scroll-bars 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]) #### 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`" ; + if test ".${PWD}" != "." && test ".`(cd ${PWD} ; sh -c pwd)`" = ".${PWD}" ; then srcdir="$PWD" else @@ -172,9 +190,12 @@ case "${canonical}" in machine=hp9000s300 ;; powerpc-apple-netbsd*) machine=macppc ;; mips-*-netbsd*) machine=pmax ;; + mipsel-*-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 ;; @@ -208,7 +229,7 @@ case "${canonical}" in 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 ;; @@ -238,12 +259,30 @@ case "${canonical}" in # 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* ) machine=alpha opsys=gnu-linux ;; + arm*-*-linux-gnu* ) + machine=arm opsys=gnu-linux + ;; + + ppc-*-linux | \ + powerpc-*-linux* ) + machine=macppc opsys=gnu-linux + ;; + ## Altos 3068 m68*-altos-sysv* ) machine=altos opsys=usg5-2 @@ -410,7 +449,8 @@ case "${canonical}" in 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* ) @@ -621,6 +661,11 @@ case "${canonical}" in 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 @@ -746,12 +791,18 @@ case "${canonical}" in ;; 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="-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]* ) @@ -791,7 +842,7 @@ case "${canonical}" in 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 @@ -932,10 +983,16 @@ 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 ;; @@ -1026,10 +1083,6 @@ if test x"${opsys}" = x; then esac fi -if test "x$RANLIB" = x; then - RANLIB=ranlib -fi - changequote([, ])dnl if test $unported = yes; then @@ -1104,23 +1157,174 @@ AC_PROG_LN_S 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. -if test "${with_sound}" = ""; then - with_sound=no +#### 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 -if test "${with_sound}" != "no"; then - AC_CHECK_HEADERS(machine/soundcard.h sys/soundcard.h) +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 sys/systeminfo.h termios.h limits.h string.h stdlib.h termcap.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 strings.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, @@ -1145,6 +1349,14 @@ 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 ], [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 @@ -1162,12 +1374,46 @@ 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 ], +[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 ], [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 @@ -1189,10 +1435,13 @@ if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then 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 @@ -1212,7 +1461,8 @@ else 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 @@ -1264,132 +1514,6 @@ if test "${opsys}" = "hpux9shr"; then 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/'`" @@ -1424,15 +1548,13 @@ 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. +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" @@ -1461,11 +1583,14 @@ AC_MSG_RESULT($HAVE_XFREE386) # 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, @@ -1511,6 +1636,18 @@ if test "${HAVE_X11}" = "yes"; then 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 +#include ], + [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) + fi + AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \ XScreenNumberOfScreen XSetWMProtocols) fi @@ -1600,7 +1737,14 @@ dnl tranle@intellicorp.com says libXmu.a can need XtMalloc in libXt.a to link. 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 @@ -1614,8 +1758,12 @@ Motif version prior to 2.1. 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 + HAVE_LIBXP=no AC_DEFINE(HAVE_MOTIF_2_1) - AC_CHECK_LIB(Xp, XpCreateContext) + AC_CHECK_LIB(Xp, XpCreateContext, HAVE_LIBXP=yes) + if test ${HAVE_LIBXP} = yes; then + AC_DEFINE(HAVE_LIBXP) + fi fi fi @@ -1623,12 +1771,8 @@ 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) fi @@ -1653,15 +1797,34 @@ if test "${with_toolkit_scroll_bars}" != "no"; 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) +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 @@ -1673,10 +1836,10 @@ 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}" - AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes, , -lX11) - CFLAGS="${old_c_flags}" + 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)) fi if test "${HAVE_JPEG}" = "yes"; then @@ -1688,11 +1851,8 @@ 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 @@ -1704,11 +1864,11 @@ 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, - AC_CHECK_LIB(tiff, TIFFGetVersion, HAVE_TIFF=yes, , -lX11 -lm)) - CFLAGS="${old_c_flags}" + 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)) fi if test "${HAVE_TIFF}" = "yes"; then @@ -1720,11 +1880,8 @@ 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, DGifOpenFileName, HAVE_GIF=yes, , -lX11)) - CFLAGS="${old_c_flags}" + AC_CHECK_LIB(ungif, DGifOpen, HAVE_GIF=yes)) fi if test "${HAVE_GIF}" = "yes"; then @@ -1772,11 +1929,28 @@ 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) +utimes setrlimit setpgid getcwd getwd shutdown strftime getaddrinfo \ +__fpending mblen mbrlen strsignal setitimer ualarm index rindex \ +gai_strerror mkstemp) + +AC_FUNC_MKTIME +if test "$ac_cv_func_working_mktime" = no; then + AC_DEFINE(BROKEN_MKTIME) +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. @@ -1784,6 +1958,32 @@ utimes setrlimit setpgid getcwd shutdown strftime getaddrinfo) # 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) @@ -1792,9 +1992,6 @@ 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 -#if STDC_HEADERS -# include -#endif extern char **environ; unset_TZ () { @@ -1836,9 +2033,10 @@ if test $emacs_cv_localtime_cache = yes; then 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) + AC_CACHE_CHECK(whether gettimeofday can accept two arguments, + emacs_cv_gettimeofday_two_arguments, + AC_TRY_COMPILE([ #ifdef TIME_WITH_SYS_TIME #include #include @@ -1848,20 +2046,45 @@ AC_TRY_LINK([ #else #include #endif -#endif - ], - [ - struct timeval time; - struct timezone dummy; - gettimeofday (&time, &dummy); -], - emacs_cv_gettimeofday_two_arguments=yes, - emacs_cv_gettimeofday_two_arguments=no)) +#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 ], + [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 +#include +#else +#ifdef HAVE_SYS_TIME_H +#include +#else +#include +#endif +#endif +main () { + struct timeval time; + struct timezone dummy; + 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_FUNC(socket, , ok_so_far=no) if test $ok_so_far = yes; then @@ -1878,8 +2101,22 @@ if test -f /usr/lpp/X11/bin/smt.exp; then 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. @@ -1921,7 +2158,7 @@ AC_SUBST(CFLAGS) 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}") @@ -1953,9 +2190,6 @@ fi 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 " @@ -1966,7 +2200,8 @@ 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}" @@ -1998,9 +2233,19 @@ test "${exec_prefix}" != NONE && 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 leim/Makefile, [ ### Make the necessary directories, if they don't exist. for dir in etc lisp ; do @@ -2027,6 +2272,13 @@ changequote([, ])dnl echo creating src/epaths.h 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 rm -f junk.c junk1.c junk2.c @@ -2067,4 +2319,5 @@ 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"]) +