25-Sep-2014 01:12, Andrei Alexandrescu пишет:
On 9/24/14, 1:10 PM, H. S. Teoh via Digitalmars-d wrote:
That's unfortunate indeed. I wish I could inspire them as to how cool a
properly-done build system can be.
[snip]
That's all nice. However: (1) the truth is there's no clear modern build
tool that has "won" over make;
Pretty much any of them is better, and will easily handle the size of
phobos/druntime/dmd projects.
oh there's plenty of them, but each has
its own quirks that makes it tenuous to use;
Somehow must indicate that make doesn't have them (and in incredible
capacity)?
Most of my Scons scripts are under 10 lines, in fact 2-3 LOCs.
I had an "insanely" complicated one could handle 2 platforms, 3
emulators and a few custom build steps (including signing binaries),
cleaning, tracking dependencies with minimal rebuilds. For instance,
binary need not to be signed again if it's bit for bit the same.
All of the above was done in about 50 lines, never braking as the
project progressed, I think it changed only 2-3 times over a year.
I was never able to make a good makefile that wouldn't shit on me in
some way, like not properly cleaning something or handling errors . I'm
not even talking about the 10+ LOCs for anything barely useful.
(2) any build system for a
project of nontrivial size needs a person/team minding it - never saw
such a thing as it's just all automated and it works;
The question is amount of work, size of file and frequency of changes.
For instance, Scons easily allows not to change a makefile on every
single added module, I can't say if make could pull it off.
(3) especially if
the build system is not that familiar, the role of the build czar is all
the more important.
Somebody (Russel?) was working on D Scons support, how about start to
capitalize on this work? I'd gladly try to make a scons script for
phobos/druntime if there
is even a tiny chance of apporval.
So the reality is quite a bit more complicated than the shiny city on a
hill you describe.
Most people using make/autotools say build systems are hard, it need not
to be true but I'm obviously biased.
--
Dmitry Olshansky