scripts/build/debug.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Mar 29 00:15:32 2010 +0200 (2010-03-29)
changeset 1864 758d5137fe87
parent 483 99724e410693
permissions -rw-r--r--
scripts/populate: optimise search loop

Curently, populate will iterate over all ELF (shared objects|executables)
to look for missing NEEDED DSOs, adding to the list at every iterations
of the search loop.

Instead of looking again at previously handled ELF files, recursively
resolve every ELf files.

Also, in case there are a whole lot of files (more than the shell can
accept as arguments list, or creating a command line longer than the
shell can cope with), use a temporary file with the list of files
to search for missing dependencies.
     1 # Wrapper to build the debug facilities
     2 
     3 # List all debug facilities, and parse their scripts
     4 CT_DEBUG_FACILITY_LIST=
     5 for f in "${CT_LIB_DIR}/scripts/build/debug/"*.sh; do
     6     _f="$(basename "${f}" .sh)"
     7     _f="${_f#???-}"
     8     __f="CT_DEBUG_${_f}"
     9     if [ "${!__f}" = "y" ]; then
    10         CT_DoLog DEBUG "Enabling debug '${_f}'"
    11         . "${f}"
    12         CT_DEBUG_FACILITY_LIST="${CT_DEBUG_FACILITY_LIST} ${_f}"
    13     else
    14         CT_DoLog DEBUG "Disabling debug '${_f}'"
    15     fi
    16 done
    17 
    18 # Download the debug facilities
    19 do_debug_get() {
    20     for f in ${CT_DEBUG_FACILITY_LIST}; do
    21         do_debug_${f}_get
    22     done
    23 }
    24 
    25 # Extract and patch the debug facilities
    26 do_debug_extract() {
    27     for f in ${CT_DEBUG_FACILITY_LIST}; do
    28         do_debug_${f}_extract
    29     done
    30 }
    31 
    32 # Build the debug facilities
    33 do_debug() {
    34     for f in ${CT_DEBUG_FACILITY_LIST}; do
    35         do_debug_${f}_build
    36     done
    37 }
    38