How to build librtemscpu.a and librtemsbsp.a in the future?
Chris Johns
chrisj at rtems.org
Sun Mar 25 03:20:41 UTC 2018
On 24/3/18 1:27 am, Sebastian Huber wrote:
> Hello,
>
> I tried to consolidate the cpukit Makefile.am. This ended up in the following
> problem. The content of librtemscpu.a depends on the CPU port. This is currently
> done via a non-standard
>
> _SUBDIRS = ../@RTEMS_CPU@
>
> construct.
Where is this? I cannot find it.
> The wrapup/Makefile.am combines several static libraries into one
> librtemscpu.a. With librtemsbsp.am we have a similar problem. This archive
> unpack and re-create step seems to be a bit expensive.
Yes this is an awkward work around. I seem to remember this is borrowed from
automake and adapted for us. No matter where is comes from it is a hack and a
pain to maintain. With nested makes we do not have access to the list of objects
so we need to extract, capture and create to merge.
> Why can't we use an MRI script, e.g.
>
> create ./sparc-rtems5/erc32/lib/librtemscpu.a
> addlib ./sparc-rtems5/c/erc32/cpukit/librtemscpu.a
> addlib ./sparc-rtems5/c/erc32/cpukit/score/cpu/sparc/libscorecpu.a
> save
> end
>
> ?
If this was supported by the standard GNU script I would be more receptive but
even then I feel it is papering over build system weaknesses. Is the MRI format
still alive in any MRI or Mentor products?
> Would conditional Makefile.am parts be more efficient, e.g. in cpukit/Makefile.am
>
> if CPU_ARM
> include score/cpu/arm/make.am
> endif
> if CPU_XXX
> ...
I think this would be a major piece of work. You would need to make sure any
globals at the make level do not step on each other.
>
> How would waf deal with this problem?
>
Efficiently. See:
https://git.rtems.org/rtems-libbsd/tree/libbsd_waf.py#n2469
Chris
More information about the devel
mailing list