changeset 105501:e3e540de3898

(batch-update-autoloads): Rather than having the list of preloaded files passed on the command-line, get it from src/Makefile.
author Glenn Morris <rgm@gnu.org>
date Wed, 07 Oct 2009 07:18:53 +0000
parents f4a201cb497c
children 7f17857bf0eb
files lisp/emacs-lisp/autoload.el
diffstat 1 files changed, 13 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/emacs-lisp/autoload.el	Wed Oct 07 05:37:05 2009 +0000
+++ b/lisp/emacs-lisp/autoload.el	Wed Oct 07 07:18:53 2009 +0000
@@ -683,18 +683,19 @@
 (defun batch-update-autoloads ()
   "Update loaddefs.el autoloads in batch mode.
 Calls `update-directory-autoloads' on the command line arguments."
-  ;; For use during the Emacs build process only.  We do the file-name
-  ;; expansion here rather than in lisp/Makefile in order to keep the
-  ;; shell command line short.  (Long lines are an issue on some systems.)
-  (if (stringp autoload-excludes)
-      (setq autoload-excludes
-	    (mapcar
-	     (lambda (file)
-	       (concat
-		(expand-file-name (file-name-sans-extension file)
-				  (file-name-directory generated-autoload-file))
-		".el"))
-	     (split-string autoload-excludes))))
+  ;; For use during the Emacs build process only.
+  (unless autoload-excludes
+    (let* ((ldir (file-name-directory generated-autoload-file))
+	   (mfile (expand-file-name "../src/Makefile" ldir))
+	   lim)
+      (when (file-readable-p mfile)
+	(with-temp-buffer
+	  (insert-file-contents mfile)
+	  (when (re-search-forward "^lisp= ")
+	    (setq lim (line-end-position))
+	    (while (re-search-forward "\\${lispsource}\\([^ ]*\\)\\.elc?" lim t)
+	      (push (concat (expand-file-name (match-string 1) ldir) ".el")
+		    autoload-excludes)))))))
   (let ((args command-line-args-left))
     (setq command-line-args-left nil)
     (apply 'update-directory-autoloads args)))