5.4. Project Sandboxing¶
Project specific sandboxes let you have a number of projects running in parallel with each project in its own sandbox. You simply have a prefix per project and under that prefix you create a simple yet repeatable structure.
As an example lets say I have a large disk mounted under /bd
for Big
Disk. As root
create a directory called projects
and give the
directory suitable permissions to be writable by you as a user.
Lets create a project sandbox for my Box Sorter project. First create a
project directory called /bd/projects/box-sorter
. Under this create
rtems
and under that create rtems-6.1-rc2
. Under
this path you can follow the Releases procedure to build a tool
set using the prefix of
/bd/projects/box-sorter/rtems/6.1-rc2
. You are free to
create your project specific directories under
/bd/projects/box-sorter
. The top level directories would be:
/bd/projects
Project specific development trees.
/bd/projects/box-sorter
Box Sorter project sandbox.
/bd/projects/box-sorter/rtems/6.1-rc2
Project prefix for RTEMS 6.1-rc2 compiler, debuggers, tools and installed Board Support Package (BSP).
A variation is to use the --without-rtems
option with the RSB to not build
the BSPs when building the tools and to build RTEMS specifically for each
project. This lets you have a production tools installed at a top level on your
disk and each project can have a specific and possibly customised version of
RTEMS. The top level directories would be:
/bd/rtems
The top path to production tools.
/bd/rtems/6.1-rc2
Production prefix for RTEMS 6.1-rc2 compiler, debuggers and tools.
/bd/projects
Project specific development trees.
/bd/projects/box-sorter
Box Sorter project sandbox.
/bd/projects/box-sorter/rtems
Box Sorter project’s custom RTEMS kernel source and installed BSP.
A further varation if there is an RTEMS kernel you want to share between projects is it to move this to a top level and share. In this case you will end up with:
/bd/rtems
The top path to production tools and kernels.
/bd/rtems/6.1-rc2
Production prefix for RTEMS 6.1-rc2.
/bd/rtems/6.1-rc2/tools
Production prefix for RTEMS 6.1-rc2 compiler, debuggers and tools.
/bd/rtems/6.1-rc2/bsps
Production prefix for RTEMS 6.1-rc2 Board Support Packages (BSPs).
/bd/projects
Project specific development trees.
/bd/projects/box-sorter
Box Sorter project sandbox.
Finally you can have a single set of production tools and RTEMS BSPs on the
disk under /bd/rtems
you can share between your projects. The top level
directories would be:
/bd/rtems
The top path to production tools and kernels.
/bd/rtems/6.1-rc2
Production prefix for RTEMS 6.1-rc2 compiler, debuggers, tools and Board Support Packages (BSPs).
/bd/projects
Project specific development trees.
/bd/projects/box-sorter
Box Sorter project sandbox.
The project sandoxing approach allows you move a specific production part into the project’s sandbox to allow you to customise it. This is useful if you are testing new releases. The typical dependency is the order listed above. You can test new RTEMS kernels with production tools but new tools will require you build the kernel with them. Release notes with each release will let know what you need to update.
If the machine is a central project development machine simply replace
projects
with users
and give each user a personal directory.