What is the job of autogen.sh when building a c++ package on Linux : <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>
