(defun recompile-dir (dir)
"recompile all files in a directory which are newer than their corresponding .elc files"
(interactive (list (read-file-name "Directory: ")))
(let ((files (directory-files dir t "^[^.]+\\.el$" nil)))
(while files
(let ((srcfile (car files))
(dstfile (concat (car files) "c")))
(if (or (not (file-exists-p dstfile))
(file-newer-than-file-p srcfile dstfile))
(progn
(byte-compile-file srcfile)
(message (concat "Compiling " srcfile)))
(message (concat dstfile " exists and is newer" ))))
(setq files (cdr files)))))
(defun recompile-lisp-dir ()
"recompile all files in the lisp directory which are newer than their corresponding .elc files"
(interactive)
(recompile-dir emacs-lisp-dir)
)
(defun update-autoloads-for-lisp-dir ()
"generate autoloads.el in emacs-init-dir for all elips files in x-emacs-lisp-dir"
(interactive)
(require 'autoload)
(let ((generated-autoload-file (concat emacs-init-dir "autoloads.el")))
(if (file-exists-p generated-autoload-file)
(delete-file generated-autoload-file))
(cond ((fboundp 'update-autoloads-from-directory)
(update-autoloads-from-directory emacs-lisp-dir))
((fboundp 'update-autoloads-from-directories)
(update-autoloads-from-directories emacs-lisp-dir))
((fboundp 'update-directory-autoloads)
(update-directory-autoloads emacs-lisp-dir emacs-mylisp-dir)))))
(provide 'autoload-make)