From: Alexandre Duret-Lutz Date: Wed, 26 Feb 2003 20:11:18 +0000 (+0000) Subject: * automake.in (handle_emacs_lisp): Don't build *.elc files X-Git-Tag: Release-1-7-3b~44 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8075904e4d912c2115894ca2fcbcf0e4e788431f;p=thirdparty%2Fautomake.git * automake.in (handle_emacs_lisp): Don't build *.elc files if ELCFILES was set empty. * tests/lisp4.test: New file. * tests/Makefile.am (TESTS): Add lisp4.test. Reported by Simon Josefsson. --- diff --git a/ChangeLog b/ChangeLog index 690fccf89..078d8b0c5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2003-02-26 Alexandre Duret-Lutz + * automake.in (handle_emacs_lisp): Don't build *.elc files + if ELCFILES was set empty. + * tests/lisp4.test: New file. + * tests/Makefile.am (TESTS): Add lisp4.test. + Reported by Simon Josefsson. + * tests/lex3.test, tests/lex5.test: Require flex. Reported by Leo Davis. diff --git a/THANKS b/THANKS index cc4df1ef5..6b89aa596 100644 --- a/THANKS +++ b/THANKS @@ -192,6 +192,7 @@ Sergey Vlasov vsu@mivlgu.murom.ru Seth Alves alves@hungry.com Shuhei Amakawa sa264@cam.ac.uk Shigio Yamaguchi shigio@tamacom.com +Simon Josefsson jas@extundo.com Simon Richter sjr@debian.org Stepan Kasal kasal@math.cas.cz Steve M. Robbins steve@nyongwa.montreal.qc.ca diff --git a/automake.in b/automake.in index 674ffd167..b4f94d3af 100755 --- a/automake.in +++ b/automake.in @@ -5106,15 +5106,22 @@ sub handle_emacs_lisp # Generate .elc files. my @elcfiles = map { $_->[1] . 'c' } @elfiles; + define_pretty_variable ('ELCFILES', TRUE, INTERNAL, @elcfiles); define_pretty_variable ('am__ELFILES', TRUE, INTERNAL, map { $_->[1] } @elfiles); - # It's important that all depends on elc-stamp so that - # all .elc files get recompiled whenever a .el changes. - # It's important that all depends on $(ELCFILES) so that - # we can recover if any of them is deleted. - push (@all, 'elc-stamp', '$(ELCFILES)'); + # Do not depend on the build rules if ELCFILES is empty. + # This is necessary because overriding ELCFILES= is a documented + # idiom to disable byte-compilation. + if (variable_value ('ELCFILES')) + { + # It's important that all depends on elc-stamp so that + # all .elc files get recompiled whenever a .el changes. + # It's important that all depends on $(ELCFILES) so that + # we can recover if any of them is deleted. + push (@all, 'elc-stamp', '$(ELCFILES)'); + } require_variables ($elfiles[0][0], "Emacs Lisp sources seen", TRUE, 'EMACS', 'lispdir'); diff --git a/tests/Makefile.am b/tests/Makefile.am index 284117a88..393bddfb1 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -257,6 +257,7 @@ link_f_only.test \ lisp.test \ lisp2.test \ lisp3.test \ +lisp4.test \ listval.test \ location.test \ ltdeps.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 71994a3a3..fc98e205f 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -351,6 +351,7 @@ link_f_only.test \ lisp.test \ lisp2.test \ lisp3.test \ +lisp4.test \ listval.test \ location.test \ ltdeps.test \ diff --git a/tests/lisp4.test b/tests/lisp4.test new file mode 100755 index 000000000..6ae43a37b --- /dev/null +++ b/tests/lisp4.test @@ -0,0 +1,67 @@ +#! /bin/sh +# Copyright (C) 2003 Free Software Foundation, Inc. +# +# This file is part of GNU Automake. +# +# GNU Automake 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. +# +# GNU Automake 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 GNU Automake; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# Make sure setting ELCFILES= disable byte-compilation as documented. +# Report from Simon Josefsson. + +required=emacs +. ./defs || exit 1 + +set -e + +cat > Makefile.am << 'EOF' +lisp_LISP = am-one.el am-two.el am-three.el +EXTRA_DIST = am-one.el am-two.el +ELCFILES= +am-three.el: + echo "(provide 'am-three)" > $@ +CLEANFILES = am-three.el + +install-test: install + test -f $(lispdir)/am-one.el + test -f $(lispdir)/am-two.el + test -f $(lispdir)/am-three.el + test ! -f $(lispdir)/am-one.elc + test ! -f $(lispdir)/am-two.elc + test ! -f $(lispdir)/am-three.elc +EOF + +cat >> configure.in << 'EOF' +AM_PATH_LISPDIR +AC_OUTPUT +EOF + +echo "(require 'am-two)" > am-one.el +echo "(require 'am-three) (provide 'am-two)" > am-two.el +# am-tree.el is a built source + +$ACLOCAL +$AUTOCONF +$AUTOMAKE --add-missing +./configure --prefix "`pwd`" + +$MAKE + +test ! -f am-one.elc +test ! -f am-two.elc +test ! -f am-three.elc +test ! -f elc-stamp + +$MAKE install-test