Mercurial > emacs
changeset 107459:51f4b3cf3db9
Get rid of .elc files after removal of the corresponding .el.
* Makefile.in (compile-clean): New target.
(compile-main): Use it.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Mon, 22 Mar 2010 09:33:21 -0400 |
parents | d5b2d5a7cad9 |
children | c3852852bbc0 |
files | lisp/ChangeLog lisp/Makefile.in |
diffstat | 2 files changed, 21 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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 <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 @@ -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 <juri@jurta.org>
--- 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.