changeset 105484:fe4228529c23

(autoload-excludes): New variable. (autoload-generate-file-autoloads): Skip files in autoload-excludes. (batch-update-autoloads): Process a string value of autoload-excludes, set during the build process.
author Glenn Morris <rgm@gnu.org>
date Tue, 06 Oct 2009 03:12:32 +0000
parents ada588cf3ad7
children 73071baff669
files lisp/emacs-lisp/autoload.el
diffstat 1 files changed, 18 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/emacs-lisp/autoload.el	Tue Oct 06 03:09:25 2009 +0000
+++ b/lisp/emacs-lisp/autoload.el	Tue Oct 06 03:12:32 2009 +0000
@@ -70,6 +70,9 @@
 read and an autoload made for it.  If there is further text on the line,
 that text will be copied verbatim to `generated-autoload-file'.")
 
+(defvar autoload-excludes nil
+  "If non-nil, list of absolute file names not to scan for autoloads.")
+
 (defconst generate-autoload-section-header "\f\n;;;### "
   "String that marks the form at the start of a new file's autoload section.")
 
@@ -373,7 +376,8 @@
           relfile
           ;; nil until we found a cookie.
           output-start)
-
+      (if (member absfile autoload-excludes)
+      	  (message "Generating autoloads for %s...skipped" file)
       (with-current-buffer (or visited
                                ;; It is faster to avoid visiting the file.
                                (autoload-find-file file))
@@ -482,7 +486,7 @@
           (message "Generating autoloads for %s...done" file))
         (or visited
             ;; We created this buffer, so we should kill it.
-            (kill-buffer (current-buffer))))
+            (kill-buffer (current-buffer)))))
       ;; If the entries were added to some other buffer, then the file
       ;; doesn't add entries to OUTFILE.
       (or (not output-start) otherbuf))))
@@ -679,6 +683,18 @@
 (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))))
   (let ((args command-line-args-left))
     (setq command-line-args-left nil)
     (apply 'update-directory-autoloads args)))