summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Kelly <jack@jackkelly.name>2012-07-05 18:50:37 +0200
committerStefano Lattarini <stefano.lattarini@gmail.com>2012-07-06 09:32:36 +0200
commit0451b0bc8bc991dc4f19d43a7aad82a0a509758e (patch)
treec0628273fd6d3eeee9ecc51ed398edb29a7a74e8
parent6eefb0a0bcce8c474fe10e7d4e5ace0e2ce57253 (diff)
downloadautomake-0451b0bc8bc991dc4f19d43a7aad82a0a509758e.tar.gz
lisp: better support of VPATH builds
Fixes automake bug#11806. * lib/am/lisp.am: Pass the value of '$(abs_srcdir)' to the elisp-compile script in the environment. * lib/elisp-comp: Add the vale of '$abs_srcdir' to the emacs load-path. * t/lisp-pr11806.sh: New test. * t/list-of-tests.mk: Add it. Copyright-paperwork-exempt: yes Co-authored-by: Stefano Lattarini <stefano.lattarini@gnu.org> Reported-by: Makoto Fujiwara <makoto@ki.nu> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
-rw-r--r--lib/am/lisp.am3
-rwxr-xr-xlib/elisp-comp4
-rwxr-xr-xt/lisp-pr11806.sh51
-rw-r--r--t/list-of-tests.mk1
4 files changed, 56 insertions, 3 deletions
diff --git a/lib/am/lisp.am b/lib/am/lisp.am
index ba5c92a90..050d7dc47 100644
--- a/lib/am/lisp.am
+++ b/lib/am/lisp.am
@@ -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 $@
diff --git a/lib/elisp-comp b/lib/elisp-comp
index 7766db46b..5e888bd94 100755
--- a/lib/elisp-comp
+++ b/lib/elisp-comp
@@ -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
index 000000000..c372ea5db
--- /dev/null
+++ b/t/lisp-pr11806.sh
@@ -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
+
+:
diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk
index 852b87ad9..dd88819da 100644
--- a/t/list-of-tests.mk
+++ b/t/list-of-tests.mk
@@ -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 \