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
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
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.61)
-AC_INIT(emacs, 23.0.92)
+AC_PREREQ(2.62)
+AC_INIT(emacs, 23.1.50)
AC_CONFIG_HEADER(src/config.h:src/config.in)
AC_CONFIG_SRCDIR(src/lisp.h)
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([freetype],[don't use Freetype for local font 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([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])
## For the times when you want to build Emacs but don't have
## a suitable makeinfo, and can live without the manuals.
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
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 ;;
case "${canonical}" in
i[3456]86-* ) machine=intel386 ;;
powerpc-* ) machine=macppc ;;
+ x86_64-* ) machine=amdx86-64 ;;
* ) unported=yes ;;
esac
opsys=darwin
esac
;;
- ## Vaxen.
- vax-dec-* )
- machine=vax
- case "${canonical}" in
- *-vms* ) opsys=vms ;;
- * ) unported=yes
- esac
- ;;
-
## IA-64
ia64*-*-linux* )
machine=ia64 opsys=gnu-linux
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
/* Get the CFLAGS for real compilation. */
#ifdef __GNUC__
-configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH C_WARNINGS_SWITCH '${SPECIFIED_CFLAGS}'
+configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH C_WARNINGS_SWITCH ${PROFILING_CFLAGS} '${SPECIFIED_CFLAGS}'
#else
configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${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"`
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
## No need to do anything special for these standard directories.
## This is an experiment, take it out if it causes problems.
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
if test "${HAVE_NS}" = yes; then
window_system=nextstep
with_xft=no
- with_freetype=no
# set up packaging dirs
exec_prefix=${ns_appbindir}
libexecdir=${ns_appbindir}/libexec
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
- AC_DEFINE(HAVE_DBUS, 1, [Define to 1 if using D-Bus.])
+ LIBS="$LIBS $DBUS_LIBS"
+ AC_DEFINE(HAVE_DBUS, 1, [Define to 1 if using D-Bus.])
+ AC_CHECK_FUNCS([dbus_watch_get_unix_fd])
+ fi
+fi
+
+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 "X$with_x" != "Xno" && 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
### 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)
- test "${HAVE_FC}" = "no" && with_freetype=no
-## Use -lXft if available, unless `--with-freetype=no' nor `--with-xft=no'.
+ ## Use -lXft if available, unless `--with-xft=no'.
HAVE_XFT=maybe
- if test "x${with_freetype}" = "xno" || test "x${with_x}" = "xno"; then
+ if test "${HAVE_FC}" = "no" || test "x${with_x}" = "xno"; then
with_xft="no";
fi
if test "x${with_xft}" != "xno"; then
HAVE_FREETYPE=no
- ### Use -lfreetype if available, unless `--with-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 In this case, there's no need of additional CFLAGS and LIBS.
+ dnl There's no need for additional CFLAGS and LIBS.
HAVE_FREETYPE=yes
FONTCONFIG_CFLAGS=
FONTCONFIG_LIBS=
- elif test "x${with_freetype}" != "xno" && test "x${with_x}" != "xno"; then
-
- PKG_CHECK_MODULES(FREETYPE, freetype2, HAVE_FREETYPE=yes, HAVE_FREETYPE=no)
fi
HAVE_LIBOTF=no
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,
+ 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.])
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=
- LIB_SRC_EXTRA_INSTALLABLES=mac-fix-env
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.])
fi
# We also have mouse menus.
HAVE_MENUS=yes
+ OTHER_FILES=ns-app
fi
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(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.])
#define HAVE_MOUSE
#endif
-/* Sadly for now, GNUstep dump does not work. */
-#ifdef NS_IMPL_GNUSTEP
-#define CANNOT_DUMP
-#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. */
side does this in s/darwin.h and we cannot
parallel this exactly since GNUstep is multi-OS. */
#ifdef HAVE_NS
-#define OTHER_FILES ns-app
# ifdef NS_IMPL_GNUSTEP
/* See also .m.o rule in Makefile.in */
/* FIXME: are all these flags really needed? Document here why. */
#define HAVE_X11R6_XIM
#endif
-/* Should we enable expensive run-time checking of data types? */
-#undef ENABLE_CHECKING
-
#if defined __GNUC__ && (__GNUC__ > 2 \
|| (__GNUC__ == 2 && __GNUC_MINOR__ >= 5))
#define NO_RETURN __attribute__ ((__noreturn__))
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 -lfreetype? ${HAVE_FREETYPE}"
echo " Does Emacs use -lm17n-flt? ${HAVE_M17N_FLT}"
sed -e '1,/start of cpp stuff/d'\
-e 's,/\*\*/#\(.*\)$,/* \1 */,' \
< Makefile.c > junk.c
- $CPP $cpp_undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
+ $CPP -P $cpp_undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
sed -e 's/^ / /' -e '/^#/d' -e '/^[ \f]*$/d' > junk2.c
cat junk1.c junk2.c > Makefile.new
rm -f junk.c junk1.c junk2.c
sed -e '1,/start of cpp stuff/d'\
-e 's,/\*\*/#\(.*\)$,/* \1 */,' \
< Makefile.c > junk.c
- $CPP $cpp_undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
+ $CPP -P $cpp_undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
sed -e 's/^ / /' -e '/^#/d' -e '/^[ \f]*$/d' > junk2.c
cat junk1.c junk2.c > Makefile.new
rm -f junk.c junk1.c junk2.c