diff options
author | Richard M. Stallman <rms@gnu.org> | 1995-10-30 18:01:22 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1995-10-30 18:01:22 +0000 |
commit | 9742dbc0eaf8d533c82850945e8b440b8ab752a0 (patch) | |
tree | 1376bfd82cb4f0816b9221919bfa36b116553b31 /lisp/emacs-lisp | |
parent | be010748989d2be1af4eaa5e602f4cf49d37bf26 (diff) | |
download | emacs-9742dbc0eaf8d533c82850945e8b440b8ab752a0.tar.gz emacs-9742dbc0eaf8d533c82850945e8b440b8ab752a0.tar.bz2 emacs-9742dbc0eaf8d533c82850945e8b440b8ab752a0.zip |
(byte-recompile-directory): New arg FORCE.
(byte-force-recompile): New function.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/bytecomp.el | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 3a52413ecc6..f323d8262dc 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -1122,7 +1122,13 @@ otherwise pop it") ;;;###autoload -(defun byte-recompile-directory (directory &optional arg) +(defun byte-force-recompile (directory) + "Recompile every `.el' file in DIRECTORY that already has a `.elc' file. +Files in subdirectories of DIRECTORY are processed also." + (byte-recompile-directory directory nil t)) + +;;;###autoload +(defun byte-recompile-directory (directory &optional arg force) "Recompile every `.el' file in DIRECTORY that needs recompilation. This is if a `.elc' file exists but is older than the `.el' file. Files in subdirectories of DIRECTORY are processed also. @@ -1132,7 +1138,10 @@ But a prefix argument (optional second arg) means ask user, for each such `.el' file, whether to compile it. Prefix argument 0 means don't ask and compile the file anyway. -A nonzero prefix argument also means ask about each subdirectory." +A nonzero prefix argument also means ask about each subdirectory. + +If the third argument FORCE is non-nil, +recompile every `.el' file that already has a `.elc' file." (interactive "DByte recompile directory: \nP") (if arg (setq arg (prefix-numeric-value arg))) @@ -1155,16 +1164,20 @@ A nonzero prefix argument also means ask about each subdirectory." (if (and (not (member (car files) '("." ".." "RCS" "CVS"))) (file-directory-p source) (not (file-symlink-p source))) + ;; This file is a subdirectory. Handle them differently. (if (or (null arg) (eq 0 arg) (y-or-n-p (concat "Check " source "? "))) (setq directories (nconc directories (list source)))) + ;; It is an ordinary file. Decide whether to compile it. (if (and (string-match emacs-lisp-file-regexp source) (not (auto-save-file-name-p source)) (setq dest (byte-compile-dest-file source)) (if (file-exists-p dest) - (file-newer-than-file-p source dest) + ;; File was already compiled. + (or force (file-newer-than-file-p source dest)) + ;; No compiled file exists yet. (and arg (or (eq 0 arg) (y-or-n-p (concat "Compile " source "? ")))))) |