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 Jan 13 20:46:01 2010 +0100
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