All installed host tools are removed from the RTEMS sources - next steps?
Sebastian Huber
sebastian.huber at embedded-brains.de
Mon Jun 18 07:03:08 UTC 2018
On 18/06/18 08:39, Chris Johns wrote:
>> The BSP sources and header files were moved some weeks ago to "bsps/*", but the
>> build files (configure.ac and Makefile.am) are still in "c". The next goal is to
>> move also the build files to "bsps/*". The long term goal is the introduction of
>> a new build system based on waf. Each change in the current build system should
>> make it easier to introduce the new build system.
> With all these changes I suspect a new build system is going to distill down to
> the configuration details and the management of that data.
>
> An example Amar created is:
>
> https://git.rtems.org/amar/waf.git/tree/py/waf/defaults/bsp/arm.py?h=archive/waf/2015-06
> https://git.rtems.org/amar/waf.git/tree/py/waf/defaults/options.py?h=archive/waf/2015-06
>
> I am not sure a like a single file for the whole of RTEMS, it could becomes a
> merge hot spot plus I do not like having it in the build system source tree. I
> see the build system files and the data that drives it as separate. You should
> be able to roll out build system v2, v3 etc and the data stays consistent.
Yes, BSP-specific stuff should definitely be not in a separated repository.
Why is the build system in a separate repository?
I don't think that a single global file would lead to a merge hot spot,
we don't add that many BSPs per day. I am still more in favour of
per-BSP configuration files (no scattered BSP-specifics throughout the
code base).
It would be nice to have the configuration data in a simple format (e.g.
Makefile fragment, INI, pkg-config) and not as a Python source file.
What about the post-link steps?
Should we also consider the BSP configuration options? This area is a
lot more complicated and time consuming to change. I would like to post
pone this and concentrate on build system issues first, e.g. location
and format of compiler flags.
>
> I do not know if we want to localize the data to the functionality being
> configured, for example shell configuration in the shell source. I think is
> makes sense for a BSP. I think a hierarchy is a good thing so there can be reuse
> of common configuration data.
>
>> I think one result of previous discussions is to use pkg-config format for
>> BSP-specific build system input as a replacement of the bsps/*/*/config/*.cfg
>> files.
>>
>> https://en.wikipedia.org/wiki/Pkg-config
>>
> Yes I agree with using this format. The difficult part of this is capturing the
> details needed to create a suitable set of flags. The current config files are
> make format meaning there is no standard pattern and each BSP needs to be
> reviewed. We can also consider using variables and a variable query to add extra
> detail if we need it.
>
>> We could temporarily add a Makefile rule to generate the first version of the
>> new BSP-specific file, e.g. bsps/arch/bsp/config/some-bsp.pc. Then build all
>> BSPs to get the initial content for the RTEMS sources.
> Why replace the existing one, why not make it better? The rtems_waf support for
> applications is using the existing file now. It is not perfect but it does work.
>
Do you want to use the pkc-config files internally or only export them
to the installed BSP? The *.cfg files are Makefile fragments and not
pkc-config files.
--
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