mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-22 07:09:54 +00:00
3597 lines
115 KiB
Plaintext
3597 lines
115 KiB
Plaintext
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.
|
||
dnl
|
||
dnl Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2003,
|
||
dnl 2004, 2005, 2006, 2007, 2008, 2009, 2010 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 3 of the License, or
|
||
dnl (at your option) 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. If not, see <http://www.gnu.org/licenses/>.
|
||
|
||
AC_PREREQ(2.62)
|
||
AC_INIT(emacs, 24.0.50)
|
||
AC_CONFIG_HEADER(src/config.h:src/config.in)
|
||
AC_CONFIG_SRCDIR(src/lisp.h)
|
||
|
||
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'
|
||
lisppath='${locallisppath}:${lispdir}:${datadir}/emacs/${version}/leim'
|
||
etcdir='${datadir}/emacs/${version}/etc'
|
||
archlibdir='${libexecdir}/emacs/${version}/${configuration}'
|
||
docdir='${datadir}/emacs/${version}/etc'
|
||
gamedir='${localstatedir}/games/emacs'
|
||
|
||
gameuser=games
|
||
|
||
dnl OPTION_DEFAULT_OFF(NAME, HELP-STRING)
|
||
dnl Create a new --with option that defaults to being disabled.
|
||
dnl NAME is the base name of the option. The shell variable with_NAME
|
||
dnl will be set to either the user's value (if the option is
|
||
dnl specified; 'yes' for a plain --with-NAME) or to 'no' (if the
|
||
dnl option is not specified). Note that the shell variable name is
|
||
dnl constructed as autoconf does, by replacing non-alphanumeric
|
||
dnl characters with "_".
|
||
dnl HELP-STRING is the help text for the option.
|
||
AC_DEFUN([OPTION_DEFAULT_OFF], [dnl
|
||
AC_ARG_WITH([$1],[AS_HELP_STRING([--with-$1],[$2])],[],[dnl
|
||
m4_bpatsubst([with_$1], [[^0-9a-z]], [_])=no])dnl
|
||
])dnl
|
||
|
||
dnl OPTION_DEFAULT_ON(NAME, HELP-STRING)
|
||
dnl Create a new --with option that defaults to being enabled. NAME
|
||
dnl is the base name of the option. The shell variable with_NAME
|
||
dnl will be set either to 'no' (for a plain --without-NAME) or to
|
||
dnl 'yes' (if the option is not specified). Note that the shell
|
||
dnl variable name is constructed as autoconf does, by replacing
|
||
dnl non-alphanumeric characters with "_".
|
||
dnl HELP-STRING is the help text for the option.
|
||
AC_DEFUN([OPTION_DEFAULT_ON], [dnl
|
||
AC_ARG_WITH([$1],[AS_HELP_STRING([--without-$1],[$2])],[],[dnl
|
||
m4_bpatsubst([with_$1], [[^0-9a-z]], [_])=yes])dnl
|
||
])dnl
|
||
|
||
OPTION_DEFAULT_ON([pop],[don't support POP mail retrieval with movemail])
|
||
if test "$with_pop" = yes; then
|
||
AC_DEFINE(MAIL_USE_POP)
|
||
fi
|
||
AH_TEMPLATE(MAIL_USE_POP, [Define to support POP mail retrieval.])dnl
|
||
|
||
OPTION_DEFAULT_OFF([kerberos],[support Kerberos-authenticated POP])
|
||
if test "$with_kerberos" != no; then
|
||
AC_DEFINE(KERBEROS)
|
||
fi
|
||
AH_TEMPLATE(KERBEROS,
|
||
[Define to support Kerberos-authenticated POP mail retrieval.])dnl
|
||
|
||
OPTION_DEFAULT_OFF([kerberos5],[support Kerberos version 5 authenticated POP])
|
||
if test "${with_kerberos5}" != no; then
|
||
if test "${with_kerberos}" = no; then
|
||
with_kerberos=yes
|
||
AC_DEFINE(KERBEROS)
|
||
fi
|
||
AC_DEFINE(KERBEROS5, 1, [Define to use Kerberos 5 instead of Kerberos 4.])
|
||
fi
|
||
|
||
OPTION_DEFAULT_OFF([hesiod],[support Hesiod to get the POP server host])
|
||
dnl FIXME hesiod support may not be present, so it seems like an error
|
||
dnl to define, or at least use, this unconditionally.
|
||
if test "$with_hesiod" != no; then
|
||
AC_DEFINE(HESIOD, 1, [Define to support using a Hesiod database to find the POP server.])
|
||
fi
|
||
|
||
OPTION_DEFAULT_OFF([mmdf],[support MMDF mailboxes])
|
||
if test "$with_mmdf" != no; then
|
||
AC_DEFINE(MAIL_USE_MMDF, 1, [Define to support MMDF mailboxes in movemail.])
|
||
fi
|
||
|
||
OPTION_DEFAULT_OFF([mail-unlink],[unlink, rather than empty, mail spool after reading])
|
||
if test "$with_mail_unlink" != no; then
|
||
AC_DEFINE(MAIL_UNLINK_SPOOL, 1, [Define to unlink, rather than empty, mail spool after reading.])
|
||
fi
|
||
|
||
AC_ARG_WITH([mailhost],[AS_HELP_STRING([--with-mailhost=HOSTNAME],
|
||
[string giving default POP mail host])],
|
||
AC_DEFINE_UNQUOTED(MAILHOST, ["$withval"], [String giving fallback POP mail host.]))
|
||
|
||
OPTION_DEFAULT_ON([sound],[don't compile with sound support])
|
||
|
||
OPTION_DEFAULT_ON([sync-input],[process async input synchronously])
|
||
if test "$with_sync_input" = yes; then
|
||
AC_DEFINE(SYNC_INPUT, 1, [Process async input synchronously.])
|
||
fi
|
||
|
||
dnl FIXME currently it is not the last.
|
||
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],[AS_HELP_STRING([--with-x-toolkit=KIT],
|
||
[use an X toolkit (KIT one of: yes or gtk, lucid or athena, motif, no)])],
|
||
[ case "${withval}" in
|
||
y | ye | yes ) val=gtk ;;
|
||
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 ;;
|
||
* )
|
||
AC_MSG_ERROR([`--with-x-toolkit=$withval' is invalid;
|
||
this option's value should be `yes', `no', `lucid', `athena', `motif' or `gtk'.
|
||
`yes' and `gtk' are synonyms. `athena' and `lucid' are synonyms.])
|
||
;;
|
||
esac
|
||
with_x_toolkit=$val
|
||
])
|
||
|
||
dnl _ON results in a '--without' option in the --help output, so
|
||
dnl the help text should refer to "don't compile", etc.
|
||
OPTION_DEFAULT_ON([xpm],[don't compile with XPM image support])
|
||
OPTION_DEFAULT_ON([jpeg],[don't compile with JPEG image support])
|
||
OPTION_DEFAULT_ON([tiff],[don't compile with TIFF image support])
|
||
OPTION_DEFAULT_ON([gif],[don't compile with GIF image support])
|
||
OPTION_DEFAULT_ON([png],[don't compile with PNG image support])
|
||
OPTION_DEFAULT_ON([rsvg],[don't compile with SVG image support])
|
||
|
||
OPTION_DEFAULT_ON([xft],[don't use XFT for anti aliased fonts])
|
||
OPTION_DEFAULT_ON([libotf],[don't use libotf for OpenType font support])
|
||
OPTION_DEFAULT_ON([m17n-flt],[don't use m17n-flt for text shaping])
|
||
|
||
OPTION_DEFAULT_ON([toolkit-scroll-bars],[don't use Motif or Xaw3d scroll bars])
|
||
OPTION_DEFAULT_ON([xaw3d],[don't use Xaw3d])
|
||
OPTION_DEFAULT_ON([xim],[don't use X11 XIM])
|
||
OPTION_DEFAULT_OFF([ns],[use nextstep (Cocoa or GNUstep) windowing system])
|
||
|
||
OPTION_DEFAULT_ON([gpm],[don't use -lgpm for mouse support on a GNU/Linux console])
|
||
OPTION_DEFAULT_ON([dbus],[don't compile with D-Bus support])
|
||
OPTION_DEFAULT_ON([gconf],[don't compile with GConf support])
|
||
OPTION_DEFAULT_ON([selinux],[don't compile with SELinux support])
|
||
|
||
## For the times when you want to build Emacs but don't have
|
||
## a suitable makeinfo, and can live without the manuals.
|
||
dnl http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01844.html
|
||
OPTION_DEFAULT_ON([makeinfo],[don't require makeinfo for building manuals])
|
||
|
||
dnl Can remove these in Emacs 24.
|
||
AC_ARG_WITH([gtk],,
|
||
[AC_MSG_ERROR([--with-gtk has been removed. Use --with-x-toolkit to
|
||
specify a toolkit.])],,)
|
||
|
||
AC_ARG_WITH([gcc],,
|
||
[AC_MSG_ERROR([--with-gcc has been removed. Set the `CC' environment
|
||
variable to specify a compiler.])],,)
|
||
|
||
AC_ARG_WITH([pkg-config-prog],dnl
|
||
[AS_HELP_STRING([--with-pkg-config-prog=PATH],
|
||
[path to pkg-config for finding GTK and librsvg])])
|
||
if test "X${with_pkg_config_prog}" != X; then
|
||
if test "${with_pkg_config_prog}" != yes; then
|
||
PKG_CONFIG="${with_pkg_config_prog}"
|
||
fi
|
||
fi
|
||
|
||
CRT_DIR=
|
||
AC_ARG_WITH([crt-dir],dnl
|
||
[AS_HELP_STRING([--with-crt-dir=DIR],[directory containing crtn.o etc.
|
||
The default is /usr/lib, or /usr/lib64 on some platforms.])])
|
||
CRT_DIR="${with_crt_dir}"
|
||
|
||
AC_ARG_WITH([gnustep-conf],dnl
|
||
[AS_HELP_STRING([--with-gnustep-conf=PATH],[path to GNUstep.conf; default $GNUSTEP_CONFIG_FILE, or /etc/GNUstep/GNUstep.conf])])
|
||
test "X${with_gnustep_conf}" != X && test "${with_gnustep_conf}" != yes && \
|
||
GNUSTEP_CONFIG_FILE="${with_gnustep_conf}"
|
||
test "X$GNUSTEP_CONFIG_FILE" = "X" && \
|
||
GNUSTEP_CONFIG_FILE=/etc/GNUstep/GNUstep.conf
|
||
|
||
AC_ARG_ENABLE(ns-self-contained,
|
||
[AS_HELP_STRING([--disable-ns-self-contained],
|
||
[disable self contained build under NeXTstep])],
|
||
EN_NS_SELF_CONTAINED=$enableval,
|
||
EN_NS_SELF_CONTAINED=yes)
|
||
|
||
AC_ARG_ENABLE(asserts,
|
||
[AS_HELP_STRING([--enable-asserts], [compile code with asserts enabled])],
|
||
USE_XASSERTS=$enableval,
|
||
USE_XASSERTS=no)
|
||
|
||
AC_ARG_ENABLE(maintainer-mode,
|
||
[AS_HELP_STRING([--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)
|
||
|
||
AC_ARG_ENABLE(locallisppath,
|
||
[AS_HELP_STRING([--enable-locallisppath=PATH],
|
||
[directories Emacs should search for lisp files specific
|
||
to this site])],
|
||
if test "${enableval}" = "no"; then
|
||
locallisppath=
|
||
elif test "${enableval}" != "yes"; then
|
||
locallisppath=${enableval}
|
||
fi)
|
||
|
||
AC_ARG_ENABLE(checking,
|
||
[AS_HELP_STRING([--enable-checking@<:@=LIST@:>@],
|
||
[enable expensive run-time checks. With LIST,
|
||
enable only specific categories of checks.
|
||
Categories are: all,yes,no.
|
||
Flags are: stringbytes, stringoverrun, stringfreelist,
|
||
xmallocoverrun, conslist])],
|
||
[ac_checking_flags="${enableval}"],[])
|
||
IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS,"
|
||
for check in $ac_checking_flags
|
||
do
|
||
case $check in
|
||
# these set all the flags to specific states
|
||
yes) ac_enable_checking=1 ;;
|
||
no) ac_enable_checking= ;
|
||
ac_gc_check_stringbytes= ;
|
||
ac_gc_check_string_overrun= ;
|
||
ac_gc_check_string_free_list= ;
|
||
ac_xmalloc_overrun= ;
|
||
ac_gc_check_cons_list= ;;
|
||
all) ac_enable_checking=1 ;
|
||
ac_gc_check_stringbytes=1 ;
|
||
ac_gc_check_string_overrun=1 ;
|
||
ac_gc_check_string_free_list=1 ;
|
||
ac_xmalloc_overrun=1 ;
|
||
ac_gc_check_cons_list=1 ;;
|
||
# these enable particular checks
|
||
stringbytes) ac_gc_check_stringbytes=1 ;;
|
||
stringoverrun) ac_gc_check_string_overrun=1 ;;
|
||
stringfreelist) ac_gc_check_string_free_list=1 ;;
|
||
xmallocoverrun) ac_xmalloc_overrun=1 ;;
|
||
conslist) ac_gc_check_cons_list=1 ;;
|
||
*) AC_MSG_ERROR(unknown check category $check) ;;
|
||
esac
|
||
done
|
||
IFS="$ac_save_IFS"
|
||
|
||
if test x$ac_enable_checking != x ; then
|
||
AC_DEFINE(ENABLE_CHECKING, 1,
|
||
[Enable expensive run-time checking of data types?])
|
||
fi
|
||
if test x$ac_gc_check_stringbytes != x ; then
|
||
AC_DEFINE(GC_CHECK_STRING_BYTES, 1,
|
||
[Define this temporarily to hunt a bug. If defined, the size of
|
||
strings is redundantly recorded in sdata structures so that it can
|
||
be compared to the sizes recorded in Lisp strings.])
|
||
fi
|
||
if test x$ac_gc_check_stringoverrun != x ; then
|
||
AC_DEFINE(GC_CHECK_STRING_OVERRUN, 1,
|
||
[Define this to check for short string overrun.])
|
||
fi
|
||
if test x$ac_gc_check_string_free_list != x ; then
|
||
AC_DEFINE(GC_CHECK_STRING_FREE_LIST, 1,
|
||
[Define this to check the string free list.])
|
||
fi
|
||
if test x$ac_xmalloc_overrun != x ; then
|
||
AC_DEFINE(XMALLOC_OVERRUN_CHECK, 1,
|
||
[Define this to check for malloc buffer overrun.])
|
||
fi
|
||
if test x$ac_gc_check_cons_list != x ; then
|
||
AC_DEFINE(GC_CHECK_CONS_LIST, 1,
|
||
[Define this to check for errors in cons list.])
|
||
fi
|
||
|
||
AC_ARG_ENABLE(profiling,
|
||
[AS_HELP_STRING([--enable-profiling],
|
||
[build emacs with profiling support.
|
||
This might not work on all platforms])],
|
||
[ac_enable_profiling="${enableval}"],[])
|
||
if test x$ac_enable_profiling != x ; then
|
||
PROFILING_CFLAGS="-DPROFILING=1 -pg"
|
||
PROFILING_LDFLAGS="-pg"
|
||
else
|
||
PROFILING_CFLAGS=
|
||
PROFILING_LDFLAGS=
|
||
fi
|
||
|
||
AC_ARG_ENABLE(autodepend,
|
||
[AS_HELP_STRING([--enable-autodepend],
|
||
[automatically generate dependencies to .h-files.
|
||
Requires GNU Make and Gcc. Enabled if GNU Make and Gcc is
|
||
found])],
|
||
[ac_enable_autodepend="${enableval}"],[ac_enable_autodepend=yes])
|
||
|
||
#### Make srcdir absolute, if it isn't already. It's important to
|
||
#### avoid running the path through pwd unnecessarily, since pwd can
|
||
#### give you automounter prefixes, which can go away. We do all this
|
||
#### so Emacs can find its files when run uninstalled.
|
||
## Make sure CDPATH doesn't affect cd (in case PWD is relative).
|
||
unset CDPATH
|
||
case "${srcdir}" in
|
||
/* ) ;;
|
||
. )
|
||
## We may be able to use the $PWD environment variable to make this
|
||
## absolute. But sometimes PWD is inaccurate.
|
||
## 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
|
||
srcdir="`(cd ${srcdir}; pwd)`"
|
||
fi
|
||
;;
|
||
* ) srcdir="`(cd ${srcdir}; pwd)`" ;;
|
||
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
|
||
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.]])
|
||
fi
|
||
|
||
#### Given the configuration name, set machfile and opsysfile to the
|
||
#### names of the m/*.h and s/*.h files we should use.
|
||
|
||
### Canonicalize the configuration name.
|
||
|
||
AC_CANONICAL_HOST
|
||
canonical=$host
|
||
configuration=${host_alias-${build_alias-$host}}
|
||
|
||
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
|
||
### the appropriate operating system and machine description files.
|
||
|
||
### You would hope that you could choose an m/*.h file pretty much
|
||
### based on the machine portion of the configuration name, and an s-
|
||
### file based on the operating system portion. However, it turns out
|
||
### that each m/*.h file is pretty manufacturer-specific - for
|
||
### example mips.h is MIPS
|
||
### So we basically have to have a special case for each
|
||
### configuration name.
|
||
###
|
||
### As far as handling version numbers on operating systems is
|
||
### concerned, make sure things will fail in a fixable way. If
|
||
### /etc/MACHINES doesn't say anything about version numbers, be
|
||
### prepared to handle anything reasonably. If version numbers
|
||
### matter, be sure /etc/MACHINES says something about it.
|
||
###
|
||
### Eric Raymond says we should accept strings like "sysvr4" to mean
|
||
### "System V Release 4"; he writes, "The old convention encouraged
|
||
### confusion between `system' and `release' levels'."
|
||
|
||
machine='' opsys='' unported=no
|
||
case "${canonical}" in
|
||
|
||
## FreeBSD ports
|
||
*-*-freebsd* )
|
||
opsys=freebsd
|
||
case "${canonical}" in
|
||
alpha*-*-freebsd*) machine=alpha ;;
|
||
arm*-*-freebsd*) machine=arm ;;
|
||
ia64-*-freebsd*) machine=ia64 ;;
|
||
sparc-*-freebsd*) machine=sparc ;;
|
||
sparc64-*-freebsd*) machine=sparc ;;
|
||
powerpc-*-freebsd*) machine=macppc ;;
|
||
i[3456]86-*-freebsd*) machine=intel386 ;;
|
||
amd64-*-freebsd*|x86_64-*-freebsd*) machine=amdx86-64 ;;
|
||
esac
|
||
;;
|
||
|
||
## FreeBSD kernel + glibc based userland
|
||
*-*-kfreebsd*gnu* )
|
||
opsys=gnu-kfreebsd
|
||
case "${canonical}" in
|
||
alpha*-*-kfreebsd*) machine=alpha ;;
|
||
ia64-*-kfreebsd*) machine=ia64 ;;
|
||
sparc-*-kfreebsd*) machine=sparc ;;
|
||
sparc64-*-kfreebsd*) machine=sparc ;;
|
||
powerpc-*-kfreebsd*) machine=macppc ;;
|
||
i[3456]86-*-kfreebsd*) machine=intel386 ;;
|
||
amd64-*-kfreebsd*|x86_64-*-kfreebsd*) machine=amdx86-64 ;;
|
||
esac
|
||
;;
|
||
|
||
## NetBSD ports
|
||
*-*-netbsd* )
|
||
opsys=netbsd
|
||
case "${canonical}" in
|
||
alpha*-*-netbsd*) machine=alpha ;;
|
||
i[3456]86-*-netbsd*) machine=intel386 ;;
|
||
mips-*-netbsd*) machine=mips ;;
|
||
mipsel-*-netbsd*) machine=mips ;;
|
||
mipseb-*-netbsd*) machine=mips ;;
|
||
powerpc-*-netbsd*) machine=macppc ;;
|
||
sparc*-*-netbsd*) machine=sparc ;;
|
||
vax-*-netbsd*) machine=vax ;;
|
||
arm-*-netbsd*) machine=arm ;;
|
||
x86_64-*-netbsd*) machine=amdx86-64 ;;
|
||
hppa-*-netbsd*) machine=hp800 ;;
|
||
m68k-*-netbsd*) machine=m68k ;;
|
||
esac
|
||
;;
|
||
|
||
## OpenBSD ports
|
||
*-*-openbsd* )
|
||
opsys=openbsd
|
||
case "${canonical}" in
|
||
alpha*-*-openbsd*) machine=alpha ;;
|
||
arm-*-openbsd*) machine=arm ;;
|
||
i386-*-openbsd*) machine=intel386 ;;
|
||
powerpc-*-openbsd*) machine=macppc ;;
|
||
sparc*-*-openbsd*) machine=sparc ;;
|
||
vax-*-openbsd*) machine=vax ;;
|
||
x86_64-*-openbsd*) machine=amdx86-64 ;;
|
||
hppa-*-openbsd*) machine=hp800 ;;
|
||
esac
|
||
;;
|
||
|
||
alpha*-*-linux-gnu* )
|
||
machine=alpha opsys=gnu-linux
|
||
;;
|
||
|
||
arm*-*-linux-gnu* )
|
||
machine=arm opsys=gnu-linux
|
||
;;
|
||
|
||
## Apple Darwin / Mac OS X
|
||
*-apple-darwin* )
|
||
case "${canonical}" in
|
||
i[3456]86-* ) machine=intel386 ;;
|
||
powerpc-* ) machine=macppc ;;
|
||
x86_64-* ) machine=amdx86-64 ;;
|
||
* ) unported=yes ;;
|
||
esac
|
||
opsys=darwin
|
||
# Define CPP as follows to make autoconf work correctly.
|
||
CPP="${CC-cc} -E -no-cpp-precomp"
|
||
# Use fink packages if available.
|
||
if test -d /sw/include && test -d /sw/lib; then
|
||
GCC_TEST_OPTIONS="-I/sw/include -L/sw/lib"
|
||
CPP="${CPP} ${GCC_TEST_OPTIONS}"
|
||
NON_GCC_TEST_OPTIONS=${GCC_TEST_OPTIONS}
|
||
fi
|
||
;;
|
||
|
||
## HP 9000 series 700 and 800, running HP/UX
|
||
hppa*-hp-hpux10.2* )
|
||
machine=hp800 opsys=hpux10-20
|
||
;;
|
||
hppa*-hp-hpux1[1-9]* )
|
||
machine=hp800 opsys=hpux11
|
||
CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS"
|
||
;;
|
||
|
||
hppa*-*-linux-gnu* )
|
||
machine=hp800 opsys=gnu-linux
|
||
;;
|
||
|
||
## IBM machines
|
||
s390-*-linux-gnu* )
|
||
machine=ibms390 opsys=gnu-linux
|
||
;;
|
||
s390x-*-linux-gnu* )
|
||
machine=ibms390x opsys=gnu-linux
|
||
;;
|
||
rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2* )
|
||
machine=ibmrs6000 opsys=aix4-2
|
||
;;
|
||
rs6000-ibm-aix4.3* | powerpc-ibm-aix4.3* )
|
||
machine=ibmrs6000 opsys=aix4-2
|
||
;;
|
||
rs6000-ibm-aix5* | powerpc-ibm-aix5* )
|
||
machine=ibmrs6000 opsys=aix4-2
|
||
;;
|
||
rs6000-ibm-aix6* | powerpc-ibm-aix6* )
|
||
machine=ibmrs6000 opsys=aix4-2
|
||
;;
|
||
|
||
## Macintosh PowerPC
|
||
powerpc*-*-linux-gnu* )
|
||
machine=macppc opsys=gnu-linux
|
||
;;
|
||
|
||
## Silicon Graphics machines
|
||
## Iris 4D
|
||
mips-sgi-irix6.5 )
|
||
machine=iris4d opsys=irix6-5
|
||
# Without defining _LANGUAGE_C, things get masked out in the headers
|
||
# so that, for instance, grepping for `free' in stdlib.h fails and
|
||
# AC_HEADER_STD_C fails. (MIPSPro 7.2.1.2m compilers, Irix 6.5.3m).
|
||
NON_GNU_CPP="/lib/cpp -D_LANGUAGE_C"
|
||
NON_GCC_TEST_OPTIONS="-D_LANGUAGE_C"
|
||
;;
|
||
|
||
## Suns
|
||
sparc-*-linux-gnu* | sparc64-*-linux-gnu* )
|
||
machine=sparc opsys=gnu-linux
|
||
;;
|
||
|
||
*-sun-solaris* \
|
||
| i[3456]86-*-solaris2* | i[3456]86-*-sunos5* \
|
||
| x86_64-*-solaris2* | x86_64-*-sunos5*)
|
||
case "${canonical}" in
|
||
i[3456]86-*-* ) machine=intel386 ;;
|
||
amd64-*-*|x86_64-*-*) machine=amdx86-64 ;;
|
||
sparc* ) machine=sparc ;;
|
||
* ) unported=yes ;;
|
||
esac
|
||
case "${canonical}" in
|
||
*-sunos5.6* | *-solaris2.6* )
|
||
opsys=sol2-6
|
||
NON_GNU_CPP=/usr/ccs/lib/cpp
|
||
RANLIB="ar -ts"
|
||
;;
|
||
*-sunos5.[7-9]* | *-solaris2.[7-9]* )
|
||
opsys=sol2-6
|
||
emacs_check_sunpro_c=yes
|
||
NON_GNU_CPP=/usr/ccs/lib/cpp
|
||
;;
|
||
*-sunos5* | *-solaris* )
|
||
opsys=sol2-10
|
||
emacs_check_sunpro_c=yes
|
||
NON_GNU_CPP=/usr/ccs/lib/cpp
|
||
;;
|
||
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
|
||
;;
|
||
|
||
## IA-64
|
||
ia64*-*-linux* )
|
||
machine=ia64 opsys=gnu-linux
|
||
;;
|
||
|
||
## Intel 386 machines where we don't care about the manufacturer
|
||
i[3456]86-*-* )
|
||
machine=intel386
|
||
case "${canonical}" in
|
||
*-cygwin ) opsys=cygwin ;;
|
||
*-darwin* ) opsys=darwin
|
||
CPP="${CC-cc} -E -no-cpp-precomp"
|
||
;;
|
||
*-linux-gnu* ) opsys=gnu-linux ;;
|
||
*-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 ;;
|
||
## Otherwise, we'll fall through to the generic opsys code at the bottom.
|
||
esac
|
||
;;
|
||
|
||
## m68k Linux-based GNU system
|
||
m68k-*-linux-gnu* )
|
||
machine=m68k opsys=gnu-linux
|
||
;;
|
||
|
||
## Mips Linux-based GNU system
|
||
mips-*-linux-gnu* | mipsel-*-linux-gnu* \
|
||
| mips64-*-linux-gnu* | mips64el-*-linux-gnu* )
|
||
machine=mips opsys=gnu-linux
|
||
;;
|
||
|
||
## AMD x86-64 Linux-based GNU system
|
||
x86_64-*-linux-gnu* )
|
||
machine=amdx86-64 opsys=gnu-linux
|
||
;;
|
||
|
||
## Tensilica Xtensa Linux-based GNU system
|
||
xtensa*-*-linux-gnu* )
|
||
machine=xtensa opsys=gnu-linux
|
||
;;
|
||
|
||
## SuperH Linux-based GNU system
|
||
sh[34]*-*-linux-gnu* )
|
||
machine=sh3 opsys=gnu-linux
|
||
;;
|
||
|
||
* )
|
||
unported=yes
|
||
;;
|
||
esac
|
||
|
||
### If the code above didn't choose an operating system, just choose
|
||
### an operating system based on the configuration name. You really
|
||
### only want to use this when you have no idea what the right
|
||
### operating system is; if you know what operating systems a machine
|
||
### runs, it's cleaner to make it explicit in the case statement
|
||
### above.
|
||
if test x"${opsys}" = x; then
|
||
case "${canonical}" in
|
||
*-gnu* ) opsys=gnu ;;
|
||
* )
|
||
unported=yes
|
||
;;
|
||
esac
|
||
fi
|
||
|
||
]
|
||
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.])
|
||
fi
|
||
|
||
machfile="m/${machine}.h"
|
||
opsysfile="s/${opsys}.h"
|
||
|
||
|
||
#### Choose a compiler.
|
||
test -n "$CC" && cc_specified=yes
|
||
|
||
# Save the value of CFLAGS that the user specified.
|
||
SPECIFIED_CFLAGS="$CFLAGS"
|
||
|
||
dnl Sets GCC=yes if using gcc.
|
||
AC_PROG_CC
|
||
|
||
# On Suns, sometimes $CPP names a directory.
|
||
if test -n "$CPP" && test -d "$CPP"; then
|
||
CPP=
|
||
fi
|
||
|
||
## If not using gcc, and on Solaris, and no CPP specified, see if
|
||
## using a Sun compiler, which needs -Xs to prevent whitespace.
|
||
if test x"$GCC" != xyes && test x"$emacs_check_sunpro_c" = xyes && \
|
||
test x"$CPP" = x; then
|
||
AC_MSG_CHECKING([whether we are using a Sun C compiler])
|
||
AC_CACHE_VAL(emacs_cv_sunpro_c,
|
||
[AC_TRY_LINK([],
|
||
[#ifndef __SUNPRO_C
|
||
fail;
|
||
#endif
|
||
], emacs_cv_sunpro_c=yes, emacs_cv_sunpro_c=no)])
|
||
AC_MSG_RESULT($emacs_cv_sunpro_c)
|
||
|
||
if test x"$emacs_cv_sunpro_c" = xyes; then
|
||
NON_GNU_CPP="$CC -E -Xs"
|
||
fi
|
||
fi
|
||
|
||
#### Some systems specify a CPP to use unless we are using GCC.
|
||
#### Now that we know whether we are using GCC, we can decide whether
|
||
#### to use that one.
|
||
if test "x$NON_GNU_CPP" != x && test x$GCC != xyes && test "x$CPP" = x
|
||
then
|
||
CPP="$NON_GNU_CPP"
|
||
fi
|
||
|
||
#### Some systems specify a CC to use unless we are using GCC.
|
||
#### Now that we know whether we are using GCC, we can decide whether
|
||
#### to use that one.
|
||
if test "x$NON_GNU_CC" != x && test x$GCC != xyes &&
|
||
test x$cc_specified != xyes
|
||
then
|
||
CC="$NON_GNU_CC"
|
||
fi
|
||
|
||
if test x$GCC = xyes && test "x$GCC_TEST_OPTIONS" != x
|
||
then
|
||
CC="$CC $GCC_TEST_OPTIONS"
|
||
fi
|
||
|
||
if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x
|
||
then
|
||
CC="$CC $NON_GCC_TEST_OPTIONS"
|
||
fi
|
||
|
||
dnl checks for Unix variants
|
||
AC_USE_SYSTEM_EXTENSIONS
|
||
|
||
### Use -Wno-pointer-sign if the compiler supports it
|
||
AC_MSG_CHECKING([whether gcc understands -Wno-pointer-sign])
|
||
SAVE_CFLAGS="$CFLAGS"
|
||
CFLAGS="$CFLAGS -Wno-pointer-sign"
|
||
AC_TRY_COMPILE([], [], has_option=yes, has_option=no,)
|
||
if test $has_option = yes; then
|
||
C_WARNINGS_SWITCH="-Wno-pointer-sign $C_WARNINGS_SWITCH"
|
||
fi
|
||
AC_MSG_RESULT($has_option)
|
||
CFLAGS="$SAVE_CFLAGS"
|
||
unset has_option
|
||
unset SAVE_CFLAGS
|
||
|
||
### Use -Wdeclaration-after-statement if the compiler supports it
|
||
AC_MSG_CHECKING([whether gcc understands -Wdeclaration-after-statement])
|
||
SAVE_CFLAGS="$CFLAGS"
|
||
CFLAGS="$CFLAGS -Wdeclaration-after-statement"
|
||
AC_TRY_COMPILE([], [], has_option=yes, has_option=no,)
|
||
if test $has_option = yes; then
|
||
C_WARNINGS_SWITCH="-Wdeclaration-after-statement $C_WARNINGS_SWITCH"
|
||
fi
|
||
AC_MSG_RESULT($has_option)
|
||
CFLAGS="$SAVE_CFLAGS"
|
||
unset has_option
|
||
unset SAVE_CFLAGS
|
||
|
||
#### Some other nice autoconf tests.
|
||
|
||
dnl checks for programs
|
||
AC_PROG_CPP
|
||
AC_PROG_INSTALL
|
||
if test "x$RANLIB" = x; then
|
||
AC_PROG_RANLIB
|
||
fi
|
||
|
||
## Although we're running on an amd64 kernel, we're actually compiling for
|
||
## the x86 architecture. The user should probably have provided an
|
||
## explicit --build to `configure', but if everything else than the kernel
|
||
## is running in i386 mode, we can help them out.
|
||
if test "$machine" = "amdx86-64"; then
|
||
AC_CHECK_DECL([i386])
|
||
if test "$ac_cv_have_decl_i386" = "yes"; then
|
||
canonical=`echo "$canonical" | sed -e 's/^amd64/i386/' -e 's/^x86_64/i386/'`
|
||
machine=intel386
|
||
machfile="m/${machine}.h"
|
||
fi
|
||
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 Don't use GZIP, which is used by gzip for additional parameters.
|
||
AC_PATH_PROG(GZIP_PROG, gzip)
|
||
|
||
|
||
## Need makeinfo >= 4.6 (?) to build the manuals.
|
||
AC_PATH_PROG(MAKEINFO, makeinfo, no)
|
||
dnl By this stage, configure has already checked for egrep and set EGREP,
|
||
dnl or exited with an error if no egrep was found.
|
||
if test "$MAKEINFO" != "no" && \
|
||
test x"`$MAKEINFO --version 2> /dev/null | $EGREP 'texinfo[[^0-9]]*([[1-4]][[0-9]]+|[[5-9]]|4\.[[6-9]]|4\.[[1-5]][[0-9]]+)'`" = x; then
|
||
MAKEINFO=no
|
||
fi
|
||
|
||
## Makeinfo is unusual. For a released Emacs, the manuals are
|
||
## pre-built, and not deleted by the normal clean rules. makeinfo is
|
||
## therefore in the category of "special tools" not normally required, which
|
||
## configure does not have to check for (eg autoconf itself).
|
||
## In a Bazaar checkout on the other hand, the manuals are not included.
|
||
## So makeinfo is a requirement to build from Bazaar, and configure
|
||
## should test for it as it does for any other build requirement.
|
||
## We use the presence of $srcdir/info/emacs to distinguish a release,
|
||
## with pre-built manuals, from a Bazaar checkout.
|
||
if test "$MAKEINFO" = "no"; then
|
||
if test "x${with_makeinfo}" = "xno"; then
|
||
MAKEINFO=off
|
||
elif test ! -e $srcdir/info/emacs; then
|
||
AC_MSG_ERROR( [You do not seem to have makeinfo >= 4.6, and your
|
||
source tree does not seem to have pre-built manuals in the `info' directory.
|
||
Either install a suitable version of makeinfo, or re-run configure
|
||
with the `--without-makeinfo' option to build without the manuals.] )
|
||
fi
|
||
fi
|
||
|
||
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"
|
||
fi
|
||
|
||
if test x$GCC = x && test "x$NON_GCC_LINK_TEST_OPTIONS" != x
|
||
then
|
||
ac_link="$ac_link $NON_GCC_LINK_TEST_OPTIONS"
|
||
fi
|
||
|
||
dnl We need -znocombreloc if we're using a relatively recent GNU ld.
|
||
dnl If we can link with the flag, it shouldn't do any harm anyhow.
|
||
dnl (Don't use `-z nocombreloc' as -z takes no arg on Irix.)
|
||
dnl Treat GCC specially since it just gives a non-fatal `unrecognized option'
|
||
dnl if not built to support GNU ld.
|
||
|
||
late_LDFLAGS=$LDFLAGS
|
||
if test "$GCC" = yes; then
|
||
LDFLAGS="$LDFLAGS -Wl,-znocombreloc"
|
||
else
|
||
LDFLAGS="$LDFLAGS -znocombreloc"
|
||
fi
|
||
|
||
AC_MSG_CHECKING([for -znocombreloc])
|
||
AC_LINK_IFELSE([main(){return 0;}],
|
||
[AC_MSG_RESULT(yes)],
|
||
LDFLAGS=$late_LDFLAGS
|
||
[AC_MSG_RESULT(no)])
|
||
|
||
#### Extract some information from the operating system and machine files.
|
||
|
||
AC_CHECKING([the machine- and system-dependent files to find out
|
||
- which libraries the lib-src programs will want, and
|
||
- whether the GNU malloc routines are usable])
|
||
|
||
### First figure out CFLAGS (which we use for running the compiler here)
|
||
### and REAL_CFLAGS (which we use for real compilation).
|
||
### The two are the same except on a few systems, where they are made
|
||
### different to work around various lossages. For example,
|
||
### GCC 2.5 on GNU/Linux needs them to be different because it treats -g
|
||
### as implying static linking.
|
||
|
||
### If the CFLAGS env var is specified, we use that value
|
||
### instead of the default.
|
||
|
||
### It's not important that this name contain the PID; you can't run
|
||
### two configures in the same directory and have anything work
|
||
### anyway.
|
||
tempcname="conftest.c"
|
||
|
||
echo '
|
||
#include "'${srcdir}'/src/'${opsysfile}'"
|
||
#include "'${srcdir}'/src/'${machfile}'"
|
||
#ifndef LIBS_SYSTEM
|
||
#define LIBS_SYSTEM
|
||
#endif
|
||
configure___ libsrc_libs=LIBS_SYSTEM
|
||
|
||
configure___ LIBX=-lX11
|
||
|
||
configure___ unexec=UNEXEC
|
||
|
||
#ifdef SYSTEM_MALLOC
|
||
configure___ system_malloc=yes
|
||
#else
|
||
configure___ system_malloc=no
|
||
#endif
|
||
|
||
#ifdef USE_MMAP_FOR_BUFFERS
|
||
configure___ use_mmap_for_buffers=yes
|
||
#else
|
||
configure___ use_mmap_for_buffers=no
|
||
#endif
|
||
|
||
#ifndef C_OPTIMIZE_SWITCH
|
||
#ifdef __GNUC__
|
||
#define C_OPTIMIZE_SWITCH -O2
|
||
#else
|
||
#define C_OPTIMIZE_SWITCH -O
|
||
#endif
|
||
#endif
|
||
|
||
#ifndef C_WARNINGS_SWITCH
|
||
#define C_WARNINGS_SWITCH ${C_WARNINGS_SWITCH}
|
||
#endif
|
||
|
||
#ifdef THIS_IS_CONFIGURE
|
||
|
||
/* Get the CFLAGS for tests in configure. */
|
||
#ifdef __GNUC__
|
||
configure___ CFLAGS=-g C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}'
|
||
#else
|
||
configure___ CFLAGS='${SPECIFIED_CFLAGS}'
|
||
#endif
|
||
|
||
#else /* not THIS_IS_CONFIGURE */
|
||
|
||
/* Get the CFLAGS for real compilation. */
|
||
#ifdef __GNUC__
|
||
configure___ REAL_CFLAGS=-g C_OPTIMIZE_SWITCH C_WARNINGS_SWITCH ${PROFILING_CFLAGS} '${SPECIFIED_CFLAGS}'
|
||
#else
|
||
configure___ REAL_CFLAGS='${SPECIFIED_CFLAGS}'
|
||
#endif
|
||
|
||
#endif /* not THIS_IS_CONFIGURE */
|
||
' > ${tempcname}
|
||
|
||
LDFLAGS="${LDFLAGS} ${PROFILING_LDFLAGS}"
|
||
|
||
# The value of CPP is a quoted variable reference, so we need to do this
|
||
# to get its actual value...
|
||
CPP=`eval "echo $CPP"`
|
||
[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]
|
||
rm ${tempcname}
|
||
|
||
|
||
LD_SWITCH_SYSTEM=
|
||
case "$opsys" in
|
||
freebsd)
|
||
## Let `ld' find image libs and similar things in /usr/local/lib.
|
||
## The system compiler, GCC, has apparently been modified to not
|
||
## look there, contrary to what a stock GCC would do.
|
||
LD_SWITCH_SYSTEM=-L/usr/local/lib
|
||
;;
|
||
|
||
gnu-linux)
|
||
## cpp test was "ifdef __mips__", but presumably this is equivalent...
|
||
test "$machine" = "mips" && LD_SWITCH_SYSTEM="-G 0"
|
||
;;
|
||
|
||
netbsd)
|
||
LD_SWITCH_SYSTEM="-Wl,-rpath,/usr/pkg/lib -L/usr/pkg/lib -Wl,-rpath,/usr/local/lib -L/usr/local/lib"
|
||
;;
|
||
|
||
openbsd)
|
||
## Han Boetes <han@mijncomputer.nl> says this is necessary,
|
||
## otherwise Emacs dumps core on elf systems.
|
||
LD_SWITCH_SYSTEM="-Z"
|
||
;;
|
||
esac
|
||
AC_SUBST(LD_SWITCH_SYSTEM)
|
||
|
||
ac_link="$ac_link $LD_SWITCH_SYSTEM"
|
||
|
||
## This is fun. Some settings of LD_SWITCH_SYSTEM reference
|
||
## LD_SWITCH_X_SITE_AUX, which has not been defined yet. When using
|
||
## cpp, it was expanded to null. Thus LD_SWITCH_SYSTEM had different
|
||
## values in configure and the Makefiles. How helpful.
|
||
## FIXME why not use LD_SWITCH_SYSTEM_TEMACS (or somesuch) instead?
|
||
case "$opsys" in
|
||
gnu-linux)
|
||
## LD_SWITCH_X_SITE_AUX is a -R option saying where to find X at run-time.
|
||
LD_SWITCH_SYSTEM="$LD_SWITCH_SYSTEM \$(LD_SWITCH_X_SITE_AUX)" ;;
|
||
|
||
netbsd|openbsd)
|
||
## _AUX_RPATH is like _AUX, but uses -rpath instead of -R.
|
||
LD_SWITCH_SYSTEM="\$(LD_SWITCH_X_SITE_AUX_RPATH) $LD_SWITCH_SYSTEM" ;;
|
||
esac
|
||
|
||
|
||
C_SWITCH_MACHINE=
|
||
if test "$machine" = "alpha"; then
|
||
AC_CHECK_DECL([__ELF__])
|
||
if test "$ac_cv_have_decl___ELF__" = "yes"; then
|
||
## With ELF, make sure that all common symbols get allocated to in the
|
||
## data section. Otherwise, the dump of temacs may miss variables in
|
||
## the shared library that have been initialized. For example, with
|
||
## GNU libc, __malloc_initialized would normally be resolved to the
|
||
## shared library's .bss section, which is fatal.
|
||
if test "x$GCC" = "xyes"; then
|
||
C_SWITCH_MACHINE="-fno-common"
|
||
else
|
||
AC_MSG_ERROR([What gives? Fix me if DEC Unix supports ELF now.])
|
||
fi
|
||
fi
|
||
fi
|
||
AC_SUBST(C_SWITCH_MACHINE)
|
||
|
||
|
||
C_SWITCH_SYSTEM=
|
||
## Some programs in src produce warnings saying certain subprograms
|
||
## are too complex and need a MAXMEM value greater than 2000 for
|
||
## additional optimization. --nils@exp-math.uni-essen.de
|
||
test "$opsys" = "aix4.2" && test "x$GCC" != "xyes" && \
|
||
C_SWITCH_SYSTEM="-ma -qmaxmem=4000"
|
||
## gnu-linux might need -D_BSD_SOURCE on old libc5 systems.
|
||
## It is redundant in glibc2, since we define _GNU_SOURCE.
|
||
AC_SUBST(C_SWITCH_SYSTEM)
|
||
|
||
|
||
### Make sure subsequent tests use flags consistent with the build flags.
|
||
|
||
if test x"${OVERRIDE_CPPFLAGS}" != x; then
|
||
CPPFLAGS="${OVERRIDE_CPPFLAGS}"
|
||
else
|
||
CPPFLAGS="$C_SWITCH_SYSTEM $C_SWITCH_MACHINE $CPPFLAGS"
|
||
fi
|
||
|
||
dnl For AC_FUNC_GETLOADAVG, at least:
|
||
AC_CONFIG_LIBOBJ_DIR(src)
|
||
|
||
dnl Do this early because it can frob feature test macros for Unix-98 &c.
|
||
AC_SYS_LARGEFILE
|
||
|
||
|
||
## If user specified a crt-dir, use that unconditionally.
|
||
if test "X$CRT_DIR" = "X"; then
|
||
|
||
case "$canonical" in
|
||
x86_64-*-linux-gnu* | s390x-*-linux-gnu*)
|
||
## On x86-64 and s390x GNU/Linux distributions, the standard library
|
||
## can be in a variety of places. We only try /usr/lib64 and /usr/lib.
|
||
## For anything else (eg /usr/lib32), it is up the user to specify
|
||
## the location (bug#5655).
|
||
## Test for crtn.o, not just the directory, because sometimes the
|
||
## directory exists but does not have the relevant files (bug#1287).
|
||
## FIXME better to test for binary compatibility somehow.
|
||
test -e /usr/lib64/crtn.o && CRT_DIR=/usr/lib64
|
||
;;
|
||
|
||
powerpc64-*-linux-gnu* | sparc64-*-linux-gnu*) CRT_DIR=/usr/lib64 ;;
|
||
esac
|
||
|
||
case "$opsys" in
|
||
hpux10-20) CRT_DIR=/lib ;;
|
||
esac
|
||
|
||
## Default is /usr/lib.
|
||
test "X$CRT_DIR" = "X" && CRT_DIR=/usr/lib
|
||
|
||
else
|
||
|
||
## Some platforms don't use any of these files, so it is not
|
||
## appropriate to put this test outside the if block.
|
||
test -e $CRT_DIR/crtn.o || test -e $CRT_DIR/crt0.o || \
|
||
AC_MSG_ERROR([crt*.o not found in specified location.])
|
||
|
||
fi
|
||
|
||
AC_SUBST(CRT_DIR)
|
||
|
||
LIB_MATH=-lm
|
||
LIB_STANDARD=
|
||
START_FILES=
|
||
|
||
case $opsys in
|
||
cygwin )
|
||
LIB_MATH=
|
||
START_FILES='ecrt0.o'
|
||
;;
|
||
darwin )
|
||
## Adding -lm confuses the dynamic linker, so omit it.
|
||
LIB_MATH=
|
||
START_FILES='pre-crt0.o'
|
||
;;
|
||
freebsd )
|
||
LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o $(CRT_DIR)/crtn.o'
|
||
START_FILES='pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o $(CRT_DIR)/crtbegin.o'
|
||
;;
|
||
gnu-linux | gnu-kfreebsd )
|
||
LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtn.o'
|
||
START_FILES='pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o'
|
||
;;
|
||
hpux10-20 | hpux11 )
|
||
LIB_STANDARD=-lc
|
||
START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o'
|
||
;;
|
||
netbsd | openbsd )
|
||
if test -f $(CRT_DIR)/crti.o; then
|
||
LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o $(CRT_DIR)/crtn.o'
|
||
START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o $(CRT_DIR)/crti.o $(CRT_DIR)/crtbegin.o'
|
||
else
|
||
LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o'
|
||
START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o $(CRT_DIR)/crtbegin.o'
|
||
fi
|
||
;;
|
||
esac
|
||
|
||
AC_SUBST(LIB_MATH)
|
||
AC_SUBST(START_FILES)
|
||
|
||
dnl This function definition 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
|
||
|
||
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
|
||
|
||
if test "$PKG_CONFIG" = "no" ; then
|
||
ifelse([$4], , [AC_MSG_ERROR([
|
||
*** The pkg-config script could not be found. Make sure it is in your path, or give the full path to pkg-config with the PKG_CONFIG environment variable or --with-pkg-config-prog. Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config.])], [$4])
|
||
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" 2>&AS_MESSAGE_LOG_FD; then
|
||
AC_MSG_RESULT(yes)
|
||
succeeded=yes
|
||
|
||
AC_MSG_CHECKING($1_CFLAGS)
|
||
$1_CFLAGS=`$PKG_CONFIG --cflags "$2"|sed -e 's,///*,/,g'`
|
||
AC_MSG_RESULT($$1_CFLAGS)
|
||
|
||
AC_MSG_CHECKING($1_LIBS)
|
||
$1_LIBS=`$PKG_CONFIG --libs "$2"|sed -e 's,///*,/,g'`
|
||
AC_MSG_RESULT($$1_LIBS)
|
||
else
|
||
AC_MSG_RESULT(no)
|
||
$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
|
||
])
|
||
|
||
|
||
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)
|
||
|
||
ALSA_REQUIRED=1.0.0
|
||
ALSA_MODULES="alsa >= $ALSA_REQUIRED"
|
||
PKG_CHECK_MODULES(ALSA, $ALSA_MODULES, HAVE_ALSA=yes, HAVE_ALSA=no)
|
||
if test $HAVE_ALSA = yes; then
|
||
SAVE_CFLAGS="$CFLAGS"
|
||
SAVE_LDFLAGS="$LDFLAGS"
|
||
CFLAGS="$ALSA_CFLAGS $CFLAGS"
|
||
LDFLAGS="$ALSA_LIBS $LDFLAGS"
|
||
AC_TRY_COMPILE([#include <asoundlib.h>], [snd_lib_error_set_handler (0);],
|
||
emacs_alsa_normal=yes,
|
||
emacs_alsa_normal=no)
|
||
if test "$emacs_alsa_normal" != yes; then
|
||
AC_TRY_COMPILE([#include <alsa/asoundlib.h>],
|
||
[snd_lib_error_set_handler (0);],
|
||
emacs_alsa_subdir=yes,
|
||
emacs_alsa_subdir=no)
|
||
if test "$emacs_alsa_subdir" != yes; then
|
||
AC_MSG_ERROR([pkg-config found alsa, but it does not compile. See config.log for error messages.])
|
||
fi
|
||
ALSA_CFLAGS="$ALSA_CFLAGS -DALSA_SUBDIR_INCLUDE"
|
||
fi
|
||
|
||
CFLAGS="$SAVE_CFLAGS"
|
||
LDFLAGS="$SAVE_LDFLAGS"
|
||
LIBSOUND="$LIBSOUND $ALSA_LIBS"
|
||
CFLAGS_SOUND="$CFLAGS_SOUND $ALSA_CFLAGS"
|
||
AC_DEFINE(HAVE_ALSA, 1, [Define to 1 if ALSA is available.])
|
||
fi
|
||
AC_SUBST(CFLAGS_SOUND)
|
||
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 \
|
||
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 \
|
||
sys/utsname.h pwd.h utmp.h)
|
||
|
||
AC_MSG_CHECKING(if personality LINUX32 can be set)
|
||
AC_TRY_COMPILE([#include <sys/personality.h>], [personality (PER_LINUX32)],
|
||
emacs_cv_personality_linux32=yes,
|
||
emacs_cv_personality_linux32=no)
|
||
AC_MSG_RESULT($emacs_cv_personality_linux32)
|
||
|
||
if test $emacs_cv_personality_linux32 = yes; then
|
||
AC_DEFINE(HAVE_PERSONALITY_LINUX32, 1,
|
||
[Define to 1 if personality LINUX32 can be set.])
|
||
fi
|
||
|
||
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_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.
|
||
AC_CACHE_CHECK(for struct utimbuf, emacs_cv_struct_utimbuf,
|
||
AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
|
||
#include <sys/time.h>
|
||
#include <time.h>
|
||
#else
|
||
#ifdef HAVE_SYS_TIME_H
|
||
#include <sys/time.h>
|
||
#else
|
||
#include <time.h>
|
||
#endif
|
||
#endif
|
||
#ifdef HAVE_UTIME_H
|
||
#include <utime.h>
|
||
#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, 1, [Define to 1 if `struct utimbuf' is declared by <utime.h>.])
|
||
fi
|
||
|
||
dnl checks for typedefs
|
||
AC_TYPE_SIGNAL
|
||
|
||
dnl Check for speed_t typedef.
|
||
AC_CACHE_CHECK(for speed_t, emacs_cv_speed_t,
|
||
[AC_TRY_COMPILE([#include <termios.h>], [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, 1,
|
||
[Define to 1 if `speed_t' is declared by <termios.h>.])
|
||
fi
|
||
|
||
AC_CACHE_CHECK(for struct timeval, emacs_cv_struct_timeval,
|
||
AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
|
||
#include <sys/time.h>
|
||
#include <time.h>
|
||
#else
|
||
#ifdef HAVE_SYS_TIME_H
|
||
#include <sys/time.h>
|
||
#else
|
||
#include <time.h>
|
||
#endif
|
||
#endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
|
||
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, 1, [Define to 1 if `struct timeval' is declared by <sys/time.h>.])
|
||
fi
|
||
|
||
AC_CACHE_CHECK(for struct exception, emacs_cv_struct_exception,
|
||
AC_TRY_COMPILE([#include <math.h>],
|
||
[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, 1, [Define to 1 if you don't have struct exception in math.h.])
|
||
fi
|
||
|
||
AC_CHECK_HEADERS(sys/socket.h)
|
||
AC_CHECK_HEADERS(net/if.h, , , [AC_INCLUDES_DEFAULT
|
||
#if HAVE_SYS_SOCKET_H
|
||
#include <sys/socket.h>
|
||
#endif])
|
||
|
||
dnl checks for structure members
|
||
AC_STRUCT_TM
|
||
AC_STRUCT_TIMEZONE
|
||
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 <time.h>])
|
||
AC_CHECK_MEMBERS([struct ifreq.ifr_flags, struct ifreq.ifr_hwaddr,
|
||
struct ifreq.ifr_netmask, struct ifreq.ifr_broadaddr,
|
||
struct ifreq.ifr_addr], , ,
|
||
[AC_INCLUDES_DEFAULT
|
||
#if HAVE_SYS_SOCKET_H
|
||
#include <sys/socket.h>
|
||
#endif
|
||
#if HAVE_NET_IF_H
|
||
#include <net/if.h>
|
||
#endif])
|
||
|
||
dnl checks for compiler characteristics
|
||
|
||
dnl Testing __STDC__ to determine prototype support isn't good enough.
|
||
dnl DEC C, for instance, doesn't define it with default options, and
|
||
dnl is used on 64-bit systems (OSF Alphas). Similarly for volatile
|
||
dnl and void *.
|
||
AC_C_PROTOTYPES
|
||
AC_C_VOLATILE
|
||
AC_C_CONST
|
||
dnl This isn't useful because we can't turn on use of `inline' unless
|
||
dnl the compiler groks `extern inline'.
|
||
dnl AC_C_INLINE
|
||
AC_CACHE_CHECK([for void * support], emacs_cv_void_star,
|
||
[AC_TRY_COMPILE(, [void * foo;],
|
||
emacs_cv_void_star=yes, emacs_cv_void_star=no)])
|
||
if test $emacs_cv_void_star = yes; then
|
||
AC_DEFINE(POINTER_TYPE, void)
|
||
else
|
||
AC_DEFINE(POINTER_TYPE, char)
|
||
fi
|
||
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
|
||
|
||
dnl check for GNU Make if we have GCC and autodepend is on.
|
||
if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then
|
||
AC_MSG_CHECKING([whether we are using GNU Make])
|
||
HAVE_GNU_MAKE=no
|
||
testval=`make --version 2>/dev/null | grep 'GNU Make'`
|
||
if test "x$testval" != x; then
|
||
HAVE_GNU_MAKE=yes
|
||
else
|
||
ac_enable_autodepend=no
|
||
fi
|
||
AC_MSG_RESULT([$HAVE_GNU_MAKE])
|
||
if test $HAVE_GNU_MAKE = yes; then
|
||
AC_MSG_CHECKING([whether gcc understands -MMD -MF])
|
||
SAVE_CFLAGS="$CFLAGS"
|
||
CFLAGS="$CFLAGS -MMD -MF deps.d"
|
||
AC_TRY_COMPILE([], [], , ac_enable_autodepend=no)
|
||
CFLAGS="$SAVE_CFLAGS"
|
||
test -f deps.d || ac_enable_autodepend=no
|
||
rm -rf deps.d
|
||
AC_MSG_RESULT([$ac_enable_autodepend])
|
||
fi
|
||
if test $ac_enable_autodepend = yes; then
|
||
AC_DEFINE(AUTO_DEPEND, 1, [Generate dependencies with gcc.])
|
||
fi
|
||
fi
|
||
|
||
dnl checks for operating system services
|
||
AC_SYS_LONG_FILE_NAMES
|
||
|
||
#### Choose a window system.
|
||
|
||
AC_PATH_X
|
||
if test "$no_x" = yes; then
|
||
window_system=none
|
||
else
|
||
window_system=x11
|
||
fi
|
||
|
||
## Workaround for bug in autoconf <= 2.62.
|
||
## http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01551.html
|
||
## No need to do anything special for these standard directories.
|
||
if test -n "${x_libraries}" && test x"${x_libraries}" != xNONE; then
|
||
|
||
x_libraries=`echo :${x_libraries}: | sed -e 's|:/usr/lib64:|:|g' -e 's|:/lib64:|:|g' -e 's|^:||' -e 's|:$||'`
|
||
|
||
fi
|
||
|
||
LD_SWITCH_X_SITE_AUX=
|
||
LD_SWITCH_X_SITE_AUX_RPATH=
|
||
if test "${x_libraries}" != NONE; then
|
||
if test -n "${x_libraries}"; then
|
||
LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
|
||
LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
|
||
LD_SWITCH_X_SITE_AUX_RPATH=`echo ${LD_SWITCH_X_SITE_AUX} | sed -e 's/-R/-Wl,-rpath,/'`
|
||
fi
|
||
x_default_search_path=""
|
||
x_search_path=${x_libraries}
|
||
if test -z "${x_search_path}"; then
|
||
x_search_path=/usr/lib
|
||
fi
|
||
for x_library in `echo ${x_search_path}: | \
|
||
sed -e "s/:/ /g" -e p -e "s:/lib[[^ /]]* :/share :g"`; do
|
||
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
|
||
x_default_search_path="${x_search_path}:${x_default_search_path}"
|
||
fi
|
||
done
|
||
fi
|
||
AC_SUBST(LD_SWITCH_X_SITE_AUX)
|
||
AC_SUBST(LD_SWITCH_X_SITE_AUX_RPATH)
|
||
|
||
if test "${x_includes}" != NONE && test -n "${x_includes}"; then
|
||
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
|
||
# 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"
|
||
fi
|
||
if 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
|
||
|
||
HAVE_NS=no
|
||
NS_IMPL_COCOA=no
|
||
NS_IMPL_GNUSTEP=no
|
||
tmp_CPPFLAGS="$CPPFLAGS"
|
||
tmp_CFLAGS="$CFLAGS"
|
||
CPPFLAGS="$CPPFLAGS -x objective-c"
|
||
CFLAGS="$CFLAGS -x objective-c"
|
||
if test "${with_ns}" != no; then
|
||
if test "${opsys}" = darwin; then
|
||
NS_IMPL_COCOA=yes
|
||
ns_appdir=`pwd`/nextstep/Emacs.app
|
||
ns_appbindir=`pwd`/nextstep/Emacs.app/Contents/MacOS
|
||
ns_appresdir=`pwd`/nextstep/Emacs.app/Contents/Resources
|
||
ns_appsrc=${srcdir}/nextstep/Cocoa/Emacs.base
|
||
elif test -f $GNUSTEP_CONFIG_FILE; then
|
||
NS_IMPL_GNUSTEP=yes
|
||
ns_appdir=`pwd`/nextstep/Emacs.app
|
||
ns_appbindir=`pwd`/nextstep/Emacs.app
|
||
ns_appresdir=`pwd`/nextstep/Emacs.app/Resources
|
||
ns_appsrc=${srcdir}/nextstep/GNUstep/Emacs.base
|
||
dnl FIXME sourcing this 3 times in subshells seems inefficient.
|
||
GNUSTEP_MAKEFILES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_MAKEFILES)"
|
||
GNUSTEP_SYSTEM_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_HEADERS)"
|
||
GNUSTEP_SYSTEM_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_LIBRARIES)"
|
||
CPPFLAGS="$CPPFLAGS -I${GNUSTEP_SYSTEM_HEADERS}"
|
||
CFLAGS="$CFLAGS -I${GNUSTEP_SYSTEM_HEADERS}"
|
||
REAL_CFLAGS="$REAL_CFLAGS -I${GNUSTEP_SYSTEM_HEADERS}"
|
||
LDFLAGS="$LDFLAGS -L${GNUSTEP_SYSTEM_LIBRARIES}"
|
||
LIB_STANDARD=
|
||
fi
|
||
AC_CHECK_HEADER([AppKit/AppKit.h], [HAVE_NS=yes],
|
||
[AC_MSG_ERROR([`--with-ns' was specified, but the include
|
||
files are missing or cannot be compiled.])])
|
||
NS_HAVE_NSINTEGER=yes
|
||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <Foundation/NSObjCRuntime.h>],
|
||
[NSInteger i;])],
|
||
ns_have_nsinteger=yes,
|
||
ns_have_nsinteger=no)
|
||
if test $ns_have_nsinteger = no; then
|
||
NS_HAVE_NSINTEGER=no
|
||
fi
|
||
fi
|
||
|
||
NS_OBJ=
|
||
NS_SUPPORT=
|
||
if test "${HAVE_NS}" = yes; then
|
||
window_system=nextstep
|
||
with_xft=no
|
||
# set up packaging dirs
|
||
exec_prefix=${ns_appbindir}
|
||
libexecdir=${ns_appbindir}/libexec
|
||
if test "${EN_NS_SELF_CONTAINED}" = yes; then
|
||
prefix=${ns_appresdir}
|
||
fi
|
||
NS_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o fontset.o fringe.o image.o"
|
||
NS_SUPPORT="\${lispsource}emacs-lisp/easymenu.elc \${lispsource}term/ns-win.elc"
|
||
fi
|
||
CFLAGS="$tmp_CFLAGS"
|
||
CPPFLAGS="$tmp_CPPFLAGS"
|
||
AC_SUBST(NS_OBJ)
|
||
AC_SUBST(NS_SUPPORT)
|
||
AC_SUBST(LIB_STANDARD)
|
||
|
||
case "${window_system}" in
|
||
x11 )
|
||
HAVE_X_WINDOWS=yes
|
||
HAVE_X11=yes
|
||
case "${with_x_toolkit}" in
|
||
athena | lucid ) USE_X_TOOLKIT=LUCID ;;
|
||
motif ) USE_X_TOOLKIT=MOTIF ;;
|
||
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, make this decision later:
|
||
dnl use the toolkit if we have gtk, or X11R5 or newer.
|
||
* ) USE_X_TOOLKIT=maybe ;;
|
||
esac
|
||
;;
|
||
nextstep | none )
|
||
HAVE_X_WINDOWS=no
|
||
HAVE_X11=no
|
||
USE_X_TOOLKIT=none
|
||
;;
|
||
esac
|
||
|
||
if test "$window_system" = none && test "X$with_x" != "Xno"; then
|
||
AC_CHECK_PROG(HAVE_XSERVER, X, true, false)
|
||
if test "$HAVE_XSERVER" = true ||
|
||
test -n "$DISPLAY" ||
|
||
test "`echo /usr/lib/libX11.*`" != "/usr/lib/libX11.*"; then
|
||
AC_MSG_ERROR([You seem to be running X, but no X development libraries
|
||
were found. You should install the relevant development files for X
|
||
and for the toolkit you want, such as Gtk+, Lesstif or Motif. Also make
|
||
sure you have development files for image handling, i.e.
|
||
tiff, gif, jpeg, png and xpm.
|
||
If you are sure you want Emacs compiled without X window support, pass
|
||
--without-x
|
||
to configure.])
|
||
fi
|
||
fi
|
||
|
||
### If we're using X11, we should use the X menu package.
|
||
HAVE_MENUS=no
|
||
case ${HAVE_X11} in
|
||
yes ) HAVE_MENUS=yes ;;
|
||
esac
|
||
|
||
# Do the opsystem or machine files prohibit the use of the GNU malloc?
|
||
# Assume not, until told otherwise.
|
||
GNU_MALLOC=yes
|
||
doug_lea_malloc=yes
|
||
AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no)
|
||
AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
|
||
AC_CACHE_CHECK(whether __after_morecore_hook exists,
|
||
emacs_cv_var___after_morecore_hook,
|
||
[AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
|
||
emacs_cv_var___after_morecore_hook=yes,
|
||
emacs_cv_var___after_morecore_hook=no)])
|
||
if test $emacs_cv_var___after_morecore_hook = no; then
|
||
doug_lea_malloc=no
|
||
fi
|
||
if test "${system_malloc}" = "yes"; then
|
||
GNU_MALLOC=no
|
||
GNU_MALLOC_reason="
|
||
(The GNU allocators don't work with this system configuration.)"
|
||
fi
|
||
if test "$doug_lea_malloc" = "yes" ; then
|
||
if test "$GNU_MALLOC" = yes ; then
|
||
GNU_MALLOC_reason="
|
||
(Using Doug Lea's new malloc from the GNU C Library.)"
|
||
fi
|
||
AC_DEFINE(DOUG_LEA_MALLOC, 1,
|
||
[Define to 1 if you are using the GNU C Library.])
|
||
fi
|
||
|
||
if test x"${REL_ALLOC}" = x; then
|
||
REL_ALLOC=${GNU_MALLOC}
|
||
fi
|
||
|
||
dnl For now, need to use an explicit `#define USE_MMAP_FOR_BUFFERS 1'
|
||
dnl the system configuration file (s/*.h) to turn the use of mmap
|
||
dnl in the relocating allocator on.
|
||
|
||
AC_FUNC_MMAP
|
||
if test $use_mmap_for_buffers = yes; then
|
||
REL_ALLOC=no
|
||
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.
|
||
AC_CHECK_LIB(dnet, dnet_ntoa)
|
||
dnl This causes -lresolv to get used in subsequent tests,
|
||
dnl which causes failures on some systems such as HPUX 9.
|
||
dnl AC_CHECK_LIB(resolv, gethostbyname)
|
||
|
||
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)
|
||
|
||
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 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"
|
||
|
||
if test "${HAVE_X11}" = "yes"; then
|
||
DEFS="$C_SWITCH_X_SITE $DEFS"
|
||
LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE"
|
||
LIBS="$LIBX $LIBS"
|
||
CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
|
||
CPPFLAGS="$C_SWITCH_X_SITE $CPPFLAGS"
|
||
|
||
# On Solaris, arrange for LD_RUN_PATH to point to the X libraries for tests.
|
||
# This is handled by LD_SWITCH_X_SITE_AUX during the real build,
|
||
# 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
|
||
|
||
# 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 <X11/Xlib.h>
|
||
#include <X11/XKBlib.h>],
|
||
[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)
|
||
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 <X11/Xlib.h>],
|
||
[#if XlibSpecificationRelease < 6
|
||
fail;
|
||
#endif
|
||
], 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, 1,
|
||
[Define to 1 if you have the X11R6 or newer version of Xlib.])
|
||
else
|
||
AC_MSG_RESULT(before 6)
|
||
fi
|
||
fi
|
||
|
||
|
||
### Use -lrsvg-2 if available, unless `--with-rsvg=no' is specified.
|
||
HAVE_RSVG=no
|
||
if test "${HAVE_X11}" = "yes" || test "${NS_IMPL_GNUSTEP}" = "yes"; then
|
||
if test "${with_rsvg}" != "no"; then
|
||
RSVG_REQUIRED=2.11.0
|
||
RSVG_MODULE="librsvg-2.0 >= $RSVG_REQUIRED"
|
||
|
||
PKG_CHECK_MODULES(RSVG, $RSVG_MODULE, :, :)
|
||
AC_SUBST(RSVG_CFLAGS)
|
||
AC_SUBST(RSVG_LIBS)
|
||
|
||
if test ".${RSVG_CFLAGS}" != "."; then
|
||
HAVE_RSVG=yes
|
||
AC_DEFINE(HAVE_RSVG, 1, [Define to 1 if using librsvg.])
|
||
CFLAGS="$CFLAGS $RSVG_CFLAGS"
|
||
LIBS="$RSVG_LIBS $LIBS"
|
||
fi
|
||
fi
|
||
fi
|
||
|
||
|
||
HAVE_GTK=no
|
||
if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "maybe"; then
|
||
GLIB_REQUIRED=2.6
|
||
GTK_REQUIRED=2.6
|
||
GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
|
||
|
||
dnl Checks for libraries.
|
||
PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
|
||
if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
|
||
AC_MSG_ERROR($GTK_PKG_ERRORS)
|
||
fi
|
||
fi
|
||
|
||
|
||
GTK_OBJ=
|
||
if test x"$pkg_check_gtk" = xyes; then
|
||
|
||
AC_SUBST(GTK_CFLAGS)
|
||
AC_SUBST(GTK_LIBS)
|
||
C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS"
|
||
CFLAGS="$CFLAGS $GTK_CFLAGS"
|
||
LIBS="$GTK_LIBS $LIBS"
|
||
dnl Try to compile a simple GTK program.
|
||
GTK_COMPILES=no
|
||
AC_CHECK_FUNCS(gtk_main, GTK_COMPILES=yes)
|
||
if test "${GTK_COMPILES}" != "yes"; then
|
||
if test "$USE_X_TOOLKIT" != "maybe"; then
|
||
AC_MSG_ERROR([Gtk+ wanted, but it does not compile, see config.log. Maybe some x11-devel files missing?]);
|
||
fi
|
||
else
|
||
HAVE_GTK=yes
|
||
AC_DEFINE(USE_GTK, 1, [Define to 1 if using GTK.])
|
||
GTK_OBJ=gtkutil.o
|
||
USE_X_TOOLKIT=none
|
||
if $PKG_CONFIG --atleast-version=2.10 gtk+-2.0; then
|
||
:
|
||
else
|
||
AC_MSG_WARN([[Your version of Gtk+ will have problems with
|
||
closing open displays. This is no problem if you just use
|
||
one display, but if you use more than one and close one of them
|
||
Emacs may crash.]])
|
||
sleep 3
|
||
fi
|
||
fi
|
||
|
||
fi
|
||
AC_SUBST(GTK_OBJ)
|
||
|
||
|
||
if test "${HAVE_GTK}" = "yes"; then
|
||
|
||
dnl GTK scrollbars resemble toolkit scrollbars a lot, so to avoid
|
||
dnl a lot if #ifdef:s, say we have toolkit scrollbars.
|
||
if test "$with_toolkit_scroll_bars" != no; then
|
||
with_toolkit_scroll_bars=yes
|
||
fi
|
||
|
||
dnl Check if we can use multiple displays with this GTK version.
|
||
dnl If gdk_display_open exists, assume all others are there also.
|
||
HAVE_GTK_MULTIDISPLAY=no
|
||
AC_CHECK_FUNCS(gdk_display_open, HAVE_GTK_MULTIDISPLAY=yes)
|
||
if test "${HAVE_GTK_MULTIDISPLAY}" = "yes"; then
|
||
AC_DEFINE(HAVE_GTK_MULTIDISPLAY, 1,
|
||
[Define to 1 if GTK can handle more than one display.])
|
||
fi
|
||
|
||
dnl Check if we have the old file selection dialog declared and
|
||
dnl in the link library. In 2.x it may be in the library,
|
||
dnl but not declared if deprecated featured has been selected out.
|
||
dnl AC_CHECK_DECL checks for a macro, so check for GTK_TYPE_FILE_SELECTION.
|
||
HAVE_GTK_FILE_SELECTION=no
|
||
AC_CHECK_DECL(GTK_TYPE_FILE_SELECTION, HAVE_GTK_FILE_SELECTION=yes,
|
||
HAVE_GTK_FILE_SELECTION=no, [AC_INCLUDES_DEFAULT
|
||
#include <gtk/gtk.h>])
|
||
if test "$HAVE_GTK_FILE_SELECTION" = yes; then
|
||
AC_CHECK_FUNCS(gtk_file_selection_new, HAVE_GTK_FILE_SELECTION=yes,
|
||
HAVE_GTK_FILE_SELECTION=no)
|
||
fi
|
||
|
||
dnl Check if we have the new file chooser dialog
|
||
HAVE_GTK_FILE_CHOOSER=no
|
||
AC_CHECK_DECL(GTK_TYPE_FILE_CHOOSER, HAVE_GTK_FILE_CHOOSER=yes,
|
||
HAVE_GTK_FILE_CHOOSER=no, [AC_INCLUDES_DEFAULT
|
||
#include <gtk/gtk.h>])
|
||
if test "$HAVE_GTK_FILE_CHOOSER" = yes; then
|
||
AC_CHECK_FUNCS(gtk_file_chooser_dialog_new, HAVE_GTK_FILE_CHOOSER=yes,
|
||
HAVE_GTK_FILE_CHOOSER=no)
|
||
fi
|
||
|
||
if test "$HAVE_GTK_FILE_SELECTION" = yes \
|
||
&& test "$HAVE_GTK_FILE_CHOOSER" = yes; then
|
||
AC_DEFINE(HAVE_GTK_FILE_BOTH, 1,
|
||
[Define to 1 if GTK has both file selection and chooser dialog.])
|
||
fi
|
||
|
||
dnl Check if pthreads are available. Emacs only needs this when using
|
||
dnl gtk_file_chooser under Gnome.
|
||
if test "$HAVE_GTK_FILE_CHOOSER" = yes; then
|
||
HAVE_GTK_AND_PTHREAD=no
|
||
AC_CHECK_HEADERS(pthread.h)
|
||
if test "$ac_cv_header_pthread_h"; then
|
||
AC_CHECK_LIB(pthread, pthread_self, HAVE_GTK_AND_PTHREAD=yes)
|
||
fi
|
||
if test "$HAVE_GTK_AND_PTHREAD" = yes; then
|
||
case "${canonical}" in
|
||
*-hpux*) ;;
|
||
*) GTK_LIBS="$GTK_LIBS -lpthread" ;;
|
||
esac
|
||
AC_DEFINE(HAVE_GTK_AND_PTHREAD, 1,
|
||
[Define to 1 if you have GTK and pthread (-lpthread).])
|
||
fi
|
||
fi
|
||
fi
|
||
|
||
dnl D-Bus has been tested under GNU/Linux only. Must be adapted for
|
||
dnl other platforms. Support for higher D-Bus versions than 1.0 is
|
||
dnl also not configured.
|
||
HAVE_DBUS=no
|
||
DBUS_OBJ=
|
||
if test "${with_dbus}" = "yes"; then
|
||
PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0, HAVE_DBUS=yes, HAVE_DBUS=no)
|
||
if test "$HAVE_DBUS" = yes; then
|
||
LIBS="$LIBS $DBUS_LIBS"
|
||
AC_DEFINE(HAVE_DBUS, 1, [Define to 1 if using D-Bus.])
|
||
AC_CHECK_FUNCS([dbus_watch_get_unix_fd])
|
||
DBUS_OBJ=dbusbind.o
|
||
fi
|
||
fi
|
||
AC_SUBST(DBUS_OBJ)
|
||
|
||
dnl GConf has been tested under GNU/Linux only.
|
||
dnl The version is really arbitrary, it is about the same age as Gtk+ 2.6.
|
||
HAVE_GCONF=no
|
||
if test "${HAVE_X11}" = "yes" && test "${with_gconf}" = "yes"; then
|
||
PKG_CHECK_MODULES(GCONF, gconf-2.0 >= 2.13, HAVE_GCONF=yes, HAVE_GCONF=no)
|
||
if test "$HAVE_GCONF" = yes; then
|
||
AC_DEFINE(HAVE_GCONF, 1, [Define to 1 if using GConf.])
|
||
fi
|
||
fi
|
||
|
||
dnl SELinux is available for GNU/Linux only.
|
||
HAVE_LIBSELINUX=no
|
||
LIBSELINUX_LIBS=
|
||
if test "${with_selinux}" = "yes"; then
|
||
AC_CHECK_LIB([selinux], [lgetfilecon], HAVE_LIBSELINUX=yes, HAVE_LIBSELINUX=no)
|
||
if test "$HAVE_LIBSELINUX" = yes; then
|
||
AC_DEFINE(HAVE_LIBSELINUX, 1, [Define to 1 if using SELinux.])
|
||
LIBSELINUX_LIBS=-lselinux
|
||
fi
|
||
fi
|
||
AC_SUBST(LIBSELINUX_LIBS)
|
||
|
||
dnl Do not put whitespace before the #include statements below.
|
||
dnl Older compilers (eg sunos4 cc) choke on it.
|
||
HAVE_XAW3D=no
|
||
LUCID_LIBW=
|
||
if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then
|
||
if test "$with_xaw3d" != no; then
|
||
AC_MSG_CHECKING(for xaw3d)
|
||
AC_CACHE_VAL(emacs_cv_xaw3d,
|
||
[AC_TRY_LINK([
|
||
#include <X11/Intrinsic.h>
|
||
#include <X11/Xaw3d/Simple.h>],
|
||
[],
|
||
emacs_cv_xaw3d=yes,
|
||
emacs_cv_xaw3d=no)])
|
||
else
|
||
emacs_cv_xaw3d=no
|
||
fi
|
||
if test $emacs_cv_xaw3d = yes; then
|
||
AC_MSG_RESULT([yes; using Lucid toolkit])
|
||
USE_X_TOOLKIT=LUCID
|
||
HAVE_XAW3D=yes
|
||
LUCID_LIBW=-lXaw3d
|
||
AC_DEFINE(HAVE_XAW3D, 1,
|
||
[Define to 1 if you have the Xaw3d library (-lXaw3d).])
|
||
else
|
||
AC_MSG_RESULT(no)
|
||
AC_MSG_CHECKING(for libXaw)
|
||
AC_CACHE_VAL(emacs_cv_xaw,
|
||
[AC_TRY_LINK([
|
||
#include <X11/Intrinsic.h>
|
||
#include <X11/Xaw/Simple.h>],
|
||
[],
|
||
emacs_cv_xaw=yes,
|
||
emacs_cv_xaw=no)])
|
||
if test $emacs_cv_xaw = yes; then
|
||
AC_MSG_RESULT([yes; using Lucid toolkit])
|
||
USE_X_TOOLKIT=LUCID
|
||
LUCID_LIBW=-lXaw
|
||
elif test x"${USE_X_TOOLKIT}" = xLUCID; then
|
||
AC_MSG_ERROR([Lucid toolkit requires X11/Xaw include files])
|
||
else
|
||
AC_MSG_RESULT([no; do not use toolkit by default])
|
||
USE_X_TOOLKIT=none
|
||
fi
|
||
fi
|
||
fi
|
||
|
||
X_TOOLKIT_TYPE=$USE_X_TOOLKIT
|
||
|
||
LIBXTR6=
|
||
if test "${USE_X_TOOLKIT}" != "none"; then
|
||
AC_MSG_CHECKING(X11 toolkit version)
|
||
AC_CACHE_VAL(emacs_cv_x11_toolkit_version_6,
|
||
[AC_TRY_LINK([#include <X11/Intrinsic.h>],
|
||
[#if XtSpecificationRelease < 6
|
||
fail;
|
||
#endif
|
||
], 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, 1,
|
||
[Define to 1 if you have the X11R6 or newer version of Xt.])
|
||
LIBXTR6="-lSM -lICE"
|
||
case "$opsys" in
|
||
## Use libw.a along with X11R6 Xt.
|
||
unixware) LIBXTR6="$LIBXTR6 -lw" ;;
|
||
esac
|
||
else
|
||
AC_MSG_RESULT(before 6)
|
||
fi
|
||
|
||
dnl If using toolkit, check whether libXmu.a exists.
|
||
dnl tranle@intellicorp.com says libXmu.a can need XtMalloc in libXt.a to link.
|
||
OLDLIBS="$LIBS"
|
||
if test x$HAVE_X11XTR6 = xyes; then
|
||
LIBS="-lXt -lSM -lICE $LIBS"
|
||
else
|
||
LIBS="-lXt $LIBS"
|
||
fi
|
||
AC_CHECK_LIB(Xmu, XmuConvertStandardSelection)
|
||
test $ac_cv_lib_Xmu_XmuConvertStandardSelection = no && LIBS="$OLDLIBS"
|
||
fi
|
||
AC_SUBST(LIBXTR6)
|
||
|
||
dnl FIXME the logic here seems weird, but this is what cpp was doing.
|
||
dnl Why not just test for libxmu in the normal way?
|
||
LIBXMU=-lXmu
|
||
case "$machine" in
|
||
## These machines don't supply Xmu.
|
||
hpux* | aix4-2 )
|
||
test "X$ac_cv_lib_Xmu_XmuConvertStandardSelection" != "Xyes" && LIBXMU=
|
||
;;
|
||
esac
|
||
AC_SUBST(LIBXMU)
|
||
|
||
# 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
|
||
|
||
LIBXP=
|
||
if test "${USE_X_TOOLKIT}" = "MOTIF"; then
|
||
AC_CACHE_CHECK(for Motif version 2.1, emacs_cv_motif_version_2_1,
|
||
[AC_TRY_COMPILE([#include <Xm/Xm.h>],
|
||
[#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1)
|
||
int x = 5;
|
||
#else
|
||
Motif version prior to 2.1.
|
||
#endif],
|
||
emacs_cv_motif_version_2_1=yes, emacs_cv_motif_version_2_1=no)])
|
||
if test $emacs_cv_motif_version_2_1 = yes; then
|
||
AC_CHECK_LIB(Xp, XpCreateContext, LIBXP=-lXp)
|
||
else
|
||
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 </usr/X11R6/LessTif/Motif1.2/include/Xm/Xm.h>],
|
||
[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
|
||
fi
|
||
fi
|
||
|
||
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
|
||
if test "${USE_X_TOOLKIT}" = "MOTIF"; then
|
||
AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
|
||
HAVE_XAW3D=no
|
||
USE_TOOLKIT_SCROLL_BARS=yes
|
||
elif test "${HAVE_XAW3D}" = "yes"; then
|
||
AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
|
||
USE_TOOLKIT_SCROLL_BARS=yes
|
||
fi
|
||
elif test "${HAVE_GTK}" = "yes"; then
|
||
AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
|
||
USE_TOOLKIT_SCROLL_BARS=yes
|
||
elif test "${HAVE_NS}" = "yes"; then
|
||
AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
|
||
USE_TOOLKIT_SCROLL_BARS=yes
|
||
fi
|
||
fi
|
||
|
||
dnl See if XIM is available.
|
||
AC_TRY_COMPILE([
|
||
#include <X11/Xlib.h>
|
||
#include <X11/Xresource.h>],
|
||
[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, 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 <X11/Xlib.h>
|
||
#include <X11/Xresource.h>],
|
||
[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
|
||
|
||
### Start of font-backend (under any platform) section.
|
||
# (nothing here yet -- this is a placeholder)
|
||
### End of font-backend (under any platform) section.
|
||
|
||
### Start of font-backend (under X11) section.
|
||
if test "${HAVE_X11}" = "yes"; then
|
||
PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= 2.2.0, HAVE_FC=yes, HAVE_FC=no)
|
||
|
||
## Use -lXft if available, unless `--with-xft=no'.
|
||
HAVE_XFT=maybe
|
||
if test "${HAVE_FC}" = "no" || test "x${with_x}" = "xno"; then
|
||
with_xft="no";
|
||
fi
|
||
if test "x${with_xft}" != "xno"; then
|
||
|
||
PKG_CHECK_MODULES(XFT, xft >= 0.13.0, , HAVE_XFT=no)
|
||
## Because xftfont.c uses XRenderQueryExtension, we also
|
||
## need to link to -lXrender.
|
||
HAVE_XRENDER=no
|
||
AC_CHECK_LIB(Xrender, XRenderQueryExtension, HAVE_XRENDER=yes)
|
||
if test "$HAVE_XFT" != no && test "$HAVE_XRENDER" != no; then
|
||
OLD_CPPFLAGS="$CPPFLAGS"
|
||
OLD_CFLAGS="$CFLAGS"
|
||
OLD_LIBS="$LIBS"
|
||
CPPFLAGS="$CPPFLAGS $XFT_CFLAGS"
|
||
CFLAGS="$CFLAGS $XFT_CFLAGS"
|
||
XFT_LIBS="-lXrender $XFT_LIBS"
|
||
LIBS="$XFT_LIBS $LIBS"
|
||
AC_CHECK_HEADER(X11/Xft/Xft.h,
|
||
AC_CHECK_LIB(Xft, XftFontOpen, HAVE_XFT=yes, , $XFT_LIBS))
|
||
|
||
if test "${HAVE_XFT}" = "yes"; then
|
||
AC_DEFINE(HAVE_XFT, 1, [Define to 1 if you have the Xft library.])
|
||
AC_SUBST(XFT_LIBS)
|
||
C_SWITCH_X_SITE="$C_SWITCH_X_SITE $XFT_CFLAGS"
|
||
else
|
||
CPPFLAGS="$OLD_CPPFLAGS"
|
||
CFLAGS="$OLD_CFLAGS"
|
||
LIBS="$OLD_LIBS"
|
||
fi # "${HAVE_XFT}" = "yes"
|
||
fi # "$HAVE_XFT" != no
|
||
fi # "x${with_xft}" != "xno"
|
||
|
||
dnl For the "Does Emacs use" message at the end.
|
||
if test "$HAVE_XFT" != "yes"; then
|
||
HAVE_XFT=no
|
||
fi
|
||
|
||
|
||
HAVE_FREETYPE=no
|
||
## We used to allow building with FreeType and without Xft.
|
||
## However, the ftx font backend driver is not in good shape.
|
||
if test "${HAVE_XFT}" = "yes"; then
|
||
dnl As we use Xft, we anyway use freetype.
|
||
dnl There's no need for additional CFLAGS and LIBS.
|
||
HAVE_FREETYPE=yes
|
||
FONTCONFIG_CFLAGS=
|
||
FONTCONFIG_LIBS=
|
||
fi
|
||
|
||
HAVE_LIBOTF=no
|
||
if test "${HAVE_FREETYPE}" = "yes"; then
|
||
AC_DEFINE(HAVE_FREETYPE, 1,
|
||
[Define to 1 if using the freetype and fontconfig libraries.])
|
||
if test "${with_libotf}" != "no"; then
|
||
PKG_CHECK_MODULES(LIBOTF, libotf, HAVE_LIBOTF=yes,
|
||
HAVE_LIBOTF=no)
|
||
if test "$HAVE_LIBOTF" = "yes"; then
|
||
AC_DEFINE(HAVE_LIBOTF, 1, [Define to 1 if using libotf.])
|
||
AC_CHECK_LIB(otf, OTF_get_variation_glyphs,
|
||
HAVE_OTF_GET_VARIATION_GLYPHS=yes,
|
||
HAVE_OTF_GET_VARIATION_GLYPHS=no)
|
||
if test "${HAVE_OTF_GET_VARIATION_GLYPHS}" = "yes"; then
|
||
AC_DEFINE(HAVE_OTF_GET_VARIATION_GLYPHS, 1,
|
||
[Define to 1 if libotf has OTF_get_variation_glyphs.])
|
||
fi
|
||
fi
|
||
fi
|
||
dnl FIXME should there be an error if HAVE_FREETYPE != yes?
|
||
dnl Does the new font backend require it, or can it work without it?
|
||
fi
|
||
|
||
HAVE_M17N_FLT=no
|
||
if test "${HAVE_LIBOTF}" = yes; then
|
||
if test "${with_m17n_flt}" != "no"; then
|
||
PKG_CHECK_MODULES(M17N_FLT, m17n-flt, HAVE_M17N_FLT=yes, HAVE_M17N_FLT=no)
|
||
if test "$HAVE_M17N_FLT" = "yes"; then
|
||
AC_DEFINE(HAVE_M17N_FLT, 1, [Define to 1 if using libm17n-flt.])
|
||
fi
|
||
fi
|
||
fi
|
||
else
|
||
HAVE_XFT=no
|
||
HAVE_FREETYPE=no
|
||
HAVE_LIBOTF=no
|
||
HAVE_M17N_FLT=no
|
||
fi
|
||
|
||
FONT_OBJ=xfont.o
|
||
if test "$HAVE_XFT" = "yes"; then
|
||
FONT_OBJ="$FONT_OBJ ftfont.o xftfont.o ftxfont.o"
|
||
elif test "$HAVE_FREETYPE" = "yes"; then
|
||
FONT_OBJ="$FONT_OBJ ftfont.o ftxfont.o"
|
||
fi
|
||
AC_SUBST(FONT_OBJ)
|
||
|
||
### End of font-backend (under X11) section.
|
||
|
||
AC_SUBST(FREETYPE_CFLAGS)
|
||
AC_SUBST(FREETYPE_LIBS)
|
||
AC_SUBST(FONTCONFIG_CFLAGS)
|
||
AC_SUBST(FONTCONFIG_LIBS)
|
||
AC_SUBST(LIBOTF_CFLAGS)
|
||
AC_SUBST(LIBOTF_LIBS)
|
||
AC_SUBST(M17N_FLT_CFLAGS)
|
||
AC_SUBST(M17N_FLT_LIBS)
|
||
|
||
### Use -lXpm if available, unless `--with-xpm=no'.
|
||
HAVE_XPM=no
|
||
LIBXPM=
|
||
if test "${HAVE_X11}" = "yes"; then
|
||
if test "${with_xpm}" != "no"; then
|
||
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"
|
||
#ifndef XpmReturnAllocPixels
|
||
no_return_alloc_pixels
|
||
#endif
|
||
], 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, 1, [Define to 1 if you have the Xpm libary (-lXpm).])
|
||
LIBXPM=-lXpm
|
||
fi
|
||
fi
|
||
AC_SUBST(LIBXPM)
|
||
|
||
### Use -ljpeg if available, unless `--with-jpeg=no'.
|
||
HAVE_JPEG=no
|
||
LIBJPEG=
|
||
if test "${HAVE_X11}" = "yes"; then
|
||
if test "${with_jpeg}" != "no"; then
|
||
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)])
|
||
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 <jpeglib.h>
|
||
version=JPEG_LIB_VERSION
|
||
],
|
||
[AC_DEFINE(HAVE_JPEG)],
|
||
[AC_MSG_WARN([libjpeg found, but not version 6b or later])
|
||
HAVE_JPEG=no])
|
||
fi
|
||
if test "${HAVE_JPEG}" = "yes"; then
|
||
LIBJPEG=-ljpeg
|
||
fi
|
||
fi
|
||
AC_SUBST(LIBJPEG)
|
||
|
||
### Use -lpng if available, unless `--with-png=no'.
|
||
HAVE_PNG=no
|
||
LIBPNG=
|
||
if test "${HAVE_X11}" = "yes"; then
|
||
if test "${with_png}" != "no"; then
|
||
# 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, 1, [Define to 1 if you have the png library (-lpng).])
|
||
LIBPNG="-lpng -lz -lm"
|
||
fi
|
||
fi
|
||
AC_SUBST(LIBPNG)
|
||
|
||
### Use -ltiff if available, unless `--with-tiff=no'.
|
||
HAVE_TIFF=no
|
||
LIBTIFF=
|
||
if test "${HAVE_X11}" = "yes"; then
|
||
if test "${with_tiff}" != "no"; then
|
||
AC_CHECK_HEADER(tiffio.h,
|
||
[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)])
|
||
fi
|
||
|
||
if test "${HAVE_TIFF}" = "yes"; then
|
||
AC_DEFINE(HAVE_TIFF, 1, [Define to 1 if you have the tiff library (-ltiff).])
|
||
dnl FIXME -lz -lm, as per libpng?
|
||
LIBTIFF=-ltiff
|
||
fi
|
||
fi
|
||
AC_SUBST(LIBTIFF)
|
||
|
||
### Use -lgif or -lungif if available, unless `--with-gif=no'.
|
||
HAVE_GIF=no
|
||
LIBGIF=
|
||
if test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no"; then
|
||
AC_CHECK_HEADER(gif_lib.h,
|
||
# EGifPutExtensionLast only exists from version libungif-4.1.0b1.
|
||
# Earlier versions can crash Emacs.
|
||
[AC_CHECK_LIB(gif, EGifPutExtensionLast, HAVE_GIF=yes, HAVE_GIF=maybe)])
|
||
|
||
if test "$HAVE_GIF" = yes; then
|
||
LIBGIF=-lgif
|
||
elif test "$HAVE_GIF" = maybe; then
|
||
# If gif_lib.h but no libgif, try libungif.
|
||
AC_CHECK_LIB(ungif, EGifPutExtensionLast, HAVE_GIF=yes, HAVE_GIF=no)
|
||
test "$HAVE_GIF" = yes && LIBGIF=-lungif
|
||
fi
|
||
|
||
if test "${HAVE_GIF}" = "yes"; then
|
||
AC_DEFINE(HAVE_GIF, 1, [Define to 1 if you have a gif (or ungif) library.])
|
||
fi
|
||
fi
|
||
AC_SUBST(LIBGIF)
|
||
|
||
dnl Check for required libraries.
|
||
if test "${HAVE_X11}" = "yes"; then
|
||
MISSING=""
|
||
WITH_NO=""
|
||
test "${with_xpm}" != "no" && test "${HAVE_XPM}" != "yes" &&
|
||
MISSING="libXpm" && WITH_NO="--with-xpm=no"
|
||
test "${with_jpeg}" != "no" && test "${HAVE_JPEG}" != "yes" &&
|
||
MISSING="$MISSING libjpeg" && WITH_NO="$WITH_NO --with-jpeg=no"
|
||
test "${with_png}" != "no" && test "${HAVE_PNG}" != "yes" &&
|
||
MISSING="$MISSING libpng" && WITH_NO="$WITH_NO --with-png=no"
|
||
test "${with_gif}" != "no" && test "${HAVE_GIF}" != "yes" &&
|
||
MISSING="$MISSING libgif/libungif" && WITH_NO="$WITH_NO --with-gif=no"
|
||
test "${with_tiff}" != "no" && test "${HAVE_TIFF}" != "yes" &&
|
||
MISSING="$MISSING libtiff" && WITH_NO="$WITH_NO --with-tiff=no"
|
||
|
||
if test "X${MISSING}" != X; then
|
||
AC_MSG_ERROR([The following required libraries were not found:
|
||
$MISSING
|
||
Maybe some development libraries/packages are missing?
|
||
If you don't want to link with them give
|
||
$WITH_NO
|
||
as options to configure])
|
||
fi
|
||
fi
|
||
|
||
### Use -lgpm if available, unless `--with-gpm=no'.
|
||
HAVE_GPM=no
|
||
LIBGPM=
|
||
GPM_MOUSE_SUPPORT=
|
||
if test "${with_gpm}" != "no"; then
|
||
AC_CHECK_HEADER(gpm.h,
|
||
[AC_CHECK_LIB(gpm, Gpm_Open, HAVE_GPM=yes)])
|
||
|
||
if test "${HAVE_GPM}" = "yes"; then
|
||
AC_DEFINE(HAVE_GPM, 1, [Define to 1 if you have the gpm library (-lgpm).])
|
||
LIBGPM=-lgpm
|
||
GPM_MOUSE_SUPPORT="\${lispsource}mouse.elc"
|
||
fi
|
||
fi
|
||
AC_SUBST(LIBGPM)
|
||
AC_SUBST(GPM_MOUSE_SUPPORT)
|
||
|
||
dnl Check for malloc/malloc.h on darwin
|
||
AC_CHECK_HEADER(malloc/malloc.h, [AC_DEFINE(HAVE_MALLOC_MALLOC_H, 1, [Define to 1 if you have the <malloc/malloc.h> header file.])])
|
||
|
||
C_SWITCH_X_SYSTEM=
|
||
### Use NeXTstep API to implement GUI.
|
||
if test "${HAVE_NS}" = "yes"; then
|
||
AC_DEFINE(HAVE_NS, 1, [Define to 1 if you are using the NeXTstep API, either GNUstep or Cocoa on Mac OS X.])
|
||
if test "${NS_IMPL_COCOA}" = "yes"; then
|
||
AC_DEFINE(NS_IMPL_COCOA, 1, [Define to 1 if you are using NS windowing under MacOS X.])
|
||
GNU_OBJC_CFLAGS=
|
||
fi
|
||
if test "${NS_IMPL_GNUSTEP}" = "yes"; then
|
||
AC_DEFINE(NS_IMPL_GNUSTEP, 1, [Define to 1 if you are using NS windowing under GNUstep.])
|
||
# See also .m.o rule in Makefile.in */
|
||
# FIXME: are all these flags really needed? Document here why. */
|
||
C_SWITCH_X_SYSTEM="-D_REENTRANT -fPIC -fno-strict-aliasing"
|
||
GNU_OBJC_CFLAGS="-fgnu-runtime -Wno-import -fconstant-string-class=NSConstantString -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN -DGSDIAGNOSE"
|
||
fi
|
||
if test "${NS_HAVE_NSINTEGER}" = "yes"; then
|
||
AC_DEFINE(NS_HAVE_NSINTEGER, 1, [Define to 1 if `NSInteger' is defined.])
|
||
fi
|
||
# We also have mouse menus.
|
||
HAVE_MENUS=yes
|
||
OTHER_FILES=ns-app
|
||
fi
|
||
|
||
|
||
### Use session management (-lSM -lICE) if available
|
||
HAVE_X_SM=no
|
||
LIBXSM=
|
||
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).])
|
||
LIBXSM="-lSM -lICE"
|
||
case "$LIBS" in
|
||
*-lSM*) ;;
|
||
*) LIBS="$LIBXSM $LIBS" ;;
|
||
esac
|
||
fi
|
||
fi
|
||
AC_SUBST(LIBXSM)
|
||
|
||
# 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 <netdb.h>],
|
||
[return h_errno;],
|
||
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, 1, [Define to 1 if netdb.h declares h_errno.])
|
||
fi
|
||
|
||
AC_FUNC_ALLOCA
|
||
|
||
dnl src/alloca.c has been removed. Could also check if $ALLOCA is set?
|
||
dnl FIXME is there an autoconf test that does the right thing, without
|
||
dnl needing to call A_M_E afterwards?
|
||
if test x"$ac_cv_func_alloca_works" != xyes; then
|
||
AC_MSG_ERROR( [a system implementation of alloca is required] )
|
||
fi
|
||
|
||
# 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)
|
||
|
||
# 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, have_mail=yes, have_mail=no)
|
||
if test $have_mail = yes; then
|
||
LIBS_MAIL=-lmail
|
||
LIBS="$LIBS_MAIL $LIBS"
|
||
AC_DEFINE(HAVE_LIBMAIL, 1, [Define to 1 if you have the `mail' library (-lmail).])
|
||
else
|
||
LIBS_MAIL=
|
||
fi
|
||
dnl Debian, at least:
|
||
AC_CHECK_LIB(lockfile, maillock, have_lockfile=yes, have_lockfile=no)
|
||
if test $have_lockfile = yes; then
|
||
LIBS_MAIL=-llockfile
|
||
LIBS="$LIBS_MAIL $LIBS"
|
||
AC_DEFINE(HAVE_LIBLOCKFILE, 1, [Define to 1 if you have the `lockfile' library (-llockfile).])
|
||
else
|
||
# If we have the shared liblockfile, assume we must use it for mail
|
||
# locking (e.g. Debian). If we couldn't link against liblockfile
|
||
# (no liblockfile.a installed), ensure that we don't need to.
|
||
dnl This works for files generally, not just executables.
|
||
dnl Should we look elsewhere for it? Maybe examine /etc/ld.so.conf?
|
||
AC_CHECK_PROG(liblockfile, liblockfile.so, yes, no,
|
||
/usr/lib:/lib:/usr/local/lib:$LD_LIBRARY_PATH)
|
||
if test $ac_cv_prog_liblockfile = yes; then
|
||
AC_MSG_ERROR([Shared liblockfile found but can't link against it.
|
||
This probably means that movemail could lose mail.
|
||
There may be a `development' package to install containing liblockfile.])
|
||
fi
|
||
fi
|
||
AC_CHECK_FUNCS(touchlock)
|
||
AC_CHECK_HEADERS(maillock.h)
|
||
AC_SUBST(LIBS_MAIL)
|
||
|
||
AC_CHECK_FUNCS(gethostname getdomainname dup2 \
|
||
rename closedir mkdir rmdir sysinfo getrusage get_current_dir_name \
|
||
random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime setsid \
|
||
strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \
|
||
utimes getrlimit 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 sync bzero \
|
||
memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign \
|
||
cfmakeraw cfsetspeed isnan copysign)
|
||
|
||
AC_CHECK_HEADERS(sys/un.h)
|
||
|
||
AC_FUNC_MKTIME
|
||
if test "$ac_cv_func_working_mktime" = no; then
|
||
AC_DEFINE(BROKEN_MKTIME, 1, [Define to 1 if the mktime function is broken.])
|
||
fi
|
||
|
||
AC_FUNC_GETLOADAVG
|
||
|
||
AC_FUNC_FSEEKO
|
||
|
||
# Configure getopt.
|
||
m4_include([m4/getopt.m4])
|
||
gl_GETOPT_IFELSE([
|
||
gl_GETOPT_SUBSTITUTE_HEADER
|
||
gl_PREREQ_GETOPT
|
||
GETOPTOBJS='getopt.o getopt1.o'
|
||
])
|
||
AC_SUBST(GETOPTOBJS)
|
||
|
||
AC_FUNC_GETPGRP
|
||
|
||
AC_FUNC_STRFTIME
|
||
|
||
# UNIX98 PTYs.
|
||
AC_CHECK_FUNCS(grantpt)
|
||
|
||
# PTY-related GNU extensions.
|
||
AC_CHECK_FUNCS(getpt)
|
||
|
||
# Check this now, so that we will NOT find the above functions in ncurses.
|
||
# That is because we have not set up to link ncurses in lib-src.
|
||
# It's better to believe a function is not available
|
||
# than to expect to find it in ncurses.
|
||
# Also we need tputs and friends to be able to build at all.
|
||
have_tputs_et_al=true
|
||
AC_SEARCH_LIBS(tputs, [ncurses terminfo termcap], , have_tputs_et_al=false)
|
||
if test "$have_tputs_et_al" != true; then
|
||
AC_MSG_ERROR([I couldn't find termcap functions (tputs and friends).
|
||
Maybe some development libraries/packages are missing? Try installing
|
||
libncurses-dev(el), libterminfo-dev(el) or similar.])
|
||
fi
|
||
# Must define this when any termcap library is found.
|
||
AC_DEFINE(HAVE_LIBNCURSES, 1,
|
||
[Define to 1 if you have the `ncurses' library (-lncurses).])
|
||
## FIXME This was the cpp logic, but I am not sure it is right.
|
||
## The above test has not necessarily found libncurses.
|
||
HAVE_LIBNCURSES=yes
|
||
|
||
## Use terminfo instead of termcap?
|
||
## Note only system files NOT using terminfo are:
|
||
## bsd-common, freebsd < 40000, ms-w32, msdos, netbsd, and
|
||
## darwin|gnu without ncurses.
|
||
TERMINFO=no
|
||
LIBS_TERMCAP=
|
||
case "$opsys" in
|
||
## cygwin: Fewer environment variables to go wrong, more terminal types.
|
||
## hpux10-20: Use the system provided termcap(3) library.
|
||
## openbsd: David Mazieres <dm@reeducation-labor.lcs.mit.edu> says this
|
||
## is necessary. Otherwise Emacs dumps core when run -nw.
|
||
aix4-2|cygwin|hpux*|irix6-5|openbsd|usg5-4|sol2*|unixware) TERMINFO=yes ;;
|
||
|
||
## darwin: Prevents crashes when running Emacs in Terminal.app under 10.2.
|
||
## The ncurses library has been moved out of the System framework in
|
||
## Mac OS X 10.2. So if configure detects it, set the command-line
|
||
## option to use it.
|
||
darwin|gnu*)
|
||
## (HAVE_LIBNCURSES was not always true, but is since 2010-03-18.)
|
||
if test "x$HAVE_LIBNCURSES" = "xyes"; then
|
||
TERMINFO=yes
|
||
LIBS_TERMCAP="-lncurses"
|
||
fi
|
||
;;
|
||
|
||
freebsd)
|
||
AC_MSG_CHECKING([whether FreeBSD is new enough to use terminfo])
|
||
AC_CACHE_VAL(emacs_cv_freebsd_terminfo,
|
||
[AC_TRY_LINK([#include <osreldate.h>],
|
||
[#if __FreeBSD_version < 400000
|
||
fail;
|
||
#endif
|
||
], emacs_cv_freebsd_terminfo=yes, emacs_cv_freebsd_terminfo=no)])
|
||
|
||
AC_MSG_RESULT($emacs_cv_freebsd_terminfo)
|
||
|
||
if test $emacs_cv_freebsd_terminfo = yes; then
|
||
TERMINFO=yes
|
||
LIBS_TERMCAP="-lncurses"
|
||
else
|
||
LIBS_TERMCAP="-ltermcap"
|
||
fi
|
||
;;
|
||
|
||
esac
|
||
|
||
case "$opsys" in
|
||
## hpux: Make sure we get select from libc rather than from libcurses
|
||
## because libcurses on HPUX 10.10 has a broken version of select.
|
||
## We used to use -lc -lcurses, but this may be cleaner.
|
||
hpux*|netbsd) LIBS_TERMCAP="-ltermcap" ;;
|
||
|
||
openbsd) LIBS_TERMCAP="-lncurses" ;;
|
||
|
||
## Must use system termcap, if we use any termcap. It does special things.
|
||
sol2*) test "$TERMINFO" != yes && LIBS_TERMCAP="-ltermcap" ;;
|
||
esac
|
||
|
||
TERMCAP_OBJ=tparam.o
|
||
if test $TERMINFO = yes; then
|
||
AC_DEFINE(TERMINFO, 1, [Define to 1 if you use terminfo instead of termcap.])
|
||
|
||
## Default used to be -ltermcap. Add a case above if need something else.
|
||
test "x$LIBS_TERMCAP" = "x" && LIBS_TERMCAP="-lcurses"
|
||
|
||
TERMCAP_OBJ=terminfo.o
|
||
fi
|
||
AC_SUBST(LIBS_TERMCAP)
|
||
AC_SUBST(TERMCAP_OBJ)
|
||
|
||
|
||
# Do we have res_init, for detecting changes in /etc/resolv.conf?
|
||
resolv=no
|
||
AC_TRY_LINK([#include <netinet/in.h>
|
||
#include <arpa/nameser.h>
|
||
#include <resolv.h>],
|
||
[return res_init();],
|
||
have_res_init=yes, have_res_init=no)
|
||
if test "$have_res_init" = no; then
|
||
OLIBS="$LIBS"
|
||
LIBS="$LIBS -lresolv"
|
||
AC_MSG_CHECKING(for res_init with -lresolv)
|
||
AC_TRY_LINK([#include <netinet/in.h>
|
||
#include <arpa/nameser.h>
|
||
#include <resolv.h>],
|
||
[return res_init();],
|
||
have_res_init=yes, have_res_init=no)
|
||
AC_MSG_RESULT($have_res_init)
|
||
if test "$have_res_init" = yes ; then
|
||
resolv=yes
|
||
fi
|
||
LIBS="$OLIBS"
|
||
fi
|
||
|
||
if test "$have_res_init" = yes; then
|
||
AC_DEFINE(HAVE_RES_INIT, 1, [Define to 1 if res_init is available.])
|
||
fi
|
||
|
||
# Do we need the Hesiod library to provide the support routines?
|
||
LIBHESIOD=
|
||
if test "$with_hesiod" != no ; then
|
||
# Don't set $LIBS here -- see comments above. FIXME which comments?
|
||
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
|
||
else
|
||
RESOLVLIB=
|
||
fi
|
||
AC_CHECK_FUNC(hes_getmailhost, , [AC_CHECK_LIB(hesiod, hes_getmailhost,
|
||
hesiod=yes, :, $RESOLVLIB)])
|
||
|
||
if test x"$hesiod" = xyes; then
|
||
AC_DEFINE(HAVE_LIBHESIOD, 1,
|
||
[Define to 1 if you have the hesiod library (-lhesiod).])
|
||
LIBHESIOD=-lhesiod
|
||
fi
|
||
fi
|
||
AC_SUBST(LIBHESIOD)
|
||
|
||
# Do we need libresolv (due to res_init or Hesiod)?
|
||
if test "$resolv" = yes ; then
|
||
AC_DEFINE(HAVE_LIBRESOLV, 1,
|
||
[Define to 1 if you have the resolv library (-lresolv).])
|
||
LIBRESOLV=-lresolv
|
||
else
|
||
LIBRESOLV=
|
||
fi
|
||
AC_SUBST(LIBRESOLV)
|
||
|
||
# These tell us which Kerberos-related libraries to use.
|
||
COM_ERRLIB=
|
||
CRYPTOLIB=
|
||
KRB5LIB=
|
||
DESLIB=
|
||
KRB4LIB=
|
||
|
||
if test "${with_kerberos}" != no; then
|
||
AC_CHECK_LIB(com_err, com_err, have_com_err=yes, have_com_err=no)
|
||
if test $have_com_err = yes; then
|
||
COM_ERRLIB=-lcom_err
|
||
LIBS="$COM_ERRLIB $LIBS"
|
||
AC_DEFINE(HAVE_LIBCOM_ERR, 1, [Define to 1 if you have the `com_err' library (-lcom_err).])
|
||
fi
|
||
AC_CHECK_LIB(crypto, mit_des_cbc_encrypt, have_crypto=yes, have_crypto=no)
|
||
if test $have_crypto = yes; then
|
||
CRYPTOLIB=-lcrypto
|
||
LIBS="$CRYPTOLIB $LIBS"
|
||
AC_DEFINE(HAVE_LIBCRYPTO, 1, [Define to 1 if you have the `crypto' library (-lcrypto).])
|
||
fi
|
||
AC_CHECK_LIB(k5crypto, mit_des_cbc_encrypt, have_k5crypto=yes, have_k5crypto=no)
|
||
if test $have_k5crypto = yes; then
|
||
CRYPTOLIB=-lk5crypto
|
||
LIBS="$CRYPTOLIB $LIBS"
|
||
AC_DEFINE(HAVE_LIBK5CRYPTO, 1, [Define to 1 if you have the `k5crypto' library (-lk5crypto).])
|
||
fi
|
||
AC_CHECK_LIB(krb5, krb5_init_context, have_krb5=yes, have_krb5=no)
|
||
if test $have_krb5=yes; then
|
||
KRB5LIB=-lkrb5
|
||
LIBS="$KRB5LIB $LIBS"
|
||
AC_DEFINE(HAVE_LIBKRB5, 1, [Define to 1 if you have the `krb5' library (-lkrb5).])
|
||
fi
|
||
dnl FIXME Simplify. Does not match 22 logic, thanks to default_off?
|
||
if test "${with_kerberos5}" = no; then
|
||
AC_CHECK_LIB(des425, des_cbc_encrypt, have_des425=yes, have_des425=no )
|
||
if test $have_des425 = yes; then
|
||
DESLIB=-ldes425
|
||
LIBS="$DESLIB $LIBS"
|
||
AC_DEFINE(HAVE_LIBDES425, 1, [Define to 1 if you have the `des425' library (-ldes425).])
|
||
else
|
||
AC_CHECK_LIB(des, des_cbc_encrypt, have_des=yes, have_des=no)
|
||
if test $have_des = yes; then
|
||
DESLIB=-ldes
|
||
LIBS="$DESLIB $LIBS"
|
||
AC_DEFINE(HAVE_LIBDES, 1, [Define to 1 if you have the `des' library (-ldes).])
|
||
fi
|
||
fi
|
||
AC_CHECK_LIB(krb4, krb_get_cred, have_krb4=yes, have_krb4=no)
|
||
if test $have_krb4 = yes; then
|
||
KRB4LIB=-lkrb4
|
||
LIBS="$KRB4LIB $LIBS"
|
||
AC_DEFINE(HAVE_LIBKRB4, 1, [Define to 1 if you have the `krb4' library (-lkrb4).])
|
||
else
|
||
AC_CHECK_LIB(krb, krb_get_cred, have_krb=yes, have_krb=no)
|
||
if test $have_krb = yes; then
|
||
KRB4LIB=-lkrb
|
||
LIBS="$KRB4LIB $LIBS"
|
||
AC_DEFINE(HAVE_LIBKRB, 1, [Define to 1 if you have the `krb' library (-lkrb).])
|
||
fi
|
||
fi
|
||
fi
|
||
|
||
if test "${with_kerberos5}" != no; then
|
||
AC_CHECK_HEADERS(krb5.h,
|
||
[AC_CHECK_MEMBERS([krb5_error.text, krb5_error.e_text],,,
|
||
[#include <krb5.h>])])
|
||
else
|
||
AC_CHECK_HEADERS(des.h,,
|
||
[AC_CHECK_HEADERS(kerberosIV/des.h,,
|
||
[AC_CHECK_HEADERS(kerberos/des.h)])])
|
||
AC_CHECK_HEADERS(krb.h,,
|
||
[AC_CHECK_HEADERS(kerberosIV/krb.h,,
|
||
[AC_CHECK_HEADERS(kerberos/krb.h)])])
|
||
fi
|
||
AC_CHECK_HEADERS(com_err.h)
|
||
fi
|
||
|
||
AC_SUBST(COM_ERRLIB)
|
||
AC_SUBST(CRYPTOLIB)
|
||
AC_SUBST(KRB5LIB)
|
||
AC_SUBST(DESLIB)
|
||
AC_SUBST(KRB4LIB)
|
||
|
||
# Solaris requires -lintl if you want strerror (which calls dgettext)
|
||
# to return localized messages.
|
||
AC_CHECK_LIB(intl, dgettext)
|
||
|
||
AC_MSG_CHECKING(whether localtime caches TZ)
|
||
AC_CACHE_VAL(emacs_cv_localtime_cache,
|
||
[if test x$ac_cv_func_tzset = xyes; then
|
||
AC_TRY_RUN([#include <time.h>
|
||
extern char **environ;
|
||
unset_TZ ()
|
||
{
|
||
char **from, **to;
|
||
for (to = from = environ; (*to = *from); from++)
|
||
if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
|
||
to++;
|
||
}
|
||
char TZ_GMT0[] = "TZ=GMT0";
|
||
char TZ_PST8[] = "TZ=PST8";
|
||
main()
|
||
{
|
||
time_t now = time ((time_t *) 0);
|
||
int hour_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, 1,
|
||
[Define to 1 if localtime caches TZ.])
|
||
fi
|
||
|
||
if test "x$HAVE_TIMEVAL" = xyes; then
|
||
AC_CHECK_FUNCS(gettimeofday)
|
||
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 <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;
|
||
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
|
||
|
||
ok_so_far=yes
|
||
AC_CHECK_FUNC(socket, , ok_so_far=no)
|
||
if test $ok_so_far = yes; then
|
||
AC_CHECK_HEADER(netinet/in.h, , ok_so_far=no)
|
||
fi
|
||
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
|
||
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)
|
||
|
||
if test -f /usr/lpp/X11/bin/smt.exp; then
|
||
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, 1, [Define to 1 if dynamic ptys are supported.])
|
||
else
|
||
AC_MSG_RESULT(no)
|
||
fi
|
||
|
||
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 <langinfo.h>],
|
||
[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 <langinfo.h> 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
|
||
|
||
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"
|
||
|
||
## Hack to detect a buggy GCC version.
|
||
if test "x$GCC" = xyes \
|
||
&& test x"`$CC --version 2> /dev/null | grep 'gcc.* 4.5.0'`" != x \
|
||
&& test x"`echo $CFLAGS | grep '\-O@<:@23@:>@'`" != x \
|
||
&& test x"`echo $CFLAGS | grep '\-fno-optimize-sibling-calls'`" = x; then
|
||
AC_MSG_ERROR([GCC 4.5.0 has problems compiling Emacs; see etc/PROBLEMS'.])
|
||
fi
|
||
|
||
#### Find out which version of Emacs this is.
|
||
[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'.])
|
||
fi
|
||
if test x"${version}" != x"$PACKAGE_VERSION"; then
|
||
AC_MSG_WARN([version mismatch between `${srcdir}/configure.in' and `${srcdir}/lisp/version.el'.])
|
||
fi
|
||
|
||
### Specify what sort of things we'll be editing into Makefile and config.h.
|
||
### Use configuration here uncanonicalized to avoid exceeding size limits.
|
||
AC_SUBST(version)
|
||
AC_SUBST(configuration)
|
||
AC_SUBST(canonical)
|
||
AC_SUBST(srcdir)
|
||
AC_SUBST(prefix)
|
||
AC_SUBST(exec_prefix)
|
||
AC_SUBST(bindir)
|
||
AC_SUBST(datadir)
|
||
AC_SUBST(sharedstatedir)
|
||
AC_SUBST(libexecdir)
|
||
AC_SUBST(mandir)
|
||
AC_SUBST(infodir)
|
||
AC_SUBST(lispdir)
|
||
AC_SUBST(locallisppath)
|
||
AC_SUBST(lisppath)
|
||
AC_SUBST(x_default_search_path)
|
||
AC_SUBST(etcdir)
|
||
AC_SUBST(archlibdir)
|
||
AC_SUBST(docdir)
|
||
AC_SUBST(bitmapdir)
|
||
AC_SUBST(gamedir)
|
||
AC_SUBST(gameuser)
|
||
AC_SUBST(unexec)
|
||
AC_SUBST(LD_SWITCH_X_SITE)
|
||
AC_SUBST(C_SWITCH_X_SITE)
|
||
AC_SUBST(C_SWITCH_X_SYSTEM)
|
||
AC_SUBST(CFLAGS)
|
||
## Used in lwlib/Makefile.in.
|
||
AC_SUBST(X_TOOLKIT_TYPE)
|
||
AC_SUBST(machfile)
|
||
AC_SUBST(opsysfile)
|
||
AC_SUBST(GETLOADAVG_LIBS)
|
||
AC_SUBST(ns_appdir)
|
||
AC_SUBST(ns_appbindir)
|
||
AC_SUBST(ns_appresdir)
|
||
AC_SUBST(ns_appsrc)
|
||
AC_SUBST(GNUSTEP_MAKEFILES)
|
||
AC_SUBST(GNUSTEP_SYSTEM_HEADERS)
|
||
AC_SUBST(GNUSTEP_SYSTEM_LIBRARIES)
|
||
AC_SUBST(GNU_OBJC_CFLAGS)
|
||
AC_SUBST(LIB_SRC_EXTRA_INSTALLABLES)
|
||
AC_SUBST(OTHER_FILES)
|
||
|
||
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(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.])
|
||
|
||
XMENU_OBJ=
|
||
XOBJ=
|
||
if test "${HAVE_X_WINDOWS}" = "yes" ; then
|
||
AC_DEFINE(HAVE_X_WINDOWS, 1,
|
||
[Define to 1 if you want to use the X window system.])
|
||
XMENU_OBJ=xmenu.o
|
||
XOBJ="xterm.o xfns.o xselect.o xrdb.o fontset.o xsmfns.o fringe.o image.o xsettings.o xgselect.o"
|
||
fi
|
||
AC_SUBST(XMENU_OBJ)
|
||
AC_SUBST(XOBJ)
|
||
|
||
WIDGET_OBJ=
|
||
MOTIF_LIBW=
|
||
if test "${USE_X_TOOLKIT}" != "none" ; then
|
||
WIDGET_OBJ=widget.o
|
||
AC_DEFINE(USE_X_TOOLKIT, 1, [Define to 1 if using an X toolkit.])
|
||
if test "${USE_X_TOOLKIT}" = "LUCID"; then
|
||
AC_DEFINE(USE_LUCID, 1, [Define to 1 if using the Lucid X toolkit.])
|
||
elif test "${USE_X_TOOLKIT}" = "MOTIF"; then
|
||
AC_DEFINE(USE_MOTIF, 1, [Define to 1 if using the Motif X toolkit.])
|
||
MOTIF_LIBW=-lXm
|
||
case "$opsys" in
|
||
gnu-linux)
|
||
## Paul Abrahams <abrahams at equinox.shaysnet.com> says this is needed.
|
||
MOTIF_LIBW="$MOTIF_LIBW -lXpm"
|
||
;;
|
||
|
||
unixware)
|
||
## Richard Anthony Ryan <ryanr at ellingtn.ftc.nrcs.usda.gov>
|
||
## says -lXimp is needed in UNIX_SV ... 4.2 1.1.2.
|
||
MOTIF_LIBW="MOTIF_LIBW -lXimp"
|
||
;;
|
||
|
||
aix4-2)
|
||
## olson@mcs.anl.gov says -li18n is needed by -lXm.
|
||
MOTIF_LIBW="$MOTIF_LIBW -li18n"
|
||
;;
|
||
esac
|
||
MOTIF_LIBW="$MOTIF_LIBW $LIBXP"
|
||
fi
|
||
fi
|
||
AC_SUBST(WIDGET_OBJ)
|
||
|
||
TOOLKIT_LIBW=
|
||
case "$USE_X_TOOLKIT" in
|
||
MOTIF) TOOLKIT_LIBW="$MOTIF_LIBW" ;;
|
||
LUCID) TOOLKIT_LIBW="$LUCID_LIBW" ;;
|
||
none) test "x$HAVE_GTK" = "xyes" && TOOLKIT_LIBW="$GTK_LIBS" ;;
|
||
esac
|
||
AC_SUBST(TOOLKIT_LIBW)
|
||
|
||
if test "$USE_X_TOOLKIT" = "none"; then
|
||
LIBXT_OTHER="\$(LIBXSM)"
|
||
else
|
||
LIBXT_OTHER="\$(LIBXMU) -lXt \$(LIBXTR6) -lXext"
|
||
fi
|
||
AC_SUBST(LIBXT_OTHER)
|
||
|
||
## The X Menu stuff is present in the X10 distribution, but missing
|
||
## from X11. If we have X10, just use the installed library;
|
||
## otherwise, use our own copy.
|
||
if test "${HAVE_X11}" = "yes" ; then
|
||
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.])
|
||
|
||
if test "$USE_X_TOOLKIT" = "none"; then
|
||
OLDXMENU="\${oldXMenudir}libXMenu11.a"
|
||
else
|
||
OLDXMENU="\${lwlibdir}liblw.a"
|
||
fi
|
||
LIBXMENU="\$(OLDXMENU)"
|
||
LIBX_OTHER="\$(LIBXT) \$(LIBX_EXTRA)"
|
||
else
|
||
OLDXMENU=
|
||
LIBXMENU="-lXMenu"
|
||
LIBX_OTHER=
|
||
fi
|
||
|
||
if test "$HAVE_GTK" = "yes"; then
|
||
OLDXMENU=
|
||
LIBXMENU=
|
||
fi
|
||
|
||
AC_SUBST(OLDXMENU)
|
||
AC_SUBST(LIBXMENU)
|
||
AC_SUBST(LIBX_OTHER)
|
||
|
||
if test "${HAVE_MENUS}" = "yes" ; then
|
||
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, 1,
|
||
[Define to 1 if you want to use the GNU memory allocator.])
|
||
fi
|
||
if test "${REL_ALLOC}" = "yes" ; then
|
||
AC_DEFINE(REL_ALLOC, 1,
|
||
[Define REL_ALLOC if you want to use the relocating allocator for
|
||
buffer space.])
|
||
fi
|
||
|
||
|
||
if test "$opsys" = "cygwin"; then
|
||
CYGWIN_OBJ="sheap.o"
|
||
## Cygwin differs because of its unexec().
|
||
PRE_ALLOC_OBJ=
|
||
POST_ALLOC_OBJ="lastfile.o vm-limit.o"
|
||
else
|
||
CYGWIN_OBJ=
|
||
PRE_ALLOC_OBJ=lastfile.o
|
||
POST_ALLOC_OBJ="\$(vmlimitobj)"
|
||
fi
|
||
AC_SUBST(CYGWIN_OBJ)
|
||
AC_SUBST(PRE_ALLOC_OBJ)
|
||
AC_SUBST(POST_ALLOC_OBJ)
|
||
|
||
|
||
case "$opsys" in
|
||
aix4-2) LD_SWITCH_SYSTEM_TEMACS="-Wl,-bnodelcsect" ;;
|
||
|
||
darwin)
|
||
## The -headerpad option tells ld (see man page) to leave room at the
|
||
## end of the header for adding load commands. Needed for dumping.
|
||
## 0x690 is the total size of 30 segment load commands (at 56
|
||
## each); under Cocoa 31 commands are required.
|
||
if test "$HAVE_NS" = "yes"; then
|
||
libs_nsgui="-framework AppKit"
|
||
headerpad_extra=6C8
|
||
else
|
||
libs_nsgui=
|
||
headerpad_extra=690
|
||
fi
|
||
LD_SWITCH_SYSTEM_TEMACS="-prebind $libs_nsgui -Xlinker -headerpad -Xlinker $headerpad_extra"
|
||
;;
|
||
|
||
*) LD_SWITCH_SYSTEM_TEMACS= ;;
|
||
esac
|
||
AC_SUBST(LD_SWITCH_SYSTEM_TEMACS)
|
||
|
||
|
||
## This exists because src/Makefile.in did some extra fiddling around
|
||
## with LD_SWITCH_SYSTEM. The cpp logic was:
|
||
## #ifndef LD_SWITCH_SYSTEM
|
||
## #if !defined (__GNUC__) && ((defined (BSD_SYSTEM) && !defined (COFF)))
|
||
## Since all the *bsds define LD_SWITCH_SYSTEM, this simplifies to:
|
||
## not using gcc, darwin system not on an alpha (ie darwin, since
|
||
## darwin + alpha does not occur).
|
||
## Note that unlike L_S_S, this is not used in ac_link.
|
||
if test "x$LD_SWITCH_SYSTEM" = "x" && test "x$GCC" != "xyes" && \
|
||
test "$opsys" = "darwin"; then
|
||
LD_SWITCH_SYSTEM_EXTRA="-X"
|
||
else
|
||
LD_SWITCH_SYSTEM_EXTRA=
|
||
fi
|
||
AC_SUBST(LD_SWITCH_SYSTEM_EXTRA)
|
||
|
||
|
||
AH_TOP([/* GNU Emacs site configuration template file.
|
||
Copyright (C) 1988, 1993, 1994, 1999, 2000, 2001, 2002, 2004, 2005,
|
||
2006, 2007, 2008, 2009, 2010 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>. */
|
||
|
||
|
||
/* 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 X11/Carbon/GNUstep, define some consequences. */
|
||
#if defined(HAVE_X_WINDOWS) || defined(HAVE_NS)
|
||
#define HAVE_WINDOW_SYSTEM
|
||
#define HAVE_MOUSE
|
||
#endif
|
||
|
||
/* 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
|
||
|
||
/* 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
|
||
#ifdef HAVE_ALSA
|
||
#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'. */
|
||
#if defined (__GNUC__) && defined (OPTIMIZE)
|
||
#define INLINE __inline__
|
||
#else
|
||
#define INLINE
|
||
#endif
|
||
|
||
/* `subprocesses' should be defined if you want to
|
||
have code for asynchronous subprocesses
|
||
(as used in M-x compile and M-x shell).
|
||
Only MSDOS does not support this (it overrides
|
||
this in its config_opsysfile below). */
|
||
|
||
#define subprocesses
|
||
|
||
/* Include the os and machine dependent files. */
|
||
#include config_opsysfile
|
||
#include config_machfile
|
||
|
||
/* Set up some defines, C and LD flags for NeXTstep interface on GNUstep.
|
||
(There is probably a better place to do this, but right now the Cocoa
|
||
side does this in s/darwin.h and we cannot
|
||
parallel this exactly since GNUstep is multi-OS. */
|
||
#ifdef HAVE_NS
|
||
# ifdef NS_IMPL_GNUSTEP
|
||
/* GNUstep needs a bit more pure memory. Of the existing knobs,
|
||
SYSTEM_PURESIZE_EXTRA seems like the least likely to cause problems. */
|
||
# define SYSTEM_PURESIZE_EXTRA 30000
|
||
# endif /* NS_IMPL_GNUSTEP */
|
||
#endif /* HAVE_NS */
|
||
|
||
/* 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)
|
||
#ifdef make_number
|
||
/* If make_number is a macro, use it. */
|
||
#define RE_TRANSLATE_P(TBL) (!EQ (TBL, make_number (0)))
|
||
#else
|
||
/* If make_number is a function, avoid it. */
|
||
#define RE_TRANSLATE_P(TBL) (!(INTEGERP (TBL) && XINT (TBL) == 0))
|
||
#endif
|
||
#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 <stdlib.h> 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 <stdlib.h>
|
||
#endif
|
||
#ifndef __GNUC__
|
||
# ifdef HAVE_ALLOCA_H
|
||
# include <alloca.h>
|
||
# 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 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
|
||
|
||
#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
|
||
SCO5 non-ELF (but Emacs specifies ELF) and SVR3 on x86.
|
||
Fixme: Deal with 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}'.
|
||
|
||
Where should the build process find the source code? ${srcdir}
|
||
What operating system and machine description files should Emacs use?
|
||
\`${opsysfile}' and \`${machfile}'
|
||
What compiler should emacs be built with? ${CC} ${CFLAGS}
|
||
Should Emacs use the GNU version of malloc? ${GNU_MALLOC}${GNU_MALLOC_reason}
|
||
Should Emacs use a relocating allocator for buffers? ${REL_ALLOC}
|
||
Should Emacs use mmap(2) for buffer allocation? $use_mmap_for_buffers
|
||
What window system should Emacs use? ${window_system}
|
||
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 " Does Emacs use -lXaw3d? ${HAVE_XAW3D}"
|
||
echo " Does Emacs use -lXpm? ${HAVE_XPM}"
|
||
echo " Does Emacs use -ljpeg? ${HAVE_JPEG}"
|
||
echo " Does Emacs use -ltiff? ${HAVE_TIFF}"
|
||
echo " Does Emacs use a gif library? ${HAVE_GIF} $LIBGIF"
|
||
echo " Does Emacs use -lpng? ${HAVE_PNG}"
|
||
echo " Does Emacs use -lrsvg-2? ${HAVE_RSVG}"
|
||
echo " Does Emacs use -lgpm? ${HAVE_GPM}"
|
||
echo " Does Emacs use -ldbus? ${HAVE_DBUS}"
|
||
echo " Does Emacs use -lgconf? ${HAVE_GCONF}"
|
||
echo " Does Emacs use -lselinux? ${HAVE_LIBSELINUX}"
|
||
|
||
echo " Does Emacs use -lfreetype? ${HAVE_FREETYPE}"
|
||
echo " Does Emacs use -lm17n-flt? ${HAVE_M17N_FLT}"
|
||
echo " Does Emacs use -lotf? ${HAVE_LIBOTF}"
|
||
echo " Does Emacs use -lxft? ${HAVE_XFT}"
|
||
|
||
echo " Does Emacs use toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}"
|
||
echo
|
||
|
||
if test $USE_XASSERTS = yes; then
|
||
echo " Compiling with asserts turned on."
|
||
CPPFLAGS="$CPPFLAGS -DXASSERTS=1"
|
||
fi
|
||
|
||
echo
|
||
|
||
if test "$HAVE_NS" = "yes"; then
|
||
echo
|
||
echo "You must run \"make install\" in order to test the built application.
|
||
The installed application will go to nextstep/Emacs.app and can be
|
||
run or moved from there."
|
||
if test "$EN_NS_SELF_CONTAINED" = "yes"; then
|
||
echo "The application will be fully self-contained."
|
||
else
|
||
echo "The lisp resources for the application will be installed under ${prefix}.
|
||
You may need to run \"make install\" with sudo. The application will fail
|
||
to run if these resources are not installed."
|
||
fi
|
||
echo
|
||
fi
|
||
|
||
if test "$HAVE_DBUS" = yes && test "${opsys}" != "gnu-linux"; then
|
||
echo "D-Bus integration has been tested for GNU/Linux only."
|
||
echo
|
||
fi
|
||
|
||
|
||
# Remove any trailing slashes in these variables.
|
||
[test "${prefix}" != NONE &&
|
||
prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
|
||
test "${exec_prefix}" != NONE &&
|
||
exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`]
|
||
|
||
# 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.
|
||
[cpp_undefs="`echo $srcdir $configuration $canonical unix |
|
||
sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/ *$//' \
|
||
-e 's/ */ -U/g' -e 's/-U[0-9][^ ]*//g'`"]
|
||
|
||
## 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 \
|
||
doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \
|
||
doc/lispref/Makefile src/Makefile.c:src/Makefile.in \
|
||
lwlib/Makefile lisp/Makefile leim/Makefile, [
|
||
|
||
### Make the necessary directories, if they don't exist.
|
||
for dir in etc lisp ; do
|
||
test -d ${dir} || mkdir ${dir}
|
||
done
|
||
|
||
# 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.
|
||
|
||
echo creating src/epaths.h
|
||
${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$CPP_NEED_TRADITIONAL" = xyes; then
|
||
CPPFLAGS="$CPPFLAGS -traditional"
|
||
fi
|
||
|
||
echo creating lib-src/Makefile
|
||
( cd lib-src
|
||
rm -f junk.c junk1.c junk2.c
|
||
sed -e '/start of cpp stuff/q' \
|
||
< Makefile.c > junk1.c
|
||
sed -e '1,/start of cpp stuff/d'\
|
||
-e 's,/\*\*/#\(.*\)$,/* \1 */,' \
|
||
< Makefile.c > junk.c
|
||
$CPP -P $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
|
||
chmod 444 Makefile.new
|
||
mv -f Makefile.new Makefile
|
||
)
|
||
|
||
echo creating src/Makefile
|
||
( cd src
|
||
rm -f junk.c junk1.c junk2.c
|
||
sed -e '/start of cpp stuff/q' \
|
||
< Makefile.c > junk1.c
|
||
sed -e '1,/start of cpp stuff/d'\
|
||
-e 's,/\*\*/#\(.*\)$,/* \1 */,' \
|
||
< Makefile.c > junk.c
|
||
$CPP -P $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
|
||
chmod 444 Makefile.new
|
||
mv -f Makefile.new Makefile
|
||
)
|
||
|
||
if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then
|
||
echo creating src/.gdbinit
|
||
echo source $srcdir/src/.gdbinit > src/.gdbinit
|
||
fi
|
||
|
||
], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPP_NEED_TRADITIONAL="$CPP_NEED_TRADITIONAL" CPPFLAGS="$CPPFLAGS" cpp_undefs="$cpp_undefs"])
|
||
|
||
m4_if(dnl Do not change this comment
|
||
arch-tag: 156a4dd5-bddc-4d18-96ac-f37742cf6a5e
|
||
)dnl
|