scripts/build/binutils.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Feb 17 22:08:06 2008 +0000 (2008-02-17)
changeset 431 8bde4c6ea47a
parent 305 00a7e6c275da
child 458 17f3122a2864
permissions -rw-r--r--
Robert P. J. DAY says:

apparently, the patchset for gcc 4.2.1 applies properly to the
source for gcc 4.2.2 and gcc 4.2.3. so, if you want, you can simply
add support for those last two just by augmenting menuconfig and
adding a couple symlinks for those two directories. seems like a
cheap way to add a couple new versions.
     1 # This file adds functions to build binutils
     2 # Copyright 2007 Yann E. MORIN
     3 # Licensed under the GPL v2. See COPYING in the root of this package
     4 
     5 do_print_filename() {
     6     echo "binutils-${CT_BINUTILS_VERSION}"
     7 }
     8 
     9 # Download binutils
    10 do_binutils_get() {
    11     CT_GetFile "${CT_BINUTILS_FILE}"                            \
    12                ftp://ftp.gnu.org/gnu/binutils                   \
    13                ftp://ftp.kernel.org/pub/linux/devel/binutils
    14 }
    15 
    16 # Extract binutils
    17 do_binutils_extract() {
    18     CT_ExtractAndPatch "${CT_BINUTILS_FILE}"
    19 }
    20 
    21 # Build binutils
    22 do_binutils() {
    23     mkdir -p "${CT_BUILD_DIR}/build-binutils"
    24     cd "${CT_BUILD_DIR}/build-binutils"
    25 
    26     CT_DoStep INFO "Installing binutils"
    27 
    28     CT_DoLog EXTRA "Configuring binutils"
    29     CFLAGS="${CT_CFLAGS_FOR_HOST}"                  \
    30     "${CT_SRC_DIR}/${CT_BINUTILS_FILE}/configure"   \
    31         ${CT_CANADIAN_OPT}                          \
    32         --build=${CT_BUILD}                         \
    33         --host=${CT_HOST}                           \
    34         --target=${CT_TARGET}                       \
    35         --prefix=${CT_PREFIX_DIR}                   \
    36         --disable-nls                               \
    37         ${CT_BINUTILS_EXTRA_CONFIG}                 \
    38         ${BINUTILS_SYSROOT_ARG}                     2>&1 |CT_DoLog ALL
    39 
    40     CT_DoLog EXTRA "Building binutils"
    41     make ${PARALLELMFLAGS}  2>&1 |CT_DoLog ALL
    42 
    43     CT_DoLog EXTRA "Installing binutils"
    44     make install            2>&1 |CT_DoLog ALL
    45 
    46     # Make those new tools available to the core C compilers to come.
    47     # Note: some components want the ${TARGET}-{ar,as,ld,strip} commands as
    48     # well. Create that.
    49     mkdir -p "${CT_CC_CORE_STATIC_PREFIX_DIR}/${CT_TARGET}/bin"
    50     mkdir -p "${CT_CC_CORE_STATIC_PREFIX_DIR}/bin"
    51     mkdir -p "${CT_CC_CORE_SHARED_PREFIX_DIR}/${CT_TARGET}/bin"
    52     mkdir -p "${CT_CC_CORE_SHARED_PREFIX_DIR}/bin"
    53     for t in ar as ld strip; do
    54         ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_STATIC_PREFIX_DIR}/${CT_TARGET}/bin/${t}"
    55         ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_STATIC_PREFIX_DIR}/bin/${CT_TARGET}-${t}"
    56         ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_SHARED_PREFIX_DIR}/${CT_TARGET}/bin/${t}"
    57         ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_SHARED_PREFIX_DIR}/bin/${CT_TARGET}-${t}"
    58     done |CT_DoLog ALL
    59 
    60     CT_EndStep
    61 }