Mercurial > hg > xemacs-beta
comparison lisp/update-elc.el @ 1261:465bd3c7d932
[xemacs-hg @ 2003-02-06 06:35:47 by ben]
various bug fixes
mule/cyril-util.el: Fix compile warning.
loadup.el, make-docfile.el, update-elc-2.el, update-elc.el: Set stack-trace-on-error, load-always-display-messages so we
get better debug results.
update-elc-2.el: Fix typo in name of lisp/mule, leading to compile failure.
simple.el: Omit M-S-home/end from motion keys.
update-elc.el: Overhaul:
-- allow list of "early-compile" files to be specified, not hardcoded
-- fix autoload checking to include all .el files, not just dumped ones
-- be smarter about regenerating autoloads, so we don't need to use
loadup-el if not necessary
-- use standard methods for loading/not loading auto-autoloads.el
(maybe fixes "Already loaded" error?)
-- rename misleading NOBYTECOMPILE flag file.
window-xemacs.el: Fix bug in default param.
window-xemacs.el: Fix compile warnings.
lwlib-Xm.c: Fix compile warning.
lispref/mule.texi: Lots of Mule rewriting.
internals/internals.texi: Major fixup. Correct for new names of Bytebpos, Ichar, etc. and
lots of Mule rewriting.
config.inc.samp: Various fixups.
Makefile.in.in: NOBYTECOMPILE -> BYTECOMPILE_CHANGE.
esd.c: Warning fixes.
fns.c: Eliminate bogus require-prints-loading-message; use already
existent load-always-display-messages instead. Make sure `load'
knows we are coming from `require'.
lread.c: Turn on `load-warn-when-source-newer' by default. Change loading
message to indicate when we are `require'ing. Eliminate
purify_flag hacks to display more messages; instead, loadup and
friends specify this explicitly with
`load-always-display-messages'. Add spaces when batch to clearly
indicate recursive loading. Fassoc() does not GC so no need to
gcpro.
gui-x.c, gui-x.h, menubar-x.c: Fix up crashes when selecting menubar items due to lack of GCPROing
of callbacks in lwlib structures.
eval.c, lisp.h, print.c: Don't canonicalize to selected-frame when noninteractive, or
backtraces get all screwed up as some values are printed through
the stream console and some aren't. Export
canonicalize_printcharfun() and use in Fbacktrace().
author | ben |
---|---|
date | Thu, 06 Feb 2003 06:36:17 +0000 |
parents | c08a6fa181d1 |
children | bada4b0bce3a |
comparison
equal
deleted
inserted
replaced
1260:278c9cd3435e | 1261:465bd3c7d932 |
---|---|
1 ;;; update-elc.el --- Bytecompile out-of-date dumped files | 1 ;;; update-elc.el --- Bytecompile out-of-date dumped files |
2 | 2 |
3 ;; Copyright (C) 1997 Free Software Foundation, Inc. | 3 ;; Copyright (C) 1997 Free Software Foundation, Inc. |
4 ;; Copyright (C) 1996 Sun Microsystems, Inc. | 4 ;; Copyright (C) 1996 Sun Microsystems, Inc. |
5 ;; Copyright (C) 2001 Ben Wing. | 5 ;; Copyright (C) 2001, 2003 Ben Wing. |
6 | 6 |
7 ;; Author: Ben Wing <ben@xemacs.org> | 7 ;; Author: Ben Wing <ben@xemacs.org> |
8 ;; Based On: Original by Steven L Baur <steve@xemacs.org> | 8 ;; Based On: Original by Steven L Baur <steve@xemacs.org> |
9 ;; Maintainer: XEmacs Development Team | 9 ;; Maintainer: XEmacs Development Team |
10 ;; Keywords: internal | 10 ;; Keywords: internal |
29 ;;; Synched up with: Not in FSF. | 29 ;;; Synched up with: Not in FSF. |
30 | 30 |
31 ;;; Commentary: | 31 ;;; Commentary: |
32 | 32 |
33 ;; Byte compile the .EL files necessary to dump out xemacs. | 33 ;; Byte compile the .EL files necessary to dump out xemacs. |
34 ;; Also update the auto-autoloads.el files. | |
35 | |
34 ;; Use this file like this: | 36 ;; Use this file like this: |
35 | 37 |
36 ;; temacs -batch -l ../lisp/update-elc.el $lisp | 38 ;; temacs -batch -l ../lisp/update-elc.el $lisp |
37 | 39 |
38 ;; where $lisp comes from the Makefile. .elc files listed in $lisp will | 40 ;; where $lisp comes from the Makefile. .elc files listed in $lisp will |
43 ;; are missing or badly out-of-date) | 45 ;; are missing or badly out-of-date) |
44 | 46 |
45 ;; See also update-elc-2.el | 47 ;; See also update-elc-2.el |
46 | 48 |
47 ;;; Code: | 49 ;;; Code: |
50 | |
51 ;; Help debug problems. | |
52 (setq stack-trace-on-error t | |
53 load-always-display-messages t) | |
48 | 54 |
49 (defvar processed nil) | 55 (defvar processed nil) |
50 (defvar update-elc-files-to-compile nil) | 56 (defvar update-elc-files-to-compile nil) |
51 (defvar need-to-rebuild-autoloads nil) | 57 (defvar need-to-rebuild-autoloads nil) |
52 (defvar need-to-rebuild-mule-autoloads nil) | 58 (defvar need-to-rebuild-mule-autoloads nil) |
53 (defvar need-to-recompile-autoloads nil) | 59 (defvar need-to-recompile-autoloads nil) |
54 (defvar need-to-recompile-mule-autoloads nil) | 60 (defvar need-to-recompile-mule-autoloads nil) |
61 (defvar undumped-exe nil) | |
62 (defvar dumped-exe nil) | |
63 (defvar dumped-exe-out-of-date-wrt-dump-files nil) | |
64 (defvar dumped-exe-out-of-date-wrt-undumped-exe nil) | |
55 | 65 |
56 ;(setq update-elc-files-to-compile | 66 ;(setq update-elc-files-to-compile |
57 ; (delq nil | 67 ; (delq nil |
58 ; (mapcar (function | 68 ; (mapcar (function |
59 ; (lambda (x) | 69 ; (lambda (x) |
69 ; (nthcdr 3 command-line-args)))) | 79 ; (nthcdr 3 command-line-args)))) |
70 | 80 |
71 (let ((build-root (expand-file-name ".." invocation-directory))) | 81 (let ((build-root (expand-file-name ".." invocation-directory))) |
72 (setq load-path (list (expand-file-name "lisp" build-root)))) | 82 (setq load-path (list (expand-file-name "lisp" build-root)))) |
73 | 83 |
74 (load "very-early-lisp" nil t) | 84 (load "very-early-lisp.el") |
75 | |
76 (load "find-paths.el") | 85 (load "find-paths.el") |
77 (load "packages.el") | 86 (load "packages.el") |
78 (load "setup-paths.el") | 87 (load "setup-paths.el") |
79 (load "dump-paths.el") | 88 (load "dump-paths.el") ;; #### take out in my fixup ws |
89 | |
90 ;; Lisp files loaded in order to byte compile anything. If any are out of | |
91 ;; date, we need to load them as .el's, byte compile them, and reload as | |
92 ;; .elc's. | |
93 (defvar lisp-files-needed-for-byte-compilation | |
94 '("bytecomp" | |
95 "byte-optimize")) | |
96 | |
97 ;; "Lisp files, other than those in | |
98 ;; `lisp-files-needing-early-byte-compilation',packages that need early | |
99 ;; byte compilation. These are files loaded by update-elc.el in order to | |
100 ;; do the compilation of all the rest of the files. | |
101 (defvar lisp-files-needing-early-byte-compilation | |
102 '(;"easy-mmode" | |
103 "autoload" | |
104 "shadow" | |
105 "cl-macs")) | |
106 | |
107 (defvar unbytecompiled-lisp-files | |
108 '("paths.el" | |
109 "dumped-lisp.el" | |
110 "dumped-pkg-lisp.el" | |
111 "version.el" | |
112 "very-early-lisp.el") | |
113 "Lisp files that should not be byte compiled.") | |
80 | 114 |
81 (defun update-elc-chop-extension (file) | 115 (defun update-elc-chop-extension (file) |
82 (if (string-match "\\.elc?$" file) | 116 (if (string-match "\\.elc?$" file) |
83 (substring file 0 (match-beginning 0)) | 117 (substring file 0 (match-beginning 0)) |
84 file)) | 118 file)) |
85 | 119 |
86 ;; we used to call packages-list-autoloads here, but it's false generality. | 120 ;; we used to call packages-list-autoloads here, but it's false generality. |
87 ;; we need to handle each autoload file differently and there are only | 121 ;; we need to handle each autoload file differently and there are only |
88 ;; two of them. | 122 ;; two of them. |
89 | 123 |
90 (let (preloaded-file-list site-load-packages need-to-dump dumped-exe | 124 (let (preloaded-file-list site-load-packages files-to-process) |
91 files-to-process) | |
92 | 125 |
93 (load (expand-file-name "../lisp/dumped-lisp.el")) | 126 (load (expand-file-name "../lisp/dumped-lisp.el")) |
94 | 127 |
95 (setq dumped-exe | 128 (setq dumped-exe |
96 (cond ((file-exists-p "../src/xemacs.exe") "../src/xemacs.exe") | 129 (cond ((file-exists-p "../src/xemacs.exe") "../src/xemacs.exe") |
97 ((file-exists-p "../src/xemacs") "../src/xemacs") | 130 ((file-exists-p "../src/xemacs") "../src/xemacs") |
98 (t nil))) | 131 (t nil))) |
132 | |
133 (let ((temacs-exe | |
134 (cond ((file-exists-p "../src/temacs.exe") "../src/temacs.exe") | |
135 ((file-exists-p "../src/temacs") "../src/temacs") | |
136 (t nil))) | |
137 (data-file | |
138 (cond ((file-exists-p "../src/xemacs.dmp") "../src/xemacs.dmp") | |
139 (t nil)))) | |
140 | |
141 ;; two setups here: | |
142 ;; (1) temacs.exe is undumped, dumped into xemacs.exe. Happens with | |
143 ;; unexec, but also with pdump under MS Windows native, since | |
144 ;; the dumped data is stored as a resource in the xemacs.exe | |
145 ;; executable. | |
146 ;; (2) xemacs.exe is dumped or undumped. Running `xemacs -nd' gets | |
147 ;; you the equivalent of `temacs'. Dumping creates a file | |
148 ;; `xemacs.dmp'. | |
149 | |
150 (setq dumped-exe-out-of-date-wrt-undumped-exe | |
151 (cond ((not dumped-exe) t) | |
152 (temacs-exe (file-newer-than-file-p temacs-exe dumped-exe)) | |
153 ((not data-file) t) | |
154 (t (file-newer-than-file-p dumped-exe data-file)))) | |
155 ) | |
156 | |
99 | 157 |
100 ;; Path setup | 158 ;; Path setup |
101 (let ((package-preloaded-file-list | 159 (let ((package-preloaded-file-list |
102 (packages-collect-package-dumped-lisps late-package-load-path))) | 160 (packages-collect-package-dumped-lisps late-package-load-path))) |
103 | 161 |
109 (load (concat default-directory "../site-packages") t t) | 167 (load (concat default-directory "../site-packages") t t) |
110 (setq preloaded-file-list | 168 (setq preloaded-file-list |
111 (append packages-hardcoded-lisp | 169 (append packages-hardcoded-lisp |
112 preloaded-file-list | 170 preloaded-file-list |
113 site-load-packages)) | 171 site-load-packages)) |
114 ;; bytecomp, byte-optimize, and autoload are mentioned in | 172 ;; bytecomp, byte-optimize, autoload, etc. are mentioned specially |
115 ;; packages-useful-lisp. | 173 ;; in the lisp-files-need* variables. |
116 (setq files-to-process (append packages-useful-lisp preloaded-file-list)) | 174 (setq files-to-process (append lisp-files-needed-for-byte-compilation |
175 lisp-files-needing-early-byte-compilation | |
176 preloaded-file-list)) | |
117 (while files-to-process | 177 (while files-to-process |
118 (let* ((arg (car files-to-process)) | 178 (let* ((arg (car files-to-process)) |
119 (arg-is-preloaded (member arg preloaded-file-list)) | 179 (arg-is-preloaded (member arg preloaded-file-list)) |
120 (arg-sans-extension (update-elc-chop-extension arg)) | 180 (arg-sans-extension (update-elc-chop-extension arg)) |
121 (full-arg (locate-library arg-sans-extension)) | 181 (full-arg (locate-library arg-sans-extension)) |
122 (full-arg-sans-extension | 182 (full-arg-sans-extension |
123 (if (null full-arg) | 183 (if (null full-arg) |
124 (progn | 184 (progn |
125 (print (format "Error: Library file %s not found" arg)) | 185 (print (format "Error: Library file %s not found" arg)) |
186 (backtrace) | |
126 ;; Uncomment in case of trouble | 187 ;; Uncomment in case of trouble |
127 ;;(print (format "late-packages: %S" late-packages)) | 188 ;;(print (format "late-packages: %S" late-packages)) |
128 ;;(print (format "guessed-roots: %S" | 189 ;;(print (format "guessed-roots: %S" |
129 ;; (paths-find-emacs-roots | 190 ;; (paths-find-emacs-roots |
130 ;; invocation-directory invocation-name))) | 191 ;; invocation-directory invocation-name))) |
131 (kill-emacs)) | 192 (kill-emacs)) |
132 (update-elc-chop-extension full-arg))) | 193 (update-elc-chop-extension full-arg))) |
133 (full-arg-el (concat full-arg-sans-extension ".el")) | 194 (full-arg-el (concat full-arg-sans-extension ".el")) |
134 (full-arg-elc (concat full-arg-sans-extension ".elc")) | 195 (full-arg-elc (concat full-arg-sans-extension ".elc")) |
135 (full-arg-dir (file-name-directory full-arg-el)) | 196 (full-arg-dir (file-name-directory full-arg-el))) |
136 (autoload-file (expand-file-name "auto-autoloads.el" full-arg-dir)) | |
137 (autoload-is-mule (string-match "[/\\]mule[/\\]$" full-arg-dir))) | |
138 | 197 |
139 ;; (print full-arg-el) | 198 ;; (print full-arg-el) |
140 | 199 |
141 ;; now check if .el or .elc is newer than the dumped exe. | 200 ;; now check if .el or .elc is newer than the dumped exe. |
142 ;; if so, need to redump. | 201 ;; if so, need to redump. |
143 (when (and dumped-exe arg-is-preloaded | 202 (when (and dumped-exe arg-is-preloaded |
144 (or (and (file-exists-p full-arg-el) | 203 (or (and (file-exists-p full-arg-el) |
145 (file-newer-than-file-p full-arg-el dumped-exe)) | 204 (file-newer-than-file-p full-arg-el dumped-exe)) |
146 (and (file-exists-p full-arg-elc) | 205 (and (file-exists-p full-arg-elc) |
147 (file-newer-than-file-p full-arg-elc dumped-exe)))) | 206 (file-newer-than-file-p full-arg-elc dumped-exe)))) |
148 (setq need-to-dump t)) | 207 (setq dumped-exe-out-of-date-wrt-dump-files t)) |
149 | |
150 (when (or (not (file-exists-p autoload-file)) | |
151 (and (file-exists-p full-arg-el) | |
152 (file-newer-than-file-p full-arg-el autoload-file))) | |
153 (if autoload-is-mule | |
154 (setq need-to-rebuild-mule-autoloads t) | |
155 (setq need-to-rebuild-autoloads t))) | |
156 | 208 |
157 (if (and (not (member (file-name-nondirectory arg) | 209 (if (and (not (member (file-name-nondirectory arg) |
158 packages-unbytecompiled-lisp)) | 210 unbytecompiled-lisp-files)) |
159 (not (member full-arg-el processed)) | 211 (not (member full-arg-el processed)) |
160 (file-exists-p full-arg-el) | 212 (file-exists-p full-arg-el) |
161 (or (not (file-exists-p full-arg-elc)) | 213 (or (not (file-exists-p full-arg-elc)) |
162 (file-newer-than-file-p full-arg-el full-arg-elc))) | 214 (file-newer-than-file-p full-arg-el full-arg-elc))) |
163 (setq processed (cons full-arg-el processed))) | 215 (setq processed (cons full-arg-el processed))) |
164 | 216 |
165 (setq files-to-process (cdr files-to-process)))) | 217 (setq files-to-process (cdr files-to-process)))) |
166 | 218 |
167 (if need-to-dump | 219 ;; Check if we need to rebuild the auto-autoloads.el files -- that is, |
220 ;; if ANY .el files have changed. | |
221 (let ((dirs-to-check '("../lisp" "../lisp/mule"))) | |
222 (while dirs-to-check | |
223 (let* ((dir (car dirs-to-check)) | |
224 (full-dir (expand-file-name dir)) | |
225 (all-files-in-dir (directory-files full-dir t "\\.el$" nil t)) | |
226 (autoload-file | |
227 (expand-file-name "auto-autoloads.el" full-dir)) | |
228 (autoload-is-mule (equal dir "../lisp/mule"))) | |
229 (while all-files-in-dir | |
230 (let* ((full-arg (car all-files-in-dir))) | |
231 (when (or (not (file-exists-p autoload-file)) | |
232 (and (file-exists-p full-arg) | |
233 (file-newer-than-file-p full-arg autoload-file))) | |
234 (if autoload-is-mule | |
235 (setq need-to-rebuild-mule-autoloads t) | |
236 (setq need-to-rebuild-autoloads t)))) | |
237 (setq all-files-in-dir (cdr all-files-in-dir)))) | |
238 (setq dirs-to-check (cdr dirs-to-check)))) | |
239 | |
240 (if dumped-exe-out-of-date-wrt-dump-files | |
168 (condition-case nil | 241 (condition-case nil |
169 (write-region-internal "foo" nil "../src/NEEDTODUMP") | 242 (write-region-internal "foo" nil "../src/NEEDTODUMP") |
170 (file-error nil))) | 243 (file-error nil))) |
171 | 244 |
172 ) | 245 ) |
191 need-to-recompile-mule-autoloads nil)) | 264 need-to-recompile-mule-autoloads nil)) |
192 | 265 |
193 (setq update-elc-files-to-compile (append update-elc-files-to-compile | 266 (setq update-elc-files-to-compile (append update-elc-files-to-compile |
194 (nreverse processed))) | 267 (nreverse processed))) |
195 | 268 |
196 ;; (print update-elc-files-to-compile) | 269 ;(print update-elc-files-to-compile) |
197 | 270 |
198 (if (and (not update-elc-files-to-compile) | 271 (let ((do-autoload-commands |
199 (not need-to-rebuild-autoloads) | 272 (append |
200 (not need-to-rebuild-mule-autoloads) | 273 (if (or need-to-rebuild-autoloads |
201 (not need-to-recompile-autoloads) | 274 need-to-rebuild-mule-autoloads) |
202 (not need-to-recompile-mule-autoloads)) | 275 '("-l" "autoload")) |
203 (condition-case nil | 276 (if need-to-rebuild-autoloads |
204 (delete-file "../src/NOBYTECOMPILE") | 277 '("-f" "autoload-update-directory-autoloads" |
205 (file-error nil)) | 278 "auto" "../lisp")) |
206 (let* ( | 279 (if need-to-rebuild-mule-autoloads |
207 (bytecomp-arg (concat (update-elc-chop-extension | 280 '("-f" "autoload-update-directory-autoloads" |
208 (locate-library "bytecomp")) ".el")) | 281 "mule" "../lisp/mule")) |
209 (byte-opt-arg (concat (update-elc-chop-extension | 282 (if need-to-recompile-autoloads |
210 (locate-library "byte-optimize")) ".el")) | 283 '("-f" "batch-byte-compile-one-file" |
211 (autoload-arg (concat (update-elc-chop-extension | 284 "../lisp/auto-autoloads.el")) |
212 (locate-library "autoload")) ".el")) | 285 (if need-to-recompile-mule-autoloads |
213 ) | 286 '("-f" "batch-byte-compile-one-file" |
214 (setq inhibit-autoloads t) | 287 "../lisp/mule/auto-autoloads.el"))))) |
215 (setq command-line-args | 288 (cond ((and (not update-elc-files-to-compile) |
216 (append | 289 (not need-to-rebuild-autoloads) |
217 '("-l" "loadup-el.el" "run-temacs" "-batch" "-q" "-no-site-file") | 290 (not need-to-rebuild-mule-autoloads) |
291 (not need-to-recompile-autoloads) | |
292 (not need-to-recompile-mule-autoloads)) | |
293 ;; (1) Nothing to do at all. BYTECOMPILE_CHANGE is used (only by | |
294 ;; the Unix makefile) to indicate whether some files needed | |
295 ;; for dump got recompiled, and hence the executable must be | |
296 ;; redumped. We remove it if there were no files to compile. | |
297 (condition-case nil | |
298 (delete-file "../src/BYTECOMPILE_CHANGE") | |
299 (file-error nil))) | |
300 ;; (1) Nothing to do at all. BYTECOMPILE_CHANGE is used (only by | |
301 ;; the Unix makefile) to indicate whether some files needed | |
302 ;; for dump got recompiled, and hence the executable must be | |
303 ;; redumped. We remove it if there were no files to compile. | |
304 ((and (not update-elc-files-to-compile) | |
305 (not dumped-exe-out-of-date-wrt-dump-files) | |
306 (not dumped-exe-out-of-date-wrt-undumped-exe)) | |
307 ;; (2) We have no files to byte-compile, but we do need to | |
308 ;; regenerate and compile the auto-autoloads file. (This will | |
309 ;; be needed to be up-to-date before we run update-elc-2.) | |
310 ;; If the dumped exe exists and is up-to-date, both with | |
311 ;; respect to the undumped exe and the files that will be dumped | |
312 ;; into it, then we can use the dumped exe to rebuild the | |
313 ;; autoloads. Else, we have to do it the "hard way" by loading | |
314 ;; raw temacs, running loadup, then regenerating the autoloads. | |
315 ;; #### We should see whether it's possible to load up a | |
316 ;; minimal number of files in order to get autoload.el to work. | |
317 (load "raw-process.el") | |
318 (apply 'call-process-internal dumped-exe nil t nil | |
319 (append | |
320 '("-batch -no-autoloads -no-packages") | |
321 do-autoload-commands)) | |
322 (condition-case nil | |
323 (delete-file "../src/BYTECOMPILE_CHANGE") | |
324 (file-error nil))) | |
325 (t | |
326 (let ((bc-bootstrap | |
327 (mapcar #'(lambda (arg) | |
328 (concat (update-elc-chop-extension | |
329 (locate-library arg)) ".el")) | |
330 lisp-files-needed-for-byte-compilation)) | |
331 (bootstrap-other | |
332 (mapcar #'(lambda (arg) | |
333 (concat (update-elc-chop-extension | |
334 (locate-library arg)) ".el")) | |
335 lisp-files-needing-early-byte-compilation))) | |
336 (setq inhibit-autoloads t) | |
218 ;; if bytecomp or byte-optimize need recompiling, then load | 337 ;; if bytecomp or byte-optimize need recompiling, then load |
219 ;; the .el version of them first, recompile them, and reload | 338 ;; the .el version of them first, recompile them, and reload |
220 ;; the .elc versions to recompile everything else (so we won't | 339 ;; the .elc versions to recompile everything else (so we won't |
221 ;; be waiting until the cows come home). we need to set | 340 ;; be waiting until the cows come home). we need to set |
222 ;; load-ignore-elc-files because byte-optimize gets autoloaded | 341 ;; load-ignore-elc-files because byte-optimize gets autoloaded |
223 ;; from bytecomp. | 342 ;; from bytecomp. |
224 (if (or (member bytecomp-arg update-elc-files-to-compile) | 343 (let ((recompile-bc-bootstrap |
225 (member byte-opt-arg update-elc-files-to-compile)) | 344 (apply #'nconc |
226 (append | 345 (mapcar |
227 '("-eval" "(setq load-ignore-elc-files t)" "-l" "bytecomp") | 346 #'(lambda (arg) |
228 (if (member bytecomp-arg update-elc-files-to-compile) | 347 (when (member arg update-elc-files-to-compile) |
229 (append '("-f" "batch-byte-compile-one-file") | 348 (append '("-f" "batch-byte-compile-one-file") |
230 (list bytecomp-arg))) | 349 (list arg)))) |
231 (if (member byte-opt-arg update-elc-files-to-compile) | 350 bc-bootstrap))) |
232 (append '("-f" "batch-byte-compile-one-file") | 351 (recompile-bootstrap-other |
233 (list byte-opt-arg))) | 352 (apply #'nconc |
234 '("-eval" "(setq load-ignore-elc-files nil)"))) | 353 (mapcar |
235 '("-l" "bytecomp") | 354 #'(lambda (arg) |
236 ;; likewise, recompile autoload.el if out-of-date. | 355 (when (member arg update-elc-files-to-compile) |
237 (if (member autoload-arg update-elc-files-to-compile) | 356 (append '("-f" "batch-byte-compile-one-file") |
238 (append '("-f" "batch-byte-compile-one-file") | 357 (list arg)))) |
239 (list autoload-arg))) | 358 bootstrap-other)))) |
240 ;; then generate autoloads for lisp and maybe lisp/mule. | 359 (mapc-internal |
241 (if (or need-to-rebuild-autoloads | 360 #'(lambda (arg) |
242 need-to-rebuild-mule-autoloads) | 361 (setq update-elc-files-to-compile |
243 '("-l" "autoload")) | 362 (delete arg update-elc-files-to-compile))) |
244 (if need-to-rebuild-autoloads | 363 (append bc-bootstrap bootstrap-other)) |
245 '("-f" "autoload-update-directory-autoloads" "auto" "../lisp")) | 364 (setq command-line-args |
246 (if need-to-rebuild-mule-autoloads | 365 (append |
247 '("-f" "autoload-update-directory-autoloads" | 366 '("-l" "loadup-el.el" "run-temacs" |
248 "mule" "../lisp/mule")) | 367 "-batch" "-no-packages" "-no-autoloads" |
249 (if need-to-recompile-autoloads | 368 "-eval" "(setq stack-trace-on-error t)" |
250 '("-f" "batch-byte-compile-one-file" | 369 "-eval" "(setq load-always-display-messages t)") |
251 "../lisp/auto-autoloads.el")) | 370 (when recompile-bc-bootstrap |
252 (if need-to-recompile-mule-autoloads | 371 (append |
253 '("-f" "batch-byte-compile-one-file" | 372 '("-eval" "(setq load-ignore-elc-files t)" |
254 "../lisp/mule/auto-autoloads.el")) | 373 "-l" "bytecomp") |
255 ;; now load the autoloads and compile alles anderes. | 374 recompile-bc-bootstrap |
256 '("-eval" "(setq inhibit-autoloads nil)" | 375 '("-eval" "(setq load-ignore-elc-files nil)"))) |
257 "-f" "startup-load-autoloads" | 376 '("-l" "bytecomp") |
258 "-f" "batch-byte-compile") | 377 ;; likewise, recompile autoload.el etc. if out-of-date. |
259 (delete autoload-arg | 378 recompile-bootstrap-other |
260 (delete byte-opt-arg | 379 ;; then generate autoloads for lisp and maybe lisp/mule. |
261 (delete bytecomp-arg | 380 do-autoload-commands |
262 update-elc-files-to-compile)))))) | 381 ;; now load the autoloads and compile alles anderes. |
263 (load "loadup-el.el")) | 382 '("-eval" "(setq inhibit-autoloads nil)" |
383 "-f" "startup-load-autoloads" | |
384 "-f" "batch-byte-compile") | |
385 update-elc-files-to-compile | |
386 )))) | |
387 | |
388 ;;(print command-line-args) | |
389 (load "loadup-el.el")))) | |
264 | 390 |
265 (kill-emacs) | 391 (kill-emacs) |
266 | 392 |
267 ;;; update-elc.el ends here | 393 ;;; update-elc.el ends here |