]> git.eshelyaron.com Git - emacs.git/commitdiff
Get rid of the AUTOGEN_VCS variable in lisp/Makefile
authorGlenn Morris <rgm@gnu.org>
Mon, 30 Jun 2014 18:26:34 +0000 (14:26 -0400)
committerGlenn Morris <rgm@gnu.org>
Mon, 30 Jun 2014 18:26:34 +0000 (14:26 -0400)
* lisp/emacs-lisp/autoload.el (autoload-ensure-writable): New variable.
(autoload-ensure-default-file): Maybe make existing output writable.

* lisp/Makefile.in (AUTOGEN_VCS): Remove.
(autoloads): Use autoload-ensure-writable rather than AUTOGEN_VCS.

lisp/ChangeLog
lisp/Makefile.in
lisp/emacs-lisp/autoload.el

index cbf8329d5837fcec7b09992772c4908b10d80583..877560e5f624becf0cafc6c6a4a378f837cd4aee 100644 (file)
@@ -1,3 +1,10 @@
+2014-06-30  Glenn Morris  <rgm@gnu.org>
+
+       * emacs-lisp/autoload.el (autoload-ensure-writable): New variable.
+       (autoload-ensure-default-file): Maybe make existing output writable.
+       * Makefile.in (AUTOGEN_VCS): Remove.
+       (autoloads): Use autoload-ensure-writable rather than AUTOGEN_VCS.
+
 2014-06-30  Fabián Ezequiel Gallina  <fgallina@gnu.org>
 
        * emacs-lisp/subr-x.el (string-reverse): Use `reverse'.
index 45a964b0d70931d0df85986c4086c2ed391a81cc..eba63666ddbe5a911194e0cd8f81034d0990a547 100644 (file)
@@ -70,17 +70,6 @@ AUTOGENEL = loaddefs.el \
        cedet/srecode/loaddefs.el \
        org/org-loaddefs.el
 
-# Versioned files that are the value of someone's `generated-autoload-file'.
-AUTOGEN_VCS = \
-       ps-print.el \
-       obsolete/tpu-edt.el \
-       mail/rmail.el \
-       dired.el \
-       ibuffer.el \
-       htmlfontify.el \
-       emacs-lisp/eieio.el \
-       textmodes/reftex.el
-
 # Value of max-lisp-eval-depth when compiling initially.
 # During bootstrapping the byte-compiler is run interpreted when compiling
 # itself, and uses more stack than usual.
@@ -182,7 +171,6 @@ finder-data:
          --eval '(setq generated-finder-keywords-file (unmsys--file-name "$(srcdir)/finder-inf.el"))' \
          -f finder-compile-keywords-make-dist $$wins
 
-# The chmod +w is to handle env var CVSREAD=1.
 # Use expand-file-name rather than $abs_scrdir so that Emacs does not
 # get confused when it compares file-names for equality.
 #
@@ -190,10 +178,10 @@ finder-data:
 # If you want to allow autoloads in such files, remove that,
 # and make this depend on leim.
 autoloads: $(LOADDEFS)
-       cd $(lisp) && chmod +w $(AUTOGEN_VCS)
        $(setwins_almost); \
        echo Directories: $$wins; \
        $(emacs) -l autoload \
+           --eval '(setq autoload-ensure-writable t)' \
            --eval '(setq autoload-builtin-package-versions t)' \
            --eval '(setq generated-autoload-file (expand-file-name (unmsys--file-name "$(srcdir)/loaddefs.el")))' \
            -f batch-update-autoloads $$wins
index 361e8fa7c6827f397ba8b2cd9197f606105dd15b..38956df66de4d2148ab3d7e3cfcba2657b7cd76a 100644 (file)
@@ -351,9 +351,26 @@ not be relied upon."
            ";;; " basename
            " ends here\n")))
 
+(defvar autoload-ensure-writable nil
+  "Non-nil means `autoload-ensure-default-file' makes existing file writable.")
+;; Just in case someone tries to get you to overwrite a file that you
+;; don't want to.
+;;;###autoload
+(put 'autoload-ensure-writable 'risky-local-variable t)
+
 (defun autoload-ensure-default-file (file)
-  "Make sure that the autoload file FILE exists and if not create it."
-  (unless (file-exists-p file)
+  "Make sure that the autoload file FILE exists, creating it if needed.
+If the file already exists and `autoload-ensure-writable' is non-nil,
+make it writable."
+  (if (file-exists-p file)
+      ;; Probably pointless, but replaces the old AUTOGEN_VCS in lisp/Makefile,
+      ;; which was designed to handle CVSREAD=1 and equivalent.
+      (and autoload-ensure-writable
+          (let ((modes (file-modes file)))
+            (if (zerop (logand modes #o0200))
+                ;; Ignore any errors here, and let subsequent attempts
+                ;; to write the file raise any real error.
+                (ignore-errors (set-file-modes file (logior modes #o0200))))))
     (write-region (autoload-rubric file) nil file))
   file)