[PATCH] eng: Add build system chapter

Sebastian Huber sebastian.huber at embedded-brains.de
Wed Nov 13 06:14:07 UTC 2019


On 12/11/2019 22:43, Chris Johns wrote:
>> The variables used for the substitution are the configuration set environment
>> variables. I intentionally didn't add a recursive substitution since you should
>> specify the variable definitions in a proper order.
> And if there are competing orders? It all depends on how the declared variables
> are used, where they are used and how many times.

You have to keep in mind that the build specification uses a directed, 
acyclic graph. The items are visited in depth-first search order. The 
substitution takes place in the visitation order. You have a well 
defined recursive substitution. There are no competing orders at that level.

I had to simplify things a bit with the "order" attribute, see:

https://ftp.rtems.org/pub/rtems/people/sebh/eng.pdf

Section 8.5 Build Specification Items

This models what we do currently. Firstly, we build the BSP, then the 
cpukit, and then the tests.

> 
>>> The RSB and rtemstoolkit macros recursively expand as it was a something I found
>>> needed and useful ...
>>>
>>> https://git.rtems.org/rtems-tools/tree/rtemstoolkit/macros.py#n471
>> I think we should keep it simple in the build system right now. If there is a
>> real need, then we can have a look at this.
> Sure as long and this is an option and we do not unrolling items to avoid it. It
> can be viewed as an abstraction tool, eg x is defined by m and n, m is defined
> by a and b, n is defined by c and d and then y is defined by n and o where o is
> something else.
> 
> Personally I would add the feature rather than needing to revisit this part of
> the code later. A new build system is not just a replacement task for what is
> there fitted to be a close match. It should be considered a framework that needs
> to grow and adapt as we find new ways to use it and RTEMS. Ten plus years of the
> RSB has taught me people will work with what you provide rather than step inside
> the tool and make a change even if what they have to do is bad.

I think it is general enough. We already have a recursive substitution 
built in through the DAG.

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.


More information about the devel mailing list