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 |
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.