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