New Build System Ready for Integration
Chris Johns
chrisj at rtems.org
Mon Dec 2 00:00:16 UTC 2019
On 28/11/19 7:10 pm, Sebastian Huber wrote:
> Hello,
>
> the new build system is now ready for integration. You find the latest
> documentation here:
>
> https://ftp.rtems.org/pub/rtems/people/sebh/user.pdf
>
> https://ftp.rtems.org/pub/rtems/people/sebh/eng.pdf
>
> You can review the new build system for RTEMS BSPs here:
>
> git clone git://git.rtems.org/sebh/rtems.git
> cd rtems
> git checkout --track origin/build
>
> The new build system builds all BSPs and all tests (including the Ada tests). I
> tested the build on OpenSUSE 15.1, MinGW64, MSYS2, and FreeBSD 12.1.
>
> The build specification consists of
>
> find spec -name '*.yml' -and -not -name .doorstop.yml | wc
> 2011 2011 136959
>
> YAML files. From these only 18 have hand-crafted content:
>
> grep -r 'build-type: script' spec/ | sort
> spec/build/bsps/powerpc/motorola_powerpc/RTEMS-BUILD-BSP-POWERPC-MOTOROLAPOWERPC-BOOT.yml:build-type:
> script
> spec/build/bsps/powerpc/motorola_powerpc/RTEMS-BUILD-BSP-POWERPC-MOTOROLAPOWERPC-QEMUFAKEROM.yml:build-type:
> script
> spec/build/bsps/powerpc/mvme5500/RTEMS-BUILD-BSP-POWERPC-MVME5500-START.yml:build-type:
> script
> spec/build/bsps/powerpc/RTEMS-BUILD-BSP-POWERPC-MOTLD.yml:build-type: script
> spec/build/bsps/RTEMS-BUILD-BSP-LINKCMDS.yml:build-type: script
> spec/build/cpukit/RTEMS-BUILD-CPUKIT-VCKEY.yml:build-type: script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-DL01.yml:build-type: script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-DL02.yml:build-type: script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-DL04.yml:build-type: script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-DL05.yml:build-type: script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-DL06.yml:build-type: script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-DL07.yml:build-type: script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-DL08.yml:build-type: script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-DL09.yml:build-type: script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-DL10.yml:build-type: script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-MGHTTPD01.yml:build-type:
> script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-TAR01.yml:build-type: script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-TAR02.yml:build-type: script
>
> So, more than 99% of the build specification is done through standard items. The
> attached script can be used to load the content of all items into a standard
> Python data structure (dictionaries, lists, strings, integers). The next person
> doing a new build system will have a much easier task, no more parsing of
> Makefile.am, configure.ac, *.cfg, and *.tcfg files.
>
> My proposed next steps are:
>
> 1. I push the source and documentation patches next Monday to the main
> repositories.
What is reason for this needing to happen right now?
Has the other thread between you and Joel been resolved? I am not sure if it
has. I saw you posted somethings we need to make lists of or document. Has these
been made and agreed too?
I would like to see these things resolved before we make any permanent changes
by pushing this code. I would also like to have the Windows gccdeps issue
resolved. I am attempting to look into this now.
> 2. I make it harder to use the existing build system. I add a
> --I-only-want-to-compare-results-with-the-new-build-system" to the top-level
> configure script. If this option is not present, then the build stops with an
> error. This basically disables the normal use.
>
> 3. I create a new ticket with a build system conversion checklist.
Would it be better if this is done before pushing any code.
> 4. We announce a four month period in which we keep the old build system in the
> sources. Everyone is encouraged to test the new build system with the help of
> the checklist. The new build system should be used, fixed and improved.
I will try and push a new release snapshot this week. I have been away and it is
not yet automated.
> 5. If the new build system shows satisfactory results after the testing period,
> we remove the old one.
What does satisfactory mean?
Chris
More information about the devel
mailing list