* lisp/Makefile.in (autoloads): Do not use abs_lisp.
authorGlenn Morris <rgm@gnu.org>
Wed, 30 Oct 2013 20:27:35 +0000 (16:27 -0400)
committerGlenn Morris <rgm@gnu.org>
Wed, 30 Oct 2013 20:27:35 +0000 (16:27 -0400)
This should stop recent weirdness, eg:
http://lists.gnu.org/archive/html/emacs-diffs/2013-10/msg00381.html

* lisp/emacs-lisp/autoload.el: Comment.

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

index 070e2cf..ef07b82 100644 (file)
@@ -1,5 +1,7 @@
 2013-10-30  Glenn Morris  <rgm@gnu.org>
 
+       * Makefile.in (autoloads): Do not use abs_lisp.
+
        * emacs-lisp/autoload.el (autoload-generate-file-autoloads):
        `newline' does not respect `standard-output', so use `princ'.
 
index ffd31ef..ff9439d 100644 (file)
@@ -178,13 +178,15 @@ finder-data: doit
        $(emacs) -l finder --eval '(setq generated-finder-keywords-file (unmsys--file-name "$(abs_lisp)/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_lisp so that Emacs does not
+# get confused when it compares file-names for equality.
 autoloads: $(LOADDEFS) doit
        cd $(lisp) && chmod +w $(AUTOGEN_VCS)
        cd $(lisp) && $(setwins_almost); \
        echo Directories: $$wins; \
        $(emacs) -l autoload \
            --eval '(setq autoload-builtin-package-versions t)' \
-           --eval '(setq generated-autoload-file (unmsys--file-name "$(abs_lisp)/loaddefs.el"))' \
+           --eval '(setq generated-autoload-file (expand-file-name (unmsys--file-name "$(lisp)/loaddefs.el")))' \
            -f batch-update-autoloads $$wins
 
 # This is required by the bootstrap-emacs target in ../src/Makefile, so
index 099f06d..f94f74a 100644 (file)
@@ -528,6 +528,9 @@ Return non-nil if and only if FILE adds no autoloads to OUTFILE
                (if (stringp generated-autoload-load-name)
                    generated-autoload-load-name
                  (autoload-file-load-name absfile)))
+          ;; FIXME? Comparing file-names for equality with just equal
+          ;; is fragile, eg if one has an automounter prefix and one
+          ;; does not, but both refer to the same physical file.
           (when (and outfile
                      (not
                      (if (memq system-type '(ms-dos windows-nt))