Landfall

docs/wiki/Tools

84:21b57dd374bb
2020-06-17 Paul Boddie Added a mention of listlibs.sh which will need to be invoked for some examples. jz4780-lcd
     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.