scripts/build/binutils/binutils.sh
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Sun May 11 23:43:52 2014 +0200 (2014-05-11)
changeset 3320 78af1c99bc6d
parent 3316 42590ff8521c
permissions -rw-r--r--
scripts/functions: add target_endian_le and target_endian_be

We currently define target_endian_el and target_endian_eb to be the
tuple extension depending on endianness, defined to be respectively
'el' or 'eb' according to the endianness.

Some architecture do not use 'el' or 'eb', but use 'le' or 'be'.

Provide that as well, as two new variables: target_endian_le and
target_endian_be.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Cody P Schafer <dev@codyps.com>
yann@1345
     1
# This file adds functions to build binutils
yann@1345
     2
# Copyright 2007 Yann E. MORIN
yann@1345
     3
# Licensed under the GPL v2. See COPYING in the root of this package
yann@1345
     4
yann@1345
     5
# Download binutils
yann@1345
     6
do_binutils_get() {
david@3089
     7
    if [ "${CT_BINUTILS_CUSTOM}" = "y" ]; then
david@3089
     8
        CT_GetCustom "binutils" "${CT_BINUTILS_VERSION}" \
david@3089
     9
                     "${CT_BINUTILS_CUSTOM_LOCATION}"
david@3089
    10
    else
david@3089
    11
        CT_GetFile "binutils-${CT_BINUTILS_VERSION}"                                        \
david@3089
    12
                   {ftp,http}://{ftp.gnu.org/gnu,ftp.kernel.org/pub/linux/devel}/binutils   \
david@3089
    13
                   ftp://gcc.gnu.org/pub/binutils/{releases,snapshots}
david@3089
    14
    fi
diorcet@3123
    15
diorcet@3123
    16
    if [ -n "${CT_ARCH_BINFMT_FLAT}" ]; then
yann@3317
    17
        if [ "${CT_ELF2FLT_CUSTOM}" = "y" ]; then
yann@3317
    18
            CT_GetCustom "elf2flt" "${CT_ELF2FLT_VERSION}"  \
yann@3317
    19
                         "${CT_ELF2FLT_CUSTOM_LOCATION}"
yann@3317
    20
        else
yann@3317
    21
            CT_GetGit elf2flt "${CT_ELF2FLT_GIT_CSET}" git://wh0rd.org/elf2flt.git
yann@3317
    22
        fi
diorcet@3123
    23
    fi
yann@1345
    24
}
yann@1345
    25
yann@1345
    26
# Extract binutils
yann@1345
    27
do_binutils_extract() {
david@3089
    28
    # If using custom directory location, nothing to do
yann@3316
    29
    if ! [ "${CT_BINUTILS_CUSTOM}" = "y" \
david@3089
    30
         -a -d "${CT_SRC_DIR}/binutils-${CT_BINUTILS_VERSION}" ]; then
yann@3316
    31
        CT_Extract "binutils-${CT_BINUTILS_VERSION}"
yann@3316
    32
        CT_Patch "binutils" "${CT_BINUTILS_VERSION}"
david@3089
    33
    fi
david@3089
    34
diorcet@3123
    35
    if [ -n "${CT_ARCH_BINFMT_FLAT}" ]; then
yann@3317
    36
        if ! [ "${CT_ELF2FLT_CUSTOM}" = "y" \
yann@3317
    37
             -a -d "${CT_SRC_DIR}/elf2flt-${CT_ELF2FLT_VERSION}" ]; then
yann@3317
    38
            CT_Extract "elf2flt-${CT_ELF2FLT_GIT_CSET}"
yann@3317
    39
            CT_Patch "elf2flt" "${CT_ELF2FLT_GIT_CSET}"
yann@3317
    40
        fi
diorcet@3123
    41
    fi
yann@1345
    42
}
yann@1345
    43
yann@2928
    44
# Build binutils for build -> target
yann@2928
    45
do_binutils_for_build() {
yann@2928
    46
    local -a binutils_opts
yann@2928
    47
yann@2928
    48
    case "${CT_TOOLCHAIN_TYPE}" in
yann@2928
    49
        native|cross)   return 0;;
yann@2928
    50
    esac
yann@2928
    51
yann@2928
    52
    CT_DoStep INFO "Installing binutils for build"
yann@2928
    53
    CT_mkdir_pushd "${CT_BUILD_DIR}/build-binutils-build-${CT_BUILD}"
yann@2928
    54
yann@2928
    55
    binutils_opts+=( "host=${CT_BUILD}" )
yann@2928
    56
    binutils_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" )
diorcet@3119
    57
    binutils_opts+=( "cflags=${CT_CFLAGS_FOR_BUILD}" )
diorcet@3119
    58
    binutils_opts+=( "ldflags=${CT_LDFLAGS_FOR_BUILD}" )
yann@2928
    59
yann@2928
    60
    do_binutils_backend "${binutils_opts[@]}"
yann@2928
    61
yann@2928
    62
    CT_Popd
diorcet@3123
    63
diorcet@3123
    64
    if [ -n "${CT_ARCH_BINFMT_FLAT}" ]; then
diorcet@3123
    65
        # We re-use binutils' options, plus our owns
diorcet@3123
    66
        binutils_opts+=( "binutils_src=${CT_SRC_DIR}/binutils-${CT_BINUTILS_VERSION}" )
diorcet@3123
    67
        binutils_opts+=( "binutils_bld=${CT_BUILD_DIR}/build-binutils-build-${CT_BUILD}" )
diorcet@3123
    68
diorcet@3123
    69
        CT_mkdir_pushd "${CT_BUILD_DIR}/build-elf2flt-build-${CT_BUILD}"
diorcet@3123
    70
diorcet@3123
    71
        do_elf2flt_backend "${binutils_opts[@]}"
diorcet@3123
    72
diorcet@3123
    73
        CT_Popd
diorcet@3123
    74
    fi
diorcet@3123
    75
yann@2928
    76
    CT_EndStep
yann@2928
    77
}
yann@2928
    78
yann@2926
    79
# Build binutils for host -> target
yann@2926
    80
do_binutils_for_host() {
yann@2926
    81
    local -a binutils_tools
yann@2926
    82
    local -a binutils_opts
yann@2926
    83
yann@2926
    84
    CT_DoStep INFO "Installing binutils for host"
yann@2926
    85
    CT_mkdir_pushd "${CT_BUILD_DIR}/build-binutils-host-${CT_HOST}"
yann@2926
    86
yann@2926
    87
    binutils_opts+=( "host=${CT_HOST}" )
yann@2926
    88
    binutils_opts+=( "prefix=${CT_PREFIX_DIR}" )
yann@2926
    89
    binutils_opts+=( "static_build=${CT_STATIC_TOOLCHAIN}" )
yann@2926
    90
    binutils_opts+=( "cflags=${CT_CFLAGS_FOR_HOST}" )
diorcet@3119
    91
    binutils_opts+=( "ldflags=${CT_LDFLAGS_FOR_HOST}" )
yann@2926
    92
    binutils_opts+=( "build_manuals=${CT_BUILD_MANUALS}" )
yann@2926
    93
yann@2926
    94
    do_binutils_backend "${binutils_opts[@]}"
yann@2926
    95
diorcet@3123
    96
    CT_Popd
diorcet@3123
    97
diorcet@3123
    98
    if [ -n "${CT_ARCH_BINFMT_FLAT}" ]; then
diorcet@3123
    99
        # We re-use binutils' options, plus our owns
diorcet@3123
   100
        binutils_opts+=( "binutils_src=${CT_SRC_DIR}/binutils-${CT_BINUTILS_VERSION}" )
diorcet@3123
   101
        binutils_opts+=( "binutils_bld=${CT_BUILD_DIR}/build-binutils-host-${CT_HOST}" )
diorcet@3123
   102
diorcet@3123
   103
        CT_mkdir_pushd "${CT_BUILD_DIR}/build-elf2flt-host-${CT_HOST}"
diorcet@3123
   104
diorcet@3123
   105
        do_elf2flt_backend "${binutils_opts[@]}"
diorcet@3123
   106
diorcet@3123
   107
        CT_Popd
diorcet@3123
   108
    fi
diorcet@3123
   109
yann@2926
   110
    # Make those new tools available to the core C compilers to come.
mingw@3290
   111
    # Note: some components want the ${TARGET}-{ar,as,ld,ranlib,strip} commands
mingw@3290
   112
    # as well. Create that.
yann@2926
   113
    # Don't do it for canadian or cross-native, because the binutils
yann@2926
   114
    # are not executable on the build machine.
yann@2926
   115
    case "${CT_TOOLCHAIN_TYPE}" in
yann@2926
   116
        cross|native)
mingw@3290
   117
            binutils_tools=( ar as ld ranlib strip )
diorcet@3123
   118
            if [ -n "${CT_ARCH_BINFMT_FLAT}" ]; then
diorcet@3123
   119
                binutils_tools+=( elf2flt flthdr )
diorcet@3123
   120
            fi
yann@2926
   121
            case "${CT_BINUTILS_LINKERS_LIST}" in
yann@2926
   122
                ld)         binutils_tools+=( ld.bfd ) ;;
yann@2926
   123
                gold)       binutils_tools+=( ld.gold ) ;;
yann@2926
   124
                ld,gold)    binutils_tools+=( ld.bfd ld.gold ) ;;
yann@2926
   125
                gold,ld)    binutils_tools+=( ld.bfd ld.gold ) ;;
yann@2926
   126
            esac
yann@2926
   127
            mkdir -p "${CT_BUILDTOOLS_PREFIX_DIR}/${CT_TARGET}/bin"
yann@2926
   128
            mkdir -p "${CT_BUILDTOOLS_PREFIX_DIR}/bin"
yann@2926
   129
            for t in "${binutils_tools[@]}"; do
yann@2926
   130
                CT_DoExecLog ALL ln -sv                                         \
yann@2926
   131
                                    "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}"    \
yann@2926
   132
                                    "${CT_BUILDTOOLS_PREFIX_DIR}/${CT_TARGET}/bin/${t}"
yann@2926
   133
                CT_DoExecLog ALL ln -sv                                         \
yann@2926
   134
                                    "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}"    \
yann@2926
   135
                                    "${CT_BUILDTOOLS_PREFIX_DIR}/bin/${CT_TARGET}-${t}"
yann@2926
   136
            done
yann@2926
   137
            ;;
yann@2926
   138
        *)  ;;
yann@2926
   139
    esac
yann@2926
   140
yann@2926
   141
    CT_EndStep
yann@2926
   142
}
yann@2926
   143
yann@2926
   144
# Build binutils for X -> target
yann@2926
   145
#     Parameter     : description               : type      : default
yann@2926
   146
#     host          : machine to run on         : tuple     : (none)
yann@2926
   147
#     prefix        : prefix to install into    : dir       : (none)
yann@2926
   148
#     static_build  : build statcially          : bool      : no
diorcet@3119
   149
#     cflags        : cflags to use             : string    : (empty)
diorcet@3119
   150
#     ldflags       : ldflags to use            : string    : (empty)
yann@2926
   151
#     build_manuals : whether to build manuals  : bool      : no
yann@2926
   152
do_binutils_backend() {
yann@2926
   153
    local host
yann@2926
   154
    local prefix
yann@2926
   155
    local static_build
yann@2926
   156
    local cflags
diorcet@3119
   157
    local ldflags
yann@2926
   158
    local build_manuals=no
yann@1483
   159
    local -a extra_config
bryanhundven@2210
   160
    local -a extra_make_flags
michael@2765
   161
    local -a manuals_for
michael@2765
   162
    local -a manuals_install
yann@2926
   163
    local arg
yann@1483
   164
yann@2926
   165
    for arg in "$@"; do
yann@2926
   166
        eval "${arg// /\\ }"
yann@2926
   167
    done
yann@1345
   168
yann@1345
   169
    CT_DoLog EXTRA "Configuring binutils"
yann@2244
   170
yann@2244
   171
    if [ "${CT_BINUTILS_HAS_GOLD}" = "y" ]; then
yann@2244
   172
        case "${CT_BINUTILS_LINKERS_LIST}" in
yann@2244
   173
            ld)
yann@2244
   174
                extra_config+=( --enable-ld=yes --enable-gold=no )
yann@2244
   175
                ;;
yann@2244
   176
            gold)
yann@2244
   177
                extra_config+=( --enable-ld=no --enable-gold=yes )
yann@2244
   178
                ;;
yann@2244
   179
            ld,gold)
yann@2244
   180
                extra_config+=( --enable-ld=default --enable-gold=yes )
yann@2244
   181
                ;;
yann@2244
   182
            gold,ld)
yann@2244
   183
                extra_config+=( --enable-ld=yes --enable-gold=default )
yann@2244
   184
                ;;
yann@2244
   185
        esac
zhenqiang@3032
   186
        if [ "${CT_BINUTILS_GOLD_THREADS}" = "y" ]; then
yann@2246
   187
            extra_config+=( --enable-threads )
yann@2246
   188
        fi
yann@2244
   189
    fi
yann@2245
   190
    if [ "${CT_BINUTILS_PLUGINS}" = "y" ]; then
yann@2245
   191
        extra_config+=( --enable-plugins )
yann@2245
   192
    fi
benoit@2488
   193
    if [ "${CT_BINUTILS_HAS_PKGVERSION_BUGURL}" = "y" ]; then
benoit@2503
   194
        extra_config+=("--with-pkgversion=${CT_PKGVERSION}")
benoit@2503
   195
        [ -n "${CT_TOOLCHAIN_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_TOOLCHAIN_BUGURL}")
benoit@2488
   196
    fi
yann@2816
   197
    if [ "${CT_MULTILIB}" = "y" ]; then
yann@2816
   198
        extra_config+=("--enable-multilib")
yann@2816
   199
    else
yann@2816
   200
        extra_config+=("--disable-multilib")
yann@2816
   201
    fi
yann@2244
   202
zhenqiang@2779
   203
    [ "${CT_TOOLCHAIN_ENABLE_NLS}" != "y" ] && extra_config+=("--disable-nls")
zhenqiang@2779
   204
yann@2244
   205
    CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'"
yann@2244
   206
yann@2341
   207
    CT_DoExecLog CFG                                            \
yann@2926
   208
    CFLAGS="${cflags}"                                          \
yann@2926
   209
    CXXFLAGS="${cflags}"                                        \
diorcet@3119
   210
    LDFLAGS="${ldflags}"                                        \
yann@1345
   211
    "${CT_SRC_DIR}/binutils-${CT_BINUTILS_VERSION}/configure"   \
yann@1345
   212
        --build=${CT_BUILD}                                     \
yann@2926
   213
        --host=${host}                                          \
yann@1345
   214
        --target=${CT_TARGET}                                   \
yann@2926
   215
        --prefix=${prefix}                                      \
yann@1345
   216
        --disable-werror                                        \
yann@1483
   217
        "${extra_config[@]}"                                    \
yann@1345
   218
        ${CT_ARCH_WITH_FLOAT}                                   \
yann@2466
   219
        ${BINUTILS_SYSROOT_ARG}                                 \
yann@2467
   220
        "${CT_BINUTILS_EXTRA_CONFIG_ARRAY[@]}"
yann@1345
   221
yann@2926
   222
    if [ "${static_build}" = "y" ]; then
yann@2702
   223
        extra_make_flags+=("LDFLAGS=-static -all-static")
bryanhundven@2210
   224
        CT_DoLog EXTRA "Prepare binutils for static build"
yann@2702
   225
        CT_DoExecLog ALL make ${JOBSFLAGS} configure-host
bryanhundven@2210
   226
    fi
bryanhundven@2210
   227
yann@1345
   228
    CT_DoLog EXTRA "Building binutils"
yann@2275
   229
    CT_DoExecLog ALL make "${extra_make_flags[@]}" ${JOBSFLAGS}
yann@1345
   230
yann@1345
   231
    CT_DoLog EXTRA "Installing binutils"
yann@1345
   232
    CT_DoExecLog ALL make install
yann@1345
   233
yann@2926
   234
    if [ "${build_manuals}" = "y" ]; then
michael@2765
   235
        CT_DoLog EXTRA "Building and installing the binutils manuals"
michael@2765
   236
        manuals_for=( gas binutils ld gprof )
michael@2765
   237
        if [ "${CT_BINUTILS_LINKER_GOLD}" = "y" ]; then
michael@2765
   238
            manuals_for+=( gold )
michael@2765
   239
        fi
michael@2765
   240
        manuals_install=( "${manuals_for[@]/#/install-pdf-}" )
michael@2765
   241
        manuals_install+=( "${manuals_for[@]/#/install-html-}" )
michael@2765
   242
        CT_DoExecLog ALL make ${JOBSFLAGS} pdf html
michael@2765
   243
        CT_DoExecLog ALL make "${manuals_install[@]}"
michael@2765
   244
    fi
michael@2765
   245
yann@2247
   246
    # Install the wrapper if needed
yann@2247
   247
    if [ "${CT_BINUTILS_LD_WRAPPER}" = "y" ]; then
yann@2247
   248
        CT_DoLog EXTRA "Installing ld wrapper"
yann@2926
   249
        rm -f "${prefix}/bin/${CT_TARGET}-ld"
yann@2926
   250
        rm -f "${prefix}/${CT_TARGET}/bin/ld"
yann@2247
   251
        sed -r -e "s/@@DEFAULT_LD@@/${CT_BINUTILS_LINKER_DEFAULT}/" \
yann@2247
   252
            "${CT_LIB_DIR}/scripts/build/binutils/binutils-ld.in"   \
yann@2926
   253
            >"${prefix}/bin/${CT_TARGET}-ld"
yann@2926
   254
        chmod +x "${prefix}/bin/${CT_TARGET}-ld"
yann@2926
   255
        cp -a "${prefix}/bin/${CT_TARGET}-ld"   \
yann@2926
   256
              "${prefix}/${CT_TARGET}/bin/ld"
yann@2376
   257
yann@2376
   258
        # If needed, force using ld.bfd during the toolchain build
yann@2376
   259
        if [ "${CT_BINUTILS_FORCE_LD_BFD}" = "y" ]; then
yann@2376
   260
            export CTNG_LD_IS=bfd
yann@2376
   261
        fi
yann@2247
   262
    fi
yann@1345
   263
}
yann@1345
   264
diorcet@3123
   265
# Build elf2flt for X -> target
diorcet@3123
   266
#     Parameter     : description               : type      : default
diorcet@3123
   267
#     host          : machine to run on         : tuple     : (none)
diorcet@3123
   268
#     prefix        : prefix to install into    : dir       : (none)
diorcet@3123
   269
#     static_build  : build statcially          : bool      : no
diorcet@3123
   270
#     cflags        : cflags to use             : string    : (empty)
diorcet@3123
   271
#     ldflags       : ldflags to use            : string    : (empty)
diorcet@3123
   272
#     binutils_src  : source dir of binutils    : dir       : (none)
diorcet@3123
   273
#     binutils_bld  : build dir of binutils     : dir       : (none)
diorcet@3123
   274
#     build_manuals : whether to build manuals  : bool      : no
diorcet@3123
   275
do_elf2flt_backend() {
diorcet@3123
   276
    local host
diorcet@3123
   277
    local prefix
diorcet@3123
   278
    local static_build
diorcet@3123
   279
    local cflags
diorcet@3123
   280
    local ldflags
diorcet@3123
   281
    local binutils_bld
diorcet@3123
   282
    local binutils_src
diorcet@3123
   283
    local build_manuals
diorcet@3123
   284
    local arg
diorcet@3123
   285
diorcet@3123
   286
    for arg in "$@"; do
diorcet@3123
   287
        eval "${arg// /\\ }"
diorcet@3123
   288
    done
diorcet@3123
   289
diorcet@3123
   290
    CT_DoLog EXTRA "Configuring elf2flt"
diorcet@3123
   291
    CT_DoExecLog CFG                                            \
diorcet@3123
   292
    CFLAGS="${cflags}"                                          \
diorcet@3123
   293
    LDFLAGS="${ldflags}"                                        \
diorcet@3123
   294
    "${CT_SRC_DIR}/elf2flt-${CT_ELF2FLT_VERSION}/configure"     \
diorcet@3123
   295
        --build=${CT_BUILD}                                     \
diorcet@3123
   296
        --host=${host}                                          \
diorcet@3123
   297
        --target=${CT_TARGET}                                   \
diorcet@3123
   298
        --prefix=${prefix}                                      \
diorcet@3123
   299
        --with-bfd-include-dir=${binutils_bld}/bfd              \
diorcet@3123
   300
        --with-binutils-include-dir=${binutils_src}/include     \
diorcet@3123
   301
        --with-libbfd=${binutils_bld}/bfd/libbfd.a              \
diorcet@3123
   302
        --with-libiberty=${binutils_bld}/libiberty/libiberty.a  \
diorcet@3123
   303
        ${elf2flt_opts}                                         \
diorcet@3123
   304
        "${CT_ELF2FLT_EXTRA_CONFIG_ARRAY[@]}"
diorcet@3123
   305
diorcet@3123
   306
    CT_DoLog EXTRA "Building elf2flt"
diorcet@3123
   307
    CT_DoExecLog ALL make ${JOBSFLAGS}
diorcet@3123
   308
diorcet@3123
   309
    CT_DoLog EXTRA "Installing elf2flt"
diorcet@3123
   310
    CT_DoExecLog ALL make install
diorcet@3123
   311
}
diorcet@3123
   312
yann@1345
   313
# Now on for the target libraries
yann@2906
   314
do_binutils_for_target() {
yann@1483
   315
    local -a extra_config
yann@1483
   316
    local -a targets
yann@1483
   317
    local -a build_targets
yann@1483
   318
    local -a install_targets
yann@1483
   319
    local t
yann@1345
   320
yann@1483
   321
    [ "${CT_BINUTILS_FOR_TARGET_IBERTY}" = "y" ] && targets+=("libiberty")
yann@1483
   322
    [ "${CT_BINUTILS_FOR_TARGET_BFD}"    = "y" ] && targets+=("bfd")
yann@1483
   323
    for t in "${targets[@]}"; do
yann@1483
   324
        build_targets+=("all-${t}")
yann@1483
   325
        install_targets+=("install-${t}")
yann@1483
   326
    done
yann@1483
   327
yann@1483
   328
    if [ "${#targets[@]}" -ne 0 ]; then
yann@1345
   329
        CT_DoStep INFO "Installing binutils for target"
yann@1345
   330
        mkdir -p "${CT_BUILD_DIR}/build-binutils-for-target"
yann@1345
   331
        CT_Pushd "${CT_BUILD_DIR}/build-binutils-for-target"
yann@1345
   332
yann@1345
   333
        CT_DoLog EXTRA "Configuring binutils for target"
benoit@2488
   334
benoit@2488
   335
        if [ "${CT_BINUTILS_HAS_PKGVERSION_BUGURL}" = "y" ]; then
benoit@2503
   336
            extra_config+=("--with-pkgversion=${CT_PKGVERSION}")
benoit@2503
   337
            [ -n "${CT_TOOLCHAIN_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_TOOLCHAIN_BUGURL}")
benoit@2488
   338
        fi
yann@2816
   339
        if [ "${CT_MULTILIB}" = "y" ]; then
yann@2816
   340
            extra_config+=("--enable-multilib")
yann@2816
   341
        else
yann@2816
   342
            extra_config+=("--disable-multilib")
yann@2816
   343
        fi
benoit@2488
   344
zhenqiang@2779
   345
        [ "${CT_TOOLCHAIN_ENABLE_NLS}" != "y" ] && extra_config+=("--disable-nls")
zhenqiang@2779
   346
yann@2333
   347
        CT_DoExecLog CFG                                            \
yann@1345
   348
        "${CT_SRC_DIR}/binutils-${CT_BINUTILS_VERSION}/configure"   \
yann@1345
   349
            --build=${CT_BUILD}                                     \
yann@1345
   350
            --host=${CT_TARGET}                                     \
yann@1345
   351
            --target=${CT_TARGET}                                   \
yann@1345
   352
            --prefix=/usr                                           \
yann@1345
   353
            --disable-werror                                        \
yann@1345
   354
            --enable-shared                                         \
yann@1345
   355
            --enable-static                                         \
yann@1483
   356
            "${extra_config[@]}"                                    \
yann@1345
   357
            ${CT_ARCH_WITH_FLOAT}                                   \
benoit@2804
   358
            "${CT_BINUTILS_EXTRA_CONFIG_ARRAY[@]}"
yann@1345
   359
yann@1483
   360
        CT_DoLog EXTRA "Building binutils' libraries (${targets[*]}) for target"
yann@2275
   361
        CT_DoExecLog ALL make ${JOBSFLAGS} "${build_targets[@]}"
yann@1483
   362
        CT_DoLog EXTRA "Installing binutils' libraries (${targets[*]}) for target"
yann@1483
   363
        CT_DoExecLog ALL make DESTDIR="${CT_SYSROOT_DIR}" "${install_targets[@]}"
yann@1345
   364
yann@1345
   365
        CT_Popd
yann@1345
   366
        CT_EndStep
yann@1345
   367
    fi
yann@1345
   368
}