[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Old Emacs check
From: |
Eric Sunshine |
Subject: |
Old Emacs check |
Date: |
Thu, 2 Oct 2003 09:30:07 -0400 |
Hello,
The autoconf-mode.el and autotest-mode.el scripts do not work with older
versions of Emacs (18.x.x). Emacs throws an error when trying to
byte-compile these files. This problem causes Autoconf's "make" and "make
install" to fail. Here is a patch for Autoconf's configure.ac which adds a
check for a sufficiently recent version of Emacs.
--- configure.ac Tue Sep 30 09:05:56 2003
+++ configure.ac-emacs-check Thu Oct 2 09:12:13 2003
@@ -76,10 +76,34 @@
# Emacs modes.
AC_CONFIG_FILES([lib/emacs/Makefile])
-test x"$EMACS" = xt && EMACS=
-AC_CHECK_PROGS(EMACS, emacs xemacs, no)
+TEST_EMACS=$EMACS
+test x"$TEST_EMACS" = xt && TEST_EMACS=
+AC_CHECK_PROGS(TEST_EMACS, emacs xemacs, no)
+
+# autoconf-mode.el and autotest-mode.el do not work with older version of
+# Emacs (i.e. 18.x.x). During byte-compilation, Emacs complains:
+# "Variable (broken nil) seen on pass 2 of byte compiler but not pass 1"
+# We detect this problem here.
+AS_IF([test "$TEST_EMACS" != no],
+ [AC_CACHE_CHECK([whether $TEST_EMACS is sufficiently recent],
+ [ac_cv_prog_emacs_ok],
+ [# Note: The quoted "EOF" is intentional. It protects the ` in the text.
+ cat >conftest.el << "EOF"
+ (defvar broken)
+ (defun broken-mode () (setq broken-defaults `(broken nil)))
+EOF
+ AS_IF([AC_RUN_LOG(
+ [$TEST_EMACS -batch -q -f batch-byte-compile conftest.el 1>&2])],
+ [ac_cv_prog_emacs_ok=yes], [ac_cv_prog_emacs_ok=no])
+ rm -f conftest.el conftest.elc])
+ AS_IF([test $ac_cv_prog_emacs_ok = no], [TEST_EMACS=no])])
+
+EMACS=$TEST_EMACS
+AC_SUBST([EMACS])
+
AM_PATH_LISPDIR
+# Conclusion
AC_CONFIG_FILES([Makefile doc/Makefile
lib/Makefile lib/Autom4te/Makefile lib/autoscan/Makefile
lib/m4sugar/Makefile
- Old Emacs check,
Eric Sunshine <=