dnl autoconf
dnl in the directory containing this script.
dnl
-dnl Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
+dnl Copyright (C) 1994, 1995, 1996, 1999, 2000 Free Software Foundation, Inc.
dnl
dnl This file is part of GNU Emacs.
dnl
dnl GNU General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
-dnl along with GNU Emacs; see the file COPYING. If not, write to
-dnl the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+dnl along with GNU Emacs; see the file COPYING. If not, write to the
+dnl Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+dnl Boston, MA 02111-1307, USA.
AC_PREREQ(2.8)dnl
AC_INIT(src/lisp.h)
lispdir='${datadir}/emacs/${version}/lisp'
locallisppath='${datadir}/emacs/${version}/site-lisp:'\
-'${datadir}/emacs/site-lisp'
+'${datadir}/emacs/site-lisp:${datadir}/emacs/${version}/leim'
lisppath='${locallisppath}:${lispdir}'
etcdir='${datadir}/emacs/${version}/etc'
-lockdir='${sharedstatedir}/emacs/lock'
archlibdir='${libexecdir}/emacs/${version}/${configuration}'
docdir='${datadir}/emacs/${version}/etc'
AC_ARG_WITH(gcc,
-[ --with-gcc use GCC to compile Emacs])
+[ --without-gcc don't use GCC to compile Emacs if GCC is found])
AC_ARG_WITH(pop,
-[ --with-pop support POP for mail retrieval],
-[AC_DEFINE(MAIL_USE_POP)])
+[ --without-pop don't support POP mail retrieval with movemail],
+[if test "$withval" = yes; then
+ AC_DEFINE(MAIL_USE_POP)
+else :
+fi],
+AC_DEFINE(MAIL_USE_POP))
AC_ARG_WITH(kerberos,
[ --with-kerberos support Kerberos-authenticated POP],
[AC_DEFINE(KERBEROS)])
+AC_ARG_WITH(kerberos5,
+[ --with-kerberos5 support Kerberos version 5 authenticated POP],
+[if test "${with_kerberos5+set}" = set; then
+ if test "${with_kerberos+set}" != set; then
+ with_kerberos=yes
+ AC_DEFINE(KERBEROS)
+ fi
+fi
+AC_DEFINE(KERBEROS5)])
AC_ARG_WITH(hesiod,
[ --with-hesiod support Hesiod to get the POP server host],
[AC_DEFINE(HESIOD)])
esac
with_x_toolkit=$val
])
+AC_ARG_WITH(xpm,
+[ --with-xpm use -lXpm for displaying XPM images])
+AC_ARG_WITH(jpeg,
+[ --with-jpeg use -ljpeg for displaying JPEG images])
+AC_ARG_WITH(tiff,
+[ --with-tiff use -ltiff for displaying TIFF images])
+AC_ARG_WITH(gif,
+[ --with-gif use -lungif for displaying GIF images])
+AC_ARG_WITH(png,
+[ --with-png use -lpng for displaying PNG images])
+AC_ARG_WITH(toolkit-scroll-bars,
+[ --without-toolkit-scroll-bars
+ don't use Motif or Xaw3d scroll bars])
#### Make srcdir absolute, if it isn't already. It's important to
#### avoid running the path through pwd unnecessary, since pwd can
## We may be able to use the $PWD environment variable to make this
## absolute. But sometimes PWD is inaccurate.
## Make sure CDPATH doesn't affect cd (in case PWD is relative).
- CDPATH=
+ unset CDPATH
if test "${PWD}" != "" && test "`(cd ${PWD} ; sh -c pwd)`" = "`pwd`" ;
then
srcdir="$PWD"
*-*-netbsd* )
opsys=netbsd
case "${canonical}" in
+ alpha*-*-netbsd*) machine=alpha ;;
i[3456]86-*-netbsd*) machine=intel386 ;;
m68k-*-netbsd*)
# This is somewhat bogus.
machine=hp9000s300 ;;
+ powerpc-apple-netbsd*) machine=macppc ;;
mips-*-netbsd*) machine=pmax ;;
+ mipsel-*-netbsd*) machine=pmax ;;
ns32k-*-netbsd*) machine=ns32000 ;;
+ powerpc-*-netbsd*) machine=macppc ;;
sparc-*-netbsd*) machine=sparc ;;
+ vax-*-netbsd*) machine=vax ;;
+ arm-*-netbsd*) machine=arm ;;
+ esac
+ ;;
+
+ ## OpenBSD ports
+ *-*-openbsd* )
+ opsys=openbsd
+ case "${canonical}" in
+ alpha*-*-openbsd*) machine=alpha ;;
+ i386-*-openbsd*) machine=intel386 ;;
+ m68k-*-openbsd*) machine=hp9000s300 ;;
+ mipsel-*-openbsd*) machine=pmax ;;
+ ns32k-*-openbsd*) machine=ns32000 ;;
+ sparc-*-openbsd*) machine=sparc ;;
+ vax-*-openbsd*) machine=vax ;;
esac
;;
machine=acorn opsys=riscix1-1
;;
arm-acorn-riscix1.2* | arm-acorn-riscix )
- machine=acorn opsys=riscix1-2
+ ## This name is riscix12 instead of riscix1.2
+ ## to avoid a file name conflict on MSDOS.
+ machine=acorn opsys=riscix12
+ ;;
+
+ ## BSDI ports
+ *-*-bsdi* )
+ opsys=bsdi
+ case "${canonical}" in
+ i[345]86-*-bsdi*) machine=intel386 ;;
+ sparc-*-bsdi*) machine=sparc ;;
+ powerpc-*-bsdi*) machine=powerpc ;;
+ esac
+ case "${canonical}" in
+ *-*-bsd386* | *-*-bsdi1* ) opsys=bsd386 ;;
+ *-*-bsdi2.0* ) opsys=bsdos2 ;;
+ *-*-bsdi2* ) opsys=bsdos2-1 ;;
+ *-*-bsdi3* ) opsys=bsdos3 ;;
+ *-*-bsdi4* ) opsys=bsdos4 ;;
+ esac
;;
## Alliant machines
;;
## Alpha (DEC) machines.
- alpha-dec-osf* )
+ alpha*-dec-osf* )
machine=alpha opsys=osf1
+ # This is needed to find X11R6.1 libraries for certain tests.
+ NON_GCC_LINK_TEST_OPTIONS=-Wl,-rpath,/usr/X11R6/lib
+ GCC_LINK_TEST_OPTIONS=-Wl,-rpath,/usr/X11R6/lib
+ case "${canonical}" in
+ # This is necessary on 5.0 to avoid mangling src/Makefile.
+ # Separated out in case it causes problems on earlier versions.
+ alpha*-dec-osf[5-9]*)
+ NON_GNU_CPP='cc -E -std0' ;;
+ esac
;;
- alpha-*-linux-gnu* )
+ alpha*-*-linux-gnu* )
machine=alpha opsys=gnu-linux
;;
+ arm*-*-linux-gnu* )
+ machine=arm opsys=gnu-linux
+ ;;
+
+ ppc-*-linux | \
+ powerpc-*-linux* )
+ machine=powerpc opsys=gnu-linux
+ ;;
+
## Altos 3068
m68*-altos-sysv* )
machine=altos opsys=usg5-2
;;
## Data General AViiON Machines
+ ## DG changed naming conventions with the release of 5.4.4.10, they
+ ## dropped the initial 5.4 but left the intervening R. Because of the
+ ## R this shouldn't conflict with older versions of the OS (which I
+ ## think were named like dgux4.*). In addition, DG new AViiONs series
+ ## uses either Motorola M88k or Intel Pentium CPUs.
+ m88k-dg-dguxR4.* | m88k-dg-dgux4* )
+ machine=aviion opsys=dgux4
+ ;;
m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* )
- machine=aviion opsys=dgux5-4r3
+ ## This name is dgux5-4-3 instead of dgux5-4r3
+ ## to avoid a file name conflict on MSDOS.
+ machine=aviion opsys=dgux5-4-3
;;
m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* )
machine=aviion opsys=dgux5-4r2
machine=aviion opsys=dgux
;;
+ ## Data General AViiON Intel (x86) Machines
+ ## Exists from 5.4.3 (current i586-dg-dguxR4.11)
+ ## Ehud Karni, 1998-may-30, ehud@unix.simonwiesel.co.il
+ i[345]86-dg-dguxR4* )
+ machine=aviion-intel opsys=dgux4
+ ;;
+
## DECstations
mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0* | mips-dec-bsd4.2* )
machine=pmax opsys=bsd4-2
machine=nh6000 opsys=powerunix
NON_GNU_CPP="cc -Xo -E -P"
;;
-
+ ## SR2001/SR2201 running HI-UX/MPP
+ hppa1.1-hitachi-hiuxmpp* )
+ machine=sr2k opsys=hiuxmpp
+ ;;
## Honeywell XPS100
xps*-honeywell-sysv* )
machine=xps100 opsys=usg5-2
*.B8.* ) machine=hp9000s300 opsys=hpux8 ;;
*.08.* ) machine=hp9000s300 opsys=hpux8 ;;
*.09.* ) machine=hp9000s300 opsys=hpux9 ;;
- *.10.* ) machine=hp9000s300 opsys=hpux9shr ;;
+ *.1[0-9].* ) machine=hp9000s300 opsys=hpux9shr ;;
*) machine=hp9000s300 opsys=hpux ;;
esac
;;
hppa*-hp-hpux9* )
machine=hp800 opsys=hpux9
;;
- hppa*-hp-hpux10* )
+ hppa*-hp-hpux1[0-9]* )
machine=hp800 opsys=hpux10
;;
*.B8.* ) machine=hp800 opsys=hpux8 ;;
*.08.* ) machine=hp800 opsys=hpux8 ;;
*.09.* ) machine=hp800 opsys=hpux9 ;;
- *) machine=hp800 opsys=hpux ;;
+ *) machine=hp800 opsys=hpux10 ;;
esac
;;
- hppa-*-nextstep* )
+ hppa*-*-nextstep* )
machine=hp800 opsys=nextstep
;;
rs6000-ibm-aix4.1* | powerpc-ibm-aix4.1* )
machine=ibmrs6000 opsys=aix4-1
;;
- rs6000-ibm-aix4* | powerpc-ibm-aix4* )
+ rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2* )
+ machine=ibmrs6000 opsys=aix4-2
+ ;;
+ rs6000-ibm-aix4.0* | powerpc-ibm-aix4.0* )
machine=ibmrs6000 opsys=aix4
;;
+ rs6000-ibm-aix4* | powerpc-ibm-aix4* )
+ machine=ibmrs6000 opsys=aix4-1
+ ;;
rs6000-ibm-aix* | powerpc-ibm-aix* )
machine=ibmrs6000 opsys=aix3-2
;;
machine=symmetry opsys=bsd4-3
;;
+ ## Sequent Symmetry running ptx 4, which is a modified SVR4.
+ i[3456]86-sequent-ptx4* | i[3456]86-sequent-sysv4* )
+ machine=sequent-ptx opsys=ptx4
+ NON_GNU_CPP=/lib/cpp
+ ;;
+
## Sequent Symmetry running DYNIX/ptx
## Use the old cpp rather than the newer ANSI one.
i[3456]86-sequent-ptx* )
NON_GNU_CPP="/lib/cpp"
;;
+ ## ncr machine running svr4.3.
+ i[3456]86-ncr-sysv4.3 )
+ machine=ncr386 opsys=usg5-4-3
+ ;;
+
## Unspecified sysv on an ncr machine defaults to svr4.2.
## (Plain usg5-4 doesn't turn on POSIX signals, which we need.)
i[3456]86-ncr-sysv* )
machine=tower32v3 opsys=usg5-3
;;
+ ## NEC EWS4800
+ mips-nec-sysv4*)
+ machine=ews4800 opsys=ux4800
+ ;;
+
## Nixdorf Targon 31
m68*-nixdorf-sysv* )
machine=targon31 opsys=usg5-2-2
machine=plexus opsys=usg5-2
;;
+ ## PowerPC reference platform
+ powerpcle-*-solaris2* )
+ machine=prep
+ opsys=sol2-5
+ ;;
+
## Pyramid machines
## I don't really have any idea what sort of processor the Pyramid has,
## so I'm assuming it is its own architecture.
mips-sgi-irix4* )
machine=iris4d opsys=irix4-0
;;
+ mips-sgi-irix6.5 )
+ machine=iris4d opsys=irix6-5
+ # Without defining _LANGUAGE_C, things get masked out in the headers
+ # so that, for instance, grepping for `free' in stdlib.h fails and
+ # AC_HEADER_STD_C fails. (MIPSPro 7.2.1.2m compilers, Irix 6.5.3m).
+ NON_GNU_CPP="/lib/cpp -D_LANGUAGE_C"
+ NON_GCC_TEST_OPTIONS="-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]* )
mips-sony-bsd* | mips-sony-newsos4* | mips-sony-news4*)
machine=news-risc opsys=bsd4-3
;;
+ mips-sony-newsos6* )
+ machine=news-r6 opsys=newsos6
+ ;;
mips-sony-news* )
machine=news-risc opsys=newsos5
;;
;;
## Suns
- sparc-*-linux-gnu* )
+ sparc-*-linux-gnu* | sparc64-*-linux-gnu* )
machine=sparc opsys=gnu-linux
;;
- *-sun-sunos* | *-sun-bsd* | *-sun-solaris* \
+ *-auspex-sunos* | *-sun-sunos* | *-sun-bsd* | *-sun-solaris* \
| i[3456]86-*-solaris2* | i[3456]86-*-sunos5* | powerpc*-*-solaris2* \
| rs6000-*-solaris2*)
case "${canonical}" in
m68* ) machine=sun3 ;;
i[3456]86-sun-sunos[34]* ) machine=sun386 ;;
i[3456]86-*-* ) machine=intel386 ;;
+ powerpcle* ) machine=powerpcle ;;
powerpc* | rs6000* ) machine=ibmrs6000 ;;
sparc* ) machine=sparc ;;
* ) unported=yes ;;
## The Sun386 didn't get past 4.0.
i[3456]86-*-sunos4 ) opsys=sunos4-0 ;;
*-sunos4.0* ) opsys=sunos4-0 ;;
- *-sunos4.1.[3-9]* | *-sunos4shr*)
- opsys=sunos4shr
- NON_GNU_CPP=/usr/lib/cpp
- ;;
*-sunos4.1.[3-9]*noshare )
- opsys=sunos4-1-3
+ ## This name is sunos413 instead of sunos4-1-3
+ ## to avoid a file name conflict on MSDOS.
+ opsys=sunos413
NON_GNU_CPP=/usr/lib/cpp
NON_GCC_TEST_OPTIONS=-Bstatic
GCC_TEST_OPTIONS=-static
;;
+ *-sunos4.1.[3-9]* | *-sunos4shr*)
+ opsys=sunos4shr
+ NON_GNU_CPP=/usr/lib/cpp
+ ;;
*-sunos4* | *-sunos )
opsys=sunos4-1
NON_GCC_TEST_OPTIONS=-Bstatic
RANLIB="ar -ts"
;;
*-sunos5* | *-solaris* )
- opsys=sol2-4
+ opsys=sol2-5
NON_GNU_CPP=/usr/ccs/lib/cpp
;;
* ) opsys=bsd4-2 ;;
NON_GNU_CPP=/lib/cpp
# Prevent -belf from being passed to $CPP.
# /lib/cpp does not accept it.
- OVERRIDE_CPPFLAGS=
+ OVERRIDE_CPPFLAGS=" "
;;
- *-bsd386* | *-bsdi1* ) opsys=bsd386 ;;
- *-bsdi2.0* ) opsys=bsdos2 ;;
- *-bsdi2* ) opsys=bsdos2-1 ;;
+ *-sysv4.2uw* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
*-386bsd* ) opsys=386bsd ;;
*-freebsd* ) opsys=freebsd ;;
*-nextstep* ) opsys=nextstep ;;
esac
;;
- ## Linux/68k-based GNU system
+ ## m68k Linux-based GNU system
m68k-*-linux-gnu* )
machine=m68k opsys=gnu-linux
;;
+ ## Mips Linux-based GNU system
+ mips-*-linux-gnu* )
+ machine=mips opsys=gnu-linux
+ ;;
+
+ ## UXP/DS
+ sparc-fujitsu-sysv4* )
+ machine=sparc opsys=uxpds
+ NON_GNU_CPP=/usr/ccs/lib/cpp
+ RANLIB="ar -ts"
+ ;;
+
+ ## UXP/V
+ f301-fujitsu-uxpv4.1)
+ machine=f301 opsys=uxpv
+ ;;
+
* )
unported=yes
;;
*-sysv2 | *-sysvr2 ) opsys=usg5-2 ;;
*-sysv2.2 | *-sysvr2.2 ) opsys=usg5-2-2 ;;
*-sysv3* | *-sysvr3* ) opsys=usg5-3 ;;
+ *-sysv4.2uw* ) opsys=unixware ;;
*-sysv4.1* | *-sysvr4.1* )
NON_GNU_CPP=/usr/lib/cpp
opsys=usg5-4 ;;
esac
fi
-if test "x$RANLIB" = x; then
- RANLIB=ranlib
-fi
-
changequote([, ])dnl
if test $unported = yes; then
CC="$CC $NON_GCC_TEST_OPTIONS"
fi
+if test x$GCC = xyes && test "x$GCC_LINK_TEST_OPTIONS" != x
+then
+ ac_link="$ac_link $GCC_LINK_TEST_OPTIONS"
+fi
+
+if test x$GCC = x && test "x$NON_GCC_LINK_TEST_OPTIONS" != x
+then
+ ac_link="$ac_link $NON_GCC_LINK_TEST_OPTIONS"
+fi
+
#### Some other nice autoconf tests. If you add a test here which
#### should make an entry in src/config.h, don't forget to add an
#### #undef clause to src/config.h.in for autoconf to modify.
AC_PROG_CPP
AC_PROG_INSTALL
AC_PROG_YACC
+if test "x$RANLIB" = x; then
+ AC_PROG_RANLIB
+fi
dnl checks for Unix variants
AC_AIX
+# 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)
+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 Some systems have utime.h but don't declare the struct anyplace.
-AC_MSG_CHECKING(for struct utimbuf)
+AC_CACHE_CHECK(for struct utimbuf, emacs_cv_struct_utimbuf,
AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
#include <sys/time.h>
#include <time.h>
#ifdef HAVE_UTIME_H
#include <utime.h>
#endif], [static struct utimbuf x; x.actime = x.modtime;],
- [AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_STRUCT_UTIMBUF)],
- AC_MSG_RESULT(no))
+ emacs_cv_struct_utimbuf=yes, emacs_cv_struct_utimbuf=no))
+if test $emacs_cv_struct_utimbuf = yes; then
+ AC_DEFINE(HAVE_STRUCT_UTIMBUF)
+fi
dnl checks for typedefs
AC_TYPE_SIGNAL
-AC_MSG_CHECKING(for struct timeval)
+AC_CACHE_CHECK(for struct timeval, emacs_cv_struct_timeval,
AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
#include <sys/time.h>
#include <time.h>
#include <time.h>
#endif
#endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
- [AC_MSG_RESULT(yes)
- HAVE_TIMEVAL=yes
- AC_DEFINE(HAVE_TIMEVAL)],
- [AC_MSG_RESULT(no)
- HAVE_TIMEVAL=no])
+ emacs_cv_struct_timeval=yes, emacs_cv_struct_timeval=no))
+HAVE_TIMEVAL=$emacs_cv_struct_timeval
+if test $emacs_cv_struct_timeval = yes; then
+ AC_DEFINE(HAVE_TIMEVAL)
+fi
dnl checks for structure members
AC_STRUCT_TM
AC_STRUCT_TIMEZONE
+AC_CACHE_CHECK(for tm_gmtoff in struct tm, emacs_cv_tm_gmtoff,
+AC_TRY_LINK([#include <time.h>], [struct tm t; t.tm_gmtoff = 0],
+ emacs_cv_tm_gmtoff=yes,
+ emacs_cv_tm_gmtoff=no))
+if test $emacs_cv_tm_gmtoff = yes; then
+ AC_DEFINE(HAVE_TM_GMTOFF)
+fi
dnl checks for compiler characteristics
+
+dnl Testing __STDC__ to determine prototype support isn't good enough.
+dnl DEC C, for instance, doesn't define it with default options, and
+dnl is used on 64-bit systems (OSF Alphas). Similarly for volatile
+dnl and void *.
+AC_C_PROTOTYPES
+AC_C_VOLATILE
AC_C_CONST
+dnl This isn't useful because we can't turn on use of `inline' unless
+dnl the compiler groks `extern inline'.
+dnl AC_C_INLINE
+AC_CACHE_CHECK([for void * support], emacs_cv_void_star,
+ [AC_TRY_COMPILE(, [void * foo;],
+ emacs_cv_void_star=yes, emacs_cv_void_star=no)])
+if test $emacs_cv_void_star = yes; then
+ AC_DEFINE(POINTER_TYPE, void)
+else
+ AC_DEFINE(POINTER_TYPE, char)
+fi
dnl check for Make feature
AC_PROG_MAKE_SET
if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
+ x_default_search_path=""
+ for x_library in `echo ${x_libraries} | sed -e "s/:/ /g"`; do
+ x_search_path="${x_library}/X11/%L/%T/%N%C%S:\
+${x_library}/X11/%L/%T/%N%C%S:${x_libary}/X11/%l/%T/%N%C%S:\
+${x_library}/X11/%T/%N%C%S:${x_library}/X11/%L/%T/%N%S:\
+${x_library}/X11/%l/%T/%N%S:${x_library}/X11/%T/%N%S"
+ if test x"${x_default_search_path}" = x; then
+ x_default_search_path=${x_search_path}
+ else
+ x_default_search_path="${x_search_path}:${x_default_search_path}"
+ fi
+ done
fi
if test "${x_includes}" != NONE && test -n "${x_includes}"; then
C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"`
for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do
if test -d "${bmd}/X11/bitmaps"; then
bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps"
- elif test -d "${bmd}/bitmaps"; then
+ fi
+ if test -d "${bmd}/bitmaps"; then
bmd_acc="${bmd_acc}:${bmd}/bitmaps"
fi
done
case ${HAVE_X11} in
yes ) HAVE_MENUS=yes ;;
esac
-
+
if test "${opsys}" = "hpux9"; then
case "${x_libraries}" in
*X11R4* )
#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
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/'`"
# Do the opsystem or machine files prohibit the use of the GNU malloc?
# Assume not, until told otherwise.
GNU_MALLOC=yes
+doug_lea_malloc=yes
+AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no)
+AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
+AC_CACHE_CHECK(whether __after_morecore_hook exists,
+ emacs_cv_var___after_morecore_hook,
+AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
+ emacs_cv_var___after_morecore_hook=yes,
+ emacs_cv_var___after_morecore_hook=no))
+if test $emacs_cv_var___after_morecore_hook = no; then
+ doug_lea_malloc=no
+fi
if test "${system_malloc}" = "yes"; then
GNU_MALLOC=no
GNU_MALLOC_reason="
- (The GNU allocators don't work with this system configuration.)"
+ (The GNU allocators don't work with this system configuration.)"
+fi
+if test "$doug_lea_malloc" = "yes" ; then
+ if test "$GNU_MALLOC" = yes ; then
+ GNU_MALLOC_reason="
+ (Using Doug Lea's new malloc from the GNU C Library.)"
+ fi
+ AC_DEFINE(DOUG_LEA_MALLOC)
fi
if test x"${REL_ALLOC}" = x; then
REL_ALLOC=${GNU_MALLOC}
fi
-LISP_FLOAT_TYPE=yes
-
-
#### Add the libraries to LIBS and check for some functions.
if test x"${OVERRIDE_CPPFLAGS}" != x; then
- CPPFLAGS="$(OVERRIDE_CPPFLAGS)"
+ CPPFLAGS="${OVERRIDE_CPPFLAGS}"
else
CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
fi
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"}
if test "${window_system}" = "x11"; then
AC_MSG_CHECKING(X11 version 6)
+ AC_CACHE_VAL(emacs_cv_x11_version_6,
AC_TRY_LINK([#include <X11/Xlib.h>],
[#if XlibSpecificationRelease < 6
fail;
#endif
-], [AC_MSG_RESULT(6 or newer)
- AC_DEFINE(HAVE_X11R6)],
- [AC_MSG_RESULT(before 6)])
+], emacs_cv_x11_version_6=yes, emacs_cv_x11_version_6=no))
+ if test $emacs_cv_x11_version_6 = yes; then
+ AC_MSG_RESULT(6 or newer)
+ AC_DEFINE(HAVE_X11R6)
+ else
+ AC_MSG_RESULT(before 6)
+ fi
fi
if test "${window_system}" = "x11"; then
AC_MSG_CHECKING(X11 version 5)
+ AC_CACHE_VAL(emacs_cv_x11_version_5,
AC_TRY_LINK([#include <X11/Xlib.h>],
[#if XlibSpecificationRelease < 5
fail;
#endif
-], [AC_MSG_RESULT(5 or newer)
+], emacs_cv_x11_version_5=yes, emacs_cv_x11_version_5=no))
+ if test $emacs_cv_x11_version_5 = yes; then
+ AC_MSG_RESULT(5 or newer)
HAVE_X11R5=yes
- AC_DEFINE(HAVE_X11R5)],
- [
+ AC_DEFINE(HAVE_X11R5)
+ else
HAVE_X11R5=no
- AC_MSG_RESULT(before 5)])
+ AC_MSG_RESULT(before 5)
+ fi
fi
dnl Do not put whitespace before the #include statements below.
if test x"${USE_X_TOOLKIT}" = xmaybe; then
if test x"${HAVE_X11R5}" = xyes; then
AC_MSG_CHECKING(X11 version 5 with Xaw)
+ AC_CACHE_VAL(emacs_cv_x11_version_5_with_xaw,
AC_TRY_LINK([
#include <X11/Intrinsic.h>
#include <X11/Xaw/Simple.h>],
[],
- [AC_MSG_RESULT(5 or newer, with Xaw; use toolkit by default)
- USE_X_TOOLKIT=LUCID],
- [AC_MSG_RESULT(before 5 or no Xaw; do not use toolkit by default)
- USE_X_TOOLKIT=none])
+ emacs_cv_x11_version_5_with_xaw=yes,
+ emacs_cv_x11_version_5_with_xaw=no))
+ if test $emacs_cv_x11_version_5_with_xaw = yes; then
+ AC_MSG_RESULT([5 or newer, with Xaw; use toolkit by default])
+ USE_X_TOOLKIT=LUCID
+ else
+ AC_MSG_RESULT(before 5 or no Xaw; do not use toolkit by default)
+ USE_X_TOOLKIT=none
+ fi
else
USE_X_TOOLKIT=none
fi
if test "${USE_X_TOOLKIT}" != "none"; then
AC_MSG_CHECKING(X11 toolkit version)
+ AC_CACHE_VAL(emacs_cv_x11_toolkit_version_6,
AC_TRY_LINK([#include <X11/Intrinsic.h>],
[#if XtSpecificationRelease < 6
fail;
#endif
-], [AC_MSG_RESULT(6 or newer)
- HAVE_X11XTR6=yes
- AC_DEFINE(HAVE_X11XTR6)],
- [AC_MSG_RESULT(before 6)
- HAVE_X11XTR6=no])
+], emacs_cv_x11_toolkit_version_6=yes, emacs_cv_x11_toolkit_version_6=no))
+ HAVE_X11XTR6=$emacs_cv_x11_toolkit_version_6
+ if test $emacs_cv_x11_toolkit_version_6 = yes; then
+ AC_MSG_RESULT(6 or newer)
+ AC_DEFINE(HAVE_X11XTR6)
+ else
+ AC_MSG_RESULT(before 6)
+ fi
dnl If using toolkit, check whether libXmu.a exists.
dnl tranle@intellicorp.com says libXmu.a can need XtMalloc in libXt.a to link.
LIBS="$OLDLIBS"
fi
+if test "${USE_X_TOOLKIT}" = "MOTIF"; then
+ AC_CACHE_CHECK(for Motif version 2.1, emacs_cv_motif_version_2_1,
+ AC_TRY_COMPILE([#include <Xm/Xm.h>],
+ [#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1)
+int x = 5;
+#else
+Motif version prior to 2.1.
+#endif],
+ emacs_cv_motif_version_2_1=yes, emacs_cv_motif_version_2_1=no))
+ HAVE_MOTIF_2_1=$emacs_cv_motif_version_2_1
+ if test $emacs_cv_motif_version_2_1 = yes; then
+ AC_DEFINE(HAVE_MOTIF_2_1)
+ AC_CHECK_LIB(Xp, XpCreateContext)
+ 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_MSG_CHECKING(whether netdb declares h_errno)
+AC_CACHE_CHECK(whether netdb declares h_errno,
+ emacs_cv_netdb_declares_h_errno,
AC_TRY_LINK([#include <netdb.h>],
[return h_errno;],
- [AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_H_ERRNO)],
- [AC_MSG_RESULT(no)])
+ emacs_cv_netdb_declares_h_errno=yes, emacs_cv_netdb_declares_h_errno=no))
+if test $emacs_cv_netdb_declares_h_errno = yes; then
+ AC_DEFINE(HAVE_H_ERRNO)
+fi
AC_FUNC_ALLOCA
# On HPUX 9.01, -lm does not contain logb, so check for sqrt.
AC_CHECK_LIB(m, sqrt)
-AC_CHECK_FUNCS(gettimeofday gethostname dup2 rename closedir mkdir rmdir \
-random lrand48 bcopy bcmp logb frexp fmod ftime res_init setsid \
-strerror fpathconf select mktime euidaccess getpagesize tzset setlocale)
+# Check for mail-locking functions in a "mail" library
+AC_CHECK_LIB(mail, maillock)
+dnl Debian, at least:
+dnl AC_CHECK_LIB(lockfile, maillock, [AC_DEFINE(HAVE_LIBMAIL)])
+AC_CHECK_LIB(lockfile, maillock)
+# If we have the shared liblockfile, assume we must use it for mail
+# locking (e.g. Debian). If we couldn't link against liblockfile
+# (no liblockfile.a installed), ensure that we don't need to.
+if test "$ac_cv_lib_lockfile_maillock" = no; then
+ dnl This works for files generally, not just executables.
+ dnl Should we look elsewhere for it? Maybe examine /etc/ld.so.conf?
+ AC_CHECK_PROG(liblockfile, liblockfile.so, yes, no,
+ /usr/lib:/lib:/usr/local/lib:$LD_LIBRARY_PATH)
+ if test $ac_cv_prog_liblockfile = yes; then
+ AC_MSG_ERROR([Shared liblockfile found but can't link against it.
+This probably means that movemail could lose mail.
+There may be a \`development' package to install containing liblockfile.])
+ else AC_DEFINE(LIBMAIL, -llockfile)
+ fi
+ else :
+fi
+AC_CHECK_FUNCS(touchlock)
+AC_CHECK_HEADERS(maillock.h)
+
+AC_CHECK_FUNCS(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 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_MSG_CHECKING(whether localtime caches TZ)
AC_CACHE_VAL(emacs_cv_localtime_cache,
[if test x$ac_cv_func_tzset = xyes; then
AC_TRY_RUN([#include <time.h>
-#if STDC_HEADERS
-# include <stdlib.h>
-#endif
extern char **environ;
unset_TZ ()
{
if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
to++;
}
+char TZ_GMT0[] = "TZ=GMT0";
+char TZ_PST8[] = "TZ=PST8";
main()
{
time_t now = time ((time_t *) 0);
int hour_GMT0, hour_unset;
- if (putenv ("TZ=GMT0") != 0)
+ if (putenv (TZ_GMT0) != 0)
exit (1);
hour_GMT0 = localtime (&now)->tm_hour;
unset_TZ ();
hour_unset = localtime (&now)->tm_hour;
- if (putenv ("TZ=PST8") != 0)
+ if (putenv (TZ_PST8) != 0)
exit (1);
if (localtime (&now)->tm_hour == hour_GMT0)
exit (1);
fi
if test "x$HAVE_TIMEVAL" = xyes; then
-AC_MSG_CHECKING(whether gettimeofday can't accept two arguments)
+AC_CACHE_CHECK(whether gettimeofday can accept two arguments,
+ emacs_cv_gettimeofday_two_arguments,
AC_TRY_LINK([
#ifdef TIME_WITH_SYS_TIME
#include <sys/time.h>
struct timezone dummy;
gettimeofday (&time, &dummy);
],
- [AC_MSG_RESULT(no)],
- [AC_MSG_RESULT(yes)
- AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT)])
+ 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
ok_so_far=yes
AC_DEFINE(HAVE_AIX_SMT_EXP)
fi
+AC_MSG_CHECKING(whether system supports dynamic ptys)
+if test -d /dev/pts && ls -d /dev/ptmx > /dev/null 2>&1 ; then
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_DEV_PTMX)
+else
+ AC_MSG_RESULT(no)
+fi
+
+AC_FUNC_VFORK
+
# Set up the CFLAGS for real compilation, so we can substitute it.
CFLAGS="$REAL_CFLAGS"
AC_SUBST(lispdir)
AC_SUBST(locallisppath)
AC_SUBST(lisppath)
+AC_SUBST(x_default_search_path)
AC_SUBST(etcdir)
-AC_SUBST(lockdir)
AC_SUBST(archlibdir)
AC_SUBST(docdir)
AC_SUBST(bitmapdir)
AC_SUBST(X_TOOLKIT_TYPE)
AC_SUBST(machfile)
AC_SUBST(opsysfile)
-AC_SUBST(RANLIB)
AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "${canonical}")
AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}")
if test "${REL_ALLOC}" = "yes" ; then
AC_DEFINE(REL_ALLOC)
fi
-if test "${LISP_FLOAT_TYPE}" = "yes" ; then
- AC_DEFINE(LISP_FLOAT_TYPE)
-fi
#### Report on what we decided to do.
echo "
echo " Where do we find X Windows libraries? Standard dirs"
fi
+echo " Does Emacs use -lXaw3d? ${HAVE_XAW3D}"
+echo " Does Emacs use -lXpm? ${HAVE_XPM}"
+echo " Does Emacs use -ljpeg? ${HAVE_JPEG}"
+echo " Does Emacs use -ltiff? ${HAVE_TIFF}"
+echo " Does Emacs use -lungif? ${HAVE_GIF}"
+echo " Does Emacs use -lpng? ${HAVE_PNG}"
+echo " Does Emacs use X toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}"
echo
# Remove any trailing slashes in these variables.
changequote([, ])dnl
AC_OUTPUT(Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile \
- man/Makefile lwlib/Makefile src/Makefile.c:src/Makefile.in, [
+ man/Makefile lwlib/Makefile src/Makefile.c:src/Makefile.in \
+ leim/Makefile, [
### Make the necessary directories, if they don't exist.
-for dir in cpp etc ; do
+for dir in etc lisp ; do
test -d ${dir} || mkdir ${dir}
done
`"
changequote([, ])dnl
+echo creating src/epaths.h
+make epaths-force
+
echo creating lib-src/Makefile
( cd lib-src
rm -f junk.c junk1.c junk2.c
echo source $top_srcdir/src/.gdbinit > src/.gdbinit
fi
+# This is how we know whether to re-run configure in certain cases.
+touch src/config.stamp
+
], [CPP="$CPP" CPPFLAGS="$CPPFLAGS"])