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