scripts/build/binutils.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jul 13 10:32:38 2008 +0000 (2008-07-13)
changeset 645 8e58024f8e37
parent 502 9ed34efc09fc
child 659 5fb8f5a33f74
permissions -rw-r--r--
Ioannis E. VENETIS <venetis@mail.capsl.udel.edu> pointed out that GMP and MPFR were not used by gcc.
Turned out that none could use GMP and MPFR as the config option changed its name, but the change was not propagated to all users.

/trunk/scripts/build/binutils.sh | 2 1 1 0 +-
/trunk/scripts/build/debug/300-gdb.sh | 2 1 1 0 +-
/trunk/scripts/build/cc_gcc.sh | 6 3 3 0 +++---
3 files changed, 5 insertions(+), 5 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@645
    30
    if [ "${CT_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@502
    43
        --disable-multilib                          \
yann@502
    44
        --disable-werror                            \
yann@466
    45
        ${binutils_opts}                            \
yann@502
    46
        ${CT_ARCH_WITH_FLOAT}                       \
yann@1
    47
        ${CT_BINUTILS_EXTRA_CONFIG}                 \
yann@78
    48
        ${BINUTILS_SYSROOT_ARG}                     2>&1 |CT_DoLog ALL
yann@1
    49
yann@1
    50
    CT_DoLog EXTRA "Building binutils"
yann@78
    51
    make ${PARALLELMFLAGS}  2>&1 |CT_DoLog ALL
yann@1
    52
yann@1
    53
    CT_DoLog EXTRA "Installing binutils"
yann@78
    54
    make install            2>&1 |CT_DoLog ALL
yann@1
    55
yann@331
    56
    # Make those new tools available to the core C compilers to come.
yann@1
    57
    # Note: some components want the ${TARGET}-{ar,as,ld,strip} commands as
yann@305
    58
    # well. Create that.
yann@136
    59
    mkdir -p "${CT_CC_CORE_STATIC_PREFIX_DIR}/${CT_TARGET}/bin"
yann@136
    60
    mkdir -p "${CT_CC_CORE_STATIC_PREFIX_DIR}/bin"
yann@136
    61
    mkdir -p "${CT_CC_CORE_SHARED_PREFIX_DIR}/${CT_TARGET}/bin"
yann@136
    62
    mkdir -p "${CT_CC_CORE_SHARED_PREFIX_DIR}/bin"
yann@1
    63
    for t in ar as ld strip; do
yann@136
    64
        ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_STATIC_PREFIX_DIR}/${CT_TARGET}/bin/${t}"
yann@136
    65
        ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_STATIC_PREFIX_DIR}/bin/${CT_TARGET}-${t}"
yann@136
    66
        ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_SHARED_PREFIX_DIR}/${CT_TARGET}/bin/${t}"
yann@136
    67
        ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_SHARED_PREFIX_DIR}/bin/${CT_TARGET}-${t}"
yann@78
    68
    done |CT_DoLog ALL
yann@1
    69
yann@461
    70
    CT_EndStep
yann@461
    71
}
yann@461
    72
yann@461
    73
# Now on for the target libraries
yann@461
    74
do_binutils_target() {
yann@458
    75
    targets=
yann@463
    76
    [ "${CT_BINUTILS_FOR_TARGET_IBERTY}" = "y" ] && targets="${targets} libiberty"
yann@463
    77
    [ "${CT_BINUTILS_FOR_TARGET_BFD}"    = "y" ] && targets="${targets} bfd"
yann@458
    78
    targets="${targets# }"
yann@458
    79
yann@458
    80
    if [ -n "${targets}" ]; then
yann@458
    81
        CT_DoStep INFO "Installing binutils for target"
yann@458
    82
        mkdir -p "${CT_BUILD_DIR}/build-binutils-for-target"
yann@458
    83
        CT_Pushd "${CT_BUILD_DIR}/build-binutils-for-target"
yann@458
    84
yann@458
    85
        CT_DoLog EXTRA "Configuring binutils for target"
yann@502
    86
        "${CT_SRC_DIR}/${CT_BINUTILS_FILE}/configure"   \
yann@502
    87
            --build=${CT_BUILD}                         \
yann@502
    88
            --host=${CT_TARGET}                         \
yann@502
    89
            --target=${CT_TARGET}                       \
yann@502
    90
            --prefix=/usr                               \
yann@502
    91
            --disable-werror                            \
yann@502
    92
            --enable-shared                             \
yann@502
    93
            --enable-static                             \
yann@502
    94
            --disable-nls                               \
yann@502
    95
            --disable-multilib                          \
yann@502
    96
            ${CT_ARCH_WITH_FLOAT}                       \
yann@502
    97
            ${CT_BINUTILS_EXTRA_CONFIG}                 2>&1 |CT_DoLog ALL
yann@458
    98
yann@458
    99
        build_targets=$(echo "${targets}" |sed -r -e 's/(^| +)/\1all-/g;')
yann@458
   100
        install_targets=$(echo "${targets}" |sed -r -e 's/(^| +)/\1install-/g;')
yann@458
   101
yann@458
   102
        CT_DoLog EXTRA "Building binutils' libraries (${targets}) for target"
yann@458
   103
        make ${PARALLELMFLAGS} ${build_targets}  2>&1 |CT_DoLog ALL
yann@458
   104
        CT_DoLog EXTRA "Installing binutils' libraries (${targets}) for target"
yann@458
   105
        make DESTDIR="${CT_SYSROOT_DIR}" ${install_targets}  2>&1 |CT_DoLog ALL
yann@458
   106
yann@458
   107
        CT_Popd
yann@458
   108
        CT_EndStep
yann@458
   109
    fi
yann@1
   110
}