if ELCFILES was set empty.
* tests/lisp4.test: New file.
* tests/Makefile.am (TESTS): Add lisp4.test.
Reported by Simon Josefsson.
2003-02-26 Alexandre Duret-Lutz <adl@gnu.org>
+ * 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.
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
# 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');
lisp.test \
lisp2.test \
lisp3.test \
+lisp4.test \
listval.test \
location.test \
ltdeps.test \
lisp.test \
lisp2.test \
lisp3.test \
+lisp4.test \
listval.test \
location.test \
ltdeps.test \
--- /dev/null
+#! /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