scripts/saveSample.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed May 21 22:00:52 2008 +0000 (2008-05-21)
changeset 527 4ac12179ef23
parent 394 5e5d02b2d786
child 562 c2a68cba6c0c
permissions -rwxr-xr-x
Introduce target-specific LDFLAGS, the same way we have CFLAGS for the target.
It seems to be helping gcc somewhat into telling the correct endianness to ld that sticks with little endian even when the target is big (eg armeb-unknown-linux-uclibcgnueabi).
There's still work to do, especially finish the gcc part that is not in this commit.

/trunk/scripts/functions | 9 7 2 0 +++++++--
1 file changed, 7 insertions(+), 2 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 # Parse the architecture-specific functions
    22 . "${CT_LIB_DIR}/arch/${CT_ARCH}/functions"
    23 
    24 # Target tuple: CT_TARGET needs a little love:
    25 CT_DoBuildTargetTuple
    26 
    27 # Kludge: if any of the config options needs either CT_TARGET or CT_TOP_DIR,
    28 # re-parse them:
    29 . "${CT_TOP_DIR}/.config"
    30 
    31 # Override log level
    32 unset CT_LOG_ERROR CT_LOG_WARN CT_LOG_EXTRA CT_LOG_DEBUG 
    33 CT_LOG_INFO=y
    34 CT_LOG_LEVEL_MAX="INFO"
    35 
    36 # Create the sample directory
    37 if [ ! -d "${CT_TOP_DIR}/samples/${CT_TARGET}" ]; then
    38     mkdir -p "${CT_TOP_DIR}/samples/${CT_TARGET}"
    39 fi
    40 
    41 # Save the crosstool-NG config file
    42 cp "${CT_TOP_DIR}/.config" "${CT_TOP_DIR}/samples/${CT_TARGET}/crosstool.config"
    43 
    44 # Function to copy a file to the sample directory
    45 # Needed in case the file is already there (think of a previously available sample)
    46 # Usage: CT_DoAddFileToSample <source> <dest>
    47 CT_DoAddFileToSample() {
    48     source="$1"
    49     dest="$2"
    50     inode_s=$(ls -i "${source}")
    51     inode_d=$(ls -i "${dest}" 2>/dev/null || true)
    52     if [ "${inode_s}" != "${inode_d}" ]; then
    53         cp "${source}" "${dest}"
    54     fi
    55 }
    56 
    57 if [ "${CT_TOP_DIR}" = "${CT_LIB_DIR}" ]; then
    58     samp_top_dir="\${CT_LIB_DIR}"
    59 else
    60     samp_top_dir="\${CT_TOP_DIR}"
    61 fi
    62 
    63 # Save the kernel .config file
    64 if [ -n "${CT_KERNEL_LINUX_CONFIG_FILE}" ]; then
    65     # We save the file, and then point the saved sample to this file
    66     CT_DoAddFileToSample "${CT_KERNEL_LINUX_CONFIG_FILE}" "${CT_TOP_DIR}/samples/${CT_TARGET}/${CT_KERNEL}-${CT_KERNEL_VERSION}.config"
    67     sed -r -i -e 's|^(CT_KERNEL_LINUX_CONFIG_FILE=).+$|\1"'"${samp_top_dir}"'/samples/${CT_TARGET}/${CT_KERNEL}-${CT_KERNEL_VERSION}.config"|;' \
    68         "${CT_TOP_DIR}/samples/${CT_TARGET}/crosstool.config"
    69 else
    70     # remove any dangling files
    71     for f in "${CT_TOP_DIR}/samples/${CT_TARGET}/${CT_KERNEL}-"*.config; do
    72         if [ -f "${f}" ]; then rm -f "${f}"; fi
    73     done
    74 fi
    75 
    76 # Save the uClibc .config file
    77 if [ -n "${CT_LIBC_UCLIBC_CONFIG_FILE}" ]; then
    78     # We save the file, and then point the saved sample to this file
    79     CT_DoAddFileToSample "${CT_LIBC_UCLIBC_CONFIG_FILE}" "${CT_TOP_DIR}/samples/${CT_TARGET}/${CT_LIBC}-${CT_LIBC_VERSION}.config"
    80     sed -r -i -e 's|^(CT_LIBC_UCLIBC_CONFIG_FILE=).+$|\1"'"${samp_top_dir}"'/samples/${CT_TARGET}/${CT_LIBC}-${CT_LIBC_VERSION}.config"|;' \
    81         "${CT_TOP_DIR}/samples/${CT_TARGET}/crosstool.config"
    82 else
    83     # remove any dangling files
    84     for f in "${CT_TOP_DIR}/samples/${CT_TARGET}/${CT_LIBC}-"*.config; do
    85         if [ -f "${f}" ]; then rm -f "${f}"; fi
    86     done
    87 fi