lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: scripts/build/scan-mf-deps: script to generate MF dependencies (issu


From: hanwenn
Subject: Re: scripts/build/scan-mf-deps: script to generate MF dependencies (issue 553700043 by address@hidden)
Date: Sat, 14 Mar 2020 16:57:48 -0700

On 2020/03/14 23:46:17, dak wrote:
> Why would we want to move away from GNU make as a build system?

The current build system is a per directory system, which is
fundamentally flawed. (See http://aegis.sourceforge.net/auug97.pdf).
This has several implications:

* we can't get enough parallelism in the doc build

* there are several underspecified dependencies (eg. if you change
something scripts/build/ , a build in mf/ will not pick up the change)

then there are problems with stepmake

* because each subdirectory has its own output directory  (eg. mf/out/
), a significant part of our build is involved with copying/symlinking
files so we don't have out-www/ in our HTML links.

* our build system relies heavily on GNU make magic. As a programming
language, GNU Make just isn't very good. It's not expressive, and it has
no typesystem. This makes it hard for people to work on the build
system.

* stepmake tried to be generic Make templating system (but did a bad job
at it). At the same time, the genericity is causing complexity

I have been experimenting with Ninja (https://ninja-build.org/), but
Ninja has a very restricted model. Make functions, wildcards, etc. are
not possible. In order to advance my experiments, I'm trying to clean up
the build so I can port more of the build over.

But even if we don't migrate to something else, cleaning up the build
makes it easier to maintain.

See https://github.com/hanwen/lilypond/tree/ninja if you want to try it
out.








Moving to something el

https://codereview.appspot.com/553700043/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]