Tools and Utilities

The tools directory contains a number of programs useful when developing this software:

checkconfig.sh initialises files used to control run-time linking for the configured device
install.sh installs the software in a L4Re source distribution
listlibs.sh lists library modules for inclusion in .list files
makecontrol.sh updates the Control file for a package directory with details of the provided "virtual" packages employed by the build system for dependency resolution
makefonts.sh generate binary font files from source data
readfont.py convert GNU Unifont source files to binary form

Identifying Library Modules

The listlibs.sh tool is intended to inspect an existing .list file, analyse executable programs mentioned in that file that have already been built, and to generate a list of shared libraries needed by those executables such that the .list file describes all required modules for deployment.

In the l4 subdirectory of the L4Re source distribution, the tool is run as follows:

$LANDFALL/tools/listlibs.sh conf/landfall-examples/$EXAMPLE.list mybuild

(Here, $LANDFALL needs to expand to the location of this distribution whereas $EXAMPLE indicates an example name.)

For example:

~/L4/Landfall/tools/listlibs.sh \
  conf/landfall-examples/mips-qi_lb60-keypad.list mybuild

This will output a list of modules for inclusion in the .list file. It can be advisable to make this change to the .list file in the Landfall distribution and to then install the file into the L4Re source distribution, potentially using the install.sh script.

At this point, it is important to remember that the conf/modules.list file will need updating to include these new details. For example:

cp conf/landfall-examples/mips-qi_lb60-keypad.list conf/modules.list

Finally, the command to build a payload can be run:

make O=mybuild uimage E=mips-qi_lb60-keypad-example

This should consult conf/modules.list and update the contents of the generated image to include any newly-added shared libraries.