Mercurial > emacs
changeset 25936:3223912646d8
(compile): Compile files one by one. Set load-path to
current directory and subdirectories when compiling.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Fri, 08 Oct 1999 21:51:14 +0000 |
parents | d257e2f126f2 |
children | f52741f10a0a |
files | lisp/Makefile |
diffstat | 1 files changed, 18 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/Makefile Fri Oct 08 21:44:24 1999 +0000 +++ b/lisp/Makefile Fri Oct 08 21:51:14 1999 +0000 @@ -115,8 +115,24 @@ # Compile all Lisp files, except those from DONTCOMPILE. This # compiles files unconditionally. All .elc files are made writable # before compilation in case we checked out read-only (CVS option -r). +# Files must be compiled one by one, otherwise apparently +# eval-when-compile's in some Lisp files make problems in files being +# compiled later. We also set the load-path of the Emacs used for +# compilation to the current directory and its subdirectories, to +# make sure require's and load's in the files being compiled find +# the right files. compile: doit + wd=`pwd`; \ + find $$wd -name "*.elc" | xargs chmod +w; \ + subdirs=`find $$wd -type d -print`; \ + for dir in $$subdirs; do \ + case $$dir in \ + */Old | */RCS | */CVS | */=* ) ;; \ + *) loadpath="$$loadpath \"$$dir\"" ;; \ + esac; \ + done; \ + loadpath="(setq load-path '($$loadpath))"; \ dont_compile=`echo $(DONTCOMPILE)`; \ for el in $(EL); do \ compile_it=y; \ @@ -126,14 +142,11 @@ fi; \ done; \ if test $$compile_it = y; then \ - els="$$el $$els"; \ - echo "Compile $$el"; \ + $(emacs) --eval "$$loadpath" -f batch-byte-compile $$el; \ else \ echo "Don't compile $$el"; \ fi; \ - done; \ - chmod +w $$els; \ - $(emacs) -f batch-byte-compile $$els; + done # Recompile all Lisp files which are newer than their .elc files. # Note that this doesn't create .elc files. It only recompiles if an