X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/88a806e90dc530d9134f26d527d47dc844ae5934..d4225c08140da5c1d7a73de98245ad9fc49a1b81:/configure.in diff --git a/configure.in b/configure.in index 3c9a5180d8..4176730673 100644 --- a/configure.in +++ b/configure.in @@ -3,7 +3,7 @@ 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 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 @@ -35,15 +35,19 @@ 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], +[ --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 @@ -78,6 +82,21 @@ Currently, \`yes', \`athena' and \`lucid' are synonyms.]) esac with_x_toolkit=$val ]) +AC_ARG_WITH(xpm, +[ --with-xpm use -lXpm for displaying XPM images]) +AC_ARG_WITH(jpeg, +[ --with-jpeg use -ljpeg for displaying JPEG images]) +AC_ARG_WITH(tiff, +[ --with-tiff use -ltiff for displaying TIFF images]) +AC_ARG_WITH(gif, +[ --with-gif use -lungif for displaying GIF images]) +AC_ARG_WITH(png, +[ --with-png use -lpng for displaying PNG images]) +AC_ARG_WITH(toolkit-scroll-bars, +[ --without-toolkit-scroll-bars + don't use Motif or Xaw3d scroll bars]) +AC_ARG_WITH(xim, +[ --without-xim don't use X11 XIM]) #### Make srcdir absolute, if it isn't already. It's important to #### avoid running the path through pwd unnecessary, since pwd can @@ -89,7 +108,7 @@ 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). - CDPATH= + unset CDPATH if test "${PWD}" != "" && test "`(cd ${PWD} ; sh -c pwd)`" = "`pwd`" ; then srcdir="$PWD" @@ -168,10 +187,14 @@ case "${canonical}" in m68k-*-netbsd*) # This is somewhat bogus. machine=hp9000s300 ;; + powerpc-apple-netbsd*) machine=macppc ;; mips-*-netbsd*) machine=pmax ;; + mipsel-*-netbsd*) machine=pmax ;; ns32k-*-netbsd*) machine=ns32000 ;; + powerpc-*-netbsd*) machine=macppc ;; sparc-*-netbsd*) machine=sparc ;; vax-*-netbsd*) machine=vax ;; + arm-*-netbsd*) machine=arm ;; esac ;; @@ -185,7 +208,7 @@ case "${canonical}" in mipsel-*-openbsd*) machine=pmax ;; ns32k-*-openbsd*) machine=ns32000 ;; sparc-*-openbsd*) machine=sparc ;; - vax-*-netbsd*) machine=vax ;; + vax-*-openbsd*) machine=vax ;; esac ;; @@ -212,6 +235,7 @@ case "${canonical}" in *-*-bsdi2.0* ) opsys=bsdos2 ;; *-*-bsdi2* ) opsys=bsdos2-1 ;; *-*-bsdi3* ) opsys=bsdos3 ;; + *-*-bsdi4* ) opsys=bsdos4 ;; esac ;; @@ -234,12 +258,28 @@ 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 + case "${canonical}" in + # This is necessary on 5.0 to avoid mangling src/Makefile. + # Separated out in case it causes problems on earlier versions. + alpha*-dec-osf[5-9]*) + opsys=osf5-0 + NON_GNU_CPP='cpp' ;; + esac ;; alpha*-*-linux-gnu* ) 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 @@ -322,7 +362,7 @@ case "${canonical}" in ## R this shouldn't conflict with older versions of the OS (which I ## think were named like dgux4.*). In addition, DG new AViiONs series ## uses either Motorola M88k or Intel Pentium CPUs. - i586-dg-dguxR4.* | m88k-dg-dguxR4.* | m88k-dg-dgux4* ) + m88k-dg-dguxR4.* | m88k-dg-dgux4* ) machine=aviion opsys=dgux4 ;; m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* ) @@ -337,6 +377,13 @@ case "${canonical}" in machine=aviion opsys=dgux ;; + ## Data General AViiON Intel (x86) Machines + ## Exists from 5.4.3 (current i586-dg-dguxR4.11) + ## Ehud Karni, 1998-may-30, ehud@unix.simonwiesel.co.il + i[345]86-dg-dguxR4* ) + machine=aviion-intel opsys=dgux4 + ;; + ## DECstations mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0* | mips-dec-bsd4.2* ) machine=pmax opsys=bsd4-2 @@ -399,7 +446,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* ) @@ -610,6 +658,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 @@ -670,6 +723,11 @@ case "${canonical}" in machine=tower32v3 opsys=usg5-3 ;; + ## NEC EWS4800 + mips-nec-sysv4*) + machine=ews4800 opsys=ux4800 + ;; + ## Nixdorf Targon 31 m68*-nixdorf-sysv* ) machine=targon31 opsys=usg5-2-2 @@ -728,9 +786,20 @@ case "${canonical}" in mips-sgi-irix4* ) machine=iris4d opsys=irix4-0 ;; + mips-sgi-irix6.5 ) + machine=iris4d opsys=irix6-5 + # Without defining _LANGUAGE_C, things get masked out in the headers + # so that, for instance, grepping for `free' in stdlib.h fails and + # AC_HEADER_STD_C fails. (MIPSPro 7.2.1.2m compilers, Irix 6.5.3m). + NON_GNU_CPP="/lib/cpp -D_LANGUAGE_C" + NON_GCC_TEST_OPTIONS="-D_LANGUAGE_C" + ;; mips-sgi-irix6* ) machine=iris4d opsys=irix6-0 - NON_GNU_CPP=/lib/cpp + # It's not clear whether -D_LANGUAGE_C is necessary as it is for 6.5, + # but presumably it does no harm. + NON_GNU_CPP="/lib/cpp -D_LANGUAGE_C" + # -32 probably isn't necessary in later v.6s -- anyone know which? NON_GCC_TEST_OPTIONS=-32 ;; mips-sgi-irix5.[01]* ) @@ -766,11 +835,11 @@ case "${canonical}" in ;; ## 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 @@ -820,7 +889,7 @@ case "${canonical}" in RANLIB="ar -ts" ;; *-sunos5* | *-solaris* ) - opsys=sol2-4 + opsys=sol2-5 NON_GNU_CPP=/usr/ccs/lib/cpp ;; * ) opsys=bsd4-2 ;; @@ -911,10 +980,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 ;; @@ -959,6 +1034,11 @@ case "${canonical}" in RANLIB="ar -ts" ;; + ## UXP/V + f301-fujitsu-uxpv4.1) + machine=f301 opsys=uxpv + ;; + * ) unported=yes ;; @@ -1000,10 +1080,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 @@ -1078,15 +1154,168 @@ 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 +#### Extract some information from the operating system and machine files. + +AC_CHECKING([the machine- and system-dependent files to find out + - which libraries the lib-src programs will want, and + - whether the GNU malloc routines are usable]) + +### First figure out CFLAGS (which we use for running the compiler here) +### and REAL_CFLAGS (which we use for real compilation). +### The two are the same except on a few systems, where they are made +### different to work around various lossages. For example, +### GCC 2.5 on GNU/Linux needs them to be different because it treats -g +### as implying static linking. + +### If the CFLAGS env var is specified, we use that value +### instead of the default. + +### It's not important that this name contain the PID; you can't run +### two configures in the same directory and have anything work +### anyway. +tempcname="conftest.c" + +echo ' +#include "'${srcdir}'/src/'${opsysfile}'" +#include "'${srcdir}'/src/'${machfile}'" +#ifndef LIBS_MACHINE +#define LIBS_MACHINE +#endif +#ifndef LIBS_SYSTEM +#define LIBS_SYSTEM +#endif +#ifndef C_SWITCH_SYSTEM +#define C_SWITCH_SYSTEM +#endif +#ifndef C_SWITCH_MACHINE +#define C_SWITCH_MACHINE +#endif +configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM +configure___ c_switch_system=C_SWITCH_SYSTEM +configure___ c_switch_machine=C_SWITCH_MACHINE + +#ifndef LIB_X11_LIB +#define LIB_X11_LIB -lX11 +#endif + +#ifndef LIBX11_MACHINE +#define LIBX11_MACHINE +#endif + +#ifndef LIBX11_SYSTEM +#define LIBX11_SYSTEM +#endif +configure___ LIBX=LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM + +#ifdef UNEXEC +configure___ unexec=UNEXEC +#else +configure___ unexec=unexec.o +#endif + +#ifdef SYSTEM_MALLOC +configure___ system_malloc=yes +#else +configure___ system_malloc=no +#endif + +#ifndef C_DEBUG_SWITCH +#define C_DEBUG_SWITCH -g +#endif + +#ifndef C_OPTIMIZE_SWITCH +#ifdef __GNUC__ +#define C_OPTIMIZE_SWITCH -O2 +#else +#define C_OPTIMIZE_SWITCH -O +#endif +#endif + +#ifndef LD_SWITCH_MACHINE +#define LD_SWITCH_MACHINE +#endif + +#ifndef LD_SWITCH_SYSTEM +#define LD_SWITCH_SYSTEM +#endif + +#ifndef LD_SWITCH_X_SITE_AUX +#define LD_SWITCH_X_SITE_AUX +#endif + +configure___ ld_switch_system=LD_SWITCH_SYSTEM +configure___ ld_switch_machine=LD_SWITCH_MACHINE + +#ifdef THIS_IS_CONFIGURE + +/* Get the CFLAGS for tests in configure. */ +#ifdef __GNUC__ +configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}' +#else +configure___ CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}' +#endif + +#else /* not THIS_IS_CONFIGURE */ + +/* Get the CFLAGS for real compilation. */ +#ifdef __GNUC__ +configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}' +#else +configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}' +#endif + +#endif /* not THIS_IS_CONFIGURE */ +' > ${tempcname} + +# The value of CPP is a quoted variable reference, so we need to do this +# to get its actual value... +CPP=`eval "echo $CPP"` +changequote(, )dnl +eval `${CPP} -Isrc ${tempcname} \ + | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'` +if test "x$SPECIFIED_CFLAGS" = x; then + eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \ + | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'` +else + REAL_CFLAGS="$CFLAGS" +fi +changequote([, ])dnl +rm ${tempcname} + +ac_link="$ac_link $ld_switch_machine $ld_switch_system" + +### Make sure subsequent tests use flags consistent with the build flags. + +if test x"${OVERRIDE_CPPFLAGS}" != x; then + CPPFLAGS="${OVERRIDE_CPPFLAGS}" +else + CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS" +fi + +dnl Do this early because it can frob feature test macros for Unix-98 &c. +AC_SYS_LARGEFILE + +# Sound support for GNU/Linux and the free BSDs. +AC_CHECK_HEADERS(machine/soundcard.h sys/soundcard.h soundcard.h) +# Emulation library used on NetBSD. +AC_CHECK_LIB(ossaudio, _oss_ioctl, LIBSOUND=-lossaudio, LIBSOUND=) +AC_SUBST(LIBSOUND) + dnl checks for header files -AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h linux/version.h sys/systeminfo.h termios.h limits.h) +AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \ + linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \ + termcap.h stdio_ext.h fcntl.h term.h) AC_HEADER_STDC AC_HEADER_TIME AC_DECL_SYS_SIGLIST +AC_HEADER_SYS_WAIT dnl Some systems have utime.h but don't declare the struct anyplace. AC_CACHE_CHECK(for struct utimbuf, emacs_cv_struct_utimbuf, @@ -1111,6 +1340,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 @@ -1128,12 +1365,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 @@ -1178,7 +1449,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 @@ -1213,7 +1485,7 @@ HAVE_MENUS=no case ${HAVE_X11} in yes ) HAVE_MENUS=yes ;; esac - + if test "${opsys}" = "hpux9"; then case "${x_libraries}" in *X11R4* ) @@ -1230,132 +1502,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/'`" @@ -1390,17 +1536,6 @@ if test x"${REL_ALLOC}" = x; then REL_ALLOC=${GNU_MALLOC} fi -LISP_FLOAT_TYPE=yes - - -#### Add the libraries to LIBS and check for some functions. - -if test x"${OVERRIDE_CPPFLAGS}" != x; then - CPPFLAGS="${OVERRIDE_CPPFLAGS}" -else - CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS" -fi - LIBS="$libsrc_libs $LIBS" dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks, @@ -1415,7 +1550,7 @@ AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd") AC_CHECK_LIB(pthreads, cma_open) -AC_MSG_CHECKING(for XFree86) +AC_MSG_CHECKING(for XFree86 in /usr/X386) if test -d /usr/X386/include; then HAVE_XFREE386=yes : ${C_SWITCH_X_SITE="-I/usr/X386/include"} @@ -1427,11 +1562,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, @@ -1581,6 +1719,144 @@ Motif version prior to 2.1. HAVE_MOTIF_2_1=$emacs_cv_motif_version_2_1 if test $emacs_cv_motif_version_2_1 = yes; then AC_DEFINE(HAVE_MOTIF_2_1) + AC_CHECK_LIB(Xp, XpCreateContext, HAVE_LIBXP=yes, , -lXext) + if test ${HAVE_LIBXP} = yes; then + AC_DEFINE(HAVE_LIBXP) + fi + fi +fi + +### Is -lXaw3d available? +HAVE_XAW3D=no +if test "${HAVE_X11}" = "yes"; then + if test "${USE_X_TOOLKIT}" != "none"; then + old_c_flags="${CFLAGS}" + CFLAGS="${LD_SWITCH_X_SITE}" + AC_CHECK_HEADER(X11/Xaw3d/Scrollbar.h, + AC_CHECK_LIB(Xaw3d, XawScrollbarSetThumb, HAVE_XAW3D=yes, , -lX11)) + CFLAGS="${old_c_flags}" + + if test "${HAVE_XAW3D}" = "yes"; then + AC_DEFINE(HAVE_XAW3D) + fi + fi +fi + +dnl Use toolkit scroll bars if configured for X toolkit and either +dnl using Motif or Xaw3d is available, and unless +dnl --with-toolkit-scroll-bars=no was specified. + +USE_TOOLKIT_SCROLL_BARS=no +if test "${with_toolkit_scroll_bars}" != "no"; then + if test "${USE_X_TOOLKIT}" != "none"; then + if test "${USE_X_TOOLKIT}" = "MOTIF"; then + AC_DEFINE(USE_TOOLKIT_SCROLL_BARS) + HAVE_XAW3D=no + USE_TOOLKIT_SCROLL_BARS=yes + elif test "${HAVE_XAW3D}" = "yes"; then + AC_DEFINE(USE_TOOLKIT_SCROLL_BARS) + USE_TOOLKIT_SCROLL_BARS=yes + fi + fi +fi + +dnl Don't use X11 input methods if user specifies he doesn't want it +dnl with `--with-xim=no'. + +if test "${with_xim}" != "no"; then + AC_DEFINE(USE_XIM) +fi + +### Use -lXpm if available, unless `--with-xpm=no'. +HAVE_XPM=no +if test "${HAVE_X11}" = "yes"; then + if test "${with_xpm}" != "no"; then + old_c_flags="${CFLAGS}" + CFLAGS="${LD_SWITCH_X_SITE}" + AC_CHECK_HEADER(X11/xpm.h, + AC_CHECK_LIB(Xpm, XpmReadFileToPixmap, HAVE_XPM=yes, , -lX11)) + if test "${HAVE_XPM}" = "yes"; then + AC_EGREP_CPP(no_return_alloc_pixels, + [#include "X11/xpm.h" +#ifndef XpmReturnAllocPixels +no_return_alloc_pixels +#endif + ], HAVE_XPM=no, HAVE_XPM=yes) + fi + CFLAGS="${old_c_flags}" + fi + + if test "${HAVE_XPM}" = "yes"; then + AC_DEFINE(HAVE_XPM) + fi +fi + +### Use -ljpeg if available, unless `--with-jpeg=no'. +HAVE_JPEG=no +if test "${HAVE_X11}" = "yes"; then + if test "${with_jpeg}" != "no"; then + old_c_flags="${CFLAGS}" + CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}" + dnl Checking for jpeglib.h can lose becsue of a redefinition of + dnl HAVE_STDLIB_H. + AC_CHECK_HEADER(jerror.h, + AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes, , -lX11)) + CFLAGS="${old_c_flags}" + fi + + if test "${HAVE_JPEG}" = "yes"; then + AC_DEFINE(HAVE_JPEG) + fi +fi + +### Use -lpng if available, unless `--with-png=no'. +HAVE_PNG=no +if test "${HAVE_X11}" = "yes"; then + if test "${with_png}" != "no"; then + old_c_flags="${CFLAGS}" + CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}" + AC_CHECK_HEADER(png.h, + AC_CHECK_LIB(png, png_set_expand, HAVE_PNG=yes, , -lX11 -lz -lm)) + CFLAGS="${old_c_flags}" + fi + + if test "${HAVE_PNG}" = "yes"; then + AC_DEFINE(HAVE_PNG) + fi +fi + +### Use -ltiff if available, unless `--with-tiff=no'. +HAVE_TIFF=no +if test "${HAVE_X11}" = "yes"; then + if test "${with_tiff}" != "no"; then + old_c_flags="${CFLAGS}" + CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}" + AC_CHECK_HEADER(tiffio.h, + tifflibs="-lX11 -lz -lm" + # At least one tiff package requires the jpeg library. + if test "${HAVE_JPEG}" = yes; then tifflibs="-ljpeg $tifflibs"; fi + AC_CHECK_LIB(tiff, TIFFGetVersion, HAVE_TIFF=yes, , $tifflibs)) + CFLAGS="${old_c_flags}" + fi + + if test "${HAVE_TIFF}" = "yes"; then + AC_DEFINE(HAVE_TIFF) + fi +fi + +### Use -lgif if available, unless `--with-gif=no'. +HAVE_GIF=no +if test "${HAVE_X11}" = "yes"; then + if test "${with_gif}" != "no"; then + old_c_flags="${CFLAGS}" + CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}" + AC_CHECK_HEADER(gif_lib.h, + AC_CHECK_LIB(ungif, DGifOpen, HAVE_GIF=yes, , -lX11)) + CFLAGS="${old_c_flags}" + fi + + if test "${HAVE_GIF}" = "yes"; then + AC_DEFINE(HAVE_GIF) fi fi @@ -1601,16 +1877,51 @@ AC_FUNC_ALLOCA 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 \ +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) +utimes setrlimit setpgid getcwd getwd shutdown strftime getaddrinfo \ +__fpending mblen mbrlen strsignal setitimer ualarm) + +AC_FUNC_MKTIME +if test "$ac_cv_func_working_mktime" = no; then + AC_DEFINE(BROKEN_MKTIME) +fi + +AC_FUNC_GETLOADAVG + +AC_CHECK_FUNCS(ftello) + +# UNIX98 PTYs. AC_SYS_LARGEFILE should have defined _XOPEN_SOURCE +# if we need it. +AC_CHECK_FUNCS(grantpt) + +# PTY-related GNU extensions. +AC_CHECK_FUNCS(getpt) # Check this now, so that we will NOT find the above functions in ncurses. # That is because we have not set up to link ncurses in lib-src. @@ -1621,13 +1932,14 @@ 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(des, des_cbc_encrypt,, - AC_CHECK_LIB(des425, des_cbc_encrypt)) - AC_CHECK_LIB(krb, krb_get_cred,, - AC_CHECK_LIB(krb4, krb_get_cred)) + 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 @@ -1651,9 +1963,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 () { @@ -1695,9 +2004,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 @@ -1707,20 +2017,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 @@ -1737,8 +2072,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. @@ -1780,7 +2129,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}") @@ -1812,9 +2161,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 " @@ -1840,6 +2186,13 @@ else 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. @@ -1852,10 +2205,10 @@ changequote([, ])dnl AC_OUTPUT(Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile \ man/Makefile lwlib/Makefile src/Makefile.c:src/Makefile.in \ - leim/Makefile, [ + lisp/Makefile leim/Makefile, [ ### Make the necessary directories, if they don't exist. -for dir in cpp etc lisp ; do +for dir in etc lisp ; do test -d ${dir} || mkdir ${dir} done @@ -1876,8 +2229,8 @@ sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/ *$//' \ `" changequote([, ])dnl -echo creating src/paths.h -make paths-force +echo creating src/epaths.h +make epaths-force echo creating lib-src/Makefile ( cd lib-src