I tried the following at the Cygwin shell:
epich@laptop02 ~/sw/cedet/lisp/cedet $ emacs -batch --no-site-file --eval '(setq debug-on-error t)' -l "../../cedet-remove-builtin.el" -L . --eval '(progn (require (quote cedet-compat)) (require (quote mode-local)))' -L ../eieio/ -L ./ -L ./ --eval '(progn (setq generated-autoload-file "/home/epich/sw/cedet/lisp/cedet/loaddefs.el") (message "DEBUG: expanded file name is %s source-directory is %s" (expand-file-name "/home/epich/sw/cedet/lisp/cedet") source-directory))' -f batch-update-autoloads /home/epich/sw/cedet/lisp/cedet
DEBUG: expanded file name is c:/home/epich/sw/cedet/lisp/cedet source-directory is d:/devel/emacs/release/emacs24/emacs-24.2/
Debugger entered--Lisp error: (file-error "Opening output file" "no such file or directory" "d:/home/epich/sw/cedet/lisp/cedet/loaddefs.el")
write-region(";;; loaddefs.el --- automatically extracted autoloads\n;;\n;;; Code:\n\n\f\n(provide 'loaddefs)\n;; Local Variables:\n;; version-control: never\n;; no-byte-compile: t\n;; no-update-autoloads: t\n;; coding: utf-8\n;; End:\n;;; loaddefs.el ends here\n" nil "d:/home/epich/sw/cedet/lisp/cedet/loaddefs.el")
autoload-ensure-default-file("d:/home/epich/sw/cedet/lisp/cedet/loaddefs.el")
autoload-find-generated-file()
update-directory-autoloads("/home/epich/sw/cedet/lisp/cedet")
apply(update-directory-autoloads "/home/epich/sw/cedet/lisp/cedet")
batch-update-autoloads()
command-line-1(("--eval" "(setq debug-on-error t)" "-l" "../../cedet-remove-builtin.el" "-L" "." "--eval" "(progn (require (quote cedet-compat)) (require (quote mode-local)))" "-L" "../eieio/" "-L" "./" "-L" "./" "--eval" "(progn (setq generated-autoload-file \"/home/epich/sw/cedet/lisp/cedet/loaddefs.el\") (message \"DEBUG: expanded file name is %s source-directory is %s\" (expand-file-name \"/home/epich/sw/cedet/lisp/cedet\") source-directory))" "-f" "batch-update-autoloads" "/home/epich/sw/cedet/lisp/cedet"))
command-line()
normal-top-level()
This shows c: and d: prefixes in the same message evaluation.
I haven't mentioned yet that I don't have a D drive mounted at all.
I tried C-h v source-directory in a running Emacs and found:
source-directory is a variable defined in `lread.c'.
Its value is "d:/devel/emacs/release/emacs24/emacs-24.2/"
Documentation:
Directory in which Emacs sources were found when Emacs was built.
You cannot count on them to still be there!
I did not find this /devel/emacs/release/emacs24/emacs-24.2/ on my system, nor is it the kind of path I would create. My emacs is at C:\Users\epich\sw\emacs-24.2 which appears in Cygwin at ~/sw/emacs-24.2 because ~/sw symlinks (MS console command mklink /d) to /cygdrive/c/Users/epich/sw .
I actually launch Emacs from the Quick Launch on Windows 7, so the C-h v evaluation has Cygwin out of the equation. I merely use Cygwin to byte compile.