-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.0)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)
-
-bindir='${exec_prefix}/bin'
-datadir='${prefix}/share'
-sharedstatedir='${prefix}/com'
-libexecdir='${exec_prefix}/libexec'
-mandir='${prefix}/man/man1'
-infodir='${prefix}/info'
+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'
lisppath='${locallisppath}:${lispdir}'
etcdir='${datadir}/emacs/${version}/etc'
lockdir='${sharedstatedir}/emacs/lock'
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 ;;
l | lu | luc | luci | lucid ) val=lucid ;;
- a | at | ath | athe | athena ) val=athena ;;
+ a | at | ath | athe | athen | athena ) val=athena ;;
m | mo | mot | moti | motif ) val=motif ;;
dnl These don't currently work.
dnl o | op | ope | open | open- | open-l | open-lo \
* )
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([the \`--with-x-toolkit' option is supposed to have a value
-which is \`yes', \`no', \`lucid', \`athena', or \`motif'.
+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.])
;;
esac
. )
## We may be able to use the $PWD environment variable to make this
## absolute. But sometimes PWD is inaccurate.
+ ## Make sure CDPATH doesn't affect cd (in case PWD is relative).
+ CDPATH=
if test "${PWD}" != "" && test "`(cd ${PWD} ; sh -c pwd)`" = "`pwd`" ;
then
srcdir="$PWD"
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
*-*-netbsd* )
opsys=netbsd
case "${canonical}" in
- i[345]86-*-netbsd*) machine=intel386 ;;
+ i[3456]86-*-netbsd*) machine=intel386 ;;
m68k-*-netbsd*)
# This is somewhat bogus.
machine=hp9000s300 ;;
machine=alliant-2800 opsys=bsd4-3
;;
+ ## Alpha (DEC) machines.
alpha-dec-osf* )
machine=alpha opsys=osf1
;;
+ 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
;;
- ## Appallings - I mean, Apollos - running Domain
- m68*-apollo* )
- machine=apollo opsys=domain NON_GNU_CPP=/usr/lib/cpp
+ ## Apollo, Domain/OS
+ m68*-apollo-* )
+ machine=apollo opsys=bsd4-3
;;
## AT&T 3b2, 3b5, 3b15, 3b20
## 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
;;
mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0* | mips-dec-bsd4.2* )
machine=pmax opsys=bsd4-2
;;
- mips-dec-ultrix* | mips-dec-bsd* )
+ mips-dec-ultrix4.[12]* | mips-dec-bsd* )
machine=pmax opsys=bsd4-3
;;
+ mips-dec-ultrix* )
+ machine=pmax opsys=ultrix4-3
+ ;;
mips-dec-osf* )
machine=pmax opsys=osf1
;;
+ mips-dec-mach_bsd4.3* )
+ machine=pmax opsys=mach-bsd4-3
+ ;;
## Motorola Delta machines
m68k-motorola-sysv* | m68000-motorola-sysv* )
machine=delta opsys=usg5-3
if test -z "`type gnucc | grep 'not found'`"
- then CC=gnucc
+ then
+ if test -s /etc/167config
+ then CC="gnucc -m68040"
+ else CC="gnucc -m68881"
+ fi
else
if test -z "`type gcc | grep 'not found'`"
then CC=gcc
fi
;;
m88k-motorola-sysv4* )
- machine=delta88k opsys=usg5-4
+ # jbotte@bnr.ca says that UNIX_System_V <hostName> 4.0 R40V4.3 m88k mc88110
+ # needs POSIX_SIGNALS and therefore needs usg5-4-2.
+ # I hope there are not other 4.0 versions for this machine
+ # which really need usg5-4 instead.
+ machine=delta88k opsys=usg5-4-2
;;
m88k-motorola-sysv* | m88k-motorola-m88kbcs* )
machine=delta88k opsys=usg5-3
[56].[0-9] ) machine=nh4000 opsys=cxux ;;
[7].[0-9] ) machine=nh4000 opsys=cxux7 ;;
esac
+ NON_GNU_CPP="/lib/cpp"
;;
## Harris ecx or gcx running CX/UX (Series 1200, Series 3000)
m68k-harris-cxux* )
machine=nh3000 opsys=cxux
;;
+ ## Harris power pc NightHawk running Power UNIX (Series 6000)
+ powerpc-harris-powerunix )
+ machine=nh6000 opsys=powerunix
+ NON_GNU_CPP="cc -Xo -E -P"
+ ;;
## Honeywell XPS100
xps*-honeywell-sysv* )
m68*-hp-bsd* )
machine=hp9000s300 opsys=bsd4-3
;;
- ## HP/UX 7, 8 and 9 are supported on these machines.
+ ## HP/UX 7, 8, 9, and 10 are supported on these machines.
m68*-hp-hpux* )
case "`uname -r`" in
## Someone's system reports A.B8.05 for this.
*.B8.* ) machine=hp9000s300 opsys=hpux8 ;;
*.08.* ) machine=hp9000s300 opsys=hpux8 ;;
*.09.* ) machine=hp9000s300 opsys=hpux9 ;;
+ *.10.* ) machine=hp9000s300 opsys=hpux9shr ;;
*) machine=hp9000s300 opsys=hpux ;;
esac
;;
hppa*-hp-hpux9* )
machine=hp800 opsys=hpux9
;;
+ hppa*-hp-hpux10* )
+ machine=hp800 opsys=hpux10
+ ;;
## HP 9000 series 700 and 800, running HP/UX
hppa*-hp-hpux* )
*) machine=hp800 opsys=hpux ;;
esac
;;
+ hppa-*-nextstep* )
+ machine=hp800 opsys=nextstep
+ ;;
## Orion machines
orion-orion-bsd* )
;;
## 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*)
;;
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
;;
;;
## 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 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* )
- machine=intel386 opsys=usg5-4-2
+ i[3456]86-ncr-sysv* )
+ machine=ncr386 opsys=usg5-4-2
;;
## Intel Paragon OSF/1
NON_GNU_CC="cc -systype bsd43"
NON_GNU_CPP="cc -systype bsd43 -E"
;;
+ mips-mips-riscos5* )
+ machine=mips4 opsys=riscos5
+ NON_GNU_CC="cc -systype bsd43"
+ NON_GNU_CPP="cc -systype bsd43 -E"
+ ;;
mips-mips-bsd* )
machine=mips opsys=bsd4-3
;;
;;
## NeXT
- m68*-next-* | i[345]86-next-* )
- machine=next opsys=mach2
+ m68*-next-* | m68k-*-nextstep* )
+ machine=m68k opsys=nextstep
;;
## The complete machine from National Semiconductor
;;
## Siemens Nixdorf
- mips-siemens-sysv* )
+ mips-siemens-sysv* | mips-sni-sysv*)
machine=mips-siemens opsys=usg5-4
NON_GNU_CC=/usr/ccs/bin/cc
NON_GNU_CPP=/usr/ccs/lib/cpp
;;
mips-sgi-irix6* )
machine=iris4d opsys=irix6-0
+ NON_GNU_CPP=/lib/cpp
+ NON_GCC_TEST_OPTIONS=-32
;;
mips-sgi-irix5.[01]* )
machine=iris4d opsys=irix5-0
;;
## Suns
- *-sun-sunos* | *-sun-bsd* | *-sun-solaris* | i[345]86-*-solaris2* | i[345]86-*-sunos5* )
+ sparc-*-linux-gnu* )
+ machine=sparc opsys=gnu-linux
+ ;;
+
+ *-sun-sunos* | *-sun-bsd* | *-sun-solaris* \
+ | 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 ;;
+ i[3456]86-sun-sunos[34]* ) machine=sun386 ;;
+ i[3456]86-*-* ) machine=intel386 ;;
+ 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* ) opsys=sunos4-1-3
- NON_GCC_TEST_OPTIONS=-Bstatic
- GCC_TEST_OPTIONS=-static
+ *-sunos4.1.[3-9]* | *-sunos4shr*)
+ opsys=sunos4shr
NON_GNU_CPP=/usr/lib/cpp
;;
- *-sunos4shr* ) opsys=sunos4shr
+ *-sunos4.1.[3-9]*noshare )
+ opsys=sunos4-1-3
NON_GNU_CPP=/usr/lib/cpp
+ NON_GCC_TEST_OPTIONS=-Bstatic
+ GCC_TEST_OPTIONS=-static
;;
- *-sunos4* | *-sunos ) opsys=sunos4-1
+ *-sunos4* | *-sunos )
+ opsys=sunos4-1
NON_GCC_TEST_OPTIONS=-Bstatic
GCC_TEST_OPTIONS=-static
;;
*-sunos5.4* | *-solaris2.4* )
opsys=sol2-4
NON_GNU_CPP=/usr/ccs/lib/cpp
+ RANLIB="ar -ts"
+ ;;
+ *-sunos5.5* | *-solaris2.5* )
+ opsys=sol2-5
+ NON_GNU_CPP=/usr/ccs/lib/cpp
+ RANLIB="ar -ts"
;;
*-sunos5* | *-solaris* )
- opsys=sol2
+ opsys=sol2-4
NON_GNU_CPP=/usr/ccs/lib/cpp
;;
* ) 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
;;
## Tadpole 68k
titan-titan-sysv* )
machine=titan opsys=usg5-3
;;
-
+
## Ustation E30 (SS5E)
m68*-unisys-uniplus* )
machine=ustation opsystem=unipl5-2
*-bsd4.1* ) opsys=bsd4-1 ;;
*-bsd4.2* | *-ultrix[0-3].* | *-ultrix4.0* ) opsys=bsd4-2 ;;
*-bsd4.3* | *-ultrix* ) opsys=bsd4-3 ;;
- *-bsd386* | *-bsdi* ) opsys=bsd386 ;;
*-sysv[01]* | *-sysvr[01]* ) opsys=usg5-0 ;;
*-sysv2* | *-sysvr2* ) opsys=usg5-2 ;;
*-vms* ) opsys=vms ;;
;;
## 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 ;;
*-isc2.2* ) opsys=isc2-2 ;;
*-isc4.0* ) opsys=isc4-0 ;;
- *-isc4.* ) opsys=isc4-1 ;;
+ *-isc4.* ) opsys=isc4-1
+ GCC_TEST_OPTIONS=-posix
+ NON_GCC_TEST_OPTIONS=-Xp
+ ;;
*-isc* ) opsys=isc3-0 ;;
*-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* | *-bsdi* ) opsys=bsd386 ;;
+ *-sco3.2v5* ) opsys=sco5
+ NON_GNU_CPP=/lib/cpp
+ # Prevent -belf from being passed to $CPP.
+ # /lib/cpp does not accept it.
+ OVERRIDE_CPPFLAGS=
+ ;;
+ *-bsd386* | *-bsdi1* ) opsys=bsd386 ;;
+ *-bsdi2.0* ) opsys=bsdos2 ;;
+ *-bsdi2* ) opsys=bsdos2-1 ;;
*-386bsd* ) opsys=386bsd ;;
*-freebsd* ) opsys=freebsd ;;
- *-nextstep* ) opsys=mach2 ;;
+ *-nextstep* ) opsys=nextstep ;;
## Otherwise, we'll fall through to the generic opsys code at the bottom.
esac
;;
+ ## Linux/68k-based GNU system
+ m68k-*-linux-gnu* )
+ machine=m68k opsys=gnu-linux
+ ;;
+
* )
unported=yes
;;
*-sysv0 | *-sysvr0 ) opsys=usg5-0 ;;
*-sysv2 | *-sysvr2 ) opsys=usg5-2 ;;
*-sysv2.2 | *-sysvr2.2 ) opsys=usg5-2-2 ;;
- *-sysv3 | *-sysvr3 ) opsys=usg5-3 ;;
- *-sysv4 | *-sysvr4 ) opsys=usg5-4 ;;
- *-sysv4.1 | *-sysvr4.1 )
+ *-sysv3* | *-sysvr3* ) opsys=usg5-3 ;;
+ *-sysv4.1* | *-sysvr4.1* )
NON_GNU_CPP=/usr/lib/cpp
opsys=usg5-4 ;;
- *-sysv4.2 | *-sysvr4.2 )
+ *-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 ;;
* )
unported=yes
;;
esac
fi
+if test "x$RANLIB" = x; then
+ RANLIB=ranlib
+fi
+
changequote([, ])dnl
if test $unported = yes; then
#### Choose a compiler.
test -n "$CC" && cc_specified=yes
+# Save the value of CFLAGS that the user specified.
+SPECIFIED_CFLAGS="$CFLAGS"
+
case ${with_gcc} in
"yes" ) CC="gcc" GCC=yes ;;
"no" ) : ${CC=cc} ;;
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
#### 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
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)
AC_HEADER_STDC
AC_HEADER_TIME
AC_DECL_SYS_SIGLIST
#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))
+ [AC_MSG_RESULT(no)
+ HAVE_TIMEVAL=no])
dnl checks for structure members
AC_STRUCT_TM
fi
if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
- LD_SWITCH_X_SITE="-L${x_libraries}"
- LD_SWITCH_X_SITE_AUX="-R${x_libraries}"
+ 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"`
fi
if test "${x_includes}" != NONE && test -n "${x_includes}"; then
- C_SWITCH_X_SITE="-I${x_includes}"
+ C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"`
fi
if test x"${x_includes}" = x; then
bitmapdir=/usr/include/X11/bitmaps
else
- bitmapdir="${x_includes}/bitmaps"
+ # 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
+ bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps"
+ elif test -d "${bmd}/bitmaps"; then
+ bmd_acc="${bmd_acc}:${bmd}/bitmaps"
+ fi
+ done
+ if test ${bmd_acc} != "dummyval"; then
+ bitmapdir=`echo ${bmd_acc} | sed -e "s/^dummyval://"`
+ fi
fi
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 )
USE_X_TOOLKIT=none
;;
esac
-X_TOOLKIT_TYPE=$USE_X_TOOLKIT
### If we're using X11, we should use the X menu package.
-HAVE_X_MENU=no
+HAVE_MENUS=no
case ${HAVE_X11} in
- yes ) HAVE_X_MENU=yes ;;
+ yes ) HAVE_MENUS=yes ;;
esac
+if test "${opsys}" = "hpux9"; then
+ case "${x_libraries}" in
+ *X11R4* )
+ opsysfile="s/hpux9-x11r4.h"
+ ;;
+ esac
+fi
+
+if test "${opsys}" = "hpux9shr"; then
+ case "${x_libraries}" in
+ *X11R4* )
+ opsysfile="s/hpux9shxr4.h"
+ ;;
+ esac
+fi
+
#### Extract some information from the operating system and machine files.
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
/* Get the CFLAGS for tests in configure. */
#ifdef __GNUC__
-configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${CFLAGS}'
+configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}'
#else
-configure___ CFLAGS=C_DEBUG_SWITCH '${CFLAGS}'
+configure___ CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
#endif
#else /* not THIS_IS_CONFIGURE */
/* Get the CFLAGS for real compilation. */
#ifdef __GNUC__
-configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${CFLAGS}'
+configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}'
#else
-configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${CFLAGS}'
+configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
#endif
#endif /* not THIS_IS_CONFIGURE */
changequote(, )dnl
eval `${CPP} -Isrc ${tempcname} \
| sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
-if test "x$CFLAGS" = x; then
+if test "x$SPECIFIED_CFLAGS" = x; then
eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \
| sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
else
#### Add the libraries to LIBS and check for some functions.
-CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
-LIBS="$libsrc_libs"
+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,
dnl and also adds -ldnet to LIBS, which Autoconf uses for checks.
dnl FIXME replace main with a function we actually want from this library.
AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
+AC_CHECK_LIB(pthreads, cma_open)
+
AC_MSG_CHECKING(for XFree86)
if test -d /usr/X386/include; then
HAVE_XFREE386=yes
fi
AC_MSG_RESULT($HAVE_XFREE386)
-# We change CFLAGS temporarily so that C_SWITCH_X_SITE gets used
-# for the tests that follow.
+# 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.
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"
+
+ # 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");],
+ [xlinux_first_failure=no],
+ [xlinux_first_failure=yes])
+ if test "${xlinux_first_failure}" = "yes"; then
+ OLD_LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE"
+ OLD_C_SWITCH_X_SITE="$C_SWITCH_X_SITE"
+ OLD_CPPFLAGS="$CPPFLAGS"
+ OLD_LIBS="$LIBS"
+ LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout"
+ C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout"
+ CPPFLAGS="$CPPFLAGS -b i486-linuxaout"
+ LIBS="$LIBS -b i486-linuxaout"
+ AC_TRY_LINK([],
+ [XOpenDisplay ("foo");],
+ [xlinux_second_failure=no],
+ [xlinux_second_failure=yes])
+ if test "${xlinux_second_failure}" = "yes"; then
+ # If we get the same failure with -b, there is no use adding -b.
+ # So take it out. This plays safe.
+ LD_SWITCH_X_SITE="$OLD_LD_SWITCH_X_SITE"
+ C_SWITCH_X_SITE="$OLD_C_SWITCH_X_SITE"
+ CPPFLAGS="$OLD_CPPFLAGS"
+ LIBS="$OLD_LIBS"
+ AC_MSG_RESULT(no)
+ else
+ AC_MSG_RESULT(yes)
+ fi
+ else
+ AC_MSG_RESULT(no)
+ fi
+ fi
+
AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
XScreenNumberOfScreen XSetWMProtocols)
fi
+if test "${window_system}" = "x11"; then
+ AC_MSG_CHECKING(X11 version 6)
+ AC_TRY_LINK([#include <X11/Xlib.h>],
+[#if XlibSpecificationRelease < 6
+fail;
+#endif
+], [AC_MSG_RESULT(6 or newer)
+ AC_DEFINE(HAVE_X11R6)],
+ [AC_MSG_RESULT(before 6)])
+fi
+
+if test "${window_system}" = "x11"; then
+ AC_MSG_CHECKING(X11 version 5)
+ AC_TRY_LINK([#include <X11/Xlib.h>],
+[#if XlibSpecificationRelease < 5
+fail;
+#endif
+], [AC_MSG_RESULT(5 or newer)
+ HAVE_X11R5=yes
+ AC_DEFINE(HAVE_X11R5)],
+ [
+ HAVE_X11R5=no
+ AC_MSG_RESULT(before 5)])
+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_TRY_LINK([
+#include <X11/Intrinsic.h>
+#include <X11/Xaw/Simple.h>],
+ [],
+ [AC_MSG_RESULT(5 or newer, with Xaw; use toolkit by default)
+ USE_X_TOOLKIT=LUCID],
+ [AC_MSG_RESULT(before 5 or no Xaw; do not use toolkit by default)
+ USE_X_TOOLKIT=none])
+ 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_TRY_LINK([#include <X11/Intrinsic.h>],
[#if XtSpecificationRelease < 6
fail;
#endif
-], [AC_MSG_RESULT(6)
+], [AC_MSG_RESULT(6 or newer)
+ HAVE_X11XTR6=yes
AC_DEFINE(HAVE_X11XTR6)],
- [AC_MSG_RESULT(not 6)])
+ [AC_MSG_RESULT(before 6)
+ HAVE_X11XTR6=no])
+
+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 netdb.h doesn't declare h_errno, we must declare it by hand.
-AC_MSG_CHECKING(whether netdb declarares h_errno)
+AC_MSG_CHECKING(whether netdb declares h_errno)
AC_TRY_LINK([#include <netdb.h>],
[return h_errno;],
[AC_MSG_RESULT(yes)
AC_FUNC_ALLOCA
-# logb and frexp are found in -lm on most systems.
-AC_CHECK_LIB(m, logb)
+# 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)
+
AC_CHECK_FUNCS(gettimeofday gethostname dup2 rename closedir mkdir rmdir \
-random lrand48 bcopy bcmp logb frexp fmod drem ftime res_init setsid \
-strerror fpathconf select mktime eaccess getpagesize)
+random lrand48 bcopy bcmp logb frexp fmod ftime res_init setsid \
+strerror fpathconf select mktime euidaccess getpagesize tzset setlocale)
+
+# 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)
+
+AC_MSG_CHECKING(whether localtime caches TZ)
+AC_CACHE_VAL(emacs_cv_localtime_cache,
+[if test x$ac_cv_func_tzset = xyes; then
+AC_TRY_RUN([#include <time.h>
+#if STDC_HEADERS
+# include <stdlib.h>
+#endif
+extern char **environ;
+unset_TZ ()
+{
+ char **from, **to;
+ for (to = from = environ; (*to = *from); from++)
+ if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
+ to++;
+}
+main()
+{
+ time_t now = time ((time_t *) 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);
+ unset_TZ ();
+ if (localtime (&now)->tm_hour != hour_unset)
+ exit (1);
+ 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])
+else
+ # If we lack tzset, report that localtime does not cache TZ,
+ # since we can't invalidate the cache if we don't have tzset.
+ emacs_cv_localtime_cache=no
+fi])dnl
+AC_MSG_RESULT($emacs_cv_localtime_cache)
+if test $emacs_cv_localtime_cache = yes; then
+ AC_DEFINE(LOCALTIME_CACHE)
+fi
+
+if test "x$HAVE_TIMEVAL" = xyes; then
+AC_MSG_CHECKING(whether gettimeofday can't accept two arguments)
+AC_TRY_LINK([
+#ifdef TIME_WITH_SYS_TIME
+#include <sys/time.h>
+#include <time.h>
+#else
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#else
+#include <time.h>
+#endif
+#endif
+ ],
+ [
+ struct timeval time;
+ struct timezone dummy;
+ gettimeofday (&time, &dummy);
+],
+ [AC_MSG_RESULT(no)],
+ [AC_MSG_RESULT(yes)
+ AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT)])
+fi
ok_so_far=yes
AC_CHECK_FUNC(socket, , ok_so_far=no)
AC_SUBST(X_TOOLKIT_TYPE)
AC_SUBST(machfile)
AC_SUBST(opsysfile)
+AC_SUBST(RANLIB)
AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "${canonical}")
-AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${config_options}")
+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})
if test "${HAVE_XFREE386}" = "yes" ; then
AC_DEFINE(HAVE_XFREE386)
fi
-if test "${HAVE_X_MENU}" = "yes" ; then
- AC_DEFINE(HAVE_X_MENU)
+if test "${HAVE_MENUS}" = "yes" ; then
+ AC_DEFINE(HAVE_MENUS)
fi
if test "${GNU_MALLOC}" = "yes" ; then
AC_DEFINE(GNU_MALLOC)
#### Report on what we decided to do.
echo "
-
Configured for \`${canonical}'.
Where should the build process find the source code? ${srcdir}
Should Emacs use the GNU version of malloc? ${GNU_MALLOC}${GNU_MALLOC_reason}
Should Emacs use the relocating allocator for buffers? ${REL_ALLOC}
What window system should Emacs use? ${window_system}
- What toolkit should Emacs use? ${USE_X_TOOLKIT}${x_includes+
- Where do we find X Windows header files? }${x_includes}${x_libraries+
- Where do we find X Windows libraries? }${x_libraries}
+ What toolkit should Emacs use? ${USE_X_TOOLKIT}"
+
+if test -n "${x_includes}"; then
+echo " Where do we find X Windows header files? ${x_includes}"
+else
+echo " Where do we find X Windows header files? Standard dirs"
+fi
+if test -n "${x_libraries}"; then
+echo " Where do we find X Windows libraries? ${x_libraries}"
+else
+echo " Where do we find X Windows libraries? Standard dirs"
+fi
-"
+echo
# Remove any trailing slashes in these variables.
changequote(, )dnl
exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`
changequote([, ])dnl
-AC_OUTPUT(Makefile lib-src/Makefile.in oldXMenu/Makefile \
- man/Makefile lwlib/Makefile src/Makefile.in, [
+AC_OUTPUT(Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile \
+ man/Makefile lwlib/Makefile src/Makefile.c:src/Makefile.in, [
### Make the necessary directories, if they don't exist.
for dir in cpp etc ; do
test -d ${dir} || mkdir ${dir}
done
-# Build src/Makefile from ${srcdir}/src/Makefile.in. This must be done
-# after src/config.h is built, since we rely on that file.
+# Build src/Makefile from ${srcdir}/src/Makefile.c
+# 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
( cd lib-src
rm -f junk.c junk1.c junk2.c
sed -e '/start of cpp stuff/q' \
- < Makefile.in > junk1.c
+ < Makefile.c > junk1.c
sed -e '1,/start of cpp stuff/d'\
-e 's@/\*\*/#\(.*\)$@/* \1 */@' \
- < Makefile.in > junk.c
+ < Makefile.c > junk.c
$CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
sed -e 's/^ / /' -e '/^#/d' -e '/^[ \f]*$/d' > junk2.c
cat junk1.c junk2.c > Makefile.new
( cd src
rm -f junk.c junk1.c junk2.c
sed -e '/start of cpp stuff/q' \
- < Makefile.in > junk1.c
+ < Makefile.c > junk1.c
sed -e '1,/start of cpp stuff/d'\
-e 's@/\*\*/#\(.*\)$@/* \1 */@' \
- < Makefile.in > junk.c
+ < Makefile.c > junk.c
$CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
sed -e 's/^ / /' -e '/^#/d' -e '/^[ \f]*$/d' > junk2.c
cat junk1.c junk2.c > Makefile.new