no-preinstall: Ready for final review

Sebastian Huber sebastian.huber at
Thu Jan 18 16:35:01 UTC 2018

v1 of the commit message:

Remove make preinstall

A speciality of the RTEMS build system was the make preinstall step.  It copied
header files from arbitrary locations into the build tree.  The header files
were included via the -Bsome/build/tree/path GCC command line option.

This has at least five problems:

* The make preinstall step itself needs time and disk space.

* Errors in header files show up in the build tree copy.  This makes it hard
  for editors to open the right file to fix the error.

* There is no clear relationship between source and build tree header files.
  This makes an audit of the build process difficult.

* The visibility of all header files in the build tree makes it difficult to
  enforce API barriers.  For example it is discouraged to use BSP-specifics in
  the cpukit.

* An introduction of a new build system is difficult.

This patch removes the make preinstall step.   All installed header files are
moved to dedicated include directories in the source tree.  Let @RTEMS_CPU@ be
the target architecture, e.g. arm, powerpc, sparc, etc.  Let
@RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g. erc32, imx, qoriq,

The new cpukit include directories are:

* cpukit/include

* cpukit/score/cpu/@RTEMS_CPU@/include

* cpukit/libnetworking

The new BSP include directories are:

* bsps/include

* bsps/@RTEMS_CPU@/include

* bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include

There are build tree include directories for generated files.

More information about the devel mailing list