+2010-03-22 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ Get rid of .elc files after removal of the corresponding .el.
+ * Makefile.in (compile-clean): New target.
+ (compile-main): Use it.
+
2010-03-22 Jan Djärv <jan.h.d@swipnet.se>
* Makefile.in (compile-main): cd to $(lisp) in a sub-shell, so we
(srcdir): Don't append `/..'.
(EMACS): Use ${abs_top_builddir}.
(all, compile, compile-always, compile-last): Don't set emacswd.
- (update-subdirs, update-authors): Use $(top_srcdir) instead of $(srcdir).
+ (update-subdirs, update-authors): Use $(top_srcdir) instead of
+ $(srcdir).
(lisp): Use $(srcdir) instead of @srcdir@.
2010-03-21 Juri Linkov <juri@jurta.org>
# Compile all the Elisp files that need it. Beware: it approximates
# `no-byte-compile', so watch out for false-positives!
-compile-main:
+compile-main: compile-clean
@(cd $(lisp); $(setwins); \
els=`echo "$$wins " | sed -e 's|/\./|/|g' -e 's|/\. | |g' -e 's| |/*.el |g'`; \
for el in $$els; do \
$(MAKE) $(MFLAGS) compile-targets EMACS="$(EMACS)" TARGETS="$$chunk"; \
done
+.PHONY: compile-clean
+# Erase left-over .elc files that do not have a corresponding .el file.
+compile-clean:
+ @cd $(lisp); $(setwins); \
+ elcs=`echo "$$wins " | sed -e 's|/\./|/|g' -e 's|/\. | |g' -e 's| |/*.elc |g'`; \
+ for el in $$(echo $$elcs | sed -e 's/\.elc/\.el/g'); do \
+ if test -f "$$el" -o \! -f "$${el}c"; then :; else \
+ echo rm "$${el}c"; \
+ rm "$${el}c"; \
+ fi \
+ done
+
# Compile all Lisp files, but don't recompile those that are up to
# date. Some .el files don't get compiled because they set the
# local variable no-byte-compile.