scripts/saveSample.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Thu Oct 09 19:17:49 2008 +0000 (2008-10-09)
changeset 914 0b164a321177
parent 735 e9cbd9d6e737
child 927 4824afc1b2f7
permissions -rwxr-xr-x
Remove CT_BROKEN.
Only one component is actually BROKEN (libelf), make it depend on EXPERIMENTAL, but state BROKEN in the prompt.
ltrace (which depends on libelf) is now marked as EXPERIMENTAL, with the reference to the BROKEN libelf in the help entry.

/trunk/docs/overview.txt | 6 0 6 0 ------
/trunk/config/debug/ltrace.in | 7 4 3 0 ++++---
/trunk/config/global/ct-behave.in | 8 0 8 0 --------
/trunk/config/tools/libelf.in | 5 3 2 0 +++--
4 files changed, 7 insertions(+), 19 deletions(-)
     1 #!/bin/bash
     2 
     3 # This script is responsible for saving the current configuration into a
     4 # sample to be used later on as a pre-configured target.
     5 
     6 # What we need to save:
     7 #  - the .config file
     8 #  - the kernel .config file if specified
     9 #  - the uClibc .config file if uClibc selected
    10 
    11 . "${CT_LIB_DIR}/scripts/functions"
    12 
    13 # Don't care about any log file
    14 exec >/dev/null
    15 rm -f "${tmp_log_file}"
    16 
    17 # Parse the configuration file
    18 CT_TestOrAbort "Configuration file not found. Please create one." -f "${CT_TOP_DIR}/.config"
    19 . "${CT_TOP_DIR}/.config"
    20 
    21 # Do not use a progress bar
    22 unset CT_LOG_PROGRESS_BAR
    23 
    24 # Parse the architecture-specific functions
    25 . "${CT_LIB_DIR}/arch/${CT_ARCH}/functions"
    26 
    27 # Target tuple: CT_TARGET needs a little love:
    28 CT_DoBuildTargetTuple
    29 
    30 # Kludge: if any of the config options needs either CT_TARGET or CT_TOP_DIR,
    31 # re-parse them:
    32 . "${CT_TOP_DIR}/.config"
    33 
    34 # Override log options
    35 unset CT_LOG_PROGRESS_BAR CT_LOG_ERROR CT_LOG_INFO CT_LOG_EXTRA CT_LOG_DEBUG LOG_ALL
    36 CT_LOG_WARN=y
    37 CT_LOG_LEVEL_MAX="WARN"
    38 
    39 # Create the sample directory
    40 if [ ! -d "${CT_TOP_DIR}/samples/${CT_TARGET}" ]; then
    41     mkdir -p "${CT_TOP_DIR}/samples/${CT_TARGET}"
    42 fi
    43 
    44 # Save the crosstool-NG config file
    45 sed -r -e 's|^(CT_PREFIX_DIR)=.*|\1="${HOME}/x-tools/${CT_TARGET}"|;'       \
    46        -e 's|^# CT_LOG_TO_FILE is not set$|CT_LOG_TO_FILE=y|;'              \
    47        -e 's|^# CT_LOG_FILE_COMPRESS is not set$|CT_LOG_FILE_COMPRESS=y|;'  \
    48     <"${CT_TOP_DIR}/.config"                                                \
    49     >"${CT_TOP_DIR}/samples/${CT_TARGET}/crosstool.config"
    50 
    51 # Function to copy a file to the sample directory
    52 # Needed in case the file is already there (think of a previously available sample)
    53 # Usage: CT_DoAddFileToSample <source> <dest>
    54 CT_DoAddFileToSample() {
    55     source="$1"
    56     dest="$2"
    57     inode_s=$(ls -i "${source}")
    58     inode_d=$(ls -i "${dest}" 2>/dev/null || true)
    59     if [ "${inode_s}" != "${inode_d}" ]; then
    60         cp "${source}" "${dest}"
    61     fi
    62 }
    63 
    64 if [ "${CT_TOP_DIR}" = "${CT_LIB_DIR}" ]; then
    65     samp_top_dir="\${CT_LIB_DIR}"
    66 else
    67     samp_top_dir="\${CT_TOP_DIR}"
    68 fi
    69 
    70 # Save the uClibc .config file
    71 if [ -n "${CT_LIBC_UCLIBC_CONFIG_FILE}" ]; then
    72     # We save the file, and then point the saved sample to this file
    73     CT_DoAddFileToSample "${CT_LIBC_UCLIBC_CONFIG_FILE}" "${CT_TOP_DIR}/samples/${CT_TARGET}/${CT_LIBC}-${CT_LIBC_VERSION}.config"
    74     sed -r -i -e 's|^(CT_LIBC_UCLIBC_CONFIG_FILE=).+$|\1"'"${samp_top_dir}"'/samples/${CT_TARGET}/${CT_LIBC}-${CT_LIBC_VERSION}.config"|;' \
    75         "${CT_TOP_DIR}/samples/${CT_TARGET}/crosstool.config"
    76 else
    77     # remove any dangling files
    78     for f in "${CT_TOP_DIR}/samples/${CT_TARGET}/${CT_LIBC}-"*.config; do
    79         if [ -f "${f}" ]; then rm -f "${f}"; fi
    80     done
    81 fi