>From 5c94d97d90aa5b731a11c538f8b835e57bf39fee Mon Sep 17 00:00:00 2001 Message-Id: From: Jack Kelly Date: Thu, 5 Jul 2012 18:50:37 +0200 Subject: [PATCH] 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 Reported-by: Makoto Fujiwara Signed-off-by: Stefano Lattarini --- lib/am/lisp.am | 3 ++- lib/elisp-comp | 4 ++-- t/lisp-pr11806.sh | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ t/list-of-tests.mk | 1 + 4 files changed, 56 insertions(+), 3 deletions(-) create mode 100755 t/lisp-pr11806.sh diff --git a/lib/am/lisp.am b/lib/am/lisp.am index ba5c92a..050d7dc 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 7766db4..b646640 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 , 1995. # @@ -75,7 +75,7 @@ cp "$@" $tempdir ( cd $tempdir - echo "(setq load-path (cons nil load-path))" > script + echo "(setq load-path (cons \"$abs_srcdir\" (cons nil 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 0000000..c372ea5 --- /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 . + +# 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 852b87a..dd88819 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 \ -- 1.7.9.5