はじめに
ディレクトリ内のEmacs Lispファイルを一発でバイトコンパイルするには,
Emacsから下記を実行すれば良い.
C-u 0 M-x byte-recompile-directory
しかし, 再帰的には適用されないため,
第2階層以降のディレクトリ内にあるファイルはバイトコンパイルできない.
対応策
そこで, Emacs内からでなく, 下記のようにコマンドラインからバイトコンパイルできることを利用する.
$ emacs -batch -f batch-byte-compile /path/to/*.el
したがって, 下記のようにすれば, ディレクトリ内のファイルを再帰的にバイトコンパイルできる.
$ find /path/to -name '*.el' | xargs emacs -batch -f batch-byte-compile
なお, Zshでは簡潔に, 下記でバイトコンパイルできる.
$ emacs -batch -f batch-byte-compile /path/to/**/*.el
参考