[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Automake-NG] [FYI] {elisp-work} coverage: byte-compiling elisp files in
From: |
Stefano Lattarini |
Subject: |
[Automake-NG] [FYI] {elisp-work} coverage: byte-compiling elisp files in different subdirectories |
Date: |
Sat, 4 Aug 2012 15:52:02 +0200 |
Where a '.el' file in a subdirectory might require a '.el' file in
another one. This does not work out of the box, but can be made to
work with a judicious use of $(AM_ELCFLAGS) (just introduced in the
previous commit).
* t/lisp-subdir-mix.sh: New test.
* t/list-of-tests.mk: Add it.
Signed-off-by: Stefano Lattarini <address@hidden>
---
t/lisp-subdir-mix.sh | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++
t/list-of-tests.mk | 1 +
2 files changed, 97 insertions(+)
create mode 100755 t/lisp-subdir-mix.sh
diff --git a/t/lisp-subdir-mix.sh b/t/lisp-subdir-mix.sh
new file mode 100755
index 0000000..20073ec
--- /dev/null
+++ b/t/lisp-subdir-mix.sh
@@ -0,0 +1,96 @@
+#! /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/>.
+
+# Check compiling elisp files in different subdirectories, where a
+# file in a subdirectory might require a file in another one.
+# This doesn't work out of the box, but can be made to work with a
+# judicious use of $(AM_ELCFLAGS).
+
+required=emacs
+. ./defs || exit 1
+
+cat >> configure.ac << 'END'
+AM_PATH_LISPDIR
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+dist_lisp_LISP = \
+ am-here.el \
+ sub1/am-one.el \
+ sub2/am-two.el \
+ sub3/subsub/am-three.el
+
+AM_ELCFLAGS = \
+ -L $(srcdir)/sub1 \
+ -L $(srcdir)/sub2 \
+ -L $(srcdir)/sub3/subsub
+
+elc-test:
+ test -f sub1/am-one.elc
+ test -f sub2/am-two.elc
+ test -f sub3/subsub/am-three.elc
+.PHONY: elc-test
+check-local: elc-test
+END
+
+mkdir sub1 sub2 sub3 sub3/subsub
+
+cat > am-here.el << 'END'
+(provide 'am-here)
+(require 'am-one)
+(require 'am-two)
+(require 'am-three)
+END
+
+cat > sub1/am-one.el << 'END'
+(require 'am-here)
+(provide 'am-one)
+(require 'am-two)
+(require 'am-three)
+END
+
+cat > sub2/am-two.el << 'END'
+(require 'am-here)
+(require 'am-one)
+(provide 'am-two)
+(require 'am-three)
+END
+
+cat > sub3/subsub/am-three.el << 'END'
+(require 'am-here)
+(require 'am-one)
+(require 'am-two)
+(provide 'am-three)
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --add-missing
+
+./configure
+
+$MAKE
+$MAKE elc-test
+$MAKE clean
+for x in am-here sub1/am-one sub2/am-two sub3/subsub/am-three; do
+ test -f $x.el
+ test ! -e $x.elc
+done
+
+$MAKE distcheck
+
+:
diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk
index 84fc61c..35197a5 100644
--- a/t/list-of-tests.mk
+++ b/t/list-of-tests.mk
@@ -633,6 +633,7 @@ t/lisp8.sh \
t/lisp-loadpath.sh \
t/lisp-subdir.sh \
t/lisp-subdir2.sh \
+t/lisp-subdir-mix.sh \
t/lispdry.sh \
t/lisp-pr11806.sh \
t/lisp-flags.sh \
--
1.7.12.rc0
- [Automake-NG] [FYI] {elisp-work} coverage: byte-compiling elisp files in different subdirectories,
Stefano Lattarini <=