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