title: What is the job of autogen.sh when building a c++ package on Linux
body: <p>I saw a common pattern when installing a c/c++ package from source on Linux (Ubuntu 16.04):</p>
  
  <ol>
  <li>./autogen.sh</li>
  <li>./configure</li>
  <li>make</li>
  <li>make install</li>
  </ol>
  
  <p>I understand <code>make</code> and <code>make install</code>, and I guess <code>configure</code> creates a Makefile based on user preferences, but I don't see why <code>autogen.sh</code> is necessary. </p>
  
  <p>Does anyone know what it is there for?</p>