X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/cae1e7d4ef1a15be5522453b239c1f9ae828c570..ad800164c88de7d29471d1fac5035c23ad82245d:/configure.in diff --git a/configure.in b/configure.in index 65dd867b27..3add836efc 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, 2000 Free Software Foundation, Inc. +dnl Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2003 +dnl Free Software Foundation, Inc. dnl dnl This file is part of GNU Emacs. dnl @@ -22,10 +23,14 @@ 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_PREREQ(2.54)dnl AC_INIT(src/lisp.h) AC_CONFIG_HEADER(src/config.h:src/config.in) +dnl Support for --program-prefix, --program-suffix and +dnl --program-transform-name options +AC_ARG_PROGRAM + lispdir='${datadir}/emacs/${version}/lisp' locallisppath='${datadir}/emacs/${version}/site-lisp:'\ '${datadir}/emacs/site-lisp:${datadir}/emacs/${version}/leim' @@ -33,6 +38,9 @@ lisppath='${locallisppath}:${lispdir}' etcdir='${datadir}/emacs/${version}/etc' archlibdir='${libexecdir}/emacs/${version}/${configuration}' docdir='${datadir}/emacs/${version}/etc' +gamedir='${localstatedir}/games/emacs' + +gameuser=games AC_ARG_WITH(gcc, [ --without-gcc don't use GCC to compile Emacs if GCC is found]) @@ -43,9 +51,12 @@ AC_ARG_WITH(pop, else : fi], AC_DEFINE(MAIL_USE_POP)) +AH_TEMPLATE(MAIL_USE_POP, [Define to support POP mail retrieval.])dnl AC_ARG_WITH(kerberos, [ --with-kerberos support Kerberos-authenticated POP], [AC_DEFINE(KERBEROS)]) +AH_TEMPLATE(KERBEROS, + [Define to support Kerberos-authenticated POP mail retrieval.])dnl AC_ARG_WITH(kerberos5, [ --with-kerberos5 support Kerberos version 5 authenticated POP], [if test "${with_kerberos5+set}" = set; then @@ -54,30 +65,36 @@ AC_ARG_WITH(kerberos5, AC_DEFINE(KERBEROS) fi fi -AC_DEFINE(KERBEROS5)]) +AC_DEFINE(KERBEROS5, 1, [Define to use Kerberos 5 instead of Kerberos 4.])]) AC_ARG_WITH(hesiod, [ --with-hesiod support Hesiod to get the POP server host], -[AC_DEFINE(HESIOD)]) +[AC_DEFINE(HESIOD, 1, [Define to support using a Hesiod database to find the POP server.])]) + +AC_ARG_WITH(sound, +[ --without-sound don't compile with sound support]) + 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/no)], +[ --with-x-toolkit=KIT use an X toolkit + (KIT = yes/lucid/athena/motif/gtk/no)], [ case "${withval}" in y | ye | yes ) val=athena ;; n | no ) val=no ;; l | lu | luc | luci | lucid ) val=lucid ;; a | at | ath | athe | athen | athena ) val=athena ;; m | mo | mot | moti | motif ) val=motif ;; + g | gt | gtk ) val=gtk ;; dnl These don't currently work. dnl o | op | ope | open | open- | open-l | open-lo \ dnl | open-loo | open-look ) val=open-look ;; * ) -dnl AC_MSG_ERROR([the \`--with-x-toolkit' option is supposed to have a value -dnl which is \`yes', \`no', \`lucid', \`athena', \`motif' or \`open-look'.]) -AC_MSG_ERROR([\`--with-x-toolkit=$withval' is invalid\; -this option's value should be \`yes', \`no', \`lucid', \`athena', or \`motif'. -Currently, \`yes', \`athena' and \`lucid' are synonyms.]) +dnl AC_MSG_ERROR([the `--with-x-toolkit' option is supposed to have a value +dnl which is `yes', `no', `lucid', `athena', `motif' or `open-look'.]) +AC_MSG_ERROR([`--with-x-toolkit=$withval' is invalid\; +this option's value should be `yes', `no', `lucid', `athena', `motif' or `gtk'. +Currently, `yes', `athena' and `lucid' are synonyms.]) ;; esac with_x_toolkit=$val @@ -92,11 +109,33 @@ 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(gtk, +[ --with-gtk use GTK (same as --with-x-toolkit=gtk)]) +AC_ARG_WITH(pkg-config-prog, +[ --with-pkg-config-prog Path to pkg-config to use for finding GTK]) AC_ARG_WITH(toolkit-scroll-bars, [ --without-toolkit-scroll-bars - don't use Motif or Xaw3d scroll bars]) + don't use Motif or Xaw3d scroll bars]) AC_ARG_WITH(xim, -[ --without-xim don't use X11 XIM]) +[ --without-xim don't use X11 XIM]) +AC_ARG_WITH(carbon, +[ --without-carbon don't use Carbon GUI on Mac OS X]) +AC_ARG_ENABLE(carbon-app, +[[ --enable-carbon-app[=DIR] [DIR=/Application] + specify install directory for Emacs.app on Mac OS X]], +[ carbon_appdir_x=${enableval}]) + +AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) +if test $USE_MAINTAINER_MODE = yes; then + MAINT= +else + MAINT=# +fi +AC_SUBST(MAINT) #### Make srcdir absolute, if it isn't already. It's important to #### avoid running the path through pwd unnecessarily, since pwd can @@ -109,7 +148,10 @@ case "${srcdir}" in . ) ## We may be able to use the $PWD environment variable to make this ## absolute. But sometimes PWD is inaccurate. - if test ".${PWD}" != "." && test ".`(cd ${PWD} ; sh -c pwd)`" = ".${PWD}" ; + ## Note: we used to use ${PWD} at the end instead of `pwd`, + ## but that tested only for a well-formed and valid PWD, + ## it did not object when PWD was well-formed and valid but just wrong. + if test ".${PWD}" != "." && test ".`(cd ${PWD} ; sh -c pwd)`" = ".`pwd`" ; then srcdir="$PWD" else @@ -122,23 +164,21 @@ esac #### Check if the source directory already has a configured system in it. if test `pwd` != `(cd ${srcdir} && pwd)` \ && test -f "${srcdir}/src/config.h" ; then - AC_MSG_WARN([The directory tree \`${srcdir}' is being used + AC_MSG_WARN([[The directory tree `${srcdir}' is being used as a build directory right now; it has been configured in its own right. To configure in another directory as well, you MUST use GNU make. If you do not have GNU make, then you must - now do \`make distclean' in ${srcdir}, - and then run $0 again.]) + now do `make distclean' in ${srcdir}, + and then run $0 again.]]) -changequote(, )dnl - extrasub='/^VPATH[ ]*=/c\ -changequote([, ])dnl +[extrasub='/^VPATH[ ]*=/c\ vpath %.c $(srcdir)\ vpath %.h $(srcdir)\ vpath %.y $(srcdir)\ vpath %.l $(srcdir)\ vpath %.s $(srcdir)\ vpath %.in $(srcdir)\ -vpath %.texi $(srcdir)' +vpath %.texi $(srcdir)'] fi #### Given the configuration name, set machfile and opsysfile to the @@ -148,9 +188,17 @@ fi AC_CANONICAL_HOST canonical=$host -configuration=$host_alias +configuration=${host_alias-$host} -changequote(, )dnl +dnl This used to use changequote, but, apart from `changequote is evil' +dnl per the autoconf manual, we can speed up autoconf somewhat by quoting +dnl the great gob of text. Thus it's not processed for possible expansion. +dnl Just make sure the brackets remain balanced. +dnl +dnl Since Emacs can't find matching pairs of quotes, boundaries are +dnl indicated by comments. +dnl quotation begins +[ ### If you add support for a new configuration, add code to this ### switch statement to recognize your configuration name and select @@ -178,9 +226,24 @@ changequote(, )dnl machine='' opsys='' unported=no case "${canonical}" in + ## FreeBSD ports + *-*-freebsd* ) + opsys=freebsd + case "${canonical}" in + alpha*-*-freebsd*) machine=alpha ;; + i[3456]86-*-freebsd*) machine=intel386 ;; + esac + ;; + ## NetBSD ports *-*-netbsd* ) opsys=netbsd + if test -f /usr/lib/crti.o; then] +dnl The close and open brackets here are because this section is quoted -- +dnl see the `changequote' comment above. + AC_DEFINE(HAVE_CRTIN, [], [Define to 1 if you have /usr/lib/crti.o.]) +[ fi + case "${canonical}" in alpha*-*-netbsd*) machine=alpha ;; i[3456]86-*-netbsd*) machine=intel386 ;; @@ -190,6 +253,7 @@ case "${canonical}" in powerpc-apple-netbsd*) machine=macppc ;; mips-*-netbsd*) machine=pmax ;; mipsel-*-netbsd*) machine=pmax ;; + mipseb-*-netbsd*) machine=pmax ;; ns32k-*-netbsd*) machine=ns32000 ;; powerpc-*-netbsd*) machine=macppc ;; sparc*-*-netbsd*) machine=sparc ;; @@ -235,7 +299,7 @@ case "${canonical}" in *-*-bsdi2.0* ) opsys=bsdos2 ;; *-*-bsdi2* ) opsys=bsdos2-1 ;; *-*-bsdi3* ) opsys=bsdos3 ;; - *-*-bsdi4* ) opsys=bsdos4 ;; + *-*-bsdi[45]* ) opsys=bsdos4 ;; esac ;; @@ -341,6 +405,11 @@ case "${canonical}" in ## operating system. ;; + ## Compaq Nonstop + mips-compaq-nonstopux* ) + machine=nonstopux opsys=nonstopux + ;; + ## Convex *-convex-bsd* | *-convex-convexos* ) machine=convex opsys=bsd4-3 @@ -485,6 +554,9 @@ case "${canonical}" in hppa1.1-hitachi-hiuxmpp* ) machine=sr2k opsys=hiuxmpp ;; + hppa1.1-hitachi-hiuxwe2* ) + machine=sr2k opsys=hiuxwe2 + ;; ## Honeywell XPS100 xps*-honeywell-sysv* ) machine=xps100 opsys=usg5-2 @@ -520,9 +592,19 @@ case "${canonical}" in hppa*-hp-hpux9* ) machine=hp800 opsys=hpux9 ;; - hppa*-hp-hpux1[0-9]* ) + hppa*-hp-hpux10.2* ) + machine=hp800 opsys=hpux10-20 + ;; + hppa*-hp-hpux10* ) machine=hp800 opsys=hpux10 ;; + hppa*-hp-hpux1[1-9]* ) + machine=hp800 opsys=hpux11 + ;; + + hppa*-*-linux-gnu* ) + machine=hp800 opsys=gnu-linux + ;; ## HP 9000 series 700 and 800, running HP/UX hppa*-hp-hpux* ) @@ -558,6 +640,9 @@ case "${canonical}" in i370-ibm-aix*) machine=ibm370aix opsys=usg5-3 ;; + s390-*-linux-gnu* ) + machine=ibms390 opsys=gnu-linux + ;; rs6000-ibm-aix3.1* | powerpc-ibm-aix3.1* ) machine=ibmrs6000 opsys=aix3-1 ;; @@ -570,6 +655,9 @@ case "${canonical}" in rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2* ) machine=ibmrs6000 opsys=aix4-2 ;; + rs6000-ibm-aix5* | powerpc-ibm-aix5* ) + machine=ibmrs6000 opsys=aix4-2 + ;; rs6000-ibm-aix4.0* | powerpc-ibm-aix4.0* ) machine=ibmrs6000 opsys=aix4 ;; @@ -745,12 +833,6 @@ 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. @@ -890,8 +972,13 @@ case "${canonical}" in NON_GNU_CPP=/usr/ccs/lib/cpp RANLIB="ar -ts" ;; + *-sunos5.6* | *-solaris2.6* ) + opsys=sol2-6 + NON_GNU_CPP=/usr/ccs/lib/cpp + RANLIB="ar -ts" + ;; *-sunos5* | *-solaris* ) - opsys=sol2-5 + opsys=sol2-6 NON_GNU_CPP=/usr/ccs/lib/cpp ;; * ) opsys=bsd4-2 ;; @@ -991,6 +1078,7 @@ case "${canonical}" in i[3456]86-*-* ) machine=intel386 case "${canonical}" in + *-cygwin ) opsys=cygwin ;; *-lynxos* ) opsys=lynxos ;; *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;; *-isc2.2* ) opsys=isc2-2 ;; @@ -1005,15 +1093,16 @@ case "${canonical}" in *-xenix* ) opsys=xenix ;; *-linux-gnu* ) opsys=gnu-linux ;; *-sco3.2v4* ) opsys=sco4 ; NON_GNU_CPP=/lib/cpp ;; - *-sco3.2v5* ) opsys=sco5 + *-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 ;; + *-sysv5uw* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;; + *-sysv5OpenUNIX* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;; *-386bsd* ) opsys=386bsd ;; - *-freebsd* ) opsys=freebsd ;; *-nextstep* ) opsys=nextstep ;; ## Otherwise, we'll fall through to the generic opsys code at the bottom. esac @@ -1025,7 +1114,7 @@ case "${canonical}" in ;; ## Mips Linux-based GNU system - mips-*-linux-gnu* ) + mips-*-linux-gnu* | mipsel-*-linux-gnu* ) machine=mips opsys=gnu-linux ;; @@ -1041,6 +1130,18 @@ case "${canonical}" in machine=f301 opsys=uxpv ;; + ## Darwin / Mac OS X + powerpc-apple-darwin* ) + machine=powermac opsys=darwin + # Define CPP as follows to make autoconf work correctly. + CPP="gcc -E -no-cpp-precomp" + ;; + + ## AMD x86-64 Linux-based GNU system + x86_64-*-linux-gnu* ) + machine=amdx86-64 opsys=gnu-linux + ;; + * ) unported=yes ;; @@ -1063,6 +1164,8 @@ if test x"${opsys}" = x; then *-sysv2.2 | *-sysvr2.2 ) opsys=usg5-2-2 ;; *-sysv3* | *-sysvr3* ) opsys=usg5-3 ;; *-sysv4.2uw* ) opsys=unixware ;; + *-sysv5uw* ) opsys=unixware ;; + *-sysv5OpenUNIX* ) opsys=unixware ;; *-sysv4.1* | *-sysvr4.1* ) NON_GNU_CPP=/usr/lib/cpp opsys=usg5-4 ;; @@ -1082,11 +1185,12 @@ if test x"${opsys}" = x; then esac fi -changequote([, ])dnl +] +dnl quotation ends if test $unported = yes; then - AC_MSG_ERROR([Emacs hasn't been ported to \`${canonical}' systems. -Check \`etc/MACHINES' for recognized configuration names.]) + AC_MSG_ERROR([Emacs hasn't been ported to `${canonical}' systems. +Check `etc/MACHINES' for recognized configuration names.]) fi machfile="m/${machine}.h" @@ -1102,8 +1206,9 @@ SPECIFIED_CFLAGS="$CFLAGS" case ${with_gcc} in "yes" ) CC="gcc" GCC=yes ;; "no" ) : ${CC=cc} ;; - * ) AC_PROG_CC + * ) esac +AC_PROG_CC # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then @@ -1137,6 +1242,21 @@ then CC="$CC $NON_GCC_TEST_OPTIONS" fi +#### Some other nice autoconf tests. + +dnl checks for programs +AC_PROG_LN_S +AC_PROG_CPP +AC_PROG_INSTALL +if test "x$RANLIB" = x; then + AC_PROG_RANLIB +fi +AC_PATH_PROG(INSTALL_INFO, install-info) +AC_PATH_PROG(INSTALL_INFO, install-info,, /usr/sbin) +AC_PATH_PROG(INSTALL_INFO, install-info,:, /sbin) + +dnl Add our options to ac_link now, after it is set up. + if test x$GCC = xyes && test "x$GCC_LINK_TEST_OPTIONS" != x then ac_link="$ac_link $GCC_LINK_TEST_OPTIONS" @@ -1147,19 +1267,6 @@ 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. - -dnl checks for programs -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 @@ -1256,7 +1363,7 @@ configure___ use_mmap_for_buffers=no #ifndef LD_SWITCH_X_SITE_AUX #define LD_SWITCH_X_SITE_AUX -#endif +#endif configure___ ld_switch_system=LD_SWITCH_SYSTEM configure___ ld_switch_machine=LD_SWITCH_MACHINE @@ -1285,16 +1392,14 @@ configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}' # 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} \ +[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 +fi] rm ${tempcname} ac_link="$ac_link $ld_switch_machine $ld_switch_system" @@ -1307,22 +1412,41 @@ else CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS" fi +dnl For AC_FUNC_GETLOADAVG, at least: +AC_CONFIG_LIBOBJ_DIR(src) + +AC_GNU_SOURCE + 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) +if test "${with_sound}" != "no"; then + # 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) +fi 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 stdio_ext.h fcntl.h term.h strings.h) + termcap.h stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \ + sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h) +dnl On Solaris 8 there's a compilation warning for term.h because +dnl it doesn't define `bool'. +AC_CHECK_HEADERS(term.h, , , -) AC_HEADER_STDC AC_HEADER_TIME -AC_DECL_SYS_SIGLIST +AC_CHECK_DECLS([sys_siglist]) +if test $ac_cv_have_decl_sys_siglist != yes; then + # For Tru64, at least: + AC_CHECK_DECLS([__sys_siglist]) + if test $ac_cv_have_decl___sys_siglist = yes; then + AC_DEFINE(sys_siglist, __sys_siglist, + [Define to any substitute for sys_siglist.]) + fi +fi AC_HEADER_SYS_WAIT dnl Some systems have utime.h but don't declare the struct anyplace. @@ -1342,7 +1466,7 @@ AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME #endif], [static struct utimbuf x; x.actime = x.modtime;], emacs_cv_struct_utimbuf=yes, emacs_cv_struct_utimbuf=no)) if test $emacs_cv_struct_utimbuf = yes; then - AC_DEFINE(HAVE_STRUCT_UTIMBUF) + AC_DEFINE(HAVE_STRUCT_UTIMBUF, 1, [Define to 1 if `struct utimbuf' is declared by .]) fi dnl checks for typedefs @@ -1350,10 +1474,11 @@ 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)) + [AC_TRY_COMPILE([#include ], [speed_t x = 1;], + emacs_cv_speed_t=yes, emacs_cv_speed_t=no)]) if test $emacs_cv_speed_t = yes; then - AC_DEFINE(HAVE_SPEED_T) + AC_DEFINE(HAVE_SPEED_T, 1, + [Define to 1 if `speed_t' is declared by .]) fi AC_CACHE_CHECK(for struct timeval, emacs_cv_struct_timeval, @@ -1370,28 +1495,28 @@ AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME 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) + AC_DEFINE(HAVE_TIMEVAL, 1, [Define to 1 if `struct timeval' is declared by .]) fi AC_CACHE_CHECK(for struct exception, emacs_cv_struct_exception, -AC_TRY_COMPILE([#include ], +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) + AC_DEFINE(NO_MATHERR, 1, [Define to 1 if you don't have struct exception in math.h.]) 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 +AC_CHECK_MEMBER(struct tm.tm_gmtoff, + [AC_DEFINE(HAVE_TM_GMTOFF, 1, + [Define to 1 if `tm_gmtoff' is member of `struct tm'.])],, + [#include ]) +AC_CHECK_MEMBERS([struct ifreq.ifr_flags, struct ifreq.ifr_hwaddr, + struct ifreq.ifr_netmask, struct ifreq.ifr_broadaddr, + struct ifreq.ifr_addr], , ,[#include ]) dnl checks for compiler characteristics @@ -1406,13 +1531,20 @@ 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;], + [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 +AH_TEMPLATE(POINTER_TYPE, + [Define as `void' if your compiler accepts `void *'; otherwise + define as `char'.])dnl + +dnl This could be used for targets which can have both byte sexes. +dnl We could presumably replace the hardwired WORDS_BIG_ENDIAN generally. +dnl AC_C_BIGENDIAN dnl check for Make feature AC_PROG_MAKE_SET @@ -1434,10 +1566,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 @@ -1475,6 +1610,10 @@ case "${window_system}" in athena | lucid ) USE_X_TOOLKIT=LUCID ;; motif ) USE_X_TOOLKIT=MOTIF ;; dnl open-look ) USE_X_TOOLKIT=OPEN_LOOK ;; + gtk ) with_gtk=yes +dnl Dont set this for GTK. A lot of tests below assumes Xt when +dnl USE_X_TOOLKIT is set. + USE_X_TOOLKIT=none ;; 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. @@ -1493,7 +1632,7 @@ HAVE_MENUS=no case ${HAVE_X11} in yes ) HAVE_MENUS=yes ;; esac - + if test "${opsys}" = "hpux9"; then case "${x_libraries}" in *X11R4* ) @@ -1521,9 +1660,9 @@ 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], +[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)) + emacs_cv_var___after_morecore_hook=no)]) if test $emacs_cv_var___after_morecore_hook = no; then doug_lea_malloc=no fi @@ -1537,7 +1676,8 @@ if test "$doug_lea_malloc" = "yes" ; then GNU_MALLOC_reason=" (Using Doug Lea's new malloc from the GNU C Library.)" fi - AC_DEFINE(DOUG_LEA_MALLOC) + AC_DEFINE(DOUG_LEA_MALLOC, 1, + [Define to 1 if you are using the GNU C Library.]) fi if test x"${REL_ALLOC}" = x; then @@ -1575,9 +1715,26 @@ else HAVE_XFREE386=no fi AC_MSG_RESULT($HAVE_XFREE386) + +dnl Check for need for bigtoc support on IBM AIX + +case ${host_os} in +aix*) + AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [ + case $GCC in + yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;; + *) gdb_cv_bigtoc=-bbigtoc ;; + esac + + LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc + AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=]) + ]) + ;; +esac -# 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. +# Change CFLAGS and CPPFLAGS temporarily so that C_SWITCH_X_SITE gets +# used for the tests that follow. We set them back to REAL_CFLAGS and +# REAL_CPPFLAGS later on. REAL_CPPFLAGS="$CPPFLAGS" @@ -1632,21 +1789,34 @@ 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, 1, [Define to 1 if you have the XkbGetKeyboard function.]) + fi + AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \ -XScreenNumberOfScreen XSetWMProtocols XkbGetKeyboard) +XScreenNumberOfScreen XSetWMProtocols) fi if test "${window_system}" = "x11"; then AC_MSG_CHECKING(X11 version 6) AC_CACHE_VAL(emacs_cv_x11_version_6, - AC_TRY_LINK([#include ], + [AC_TRY_LINK([#include ], [#if XlibSpecificationRelease < 6 fail; #endif -], emacs_cv_x11_version_6=yes, emacs_cv_x11_version_6=no)) +], 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) + AC_DEFINE(HAVE_X11R6, 1, + [Define to 1 if you have the X11R6 or newer version of Xlib.]) else AC_MSG_RESULT(before 6) fi @@ -1655,33 +1825,117 @@ 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 ], + [AC_TRY_LINK([#include ], [#if XlibSpecificationRelease < 5 fail; #endif -], emacs_cv_x11_version_5=yes, emacs_cv_x11_version_5=no)) +], 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, 1, + [Define to 1 if you have the X11R5 or newer version of Xlib.]) else HAVE_X11R5=no AC_MSG_RESULT(before 5) fi fi +dnl This function defintion taken from Gnome 2.0 +dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not) +dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page +dnl also defines GSTUFF_PKG_ERRORS on error +AC_DEFUN(PKG_CHECK_MODULES, [ + succeeded=no + + if test -z "$PKG_CONFIG"; then + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + fi + + if test "$PKG_CONFIG" = "no" ; then + echo "*** The pkg-config script could not be found. Make sure it is" + echo "*** in your path, or give the full path to pkg-config with" + echo "*** the PKG_CONFIG environment variable or --with-pkg-config-prog." + echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." + else + PKG_CONFIG_MIN_VERSION=0.9.0 + if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + AC_MSG_CHECKING(for $2) + + if $PKG_CONFIG --exists "$2" ; then + AC_MSG_RESULT(yes) + succeeded=yes + + AC_MSG_CHECKING($1_CFLAGS) + $1_CFLAGS=`$PKG_CONFIG --cflags "$2"` + AC_MSG_RESULT($$1_CFLAGS) + + AC_MSG_CHECKING($1_LIBS) + $1_LIBS=`$PKG_CONFIG --libs "$2"` + AC_MSG_RESULT($$1_LIBS) + else + $1_CFLAGS="" + $1_LIBS="" + ## If we have a custom action on failure, don't print errors, but + ## do set a variable so people can do so. + $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` + ifelse([$4], ,echo $$1_PKG_ERRORS,) + fi + + AC_SUBST($1_CFLAGS) + AC_SUBST($1_LIBS) + else + echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." + echo "*** See http://www.freedesktop.org/software/pkgconfig" + fi + fi + + if test $succeeded = yes; then + ifelse([$3], , :, [$3]) + else + ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4]) + fi +]) + +HAVE_GTK=no +if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk"; then + if test "$USE_X_TOOLKIT" != "none" && test "$USE_X_TOOLKIT" != "maybe"; then + AC_MSG_ERROR([Conflicting options, --with-gtk is incompatible with --with-x-toolkit=${with_x_toolkit}]); + fi + GLIB_REQUIRED=2.0.1 + GTK_REQUIRED=2.0.1 + GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED" + + dnl Check if --with-pkg-config-prog has been given. + if test "X${with_pkg_config_prog}" != X; then + PKG_CONFIG="${with_pkg_config_prog}" + fi + dnl Checks for libraries. + PKG_CHECK_MODULES(GTK, $GTK_MODULES) + AC_SUBST(GTK_CFLAGS) + AC_SUBST(GTK_LIBS) + C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS" + HAVE_GTK=yes + AC_DEFINE(HAVE_GTK, 1, [Define to 1 if using GTK.]) + USE_X_TOOLKIT=none + + dnl GTK scrollbars resembles toolkit scrollbars alot, so to avoid + dnl a lot if #ifdef:s, say we have toolkit scrollbars. + with_toolkit_scroll_bars=yes +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([ + [AC_TRY_LINK([ #include #include ], [], emacs_cv_x11_version_5_with_xaw=yes, - emacs_cv_x11_version_5_with_xaw=no)) + 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 @@ -1699,15 +1953,16 @@ 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 ], + [AC_TRY_LINK([#include ], [#if XtSpecificationRelease < 6 fail; #endif -], emacs_cv_x11_toolkit_version_6=yes, emacs_cv_x11_toolkit_version_6=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) + AC_DEFINE(HAVE_X11XTR6, 1, + [Define to 1 if you have the X11R6 or newer version of Xt.]) else AC_MSG_RESULT(before 6) fi @@ -1721,26 +1976,58 @@ 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 + AC_CACHE_CHECK(for LessTif where some systems put it, emacs_cv_lesstif, + # We put this in CFLAGS temporarily to precede other -I options + # that might be in CFLAGS temporarily. + # We put this in CPPFLAGS where it precedes the other -I options. + OLD_CPPFLAGS=$CPPFLAGS + OLD_CFLAGS=$CFLAGS + CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS" + CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS" + [AC_TRY_COMPILE([#include ], + [int x = 5;], + emacs_cv_lesstif=yes, emacs_cv_lesstif=no)]) + if test $emacs_cv_lesstif = yes; then + # Make sure this -I option remains in CPPFLAGS after it is set + # back to REAL_CPPFLAGS. + # There is no need to change REAL_CFLAGS, because REAL_CFLAGS does not + # have those other -I options anyway. Ultimately, having this + # directory ultimately in CPPFLAGS will be enough. + REAL_CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $REAL_CPPFLAGS" + LDFLAGS="-L/usr/X11R6/LessTif/Motif1.2/lib $LDFLAGS" + else + CFLAGS=$OLD_CFLAGS + CPPFLAGS=$OLD_CPPFLAGS + fi AC_CACHE_CHECK(for Motif version 2.1, emacs_cv_motif_version_2_1, - AC_TRY_COMPILE([#include ], + [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)) + 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, HAVE_LIBXP=yes, , -lXext) + AC_DEFINE(HAVE_MOTIF_2_1, 1, + [Define to 1 if you have Motif 2.1 or newer.]) + AC_CHECK_LIB(Xp, XpCreateContext, HAVE_LIBXP=yes) if test ${HAVE_LIBXP} = yes; then - AC_DEFINE(HAVE_LIBXP) - fi + AC_DEFINE(HAVE_LIBXP, 1, + [Define to 1 if you have the Xp library (-lXp).]) + fi fi fi @@ -1748,22 +2035,23 @@ 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}" + dnl Fixme: determine what Scrollbar.h needs to avoid compilation + dnl errors from the test without the `-'. 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) + AC_DEFINE(HAVE_XAW3D, 1, + [Define to 1 if you have the Xaw3d library (-lXaw3d).]) fi fi fi - -dnl Use toolkit scroll bars if configured for X toolkit and either + +dnl Use toolkit scroll bars if configured for GTK or X toolkit and either dnl using Motif or Xaw3d is available, and unless dnl --with-toolkit-scroll-bars=no was specified. +AH_TEMPLATE(USE_TOOLKIT_SCROLL_BARS, + [Define to 1 if we should use toolkit scroll bars.])dnl USE_TOOLKIT_SCROLL_BARS=no if test "${with_toolkit_scroll_bars}" != "no"; then if test "${USE_X_TOOLKIT}" != "none"; then @@ -1775,123 +2063,206 @@ if test "${with_toolkit_scroll_bars}" != "no"; then AC_DEFINE(USE_TOOLKIT_SCROLL_BARS) USE_TOOLKIT_SCROLL_BARS=yes fi + elif test "${HAVE_GTK}" = "yes"; then + AC_DEFINE(USE_TOOLKIT_SCROLL_BARS) + USE_TOOLKIT_SCROLL_BARS=yes fi fi -dnl Don't use X11 input methods if user specifies he doesn't want it -dnl with `--with-xim=no'. +dnl See if XIM is available. +AC_TRY_COMPILE([ + #include + #include ], + [XIMProc callback;], + HAVE_XIM=yes + AC_DEFINE(HAVE_XIM, 1, [Define to 1 if XIM is available]), + HAVE_XIM=no) + +dnl `--with-xim' now controls only the initial value of use_xim at run time. if test "${with_xim}" != "no"; then - AC_DEFINE(USE_XIM) + AC_DEFINE(USE_XIM, 1, + [Define to 1 if we should use XIM, if it is available.]) +fi + + +if test "${HAVE_XIM}" != "no"; then + late_CFLAGS=$CFLAGS + if test "$GCC" = yes; then + CFLAGS="$CFLAGS --pedantic-errors" + fi + AC_TRY_COMPILE([ +#include +#include ], +[Display *display; +XrmDatabase db; +char *res_name; +char *res_class; +XIMProc callback; +XPointer *client_data; +#ifndef __GNUC__ +/* If we're not using GCC, it's probably not XFree86, and this is + probably right, but we can't use something like --pedantic-errors. */ +extern Bool XRegisterIMInstantiateCallback(Display*, XrmDatabase, char*, + char*, XIMProc, XPointer*); +#endif +(void)XRegisterIMInstantiateCallback(display, db, res_name, res_class, callback, + client_data);], + [emacs_cv_arg6_star=yes]) + AH_TEMPLATE(XRegisterIMInstantiateCallback_arg6, + [Define to the type of the 6th arg of XRegisterIMInstantiateCallback, +either XPointer or XPointer*.])dnl + if test "$emacs_cv_arg6_star" = yes; then + AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer*]) + else + AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer]) + fi + CFLAGS=$late_CFLAGS 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_MSG_CHECKING(for XpmReturnAllocPixels preprocessor define) - AC_EGREP_CPP(no_return_alloc_pixels, - [#include "X11/xpm.h" + 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) - fi - CFLAGS="${old_c_flags}" - if test "${HAVE_XPM}" = "yes"; then - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) + ], 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 - AC_DEFINE(HAVE_XPM) + AC_DEFINE(HAVE_XPM, 1, [Define to 1 if you have the Xpm libary (-lXpm).]) 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 Checking for jpeglib.h can lose because 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}" + AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes)) fi + AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl if test "${HAVE_JPEG}" = "yes"; then AC_DEFINE(HAVE_JPEG) + AC_EGREP_CPP([version= *(6[2-9]|[7-9][0-9])], + [#include + version=JPEG_LIB_VERSION +], + AC_DEFINE(HAVE_JPEG), + [AC_MSG_WARN([libjpeg found, but not version 6b or later]) + HAVE_JPEG=no]) 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_get_channels, HAVE_PNG=yes, , -lX11 -lz -lm)) - CFLAGS="${old_c_flags}" + # Debian unstable as of July 2003 has multiple libpngs, and puts png.h + # in /usr/include/libpng. + AC_CHECK_HEADERS(png.h libpng/png.h) + if test "$ac_cv_header_png_h" = yes || test "$ac_cv_header_libpng_png_h" = yes ; then + AC_CHECK_LIB(png, png_get_channels, HAVE_PNG=yes, , -lz -lm) + fi fi if test "${HAVE_PNG}" = "yes"; then - AC_DEFINE(HAVE_PNG) + AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library (-lpng).]) 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" + 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)) - CFLAGS="${old_c_flags}" fi if test "${HAVE_TIFF}" = "yes"; then - AC_DEFINE(HAVE_TIFF) + AC_DEFINE(HAVE_TIFF, 1, [Define to 1 if you have the tiff library (-ltiff).]) 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}" +# EGifPutExtensionLast only exists from version libungif-4.1.0b1. +# Earlier versions can crash Emacs. + AC_CHECK_LIB(ungif, EGifPutExtensionLast, HAVE_GIF=yes)) fi if test "${HAVE_GIF}" = "yes"; then - AC_DEFINE(HAVE_GIF) + AC_DEFINE(HAVE_GIF, 1, [Define to 1 if you have the ungif library (-lungif).]) + fi +fi + +### Use Mac OS X Carbon API to implement GUI. +HAVE_CARBON=no +if test "${with_carbon}" != "no"; then + AC_CHECK_HEADER(Carbon/Carbon.h, HAVE_CARBON=yes) +fi + +if test "${HAVE_CARBON}" = "yes"; then + AC_DEFINE(HAVE_CARBON, 1, [Define to 1 if you are using the Carbon API on Mac OS X.]) + window_system=mac + ## Specify the install directory + carbon_appdir= + if test "${carbon_appdir_x}" != ""; then + case ${carbon_appdir_x} in + y | ye | yes) carbon_appdir=/Applications ;; + * ) carbon_appdir=${carbon_appdir_x} ;; + esac + fi + # We also have mouse menus. + HAVE_MENUS=yes +fi + +### Use session management (-lSM -lICE) if available +HAVE_X_SM=no +if test "${HAVE_X11}" = "yes"; then + AC_CHECK_HEADER(X11/SM/SMlib.h, + AC_CHECK_LIB(SM, SmcOpenConnection, HAVE_X_SM=yes, -lICE)) + + if test "${HAVE_X_SM}" = "yes"; then + AC_DEFINE(HAVE_X_SM, 1, [Define to 1 if you have the SM library (-lSM).]) + case "$LIBS" in + *-lSM*) ;; + *) LIBS="-lSM -lICE $LIBS" ;; + esac fi fi # If netdb.h doesn't declare h_errno, we must declare it by hand. AC_CACHE_CHECK(whether netdb declares h_errno, emacs_cv_netdb_declares_h_errno, -AC_TRY_LINK([#include ], +[AC_TRY_LINK([#include ], [return h_errno;], - emacs_cv_netdb_declares_h_errno=yes, emacs_cv_netdb_declares_h_errno=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) + AC_DEFINE(HAVE_H_ERRNO, 1, [Define to 1 if netdb.h declares h_errno.]) fi AC_FUNC_ALLOCA @@ -1900,10 +2271,10 @@ AC_FUNC_ALLOCA # On HPUX 9.01, -lm does not contain logb, so check for sqrt. AC_CHECK_LIB(m, sqrt) -# Check for mail-locking functions in a "mail" library +# Check for mail-locking functions in a "mail" library. Probably this should +# have the same check as for liblockfile below. 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 @@ -1916,10 +2287,9 @@ if test "$ac_cv_lib_lockfile_maillock" = no; then 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 +There may be a `development' package to install containing liblockfile.]) else : + fi fi AC_CHECK_FUNCS(touchlock) AC_CHECK_HEADERS(maillock.h) @@ -1928,19 +2298,27 @@ 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 getwd shutdown strftime getaddrinfo \ -__fpending mblen mbrlen strsignal setitimer ualarm index rindex \ -gai_strerror mkstemp) +utimes setrlimit setpgid getcwd getwd shutdown getaddrinfo \ +__fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \ +sendto recvfrom getsockopt setsockopt getsockname getpeername \ +gai_strerror mkstemp getline getdelim mremap memmove fsync bzero \ +memset memcmp memmove difftime memcpy mempcpy mblen mbrlen posix_memalign) + +AC_CHECK_HEADERS(sys/un.h) AC_FUNC_MKTIME if test "$ac_cv_func_working_mktime" = no; then - AC_DEFINE(BROKEN_MKTIME) + AC_DEFINE(BROKEN_MKTIME, 1, [Define to 1 if the mktime function is broken.]) fi AC_FUNC_GETLOADAVG AC_FUNC_FSEEKO +AC_FUNC_GETPGRP + +AC_FUNC_STRFTIME + # UNIX98 PTYs. AC_CHECK_FUNCS(grantpt) @@ -1953,6 +2331,26 @@ AC_CHECK_FUNCS(getpt) # than to expect to find it in ncurses. AC_CHECK_LIB(ncurses, tparm) +# Do we need the Hesiod library to provide the support routines? +if test "$with_hesiod" = yes ; then + # Don't set $LIBS here -- see comments above. + resolv=no + AC_CHECK_FUNC(res_send, , [AC_CHECK_FUNC(__res_send, , + [AC_CHECK_LIB(resolv, res_send, resolv=yes, + [AC_CHECK_LIB(resolv, __res_send, resolv=yes)])])]) + if test "$resolv" = yes ; then + RESOLVLIB=-lresolv + AC_DEFINE(HAVE_LIBRESOLV, 1, + [Define to 1 if you have the resolv library (-lresolv).]) + else + RESOLVLIB= + fi + AC_CHECK_FUNC(hes_getmailhost, , [AC_CHECK_LIB(hesiod, hes_getmailhost, + AC_DEFINE(HAVE_LIBHESIOD, 1, + [Define to 1 if you have the hesiod library (-lhesiod).]), + :, $RESOLVLIB)]) +fi + # These tell us which Kerberos-related libraries to use. if test "${with_kerberos+set}" = set; then AC_CHECK_LIB(com_err, com_err) @@ -1970,11 +2368,11 @@ if test "${with_kerberos+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(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))) + [AC_CHECK_HEADERS(kerberosIV/krb.h,, + [AC_CHECK_HEADERS(kerberos/krb.h)])]) fi AC_CHECK_HEADERS(com_err.h) fi @@ -2024,14 +2422,16 @@ else fi])dnl AC_MSG_RESULT($emacs_cv_localtime_cache) if test $emacs_cv_localtime_cache = yes; then - AC_DEFINE(LOCALTIME_CACHE) + AC_DEFINE(LOCALTIME_CACHE, 1, + [Define to 1 if localtime caches TZ.]) fi if test "x$HAVE_TIMEVAL" = xyes; then AC_CHECK_FUNCS(gettimeofday) - AC_CACHE_CHECK(whether gettimeofday can accept two arguments, - emacs_cv_gettimeofday_two_arguments, - AC_TRY_COMPILE([ + if test $ac_cv_func_gettimeofday = yes; then + AC_CACHE_CHECK(whether gettimeofday can accept two arguments, + emacs_cv_gettimeofday_two_arguments, + [AC_TRY_COMPILE([ #ifdef TIME_WITH_SYS_TIME #include #include @@ -2042,15 +2442,20 @@ if test "x$HAVE_TIMEVAL" = xyes; then #include #endif #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) + [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, 1, + [Define to 1 if gettimeofday accepts only one argument.]) + fi fi fi +# This defines (or not) HAVE_TZNAME and HAVE_TM_ZONE. +AC_STRUCT_TIMEZONE + 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, @@ -2089,37 +2494,93 @@ if test $ok_so_far = yes; then AC_CHECK_HEADER(arpa/inet.h, , ok_so_far=no) fi if test $ok_so_far = yes; then - AC_DEFINE(HAVE_INET_SOCKETS) +dnl Fixme: Not used. Should this be HAVE_SOCKETS? + AC_DEFINE(HAVE_INET_SOCKETS, 1, + [Define to 1 if you have inet sockets.]) fi +AC_CHECK_HEADERS(sys/ioctl.h net/if.h) + if test -f /usr/lpp/X11/bin/smt.exp; then - AC_DEFINE(HAVE_AIX_SMT_EXP) + AC_DEFINE(HAVE_AIX_SMT_EXP, 1, + [Define to 1 if the file /usr/lpp/X11/bin/smt.exp exists.]) 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) + AC_DEFINE(HAVE_DEV_PTMX, 1, [Define to 1 if dynamic ptys are supported.]) else AC_MSG_RESULT(no) fi -AC_FUNC_VFORK +AC_FUNC_FORK + +dnl Adapted from Haible's version. +AC_CACHE_CHECK([for nl_langinfo and CODESET], emacs_cv_langinfo_codeset, + [AC_TRY_LINK([#include ], + [char* cs = nl_langinfo(CODESET);], + emacs_cv_langinfo_codeset=yes, + emacs_cv_langinfo_codeset=no) + ]) +if test $emacs_cv_langinfo_codeset = yes; then + AC_DEFINE(HAVE_LANGINFO_CODESET, 1, + [Define if you have and nl_langinfo(CODESET).]) +fi + +AC_CHECK_TYPES(size_t) + +AC_TYPE_MBSTATE_T + +dnl Restrict could probably be used effectively other than in regex.c. +AC_CACHE_CHECK([for C restrict keyword], emacs_cv_c_restrict, + [AC_TRY_COMPILE([void fred (int *restrict x);], [], + emacs_cv_c_restrict=yes, + [AC_TRY_COMPILE([void fred (int *__restrict x);], [], + emacs_cv_c_restrict=__restrict, + emacs_cv_c_restrict=no)])]) +case "$emacs_cv_c_restrict" in + yes) emacs_restrict=restrict;; + no) emacs_restrict="";; + *) emacs_restrict="$emacs_cv_c_restrict";; +esac +if test "$emacs_restrict" != __restrict; then + AC_DEFINE_UNQUOTED(__restrict, $emacs_restrict, + [Define to compiler's equivalent of C99 restrict keyword. + Don't define if equivalent is `__restrict'.]) +fi + +AC_CACHE_CHECK([for C restricted array declarations], emacs_cv_c_restrict_arr, + [AC_TRY_COMPILE([void fred (int x[__restrict]);], [], + emacs_cv_c_restrict_arr=yes, emacs_cv_c_restrict_arr=no)]) +if test "$emacs_cv_c_restrict_arr" = yes; then + AC_DEFINE(__restrict_arr, __restrict, + [Define to compiler's equivalent of C99 restrict keyword in array + declarations. Define as empty for no equivalent.]) +fi + +dnl Fixme: AC_SYS_POSIX_TERMIOS should probably be used, but it's not clear +dnl how the tty code is related to POSIX and/or other versions of termios. +dnl The following looks like a useful start. +dnl +dnl AC_SYS_POSIX_TERMIOS +dnl if test $ac_cv_sys_posix_termios = yes; then +dnl AC_DEFINE(HAVE_TERMIOS, 1, [Define to 1 if you have POSIX-style functions +dnl and macros for terminal control.]) +dnl AC_DEFINE(HAVE_TCATTR, 1, [Define to 1 if you have tcgetattr and tcsetattr.]) +dnl fi -# Fixme: This should be replaced when we have autoconf 2.14. -AC_SIZE_T +dnl Fixme: Use AC_FUNC_MEMCMP since memcmp is used. (Needs libobj replacement.) # 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. -version=`grep 'defconst[ ]*emacs-version' ${srcdir}/lisp/version.el \ - | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'` -changequote([, ])dnl +[version=`grep 'defconst[ ]*emacs-version' ${srcdir}/lisp/version.el \ + | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`] if test x"${version}" = x; then - AC_MSG_ERROR(can't find current emacs version in \`${srcdir}/lisp/version.el'.) + AC_MSG_ERROR([can't find current emacs version in `${srcdir}/lisp/version.el'.]) fi ### Specify what sort of things we'll be editing into Makefile and config.h. @@ -2144,6 +2605,8 @@ AC_SUBST(etcdir) AC_SUBST(archlibdir) AC_SUBST(docdir) AC_SUBST(bitmapdir) +AC_SUBST(gamedir) +AC_SUBST(gameuser) AC_SUBST(c_switch_system) AC_SUBST(c_switch_machine) AC_SUBST(LD_SWITCH_X_SITE) @@ -2154,39 +2617,354 @@ AC_SUBST(X_TOOLKIT_TYPE) AC_SUBST(machfile) AC_SUBST(opsysfile) AC_SUBST(GETLOADAVG_LIBS) - -AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "${canonical}") -AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}") -AC_DEFINE_UNQUOTED(config_machfile, "${machfile}") -AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}") -AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE}) -AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX}) -AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE, ${C_SWITCH_X_SITE}) -AC_DEFINE_UNQUOTED(UNEXEC_SRC, ${UNEXEC_SRC}) +AC_SUBST(carbon_appdir) + +AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "${canonical}", + [Define to the canonical Emacs configuration name.]) +AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}", + [Define to the options passed to configure.]) +AC_DEFINE_UNQUOTED(config_machfile, "${machfile}", + [Define to the used machine dependent file.]) +AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}", + [Define to the used os dependent file.]) +AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE}, +[Define LD_SWITCH_X_SITE to contain any special flags your loader + may need to deal with X Windows. For instance, if you've defined + HAVE_X_WINDOWS above and your X libraries aren't in a place that + your loader can find on its own, you might want to add "-L/..." or + something similar.]) +AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX}, + [Define LD_SWITCH_X_SITE_AUX with an -R option + in case it's needed (for Solaris, for example).]) +AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE, ${C_SWITCH_X_SITE}, +[Define C_SWITCH_X_SITE to contain any special flags your compiler + may need to deal with X Windows. For instance, if you've defined + HAVE_X_WINDOWS above and your X include files aren't in a place + that your compiler can find on its own, you might want to add + "-I/..." or something similar.]) +AC_DEFINE_UNQUOTED(UNEXEC_SRC, ${UNEXEC_SRC}, + [Define to the unexec source file name.]) if test "${HAVE_X_WINDOWS}" = "yes" ; then - AC_DEFINE(HAVE_X_WINDOWS) + AC_DEFINE(HAVE_X_WINDOWS, 1, + [Define to 1 if you want to use the X window system.]) fi if test "${USE_X_TOOLKIT}" != "none" ; then - AC_DEFINE(USE_X_TOOLKIT) + AC_DEFINE(USE_X_TOOLKIT, 1, [Define to 1 if using an X toolkit.]) fi if test "${HAVE_X11}" = "yes" ; then - AC_DEFINE(HAVE_X11) + AC_DEFINE(HAVE_X11, 1, + [Define to 1 if you want to use version 11 of X windows. + Otherwise, Emacs expects to use version 10.]) fi if test "${HAVE_XFREE386}" = "yes" ; then - AC_DEFINE(HAVE_XFREE386) + AC_DEFINE(HAVE_XFREE386, 1, [Define to 1 if you're using XFree386.]) fi if test "${HAVE_MENUS}" = "yes" ; then - AC_DEFINE(HAVE_MENUS) + AC_DEFINE(HAVE_MENUS, 1, + [Define to 1 if you have mouse menus. + (This is automatic if you use X, but the option to specify it remains.) + It is also defined with other window systems that support xmenu.c.]) fi if test "${GNU_MALLOC}" = "yes" ; then - AC_DEFINE(GNU_MALLOC) + AC_DEFINE(GNU_MALLOC, 1, + [Define to 1 if you want to use the GNU memory allocator.]) fi if test "${REL_ALLOC}" = "yes" ; then - AC_DEFINE(REL_ALLOC) + AC_DEFINE(REL_ALLOC, 1, + [Define REL_ALLOC if you want to use the relocating allocator for + buffer space.]) fi +AH_TOP([/* GNU Emacs site configuration template file. + Copyright (C) 1988, 93, 94, 99, 2000, 2002 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + + +/* No code in Emacs #includes config.h twice, but some bits of code + intended to work with other packages as well (like gmalloc.c) + think they can include it as many times as they like. */ +#ifndef EMACS_CONFIG_H +#define EMACS_CONFIG_H +])dnl + +AH_BOTTOM([ +/* If we're using any sort of window system, define some consequences. */ +#ifdef HAVE_X_WINDOWS +#define HAVE_WINDOW_SYSTEM +#define MULTI_KBOARD +#define HAVE_MOUSE +#endif + +/* If we're using the Carbon API on Mac OS X, define a few more + variables as well. */ +#ifdef HAVE_CARBON +#define HAVE_WINDOW_SYSTEM +#define HAVE_MOUSE +#endif + +/* Define USER_FULL_NAME to return a string + that is the user's full name. + It can assume that the variable `pw' + points to the password file entry for this user. + + At some sites, the pw_gecos field contains + the user's full name. If neither this nor any other + field contains the right thing, use pw_name, + giving the user's login name, since that is better than nothing. */ +#define USER_FULL_NAME pw->pw_gecos + +/* Define AMPERSAND_FULL_NAME if you use the convention + that & in the full name stands for the login id. */ +/* Turned on June 1996 supposing nobody will mind it. */ +#define AMPERSAND_FULL_NAME + +/* We have blockinput.h. */ +#define DO_BLOCK_INPUT + +/* Define HAVE_SOUND if we have sound support. We know it works + and compiles only on the specified platforms. For others, + it probably doesn't make sense to try. */ + +#if defined __FreeBSD__ || defined __NetBSD__ || defined __linux__ +#ifdef HAVE_MACHINE_SOUNDCARD_H +#define HAVE_SOUND 1 +#endif +#ifdef HAVE_SYS_SOUNDCARD_H +#define HAVE_SOUND 1 +#endif +#ifdef HAVE_SOUNDCARD_H +#define HAVE_SOUND 1 +#endif +#endif /* __FreeBSD__ || __NetBSD__ || __linux__ */ + +/* If using GNU, then support inline function declarations. */ +/* Don't try to switch on inline handling as detected by AC_C_INLINE + generally, because even if non-gcc compilers accept `inline', they + may reject `extern inline'. */ +#ifdef __GNUC__ +#define INLINE __inline__ +#else +#define INLINE +#endif + +/* Include the os and machine dependent files. */ +#include config_opsysfile +#include config_machfile + +/* Load in the conversion definitions if this system + needs them and the source file being compiled has not + said to inhibit this. There should be no need for you + to alter these lines. */ + +#ifdef SHORTNAMES +#ifndef NO_SHORTNAMES +#include "../shortnames/remap.h" +#endif /* not NO_SHORTNAMES */ +#endif /* SHORTNAMES */ + +/* If no remapping takes place, static variables cannot be dumped as + pure, so don't worry about the `static' keyword. */ +#ifdef NO_REMAP +#undef static +#endif + +/* Define `subprocesses' should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + These do not work for some USG systems yet; + for the ones where they work, the s/SYSTEM.h file defines this flag. */ + +#ifndef VMS +#ifndef USG +/* #define subprocesses */ +#endif +#endif + +/* SIGTYPE is the macro we actually use. */ +#ifndef SIGTYPE +#define SIGTYPE RETSIGTYPE +#endif + +#ifdef emacs /* Don't do this for lib-src. */ +/* Tell regex.c to use a type compatible with Emacs. */ +#define RE_TRANSLATE_TYPE Lisp_Object +#define RE_TRANSLATE(TBL, C) CHAR_TABLE_TRANSLATE (TBL, C) +#define RE_TRANSLATE_P(TBL) (XFASTINT (TBL) != 0) +#endif + +/* Avoid link-time collision with system mktime if we will use our own. */ +#if ! HAVE_MKTIME || BROKEN_MKTIME +#define mktime emacs_mktime +#endif + +#define my_strftime nstrftime /* for strftime.c */ + +/* The rest of the code currently tests the CPP symbol BSTRING. + Override any claims made by the system-description files. + Note that on some SCO version it is possible to have bcopy and not bcmp. */ +#undef BSTRING +#if defined (HAVE_BCOPY) && defined (HAVE_BCMP) +#define BSTRING +#endif + +/* Some of the files of Emacs which are intended for use with other + programs assume that if you have a config.h file, you must declare + the type of getenv. + + This declaration shouldn't appear when alloca.s or Makefile.in + includes config.h. */ +#ifndef NOT_C_CODE +extern char *getenv (); +#endif + +/* These default definitions are good for almost all machines. + The exceptions override them in m/MACHINE.h. */ + +#ifndef BITS_PER_CHAR +#define BITS_PER_CHAR 8 +#endif + +#ifndef BITS_PER_SHORT +#define BITS_PER_SHORT 16 +#endif + +/* Note that lisp.h uses this in a preprocessor conditional, so it + would not work to use sizeof. That being so, we do all of them + without sizeof, for uniformity's sake. */ +#ifndef BITS_PER_INT +#define BITS_PER_INT 32 +#endif + +#ifndef BITS_PER_LONG +#ifdef _LP64 +#define BITS_PER_LONG 64 +#else +#define BITS_PER_LONG 32 +#endif +#endif + +/* Define if the compiler supports function prototypes. It may do so + but not define __STDC__ (e.g. DEC C by default) or may define it as + zero. */ +#undef PROTOTYPES +/* For mktime.c: */ +#ifndef __P +# if defined PROTOTYPES +# define __P(args) args +# else +# define __P(args) () +# endif /* GCC. */ +#endif /* __P */ + +/* Don't include "string.h" or in non-C code. */ +#ifndef NOT_C_CODE +#ifdef HAVE_STRING_H +#include "string.h" +#endif +#ifdef HAVE_STRINGS_H +#include "strings.h" /* May be needed for bcopy & al. */ +#endif +#ifdef HAVE_STDLIB_H +#include +#endif +#ifndef __GNUC__ +# ifdef HAVE_ALLOCA_H +# include +# else /* AIX files deal with #pragma. */ +# ifndef alloca /* predefined by HP cc +Olibcalls */ +char *alloca (); +# endif +# endif /* HAVE_ALLOCA_H */ +#endif /* __GNUC__ */ +#ifndef HAVE_SIZE_T +typedef unsigned size_t; +#endif +#endif /* NOT_C_CODE */ + +/* Define HAVE_X_I18N if we have usable i18n support. */ + +#ifdef HAVE_X11R6 +#define HAVE_X_I18N +#elif defined HAVE_X11R5 && !defined X11R5_INHIBIT_I18N +#define HAVE_X_I18N +#endif + +/* Define HAVE_X11R6_XIM if we have usable X11R6-style XIM support. */ + +#if defined HAVE_X11R6 && !defined INHIBIT_X11R6_XIM +#define HAVE_X11R6_XIM +#endif + +/* Should we enable expensive run-time checking of data types? */ +#undef ENABLE_CHECKING + +#if defined __GNUC__ && (__GNUC__ > 2 \ + || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5)) +#define NO_RETURN __attribute__ ((__noreturn__)) +#else +#define NO_RETURN /* nothing */ +#endif + +/* These won't be used automatically yet. We also need to know, at least, + that the stack is continuous. */ +#ifdef __GNUC__ +# ifndef GC_SETJMP_WORKS + /* GC_SETJMP_WORKS is nearly always appropriate for GCC -- + see NON_SAVING_SETJMP in the target descriptions. */ + /* Exceptions (see NON_SAVING_SETJMP in target description) are ns32k, + SCO5 non-ELF (but Emacs specifies ELF) and SVR3 on x86. + Fixme: Deal with ns32k, SVR3. */ +# define GC_SETJMP_WORKS 1 +# endif +# ifndef GC_LISP_OBJECT_ALIGNMENT +# define GC_LISP_OBJECT_ALIGNMENT (__alignof__ (Lisp_Object)) +# endif +#endif + +#ifndef HAVE_BCOPY +#define bcopy(a,b,s) memcpy (b,a,s) +#endif +#ifndef HAVE_BZERO +#define bzero(a,s) memset (a,0,s) +#endif +#ifndef HAVE_BCMP +#define BCMP memcmp +#endif + +#endif /* EMACS_CONFIG_H */ + +/* +Local Variables: +mode: c +End: +*/ +])dnl + #### Report on what we decided to do. +#### Report GTK as a toolkit, even if it doesn't use Xt. +#### It makes printing result more understandable as using GTK sets +#### toolkit_scroll_bars to yes by default. +if test "${HAVE_GTK}" = "yes"; then + USE_X_TOOLKIT=GTK +fi + echo " Configured for \`${canonical}'. @@ -2221,16 +2999,24 @@ echo " Does Emacs use X toolkit scroll bars? ${USE_TOOLKIT_SC echo # Remove any trailing slashes in these variables. -changequote(, )dnl -test "${prefix}" != NONE && +[test "${prefix}" != NONE && prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'` test "${exec_prefix}" != NONE && - exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'` -changequote([, ])dnl + exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`] + +## 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 \ - lisp/Makefile leim/Makefile, [ + lisp/Makefile lispref/Makefile lispintro/Makefile leim/Makefile, [ ### Make the necessary directories, if they don't exist. for dir in etc lisp ; do @@ -2241,26 +3027,24 @@ done # and lib-src/Makefile from ${srcdir}/lib-src/Makefile.c # This must be done after src/config.h is built, since we rely on that file. -changequote(, )dnl The horror, the horror. # Now get this: Some word that is part of the ${srcdir} directory name # or the ${configuration} value might, just might, happen to be an # identifier like `sun4' or `i386' or something, and be predefined by # the C preprocessor to some helpful value like 1, or maybe the empty # string. Needless to say consequent macro substitutions are less # than conducive to the makefile finding the correct directory. -undefs="`echo $top_srcdir $configuration $canonical | +[undefs="`echo $top_srcdir $configuration $canonical | sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/ *$//' \ -e 's/ */ -U/g' -e 's/-U[0-9][^ ]*//g' \ -`" -changequote([, ])dnl +`"] echo creating src/epaths.h -make epaths-force +${MAKE-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$NON_GNU_CPP" = x; then +if test "x$GCC" = xyes && test "x$CPP_NEED_TRADITIONAL" = xyes; then CPPFLAGS="$CPPFLAGS -traditional" fi @@ -2270,9 +3054,9 @@ echo creating lib-src/Makefile sed -e '/start of cpp stuff/q' \ < Makefile.c > junk1.c sed -e '1,/start of cpp stuff/d'\ - -e 's@/\*\*/#\(.*\)$@/* \1 */@' \ + -e 's,/\*\*/#\(.*\)$,/* \1 */,' \ < Makefile.c > junk.c - $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \ + $CPP $undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \ sed -e 's/^ / /' -e '/^#/d' -e '/^[ ]*$/d' > junk2.c cat junk1.c junk2.c > Makefile.new rm -f junk.c junk1.c junk2.c @@ -2286,9 +3070,9 @@ echo creating src/Makefile sed -e '/start of cpp stuff/q' \ < Makefile.c > junk1.c sed -e '1,/start of cpp stuff/d'\ - -e 's@/\*\*/#\(.*\)$@/* \1 */@' \ + -e 's,/\*\*/#\(.*\)$,/* \1 */,' \ < Makefile.c > junk.c - $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \ + $CPP $undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \ sed -e 's/^ / /' -e '/^#/d' -e '/^[ ]*$/d' > junk2.c cat junk1.c junk2.c > Makefile.new rm -f junk.c junk1.c junk2.c @@ -2296,13 +3080,16 @@ echo creating src/Makefile mv -f Makefile.new Makefile ) -if test ! -f src/.gdbinit && test -f $top_srcdir/src/.gdbinit; then +if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then echo creating src/.gdbinit - echo source $top_srcdir/src/.gdbinit > src/.gdbinit + echo source $srcdir/src/.gdbinit > src/.gdbinit fi # This is how we know whether to re-run configure in certain cases. touch src/config.stamp -], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPPFLAGS="$CPPFLAGS"]) +], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPP_NEED_TRADITIONAL="$CPP_NEED_TRADITIONAL" CPPFLAGS="$CPPFLAGS"]) +m4_if(dnl Do not change this comment + arch-tag: 156a4dd5-bddc-4d18-96ac-f37742cf6a5e +)dnl