title: How do I automatically (re)compile ELPA packages?
body: <p>I'm now installing as much as I can through MELPA and Marmalade, and I manage my ~/.emacs.d using git. However, I have git ignore *.elc files.</p>
  
  <p>This means that when I install a package on one system and then start using another system, <code>git pull</code> only gives me the *.el files. Using these files is often slower than using *.elc.</p>
  
  <p>I tried adding the following to ~/.emacs.d/init.el:</p>
  
  <pre><code>;; load the packages we've installed. Note that package-install
  ;; byte-compiles the packages, but .elc is ignored by git so we force recompilation here
  (byte-recompile-directory (expand-file-name "~/.emacs.d/elpa") 0)
  (package-initialize)
  </code></pre>
  
  <p>Unfortunately, this isn't equivalent to the compilation done by package.el. For example, if I install emacs-eclim, package.el doesn't compile emacs-eclim/company-emacs-eclim.el, and I get the following error:</p>
  
  <pre><code>Leaving directory `/home/wilfred/.emacs.d/elpa'
  
  Compiling file /home/wilfred/.emacs.d/elpa/emacs-eclim-20130310.1237/company-emacs-eclim.el at Mon Mar 11 15:40:01 2013
  Entering directory `/home/wilfred/.emacs.d/elpa/emacs-eclim-20130310.1237/'
  company-emacs-eclim.el:35:1:Error: Cannot open load file: eclim
  Warning: reference to free variable `multiple-cursors-mode'
  Warning: reference to free variable `mc--read-char'
  Warning: assignment to free variable `mc--read-char'
  Warning: reference to free variable `multiple-cursors-mode'
  Warning: reference to free variable `mc--read-quoted-char'
  Warning: assignment to free variable `mc--read-quoted-char'
  Warning: reference to free variable `rectangular-region-mode'
  Warning: reference to free variable `rectangular-region-mode'
  </code></pre>
  
  <p>How do I make Emacs byte-compile only the same files as package.el would?</p>