#3302: Build System conversion of BSP Config (.cfg) files to pkg-config (.pc)
Reporter: Chris Johns | Owner: (none)
Type: project | Status: new
Priority: normal | Milestone:
Component: unspecified | Version:
Severity: normal | Keywords: SoC ecosystem
Blocked By: | Blocking:
= Build System conversion of BSP Config (.cfg) files to Package Config
[[PageOutline(1-5, Contents, inline)]]
== Mentors ==
== Students ==
Past, Present, and Potential Students
== Status ==
See Project Tasks.
== Introduction ==
RTEMS BSP's use the `make` syntax in configuration files (`.cfg`) to
specialize how a BSP is to be built and linked as well as defining any
extra BSP specific details a user of the BSP may need. This can range from
nothing through to target specific addresses and formats used to inter-
operate with a BSP's hardware.
The configuration files currently form part of the user ecosystem via the
`Makefile.inc` build system. This build system is flawed because it only
supports `make` as a build system and there are a number of really good
build systems available to users. The free form nature of the `make`
syntax in the configuration files means automatically parsing and
converting these files into another format would require a parser as
complex as `make` and that is not practical. As a result the ability to
support the `Makefile.inc` user application build system as it is as RTEMS
moves forward is limited.
RTEMS users require a way to query and get the BSP build configuration for
a BSP. The build configuration is the flags needed to compile and link
code into an application. There is also a need to express BSP specific
details that define some of the target specific features implemented by
the BSP developer.
The `pkg-config` tool provides a way to query `.pc` format files and is
used by a large number of packages to define how a package is build.
== Goal ==
* Convert RTEMS's current BSP configuration from the `make` format to the
widely used and support `pkg-config` format.
* Convert the RTEMS build system to use the `.pc` files.
* Update `examples-v2` to use the updated `pkg-config` files.
* Update the User Manual.
== Prerequisite ==
* Knowledge of Unix shell
* Knowledge of M4 and autoconf
* Knowledge of compiler and linker flags
* Knowledge of make
* Knowledge of Python. This is not as important and is used to update
`rtems-wag.git` which is used by `examples-v2`.
== Tasks ==
1. Review all BSP configurations and collect all the details and
specifics. This lets us review and define how the elements are mapped to
2. Write the `pkg-config` files an architecture at a time. Write a test to
check all files.
3. Update the RTEMS build system to use `pkg-config`.
4. Update `rtems-waf.git` and test using `examples-v2`.
Ticket URL: <http://devel.rtems.org/ticket/3302>
RTEMS Project <http://www.rtems.org/>
bugs mailing list