<div dir="ltr">You gave a very good history lesson about the need and reasons for autotools.<div><br><div>The thing is, many of the software written now, is not intended to run on HP-UX framework. I&#39;m not a Unix expert, but maybe modern unices are more POSIX compliant than in the past.</div>
<div><br></div><div>So I think developers prefer to write a more strictly POSIX compliant application, and to need a simpler building process and have a single set of source files, than to use non-portable functions and to be forced to use autotools.</div>
<div><br></div><div>For example, I&#39;d rather implement hton* myself, then checking for this function&#39;s existence with autotools.</div><div><br></div><div>A good example for such a project is <a href="http://re2.googlecode.com">http://re2.googlecode.com</a> It uses plain makefile, supports a few unices, and is fairly complex.<br>
<br><div class="gmail_quote">On Mon, Jan 10, 2011 at 3:09 PM, Nadav Har&#39;El <span dir="ltr">&lt;<a href="mailto:nyh@math.technion.ac.il">nyh@math.technion.ac.il</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
On Mon, Jan 10, 2011, Shlomi Fish wrote about &quot;Re: Die GNU autotools&quot;:<br>
<div class="im">&gt; On Monday 10 Jan 2011 12:49:25 Ilya A. Volynets-Evenbakh wrote:<br>
</div><div class="im">&gt; &gt; My feelings too. A while ago I got so tired of autotools that I even<br>
&gt; &gt; started working on my own build system intended as a semi-drop-in<br>
&gt; &gt; replacement. It&#39;s purely make-based. If interested, take a look at<br>
&gt; &gt; the sources <a href="http://sources.total-knowledge.com/gitweb/?p=adon-banai.git" target="_blank">http://sources.total-knowledge.com/gitweb/?p=adon-banai.git</a><br>
&gt; &gt;<br>
&gt;<br>
&gt; Well, after a small experimentation with SCons ( <a href="http://www.scons.org/" target="_blank">http://www.scons.org/</a> ) which<br>
&gt; I didn&#39;t really like (but is still better than GNU Autohell), I&#39;ve finally<br>
&gt; settled on CMake - <a href="http://www.cmake.org/" target="_blank">http://www.cmake.org/</a> - which is awesome in almost every<br>
<br>
</div>It saddens me that people bundle Autoconf and Automake under one name<br>
&quot;autotools&quot;, because it causes people to miss that Autoconf *is* the best<br>
thing since sliced bread, while the rest of them are, well, not.<br>
<br>
To appreciate just how great autoconf is, you have to remember what transpired<br>
before it was invented in 1991.<br>
<br>
In the 80s, if you had a C program which was to run on the many variants of<br>
Unix that existed then, you&#39;d normally write a complex Makefile with all<br>
sorts of parameters, and before a user could compile your program, he would<br>
need to edit this Makefile, and turn on or off various flags, fill in locations<br>
of various programs, and so on. This was extremely annoying so two solutions<br>
were invented: Larry Wall (of Perl fame) invented &quot;Metaconfig&quot; which would<br>
*ask* the user questions instead of asking him to edit a Makefile - this was<br>
somewhat easier, but equally annoying and time-consuming. The X-Windows people<br>
invented &quot;imake&quot;, where the user would basically answer all possible questions<br>
once (and put them in a system-global config file), and when the user runs<br>
&quot;xmkmf&quot; a Makefile is created from an &quot;IMakefile&quot; using these defaults.<br>
Imake was also not a silver bullet, because it made it impossible for new<br>
projects to ask new questions beyond the &quot;usual&quot; ones that were already<br>
answered when X11 was installed.<br>
<br>
Then (1991) came autoconf, and solved all these problems. It wouldn&#39;t ask<br>
you silly questions that it could figure out automatically (if some library<br>
is available, were is some binary, is some feature of the C compiler available,<br>
etc.), and every program could define the specific questions it needed<br>
answered, using basic building blocks that autoconf made available. Autoconf<br>
was so good, and so much better than anything that was available before, that<br>
pretty soon *every* free software came with a &quot;configure&quot; script.<br>
<br>
Fast forward 20 years, and autoconf is just as good as it used to be, but<br>
most people are starting to forget why it was needed, and only remember its<br>
quirkiness, like the fact it uses the bizarre &quot;m4&quot; as its base.<br>
One reason why people forget how good autoconf is, is that they hardly see<br>
different variants of Unix, and the differences between Linux distributions<br>
are typically smaller. Another reason for forgetting autoconf&#39;s greatness is<br>
that &quot;normal&quot; people don&#39;t compile any more! Most Linux users get precompiled<br>
binaries from their distributions, and it is the distribution&#39;s packagers<br>
which do the compilation. Finally, these packagers (who do the compilation)<br>
don&#39;t really care if the source code used autoconf, or a hand-tweaked Makefile,<br>
because they anyway *patch* the source code with all sort of distribution-<br>
specific modifications, so they could care less about *patching* the Makefile.<br>
This state of affairs is, in my opinion, sad.<br>
<br>
Once you forget why autoconf is important, it&#39;s easy to start believing that<br>
all sorts of unrelated tools could somehow replace it. Things like Cmake<br>
and Adon-Banai can hardly be considered replacements to Autoconf - perhaps<br>
they are better &quot;make&quot;, perhaps they are &quot;imake done again&quot;, but not<br>
&quot;better than autoconf&quot;.<br>
(note: since I never actually used Cmake or Adon-Banai, I may be missing<br>
something, so feel free to correct me).<br>
<font color="#888888"><br>
<br>
--<br>
Nadav Har&#39;El                        |       Monday, Jan 10 2011, 5 Shevat 5771<br>
<a href="mailto:nyh@math.technion.ac.il">nyh@math.technion.ac.il</a>             |-----------------------------------------<br>
Phone +972-523-790466, ICQ 13349191 |A bird in the hand is safer than one<br>
<a href="http://nadav.harel.org.il" target="_blank">http://nadav.harel.org.il</a>           |overhead.<br>
</font><div><div></div><div class="h5"><br>
_______________________________________________<br>
Linux-il mailing list<br>
<a href="mailto:Linux-il@cs.huji.ac.il">Linux-il@cs.huji.ac.il</a><br>
<a href="http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il" target="_blank">http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il</a><br>
</div></div></blockquote></div><br></div></div></div>