annotate lisp/update-elc.el @ 4810:6ee5e50a8772

Add a compiler macro for #'map, where CL-TYPE is constant and understood. 2010-01-07 Aidan Kehoe <kehoea@parhasard.net> * cl-macs.el (map): Add a compiler macro for this function, for cases where CL-TYPE is constant and understood.
author Aidan Kehoe <kehoea@parhasard.net>
date Thu, 07 Jan 2010 21:50:39 +0000
parents 257b468bf2ca
children 8431b52e43b1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1303
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1298
diff changeset
1 ;;; update-elc.el --- Bytecompile out-of-date dumped files, pre-dumping
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 ;; Copyright (C) 1997 Free Software Foundation, Inc.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
4 ;; Copyright (C) 1996 Sun Microsystems, Inc.
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
5 ;; Copyright (C) 2001, 2003 Ben Wing.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6
528
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
7 ;; Author: Ben Wing <ben@xemacs.org>
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
8 ;; Based On: Original by Steven L Baur <steve@xemacs.org>
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 ;; Maintainer: XEmacs Development Team
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10 ;; Keywords: internal
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12 ;; This file is part of XEmacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 ;; XEmacs is free software; you can redistribute it and/or modify it
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15 ;; under the terms of the GNU General Public License as published by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16 ;; the Free Software Foundation; either version 2, or (at your option)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 ;; any later version.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 ;; XEmacs is distributed in the hope that it will be useful, but
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 ;; General Public License for more details.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24 ;; You should have received a copy of the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25 ;; along with XEmacs; see the file COPYING. If not, write to the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26 ;; Free Software Foundation, 59 Temple Place - Suite 330,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27 ;; Boston, MA 02111-1307, USA.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29 ;;; Synched up with: Not in FSF.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31 ;;; Commentary:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33 ;; Byte compile the .EL files necessary to dump out xemacs.
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
34 ;; Also update the auto-autoloads.el files.
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
35
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36 ;; Use this file like this:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38 ;; temacs -batch -l ../lisp/update-elc.el $lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40 ;; where $lisp comes from the Makefile. .elc files listed in $lisp will
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41 ;; cause the corresponding .el file to be compiled. .el files listed in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42 ;; $lisp will be ignored.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44 ;; (the idea here is that you can bootstrap if your .ELC files
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45 ;; are missing or badly out-of-date)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
46
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
47 ;; See also update-elc-2.el
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
48
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
49 ;;; Code:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
50
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
51 ;; Help debug problems.
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
52 (setq stack-trace-on-error t
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
53 load-always-display-messages t)
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
54
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
55 (defvar processed nil)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
56 (defvar update-elc-files-to-compile nil)
528
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
57 (defvar need-to-rebuild-autoloads nil)
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
58 (defvar need-to-rebuild-mule-autoloads nil)
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
59 (defvar need-to-recompile-autoloads nil)
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
60 (defvar need-to-recompile-mule-autoloads nil)
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
61 (defvar exe-target nil)
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
62 (defvar dump-target nil)
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
63 (defvar dump-target-out-of-date-wrt-dump-files nil)
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
64 ;(defvar dump-target-out-of-date-wrt-exe-target nil)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
65
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
66 ;(setq update-elc-files-to-compile
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
67 ; (delq nil
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
68 ; (mapcar (function
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
69 ; (lambda (x)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
70 ; (if (string-match "\.elc$" x)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
71 ; (let ((src (substring x 0 -1)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
72 ; (if (file-newer-than-file-p src x)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
73 ; (progn
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
74 ; (and (file-exists-p x)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
75 ; (null (file-writable-p x))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
76 ; (set-file-modes x (logior (file-modes x) 128)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
77 ; src))))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
78 ; ;; -batch gets filtered out.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
79 ; (nthcdr 3 command-line-args))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
80
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
81
3511
1ee424086c62 [xemacs-hg @ 2006-07-16 12:23:57 by aidan]
aidan
parents: 2548
diff changeset
82 (defvar build-directory (expand-file-name ".." invocation-directory))
1ee424086c62 [xemacs-hg @ 2006-07-16 12:23:57 by aidan]
aidan
parents: 2548
diff changeset
83
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
84 (defvar source-lisp (file-name-directory (expand-file-name
3511
1ee424086c62 [xemacs-hg @ 2006-07-16 12:23:57 by aidan]
aidan
parents: 2548
diff changeset
85 (nth 2 command-line-args))))
1ee424086c62 [xemacs-hg @ 2006-07-16 12:23:57 by aidan]
aidan
parents: 2548
diff changeset
86
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
87 (defvar source-lisp-mule (expand-file-name "mule" source-lisp))
3511
1ee424086c62 [xemacs-hg @ 2006-07-16 12:23:57 by aidan]
aidan
parents: 2548
diff changeset
88 (defvar source-directory (expand-file-name ".." source-lisp))
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
89 (defvar aa-lisp (expand-file-name "auto-autoloads.el" source-lisp))
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
90 (defvar aac-lisp (expand-file-name "auto-autoloads.elc" source-lisp))
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
91 (defvar aa-lisp-mule (expand-file-name "auto-autoloads.el" source-lisp-mule))
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
92 (defvar aac-lisp-mule (expand-file-name "auto-autoloads.elc" source-lisp-mule))
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
93
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
94 (setq load-path (list source-lisp))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
95
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
96 (load "find-paths.el")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
97 (load "packages.el")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
98 (load "setup-paths.el")
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
99
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
100 ;; Lisp files loaded in order to byte compile anything. If any are out of
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
101 ;; date, we need to load them as .el's, byte compile them, and reload as
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
102 ;; .elc's.
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
103 (defvar lisp-files-needed-for-byte-compilation
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
104 '("bytecomp"
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
105 "byte-optimize"))
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
106
1263
bada4b0bce3a [xemacs-hg @ 2003-02-06 14:37:51 by stephent]
stephent
parents: 1261
diff changeset
107 ;; Lisp files not in `lisp-files-needed-for-byte-compilation' that need
bada4b0bce3a [xemacs-hg @ 2003-02-06 14:37:51 by stephent]
stephent
parents: 1261
diff changeset
108 ;; early byte compilation. These are files loaded by update-elc.el in
bada4b0bce3a [xemacs-hg @ 2003-02-06 14:37:51 by stephent]
stephent
parents: 1261
diff changeset
109 ;; order to do the compilation of all the rest of the files.
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
110 (defvar lisp-files-needing-early-byte-compilation
2548
c4c8a36043be [xemacs-hg @ 2005-02-03 07:11:19 by ben]
ben
parents: 2456
diff changeset
111 '("easy-mmode"
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
112 "autoload"
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
113 "shadow"
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
114 "cl-macs"))
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
115
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
116 (defvar unbytecompiled-lisp-files
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
117 '("paths.el"
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
118 "dumped-lisp.el"
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
119 "dumped-pkg-lisp.el"
4246
9fec7fedbf1b [xemacs-hg @ 2007-10-31 11:21:02 by aidan]
aidan
parents: 3511
diff changeset
120 "raw-process.el")
2367
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1330
diff changeset
121 "Lisp files that should not be byte compiled.
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1330
diff changeset
122 Files in `additional-dump-dependencies' do not need to be listed here.")
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1330
diff changeset
123
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1330
diff changeset
124 (defvar additional-dump-dependencies
4690
257b468bf2ca Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents: 4246
diff changeset
125 (nconc '("loadup.el"
257b468bf2ca Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents: 4246
diff changeset
126 "loadup-el.el"
257b468bf2ca Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents: 4246
diff changeset
127 "update-elc.el")
257b468bf2ca Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents: 4246
diff changeset
128 (if (featurep 'mule)
257b468bf2ca Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents: 4246
diff changeset
129 '("mule/make-coding-system")))
2367
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1330
diff changeset
130 "Lisp files that are not dumped but which the dump depends on.
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1330
diff changeset
131 If any of these files are changed, we need to redump.")
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
132
1298
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
133 (defvar lisp-files-ignored-when-checking-for-autoload-updating
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
134 '("custom-load.el"
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
135 "auto-autoloads.el")
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
136 "Lisp files that should not trigger auto-autoloads rebuilding.")
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
137
528
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
138 (defun update-elc-chop-extension (file)
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
139 (if (string-match "\\.elc?$" file)
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
140 (substring file 0 (match-beginning 0))
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
141 file))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
142
528
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
143 ;; we used to call packages-list-autoloads here, but it's false generality.
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
144 ;; we need to handle each autoload file differently and there are only
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
145 ;; two of them.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
146
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
147 (let (preloaded-file-list site-load-packages files-to-process)
528
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
148
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
149 (load (expand-file-name "dumped-lisp.el" source-lisp))
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
150
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
151 ;; two setups here:
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
152 ;; (1) temacs.exe is undumped, dumped into xemacs.exe. Happens with
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
153 ;; unexec, but also with pdump under MS Windows native, since
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
154 ;; the dumped data is stored as a resource in the xemacs.exe
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
155 ;; executable.
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
156 ;; (2) xemacs.exe is dumped or undumped. Running `xemacs -nd' gets
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
157 ;; you the equivalent of `temacs'. Dumping creates a file
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
158 ;; `xemacs.dmp'.
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
159
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
160 (cond ((eq system-type 'windows-nt)
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
161 (setq exe-target "src/temacs.exe"
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
162 dump-target "src/xemacs.exe"))
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
163 ;; #### need better ways of getting config params
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
164 ((not (memq 'pdump (emacs-run-status)))
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
165 (setq exe-target "src/temacs"
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
166 dump-target "src/xemacs"))
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
167 (t
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
168 (setq exe-target "src/xemacs"
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
169 dump-target "src/xemacs.dmp")))
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
170
3511
1ee424086c62 [xemacs-hg @ 2006-07-16 12:23:57 by aidan]
aidan
parents: 2548
diff changeset
171 (setq exe-target (expand-file-name exe-target build-directory))
1ee424086c62 [xemacs-hg @ 2006-07-16 12:23:57 by aidan]
aidan
parents: 2548
diff changeset
172 (setq dump-target (expand-file-name dump-target build-directory))
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
173
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
174 ;; Not currently used.
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
175 ; (setq dump-target-out-of-date-wrt-exe-target
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
176 ; (cond ((not dump-target) t)
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
177 ; (temacs-exe (file-newer-than-file-p temacs-exe dump-target))
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
178 ; ((not data-file) t)
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
179 ; (t (file-newer-than-file-p dump-target data-file))))
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
180 ; (setq dump-target-exists (or (and temacs-exe dump-target)
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
181 ; (and data-file dump-target))))
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
182
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
183 ;; Path setup
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
184 (let ((package-preloaded-file-list
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
185 (packages-collect-package-dumped-lisps late-package-load-path)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
186
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
187 (setq preloaded-file-list
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
188 (append package-preloaded-file-list
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
189 preloaded-file-list
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
190 packages-hardcoded-lisp)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
191
3511
1ee424086c62 [xemacs-hg @ 2006-07-16 12:23:57 by aidan]
aidan
parents: 2548
diff changeset
192 (load (expand-file-name "site-packages" source-directory) t t)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
193 (setq preloaded-file-list
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
194 (append packages-hardcoded-lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
195 preloaded-file-list
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
196 site-load-packages))
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
197 ;; bytecomp, byte-optimize, autoload, etc. are mentioned specially
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
198 ;; in the lisp-files-need* variables.
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
199 (setq files-to-process (append lisp-files-needed-for-byte-compilation
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
200 lisp-files-needing-early-byte-compilation
2367
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1330
diff changeset
201 additional-dump-dependencies
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
202 preloaded-file-list))
528
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
203 (while files-to-process
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
204 (let* ((arg (car files-to-process))
2367
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1330
diff changeset
205 (arg-is-dump-dependency
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1330
diff changeset
206 (or (member arg preloaded-file-list)
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1330
diff changeset
207 (member arg additional-dump-dependencies)))
528
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
208 (arg-sans-extension (update-elc-chop-extension arg))
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
209 (full-arg (locate-library arg-sans-extension))
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
210 (full-arg-sans-extension
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
211 (if (null full-arg)
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
212 (progn
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
213 (print (format "Error: Library file %s not found" arg))
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
214 (backtrace)
528
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
215 ;; Uncomment in case of trouble
2456
f4e405a9d18d [xemacs-hg @ 2004-12-27 12:25:14 by michaels]
michaels
parents: 2367
diff changeset
216 ;;(print (format "late-package-hierarchies: %S" late-package-hierarchies))
528
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
217 ;;(print (format "guessed-roots: %S"
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
218 ;; (paths-find-emacs-roots
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
219 ;; invocation-directory invocation-name)))
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
220 (kill-emacs))
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
221 (update-elc-chop-extension full-arg)))
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
222 (full-arg-el (concat full-arg-sans-extension ".el"))
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
223 (full-arg-elc (concat full-arg-sans-extension ".elc"))
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
224 (full-arg-dir (file-name-directory full-arg-el)))
528
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
225
2367
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1330
diff changeset
226 ; (print full-arg-el)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
227
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
228 ;; now check if .el or .elc is newer than the dumped exe.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
229 ;; if so, need to redump.
2367
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1330
diff changeset
230 (when (and dump-target arg-is-dump-dependency
1298
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
231 ;; no need to check for existence of either of the files
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
232 ;; because of the definition of file-newer-than-file-p.
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
233 (or (file-newer-than-file-p full-arg-el dump-target)
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
234 (file-newer-than-file-p full-arg-elc dump-target)))
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
235 (setq dump-target-out-of-date-wrt-dump-files t))
528
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
236
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
237 (if (and (not (member (file-name-nondirectory arg)
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
238 unbytecompiled-lisp-files))
2367
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1330
diff changeset
239 (not (member (file-name-nondirectory arg)
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 1330
diff changeset
240 additional-dump-dependencies))
528
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
241 (not (member full-arg-el processed))
1298
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
242 ;; no need to check for existence of either of the files
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
243 ;; because of the definition of file-newer-than-file-p.
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
244 (file-newer-than-file-p full-arg-el full-arg-elc))
528
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
245 (setq processed (cons full-arg-el processed)))
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
246
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
247 (setq files-to-process (cdr files-to-process))))
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
248
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
249 ;; Check if we need to rebuild the auto-autoloads.el files -- that is,
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
250 ;; if ANY .el files have changed.
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
251 (let ((dirs-to-check (list source-lisp source-lisp-mule)))
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
252 (while dirs-to-check
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
253 (let* ((dir (car dirs-to-check))
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
254 (full-dir (expand-file-name dir))
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
255 (all-files-in-dir (directory-files full-dir t "\\.el$" nil t))
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
256 (autoload-file
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
257 (expand-file-name "auto-autoloads.el" full-dir))
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
258 (autoload-is-mule (equal dir source-lisp-mule)))
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
259 (while all-files-in-dir
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
260 (let* ((full-arg (car all-files-in-dir)))
1298
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
261 ;; custom-load.el always gets regenerated so don't let that
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
262 ;; trigger us.
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
263 (when (and (not
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
264 (member
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
265 (file-name-nondirectory full-arg)
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
266 lisp-files-ignored-when-checking-for-autoload-updating
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
267 ))
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
268 (file-newer-than-file-p full-arg autoload-file))
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
269 (if autoload-is-mule
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
270 (setq need-to-rebuild-mule-autoloads t)
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
271 (setq need-to-rebuild-autoloads t))))
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
272 (setq all-files-in-dir (cdr all-files-in-dir))))
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
273 (setq dirs-to-check (cdr dirs-to-check))))
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
274
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
275 (if dump-target-out-of-date-wrt-dump-files
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
276 (condition-case nil
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
277 (write-region-internal
3511
1ee424086c62 [xemacs-hg @ 2006-07-16 12:23:57 by aidan]
aidan
parents: 2548
diff changeset
278 "foo" nil (expand-file-name "src/NEEDTODUMP" build-directory))
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
279 (file-error nil)))
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
280
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
281 )
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
282
528
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
283 (when (or need-to-rebuild-autoloads
1298
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
284 ;; no real need for the following check either, because if the file
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
285 ;; doesn't exist, need-to-rebuild-autoloads gets set above. but
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
286 ;; it's only one call, so it won't slow things down much and it keeps
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
287 ;; the logic cleaner.
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
288 (not (file-exists-p aa-lisp))
1298
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
289 ;; no need to check for file-exists of .elc due to definition
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
290 ;; of file-newer-than-file-p
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
291 (file-newer-than-file-p aa-lisp aac-lisp))
528
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
292 (setq need-to-recompile-autoloads t))
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
293
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
294 (when (or need-to-rebuild-mule-autoloads
1298
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
295 ;; not necessary but ... see comment above.
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
296 (not (file-exists-p aa-lisp-mule))
1298
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
297 ;; no need to check for file-exists of .elc due to definition
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
298 ;; of file-newer-than-file-p
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
299 (file-newer-than-file-p aa-lisp-mule aac-lisp-mule))
528
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
300 (setq need-to-recompile-mule-autoloads t))
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
301
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
302 (when (not (featurep 'mule))
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
303 ;; sorry charlie.
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
304 (setq need-to-rebuild-mule-autoloads nil
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
305 need-to-recompile-mule-autoloads nil))
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
306
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
307 (setq update-elc-files-to-compile (append update-elc-files-to-compile
622
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 528
diff changeset
308 (nreverse processed)))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
309
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
310 ;(print update-elc-files-to-compile)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
311
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
312 (let ((do-autoload-commands
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
313 (append
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
314 (if (or need-to-rebuild-autoloads
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
315 need-to-rebuild-mule-autoloads)
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
316 (list "-l" "autoload"))
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
317 (if need-to-rebuild-autoloads
2548
c4c8a36043be [xemacs-hg @ 2005-02-03 07:11:19 by ben]
ben
parents: 2456
diff changeset
318 (list "-f" "batch-update-directory-autoloads"
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
319 "auto" source-lisp))
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
320 (if need-to-rebuild-mule-autoloads
2548
c4c8a36043be [xemacs-hg @ 2005-02-03 07:11:19 by ben]
ben
parents: 2456
diff changeset
321 (list "-f" "batch-update-directory-autoloads"
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
322 "mule" source-lisp-mule))
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
323 (if need-to-recompile-autoloads
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
324 (list "-f" "batch-byte-compile-one-file"
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
325 aa-lisp))
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
326 (if need-to-recompile-mule-autoloads
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
327 (list "-f" "batch-byte-compile-one-file"
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
328 aa-lisp-mule)))))
1298
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
329 (condition-case nil
3511
1ee424086c62 [xemacs-hg @ 2006-07-16 12:23:57 by aidan]
aidan
parents: 2548
diff changeset
330 (delete-file (expand-file-name "src/REBUILD_AUTOLOADS" build-directory))
1298
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
331 (file-error nil))
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
332 (cond ((and (not update-elc-files-to-compile)
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
333 (not need-to-rebuild-autoloads)
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
334 (not need-to-rebuild-mule-autoloads)
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
335 (not need-to-recompile-autoloads)
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
336 (not need-to-recompile-mule-autoloads))
1315
70921960b980 [xemacs-hg @ 2003-02-20 08:19:28 by ben]
ben
parents: 1303
diff changeset
337 ;; (1) Nothing to do at all.
70921960b980 [xemacs-hg @ 2003-02-20 08:19:28 by ben]
ben
parents: 1303
diff changeset
338 )
1298
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
339 ((not update-elc-files-to-compile)
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
340 ;; (2) We have no files to byte-compile, but we do need to
1298
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
341 ;; regenerate and compile the auto-autoloads file, so signal
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
342 ;; update-elc-2 to do it. This is much faster than loading
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
343 ;; all the .el's and doing it here. (We only need to rebuild
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
344 ;; the autoloads here when we have files to compile, since
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
345 ;; they may depend on the updated autoloads.)
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
346 (condition-case nil
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
347 (write-region-internal
3511
1ee424086c62 [xemacs-hg @ 2006-07-16 12:23:57 by aidan]
aidan
parents: 2548
diff changeset
348 "foo" nil (expand-file-name "src/REBUILD_AUTOLOADS" build-directory))
1298
1b4bc72f433e [xemacs-hg @ 2003-02-14 12:05:06 by ben]
ben
parents: 1275
diff changeset
349 (file-error nil))
1315
70921960b980 [xemacs-hg @ 2003-02-20 08:19:28 by ben]
ben
parents: 1303
diff changeset
350 )
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
351 (t
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
352 (let ((bc-bootstrap
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
353 (mapcar #'(lambda (arg)
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
354 (concat (update-elc-chop-extension
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
355 (locate-library arg)) ".el"))
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
356 lisp-files-needed-for-byte-compilation))
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
357 (bootstrap-other
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
358 (mapcar #'(lambda (arg)
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
359 (concat (update-elc-chop-extension
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
360 (locate-library arg)) ".el"))
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
361 lisp-files-needing-early-byte-compilation)))
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
362 (setq inhibit-autoloads t)
528
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
363 ;; if bytecomp or byte-optimize need recompiling, then load
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
364 ;; the .el version of them first, recompile them, and reload
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
365 ;; the .elc versions to recompile everything else (so we won't
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
366 ;; be waiting until the cows come home). we need to set
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
367 ;; load-ignore-elc-files because byte-optimize gets autoloaded
ef4d2466a29c [xemacs-hg @ 2001-05-10 09:59:45 by ben]
ben
parents: 510
diff changeset
368 ;; from bytecomp.
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
369 (let ((recompile-bc-bootstrap
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
370 (apply #'nconc
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
371 (mapcar
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
372 #'(lambda (arg)
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
373 (when (member arg update-elc-files-to-compile)
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
374 (append '("-f" "batch-byte-compile-one-file")
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
375 (list arg))))
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
376 bc-bootstrap)))
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
377 (recompile-bootstrap-other
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
378 (apply #'nconc
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
379 (mapcar
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
380 #'(lambda (arg)
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
381 (when (member arg update-elc-files-to-compile)
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
382 (append '("-f" "batch-byte-compile-one-file")
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
383 (list arg))))
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
384 bootstrap-other))))
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
385 (mapc-internal
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
386 #'(lambda (arg)
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
387 (setq update-elc-files-to-compile
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
388 (delete arg update-elc-files-to-compile)))
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
389 (append bc-bootstrap bootstrap-other))
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
390 (setq command-line-args
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
391 (append
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
392 '("-l" "loadup-el.el" "run-temacs"
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
393 "-batch" "-no-packages" "-no-autoloads"
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
394 "-eval" "(setq stack-trace-on-error t)"
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
395 "-eval" "(setq load-always-display-messages t)")
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
396 (when recompile-bc-bootstrap
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
397 (append
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
398 '("-eval" "(setq load-ignore-elc-files t)"
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
399 "-l" "bytecomp")
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
400 recompile-bc-bootstrap
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
401 '("-eval" "(setq load-ignore-elc-files nil)")))
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
402 '("-l" "bytecomp")
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
403 ;; likewise, recompile autoload.el etc. if out-of-date.
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
404 recompile-bootstrap-other
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
405 ;; then generate autoloads for lisp and maybe lisp/mule.
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
406 do-autoload-commands
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
407 ;; now load the autoloads and compile alles anderes.
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
408 '("-eval" "(setq inhibit-autoloads nil)"
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
409 "-f" "startup-load-autoloads"
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
410 "-f" "batch-byte-compile")
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
411 update-elc-files-to-compile
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
412 ))))
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
413
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
414 ;;(print command-line-args)
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1232
diff changeset
415 (load "loadup-el.el"))))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
416
1303
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1298
diff changeset
417 (kill-emacs)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
418
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
419 ;;; update-elc.el ends here