On Tuesday, 23 October 2012 at 09:07:34 UTC, Russel Winder wrote:
On Mon, 2012-10-22 at 13:19 -0700, H. S. Teoh wrote:
[…]
<rant>
Well, this is just my biased arrogant opinion, but the root of
the
problem is that make is an antiquated overly-simplistic script
that has
long outlived its time, but due to historical reasons still
survive
festering under the layers of patches that it has acquired
over the
course of its sad life. Automake and its ilk are just yet
another
(system of) layer of patches upon the same broken system that
doesn't
address the fundamental design flaws in make. It's an edifice
of cards
that nobody dares touch because, well, it would take too much
effort to
reproduce all the tiny obscure cases it has been tweaked for
over the
years. But it's nonetheless a nigh unmaintainable fortress of
cards that
will collapse at the slightest provocation in the most
unhelpful of
ways. It's like implementing the whole of Windows 8 in K&R C.
In this
day and age, one would *think* we could do better, but no,
this fossil
from the 70's still shambles on, to the unnecessary suffering
of
countless generations of new programmers.
</rant>
Make was a revelation and a revolution in 1977.
Surprisingly Make remains very useful for small tasks not
requiring
cross-platform portability.
Autotools is very UNIX biased.
CMake keeps Make going. Just.
Waf and SCons work well across platforms for C, C++, D,
Fortran, LaTeX,
Vala, but not JVM-based languages.
Gradle rules on the JVM, along with SBT and Leiningen. Gradle
is also
trying to invade the C++ space.
Even worse is having new generations of developers learning that
the 70's way of Make and Autotools is the way to go.
--
Paulo