#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
 (.pc) =

 [[PageOutline(1-5, Contents, inline)]]

 == Mentors ==

 Chris Johns

 == 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/>
RTEMS Project
bugs mailing list

Reply via email to