[PATCH v2 1/2] waf: Support building from libbsd.py directly from waf.
Chris Johns
chrisj at rtems.org
Wed Apr 4 07:00:32 UTC 2018
On 04/04/2018 16:35, Christian Mauderer wrote:
> Am 04.04.2018 um 08:20 schrieb Chris Johns:
>> On 04/04/2018 15:51, Christian Mauderer wrote:
>>> Am 04.04.2018 um 07:28 schrieb Chris Johns:
>>>> On 04/04/2018 00:43, Christian Mauderer wrote:
>>> Every module then would get
>>> this list and would have to decide for itself which defines are
>>> necessary in that case.
>>
>> Yes, you end up with a dict of modules each with a list of builds where some
>> value varies from the default. The module build list could be dict of each arg
>> to a 'bld()' that varies from the default. You would also have a dict of
>> libraries, the output we are after, and each library would have a list oof
>> module builds. This way a common base module is only built once and loaded in a
>> number of libraries.
>>
>
> Yes, something like that. Not really a easy to create and easy to
> understand construction.
I did this with the BSP builder. It loads the configuration information from the
INI files:
https://git.rtems.org/rtems-tools/tree/tester/rt/check.py#n922
Take a look at this function and INI files to see the way it loads configuration
into the data structure from the INI data. I see what you need as a variation of
this.
The builder then runs the jobs for a specific build configuration:
https://git.rtems.org/rtems-tools/tree/tester/rt/check.py#n1403
https://git.rtems.org/rtems-tools/tree/tester/rt/check.py#n1411
https://git.rtems.org/rtems-tools/tree/tester/rt/check.py#n1377
This is basically reduces to a list of RTEMS configure commands with different
options.
> So it's a trade off. Build speed versus build
> system complexity.
The complexity is driven as much by the source management as the actual building.
> Normally I would go for build speed due to the fact that we most likely
> build much more often than touching the build system. On the other hand
> the build system is already quite hard to understand. So another
> alternative could be interesting: Set only one config (and not all) as
> default so that for most cases only this one is build.
Agreed.
> Advantages:
> - faster default build
> - a first-time user has no problem to decide which one he wants
> - no problem when doing a `waf install` which library should be installed
>
> Disadvantage:
> - most developers will build only one variant during development and
> most likely forget to test with all variants before sending the patch
>
I see providing no configure option as the "Advantages" and an option as a way
to enable more configurations. In theory a buildbot would build all for us. Sigh.
Chris
More information about the devel
mailing list