Norman Feske <norman.fe...@genode-labs.com> writes: > Even though there was a brief period of activity when Stefan made some > progress, the topic [1] became stale again. I understand the slip of > motivation. Even though I have enabled the Rpi (including working USB) > originally, I would not consider picking it up again in my spare time. > I'm sorry that the support from our side was insufficient for you to > carry on. Unfortunately, I doubt that 2021 will look much different. > > [1] https://github.com/genodelabs/genode/issues/3247
I know the situation. And issue number looks familiar to me :-) >> During this process once again I realized why I don't like build >> system based on make and especially after I found out that recursive >> make in case of Genode build system can be written with capitalized >> "R" in recursive :-). > > Please let me address the statement regarding "recursive make" in > Genode. > > What is commonly referred to as a unholy practice "recursive make" is > the use of Makefiles scattered throughout a directory structure where > the Makefile of the parent directory triggers the Makefiles of the > child directories. Genode's build system does not do that. The > instances of make spawned by the build system serves different and > orthogonal purposes. > > - The frontend (Makefile in the build directory) consumes the build > configuration and triggers lib-dependency stage, the builds, and the > invocation of run scripts. > > - The library-dependency stage traverses target description files > without building anythin, to construct a library-dependency graph. > This could strictly be taken as an example of "recursive make" if > we decided to split hairs. > > - Orchestration of the library and target builds (executing the > library-dependency graph, which happens to be a Makefile). > > - Library build, building a single library. > > - Target build, building a single target. > Thank you for this description (although I already gathered knowledge about this part). Adding run tool to this picture makes this picture a little more "recursive" :-). Actually removing recursive interplay between the run tool and build system is something I'd like to remove but I don't know how and this will be a topic for discussion later. > If you add the depot tools to the picture, this story continues > because the depot tools are, well, based on make and invoke Genode's > make-based build system. I assume that it is similar to case with run tool but I'll know when I get to it. > Make is a can of worms, no question. Please excuse my polemics, but > this argument can go towards all kinds of power tools [2]. ;-) > > [2] https://github.com/satwikkansal/wtfpython I'll definitely read it. It looks very interesting. > If I understand these points correctly, you are actually not after > replacing Genode's build system but rather supplementing scons as > another option? That would side-step the friction I feared, which > would be pretty cool. Generally roadmap is not a good place to actually anounce and discuss it but I was kind of forced to do it here. Generally I really, really like the consistency of definitions of libraries and programs in Genode and my idea is to make it even more strict with scons. After I release some initial version I'll start discussion about some issues I found. But for a start - were you aware that current build system forgives errors like in [1] :-) https://github.com/genodelabs/genode/blob/master/repos/base-linux/src/test/lx_hybrid_errno/target.mk >> I hope to finish those parts quickly and make it public this year. > > I'm looking forward to try it out. Great. >> Plans for next year >> >> I plan to further develop build system based on scons at least until it >> fullfills my own whishes about it or until I find some blocker that I >> won't be able to overcome. As originally I plan to use it for >> development for rpi. I know that I'll have to add some support for ports >> (I plan only wrapper for current descriptions), depots and possibly >> something more. > > I wonder, have you considered adding scons support to the Goa tool [3]? > Goa is completely independent from Genode's build system and already > supports make, cmake, autoconf, and qmake. > > [3] https://github.com/nfeske/goa I did not look at this tool yet. Using it to port something is in my personal work queue and maybe then some extension ideas will come. Cheers Tomasz _______________________________________________ Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users