scripts/build/binutils/binutils.sh
branchbash_array
changeset 1483 094f442a9d5e
parent 1345 27fec561af53
child 1807 4201b5881a7e
     1.1 --- a/scripts/build/binutils/binutils.sh	Wed May 20 20:13:13 2009 +0000
     1.2 +++ b/scripts/build/binutils/binutils.sh	Wed Aug 19 19:44:44 2009 +0200
     1.3 @@ -17,16 +17,18 @@
     1.4  
     1.5  # Build binutils
     1.6  do_binutils() {
     1.7 +    local -a extra_config
     1.8 +
     1.9      mkdir -p "${CT_BUILD_DIR}/build-binutils"
    1.10      cd "${CT_BUILD_DIR}/build-binutils"
    1.11  
    1.12      CT_DoStep INFO "Installing binutils"
    1.13  
    1.14 -    binutils_opts=
    1.15      # If GMP and MPFR were configured, then use that,
    1.16      # otherwise let binutils find the system-wide libraries, if they exist.
    1.17      if [ "${CT_GMP_MPFR}" = "y" ]; then
    1.18 -        binutils_opts="--with-gmp=${CT_PREFIX_DIR} --with-mpfr=${CT_PREFIX_DIR}"
    1.19 +        extra_config+=("--with-gmp=${CT_PREFIX_DIR}")
    1.20 +        extra_config+=("--with-mpfr=${CT_PREFIX_DIR}")
    1.21      fi
    1.22  
    1.23      CT_DoLog EXTRA "Configuring binutils"
    1.24 @@ -40,7 +42,7 @@
    1.25          --disable-nls                                           \
    1.26          --disable-multilib                                      \
    1.27          --disable-werror                                        \
    1.28 -        ${binutils_opts}                                        \
    1.29 +        "${extra_config[@]}"                                    \
    1.30          ${CT_ARCH_WITH_FLOAT}                                   \
    1.31          ${CT_BINUTILS_EXTRA_CONFIG}                             \
    1.32          ${BINUTILS_SYSROOT_ARG}
    1.33 @@ -70,18 +72,27 @@
    1.34  
    1.35  # Now on for the target libraries
    1.36  do_binutils_target() {
    1.37 -    targets=
    1.38 -    [ "${CT_BINUTILS_FOR_TARGET_IBERTY}" = "y" ] && targets="${targets} libiberty"
    1.39 -    [ "${CT_BINUTILS_FOR_TARGET_BFD}"    = "y" ] && targets="${targets} bfd"
    1.40 -    targets="${targets# }"
    1.41 +    local -a extra_config
    1.42 +    local -a targets
    1.43 +    local -a build_targets
    1.44 +    local -a install_targets
    1.45 +    local t
    1.46  
    1.47 -    binutils_opts=
    1.48 +    [ "${CT_BINUTILS_FOR_TARGET_IBERTY}" = "y" ] && targets+=("libiberty")
    1.49 +    [ "${CT_BINUTILS_FOR_TARGET_BFD}"    = "y" ] && targets+=("bfd")
    1.50 +    for t in "${targets[@]}"; do
    1.51 +        build_targets+=("all-${t}")
    1.52 +        install_targets+=("install-${t}")
    1.53 +    done
    1.54 +
    1.55 +
    1.56      # If GMP and MPFR were configured, then use that
    1.57      if [ "${CT_GMP_MPFR_TARGET}" = "y" ]; then
    1.58 -        binutils_opts="--with-gmp=${CT_SYSROOT_DIR}/usr --with-mpfr=${CT_SYSROOT_DIR}/usr"
    1.59 +        extra_config+=("--with-gmp=${CT_SYSROOT_DIR}/usr")
    1.60 +        extra_config+=("--with-mpfr=${CT_SYSROOT_DIR}/usr")
    1.61      fi
    1.62  
    1.63 -    if [ -n "${targets}" ]; then
    1.64 +    if [ "${#targets[@]}" -ne 0 ]; then
    1.65          CT_DoStep INFO "Installing binutils for target"
    1.66          mkdir -p "${CT_BUILD_DIR}/build-binutils-for-target"
    1.67          CT_Pushd "${CT_BUILD_DIR}/build-binutils-for-target"
    1.68 @@ -98,17 +109,14 @@
    1.69              --enable-static                                         \
    1.70              --disable-nls                                           \
    1.71              --disable-multilib                                      \
    1.72 -            ${binutils_opts}                                        \
    1.73 +            "${extra_config[@]}"                                    \
    1.74              ${CT_ARCH_WITH_FLOAT}                                   \
    1.75              ${CT_BINUTILS_EXTRA_CONFIG}
    1.76  
    1.77 -        build_targets=$(echo "${targets}" |sed -r -e 's/(^| +)/\1all-/g;')
    1.78 -        install_targets=$(echo "${targets}" |sed -r -e 's/(^| +)/\1install-/g;')
    1.79 -
    1.80 -        CT_DoLog EXTRA "Building binutils' libraries (${targets}) for target"
    1.81 -        CT_DoExecLog ALL make ${PARALLELMFLAGS} ${build_targets}
    1.82 -        CT_DoLog EXTRA "Installing binutils' libraries (${targets}) for target"
    1.83 -        CT_DoExecLog ALL make DESTDIR="${CT_SYSROOT_DIR}" ${install_targets}
    1.84 +        CT_DoLog EXTRA "Building binutils' libraries (${targets[*]}) for target"
    1.85 +        CT_DoExecLog ALL make ${PARALLELMFLAGS} "${build_targets[@]}"
    1.86 +        CT_DoLog EXTRA "Installing binutils' libraries (${targets[*]}) for target"
    1.87 +        CT_DoExecLog ALL make DESTDIR="${CT_SYSROOT_DIR}" "${install_targets[@]}"
    1.88  
    1.89          CT_Popd
    1.90          CT_EndStep