comparison lisp/update-elc-2.el @ 444:576fb035e263 r21-2-37

Import from CVS: tag r21-2-37
author cvs
date Mon, 13 Aug 2007 11:36:19 +0200
parents abe6d1db359e
children ef4d2466a29c
comparison
equal deleted inserted replaced
443:a8296e22da4e 444:576fb035e263
50 `("." ".." "CVS" "SCCS" "RCS" ,@(unless (featurep 'mule) '("mule")))) 50 `("." ".." "CVS" "SCCS" "RCS" ,@(unless (featurep 'mule) '("mule"))))
51 51
52 (defvar update-elc-ignored-files 52 (defvar update-elc-ignored-files
53 ;; note: entries here are regexps 53 ;; note: entries here are regexps
54 '("^," ;; #### huh? 54 '("^," ;; #### huh?
55 "^paths.el$" 55 "^paths\\.el$"
56 "^loadup.el$" 56 "^loadup\\.el$"
57 "^loadup-el.el$" 57 "^loadup-el\\.el$"
58 "^update-elc.el$" 58 "^update-elc\\.el$"
59 "^update-elc-2.el$" 59 "^update-elc-2\\.el$"
60 "^dumped-lisp.el$" 60 "^dumped-lisp\\.el$"
61 "^make-docfile.el$" 61 "^make-docfile\\.el$"
62 "^site-start.el$" 62 "^site-start\\.el$"
63 "^site-load.el$" 63 "^site-load\\.el$"
64 "^site-init.el$" 64 "^site-init\\.el$"
65 "^version.el$" 65 "^version\\.el$"
66 "^very-early-lisp.el$")) 66 "^very-early-lisp\\.el$"))
67 67
68 ;; SEEN accumulates the list of already-handled dirs. 68 ;; SEEN accumulates the list of already-handled dirs.
69 (defun do-update-elc-2 (dir compile-stage-p seen) 69 (defun do-update-elc-2 (dir compile-stage-p seen)
70 (setq dir (file-name-as-directory dir)) 70 (setq dir (file-name-as-directory dir))
71 ;; Only scan this sub-tree if we haven't been here yet. 71 ;; Only scan this sub-tree if we haven't been here yet.
73 (push (file-truename dir) seen) 73 (push (file-truename dir) seen)
74 74
75 ;; Do this directory. 75 ;; Do this directory.
76 (if compile-stage-p 76 (if compile-stage-p
77 ;; Stage 2: Recompile necessary .els 77 ;; Stage 2: Recompile necessary .els
78 (let ((files (directory-files dir t ".el$")) 78 (let ((files (directory-files dir t "\\.el$"))
79 file file-c) 79 file file-c)
80 (while (setq file (car files)) 80 (while (setq file (car files))
81 (setq files (cdr files)) 81 (setq files (cdr files))
82 (setq file-c (concat file "c")) 82 (setq file-c (concat file "c"))
83 (when (and (file-exists-p file) 83 (when (and (file-exists-p file)
93 (not ignore))) 93 (not ignore)))
94 (byte-compile-file file)))) 94 (byte-compile-file file))))
95 95
96 ;; Stage 1. 96 ;; Stage 1.
97 ;; Remove out-of-date elcs 97 ;; Remove out-of-date elcs
98 (let ((files (directory-files dir t ".el$")) 98 (let ((files (directory-files dir t "\\.el$"))
99 file file-c) 99 file file-c)
100 (while (setq file (car files)) 100 (while (setq file (car files))
101 (setq files (cdr files)) 101 (setq files (cdr files))
102 (setq file-c (concat file "c")) 102 (setq file-c (concat file "c"))
103 (when (and (file-exists-p file-c) 103 (when (and (file-exists-p file-c)
104 (file-newer-than-file-p file file-c)) 104 (file-newer-than-file-p file file-c))
105 (message "Removing out-of-date %s" file-c) 105 (message "Removing out-of-date %s" file-c)
106 (delete-file file-c)))) 106 (delete-file file-c))))
107 ;; Remove elcs without corresponding el 107 ;; Remove elcs without corresponding el
108 (let ((files (directory-files dir t ".elc$")) 108 (let ((files (directory-files dir t "\\.elc$"))
109 file file-c) 109 file file-c)
110 (while (setq file-c (car files)) 110 (while (setq file-c (car files))
111 (setq files (cdr files)) 111 (setq files (cdr files))
112 (setq file (replace-in-string file-c "c$" "")) 112 (setq file (replace-in-string file-c "c$" ""))
113 (when (and (file-exists-p file-c) 113 (when (and (file-exists-p file-c)
143 (message "Recompiling updated .els in directory tree `%s'..." dir) 143 (message "Recompiling updated .els in directory tree `%s'..." dir)
144 (do-update-elc-2 dir t nil) 144 (do-update-elc-2 dir t nil)
145 (message "Recompiling updated .els in directory tree `%s'...done" dir)) 145 (message "Recompiling updated .els in directory tree `%s'...done" dir))
146 (setq command-line-args-left nil)) 146 (setq command-line-args-left nil))
147 147
148 ;;; cleantree.el ends here 148 ;;; update-elc-2.el ends here