X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/08741ba9ecde44fef5ad0af91c10c1c2c024bb0d..6fe3681b0046064995937b822da04855eaf17c8c:/configure.in diff --git a/configure.in b/configure.in index a72e4b9f57..80ff7ead17 100644 --- a/configure.in +++ b/configure.in @@ -1,16 +1,36 @@ -dnl This is an autoconf script. +dnl Autoconf script for GNU Emacs dnl To rebuild the `configure' script from this, execute the command dnl autoconf dnl in the directory containing this script. -AC_PREREQ(2.4.1)dnl +dnl +dnl Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc. +dnl +dnl This file is part of GNU Emacs. +dnl +dnl GNU Emacs is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2, or (at your option) +dnl any later version. +dnl +dnl GNU Emacs is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +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 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) AC_CONFIG_HEADER(src/config.h:src/config.in) lispdir='${datadir}/emacs/${version}/lisp' -locallisppath='${datadir}/emacs/site-lisp' +locallisppath='${datadir}/emacs/${version}/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' @@ -22,6 +42,15 @@ AC_ARG_WITH(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)]) @@ -29,7 +58,7 @@ dnl This should be the last --with option, because --with-x is dnl added later on when we find the path of X, and it's best to dnl keep them together visually. AC_ARG_WITH(x-toolkit, -[ --with-x-toolkit=KIT use an X toolkit (KIT = yes/lucid/athena/motif)], +[ --with-x-toolkit=KIT use an X toolkit (KIT = yes/lucid/athena/motif/no)], [ case "${withval}" in y | ye | yes ) val=athena ;; n | no ) val=no ;; @@ -89,7 +118,8 @@ vpath %.h $(srcdir)\ vpath %.y $(srcdir)\ vpath %.l $(srcdir)\ vpath %.s $(srcdir)\ -vpath %.in $(srcdir)' +vpath %.in $(srcdir)\ +vpath %.texi $(srcdir)' fi #### Given the configuration name, set machfile and opsysfile to the @@ -133,13 +163,29 @@ case "${canonical}" in *-*-netbsd* ) opsys=netbsd case "${canonical}" in - i[345]86-*-netbsd*) machine=intel386 ;; + alpha*-*-netbsd*) machine=alpha ;; + i[3456]86-*-netbsd*) machine=intel386 ;; m68k-*-netbsd*) # This is somewhat bogus. machine=hp9000s300 ;; mips-*-netbsd*) machine=pmax ;; ns32k-*-netbsd*) machine=ns32000 ;; sparc-*-netbsd*) machine=sparc ;; + vax-*-netbsd*) machine=vax ;; + 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-*-netbsd*) machine=vax ;; esac ;; @@ -148,7 +194,25 @@ case "${canonical}" in 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 ;; + esac ;; ## Alliant machines @@ -165,19 +229,22 @@ case "${canonical}" in ;; ## 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 ;; - alpha-*-linux* ) - machine=alpha opsys=linux + alpha*-*-linux-gnu* ) + machine=alpha opsys=gnu-linux ;; ## Altos 3068 m68*-altos-sysv* ) machine=altos opsys=usg5-2 ;; - + ## Amdahl UTS 580-amdahl-sysv* ) machine=amdahl opsys=usg5-2-2 @@ -235,12 +302,12 @@ case "${canonical}" in ## Convex *-convex-bsd* | *-convex-convexos* ) machine=convex opsys=bsd4-3 - ## Prevents suprious white space in makefiles - d.m.cooke@larc.nasa.gov + ## Prevents spurious white space in makefiles - d.m.cooke@larc.nasa.gov NON_GNU_CPP="cc -E -P" ;; ## Cubix QBx/386 - i[345]86-cubix-sysv* ) + i[3456]86-cubix-sysv* ) machine=intel386 opsys=usg5-3 ;; @@ -250,8 +317,18 @@ case "${canonical}" in ;; ## 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. + i586-dg-dguxR4.* | 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 @@ -285,7 +362,7 @@ case "${canonical}" in if test -s /etc/167config then CC="gnucc -m68040" else CC="gnucc -m68881" - fi + fi else if test -z "`type gcc | grep 'not found'`" then CC=gcc @@ -354,7 +431,10 @@ case "${canonical}" in 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 @@ -406,6 +486,9 @@ case "${canonical}" in *) machine=hp800 opsys=hpux ;; esac ;; + hppa*-*-nextstep* ) + machine=hp800 opsys=nextstep + ;; ## Orion machines orion-orion-bsd* ) @@ -416,10 +499,10 @@ case "${canonical}" in ;; ## IBM machines - i[345]86-ibm-aix1.1* ) + i[3456]86-ibm-aix1.1* ) machine=ibmps2-aix opsys=usg5-2-2 ;; - i[345]86-ibm-aix1.[23]* | i[345]86-ibm-aix* ) + i[3456]86-ibm-aix1.[23]* | i[3456]86-ibm-aix* ) machine=ibmps2-aix opsys=usg5-3 ;; i370-ibm-aix*) @@ -434,21 +517,27 @@ case "${canonical}" in 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 ;; romp-ibm-bsd4.3* ) machine=ibmrt opsys=bsd4-3 - ;; + ;; romp-ibm-bsd4.2* ) machine=ibmrt opsys=bsd4-2 ;; romp-ibm-aos4.3* ) machine=ibmrt opsys=bsd4-3 - ;; + ;; romp-ibm-aos4.2* ) machine=ibmrt opsys=bsd4-2 ;; @@ -471,30 +560,41 @@ case "${canonical}" in ;; ## Intel 386 machines where we do care about the manufacturer - i[345]86-intsys-sysv* ) + i[3456]86-intsys-sysv* ) machine=is386 opsys=usg5-2-2 ;; ## Prime EXL - i[345]86-prime-sysv* ) + i[3456]86-prime-sysv* ) machine=i386 opsys=usg5-3 ;; ## Sequent Symmetry running Dynix - i[345]86-sequent-bsd* ) + i[3456]86-sequent-bsd* ) 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[345]86-sequent-ptx* ) + i[3456]86-sequent-ptx* ) machine=sequent-ptx opsys=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[345]86-ncr-sysv* ) + i[3456]86-ncr-sysv* ) machine=ncr386 opsys=usg5-4-2 ;; @@ -585,6 +685,12 @@ case "${canonical}" in 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. @@ -623,7 +729,9 @@ case "${canonical}" in machine=iris4d opsys=irix4-0 ;; mips-sgi-irix6* ) - machine=iris4d opsys=irix6-0 NON_GNU_CPP=/lib/cpp + machine=iris4d opsys=irix6-0 + NON_GNU_CPP=/lib/cpp + NON_GCC_TEST_OPTIONS=-32 ;; mips-sgi-irix5.[01]* ) machine=iris4d opsys=irix5-0 @@ -645,6 +753,9 @@ case "${canonical}" in 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 ;; @@ -655,33 +766,40 @@ case "${canonical}" in ;; ## Suns + sparc-*-linux-gnu* ) + machine=sparc opsys=gnu-linux + ;; + *-sun-sunos* | *-sun-bsd* | *-sun-solaris* \ - | i[345]86-*-solaris2* | i[345]86-*-sunos5* | powerpc*-*-solaris2* \ + | i[3456]86-*-solaris2* | i[3456]86-*-sunos5* | powerpc*-*-solaris2* \ | rs6000-*-solaris2*) case "${canonical}" in m68*-sunos1* ) machine=sun1 ;; m68*-sunos2* ) machine=sun2 ;; m68* ) machine=sun3 ;; - i[345]86-sun-sunos[34]* ) machine=sun386 ;; - i[345]86-*-* ) machine=intel386 ;; - powerpc* | rs6000* ) machine=rs6000 ;; + 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 ;; esac case "${canonical}" in ## The Sun386 didn't get past 4.0. - i[345]86-*-sunos4 ) opsys=sunos4-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 + *-sunos4.1.[3-9]*noshare ) + ## 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 @@ -707,6 +825,17 @@ case "${canonical}" in ;; * ) opsys=bsd4-2 ;; esac + ## Watch out for a compiler that we know will not work. + case "${canonical}" in + *-solaris* | *-sunos5* ) + if [ "x$CC" = x/usr/ucb/cc ]; then + ## /usr/ucb/cc doesn't work; + ## we should find some other compiler that does work. + unset CC + fi + ;; + *) ;; + esac ;; sparc-*-nextstep* ) machine=sparc opsys=nextstep @@ -750,7 +879,7 @@ case "${canonical}" in titan-titan-sysv* ) machine=titan opsys=usg5-3 ;; - + ## Ustation E30 (SS5E) m68*-unisys-uniplus* ) machine=ustation opsystem=unipl5-2 @@ -783,7 +912,7 @@ case "${canonical}" in ;; ## Intel 386 machines where we don't care about the manufacturer - i[345]86-*-* ) + i[3456]86-*-* ) machine=intel386 case "${canonical}" in *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;; @@ -797,10 +926,15 @@ case "${canonical}" in *-esix5* ) opsys=esix5r4; NON_GNU_CPP=/usr/lib/cpp ;; *-esix* ) opsys=esix ;; *-xenix* ) opsys=xenix ;; - *-linux* ) opsys=linux ;; + *-linux-gnu* ) opsys=gnu-linux ;; *-sco3.2v4* ) opsys=sco4 ; NON_GNU_CPP=/lib/cpp ;; - *-bsd386* | *-bsdi1* ) opsys=bsd386 ;; - *-bsdi2* ) opsys=bsdos2 ;; + *-sco3.2v5* ) opsys=sco5 + NON_GNU_CPP=/lib/cpp + # Prevent -belf from being passed to $CPP. + # /lib/cpp does not accept it. + OVERRIDE_CPPFLAGS=" " + ;; + *-sysv4.2uw* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;; *-386bsd* ) opsys=386bsd ;; *-freebsd* ) opsys=freebsd ;; *-nextstep* ) opsys=nextstep ;; @@ -808,9 +942,21 @@ case "${canonical}" in esac ;; - ## Linux/68k - m68k-*-linux* ) - machine=m68k opsys=linux + ## 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" ;; * ) @@ -834,12 +980,17 @@ if test x"${opsys}" = x; then *-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 ;; *-sysv4.[2-9]* | *-sysvr4.[2-9]* ) if [ x$NON_GNU_CPP = x ]; then - NON_GNU_CPP=/usr/ccs/lib/cpp + if [ -f /usr/ccs/lib/cpp ]; then + NON_GNU_CPP=/usr/ccs/lib/cpp + else + NON_GNU_CPP=/lib/cpp + fi fi opsys=usg5-4-2 ;; *-sysv4* | *-sysvr4* ) opsys=usg5-4 ;; @@ -901,12 +1052,22 @@ fi if test x$GCC = xyes && test "x$GCC_TEST_OPTIONS" != x then CC="$CC $GCC_TEST_OPTIONS" -fi +fi if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x then CC="$CC $NON_GCC_TEST_OPTIONS" -fi +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 @@ -922,13 +1083,13 @@ dnl checks for Unix variants AC_AIX dnl checks for header files -AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.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) 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 #include @@ -942,14 +1103,15 @@ AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME #ifdef HAVE_UTIME_H #include #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 #include @@ -960,10 +1122,11 @@ AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME #include #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)) + 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 @@ -990,6 +1153,18 @@ fi 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"` @@ -998,7 +1173,7 @@ fi if test x"${x_includes}" = x; then bitmapdir=/usr/include/X11/bitmaps else - # accumulate include directories that have X11 bitmap sudirectories + # accumulate include directories that have X11 bitmap subdirectories bmd_acc="dummyval" for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do if test -d "${bmd}/X11/bitmaps"; then @@ -1017,10 +1192,13 @@ case "${window_system}" in HAVE_X_WINDOWS=yes HAVE_X11=yes case "${with_x_toolkit}" in - athena | lucid ) USE_X_TOOLKIT=LUCID ;; - motif ) USE_X_TOOLKIT=MOTIF ;; -dnl open-look ) USE_X_TOOLKIT=OPEN_LOOK ;; - * ) USE_X_TOOLKIT=none ;; + athena | lucid ) USE_X_TOOLKIT=LUCID ;; + motif ) USE_X_TOOLKIT=MOTIF ;; +dnl open-look ) USE_X_TOOLKIT=OPEN_LOOK ;; + no ) USE_X_TOOLKIT=none ;; +dnl If user did not say whether to use a toolkit, +dnl make this decision later: use the toolkit if we have X11R5 or newer. + * ) USE_X_TOOLKIT=maybe ;; esac ;; none ) @@ -1029,7 +1207,6 @@ dnl open-look ) USE_X_TOOLKIT=OPEN_LOOK ;; USE_X_TOOLKIT=none ;; esac -X_TOOLKIT_TYPE=$USE_X_TOOLKIT ### If we're using X11, we should use the X menu package. HAVE_MENUS=no @@ -1063,7 +1240,7 @@ AC_CHECKING([the machine- and system-dependent files to find out ### 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 Linux needs them to be different because it treats -g +### 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 @@ -1126,6 +1303,21 @@ configure___ system_malloc=no #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. */ @@ -1162,16 +1354,36 @@ 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/'`" # 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 @@ -1183,7 +1395,12 @@ LISP_FLOAT_TYPE=yes #### Add the libraries to LIBS and check for some functions. -CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS" +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, @@ -1212,10 +1429,20 @@ AC_MSG_RESULT($HAVE_XFREE386) if test "${HAVE_X11}" = "yes"; then DEFS="$C_SWITCH_X_SITE $DEFS" - LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS" + LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE" + LIBS="$LIBX $LIBS" CFLAGS="$C_SWITCH_X_SITE $CFLAGS" - if test "${opsys}" = "linux"; then + # 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, + # but it's more convenient here to set LD_RUN_PATH + # since this also works on hosts that don't understand LD_SWITCH_X_SITE_AUX. + if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then + LD_RUN_PATH=$x_libraries${LD_RUN_PATH+:}$LD_RUN_PATH + export LD_RUN_PATH + fi + + if test "${opsys}" = "gnu-linux"; then AC_MSG_CHECKING(whether X on GNU/Linux needs -b to link) AC_TRY_LINK([], [XOpenDisplay ("foo");], @@ -1252,65 +1479,208 @@ if test "${HAVE_X11}" = "yes"; then AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \ XScreenNumberOfScreen XSetWMProtocols) - AC_CHECK_LIB(Xmu, XmuConvertStandardSelection) fi if test "${window_system}" = "x11"; then - AC_MSG_CHECKING(X11 version) + AC_MSG_CHECKING(X11 version 6) + AC_CACHE_VAL(emacs_cv_x11_version_6, AC_TRY_LINK([#include ], [#if XlibSpecificationRelease < 6 fail; #endif -], [AC_MSG_RESULT(6) - AC_DEFINE(HAVE_X11R6)], - [AC_MSG_RESULT(not 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 ], +[#if XlibSpecificationRelease < 5 +fail; +#endif +], 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) + else + HAVE_X11R5=no + AC_MSG_RESULT(before 5) + fi +fi + +dnl Do not put whitespace before the #include statements below. +dnl Older compilers (eg sunos4 cc) choke on it. +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 +#include ], + [], + 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 +fi + +X_TOOLKIT_TYPE=$USE_X_TOOLKIT + 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 ], [#if XtSpecificationRelease < 6 fail; #endif -], [AC_MSG_RESULT(6) - AC_DEFINE(HAVE_X11XTR6)], - [AC_MSG_RESULT(not 6)]) +], 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. + OLDLIBS="$LIBS" + if test x$HAVE_X11XTR6 = xyes; then + LIBS="-lXt -lSM -lICE $LIBS" + else + LIBS="-lXt $LIBS" + fi + AC_CHECK_LIB(Xmu, XmuConvertStandardSelection) + 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 ], + [#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) + 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 ], [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 # fmod, logb, and frexp are found in -lm on most systems. # On HPUX 9.01, -lm does not contain logb, so check for sqrt. -AC_CHECK_LIB(m, sqrt(0.0) + t) -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 eaccess getpagesize tzset) +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_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) + +# 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. +# It's better to believe a function is not available +# 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(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)) + 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 $ac_cv_func_tzset = yes; then +[if test x$ac_cv_func_tzset = xyes; then AC_TRY_RUN([#include #if STDC_HEADERS # include #endif +extern char **environ; +unset_TZ () +{ + char **from, **to; + for (to = from = environ; (*to = *from); from++) + 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; - if (putenv ("TZ=GMT0") != 0) + int hour_GMT0, hour_unset; + 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) + exit (1); + if (localtime (&now)->tm_hour == hour_GMT0) exit (1); - hour = localtime (&now)->tm_hour; - if (putenv ("TZ=PST8") != 0) + unset_TZ (); + if (localtime (&now)->tm_hour != hour_unset) exit (1); - exit (localtime (&now)->tm_hour == hour); + exit (0); }], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes, [# If we have tzset, assume the worst when cross-compiling. emacs_cv_localtime_cache=yes]) @@ -1325,7 +1695,8 @@ if test $emacs_cv_localtime_cache = yes; then 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 @@ -1343,9 +1714,11 @@ AC_TRY_LINK([ 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 @@ -1393,8 +1766,8 @@ AC_SUBST(infodir) 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) @@ -1478,10 +1851,11 @@ test "${exec_prefix}" != NONE && 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 cpp etc lisp ; do test -d ${dir} || mkdir ${dir} done @@ -1502,6 +1876,9 @@ sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/ *$//' \ `" changequote([, ])dnl +echo creating src/paths.h +make paths-force + echo creating lib-src/Makefile ( cd lib-src rm -f junk.c junk1.c junk2.c @@ -1539,4 +1916,7 @@ if test ! -f src/.gdbinit && test -f $top_srcdir/src/.gdbinit; then 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"])