Merge branch 'fix-pr11806' into maint
authorStefano Lattarini <stefano.lattarini@gmail.com>
Fri, 6 Jul 2012 19:29:52 +0000 (21:29 +0200)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Fri, 6 Jul 2012 19:29:52 +0000 (21:29 +0200)
* fix-pr11806:
  lisp: better support of VPATH builds

lib/am/lisp.am
lib/elisp-comp
t/lisp-pr11806.sh [new file with mode: 0755]
t/list-of-tests.mk

index ba5c92a..050d7dc 100644 (file)
@@ -36,7 +36,8 @@ elc-stamp: $(LISP)
          done; \
 ## Finally call elisp-comp for all files.
          shift; \
-         EMACS="$(EMACS)" $(SHELL) $(elisp_comp) "$$@" || exit 1; \
+         abs_srcdir="$(abs_srcdir)" EMACS="$(EMACS)" $(SHELL) \
+           $(elisp_comp) "$$@" || exit 1; \
        else : ; fi
        @mv -f elc-temp $@
 
index 7766db4..5e888bd 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # Copyright (C) 1995-2012 Free Software Foundation, Inc.
 
-scriptversion=2010-02-06.18; # UTC
+scriptversion=2012-07-05.17; # UTC
 
 # Franc,ois Pinard <pinard@iro.umontreal.ca>, 1995.
 #
@@ -75,7 +75,7 @@ cp "$@" $tempdir
 
 (
   cd $tempdir
-  echo "(setq load-path (cons nil load-path))" > script
+  echo "(setq load-path (cons nil (cons \"$abs_srcdir\" load-path)))" > script
   $EMACS -batch -q -l script -f batch-byte-compile *.el || exit $?
   mv *.elc ..
 ) || exit $?
diff --git a/t/lisp-pr11806.sh b/t/lisp-pr11806.sh
new file mode 100755 (executable)
index 0000000..c372ea5
--- /dev/null
@@ -0,0 +1,51 @@
+#! /bin/sh
+# Copyright (C) 2012 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Compiling .el files that requires each other in a VPATH build.
+# See automake bug#11806.
+
+required=emacs
+. ./defs || exit 1
+
+cat >> configure.ac << 'END'
+AM_PATH_LISPDIR
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+lisp_LISP = foo.el
+lisp_DATA = bar.el
+END
+
+echo "(require 'bar)" > foo.el
+echo "(provide 'bar)" > bar.el
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+
+mkdir build
+cd build
+../configure
+$MAKE
+test -f foo.elc
+cd ..
+
+./configure
+$MAKE
+test -f foo.elc
+
+:
index d5b7891..53b2439 100644 (file)
@@ -640,6 +640,7 @@ t/lisp6.sh \
 t/lisp7.sh \
 t/lisp8.sh \
 t/lispdry.sh \
+t/lisp-pr11806.sh \
 t/listval.sh \
 t/location.sh \
 t/longline.sh \