# HG changeset patch # User Stefan Monnier # Date 1269264801 14400 # Node ID 51f4b3cf3db980ec90e714b03f8e57ad7552c14b # Parent d5b2d5a7cad9fec89ec0712268e6b4321cb2d511 Get rid of .elc files after removal of the corresponding .el. * Makefile.in (compile-clean): New target. (compile-main): Use it. diff -r d5b2d5a7cad9 -r 51f4b3cf3db9 lisp/ChangeLog --- a/lisp/ChangeLog Mon Mar 22 08:51:19 2010 +0100 +++ b/lisp/ChangeLog Mon Mar 22 09:33:21 2010 -0400 @@ -1,3 +1,9 @@ +2010-03-22 Stefan Monnier + + 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 * Makefile.in (compile-main): cd to $(lisp) in a sub-shell, so we @@ -19,7 +25,8 @@ (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 diff -r d5b2d5a7cad9 -r 51f4b3cf3db9 lisp/Makefile.in --- a/lisp/Makefile.in Mon Mar 22 08:51:19 2010 +0100 +++ b/lisp/Makefile.in Mon Mar 22 09:33:21 2010 -0400 @@ -235,7 +235,7 @@ # 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 \ @@ -247,6 +247,18 @@ $(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.