scripts/build/binutils.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat May 03 17:51:16 2008 +0000 (2008-05-03)
changeset 486 92f6149c4275
parent 466 7f9bbf94b0bb
child 502 9ed34efc09fc
permissions -rw-r--r--
Some people are reposrting that ftp does not work on their network, probably due to proxies, while http does work.
Some (most) of the sites we use toretrieve tarballs have http equivallent for the ftp service. Use http as a failover.
There's no solution for those sites that do not have such an http equivalent.

/trunk/scripts/build/binutils.sh | 5 2 3 0 ++---
/trunk/scripts/build/libc_glibc.sh | 4 2 2 0 ++--
/trunk/scripts/build/libc_uClibc.sh | 2 1 1 0 +-
/trunk/scripts/build/debug/400-ltrace.sh | 2 1 1 0 +-
/trunk/scripts/build/debug/300-gdb.sh | 8 3 5 0 +++-----
/trunk/scripts/build/kernel_linux.sh | 7 2 5 0 ++-----
/trunk/scripts/build/cc_gcc.sh | 6 2 4 0 ++----
/trunk/scripts/build/gmp.sh | 4 1 3 0 +---
8 files changed, 14 insertions(+), 24 deletions(-)
yann@1
     1
# This file adds functions to build binutils
yann@1
     2
# Copyright 2007 Yann E. MORIN
yann@1
     3
# Licensed under the GPL v2. See COPYING in the root of this package
yann@1
     4
yann@161
     5
do_print_filename() {
yann@164
     6
    echo "binutils-${CT_BINUTILS_VERSION}"
yann@161
     7
}
yann@161
     8
yann@63
     9
# Download binutils
yann@63
    10
do_binutils_get() {
yann@486
    11
    CT_GetFile "${CT_BINUTILS_FILE}"    \
yann@486
    12
               {ftp,http}://{ftp.gnu.org/gnu,ftp.kernel.org/pub/linux/devel}/binutils
yann@63
    13
}
yann@63
    14
yann@63
    15
# Extract binutils
yann@63
    16
do_binutils_extract() {
yann@63
    17
    CT_ExtractAndPatch "${CT_BINUTILS_FILE}"
yann@63
    18
}
yann@63
    19
yann@63
    20
# Build binutils
yann@1
    21
do_binutils() {
yann@1
    22
    mkdir -p "${CT_BUILD_DIR}/build-binutils"
yann@1
    23
    cd "${CT_BUILD_DIR}/build-binutils"
yann@1
    24
yann@1
    25
    CT_DoStep INFO "Installing binutils"
yann@1
    26
yann@466
    27
    binutils_opts=
yann@466
    28
    # If GMP and MPFR were configured, then use that,
yann@466
    29
    # otherwise let binutils find the system-wide libraries, if they exist.
yann@466
    30
    if [ "${CT_CC_GCC_GMP_MPFR}" = "y" ]; then
yann@466
    31
        binutils_opts="--with-gmp=${CT_PREFIX_DIR} --with-mpfr=${CT_PREFIX_DIR}"
yann@466
    32
    fi
yann@466
    33
yann@1
    34
    CT_DoLog EXTRA "Configuring binutils"
yann@1
    35
    CFLAGS="${CT_CFLAGS_FOR_HOST}"                  \
yann@1
    36
    "${CT_SRC_DIR}/${CT_BINUTILS_FILE}/configure"   \
yann@1
    37
        ${CT_CANADIAN_OPT}                          \
yann@116
    38
        --build=${CT_BUILD}                         \
yann@116
    39
        --host=${CT_HOST}                           \
yann@1
    40
        --target=${CT_TARGET}                       \
yann@1
    41
        --prefix=${CT_PREFIX_DIR}                   \
yann@1
    42
        --disable-nls                               \
yann@466
    43
        ${binutils_opts}                            \
yann@1
    44
        ${CT_BINUTILS_EXTRA_CONFIG}                 \
yann@78
    45
        ${BINUTILS_SYSROOT_ARG}                     2>&1 |CT_DoLog ALL
yann@1
    46
yann@1
    47
    CT_DoLog EXTRA "Building binutils"
yann@78
    48
    make ${PARALLELMFLAGS}  2>&1 |CT_DoLog ALL
yann@1
    49
yann@1
    50
    CT_DoLog EXTRA "Installing binutils"
yann@78
    51
    make install            2>&1 |CT_DoLog ALL
yann@1
    52
yann@331
    53
    # Make those new tools available to the core C compilers to come.
yann@1
    54
    # Note: some components want the ${TARGET}-{ar,as,ld,strip} commands as
yann@305
    55
    # well. Create that.
yann@136
    56
    mkdir -p "${CT_CC_CORE_STATIC_PREFIX_DIR}/${CT_TARGET}/bin"
yann@136
    57
    mkdir -p "${CT_CC_CORE_STATIC_PREFIX_DIR}/bin"
yann@136
    58
    mkdir -p "${CT_CC_CORE_SHARED_PREFIX_DIR}/${CT_TARGET}/bin"
yann@136
    59
    mkdir -p "${CT_CC_CORE_SHARED_PREFIX_DIR}/bin"
yann@1
    60
    for t in ar as ld strip; do
yann@136
    61
        ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_STATIC_PREFIX_DIR}/${CT_TARGET}/bin/${t}"
yann@136
    62
        ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_STATIC_PREFIX_DIR}/bin/${CT_TARGET}-${t}"
yann@136
    63
        ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_SHARED_PREFIX_DIR}/${CT_TARGET}/bin/${t}"
yann@136
    64
        ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_SHARED_PREFIX_DIR}/bin/${CT_TARGET}-${t}"
yann@78
    65
    done |CT_DoLog ALL
yann@1
    66
yann@461
    67
    CT_EndStep
yann@461
    68
}
yann@461
    69
yann@461
    70
# Now on for the target libraries
yann@461
    71
do_binutils_target() {
yann@458
    72
    targets=
yann@463
    73
    [ "${CT_BINUTILS_FOR_TARGET_IBERTY}" = "y" ] && targets="${targets} libiberty"
yann@463
    74
    [ "${CT_BINUTILS_FOR_TARGET_BFD}"    = "y" ] && targets="${targets} bfd"
yann@458
    75
    targets="${targets# }"
yann@458
    76
yann@458
    77
    if [ -n "${targets}" ]; then
yann@458
    78
        CT_DoStep INFO "Installing binutils for target"
yann@458
    79
        mkdir -p "${CT_BUILD_DIR}/build-binutils-for-target"
yann@458
    80
        CT_Pushd "${CT_BUILD_DIR}/build-binutils-for-target"
yann@458
    81
yann@458
    82
        CT_DoLog EXTRA "Configuring binutils for target"
yann@458
    83
        "${CT_SRC_DIR}/${CT_BINUTILS_FILE}/configure"       \
yann@458
    84
            --build=${CT_BUILD}                             \
yann@458
    85
            --host=${CT_TARGET}                             \
yann@458
    86
            --target=${CT_TARGET}                           \
yann@458
    87
            --prefix=/usr                                   \
yann@465
    88
            --enable-shared --enable-static                 \
yann@458
    89
            ${CT_BINUTILS_EXTRA_CONFIG}                     \
yann@458
    90
            --disable-nls                                   2>&1 |CT_DoLog ALL
yann@458
    91
yann@458
    92
        build_targets=$(echo "${targets}" |sed -r -e 's/(^| +)/\1all-/g;')
yann@458
    93
        install_targets=$(echo "${targets}" |sed -r -e 's/(^| +)/\1install-/g;')
yann@458
    94
yann@458
    95
        CT_DoLog EXTRA "Building binutils' libraries (${targets}) for target"
yann@458
    96
        make ${PARALLELMFLAGS} ${build_targets}  2>&1 |CT_DoLog ALL
yann@458
    97
        CT_DoLog EXTRA "Installing binutils' libraries (${targets}) for target"
yann@458
    98
        make DESTDIR="${CT_SYSROOT_DIR}" ${install_targets}  2>&1 |CT_DoLog ALL
yann@458
    99
yann@458
   100
        CT_Popd
yann@458
   101
        CT_EndStep
yann@458
   102
    fi
yann@1
   103
}