1 = Tools and Utilities = 2 3 The `tools` directory contains a number of programs useful when developing 4 this software: 5 6 {{{#!table 7 checkconfig.sh || initialises files used to control run-time linking for the 8 .. configured device 9 == 10 install.sh || installs the software in a L4Re source distribution 11 == 12 listlibs.sh || lists library modules for inclusion in .list files 13 == 14 makecontrol.sh || updates the Control file for a package directory with 15 .. details of the provided "virtual" packages employed by the 16 .. build system for dependency resolution 17 == 18 makefonts.sh || generate binary font files from source data 19 == 20 readfont.py || convert GNU Unifont source files to binary form 21 }}} 22 23 == Identifying Library Modules == 24 25 The `listlibs.sh` tool is intended to inspect an existing .list file, analyse 26 executable programs mentioned in that file that have already been built, and 27 to generate a list of shared libraries needed by those executables such that 28 the .list file describes all required modules for deployment. 29 30 In the `l4` subdirectory of the L4Re source distribution, the tool is run as 31 follows: 32 33 {{{ 34 $LANDFALL/tools/listlibs.sh conf/landfall-examples/$EXAMPLE.list mybuild 35 }}} 36 37 (Here, `$LANDFALL` needs to expand to the location of this distribution 38 whereas `$EXAMPLE` indicates an example name.) 39 40 For example: 41 42 {{{ 43 ~/L4/Landfall/tools/listlibs.sh \ 44 conf/landfall-examples/mips-qi_lb60-keypad.list mybuild 45 }}} 46 47 This will output a list of modules for inclusion in the .list file. It can be 48 advisable to make this change to the .list file in the Landfall distribution 49 and to then install the file into the L4Re source distribution, potentially 50 using the install.sh script. 51 52 At this point, it is important to remember that the `conf/modules.list` file 53 will need updating to include these new details. For example: 54 55 {{{ 56 cp conf/landfall-examples/mips-qi_lb60-keypad.list conf/modules.list 57 }}} 58 59 Finally, the command to build a payload can be run: 60 61 {{{ 62 make O=mybuild uimage E=mips-qi_lb60-keypad-example 63 }}} 64 65 This should consult `conf/modules.list` and update the contents of the 66 generated image to include any newly-added shared libraries.